summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--UnoControls/util/exports.map10
-rw-r--r--UnoControls/util/makefile.mk2
-rwxr-xr-xaccessibility/bridge/org/openoffice/java/accessibility/makefile.mk11
-rw-r--r--accessibility/util/acc.map2
-rw-r--r--afms/makefile.mk3
-rw-r--r--animations/source/animcore/animcore.map9
-rw-r--r--animations/source/animcore/makefile.mk2
-rw-r--r--apache-commons/download/README16
-rw-r--r--apache-commons/download/commons-codec-1.3-src.tar.gzbin80427 -> 0 bytes
-rw-r--r--apache-commons/download/commons-httpclient-3.1-src.tar.gzbin1882664 -> 0 bytes
-rw-r--r--apache-commons/download/commons-lang-2.3-src.tar.gzbin474681 -> 0 bytes
-rw-r--r--apache-commons/download/commons-logging-1.1.1-src.tar.gzbin189448 -> 0 bytes
-rw-r--r--apache-commons/java/codec/makefile.mk1
-rw-r--r--apache-commons/java/httpclient/makefile.mk1
-rw-r--r--apache-commons/java/lang/makefile.mk1
-rw-r--r--apache-commons/java/logging/makefile.mk1
-rw-r--r--autodoc/source/display/html/cfrstd.cxx2
-rw-r--r--automation/source/testtool/filter.pl20
-rw-r--r--automation/source/testtool/makefile.mk5
-rw-r--r--avmedia/source/quicktime/avmediaQuickTime.map8
-rw-r--r--avmedia/source/quicktime/makefile.mk2
-rw-r--r--basctl/source/basicide/baside4.cxx31
-rw-r--r--basctl/source/basicide/makefile.mk4
-rwxr-xr-xbasctl/util/basctl.map2
-rw-r--r--basebmp/test/basictest.cxx15
-rw-r--r--basebmp/test/bmpmasktest.cxx6
-rw-r--r--basebmp/test/bmptest.cxx6
-rw-r--r--basebmp/test/cliptest.cxx6
-rw-r--r--basebmp/test/export.map4
-rw-r--r--basebmp/test/filltest.cxx6
-rw-r--r--basebmp/test/linetest.cxx6
-rw-r--r--basebmp/test/makefile.mk27
-rw-r--r--basebmp/test/masktest.cxx6
-rw-r--r--basebmp/test/polytest.cxx6
-rw-r--r--basegfx/inc/basegfx/matrix/b2dhommatrixtools.hxx7
-rw-r--r--basegfx/inc/basegfx/numeric/ftools.hxx2
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolygon.hxx6
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx6
-rw-r--r--basegfx/inc/basegfx/polygon/b3dgeometry.hxx70
-rw-r--r--basegfx/inc/basegfx/range/b2dmultirange.hxx114
-rw-r--r--basegfx/inc/basegfx/range/b2dpolyrange.hxx145
-rw-r--r--basegfx/inc/basegfx/range/b2drangeclipper.hxx (renamed from basegfx/source/polygon/b3dgeometry.cxx)40
-rw-r--r--basegfx/inc/basegfx/tools/b2dclipstate.hxx119
-rw-r--r--basegfx/inc/basegfx/tools/gradienttools.hxx18
-rw-r--r--basegfx/inc/basegfx/tools/keystoplerp.hxx100
-rw-r--r--basegfx/inc/basegfx/tools/lerp.hxx (renamed from slideshow/source/inc/lerp.hxx)17
-rw-r--r--basegfx/prj/build.lst2
-rw-r--r--basegfx/prj/d.lst5
-rw-r--r--basegfx/qa/mkpolygons.pl344
-rw-r--r--basegfx/source/color/bcolortools.cxx2
-rw-r--r--basegfx/source/matrix/b2dhommatrixtools.cxx28
-rw-r--r--basegfx/source/polygon/b2dpolygon.cxx106
-rw-r--r--basegfx/source/polygon/b2dpolygontools.cxx3
-rw-r--r--basegfx/source/polygon/b2dpolypolygon.cxx52
-rw-r--r--basegfx/source/polygon/b2dsvgpolypolygon.cxx51
-rw-r--r--basegfx/source/range/b2dmultirange.cxx279
-rw-r--r--basegfx/source/range/b2dpolyrange.cxx423
-rw-r--r--basegfx/source/range/b2drangeclipper.cxx950
-rw-r--r--basegfx/source/range/makefile.mk3
-rw-r--r--basegfx/source/tools/b2dclipstate.cxx662
-rw-r--r--basegfx/source/tools/gradienttools.cxx101
-rw-r--r--basegfx/source/tools/keystoplerp.cxx107
-rwxr-xr-xbasegfx/source/tools/makefile.mk4
-rw-r--r--basegfx/test/basegfx1d.cxx16
-rw-r--r--basegfx/test/basegfx2d.cxx332
-rw-r--r--basegfx/test/basegfx3d.cxx22
-rw-r--r--basegfx/test/basegfxtools.cxx110
-rw-r--r--basegfx/test/boxclipper.cxx419
-rw-r--r--basegfx/test/clipstate.cxx178
-rw-r--r--basegfx/test/export.map4
-rw-r--r--basegfx/test/genericclipper.cxx159
-rw-r--r--basegfx/test/makefile.mk45
-rw-r--r--basegfx/test/tests.txt20
-rw-r--r--basic/source/app/basic.src4
-rw-r--r--basic/source/basmgr/basmgr.cxx27
-rw-r--r--basic/source/classes/sb.cxx7
-rw-r--r--[-rwxr-xr-x]basic/source/classes/sbunoobj.cxx14
-rw-r--r--beanshell/makefile.mk1
-rw-r--r--berkeleydb/db-4.7.25.patch9
-rw-r--r--berkeleydb/makefile.mk6
-rw-r--r--bitstream_vera_fonts/fonts/ttf_dejavu/makefile.mk1
-rw-r--r--bitstream_vera_fonts/fonts/ttf_gentium/makefile.mk1
-rw-r--r--bitstream_vera_fonts/fonts/ttf_liberation/makefile.mk1
-rw-r--r--boost/makefile.mk1
-rw-r--r--bootstrap.15
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_x86-64/abi.cxx29
-rw-r--r--bridges/test/java_uno/acquire/makefile.mk18
-rw-r--r--bridges/test/java_uno/acquire/testacquire.map8
-rw-r--r--bridges/test/java_uno/any/makefile.mk8
-rw-r--r--bridges/test/java_uno/any/test_javauno_any.map2
-rw-r--r--bridges/test/java_uno/equals/makefile.mk6
-rw-r--r--bridges/test/java_uno/equals/testequals.map8
-rw-r--r--bridges/test/java_uno/nativethreadpool/makefile.mk4
-rw-r--r--cairo/cairo/makefile.mk2
-rw-r--r--cairo/pixman/makefile.mk4
-rw-r--r--canvas/inc/canvas/base/graphicdevicebase.hxx82
-rwxr-xr-x[-rw-r--r--]canvas/inc/canvas/canvastools.hxx35
-rw-r--r--canvas/inc/canvas/parametricpolypolygon.hxx40
-rw-r--r--canvas/prj/build.lst1
-rw-r--r--canvas/source/cairo/cairo_canvas.hxx3
-rw-r--r--canvas/source/cairo/cairo_canvashelper.cxx309
-rw-r--r--canvas/source/cairo/cairo_spritecanvas.hxx3
-rw-r--r--canvas/source/cairo/exports.map8
-rw-r--r--canvas/source/cairo/makefile.mk6
-rw-r--r--canvas/source/directx/dx_canvas.hxx5
-rwxr-xr-xcanvas/source/directx/dx_canvashelper_texturefill.cxx446
-rwxr-xr-xcanvas/source/directx/dx_impltools.cxx2
-rwxr-xr-xcanvas/source/directx/dx_spritecanvas.hxx17
-rw-r--r--canvas/source/factory/canvasfactory.map8
-rw-r--r--canvas/source/factory/makefile.mk2
-rw-r--r--canvas/source/java/BackBuffer.java112
-rw-r--r--canvas/source/java/BezierPolyPolygon.java151
-rw-r--r--canvas/source/java/BitmapCanvas.java136
-rw-r--r--canvas/source/java/BufferedGraphics2D.java600
-rw-r--r--canvas/source/java/CanvasBase.java341
-rw-r--r--canvas/source/java/CanvasBitmap.java252
-rw-r--r--canvas/source/java/CanvasClonedSprite.java185
-rw-r--r--canvas/source/java/CanvasCustomSprite.java204
-rw-r--r--canvas/source/java/CanvasFont.java116
-rw-r--r--canvas/source/java/CanvasGraphicDevice.java222
-rw-r--r--canvas/source/java/CanvasSprite.java308
-rw-r--r--canvas/source/java/CanvasTest_perftest.java676
-rw-r--r--canvas/source/java/CanvasUtils.java627
-rw-r--r--canvas/source/java/JavaCanvas.java675
-rw-r--r--canvas/source/java/LinePolyPolygon.java192
-rw-r--r--canvas/source/java/SpriteBase.java34
-rw-r--r--canvas/source/java/SpriteRep.java175
-rw-r--r--canvas/source/java/SpriteRunner.java200
-rw-r--r--canvas/source/java/TextLayout.java205
-rw-r--r--canvas/source/java/aqua/WindowAdapter.java202
-rw-r--r--canvas/source/java/java_Service.java118
-rw-r--r--canvas/source/java/makefile.mk93
-rw-r--r--canvas/source/java/manifest1
-rw-r--r--canvas/source/java/perftest/PerfTest.java314
-rw-r--r--canvas/source/java/perftest/WindowAdapter.java197
-rw-r--r--canvas/source/java/perftest/makefile.mk55
-rw-r--r--canvas/source/java/perftest/manifest1
-rw-r--r--canvas/source/java/win/WindowAdapter.java199
-rw-r--r--canvas/source/java/x11/WindowAdapter.java197
-rw-r--r--canvas/source/null/exports.map8
-rw-r--r--canvas/source/null/makefile.mk2
-rw-r--r--canvas/source/null/null_spritecanvas.hxx4
-rw-r--r--canvas/source/simplecanvas/exports.map8
-rw-r--r--canvas/source/simplecanvas/makefile.mk2
-rwxr-xr-x[-rw-r--r--]canvas/source/tools/canvastools.cxx48
-rw-r--r--canvas/source/tools/image.cxx2
-rw-r--r--canvas/source/tools/parametricpolypolygon.cxx114
-rw-r--r--canvas/source/tools/verifyinput.cxx4
-rw-r--r--canvas/source/vcl/canvas.hxx3
-rwxr-xr-x[-rw-r--r--]canvas/source/vcl/canvashelper_texturefill.cxx476
-rw-r--r--canvas/source/vcl/exports.map8
-rw-r--r--canvas/source/vcl/makefile.mk2
-rw-r--r--canvas/source/vcl/spritecanvas.hxx3
-rw-r--r--chart2/prj/build.lst1
-rw-r--r--chart2/qa/unoapi/Test.java51
-rw-r--r--chart2/qa/unoapi/makefile.mk30
-rw-r--r--chart2/source/controller/controller.map8
-rw-r--r--chart2/source/controller/makefile.mk2
-rw-r--r--chart2/source/model/makefile.mk2
-rw-r--r--chart2/source/model/model.map8
-rw-r--r--chart2/source/tools/tools.map8
-rw-r--r--chart2/source/view/view.map9
-rw-r--r--cli_ure/source/basetypes/makefile.mk17
-rw-r--r--cli_ure/source/climaker/makefile.mk2
-rw-r--r--cli_ure/source/native/makefile.mk15
-rw-r--r--cli_ure/source/native/msvc.map2
-rw-r--r--cli_ure/source/ure/makefile.mk17
-rw-r--r--cli_ure/version/makefile.mk9
-rw-r--r--codemaker/test/cppumaker/makefile.mk2
-rw-r--r--comphelper/qa/makefile.mk2
-rw-r--r--configmgr/prj/build.lst1
-rw-r--r--configmgr/qa/unit/makefile.mk2
-rw-r--r--configmgr/qa/unoapi/Test.java50
-rw-r--r--configmgr/qa/unoapi/makefile.mk20
-rw-r--r--configure.in289
-rw-r--r--connectivity/com/sun/star/sdbcx/comp/hsqldb/makefile.mk7
-rw-r--r--connectivity/source/cpool/dbpool.map8
-rw-r--r--connectivity/source/cpool/makefile.mk2
-rw-r--r--connectivity/source/dbtools/dbt.map8
-rw-r--r--connectivity/source/drivers/adabas/adabas.map8
-rw-r--r--connectivity/source/drivers/adabas/makefile.mk2
-rw-r--r--connectivity/source/drivers/calc/calc.map8
-rw-r--r--connectivity/source/drivers/calc/makefile.mk2
-rw-r--r--connectivity/source/drivers/dbase/DTable.cxx1
-rw-r--r--connectivity/source/drivers/dbase/dbase.map10
-rw-r--r--connectivity/source/drivers/dbase/makefile.mk2
-rw-r--r--connectivity/source/drivers/evoab/evoab.map8
-rw-r--r--connectivity/source/drivers/evoab/makefile.mk2
-rw-r--r--connectivity/source/drivers/evoab2/evoab2.map8
-rw-r--r--connectivity/source/drivers/evoab2/makefile.mk2
-rw-r--r--connectivity/source/drivers/flat/flat.map8
-rw-r--r--connectivity/source/drivers/flat/makefile.mk2
-rw-r--r--connectivity/source/drivers/jdbc/jdbc.map8
-rw-r--r--connectivity/source/drivers/jdbc/makefile.mk2
-rw-r--r--connectivity/source/drivers/kab/kab.map8
-rw-r--r--connectivity/source/drivers/kab/kabdrv.map2
-rw-r--r--connectivity/source/drivers/kab/makefile.mk2
-rwxr-xr-xconnectivity/source/drivers/macab/MacabConnection.cxx3
-rwxr-xr-xconnectivity/source/drivers/macab/MacabServices.cxx6
-rwxr-xr-xconnectivity/source/drivers/macab/macab.map8
-rwxr-xr-xconnectivity/source/drivers/macab/macab.xcu2
-rwxr-xr-xconnectivity/source/drivers/macab/macabdrv.map6
-rwxr-xr-xconnectivity/source/drivers/macab/makefile.mk4
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/makefile.mk2
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/mozbootstrap.map8
-rw-r--r--connectivity/source/drivers/mozab/makefile.mk2
-rw-r--r--connectivity/source/drivers/mozab/mozab.map8
-rw-r--r--connectivity/source/drivers/mozab/mozabdrv.map2
-rw-r--r--connectivity/source/drivers/mysql/makefile.mk2
-rw-r--r--connectivity/source/drivers/mysql/mysql.map8
-rw-r--r--connectivity/source/drivers/odbc/makefile.mk2
-rw-r--r--connectivity/source/drivers/odbc/odbc.map8
-rw-r--r--connectivity/source/manager/makefile.mk2
-rw-r--r--connectivity/source/manager/sdbc.map8
-rw-r--r--cppcanvas/source/mtfrenderer/implrenderer.cxx371
-rw-r--r--cppu/qa/makefile.mk2
-rw-r--r--cppuhelper/prj/build.lst1
-rw-r--r--cppuhelper/qa/ifcontainer/export.map2
-rw-r--r--cppuhelper/qa/ifcontainer/makefile.mk1
-rw-r--r--cppuhelper/qa/propertysetmixin/comp.map36
-rw-r--r--cppuhelper/qa/propertysetmixin/makefile.mk115
-rw-r--r--cppuhelper/qa/propertysetmixin/test.map2
-rw-r--r--cppuhelper/qa/propertysetmixin/test_propertysetmixin.cxx32
-rw-r--r--cppuhelper/qa/unourl/export.map2
-rw-r--r--cppuhelper/qa/unourl/makefile.mk1
-rw-r--r--cppuhelper/qa/weak/makefile.mk1
-rw-r--r--cppuhelper/test/cfg_test.map8
-rw-r--r--cppunit/cppunit-1.8.0-r1.patch2415
-rw-r--r--cppunit/makefile.mk147
-rw-r--r--cppunit/ooo-DllPlugInTester.mk (renamed from stoc/test/tdmanager/testtdmanager.gcc3.map)32
-rw-r--r--cppunit/ooo-cppunit_dll.mk100
-rw-r--r--cppunit/prj/build.lst5
-rw-r--r--cppunit/prj/d.lst33
-rw-r--r--cppunit/solarisfinite.patch14
-rw-r--r--cppunit/warnings.patch22
-rw-r--r--cppunit/windows.patch12
-rw-r--r--crashrep/source/all/crashrep.ulf12
-rw-r--r--cui/util/cui.map2
-rw-r--r--curl/makefile.mk1
-rw-r--r--dbaccess/prj/build.lst1
-rw-r--r--dbaccess/qa/complex/dbaccess/RowSet.java2
-rw-r--r--dbaccess/qa/unoapi/Test.java52
-rw-r--r--dbaccess/qa/unoapi/makefile.mk39
-rw-r--r--dbaccess/source/core/api/BookmarkSet.cxx4
-rw-r--r--dbaccess/source/core/api/BookmarkSet.hxx2
-rw-r--r--dbaccess/source/core/api/CacheSet.cxx2
-rw-r--r--dbaccess/source/core/api/CacheSet.hxx2
-rw-r--r--dbaccess/source/core/api/KeySet.cxx264
-rw-r--r--dbaccess/source/core/api/KeySet.hxx15
-rw-r--r--dbaccess/source/core/api/RowSet.cxx2
-rw-r--r--dbaccess/source/core/api/RowSetCache.cxx14
-rw-r--r--dbaccess/source/core/api/RowSetCache.hxx3
-rw-r--r--dbaccess/source/core/api/SingleSelectQueryComposer.cxx28
-rw-r--r--dbaccess/source/ext/adabas/adabasui.map8
-rw-r--r--dbaccess/source/ext/adabas/makefile.mk2
-rw-r--r--dbaccess/source/ext/macromigration/dbmm.map8
-rw-r--r--dbaccess/source/ext/macromigration/makefile.mk2
-rw-r--r--dbaccess/source/filter/migration/exports.map9
-rw-r--r--dbaccess/source/filter/migration/makefile.mk2
-rw-r--r--dbaccess/source/filter/xml/exports.map9
-rw-r--r--dbaccess/source/filter/xml/makefile.mk2
-rw-r--r--dbaccess/source/ui/control/tabletree.cxx56
-rw-r--r--dbaccess/source/ui/misc/WCopyTable.cxx3
-rw-r--r--dbaccess/util/dba.map8
-rw-r--r--dbaccess/util/dbu.map8
-rw-r--r--dbaccess/util/makefile.mk4
-rw-r--r--dbaccess/util/sdbt.map8
-rw-r--r--default_images/res/mainapp_16.pngbin948 -> 893 bytes
-rw-r--r--default_images/res/mainapp_16_8.pngbin1020 -> 893 bytes
-rw-r--r--default_images/res/mainapp_16_h.pngbin173 -> 3675 bytes
-rw-r--r--default_images/res/mainapp_32.pngbin2271 -> 2429 bytes
-rw-r--r--default_images/res/mainapp_32_8.pngbin2208 -> 2429 bytes
-rw-r--r--default_images/res/mainapp_32_h.pngbin275 -> 3859 bytes
-rw-r--r--default_images/res/mainapp_48_8.pngbin3577 -> 4184 bytes
-rw-r--r--default_images/res/printeradmin_16.pngbin888 -> 4259 bytes
-rw-r--r--default_images/res/printeradmin_16_8.pngbin869 -> 4259 bytes
-rw-r--r--default_images/res/printeradmin_16_h.pngbin194 -> 3671 bytes
-rw-r--r--default_images/res/printeradmin_32.pngbin1885 -> 5595 bytes
-rw-r--r--default_images/res/printeradmin_32_8.pngbin1756 -> 5595 bytes
-rw-r--r--default_images/res/printeradmin_32_h.pngbin305 -> 3916 bytes
-rw-r--r--default_images/res/printeradmin_48_8.pngbin2902 -> 7337 bytes
-rw-r--r--desktop/qa/deployment_misc/makefile.mk1
-rw-r--r--desktop/source/app/app.cxx36
-rw-r--r--desktop/source/app/appinit.cxx5
-rw-r--r--desktop/source/app/cmdlineargs.cxx13
-rw-r--r--desktop/source/app/cmdlineargs.hxx2
-rw-r--r--desktop/source/app/copyright_ascii_ooo.c8
-rw-r--r--desktop/source/app/copyright_ascii_sun.c14
-rw-r--r--desktop/source/app/desktop.src2
-rw-r--r--desktop/source/app/version.map2
-rw-r--r--desktop/source/deployment/deployment.map8
-rw-r--r--desktop/source/deployment/gui/makefile.mk2
-rw-r--r--desktop/source/deployment/makefile.mk2
-rw-r--r--desktop/source/inc/exithelper.hxx4
-rw-r--r--desktop/source/migration/services/makefile.mk2
-rw-r--r--desktop/source/migration/services/migrationoo2.map8
-rw-r--r--desktop/source/offacc/exports.map10
-rw-r--r--desktop/source/offacc/makefile.mk2
-rw-r--r--desktop/source/pkgchk/unopkg/version.map2
-rw-r--r--desktop/source/so_comp/exports.map10
-rw-r--r--desktop/source/so_comp/makefile.mk2
-rw-r--r--desktop/source/splash/exports.map10
-rw-r--r--desktop/source/splash/makefile.mk2
-rw-r--r--desktop/util/ooverinfo.rc4
-rw-r--r--desktop/util/ooverinfo2.rc2
-rw-r--r--desktop/util/verinfo.rc4
-rw-r--r--desktop/win32/source/applauncher/makefile.mk2
-rw-r--r--desktop/win32/source/applauncher/ooo/makefile.mk2
-rw-r--r--drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx20
-rw-r--r--drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx7
-rw-r--r--drawinglayer/source/primitive3d/hatchtextureprimitive3d.cxx6
-rw-r--r--drawinglayer/source/processor2d/vclhelpergradient.cxx16
-rw-r--r--drawinglayer/source/processor2d/vclprocessor2d.cxx2
-rw-r--r--drawinglayer/source/processor3d/defaultprocessor3d.cxx10
-rw-r--r--drawinglayer/source/texture/texture.cxx130
-rw-r--r--drawinglayer/source/texture/texture3d.cxx2
-rw-r--r--dtrans/source/generic/exports.map9
-rw-r--r--dtrans/source/generic/makefile.mk2
-rw-r--r--dtrans/util/exports.map10
-rw-r--r--dtrans/util/makefile.mk2
-rw-r--r--editeng/source/editeng/editdbg.cxx2
-rw-r--r--epm/makefile.mk1
-rw-r--r--eventattacher/source/exports.map10
-rw-r--r--eventattacher/source/makefile.mk2
-rw-r--r--expat/makefile.mk1
-rw-r--r--extensions/prj/build.lst1
-rw-r--r--extensions/qa/unoapi/Test.java50
-rw-r--r--extensions/qa/unoapi/makefile.mk30
-rw-r--r--extensions/source/abpilot/abp.map8
-rw-r--r--extensions/source/abpilot/makefile.mk2
-rw-r--r--extensions/source/activex/main/makefile.mk4
-rw-r--r--extensions/source/bibliography/exports.map10
-rw-r--r--extensions/source/bibliography/makefile.mk2
-rw-r--r--extensions/source/dbpilots/dbp.map8
-rw-r--r--extensions/source/dbpilots/makefile.mk2
-rw-r--r--extensions/source/logging/log.map8
-rw-r--r--extensions/source/logging/makefile.mk2
-rw-r--r--extensions/source/oooimprovecore/makefile.mk2
-rw-r--r--extensions/source/oooimprovecore/oooimprovecore.map8
-rw-r--r--extensions/source/oooimprovement/makefile.mk2
-rw-r--r--extensions/source/oooimprovement/oooimprovement.map11
-rw-r--r--extensions/source/plugin/unx/npwrap.cxx2
-rw-r--r--extensions/source/plugin/util/exports.map10
-rw-r--r--extensions/source/plugin/util/makefile.mk2
-rw-r--r--extensions/source/preload/makefile.mk2
-rw-r--r--extensions/source/preload/preload.map8
-rw-r--r--extensions/source/preload/preload.src6
-rw-r--r--extensions/source/propctrlr/makefile.mk2
-rw-r--r--extensions/source/propctrlr/pcr.map8
-rw-r--r--extensions/source/resource/exports.map10
-rw-r--r--extensions/source/resource/makefile.mk2
-rw-r--r--extensions/source/scanner/exports.map10
-rw-r--r--extensions/source/scanner/makefile.mk2
-rw-r--r--extensions/source/svg/exports.map10
-rw-r--r--extensions/source/svg/makefile.mk2
-rw-r--r--extensions/source/update/check/makefile.mk2
-rw-r--r--extensions/source/update/check/updatecheckjob.cxx62
-rw-r--r--extensions/source/update/exports.map10
-rw-r--r--extensions/source/update/feed/makefile.mk2
-rw-r--r--extensions/source/update/ui/makefile.mk2
-rw-r--r--extensions/source/xmlextract/exports.map10
-rw-r--r--extensions/source/xmlextract/makefile.mk2
-rw-r--r--external/glibc/makefile.mk1
-rw-r--r--extras/prj/build.lst1
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/sunstyle.otsbin9513 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/sunstyle.otsbin8162 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/sunstyle.otsbin7941 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/sunstyle.otsbin8247 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/delzip1
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/sunstyle.otsbin9726 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/sunstyle.otsbin8162 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/sunstyle.otsbin8024 -> 0 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/sunstyle.otsbin12024 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/sunstyle.otsbin7940 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/sunstyle.otsbin10185 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/sunstyle.otsbin8042 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/sunstyle.otsbin8357 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/sunstyle.otsbin11273 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/sunstyle.otsbin8279 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/sunstyle.otsbin7852 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/sunstyle.otsbin8017 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/sunstyle.otsbin8217 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/sunstyle.otsbin7941 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/sunstyle.otsbin7995 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/sunstyle.otsbin9134 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/sunstyle.otsbin8606 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/sunstyle.otsbin8196 -> 0 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/sunstyle.otsbin11120 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/sunstyle.otsbin8120 -> 0 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/sunstyle.otsbin8108 -> 0 bytes
-rwxr-xr-xfetch_tarballs.sh143
-rw-r--r--fileaccess/source/exports.map10
-rw-r--r--fileaccess/source/makefile.mk2
-rw-r--r--filter/qa/complex/filter/detection/typeDetection/makefile.mk11
-rw-r--r--filter/source/config/cache/exports.map10
-rw-r--r--filter/source/config/cache/makefile.mk2
-rw-r--r--filter/source/config/fragments/filters/writerglobal8_writer.xcu2
-rw-r--r--filter/source/config/fragments/makefile.mk2
-rw-r--r--filter/source/flash/exports.map9
-rw-r--r--filter/source/flash/makefile.mk2
-rw-r--r--filter/source/graphicfilter/egif/exports.map2
-rw-r--r--filter/source/graphicfilter/eos2met/exports.map2
-rw-r--r--filter/source/graphicfilter/epbm/exports.map2
-rw-r--r--filter/source/graphicfilter/epgm/exports.map2
-rw-r--r--filter/source/graphicfilter/epict/exports.map2
-rw-r--r--filter/source/graphicfilter/eppm/exports.map2
-rw-r--r--filter/source/graphicfilter/eps/exports.map2
-rw-r--r--filter/source/graphicfilter/eras/exports.map2
-rw-r--r--filter/source/graphicfilter/etiff/exports.map2
-rw-r--r--filter/source/graphicfilter/expm/exports.map2
-rw-r--r--filter/source/graphicfilter/icgm/exports.map2
-rw-r--r--filter/source/graphicfilter/idxf/exports.map2
-rw-r--r--filter/source/graphicfilter/ieps/exports.map2
-rw-r--r--filter/source/graphicfilter/ios2met/exports.map2
-rw-r--r--filter/source/graphicfilter/ipbm/exports.map2
-rw-r--r--filter/source/graphicfilter/ipcd/exports.map2
-rw-r--r--filter/source/graphicfilter/ipcx/exports.map2
-rw-r--r--filter/source/graphicfilter/ipict/exports.map2
-rw-r--r--filter/source/graphicfilter/ipsd/exports.map2
-rw-r--r--filter/source/graphicfilter/iras/exports.map2
-rw-r--r--filter/source/graphicfilter/itga/exports.map2
-rw-r--r--filter/source/graphicfilter/itiff/exports.map2
-rw-r--r--filter/source/msfilter/msocximex.cxx13
-rw-r--r--filter/source/msfilter/powerpoint/exports.map9
-rw-r--r--filter/source/msfilter/powerpoint/makefile.mk2
-rw-r--r--filter/source/pdf/exports.map9
-rw-r--r--filter/source/pdf/makefile.mk2
-rw-r--r--filter/source/placeware/makefile.mk2
-rw-r--r--filter/source/placeware/placeware.map8
-rw-r--r--filter/source/svg/exports.map9
-rw-r--r--filter/source/svg/makefile.mk2
-rw-r--r--filter/source/t602/makefile.mk2
-rw-r--r--filter/source/t602/t602filter.map8
-rw-r--r--filter/source/xmlfilteradaptor/makefile.mk2
-rw-r--r--filter/source/xmlfilteradaptor/xmlfa.map10
-rw-r--r--filter/source/xmlfilterdetect/makefile.mk2
-rw-r--r--filter/source/xmlfilterdetect/xmlfd.map10
-rw-r--r--filter/source/xsltfilter/XSLTransformer.java5
-rw-r--r--filter/source/xsltfilter/exports.map10
-rw-r--r--filter/source/xsltfilter/makefile.mk11
-rw-r--r--filter/source/xsltvalidate/makefile.mk4
-rw-r--r--forms/prj/build.lst1
-rw-r--r--forms/qa/unoapi/Test.java51
-rw-r--r--forms/qa/unoapi/makefile.mk38
-rw-r--r--forms/source/component/Columns.cxx20
-rw-r--r--forms/source/component/ListBox.cxx22
-rw-r--r--forms/source/component/ListBox.hxx5
-rw-r--r--forms/source/inc/componenttools.hxx6
-rw-r--r--forms/source/misc/componenttools.cxx12
-rw-r--r--forms/util/frm.map8
-rw-r--r--forms/util/makefile.mk2
-rw-r--r--formula/inc/formula/errorcodes.hxx8
-rw-r--r--formula/util/for.map8
-rw-r--r--formula/util/forui.map8
-rw-r--r--formula/util/makefile.mk1
-rw-r--r--fpicker/source/aqua/exports.map8
-rw-r--r--fpicker/source/aqua/makefile.mk2
-rw-r--r--fpicker/source/generic/exports.map8
-rw-r--r--fpicker/source/generic/makefile.mk2
-rw-r--r--fpicker/source/office/exports.map8
-rw-r--r--fpicker/source/office/makefile.mk2
-rw-r--r--fpicker/source/unx/gnome/exports.map8
-rw-r--r--fpicker/source/unx/gnome/makefile.mk2
-rw-r--r--fpicker/source/win32/filepicker/VistaFilePickerEventHandler.cxx40
-rw-r--r--framework/prj/build.lst2
-rw-r--r--framework/qa/unoapi/Test.java51
-rwxr-xr-xframework/qa/unoapi/makefile.mk33
-rw-r--r--framework/source/classes/resource.src2
-rw-r--r--framework/source/interaction/quietinteraction.cxx16
-rw-r--r--framework/source/services/backingwindow.cxx199
-rw-r--r--framework/source/services/backingwindow.hxx22
-rw-r--r--framework/util/exports.map10
-rw-r--r--framework/util/makefile.mk6
-rw-r--r--graphite/makefile.mk1
-rwxr-xr-xhsqldb/makefile.mk1
-rw-r--r--hunspell/hunspell-1.2.8.patch632
-rw-r--r--hunspell/hunspell-consts-1.2.8.patch22
-rw-r--r--hunspell/hunspell-solaris.patch12
-rw-r--r--hunspell/hunspell-stacksmash.patch28
-rw-r--r--hunspell/hunspell-wntconfig.patch4
-rw-r--r--hunspell/makefile.mk13
-rw-r--r--hwpfilter/source/hwp.map8
-rw-r--r--hwpfilter/source/makefile.mk2
-rw-r--r--hyphen/makefile.mk3
-rw-r--r--i18npool/source/breakiterator/data/dict.map2
-rw-r--r--i18npool/source/breakiterator/data/dict_word.txt2
-rw-r--r--i18npool/source/breakiterator/data/dict_word_prepostdash.txt4
-rw-r--r--i18npool/source/collator/data/collator_data.map2
-rw-r--r--i18npool/source/indexentry/data/index_data.map2
-rw-r--r--i18npool/source/localedata/data/localedata_en.map2
-rw-r--r--i18npool/source/localedata/data/localedata_es.map2
-rw-r--r--i18npool/source/localedata/data/localedata_euro.map2
-rw-r--r--i18npool/source/localedata/data/localedata_others.map2
-rw-r--r--i18npool/source/search/i18nsearch.map10
-rw-r--r--i18npool/source/search/makefile.mk2
-rw-r--r--i18npool/source/textconversion/data/textconv_dict.map2
-rw-r--r--i18npool/util/i18npool.map10
-rw-r--r--i18npool/util/makefile.mk2
-rw-r--r--icc/makefile.mk1
-rw-r--r--icu/createmak.cfg907
-rw-r--r--icu/makefile.mk12
-rw-r--r--idl/util/svidl.hdb25
-rw-r--r--idlc/source/makefile.mk4
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf6
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/ControlC.idt6
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt10
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt2
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt4
-rw-r--r--instsetoo_native/prj/d.lst4
-rw-r--r--instsetoo_native/util/makefile.mk118
-rw-r--r--instsetoo_native/util/openoffice.lst5
-rw-r--r--io/source/TextInputStream/makefile.mk2
-rw-r--r--io/source/TextInputStream/tinstrm.map9
-rw-r--r--io/source/TextOutputStream/makefile.mk2
-rw-r--r--io/source/TextOutputStream/toutstrm.map9
-rw-r--r--io/source/acceptor/acceptor.map9
-rw-r--r--io/source/acceptor/makefile.mk2
-rw-r--r--io/source/connector/connectr.map9
-rw-r--r--io/source/connector/makefile.mk2
-rw-r--r--io/source/stm/makefile.mk2
-rw-r--r--io/source/stm/stm.map9
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java1
-rw-r--r--javaunohelper/source/javaunohelper.map2
-rw-r--r--jfreereport/download/core.zipbin764464 -> 0 bytes
-rw-r--r--jfreereport/download/flute.zipbin83503 -> 0 bytes
-rw-r--r--jfreereport/download/libbase.zipbin161294 -> 0 bytes
-rw-r--r--jfreereport/download/libfonts.zipbin1336993 -> 0 bytes
-rw-r--r--jfreereport/download/libformula.zipbin516667 -> 0 bytes
-rw-r--r--jfreereport/download/liblayout.zipbin1449297 -> 0 bytes
-rw-r--r--jfreereport/download/libloader.zipbin166507 -> 0 bytes
-rw-r--r--jfreereport/download/librepository.zipbin89510 -> 0 bytes
-rw-r--r--jfreereport/download/libserializer.zipbin44748 -> 0 bytes
-rw-r--r--jfreereport/download/libxml.zipbin101837 -> 0 bytes
-rw-r--r--jfreereport/download/sacjava-1.3.zipbin153157 -> 0 bytes
-rw-r--r--jfreereport/java/flute/makefile.mk1
-rw-r--r--jfreereport/java/jfreereport/makefile.mk1
-rw-r--r--jfreereport/java/libbase/makefile.mk1
-rw-r--r--jfreereport/java/libfonts/makefile.mk1
-rw-r--r--jfreereport/java/libformula/makefile.mk1
-rw-r--r--jfreereport/java/liblayout/makefile.mk1
-rw-r--r--jfreereport/java/libloader/makefile.mk1
-rw-r--r--jfreereport/java/librepository/makefile.mk1
-rw-r--r--jfreereport/java/libserializer/makefile.mk1
-rw-r--r--jfreereport/java/libxml/makefile.mk1
-rw-r--r--jfreereport/java/sac/makefile.mk1
-rw-r--r--jpeg/makefile.mk1
-rw-r--r--jvmaccess/util/cc5_solaris_sparc.map4
-rw-r--r--jvmaccess/util/gcc3.map4
-rw-r--r--jvmaccess/util/msvc_win32_intel.map4
-rw-r--r--l10ntools/inc/wrdtrans.hxx87
-rw-r--r--l10ntools/java/receditor/java/transex3/model/SdfString.java25
-rw-r--r--l10ntools/scripts/fast_merge.pl10
-rwxr-xr-xl10ntools/scripts/localize.pl38
-rwxr-xr-xl10ntools/scripts/localize_old.pl56
-rw-r--r--l10ntools/source/help/makefile.mk2
-rw-r--r--l10ntools/source/wrdtrans.cxx245
-rw-r--r--libtextcat/makefile.mk1
-rw-r--r--libwpd/makefile.mk1
-rw-r--r--libxml2/makefile.mk1
-rw-r--r--libxmlsec/makefile.mk1
-rw-r--r--libxslt/makefile.mk1
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen.map8
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk2
-rw-r--r--lingucomponent/source/languageguessing/guesslang.map8
-rw-r--r--lingucomponent/source/languageguessing/makefile.mk2
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/MacOSXSpell.map8
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/makefile.mk2
-rw-r--r--lingucomponent/source/spellcheck/spell/makefile.mk2
-rw-r--r--lingucomponent/source/spellcheck/spell/spell.map8
-rw-r--r--lingucomponent/source/thesaurus/libnth/lnth.map8
-rw-r--r--lingucomponent/source/thesaurus/libnth/makefile.mk2
-rw-r--r--linguistic/prj/build.lst1
-rw-r--r--linguistic/qa/unoapi/Test.java51
-rw-r--r--linguistic/qa/unoapi/makefile.mk30
-rw-r--r--linguistic/source/convdiclist.cxx37
-rw-r--r--linguistic/source/staticmb.cxx29
-rw-r--r--linguistic/workben/lex.map8
-rw-r--r--linguistic/workben/makefile.mk2
-rw-r--r--lpsolve/makefile.mk1
-rw-r--r--lucene/makefile.mk1
-rw-r--r--moz/extractfiles.mk5
-rw-r--r--moz/makefile.mk13
-rw-r--r--mysqlc/images/sun_extension.pngbin5448 -> 5483 bytes
-rw-r--r--mysqlc/images/sun_extension_hc.pngbin3182 -> 3176 bytes
-rw-r--r--mysqlc/source/description.xml2
-rw-r--r--mysqlc/source/makefile.mk3
-rw-r--r--mysqlc/source/mysqlc_connection.cxx22
-rw-r--r--mysqlc/source/mysqlc_connection.hxx2
-rw-r--r--mysqlc/source/mysqlc_databasemetadata.cxx32
-rw-r--r--mysqlc/source/mysqlc_databasemetadata.hxx6
-rw-r--r--mysqlc/source/mysqlc_driver.cxx2
-rw-r--r--mysqlc/source/mysqlc_driver.hxx2
-rw-r--r--mysqlc/source/mysqlc_general.cxx6
-rw-r--r--mysqlc/source/mysqlc_general.hxx10
-rw-r--r--mysqlc/source/mysqlc_preparedstatement.cxx10
-rw-r--r--mysqlc/source/mysqlc_preparedstatement.hxx2
-rw-r--r--mysqlc/source/mysqlc_resultsetmetadata.hxx4
-rw-r--r--mysqlc/source/mysqlc_statement.hxx2
-rw-r--r--mysqlcppconn/makefile.mk1
-rw-r--r--neon/makefile.mk3
-rw-r--r--neon/neon.patch31
-rw-r--r--neon/neon_exports_unix.patch2
-rw-r--r--neon/neon_exports_win.patch2
-rwxr-xr-xneon/prj/build.lst2
-rw-r--r--nss/makefile.mk5
-rw-r--r--o3tl/inc/o3tl/vector_pool.hxx132
-rw-r--r--o3tl/prj/build.lst2
-rw-r--r--o3tl/qa/export.map4
-rw-r--r--o3tl/qa/makefile.mk15
-rw-r--r--o3tl/qa/test-cow_wrapper.cxx18
-rw-r--r--o3tl/qa/test-heap_ptr.cxx6
-rw-r--r--o3tl/qa/test-range.cxx7
-rw-r--r--o3tl/qa/test-vector_pool.cxx69
-rw-r--r--odk/docs/common/ref/idl.css21
-rw-r--r--[-rwxr-xr-x]odk/docs/cpp/ref/cpp.css36
-rw-r--r--odk/docs/images/arrow-1.gifbin68 -> 98 bytes
-rw-r--r--odk/docs/images/arrow-2.gifbin68 -> 68 bytes
-rw-r--r--odk/docs/images/arrow-3.gifbin68 -> 98 bytes
-rw-r--r--odk/docs/images/bg_table.pngbin0 -> 128 bytes
-rw-r--r--odk/docs/images/bg_table2.pngbin0 -> 128 bytes
-rw-r--r--odk/docs/images/bg_table3.pngbin0 -> 128 bytes
-rw-r--r--odk/docs/images/nav_down.pngbin320 -> 224 bytes
-rw-r--r--odk/docs/images/nav_left.pngbin279 -> 223 bytes
-rw-r--r--odk/docs/images/nav_right.pngbin283 -> 225 bytes
-rw-r--r--odk/docs/images/nav_up.pngbin282 -> 211 bytes
-rw-r--r--odk/docs/images/odk-footer-logo.gifbin0 -> 850 bytes
-rw-r--r--odk/docs/images/ooo-main-app_32.pngbin2271 -> 2429 bytes
-rw-r--r--odk/docs/images/orc-main-app_32.pngbin0 -> 2496 bytes
-rw-r--r--odk/docs/images/sdk_head-1.gifbin10949 -> 0 bytes
-rw-r--r--odk/docs/images/sdk_head-1.pngbin0 -> 12367 bytes
-rw-r--r--odk/docs/images/sdk_head-2.gifbin58 -> 0 bytes
-rw-r--r--odk/docs/images/sdk_head-2.pngbin0 -> 175 bytes
-rw-r--r--odk/docs/images/sdk_head-3.gifbin1528 -> 0 bytes
-rw-r--r--odk/docs/images/sdk_line-1.gifbin51 -> 43 bytes
-rw-r--r--odk/docs/images/sdk_line-2.gifbin66 -> 113 bytes
-rw-r--r--odk/docs/images/so-main-app_32.pngbin2323 -> 0 bytes
-rw-r--r--odk/docs/install.html24
-rw-r--r--odk/docs/notsupported.html5
-rw-r--r--odk/docs/sdk_styles.css9
-rw-r--r--odk/docs/tools.html36
-rw-r--r--odk/examples/DevelopersGuide/examples.html89
-rw-r--r--odk/examples/examples.html62
-rw-r--r--odk/index.html56
-rw-r--r--odk/pack/copying/makefile.mk194
-rw-r--r--odk/util/check.pl16
-rw-r--r--odk/util/makefile.mk2
-rw-r--r--odk/util/makefile.pmk143
-rw-r--r--odk/util/odk_rules.pmk163
-rw-r--r--offapi/com/sun/star/rendering/TexturingMode.idl19
-rw-r--r--offapi/com/sun/star/rendering/XGraphicDevice.idl67
-rw-r--r--offapi/com/sun/star/rendering/XParametricPolyPolygon2DFactory.idl152
-rw-r--r--offapi/com/sun/star/rendering/makefile.mk1
-rw-r--r--officecfg/prj/build.lst1
-rwxr-xr-xofficecfg/registry/data/org/openoffice/Office/Accelerators.xcu71
-rw-r--r--officecfg/util/makefile.mk2
-rw-r--r--oox/inc/oox/drawingml/shape.hxx13
-rw-r--r--oox/inc/oox/drawingml/textbodyproperties.hxx4
-rw-r--r--oox/inc/oox/drawingml/textparagraph.hxx6
-rw-r--r--oox/inc/oox/xls/stylesbuffer.hxx33
-rwxr-xr-x[-rw-r--r--]oox/source/core/filterbase.cxx0
-rw-r--r--oox/source/core/xmlfilterbase.cxx89
-rw-r--r--oox/source/drawingml/makefile.mk1
-rw-r--r--oox/source/drawingml/shape.cxx23
-rw-r--r--oox/source/drawingml/shapecontext.cxx2
-rw-r--r--oox/source/drawingml/shapegroupcontext.cxx2
-rw-r--r--oox/source/drawingml/textbodycontext.cxx2
-rw-r--r--oox/source/drawingml/textbodyproperties.cxx (renamed from testshl2/workben/test_printf.cxx)48
-rw-r--r--oox/source/drawingml/textbodypropertiescontext.cxx17
-rw-r--r--oox/source/drawingml/textcharacterpropertiescontext.cxx21
-rw-r--r--oox/source/drawingml/textparagraph.cxx18
-rw-r--r--oox/source/export/drawingml.cxx11
-rw-r--r--oox/source/ole/axcontrol.cxx25
-rw-r--r--oox/source/ppt/pptshape.cxx57
-rw-r--r--oox/source/ppt/pptshapecontext.cxx28
-rw-r--r--oox/source/ppt/pptshapegroupcontext.cxx2
-rw-r--r--oox/source/ppt/slidepersist.cxx2
-rw-r--r--oox/source/token/properties.txt1
-rw-r--r--oox/source/token/tokenmap.cxx2
-rw-r--r--oox/source/xls/biffhelper.cxx58
-rw-r--r--oox/source/xls/formulabase.cxx123
-rw-r--r--oox/source/xls/stylesbuffer.cxx224
-rw-r--r--openssl/makefile.mk1
-rw-r--r--package/util/exports.map8
-rw-r--r--packimages/pack/makefile.mk4
-rw-r--r--postprocess/checkdeliver/checkdeliver.pl6
-rw-r--r--postprocess/checkdeliver/makefile.mk2
-rw-r--r--postprocess/packregistry/makefile.mk2
-rw-r--r--postprocess/prj/build.lst2
-rwxr-xr-xpostprocess/rebase/rebase.pl4
-rw-r--r--python/makefile.mk5
-rw-r--r--qadevOOo/prj/build.lst1
-rw-r--r--qadevOOo/qa/unoapi/Test.java51
-rwxr-xr-xqadevOOo/qa/unoapi/makefile.mk30
-rw-r--r--qadevOOo/runner/base/java_fat.java13
-rw-r--r--qadevOOo/runner/basicrunner/BasicTestCase.java5
-rw-r--r--qadevOOo/runner/helper/ClParser.java4
-rw-r--r--qadevOOo/runner/lib/TestCase.java20
-rw-r--r--qadevOOo/runner/lib/TestEnvironment.java8
-rw-r--r--qadevOOo/runner/org/openoffice/Runner.java11
-rw-r--r--qadevOOo/runner/util/AccessibilityTools.java13
-rw-r--r--qadevOOo/runner/util/UITools.java20
-rw-r--r--qadevOOo/runner/util/utils.java17
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java39
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java134
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XSystemChildFactory.java40
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XToolkit.java5
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java7
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertySet.java17
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XRangeSelection.java6
-rw-r--r--qadevOOo/tests/java/mod/_basctl/AccessibleShape.java20
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ConnectionLineAccessibility.java10
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/JoinViewAccessibility.java10
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/TableWindowAccessibility.java10
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManager.java23
-rw-r--r--qadevOOo/tests/java/mod/_sd/DrawController_DrawView.java26
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBox.java15
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderBar.java14
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderCell.java15
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTable.java16
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTableCell.java20
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleTabBar.java17
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBox.java16
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBoxEntry.java16
-rwxr-xr-xqadevOOo/tests/java/mod/_sw/CharacterStyle.java6
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java9
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleMenu.java20
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleMenuBar.java24
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleMenuSeparator.java21
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBar.java29
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleToolBox.java16
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoTreeControl.java22
-rw-r--r--readlicense_oo/source/license/license_en-US.html6
-rw-r--r--readlicense_oo/source/license/license_en-US.rtf645
-rw-r--r--readlicense_oo/source/license/license_en-US.txt4
-rwxr-xr-xreadlicense_oo/util/makefile.pmk4
-rw-r--r--redland/raptor/makefile.mk1
-rw-r--r--redland/raptor/raptor2.map2
-rw-r--r--redland/rasqal/makefile.mk1
-rw-r--r--redland/rasqal/rasqal2.map2
-rw-r--r--redland/redland/makefile.mk1
-rw-r--r--redland/redland/redland2.map2
-rw-r--r--remotebridges/source/bridge/makefile.mk2
-rw-r--r--remotebridges/source/bridge/remotebridge.map9
-rw-r--r--remotebridges/source/factory/brdgfctr.map9
-rw-r--r--remotebridges/source/factory/makefile.mk2
-rw-r--r--remotebridges/source/unourl_resolver/makefile.mk2
-rw-r--r--remotebridges/source/unourl_resolver/uuresolver.map9
-rw-r--r--reportbuilder/images/em47.pngbin5448 -> 5483 bytes
-rw-r--r--reportbuilder/images/em47_hc.pngbin3182 -> 3176 bytes
-rw-r--r--reportbuilder/java/com/sun/star/report/function/metadata/makefile.mk4
-rw-r--r--reportbuilder/java/com/sun/star/report/makefile.mk2
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/makefile.mk4
-rw-r--r--reportbuilder/java/com/sun/star/report/util/makefile.mk2
-rw-r--r--reportbuilder/util/description.xml2
-rw-r--r--reportdesign/util/makefile.mk4
-rw-r--r--reportdesign/util/rpt.map9
-rw-r--r--reportdesign/util/rptui.map8
-rwxr-xr-xrhino/makefile.mk1
-rw-r--r--rhino/rhino1_5R5-find_swing.patch6
-rw-r--r--rsc/source/parser/erscerr.cxx2
-rw-r--r--rsc/source/prj/gui.cxx11
-rw-r--r--rsc/source/prj/start.cxx9
-rw-r--r--sal/cppunittester/cppunittester.cxx65
-rw-r--r--sal/cppunittester/makefile.mk (renamed from testshl2/util/makefile.mk)25
-rw-r--r--sal/inc/osl/semaphor.h19
-rw-r--r--sal/inc/osl/semaphor.hxx4
-rw-r--r--sal/osl/os2/process_impl.cxx5
-rw-r--r--sal/osl/unx/process.c11
-rw-r--r--sal/osl/unx/process_impl.cxx4
-rw-r--r--sal/osl/w32/pipe.c2
-rw-r--r--sal/osl/w32/process.cxx4
-rw-r--r--sal/osl/w32/procimpl.cxx22
-rw-r--r--sal/prj/build.lst8
-rw-r--r--sal/prj/d.lst2
-rw-r--r--sal/qa/ByteSequence/ByteSequence.cxx26
-rw-r--r--sal/qa/ByteSequence/export.exp1
-rw-r--r--sal/qa/ByteSequence/makefile.mk15
-rw-r--r--sal/qa/ByteSequence/rtl_old_testbyteseq.cxx12
-rw-r--r--sal/qa/OStringBuffer/export.exp1
-rw-r--r--sal/qa/OStringBuffer/makefile.mk13
-rw-r--r--sal/qa/OStringBuffer/rtl_OStringBuffer.cxx102
-rw-r--r--sal/qa/OStringBuffer/rtl_String_Const.h1
-rw-r--r--sal/qa/OStringBuffer/rtl_String_Utils.cxx2
-rwxr-xr-xsal/qa/export.map4
-rw-r--r--sal/qa/osl/module/export_dll.map2
-rwxr-xr-xsal/qa/osl/mutex/makefile.mk15
-rwxr-xr-xsal/qa/osl/mutex/osl_Mutex.cxx34
-rwxr-xr-xsal/qa/osl/mutex/osl_Mutex_Const.h4
-rw-r--r--sal/qa/osl/pipe/export.exp1
-rw-r--r--sal/qa/osl/pipe/makefile.mk12
-rw-r--r--sal/qa/osl/pipe/osl_Pipe.cxx121
-rw-r--r--sal/qa/osl/pipe/osl_Pipe.xsce9
-rw-r--r--sal/qa/osl/pipe/osl_Pipe_Const.h1
-rw-r--r--sal/qa/osl/profile/makefile.mk12
-rw-r--r--sal/qa/osl/profile/osl_old_testprofile.cxx15
-rw-r--r--sal/qa/osl/semaphore/makefile.mk61
-rw-r--r--sal/qa/osl/semaphore/osl_Semaphore.cxx525
-rw-r--r--sal/qa/osl/semaphore/osl_Semaphore_Const.h73
-rwxr-xr-xsal/qa/rtl/alloc/makefile.mk2
-rw-r--r--sal/qa/rtl/bootstrap/makefile.mk2
-rw-r--r--sal/qa/rtl/cipher/makefile.mk2
-rwxr-xr-xsal/qa/rtl/crc32/makefile.mk2
-rw-r--r--sal/qa/rtl/digest/makefile.mk2
-rw-r--r--sal/qa/rtl/doublelock/makefile.mk2
-rw-r--r--sal/qa/rtl/locale/makefile.mk2
-rw-r--r--sal/qa/rtl/logfile/makefile.mk2
-rw-r--r--sal/qa/rtl/math/makefile.mk2
-rw-r--r--sal/qa/rtl/ostring/makefile.mk2
-rw-r--r--sal/qa/rtl/oustring/makefile.mk2
-rw-r--r--sal/qa/rtl/oustringbuffer/makefile.mk2
-rw-r--r--sal/qa/rtl/process/makefile.mk2
-rw-r--r--sal/qa/rtl/random/makefile.mk2
-rw-r--r--sal/qa/rtl/strings/makefile.mk2
-rw-r--r--sal/qa/rtl/textenc/makefile.mk10
-rw-r--r--sal/qa/rtl/uri/makefile.mk2
-rw-r--r--sal/qa/rtl/uuid/makefile.mk2
-rw-r--r--sal/util/makefile.mk16
-rw-r--r--salhelper/inc/salhelper/queue.hxx12
-rw-r--r--salhelper/qa/makefile.mk2
-rw-r--r--salhelper/source/makefile.mk5
-rw-r--r--salhelper/source/staticmb.cxx26
-rw-r--r--salhelper/test/rtti/sols.map2
-rw-r--r--sax/source/fastparser/fastparser.cxx495
-rw-r--r--sax/source/fastparser/fastparser.hxx17
-rw-r--r--saxon/makefile.mk1
-rw-r--r--sc/addin/datefunc/makefile.mk4
-rw-r--r--sc/addin/makefile.mk5
-rw-r--r--sc/addin/rot13/exports.map2
-rw-r--r--sc/addin/rot13/makefile.mk5
-rw-r--r--sc/addin/util/makefile.mk4
-rw-r--r--sc/inc/chgtrack.hxx2
-rw-r--r--sc/inc/document.hxx16
-rw-r--r--sc/inc/drwlayer.hxx8
-rw-r--r--sc/inc/externalrefmgr.hxx13
-rw-r--r--sc/inc/global.hxx23
-rw-r--r--sc/inc/rangelst.hxx2
-rw-r--r--sc/inc/sc.hrc2
-rw-r--r--sc/inc/scimpexpmsg.hxx105
-rw-r--r--sc/inc/table.hxx14
-rwxr-xr-xsc/prj/build.lst1
-rw-r--r--sc/qa/unoapi/Test.java51
-rw-r--r--sc/qa/unoapi/knownissues.xcl28
-rw-r--r--sc/qa/unoapi/makefile.mk30
-rw-r--r--sc/source/core/data/documen3.cxx9
-rw-r--r--sc/source/core/data/documen9.cxx2
-rw-r--r--sc/source/core/data/document.cxx18
-rwxr-xr-xsc/source/core/data/drwlayer.cxx39
-rwxr-xr-xsc/source/core/data/makefile.mk2
-rw-r--r--sc/source/core/data/pivot.cxx34
-rw-r--r--sc/source/core/data/scimpexpmsg.cxx113
-rw-r--r--sc/source/core/data/table1.cxx148
-rw-r--r--sc/source/core/data/table2.cxx80
-rw-r--r--[-rwxr-xr-x]sc/source/core/tool/interpr4.cxx2
-rw-r--r--sc/source/core/tool/rangelst.cxx5
-rw-r--r--sc/source/filter/excel/xelink.cxx427
-rw-r--r--sc/source/filter/excel/xihelper.cxx4
-rw-r--r--sc/source/filter/excel/xilink.cxx12
-rw-r--r--sc/source/filter/excel/xistyle.cxx67
-rw-r--r--sc/source/filter/excel/xlformula.cxx184
-rw-r--r--sc/source/filter/excel/xltools.cxx108
-rw-r--r--sc/source/filter/inc/xihelper.hxx6
-rw-r--r--sc/source/filter/inc/xistyle.hxx5
-rw-r--r--sc/source/filter/inc/xltools.hxx2
-rw-r--r--sc/source/ui/app/inputwin.cxx5
-rw-r--r--sc/source/ui/dbgui/pvfundlg.src4
-rw-r--r--sc/source/ui/docshell/dbdocfun.cxx4
-rw-r--r--sc/source/ui/docshell/dbdocimp.cxx2
-rw-r--r--sc/source/ui/docshell/docsh3.cxx10
-rw-r--r--sc/source/ui/docshell/docsh4.cxx2
-rw-r--r--sc/source/ui/docshell/docsh5.cxx37
-rw-r--r--sc/source/ui/docshell/externalrefmgr.cxx50
-rw-r--r--sc/source/ui/inc/dbfunc.hxx2
-rw-r--r--sc/source/ui/inc/docsh.hxx2
-rw-r--r--sc/source/ui/miscdlgs/scuiautofmt.cxx2
-rw-r--r--sc/source/ui/miscdlgs/strindlg.cxx10
-rw-r--r--sc/source/ui/src/globstr.src2
-rw-r--r--sc/source/ui/src/miscdlgs.src8
-rw-r--r--sc/source/ui/unoobj/cellsuno.cxx22
-rw-r--r--sc/source/ui/unoobj/cursuno.cxx6
-rw-r--r--sc/source/ui/view/cellsh.cxx24
-rw-r--r--sc/source/ui/view/cellsh2.cxx2
-rw-r--r--sc/source/ui/view/cellsh3.cxx2
-rw-r--r--sc/source/ui/view/dbfunc.cxx73
-rw-r--r--sc/source/ui/view/spelldialog.cxx7
-rw-r--r--sc/source/ui/view/tabview3.cxx2
-rw-r--r--sc/source/ui/view/tabvwshc.cxx4
-rw-r--r--sc/source/ui/view/viewfun5.cxx2
-rw-r--r--sc/util/hidother.src1
-rw-r--r--sc/util/makefile.mk4
-rw-r--r--sc/util/sc.map8
-rw-r--r--sc/util/scd.map8
-rw-r--r--sc/util/scfilt.map2
-rw-r--r--sc/util/scui.map2
-rw-r--r--sc/util/vbaobj.map9
-rw-r--r--scaddins/source/analysis/exports.map10
-rw-r--r--scaddins/source/analysis/makefile.mk2
-rw-r--r--scaddins/source/datefunc/exports.map10
-rw-r--r--scaddins/source/datefunc/makefile.mk2
-rw-r--r--sccomp/source/solver/exports.map9
-rw-r--r--sccomp/source/solver/makefile.mk2
-rw-r--r--scp2/source/calc/file_calc.scp6
-rw-r--r--scp2/source/calc/module_calc.scp9
-rw-r--r--scp2/source/calc/registryitem_calc.scp14
-rw-r--r--scp2/source/calc/registryitem_calc.ulf4
-rw-r--r--scp2/source/draw/registryitem_draw.ulf4
-rw-r--r--scp2/source/impress/module_impress.scp9
-rw-r--r--scp2/source/impress/registryitem_impress.scp14
-rw-r--r--scp2/source/impress/registryitem_impress.ulf4
-rw-r--r--scp2/source/math/registryitem_math.ulf2
-rw-r--r--scp2/source/ooo/common_brand.scp1
-rw-r--r--[-rwxr-xr-x]scp2/source/ooo/file_library_ooo.scp26
-rwxr-xr-xscp2/source/ooo/file_ooo.scp2
-rw-r--r--scp2/source/ooo/installation_ooo.scp1
-rw-r--r--scp2/source/ooo/registryitem_ooo.scp11
-rw-r--r--scp2/source/ooo/registryitem_ooo.ulf2
-rwxr-xr-xscp2/source/ooo/windowscustomaction_ooo.scp20
-rw-r--r--scp2/source/writer/module_writer.scp10
-rw-r--r--scp2/source/writer/registryitem_writer.scp14
-rw-r--r--scp2/source/writer/registryitem_writer.ulf6
-rw-r--r--scripting/source/basprov/basprov.map9
-rw-r--r--scripting/source/basprov/makefile.mk2
-rw-r--r--scripting/source/dlgprov/dlgprov.map9
-rw-r--r--scripting/source/dlgprov/makefile.mk2
-rw-r--r--scripting/source/stringresource/makefile.mk2
-rw-r--r--scripting/source/stringresource/stringresource.map9
-rw-r--r--[-rwxr-xr-x]scripting/source/vbaevents/makefile.mk2
-rwxr-xr-xscripting/source/vbaevents/vbaevents.map9
-rwxr-xr-xsd/prj/build.lst1
-rw-r--r--sd/prj/make.bat92
-rw-r--r--sd/prj/postdlv.btm2
-rw-r--r--sd/prj/stree.bat151
-rw-r--r--sd/qa/unoapi/Test.java51
-rw-r--r--sd/qa/unoapi/knownissues.xcl4
-rw-r--r--sd/qa/unoapi/makefile.mk30
-rw-r--r--sd/source/ui/app/makefile.mk4
-rw-r--r--sd/source/ui/func/futext2.cxx30
-rw-r--r--sd/source/ui/func/makefile.mk2
-rw-r--r--sd/source/ui/toolpanel/ControlDescriptorIterator.cxx223
-rw-r--r--sd/source/ui/view/DocumentRenderer.src10
-rw-r--r--sd/source/ui/view/makefile.mk1
-rw-r--r--sd/source/ui/view/sdview5.cxx29
-rw-r--r--sd/util/makefile.mk2
-rw-r--r--sd/util/sd.map8
-rw-r--r--sd/util/sdd.map8
-rw-r--r--sd/util/sdfilt.map2
-rw-r--r--sd/util/sdui.map2
-rw-r--r--sdext/source/minimizer/description.xml2
-rw-r--r--sdext/source/minimizer/exports.map9
-rw-r--r--sdext/source/minimizer/images/em47.pngbin5448 -> 5483 bytes
-rw-r--r--sdext/source/minimizer/images/em47_hc.pngbin3182 -> 3176 bytes
-rw-r--r--sdext/source/minimizer/makefile.mk2
-rw-r--r--sdext/source/pdfimport/config/description.xml2
-rw-r--r--sdext/source/pdfimport/exports.map9
-rw-r--r--sdext/source/pdfimport/images/pdfiext.pngbin5448 -> 5483 bytes
-rw-r--r--sdext/source/pdfimport/images/pdfiext_hc.pngbin3182 -> 3176 bytes
-rw-r--r--sdext/source/pdfimport/makefile.mk2
-rwxr-xr-xsdext/source/pdfimport/test/export.map2
-rwxr-xr-xsdext/source/pdfimport/test/makefile.mk2
-rw-r--r--sdext/source/presenter/PresenterGeometryHelper.hxx1
-rw-r--r--sdext/source/presenter/bitmaps/em47.pngbin5448 -> 5483 bytes
-rw-r--r--sdext/source/presenter/bitmaps/em47_hc.pngbin3182 -> 3176 bytes
-rw-r--r--sdext/source/presenter/description.xml2
-rw-r--r--sdext/source/presenter/exports.map9
-rw-r--r--sdext/source/presenter/makefile.mk2
-rw-r--r--set_soenv.in47
-rw-r--r--setup_native/scripts/admin.pl23
-rw-r--r--setup_native/scripts/makefile.mk10
-rwxr-xr-xsetup_native/source/java/javaversion.dat26
-rw-r--r--setup_native/source/java/javaversion2.dat26
-rw-r--r--setup_native/source/win32/customactions/reg4allmsdoc/exports.dxp2
-rw-r--r--setup_native/source/win32/customactions/reg4allmsdoc/reg4allmsi.cxx213
-rw-r--r--sfx2/inc/sfx2/viewsh.hxx7
-rw-r--r--sfx2/prj/build.lst1
-rw-r--r--sfx2/qa/complex/docinfo/makefile.mk2
-rw-r--r--sfx2/qa/unoapi/Test.java51
-rw-r--r--sfx2/qa/unoapi/makefile.mk30
-rw-r--r--sfx2/source/appl/appuno.cxx286
-rw-r--r--sfx2/source/appl/sfxhelp.cxx15
-rw-r--r--sfx2/source/appl/shutdownicon.cxx23
-rw-r--r--sfx2/source/appl/shutdownicon.hxx1
-rw-r--r--sfx2/source/appl/shutdowniconw32.cxx50
-rw-r--r--sfx2/source/doc/commitlistener.cxx81
-rw-r--r--sfx2/source/doc/commitlistener.hxx57
-rw-r--r--sfx2/source/doc/docfile.cxx1
-rw-r--r--sfx2/source/doc/makefile.mk1
-rw-r--r--sfx2/source/doc/objstor.cxx2
-rw-r--r--sfx2/source/doc/opostponedtruncationstream.cxx491
-rw-r--r--sfx2/source/doc/opostponedtruncationstream.hxx122
-rwxr-xr-xsfx2/source/doc/printhelper.cxx20
-rw-r--r--sfx2/source/view/view.hxx27
-rw-r--r--sfx2/source/view/viewimp.hxx26
-rw-r--r--sfx2/source/view/viewprn.cxx10
-rwxr-xr-xshell/qa/makefile.mk2
-rw-r--r--shell/source/backends/kdebe/makefile.mk2
-rw-r--r--shell/source/backends/localebe/exports.map10
-rw-r--r--shell/source/backends/localebe/makefile.mk2
-rw-r--r--shell/source/backends/macbe/exports.map10
-rw-r--r--shell/source/backends/macbe/makefile.mk2
-rw-r--r--shell/source/backends/wininetbe/exports.map10
-rw-r--r--shell/source/backends/wininetbe/makefile.mk2
-rw-r--r--shell/source/cmdmail/exports.map10
-rw-r--r--shell/source/cmdmail/makefile.mk2
-rw-r--r--shell/source/tools/lngconvex/lngconvex.cxx3
-rw-r--r--shell/source/unix/exec/exports.map10
-rw-r--r--shell/source/unix/exec/makefile.mk2
-rwxr-xr-xshell/source/unix/sysshell/recfile.map2
-rw-r--r--slideshow/source/engine/OGLTrans/exports.map8
-rw-r--r--slideshow/source/engine/OGLTrans/makefile.mk2
-rw-r--r--slideshow/source/engine/activities/activitybase.cxx2
-rw-r--r--slideshow/source/engine/activities/continuouskeytimeactivitybase.cxx69
-rw-r--r--slideshow/source/engine/activities/continuouskeytimeactivitybase.hxx7
-rw-r--r--slideshow/source/engine/activities/interpolation.hxx21
-rw-r--r--slideshow/source/engine/shapes/viewshape.cxx7
-rw-r--r--slideshow/source/engine/slide/layer.cxx11
-rw-r--r--slideshow/source/engine/slide/layer.hxx6
-rw-r--r--slideshow/source/engine/tools.cxx26
-rw-r--r--slideshow/test/export.map2
-rw-r--r--slideshow/util/exports.map8
-rw-r--r--slideshow/util/makefile.mk2
-rwxr-xr-xsmoketestoo_native/check_setup.pl69
-rwxr-xr-xsmoketestoo_native/config.pl83
-rwxr-xr-xsmoketestoo_native/data/TestExtension.oxtbin4210 -> 0 bytes
-rw-r--r--smoketestoo_native/data/dbgsv.ini42
-rwxr-xr-xsmoketestoo_native/data/scripts/Global.xba739
-rwxr-xr-xsmoketestoo_native/data/scripts/Test_10er.xba907
-rwxr-xr-xsmoketestoo_native/data/scripts/Test_DB.xba135
-rwxr-xr-xsmoketestoo_native/data/scripts/Test_Ext.xba95
-rwxr-xr-xsmoketestoo_native/data/scripts/script.xlb8
-rwxr-xr-xsmoketestoo_native/data/smoketestdoc.sxwbin35157 -> 35384 bytes
-rw-r--r--smoketestoo_native/data/solaris/sparc/admin6
-rwxr-xr-xsmoketestoo_native/data/solaris/sparc/getuid.sobin4108 -> 0 bytes
-rw-r--r--smoketestoo_native/data/solaris/x86/admin6
-rwxr-xr-xsmoketestoo_native/data/solaris/x86/getuid.sobin3796 -> 0 bytes
-rw-r--r--smoketestoo_native/makefile.mk60
-rw-r--r--smoketestoo_native/prj/build.lst2
-rw-r--r--smoketestoo_native/smoketest.cxx169
-rwxr-xr-xsmoketestoo_native/smoketest.pl1279
-rwxr-xr-xsmoketestoo_native/testlog.pl286
-rw-r--r--smoketestoo_native/version.map (renamed from cppuhelper/qa/propertysetmixin/test.gcc3.map)6
-rw-r--r--soldep/util/perl.mk5
-rw-r--r--solenv/bin/addsym.awk30
-rwxr-xr-xsolenv/bin/checkapi71
-rw-r--r--solenv/bin/checkapi.btm44
-rwxr-xr-xsolenv/bin/cwscheckapi361
-rwxr-xr-xsolenv/bin/cwscheckapi.btm206
-rw-r--r--solenv/bin/dbgsv.ini29
-rwxr-xr-xsolenv/bin/deliver.pl40
-rwxr-xr-xsolenv/bin/installoffice107
-rwxr-xr-xsolenv/bin/installoffice.btm120
-rwxr-xr-xsolenv/bin/installoffice.pl933
-rw-r--r--solenv/bin/macosx-change-install-names.pl8
-rw-r--r--solenv/bin/make_installer.pl9
-rw-r--r--[-rwxr-xr-x]solenv/bin/modules/SourceConfig.pm40
-rw-r--r--solenv/bin/modules/installer/control.pm2
-rw-r--r--solenv/bin/modules/installer/download.pm294
-rw-r--r--solenv/bin/modules/installer/globals.pm9
-rw-r--r--solenv/bin/modules/installer/parameter.pm7
-rw-r--r--solenv/bin/modules/installer/servicesfile.pm16
-rw-r--r--solenv/bin/modules/installer/simplepackage.pm46
-rw-r--r--solenv/bin/modules/installer/windows/registry.pm2
-rwxr-xr-xsolenv/bin/receditor2
-rwxr-xr-xsolenv/bin/reportErrorCheckAPI.btm17
-rwxr-xr-xsolenv/bin/subsequenttests131
-rw-r--r--solenv/config/sdev300.ini62
-rw-r--r--solenv/config/ssolar.cmn8
-rw-r--r--solenv/inc/_cppunit.mk250
-rw-r--r--solenv/inc/_tg_shl.mk40
-rw-r--r--solenv/inc/cppunit.mk34
-rw-r--r--solenv/inc/installationtest.mk122
-rw-r--r--solenv/inc/javaunittest.mk5
-rw-r--r--solenv/inc/libs.mk16
-rw-r--r--solenv/inc/minor.mk6
-rw-r--r--solenv/inc/settings.mk36
-rw-r--r--solenv/inc/startup/AIX/macros.mk2
-rw-r--r--solenv/inc/startup/FREEBSD/macros.mk2
-rw-r--r--solenv/inc/startup/HPUX/macros.mk2
-rw-r--r--solenv/inc/startup/IRIX/macros.mk2
-rw-r--r--solenv/inc/startup/LINUX/macros.mk2
-rw-r--r--solenv/inc/startup/MACOSX/macros.mk2
-rw-r--r--solenv/inc/startup/NETBSD/macros.mk2
-rw-r--r--solenv/inc/startup/OS2/macros.mk55
-rw-r--r--solenv/inc/startup/Readme3
-rw-r--r--solenv/inc/startup/SOLARIS/macros.mk2
-rw-r--r--solenv/inc/startup/UNIX/macros.mk19
-rw-r--r--solenv/inc/startup/startup.mk37
-rw-r--r--solenv/inc/startup/wnt/macros.mk23
-rw-r--r--solenv/inc/target.mk4
-rw-r--r--solenv/inc/tg_ext.mk38
-rw-r--r--solenv/inc/tg_shl.mk4
-rw-r--r--solenv/inc/unitools.mk22
-rw-r--r--solenv/inc/unx.mk15
-rw-r--r--solenv/inc/unxmacx.mk22
-rw-r--r--solenv/inc/unxmacxi.mk5
-rw-r--r--solenv/inc/wnt.mk7
-rw-r--r--soltools/mkdepend/cppsetup.c16
-rw-r--r--soltools/mkdepend/def.h25
-rw-r--r--soltools/mkdepend/ifparser.c2
-rw-r--r--soltools/mkdepend/ifparser.h5
-rw-r--r--soltools/mkdepend/imakemdep.h142
-rw-r--r--soltools/mkdepend/main.c48
-rw-r--r--soltools/mkdepend/parse.c10
-rw-r--r--soltools/mkdepend/pr.c1
-rw-r--r--soltools/testhxx/create.pl22
-rw-r--r--soltools/testhxx/makefile.mk14
-rw-r--r--sot/source/sdstor/sdintern.hdb22
-rw-r--r--starmath/prj/build.lst1
-rw-r--r--starmath/qa/unoapi/Test.java51
-rw-r--r--starmath/qa/unoapi/makefile.mk30
-rw-r--r--starmath/source/smres.src2
-rw-r--r--starmath/util/makefile.mk6
-rw-r--r--starmath/util/sm.map8
-rw-r--r--starmath/util/smd.map8
-rw-r--r--stax/makefile.mk1
-rw-r--r--stlport/download/STLport-4.0.tar.gzbin686207 -> 0 bytes
-rw-r--r--stlport/download/STLport-4.5-0119.tar.gzbin2424604 -> 0 bytes
-rw-r--r--stlport/download/STLport-4.5.tar.gzbin728789 -> 0 bytes
-rw-r--r--stlport/makefile.mk16
-rw-r--r--stoc/prj/build.lst1
-rw-r--r--stoc/source/corereflection/corefl.map9
-rw-r--r--stoc/source/corereflection/makefile.mk2
-rw-r--r--stoc/source/inspect/introspection.map8
-rw-r--r--stoc/source/inspect/makefile.mk2
-rw-r--r--stoc/source/invocation/inv.map9
-rw-r--r--stoc/source/invocation/makefile.mk2
-rw-r--r--stoc/source/invocation_adapterfactory/invadp.map9
-rw-r--r--stoc/source/invocation_adapterfactory/makefile.mk2
-rw-r--r--stoc/source/javaloader/javaloader.map8
-rw-r--r--stoc/source/javaloader/makefile.mk2
-rw-r--r--stoc/source/javavm/jen.map8
-rw-r--r--stoc/source/javavm/makefile.mk2
-rw-r--r--stoc/source/namingservice/makefile.mk2
-rw-r--r--stoc/source/namingservice/namingservice.map9
-rw-r--r--stoc/source/proxy_factory/makefile.mk2
-rw-r--r--stoc/source/proxy_factory/proxyfac.map9
-rw-r--r--stoc/test/registry_tdprovider/makefile.mk7
-rw-r--r--stoc/test/registry_tdprovider/testregistrytdprovider.gcc3.map38
-rw-r--r--stoc/test/registry_tdprovider/testregistrytdprovider.map36
-rw-r--r--stoc/test/tdmanager/makefile.mk7
-rw-r--r--stoc/test/tdmanager/testtdmanager.map36
-rw-r--r--stoc/test/testsmgr_cpnt.map2
-rw-r--r--stoc/test/uriproc/makefile.mk50
-rw-r--r--stoc/test/uriproc/test_uriproc.cxx25
-rw-r--r--stoc/test/uriproc/version.map2
-rw-r--r--stoc/util/bootstrap.map9
-rw-r--r--stoc/util/makefile.mk4
-rw-r--r--stoc/util/stocservices.map9
-rw-r--r--svl/qa/complex/ConfigItems/helper/exports.map10
-rw-r--r--svl/qa/complex/ConfigItems/helper/makefile.mk2
-rw-r--r--svl/qa/makefile.mk2
-rw-r--r--svl/source/fsstor/exports.map8
-rw-r--r--svl/source/fsstor/makefile.mk2
-rw-r--r--svl/source/passwordcontainer/exports.map8
-rw-r--r--svl/source/passwordcontainer/makefile.mk2
-rw-r--r--svtools/prj/build.lst1
-rw-r--r--svtools/qa/unoapi/Test.java51
-rw-r--r--svtools/qa/unoapi/makefile.mk30
-rw-r--r--svtools/source/hatchwindow/exports.map8
-rw-r--r--svtools/source/hatchwindow/makefile.mk2
-rw-r--r--svtools/source/misc/transfer.cxx24
-rw-r--r--svtools/source/productregistration/exports.map8
-rw-r--r--svtools/source/productregistration/makefile.mk2
-rw-r--r--svtools/workben/unodialog/makefile.mk2
-rw-r--r--svtools/workben/unodialog/udlg.map8
-rw-r--r--svx/prj/build.lst1
-rw-r--r--svx/qa/unoapi/Test.java51
-rw-r--r--svx/qa/unoapi/makefile.mk30
-rw-r--r--svx/source/dialog/docrecovery.src4
-rw-r--r--svx/source/engine3d/makefile.mk8
-rw-r--r--svx/source/engine3d/viewpt3d.cxx32
-rw-r--r--svx/source/engine3d/volume3d.cxx32
-rw-r--r--svx/source/form/fmshimp.cxx104
-rw-r--r--svx/source/inc/fmshimp.hxx8
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx3
-rw-r--r--svx/source/sdr/properties/attributeproperties.cxx14
-rw-r--r--svx/source/svdraw/makefile.mk2
-rw-r--r--svx/source/svdraw/svdcrtmt.hxx32
-rw-r--r--svx/source/svdraw/svdobj.cxx1
-rw-r--r--svx/source/svdraw/svdoimp.cxx33
-rw-r--r--svx/source/svdraw/svdotext.cxx1
-rw-r--r--svx/source/svdraw/svdscrol.cxx33
-rw-r--r--svx/source/svdraw/svdscrol.hxx31
-rw-r--r--svx/source/unodialogs/textconversiondlgs/export.map8
-rw-r--r--svx/source/unodialogs/textconversiondlgs/makefile.mk2
-rw-r--r--sw/inc/ndarr.hxx8
-rwxr-xr-x[-rw-r--r--]sw/inc/printdata.hxx9
-rw-r--r--sw/inc/unotextrange.hxx2
-rwxr-xr-x[-rw-r--r--]sw/inc/unotxdoc.hxx3
-rwxr-xr-xsw/prj/build.lst1
-rw-r--r--sw/qa/core/export.map2
-rw-r--r--sw/qa/core/makefile.mk2
-rw-r--r--sw/qa/unoapi/Test.java51
-rw-r--r--sw/qa/unoapi/knownissues.xcl5
-rw-r--r--sw/qa/unoapi/makefile.mk31
-rwxr-xr-x[-rw-r--r--]sw/source/core/doc/doc.cxx50
-rw-r--r--sw/source/core/docnode/ndtbl.cxx64
-rw-r--r--sw/source/core/text/inftxt.cxx4
-rw-r--r--sw/source/core/text/inftxt.hxx4
-rw-r--r--sw/source/core/text/itrform2.cxx3
-rw-r--r--sw/source/core/text/portxt.cxx8
-rw-r--r--sw/source/core/unocore/unotext.cxx20
-rwxr-xr-x[-rw-r--r--]sw/source/core/view/makefile.mk11
-rwxr-xr-xsw/source/core/view/printdata.cxx546
-rwxr-xr-x[-rw-r--r--]sw/source/core/view/viewsh.cxx3
-rwxr-xr-x[-rw-r--r--]sw/source/core/view/vprint.cxx555
-rw-r--r--sw/source/filter/rtf/wrtrtf.cxx11
-rwxr-xr-x[-rw-r--r--]sw/source/ui/config/optdlg.src6
-rw-r--r--sw/source/ui/dbui/dbmgr.cxx3
-rw-r--r--sw/source/ui/dbui/dbui.src2
-rw-r--r--sw/source/ui/dialog/makefile.mk4
-rw-r--r--sw/source/ui/envelp/mailmrge.cxx6
-rw-r--r--sw/source/ui/inc/tbxmgr.hxx52
-rw-r--r--sw/source/ui/ribbar/tblctrl.cxx1
-rw-r--r--sw/source/ui/ribbar/tbxmgr.cxx180
-rw-r--r--sw/source/ui/ribbar/workctrl.cxx1
-rwxr-xr-x[-rw-r--r--]sw/source/ui/uno/unotxdoc.cxx63
-rw-r--r--sw/util/makefile.mk4
-rwxr-xr-x[-rw-r--r--]sw/util/msword.map2
-rw-r--r--sw/util/sw.map8
-rw-r--r--sw/util/swd.map8
-rw-r--r--sw/util/swui.map2
-rw-r--r--sw/util/vbaswobj.map9
-rw-r--r--swext/mediawiki/src/description.xml2
-rwxr-xr-x[-rw-r--r--]sysui/desktop/icons/hicolor/16x16/apps/printeradmin.pngbin963 -> 4259 bytes
-rwxr-xr-x[-rw-r--r--]sysui/desktop/icons/hicolor/32x32/apps/printeradmin.pngbin2534 -> 5595 bytes
-rwxr-xr-x[-rw-r--r--]sysui/desktop/icons/hicolor/48x48/apps/printeradmin.pngbin4058 -> 7337 bytes
-rw-r--r--sysui/desktop/icons/makefile.mk2
-rwxr-xr-xsysui/desktop/icons/ooo3_open.icobin0 -> 295606 bytes
-rwxr-xr-xsysui/desktop/icons/so9_open.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/share/launcher_comment.ulf2
-rw-r--r--sysui/desktop/slackware/makefile.mk6
-rw-r--r--test/inc/makefile.mk (renamed from sal/qa/rtl/textenc/gcc3_export.map)22
-rw-r--r--test/inc/pch/precompiled_test.cxx26
-rw-r--r--test/inc/pch/precompiled_test.hxx30
-rw-r--r--test/inc/test/detail/testdllapi.hxx39
-rw-r--r--test/inc/test/getargument.hxx44
-rw-r--r--test/inc/test/officeconnection.hxx65
-rw-r--r--test/inc/test/oustringostreaminserter.hxx48
-rw-r--r--test/inc/test/toabsolutefileurl.hxx44
-rw-r--r--test/prj/build.lst4
-rw-r--r--test/prj/d.lst12
-rw-r--r--test/source/cpp/getargument.cxx42
-rw-r--r--test/source/cpp/makefile.mk (renamed from testshl2/workben/skeleton/makefile.mk)48
-rw-r--r--test/source/cpp/officeconnection.cxx159
-rw-r--r--test/source/cpp/toabsolutefileurl.cxx83
-rw-r--r--test/source/java/OfficeConnection.java207
-rw-r--r--test/source/java/makefile.mk (renamed from testshl2/source/testshlrunner/makefile.mk)37
-rwxr-xr-x[-rw-r--r--]testautomation/chart2/optional/includes/ch2_lvl1a.inc4
-rwxr-xr-x[-rw-r--r--]testautomation/chart2/tools/ch_tools_select.inc2
-rw-r--r--testautomation/global/win/edia_p_s.win3
-rwxr-xr-x[-rw-r--r--]testautomation/spreadsheet/required/includes/c_upd_formatmenu2.inc23
-rw-r--r--testshl2/README8
-rw-r--r--testshl2/inc/makefile.mk47
-rw-r--r--testshl2/inc/pch/precompiled_testshl2.cxx29
-rw-r--r--testshl2/inc/testshl/additionalfunc.hxx61
-rw-r--r--testshl2/inc/testshl/autoregister/callbackstructure.h86
-rw-r--r--testshl2/inc/testshl/autoregister/htestresult.h6
-rw-r--r--testshl2/inc/testshl/autoregister/registerfunc.h47
-rw-r--r--testshl2/inc/testshl/autoregister/registertestfunction.h51
-rw-r--r--testshl2/inc/testshl/autoregisterhelper.hxx62
-rw-r--r--testshl2/inc/testshl/checkboom.hxx37
-rw-r--r--testshl2/inc/testshl/cmdlinebits.hxx49
-rw-r--r--testshl2/inc/testshl/dynamicregister.hxx64
-rw-r--r--testshl2/inc/testshl/filehelper.hxx47
-rw-r--r--testshl2/inc/testshl/getopt.hxx332
-rw-r--r--testshl2/inc/testshl/joblist.hxx96
-rw-r--r--testshl2/inc/testshl/log.hxx113
-rw-r--r--testshl2/inc/testshl/nocopy.hxx13
-rw-r--r--testshl2/inc/testshl/result/SynchronizedObject.h82
-rw-r--r--testshl2/inc/testshl/result/TestListener.h62
-rw-r--r--testshl2/inc/testshl/result/TestResult.h123
-rw-r--r--testshl2/inc/testshl/result/TestResultCollector.h165
-rw-r--r--testshl2/inc/testshl/result/TestSucessListener.h40
-rw-r--r--testshl2/inc/testshl/result/TextTestResult.h62
-rw-r--r--testshl2/inc/testshl/result/callbackfunc.h25
-rw-r--r--testshl2/inc/testshl/result/emacsTestResult.hxx79
-rw-r--r--testshl2/inc/testshl/result/log.hxx103
-rw-r--r--testshl2/inc/testshl/result/optionhelper.hxx95
-rw-r--r--testshl2/inc/testshl/result/outputter.hxx82
-rw-r--r--testshl2/inc/testshl/result/testshlTestResult.h72
-rw-r--r--testshl2/inc/testshl/signaltest.h62
-rw-r--r--testshl2/inc/testshl/simpleheader.hxx43
-rw-r--r--testshl2/inc/testshl/stringhelper.hxx39
-rw-r--r--testshl2/inc/testshl/taghelper.hxx88
-rw-r--r--testshl2/inc/testshl/tresstatewrapper.h63
-rw-r--r--testshl2/inc/testshl/tresstatewrapper.hxx57
-rw-r--r--testshl2/inc/testshl/versionhelper.hxx84
-rw-r--r--testshl2/inc/testshl/winstuff.hxx40
-rw-r--r--testshl2/prj/build.lst9
-rw-r--r--testshl2/prj/d.lst29
-rw-r--r--testshl2/source/autoregisterhelper.cxx140
-rw-r--r--testshl2/source/codegen/codegen.pl601
-rw-r--r--testshl2/source/cppunit/cmdlinebits.cxx141
-rw-r--r--testshl2/source/cppunit/joblist.cxx221
-rw-r--r--testshl2/source/cppunit/makefile.mk99
-rw-r--r--testshl2/source/cppunit/registertestfunction.cxx57
-rw-r--r--testshl2/source/cppunit/result/SynchronizedObject.cpp38
-rw-r--r--testshl2/source/cppunit/result/TestResult.cpp264
-rw-r--r--testshl2/source/cppunit/result/TestResultCollector.cpp150
-rw-r--r--testshl2/source/cppunit/result/TestSucessListener.cpp50
-rw-r--r--testshl2/source/cppunit/result/TextTestResult.cpp194
-rw-r--r--testshl2/source/cppunit/result/emacsTestResult.cxx190
-rw-r--r--testshl2/source/cppunit/result/log.cxx122
-rw-r--r--testshl2/source/cppunit/result/makefile.mk79
-rw-r--r--testshl2/source/cppunit/result/optionhelper.cxx314
-rw-r--r--testshl2/source/cppunit/result/outputter.cxx103
-rw-r--r--testshl2/source/cppunit/result/signal.cxx996
-rw-r--r--testshl2/source/cppunit/result/signal.hxx39
-rw-r--r--testshl2/source/cppunit/result/testshlTestResult.cxx425
-rw-r--r--testshl2/source/cppunit/result/treswrapper.cxx259
-rw-r--r--testshl2/source/cppunit/signaltest.cxx89
-rw-r--r--testshl2/source/cppunit/t_print.cxx95
-rw-r--r--testshl2/source/cppunit/tresregister.cxx66
-rw-r--r--testshl2/source/cppunit/tresstatewrapper.cxx166
-rw-r--r--testshl2/source/cppunit/win32/makefile.mk60
-rw-r--r--testshl2/source/cppunit/win32/winstuff.cxx140
-rw-r--r--testshl2/source/dynamicregister.cxx207
-rw-r--r--testshl2/source/file.cxx74
-rw-r--r--testshl2/source/filehelper.cxx228
-rw-r--r--testshl2/source/getopt.cxx919
-rw-r--r--testshl2/source/makefile.mk130
-rw-r--r--testshl2/source/terminate.cxx289
-rw-r--r--testshl2/source/testshl.cxx396
-rw-r--r--testshl2/source/testshlrunner/ProcessHandler.java355
-rw-r--r--testshl2/source/testshlrunner/TestShl2Runner.java937
-rw-r--r--testshl2/source/versioner.cxx117
-rw-r--r--testshl2/source/versionhelper.cxx124
-rw-r--r--testshl2/workben/codegen/README9
-rw-r--r--testshl2/workben/codegen/checkfile7
-rw-r--r--testshl2/workben/codegen/cleanup10
-rw-r--r--testshl2/workben/codegen/makefile.mk45
-rw-r--r--testshl2/workben/codegen/selftest49
-rw-r--r--testshl2/workben/codegen/test.job17
-rw-r--r--testshl2/workben/codegen/w32/checkfile.btm7
-rw-r--r--testshl2/workben/codegen/w32/cleanup.btm9
-rw-r--r--testshl2/workben/codegen/w32/makefile.mk45
-rw-r--r--testshl2/workben/codegen/w32/selftest.btm47
-rw-r--r--testshl2/workben/codegen/w32/test.job17
-rw-r--r--testshl2/workben/dlltest/export.exp1
-rw-r--r--testshl2/workben/dlltest/makefile.mk126
-rw-r--r--testshl2/workben/dlltest/onefuncstarter.cxx140
-rw-r--r--testshl2/workben/dlltest/registerfunc.h41
-rw-r--r--testshl2/workben/examples/makefile.mk64
-rw-r--r--testshl2/workben/examples/testshl_test.cxx286
-rw-r--r--testshl2/workben/garbage_dump/float.cxx137
-rw-r--r--testshl2/workben/garbage_dump/nippondir.cxx316
-rw-r--r--testshl2/workben/garbage_dump/some_tips.cxx126
-rw-r--r--testshl2/workben/getopt/makefile.mk60
-rw-r--r--testshl2/workben/getopt/test_getopt.cxx140
-rw-r--r--testshl2/workben/makefile.mk126
-rw-r--r--testshl2/workben/runner/unxlngi4.config.file34
-rw-r--r--testshl2/workben/runner/unxsols3.config.file34
-rw-r--r--testshl2/workben/runner/wntmsci9.config.file46
-rw-r--r--testshl2/workben/selftest/README.txt30
-rw-r--r--testshl2/workben/selftest/delivertest.cxx61
-rw-r--r--testshl2/workben/selftest/export.map8
-rw-r--r--testshl2/workben/selftest/makefile.mk87
-rw-r--r--testshl2/workben/selftest/notdeliveredtest.cxx61
-rw-r--r--testshl2/workben/singleton.cxx49
-rw-r--r--testshl2/workben/skeleton/export.map7
-rw-r--r--testshl2/workben/skeleton/skeleton.cxx79
-rw-r--r--testshl2/workben/test_autoptr.cxx100
-rw-r--r--testshl2/workben/test_filter.cxx230
-rw-r--r--testshl2/workben/test_member.cxx97
-rw-r--r--testshl2/workben/test_ostringstream.cxx116
-rw-r--r--testshl2/workben/test_preproc.cxx55
-rw-r--r--testshl2/workben/test_string.cxx138
-rw-r--r--testshl2/workben/uno/export.exp1
-rwxr-xr-xtestshl2/workben/uno/export.map8
-rw-r--r--testshl2/workben/uno/makefile.mk79
-rw-r--r--testshl2/workben/uno/unotest.cxx114
-rw-r--r--testtools/source/bridgetest/component.gcc3.map38
-rw-r--r--testtools/source/bridgetest/component.map36
-rw-r--r--testtools/source/bridgetest/makefile.mk26
-rw-r--r--testtools/source/bridgetest/pyuno/makefile.mk19
-rw-r--r--tomcat/download/jakarta-tomcat-5.0.30-src.tar.gzbin3568559 -> 0 bytes
-rwxr-xr-xtomcat/makefile.mk1
-rw-r--r--toolkit/prj/build.lst1
-rw-r--r--toolkit/qa/unoapi/Test.java51
-rw-r--r--toolkit/qa/unoapi/knownissues.xcl12
-rw-r--r--toolkit/qa/unoapi/makefile.mk33
-rw-r--r--toolkit/qa/unoapi/toolkit.sce8
-rw-r--r--tools/bootstrp/command.cxx8
-rw-r--r--tools/bootstrp/rscdep.cxx8
-rw-r--r--tools/inc/bootstrp/command.hxx4
-rw-r--r--tools/inc/tools/debug.hxx31
-rw-r--r--tools/inc/tools/postextstl.h (renamed from testshl2/inc/pch/precompiled_testshl2.hxx)12
-rw-r--r--tools/inc/tools/preextstl.h64
-rw-r--r--tools/prj/d.lst3
-rw-r--r--tools/qa/makefile.mk1
-rw-r--r--tools/source/debug/debug.cxx32
-rw-r--r--tools/source/fsys/tdir.cxx2
-rw-r--r--tools/source/stream/strmunx.cxx6
-rw-r--r--tools/test/export.map2
-rw-r--r--tools/test/makefile.mk2
-rw-r--r--ucb/prj/build.lst1
-rw-r--r--ucb/qa/unoapi/Test.java51
-rw-r--r--ucb/qa/unoapi/makefile.mk30
-rw-r--r--ucb/source/cacher/exports.map8
-rw-r--r--ucb/source/cacher/makefile.mk2
-rw-r--r--ucb/source/core/exports.map8
-rw-r--r--ucb/source/core/makefile.mk2
-rw-r--r--ucb/source/sorter/exports.map8
-rw-r--r--ucb/source/sorter/makefile.mk2
-rw-r--r--ucb/source/ucp/expand/makefile.mk2
-rw-r--r--ucb/source/ucp/expand/ucpexpand1.uno.map8
-rw-r--r--ucb/source/ucp/file/exports.map8
-rw-r--r--ucb/source/ucp/file/makefile.mk2
-rw-r--r--ucb/source/ucp/ftp/makefile.mk2
-rw-r--r--ucb/source/ucp/ftp/ucpftp.map8
-rw-r--r--ucb/source/ucp/gio/exports.map8
-rw-r--r--ucb/source/ucp/gio/makefile.mk2
-rw-r--r--ucb/source/ucp/gvfs/exports.map8
-rw-r--r--ucb/source/ucp/gvfs/makefile.mk2
-rw-r--r--ucb/source/ucp/hierarchy/makefile.mk2
-rw-r--r--ucb/source/ucp/hierarchy/ucphier.map8
-rw-r--r--ucb/source/ucp/odma/exports.map8
-rw-r--r--ucb/source/ucp/odma/makefile.mk2
-rw-r--r--ucb/source/ucp/package/exports.map8
-rw-r--r--ucb/source/ucp/package/makefile.mk2
-rw-r--r--ucb/source/ucp/tdoc/exports.map8
-rw-r--r--ucb/source/ucp/tdoc/makefile.mk2
-rw-r--r--ucb/source/ucp/webdav/exports.map8
-rw-r--r--ucb/source/ucp/webdav/makefile.mk2
-rw-r--r--ucbhelper/workben/myucp/exports.map8
-rw-r--r--ucbhelper/workben/myucp/makefile.mk2
-rw-r--r--unotools/source/misc/desktopterminationobserver.cxx6
-rw-r--r--unoxml/source/rdf/makefile.mk2
-rw-r--r--unoxml/source/service/exports.map10
-rw-r--r--unoxml/source/service/makefile.mk2
-rw-r--r--unoxml/test/export.map2
-rw-r--r--unoxml/test/makefile.mk2
-rw-r--r--ure/source/uretest/version.map2
-rw-r--r--uui/util/exports.map10
-rw-r--r--uui/util/makefile.mk2
-rw-r--r--vbahelper/util/makefile.mk2
-rw-r--r--vbahelper/util/msforms.map9
-rw-r--r--vcl/aqua/source/dtrans/aqua_clipboard.cxx13
-rw-r--r--vcl/aqua/source/gdi/aquaprintaccessoryview.mm9
-rw-r--r--vcl/aqua/source/gdi/salgdi.cxx3
-rw-r--r--vcl/aqua/source/gdi/salprn.cxx202
-rw-r--r--vcl/inc/postgraphitestl.h9
-rw-r--r--vcl/inc/pregraphitestl.h30
-rw-r--r--vcl/inc/vcl/graphite_adaptors.hxx6
-rw-r--r--vcl/inc/vcl/graphite_features.hxx4
-rw-r--r--vcl/inc/vcl/graphite_layout.hxx4
-rw-r--r--vcl/inc/vcl/ppdparser.hxx30
-rw-r--r--vcl/inc/vcl/prndlg.hxx5
-rw-r--r--vcl/source/app/dbggui.cxx25
-rw-r--r--vcl/source/gdi/outdev3.cxx5
-rw-r--r--vcl/source/gdi/print3.cxx204
-rw-r--r--vcl/source/glyphs/graphite_adaptors.cxx2
-rw-r--r--vcl/source/glyphs/graphite_cache.cxx4
-rw-r--r--vcl/source/glyphs/graphite_features.cxx6
-rw-r--r--vcl/source/glyphs/graphite_layout.cxx12
-rw-r--r--vcl/source/glyphs/graphite_textsrc.cxx10
-rw-r--r--vcl/source/glyphs/graphite_textsrc.hxx6
-rw-r--r--vcl/source/helper/xconnection.cxx16
-rw-r--r--vcl/source/window/printdlg.cxx147
-rw-r--r--vcl/source/window/window.cxx2
-rw-r--r--vcl/unx/headless/svpinst.cxx26
-rw-r--r--vcl/unx/headless/svpinst.hxx3
-rw-r--r--vcl/unx/source/printer/ppdparser.cxx87
-rw-r--r--vcl/util/makefile2.pmk2
-rw-r--r--vigra/makefile.mk1
-rw-r--r--wizards/com/sun/star/wizards/makefile.mk2
-rw-r--r--wizards/com/sun/star/wizards/web/data/makefile.mk2
-rw-r--r--wizards/com/sun/star/wizards/web/export/makefile.mk2
-rw-r--r--wizards/com/sun/star/wizards/web/makefile.mk2
-rw-r--r--writerfilter/inc/resourcemodel/Protocol.hxx98
-rw-r--r--writerfilter/inc/resourcemodel/TableData.hxx27
-rw-r--r--writerfilter/inc/resourcemodel/TableManager.hxx662
-rw-r--r--writerfilter/inc/resourcemodel/TagLogger.hxx4
-rw-r--r--writerfilter/inc/resourcemodel/WW8ResourceModel.hxx1
-rw-r--r--writerfilter/inc/resourcemodel/util.hxx3
-rw-r--r--writerfilter/prj/build.lst2
-rw-r--r--writerfilter/qa/cppunittests/doctok/export.map2
-rw-r--r--writerfilter/qa/cppunittests/doctok/makefile.mk1
-rw-r--r--writerfilter/qa/cppunittests/odiapi/export.map2
-rw-r--r--writerfilter/qa/cppunittests/odiapi/makefile.mk2
-rw-r--r--writerfilter/qa/cppunittests/qname/export.map2
-rw-r--r--writerfilter/qa/cppunittests/qname/makefile.mk2
-rw-r--r--writerfilter/qa/cppunittests/sl/export.map2
-rw-r--r--writerfilter/qa/cppunittests/sl/makefile.mk2
-rw-r--r--writerfilter/qa/cppunittests/xxml/export.map2
-rw-r--r--writerfilter/qa/cppunittests/xxml/makefile.mk2
-rw-r--r--writerfilter/qa/documents/HeaderFooter.docbin0 -> 23040 bytes
-rw-r--r--writerfilter/qa/documents/HeaderFooter.docxbin0 -> 12913 bytes
-rw-r--r--writerfilter/qa/documents/Paragraph with footnote.docbin0 -> 24064 bytes
-rw-r--r--writerfilter/qa/documents/Paragraph with footnote.docxbin0 -> 13217 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/Table in B2.docxbin0 -> 10353 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/table in A1.docxbin0 -> 10340 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/~$sted-tables3.docxbin0 -> 162 bytes
-rw-r--r--writerfilter/source/dmapper/BorderHandler.cxx19
-rw-r--r--writerfilter/source/dmapper/CellColorHandler.cxx14
-rwxr-xr-x[-rw-r--r--]writerfilter/source/dmapper/DomainMapper.cxx186
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableHandler.cxx489
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableHandler.hxx6
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableManager.cxx110
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableManager.hxx2
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.cxx39
-rwxr-xr-x[-rw-r--r--]writerfilter/source/dmapper/DomainMapper_Impl.hxx12
-rw-r--r--writerfilter/source/dmapper/FontTable.cxx23
-rw-r--r--writerfilter/source/dmapper/FontTable.hxx5
-rw-r--r--writerfilter/source/dmapper/GraphicImport.cxx974
-rw-r--r--writerfilter/source/dmapper/LFOTable.cxx429
-rw-r--r--writerfilter/source/dmapper/ListTable.cxx483
-rw-r--r--writerfilter/source/dmapper/PropertyIds.cxx1
-rw-r--r--writerfilter/source/dmapper/PropertyIds.hxx13
-rw-r--r--writerfilter/source/dmapper/PropertyMap.cxx57
-rw-r--r--writerfilter/source/dmapper/PropertyMap.hxx27
-rw-r--r--writerfilter/source/dmapper/PropertyMapHelper.cxx129
-rw-r--r--writerfilter/source/dmapper/PropertyMapHelper.hxx (renamed from testshl2/workben/dlltest/onefunc.cxx)37
-rwxr-xr-x[-rw-r--r--]writerfilter/source/dmapper/SettingsTable.cxx251
-rwxr-xr-x[-rw-r--r--]writerfilter/source/dmapper/SettingsTable.hxx76
-rw-r--r--writerfilter/source/dmapper/StyleSheetTable.cxx631
-rw-r--r--writerfilter/source/dmapper/StyleSheetTable.hxx19
-rw-r--r--writerfilter/source/dmapper/TablePropertiesHandler.cxx28
-rw-r--r--writerfilter/source/dmapper/TblStylePrHandler.cxx18
-rwxr-xr-x[-rw-r--r--]writerfilter/source/dmapper/ThemeTable.cxx2
-rw-r--r--writerfilter/source/dmapper/dmapperLoggers.cxx (renamed from sc/inc/eetext.hxx)14
-rw-r--r--writerfilter/source/dmapper/dmapperLoggers.hxx (renamed from testshl2/inc/testshl/autoregister/testfunc.h)27
-rwxr-xr-x[-rw-r--r--]writerfilter/source/dmapper/makefile.mk54
-rw-r--r--writerfilter/source/doctok/WW8DocumentImpl.cxx56
-rw-r--r--writerfilter/source/doctok/WW8DocumentImpl.hxx10
-rw-r--r--writerfilter/source/doctok/WW8LFOLevel.cxx45
-rw-r--r--writerfilter/source/doctok/WW8LFOTable.cxx34
-rw-r--r--writerfilter/source/doctok/WW8ListTable.cxx22
-rw-r--r--writerfilter/source/doctok/WW8PropertySetImpl.cxx35
-rw-r--r--writerfilter/source/doctok/WW8PropertySetImpl.hxx9
-rw-r--r--writerfilter/source/doctok/WW8StructBase.cxx23
-rw-r--r--writerfilter/source/doctok/WW8Sttbf.cxx79
-rw-r--r--writerfilter/source/doctok/WW8Sttbf.hxx29
-rwxr-xr-xwriterfilter/source/doctok/cleanupresources5
-rw-r--r--writerfilter/source/doctok/compactxmi.xsl262
-rw-r--r--writerfilter/source/doctok/resources.xmi7280
-rw-r--r--writerfilter/source/doctok/resources.xsl1
-rw-r--r--writerfilter/source/doctok/xmigen.el3
-rw-r--r--writerfilter/source/doctok/xmigen.xsl507
-rw-r--r--writerfilter/source/filter/ImportFilter.cxx4
-rw-r--r--writerfilter/source/ooxml/OOXMLDocumentImpl.cxx20
-rwxr-xr-xwriterfilter/source/ooxml/OOXMLFactory.cxx333
-rwxr-xr-xwriterfilter/source/ooxml/OOXMLFactory.hxx176
-rw-r--r--writerfilter/source/ooxml/OOXMLFastContextHandler.cxx518
-rw-r--r--writerfilter/source/ooxml/OOXMLFastContextHandler.hxx199
-rw-r--r--writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx14
-rw-r--r--writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx3
-rw-r--r--writerfilter/source/ooxml/OOXMLFastHelper.hxx53
-rw-r--r--writerfilter/source/ooxml/OOXMLParserState.cxx104
-rw-r--r--writerfilter/source/ooxml/OOXMLParserState.hxx14
-rw-r--r--writerfilter/source/ooxml/OOXMLPropertySetImpl.cxx43
-rw-r--r--writerfilter/source/ooxml/README.efforts131
-rw-r--r--writerfilter/source/ooxml/analyzemodel.xsl103
-rw-r--r--writerfilter/source/ooxml/analyzer.xsl46
-rw-r--r--writerfilter/source/ooxml/analyzestage2.xsl32
-rw-r--r--writerfilter/source/ooxml/analyzestage3.xsl40
-rw-r--r--writerfilter/source/ooxml/effort.xsl39
-rwxr-xr-xwriterfilter/source/ooxml/efforts.sh3
-rw-r--r--writerfilter/source/ooxml/factory.xsl (renamed from writerfilter/source/ooxml/values.xsl)37
-rw-r--r--writerfilter/source/ooxml/factory_ns.xsl (renamed from writerfilter/source/ooxml/fastresources_dml-shape3DScene.xsl)109
-rw-r--r--writerfilter/source/ooxml/factory_values.xsl (renamed from writerfilter/source/ooxml/fastresources_dml-baseTypes.xsl)62
-rw-r--r--writerfilter/source/ooxml/factoryimpl.xsl386
-rw-r--r--writerfilter/source/ooxml/factoryimpl_ns.xsl824
-rw-r--r--writerfilter/source/ooxml/factoryimpl_values.xsl (renamed from writerfilter/source/ooxml/fastresources_.xsl)63
-rw-r--r--writerfilter/source/ooxml/factoryinc.xsl (renamed from writerfilter/source/ooxml/fastresources_dml-shape3DCamera.xsl)62
-rw-r--r--writerfilter/source/ooxml/factorytools.xsl345
-rw-r--r--writerfilter/source/ooxml/fastresources.xsl116
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-baseStylesheet.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-chartDrawing.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-documentProperties.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-graphicalObject.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shape3DLighting.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shape3DStyles.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shapeEffects.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shapeGeometry.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shapeLineProperties.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shapeProperties.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-styleDefaults.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-stylesheet.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-textCharacter.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-wordprocessingDrawing.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_shared-math.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_shared-relationshipReference.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_sml-customXmlMappings.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_vml-main.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_vml-officeDrawing.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_vml-wordprocessingDrawing.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_wml.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl.xsl95
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-baseStylesheet.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-baseTypes.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-chartDrawing.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-documentProperties.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-graphicalObject.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DCamera.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DLighting.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DScene.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DStyles.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shapeEffects.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shapeGeometry.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shapeLineProperties.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-styleDefaults.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-stylesheet.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-textCharacter.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-wordprocessingDrawing.xsl94
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_shared-math.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_shared-relationshipReference.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_sml-customXmlMappings.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_vml-main.xsl94
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_vml-officeDrawing.xsl94
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_vml-wordprocessingDrawing.xsl94
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_wml.xsl94
-rw-r--r--writerfilter/source/ooxml/fasttokens.xsl20
-rw-r--r--writerfilter/source/ooxml/fasttokensimpl.xsl77
-rw-r--r--writerfilter/source/ooxml/gperffasttokenhandler.xsl26
-rw-r--r--writerfilter/source/ooxml/makefile.mk127
-rw-r--r--writerfilter/source/ooxml/model.xml4067
-rw-r--r--writerfilter/source/ooxml/modelcleanup.xsl118
-rw-r--r--writerfilter/source/ooxml/modelpreprocess.xsl9
-rw-r--r--writerfilter/source/ooxml/namespaceids.xsl13
-rw-r--r--writerfilter/source/ooxml/nostatus.xsl20
-rw-r--r--writerfilter/source/ooxml/qnametostr.xsl61
-rw-r--r--writerfilter/source/ooxml/resourceids.xsl22
-rw-r--r--writerfilter/source/ooxml/resourcestools.xsl2338
-rwxr-xr-xwriterfilter/source/ooxml/status.sh26
-rw-r--r--writerfilter/source/ooxml/todo.xsl29
-rw-r--r--writerfilter/source/ooxml/valuesimpl.xsl85
-rw-r--r--writerfilter/source/resourcemodel/Protocol.cxx216
-rw-r--r--writerfilter/source/resourcemodel/TagLogger.cxx45
-rw-r--r--writerfilter/source/resourcemodel/makefile.mk48
-rw-r--r--writerfilter/source/resourcemodel/namespace_preprocess.pl (renamed from writerfilter/source/ooxml/namespace_preprocess.pl)0
-rwxr-xr-xwriterfilter/source/resourcemodel/setdebugflags3
-rw-r--r--writerfilter/source/resourcemodel/util.cxx24
-rw-r--r--writerfilter/unocomponent/debugservices/ooxml/OOXMLTestService.cxx12
-rw-r--r--writerfilter/util/exports.map9
-rw-r--r--writerfilter/util/makefile.mk2
-rw-r--r--writerperfect/util/makefile.mk2
-rw-r--r--writerperfect/util/wpft.map8
-rw-r--r--xmlhelp/source/com/sun/star/help/makefile.mk4
-rw-r--r--xmlhelp/source/treeview/makefile.mk2
-rw-r--r--xmlhelp/source/treeview/tvhlp.map9
-rw-r--r--xmlhelp/util/exports.map8
-rw-r--r--xmlhelp/util/makefile.mk2
-rw-r--r--xmloff/prj/build.lst1
-rw-r--r--xmloff/qa/unoapi/Test.java51
-rw-r--r--xmloff/qa/unoapi/makefile.mk30
-rw-r--r--xmloff/source/core/xmlexp.cxx23
-rw-r--r--xmloff/source/transform/makefile.mk2
-rw-r--r--xmloff/source/transform/xof.map8
-rw-r--r--xmlsecurity/source/xmlsec/diagnose.cxx2
-rw-r--r--xmlsecurity/util/makefile.mk2
-rw-r--r--xmlsecurity/util/xmlsecurity.map8
-rw-r--r--xpdf/download/xpdf-3.02.tar.gzbin674912 -> 0 bytes
-rw-r--r--xpdf/makefile.mk1
-rwxr-xr-xxsltml/makefile.mk1
-rw-r--r--zlib/makefile.mk1
1655 files changed, 31634 insertions, 58616 deletions
diff --git a/UnoControls/util/exports.map b/UnoControls/util/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/UnoControls/util/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/UnoControls/util/makefile.mk b/UnoControls/util/makefile.mk
index 5cd23262a481..aacddb23c0ad 100644
--- a/UnoControls/util/makefile.mk
+++ b/UnoControls/util/makefile.mk
@@ -44,7 +44,7 @@ LIB1FILES= $(SLB)$/base.lib \
SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
SHL1IMPLIB= i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/makefile.mk b/accessibility/bridge/org/openoffice/java/accessibility/makefile.mk
index f99b19cd6590..0d98760a31df 100755
--- a/accessibility/bridge/org/openoffice/java/accessibility/makefile.mk
+++ b/accessibility/bridge/org/openoffice/java/accessibility/makefile.mk
@@ -102,7 +102,6 @@ PRODUCTSWITCH = false
DEBUGSWITCH = true
.ENDIF
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)" != "4nt"
$(JAVADIR)$/$(PACKAGE)$/%.java: makefile.mk
@@-$(MKDIRHIER) $(JAVADIR)$/$(PACKAGE)
@-echo package org.openoffice.java.accessibility\; > $@
@@ -110,16 +109,6 @@ $(JAVADIR)$/$(PACKAGE)$/%.java: makefile.mk
@-echo public static final boolean DEBUG = $(DEBUGSWITCH)\; >> $@
@-echo public static final boolean PRODUCT = $(PRODUCTSWITCH)\; >> $@
@-echo } >> $@
-.ELSE
-$(JAVADIR)$/$(PACKAGE)$/%.java: makefile.mk
- @@-$(MKDIRHIER) $(JAVADIR)$/$(PACKAGE)
- @-echo package org.openoffice.java.accessibility; > $@
- @-echo public class Build { >> $@
- @-echo public static final boolean DEBUG = $(DEBUGSWITCH); >> $@
- @-echo public static final boolean PRODUCT = $(PRODUCTSWITCH); >> $@
- @-echo } >> $@
-.ENDIF
-
$(CLASSDIR)$/$(PACKAGE)$/Build.class : $(JAVADIR)$/$(PACKAGE)$/Build.java
-$(JAVAC) -d $(CLASSDIR) $(JAVADIR)$/$(PACKAGE)$/Build.java
diff --git a/accessibility/util/acc.map b/accessibility/util/acc.map
index 5678c95e71fd..b9e53f414df5 100644
--- a/accessibility/util/acc.map
+++ b/accessibility/util/acc.map
@@ -1,4 +1,4 @@
-FORMS_1_0 {
+UDK_3_0_0 {
global:
getStandardAccessibleFactory;
getSvtAccessibilityComponentFactory;
diff --git a/afms/makefile.mk b/afms/makefile.mk
index 2d61ed2dfa12..b1d2eafe7555 100644
--- a/afms/makefile.mk
+++ b/afms/makefile.mk
@@ -37,9 +37,8 @@ TARGET=afms
# --- Files --------------------------------------------------------
TARFILE_NAME=Adobe-Core35_AFMs-314
+TARFILE_MD5=1756c4fa6c616ae15973c104cd8cb256
TARFILE_ROOTDIR=Adobe-Core35_AFMs-314
-# TAR_EXCLUDES broken for solaris tar - #i77247#
-# TAR_EXCLUDES=*/*Helvetica-Narrow*
# --- Targets ------------------------------------------------------
diff --git a/animations/source/animcore/animcore.map b/animations/source/animcore/animcore.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/animations/source/animcore/animcore.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/animations/source/animcore/makefile.mk b/animations/source/animcore/makefile.mk
index 645ea8233d64..b78460ada157 100644
--- a/animations/source/animcore/makefile.mk
+++ b/animations/source/animcore/makefile.mk
@@ -48,7 +48,7 @@ SLOFILES = $(SLO)$/animcore.obj\
$(SLO)$/targetpropertiescreator.obj
SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/unloadablecomponent.map
SHL1STDLIBS= \
$(SALLIB) \
diff --git a/apache-commons/download/README b/apache-commons/download/README
deleted file mode 100644
index 38fc135536d7..000000000000
--- a/apache-commons/download/README
+++ /dev/null
@@ -1,16 +0,0 @@
-commons-codec-1.3-src.tar.gz
-commons-logging-1.1.1-src.tar.gz
-commons-lang-2.3-src.tar.gz
-
-downloaded from
-
-http://archive.apache.org/dist/commons
-
----
-
-commons-httpclient-3.1-src.tar.gz
-
-downloaded from
-
-http://hc.apache.org/downloads.cgi
-
diff --git a/apache-commons/download/commons-codec-1.3-src.tar.gz b/apache-commons/download/commons-codec-1.3-src.tar.gz
deleted file mode 100644
index 13e0063fbdf9..000000000000
--- a/apache-commons/download/commons-codec-1.3-src.tar.gz
+++ /dev/null
Binary files differ
diff --git a/apache-commons/download/commons-httpclient-3.1-src.tar.gz b/apache-commons/download/commons-httpclient-3.1-src.tar.gz
deleted file mode 100644
index f52b40704b2f..000000000000
--- a/apache-commons/download/commons-httpclient-3.1-src.tar.gz
+++ /dev/null
Binary files differ
diff --git a/apache-commons/download/commons-lang-2.3-src.tar.gz b/apache-commons/download/commons-lang-2.3-src.tar.gz
deleted file mode 100644
index f517cbd8ab4f..000000000000
--- a/apache-commons/download/commons-lang-2.3-src.tar.gz
+++ /dev/null
Binary files differ
diff --git a/apache-commons/download/commons-logging-1.1.1-src.tar.gz b/apache-commons/download/commons-logging-1.1.1-src.tar.gz
deleted file mode 100644
index 14a9371be57a..000000000000
--- a/apache-commons/download/commons-logging-1.1.1-src.tar.gz
+++ /dev/null
Binary files differ
diff --git a/apache-commons/java/codec/makefile.mk b/apache-commons/java/codec/makefile.mk
index 208bb2970dd3..6976731477de 100644
--- a/apache-commons/java/codec/makefile.mk
+++ b/apache-commons/java/codec/makefile.mk
@@ -43,6 +43,7 @@ ANT_BUILDFILE=build.xml
# --- Files --------------------------------------------------------
TARFILE_NAME=commons-codec-1.3-src
+TARFILE_MD5=af3c3acf618de6108d65fcdc92b492e1
TARFILE_ROOTDIR=commons-codec-1.3
diff --git a/apache-commons/java/httpclient/makefile.mk b/apache-commons/java/httpclient/makefile.mk
index 338c1832b164..6e05150c7c20 100644
--- a/apache-commons/java/httpclient/makefile.mk
+++ b/apache-commons/java/httpclient/makefile.mk
@@ -45,6 +45,7 @@ TAR!:=$(GNUTAR)
# --- Files --------------------------------------------------------
TARFILE_NAME=commons-httpclient-3.1-src
+TARFILE_MD5=2c9b0f83ed5890af02c0df1c1776f39b
TARFILE_ROOTDIR=commons-httpclient-3.1
diff --git a/apache-commons/java/lang/makefile.mk b/apache-commons/java/lang/makefile.mk
index 97501563e242..0bf15d0020ce 100644
--- a/apache-commons/java/lang/makefile.mk
+++ b/apache-commons/java/lang/makefile.mk
@@ -45,6 +45,7 @@ TAR!:=$(GNUTAR)
# --- Files --------------------------------------------------------
TARFILE_NAME=commons-lang-2.3-src
+TARFILE_MD5=2ae988b339daec234019a7066f96733e
TARFILE_ROOTDIR=commons-lang-2.3-src
diff --git a/apache-commons/java/logging/makefile.mk b/apache-commons/java/logging/makefile.mk
index 6e3a1d2314d9..5df8c34dde3a 100644
--- a/apache-commons/java/logging/makefile.mk
+++ b/apache-commons/java/logging/makefile.mk
@@ -43,6 +43,7 @@ ANT_BUILDFILE=build.xml
# --- Files --------------------------------------------------------
TARFILE_NAME=commons-logging-1.1.1-src
+TARFILE_MD5=3c219630e4302863a9a83d0efde889db
TARFILE_ROOTDIR=commons-logging-1.1.1-src
diff --git a/autodoc/source/display/html/cfrstd.cxx b/autodoc/source/display/html/cfrstd.cxx
index 3bf56afb07cc..3b45576c17ae 100644
--- a/autodoc/source/display/html/cfrstd.cxx
+++ b/autodoc/source/display/html/cfrstd.cxx
@@ -338,7 +338,7 @@ MakeCopyRight()
cr << "Copyright &copy; 1995, "
<< year
- << ", Oracle and/or its affiliates. All rights reserved.";
+ << ", Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.";
return String(cr.c_str());
}
diff --git a/automation/source/testtool/filter.pl b/automation/source/testtool/filter.pl
index 79b7add5c5b3..8f45073b0934 100644
--- a/automation/source/testtool/filter.pl
+++ b/automation/source/testtool/filter.pl
@@ -71,28 +71,13 @@ sub read_block {
print "Leaving read_block at the end\n" if $debug;
}
-sub convert_path {
-
- $_ = $_[0];
- $GUI = $ENV {"GUI"};
- $use_shell = $ENV {"USE_SHELL"};
- if ( $GUI eq "WNT" )
- {
- if ( defined( $use_shell ) && "$use_shell" eq "4nt" )
- {
- s/\//\\/g;
- }
- }
- $_;
-}
-
# Read a file.
# first parameter ist the filename
sub read_file {
local ($filename,$file) = @_;
$file++; # String increment
- local $TempFileName = &convert_path( $basename."/".$filename );
+ local $TempFileName = $basename."/".$filename;
print "reading file $TempFileName as $file\n" if $debug;
open($file, $TempFileName) || die "error: Could not open file $TempFileName. ";
@@ -103,9 +88,6 @@ sub read_file {
# main starts here
-print &convert_path ("/\n\n\n") if ( $debug );
-
-
$basename = ".";
$basename = $ARGV[0] if defined($ARGV[0]);
diff --git a/automation/source/testtool/makefile.mk b/automation/source/testtool/makefile.mk
index 962f9d6e2694..db8464130c1b 100644
--- a/automation/source/testtool/makefile.mk
+++ b/automation/source/testtool/makefile.mk
@@ -87,13 +87,8 @@ $(INCCOM)$/res_type.hxx : $(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT)$/tools$/
$(MISC)$/xfilter.pl : filter.pl
-.IF "$(GUI)" == "UNX" || "$(USE_SHELL)"!="4nt"
tr -d "\015" < filter.pl > $(MISC)$/xfilter.pl
chmod 664 $(MISC)$/xfilter.pl
-.ELSE
- $(COPY) filter.pl $(MISC)$/xfilter.pl
- attrib -r $(MISC)$/xfilter.pl
-.ENDIF
diff --git a/avmedia/source/quicktime/avmediaQuickTime.map b/avmedia/source/quicktime/avmediaQuickTime.map
deleted file mode 100644
index bf1fbe0696c8..000000000000
--- a/avmedia/source/quicktime/avmediaQuickTime.map
+++ /dev/null
@@ -1,8 +0,0 @@
-LEXPS_1_0 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
- local:
- *;
-};
diff --git a/avmedia/source/quicktime/makefile.mk b/avmedia/source/quicktime/makefile.mk
index 088f3b5d0ef3..f3c9f244f357 100644
--- a/avmedia/source/quicktime/makefile.mk
+++ b/avmedia/source/quicktime/makefile.mk
@@ -73,7 +73,7 @@ SHL1LIBS=$(SLB)$/$(TARGET).lib
SHL1IMPLIB=i$(TARGET)
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Targets ------------------------------------------------------
diff --git a/basctl/source/basicide/baside4.cxx b/basctl/source/basicide/baside4.cxx
deleted file mode 100644
index c080427ee013..000000000000
--- a/basctl/source/basicide/baside4.cxx
+++ /dev/null
@@ -1,31 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_basctl.hxx"
-
-
diff --git a/basctl/source/basicide/makefile.mk b/basctl/source/basicide/makefile.mk
index 6a08349b0979..62c4755112d1 100644
--- a/basctl/source/basicide/makefile.mk
+++ b/basctl/source/basicide/makefile.mk
@@ -90,11 +90,7 @@ $(INCCOM)$/dllname.hxx: makefile.mk
$(RM) $@
echo \#define DLL_NAME \"libbasctl$(DLLPOSTFIX)$(DLLPOST)\" >$@
.ELSE
-.IF "$(USE_SHELL)"!="4nt"
echo \#define DLL_NAME \"basctl$(DLLPOSTFIX)$(DLLPOST)\" >$@
-.ELSE # "$(USE_SHELL)"!="4nt"
- echo #define DLL_NAME "basctl$(DLLPOSTFIX)$(DLLPOST)" >$@
-.ENDIF # "$(USE_SHELL)"!="4nt"
.ENDIF
$(SLO)$/basiclib.obj : $(INCCOM)$/dllname.hxx
diff --git a/basctl/util/basctl.map b/basctl/util/basctl.map
index 6b132e93cc3d..80359606ccc8 100755
--- a/basctl/util/basctl.map
+++ b/basctl/util/basctl.map
@@ -1,4 +1,4 @@
-BASCTL_1.0 {
+UDK_3_0_0 {
global:
basicide_choose_macro;
basicide_macro_organizer;
diff --git a/basebmp/test/basictest.cxx b/basebmp/test/basictest.cxx
index 4129cebdbd3d..6f96cf56f492 100644
--- a/basebmp/test/basictest.cxx
+++ b/basebmp/test/basictest.cxx
@@ -27,7 +27,10 @@
// autogenerated file with codegen.pl
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
#include <basegfx/vector/b2isize.hxx>
#include <basegfx/point/b2ipoint.hxx>
@@ -291,13 +294,7 @@ public:
};
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(BasicTest, "BasicTest");
+CPPUNIT_TEST_SUITE_REGISTRATION(BasicTest);
}
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-NOADDITIONAL;
-
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/basebmp/test/bmpmasktest.cxx b/basebmp/test/bmpmasktest.cxx
index e65c5e569d3c..9be504819fe8 100644
--- a/basebmp/test/bmpmasktest.cxx
+++ b/basebmp/test/bmpmasktest.cxx
@@ -27,7 +27,9 @@
// autogenerated file with codegen.pl
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
#include <basegfx/vector/b2isize.hxx>
#include <basegfx/range/b2irange.hxx>
@@ -177,7 +179,7 @@ public:
};
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(BmpMaskTest, "BmpMaskTest");
+CPPUNIT_TEST_SUITE_REGISTRATION(BmpMaskTest);
}
diff --git a/basebmp/test/bmptest.cxx b/basebmp/test/bmptest.cxx
index ce2e2440dcd1..9e33f0a8d713 100644
--- a/basebmp/test/bmptest.cxx
+++ b/basebmp/test/bmptest.cxx
@@ -27,7 +27,9 @@
// autogenerated file with codegen.pl
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
#include <basegfx/vector/b2isize.hxx>
#include <basegfx/range/b2irange.hxx>
@@ -204,7 +206,7 @@ public:
};
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(BmpTest, "BmpTest");
+CPPUNIT_TEST_SUITE_REGISTRATION(BmpTest);
}
diff --git a/basebmp/test/cliptest.cxx b/basebmp/test/cliptest.cxx
index 1c4a20bc0d86..875016d878cc 100644
--- a/basebmp/test/cliptest.cxx
+++ b/basebmp/test/cliptest.cxx
@@ -27,7 +27,9 @@
// autogenerated file with codegen.pl
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
#include <basegfx/vector/b2isize.hxx>
#include <basegfx/point/b2ipoint.hxx>
@@ -271,7 +273,7 @@ public:
};
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(ClipTest, "ClipTest");
+CPPUNIT_TEST_SUITE_REGISTRATION(ClipTest);
}
diff --git a/basebmp/test/export.map b/basebmp/test/export.map
index 709047ae63e5..3308588ef6f8 100644
--- a/basebmp/test/export.map
+++ b/basebmp/test/export.map
@@ -25,9 +25,9 @@
#
#*************************************************************************
-UDK_3.1 {
+UDK_3_0_0 {
global:
- registerAllTestFunction;
+ cppunitTestPlugIn;
local:
*;
diff --git a/basebmp/test/filltest.cxx b/basebmp/test/filltest.cxx
index ea801de8111f..150fa11b3a72 100644
--- a/basebmp/test/filltest.cxx
+++ b/basebmp/test/filltest.cxx
@@ -27,7 +27,9 @@
// autogenerated file with codegen.pl
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
#include <basegfx/vector/b2isize.hxx>
#include <basegfx/range/b2drange.hxx>
@@ -265,7 +267,7 @@ public:
};
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(FillTest, "FillTest");
+CPPUNIT_TEST_SUITE_REGISTRATION(FillTest);
}
diff --git a/basebmp/test/linetest.cxx b/basebmp/test/linetest.cxx
index 3c30ed718b70..fcd383fccdb0 100644
--- a/basebmp/test/linetest.cxx
+++ b/basebmp/test/linetest.cxx
@@ -27,7 +27,9 @@
// autogenerated file with codegen.pl
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
#include <basegfx/vector/b2isize.hxx>
#include <basegfx/point/b2ipoint.hxx>
@@ -213,7 +215,7 @@ public:
};
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(LineTest, "LineTest");
+CPPUNIT_TEST_SUITE_REGISTRATION(LineTest);
}
diff --git a/basebmp/test/makefile.mk b/basebmp/test/makefile.mk
index a11dacc1125d..ca77721716f7 100644
--- a/basebmp/test/makefile.mk
+++ b/basebmp/test/makefile.mk
@@ -60,6 +60,8 @@ CDEFS+=-xalias_level=compatible
.ENDIF
.ENDIF
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# --- Common ----------------------------------------------------------
.IF "$(L10N_framework)"==""
@@ -74,17 +76,10 @@ SHL1OBJS= \
$(SLO)$/linetest.obj \
$(SLO)$/masktest.obj \
$(SLO)$/polytest.obj \
- $(SLO)$/tools.obj \
- $(SLO)$/bitmapdevice.obj \
- $(SLO)$/debug.obj \
- $(SLO)$/polypolygonrenderer.obj
-# last three objs are a bit of a hack: cannot link against LIBBASEBMP
-# here, because not yet delivered. Need the functionality to test, so
-# we're linking it in statically. Need to keep this in sync with
-# source/makefile.mk
+ $(SLO)$/tools.obj
SHL1TARGET= tests
-SHL1STDLIBS= $(SALLIB) \
- $(TESTSHL2LIB)\
+SHL1STDLIBS= $(BASEBMPLIB) \
+ $(SALLIB) \
$(CPPUNITLIB) \
$(BASEGFXLIB)
@@ -92,6 +87,8 @@ SHL1IMPLIB= i$(SHL1TARGET)
DEF1NAME =$(SHL1TARGET)
SHL1VERSIONMAP = export.map
+SHL1RPATH = NONE
+
.ENDIF
# END ------------------------------------------------------------------
@@ -121,16 +118,8 @@ SLOFILES=$(SHL1OBJS)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
-.INCLUDE : _cppunit.mk
# --- Enable test execution in normal build ------------------------
.IF "$(L10N_framework)"==""
-
-unittest : $(SHL1TARGETN)
- @echo ----------------------------------------------------------
- @echo - start unit test on library $(SHL1TARGETN)
- @echo ----------------------------------------------------------
- $(TESTSHL2) -sf $(mktmp ) $(SHL1TARGETN)
-
-ALLTAR : unittest
+.INCLUDE : _cppunit.mk
.ENDIF
diff --git a/basebmp/test/masktest.cxx b/basebmp/test/masktest.cxx
index e3843eba389a..77cd05588d5a 100644
--- a/basebmp/test/masktest.cxx
+++ b/basebmp/test/masktest.cxx
@@ -27,7 +27,9 @@
// autogenerated file with codegen.pl
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
#include <basegfx/vector/b2isize.hxx>
#include <basegfx/range/b2irange.hxx>
@@ -165,7 +167,7 @@ public:
};
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(MaskTest, "MaskTest");
+CPPUNIT_TEST_SUITE_REGISTRATION(MaskTest);
}
diff --git a/basebmp/test/polytest.cxx b/basebmp/test/polytest.cxx
index c8290668d1f8..f3b1f0018e17 100644
--- a/basebmp/test/polytest.cxx
+++ b/basebmp/test/polytest.cxx
@@ -27,7 +27,9 @@
// autogenerated file with codegen.pl
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
#include <basegfx/vector/b2isize.hxx>
#include <basegfx/range/b2irange.hxx>
@@ -285,7 +287,7 @@ public:
};
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(PolyTest, "PolyTest");
+CPPUNIT_TEST_SUITE_REGISTRATION(PolyTest);
}
diff --git a/basegfx/inc/basegfx/matrix/b2dhommatrixtools.hxx b/basegfx/inc/basegfx/matrix/b2dhommatrixtools.hxx
index 3941ee19cb42..7ce9e75c3058 100644
--- a/basegfx/inc/basegfx/matrix/b2dhommatrixtools.hxx
+++ b/basegfx/inc/basegfx/matrix/b2dhommatrixtools.hxx
@@ -32,6 +32,8 @@
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/vector/b2dvector.hxx>
+namespace rtl { class OUString; }
+
///////////////////////////////////////////////////////////////////////////////
namespace basegfx
@@ -132,6 +134,7 @@ namespace basegfx
rPoint.getX(), rPoint.getY(),
fRadiant);
}
+
} // end of namespace tools
} // end of namespace basegfx
@@ -220,6 +223,10 @@ namespace basegfx
double getShearX() const { const_cast< B2DHomMatrixBufferedOnDemandDecompose* >(this)->impCheckDecompose(); return mfShearX; }
};
} // end of namespace tools
+
+ /// Returns a string with svg's "matrix(m00,m10,m01,m11,m02,m12)" representation
+ ::rtl::OUString exportToSvg( const B2DHomMatrix& rMatrix );
+
} // end of namespace basegfx
///////////////////////////////////////////////////////////////////////////////
diff --git a/basegfx/inc/basegfx/numeric/ftools.hxx b/basegfx/inc/basegfx/numeric/ftools.hxx
index 0a4cdfcffdaa..65a6566dae25 100644
--- a/basegfx/inc/basegfx/numeric/ftools.hxx
+++ b/basegfx/inc/basegfx/numeric/ftools.hxx
@@ -109,7 +109,7 @@ namespace basegfx
/** clamp given value against given minimum and maximum values
*/
- template <class T> const T& clamp(const T& value, const T& minimum, const T& maximum)
+ template <class T> inline const T& clamp(const T& value, const T& minimum, const T& maximum)
{
if(value < minimum)
{
diff --git a/basegfx/inc/basegfx/polygon/b2dpolygon.hxx b/basegfx/inc/basegfx/polygon/b2dpolygon.hxx
index 30f7786a6981..a12120b5f441 100644
--- a/basegfx/inc/basegfx/polygon/b2dpolygon.hxx
+++ b/basegfx/inc/basegfx/polygon/b2dpolygon.hxx
@@ -260,6 +260,12 @@ namespace basegfx
/// apply transformation given in matrix form
void transform(const basegfx::B2DHomMatrix& rMatrix);
+
+ // point iterators (same iterator validity conditions as for vector)
+ const B2DPoint* begin() const;
+ const B2DPoint* end() const;
+ B2DPoint* begin();
+ B2DPoint* end();
};
} // end of namespace basegfx
diff --git a/basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx b/basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx
index 1ccaaa8330ec..0032cc47ce4e 100644
--- a/basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx
+++ b/basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx
@@ -125,6 +125,12 @@ namespace basegfx
// apply transformation given in matrix form to the polygon
void transform(const basegfx::B2DHomMatrix& rMatrix);
+
+ // polygon iterators (same iterator validity conditions as for vector)
+ const B2DPolygon* begin() const;
+ const B2DPolygon* end() const;
+ B2DPolygon* begin();
+ B2DPolygon* end();
};
} // end of namespace basegfx
diff --git a/basegfx/inc/basegfx/polygon/b3dgeometry.hxx b/basegfx/inc/basegfx/polygon/b3dgeometry.hxx
deleted file mode 100644
index ec66f3e3a570..000000000000
--- a/basegfx/inc/basegfx/polygon/b3dgeometry.hxx
+++ /dev/null
@@ -1,70 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 _BGFX_POLYGON_B3DGEOMETRY_HXX
-#define _BGFX_POLYGON_B3DGEOMETRY_HXX
-
-//////////////////////////////////////////////////////////////////////////////
-// predeclarations
-
-namespace basegfx
-{
-} // end of namespace basegfx
-
-//////////////////////////////////////////////////////////////////////////////
-
-namespace basegfx
-{
- class B3DGeometry
- {
- private:
- B2DPolyPolygon maPolyPolygon; // the PolyPolygon geometry data, defines point number
- B3DHomMatrix maPolygonTo3D; // transformation to create 3D PolyPolygon
- B3DPolyPolygon maPolyNormal; // normal for each point or empty -> unified normal
- B2DPolyPolygon maPolyTexture; // texture coordinate for each point or empty -> unified coordinate
- B3DVector maUnifiedVector; // used when maNormal is empty
-
- // bitfield
- unsigned mbUnifiedVectorValid : 1; // flag to know if uvec is calculated yet
-
- public:
- B3DGeometry();
- ~B3DGeometry();
-
- // compare operators
- bool operator==(const B3DGeometry& rGeometry) const;
- bool operator!=(const B3DGeometry& rGeometry) const { return (!operator==(rGeometry)); }
-
- // member count
- sal_uInt32 count() const { return maPolyPolygon.count(); }
- };
-} // end of namespace basegfx
-
-//////////////////////////////////////////////////////////////////////////////
-
-
-#endif /* _BGFX_POLYGON_B3DPOLYGON_HXX */
diff --git a/basegfx/inc/basegfx/range/b2dmultirange.hxx b/basegfx/inc/basegfx/range/b2dmultirange.hxx
deleted file mode 100644
index 4c1eb37be036..000000000000
--- a/basegfx/inc/basegfx/range/b2dmultirange.hxx
+++ /dev/null
@@ -1,114 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 _BGFX_RANGE_B2DMULTIRANGE_HXX
-#define _BGFX_RANGE_B2DMULTIRANGE_HXX
-
-#include <o3tl/cow_wrapper.hxx>
-#include <memory>
-
-
-namespace basegfx
-{
- class B2DTuple;
- class B2DRange;
- class B2DPolyPolygon;
- class ImplB2DMultiRange;
-
- /** Multiple ranges in one object.
-
- This class combines multiple ranges in one object, providing a
- total, enclosing range for it.
-
- You can use this class e.g. when updating views containing
- rectangular objects. Add each modified object to a
- B2DMultiRange, then test each viewable object against
- intersection with the multi range.
- */
- class B2DMultiRange
- {
- public:
- B2DMultiRange();
- ~B2DMultiRange();
-
- /** Create a multi range with exactly one containing range
- */
- explicit B2DMultiRange( const B2DRange& rRange );
-
- B2DMultiRange( const B2DMultiRange& );
- B2DMultiRange& operator=( const B2DMultiRange& );
-
- /** Check whether range is empty.
-
- @return true, if this object either contains no ranges at
- all, or all contained ranges are empty.
- */
- bool isEmpty() const;
-
- /** Reset to empty.
-
- After this call, the object will not contain any ranges,
- and isEmpty() will return true.
- */
- void reset();
-
- /** Test whether given tuple is inside one or more of the
- included ranges.
- */
- bool isInside( const B2DTuple& rTuple ) const;
-
- /** Test whether given range is inside one or more of the
- included ranges.
- */
- bool isInside( const B2DRange& rRange ) const;
-
- /** Test whether given range overlaps one or more of the
- included ranges.
- */
- bool overlaps( const B2DRange& rRange ) const;
-
- /** Add given range to the number of contained ranges.
- */
- void addRange( const B2DRange& rRange );
-
- /** Get overall bound rect for all included ranges.
- */
- B2DRange getBounds() const;
-
- /** Request poly-polygon representing the added ranges.
-
- This method creates a poly-polygon, consisting exactly out
- of the contained ranges.
- */
- B2DPolyPolygon getPolyPolygon() const;
-
- private:
- o3tl::cow_wrapper< ImplB2DMultiRange > mpImpl;
- };
-}
-
-#endif /* _BGFX_RANGE_B2DMULTIRANGE_HXX */
diff --git a/basegfx/inc/basegfx/range/b2dpolyrange.hxx b/basegfx/inc/basegfx/range/b2dpolyrange.hxx
new file mode 100644
index 000000000000..2202869dc921
--- /dev/null
+++ b/basegfx/inc/basegfx/range/b2dpolyrange.hxx
@@ -0,0 +1,145 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: b2dmultirange.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 _BGFX_RANGE_B2DPOLYRANGE_HXX
+#define _BGFX_RANGE_B2DPOLYRANGE_HXX
+
+#include <o3tl/cow_wrapper.hxx>
+#include <boost/tuple/tuple.hpp>
+#include <basegfx/vector/b2enums.hxx>
+
+namespace basegfx
+{
+ class B2DTuple;
+ class B2DRange;
+ class B2DPolyPolygon;
+ class ImplB2DPolyRange;
+
+ /** Multiple ranges in one object.
+
+ This class combines multiple ranges in one object, providing a
+ total, enclosing range for it.
+
+ You can use this class e.g. when updating views containing
+ rectangular objects. Add each modified object to a
+ B2DMultiRange, then test each viewable object against
+ intersection with the multi range.
+
+ Similar in spirit to the poly-polygon vs. polygon relationship.
+
+ Note that comparable to polygons, a poly-range can also
+ contain 'holes' - this is encoded via polygon orientation at
+ the poly-polygon, and via explicit flags for the poly-range.
+ */
+ class B2DPolyRange
+ {
+ public:
+ typedef boost::tuple<B2DRange,B2VectorOrientation> ElementType ;
+
+ B2DPolyRange();
+ ~B2DPolyRange();
+
+ /** Create a multi range with exactly one containing range
+ */
+ explicit B2DPolyRange( const ElementType& rElement );
+ B2DPolyRange( const B2DRange& rRange, B2VectorOrientation eOrient );
+ B2DPolyRange( const B2DPolyRange& );
+ B2DPolyRange& operator=( const B2DPolyRange& );
+
+ /// unshare this poly-range with all internally shared instances
+ void makeUnique();
+
+ bool operator==(const B2DPolyRange&) const;
+ bool operator!=(const B2DPolyRange&) const;
+
+ /// Number of included ranges
+ sal_uInt32 count() const;
+
+ ElementType getElement(sal_uInt32 nIndex) const;
+ void setElement(sal_uInt32 nIndex, const ElementType& rElement );
+ void setElement(sal_uInt32 nIndex, const B2DRange& rRange, B2VectorOrientation eOrient );
+
+ // insert/append a single range
+ void insertElement(sal_uInt32 nIndex, const ElementType& rElement, sal_uInt32 nCount = 1);
+ void insertElement(sal_uInt32 nIndex, const B2DRange& rRange, B2VectorOrientation eOrient, sal_uInt32 nCount = 1);
+ void appendElement(const ElementType& rElement, sal_uInt32 nCount = 1);
+ void appendElement(const B2DRange& rRange, B2VectorOrientation eOrient, sal_uInt32 nCount = 1);
+
+ // insert/append multiple ranges
+ void insertPolyRange(sal_uInt32 nIndex, const B2DPolyRange&);
+ void appendPolyRange(const B2DPolyRange&);
+
+ void remove(sal_uInt32 nIndex, sal_uInt32 nCount = 1);
+ void clear();
+
+ // flip range orientations - converts holes to solids, and vice versa
+ void flip();
+
+ /** Get overall range
+
+ @return
+ The union range of all contained ranges
+ */
+ B2DRange getBounds() const;
+
+ /** Test whether given tuple is inside one or more of the
+ included ranges. Does *not* use overall range, but checks
+ individually.
+ */
+ bool isInside( const B2DTuple& rTuple ) const;
+
+ /** Test whether given range is inside one or more of the
+ included ranges. Does *not* use overall range, but checks
+ individually.
+ */
+ bool isInside( const B2DRange& rRange ) const;
+
+ /** Test whether given range overlaps one or more of the
+ included ranges. Does *not* use overall range, but checks
+ individually.
+ */
+ bool overlaps( const B2DRange& rRange ) const;
+
+ /** Request a poly-polygon with solved cross-overs
+ */
+ B2DPolyPolygon solveCrossovers() const;
+
+ // element iterators (same iterator validity conditions as for vector)
+ const B2DRange* begin() const;
+ const B2DRange* end() const;
+ B2DRange* begin();
+ B2DRange* end();
+
+ private:
+ o3tl::cow_wrapper< ImplB2DPolyRange > mpImpl;
+ };
+}
+
+#endif /* _BGFX_RANGE_B2DPOLYRANGE_HXX */
diff --git a/basegfx/source/polygon/b3dgeometry.cxx b/basegfx/inc/basegfx/range/b2drangeclipper.hxx
index 6c1537bac0a6..3285ffeaffe1 100644
--- a/basegfx/source/polygon/b3dgeometry.cxx
+++ b/basegfx/inc/basegfx/range/b2drangeclipper.hxx
@@ -2,10 +2,13 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2000, 2010 Oracle and/or its affiliates.
+ * Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
+ * $RCSfile: b2dmultirange.hxx,v $
+ * $Revision: 1.6 $
+ *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -25,31 +28,26 @@
*
************************************************************************/
-#include <osl/diagnose.h>
-#include <basegfx/polygon/b3dgeometry.hxx>
+#ifndef _BGFX_RANGE_B2DRANGECLIPPER_HXX
+#define _BGFX_RANGE_B2DRANGECLIPPER_HXX
-//////////////////////////////////////////////////////////////////////////////
+#include <basegfx/range/b2dpolyrange.hxx>
+#include <vector>
namespace basegfx
{
- B3DGeometry::B3DGeometry()
- : mbUnifiedVectorValid(false)
+ namespace tools
{
- }
+ /** Extract poly-polygon w/o self-intersections from poly-range
- B3DGeometry::~B3DGeometry()
- {
+ Similar to the solveCrossovers(const B2DPolyPolygon&)
+ method, this one calculates a self-intersection-free
+ poly-polygon with the same topology, and encoding
+ inside/outsidedness via polygon orientation and layering.
+ */
+ B2DPolyPolygon solveCrossovers(const std::vector<B2DRange>& rRanges,
+ const std::vector<B2VectorOrientation>& rOrientations);
}
+}
- bool B3DGeometry::operator==(const B3DGeometry& rGeometry) const
- {
- return (maPolyPolygon == maPolyPolygon
- && maPolygonTo3D == maPolygonTo3D
- && maPolyNormal == maPolyNormal
- && maPolyTexture == maPolyTexture
- }
-
-} // end of namespace basegfx
-
-//////////////////////////////////////////////////////////////////////////////
-// eof
+#endif /* _BGFX_RANGE_B2DRANGECLIPPER_HXX */
diff --git a/basegfx/inc/basegfx/tools/b2dclipstate.hxx b/basegfx/inc/basegfx/tools/b2dclipstate.hxx
new file mode 100644
index 000000000000..7d336d8cb48e
--- /dev/null
+++ b/basegfx/inc/basegfx/tools/b2dclipstate.hxx
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: rectcliptools.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 _BGFX_TOOLS_CLIPSTATE_HXX
+#define _BGFX_TOOLS_CLIPSTATE_HXX
+
+#include <sal/types.h>
+#include <o3tl/cow_wrapper.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace basegfx
+{
+ class B2DRange;
+ class B2DPolyRange;
+ class B2DPolygon;
+ class B2DPolyPolygon;
+
+ namespace tools
+ {
+ class ImplB2DClipState;
+
+ /** This class provides an optimized, symbolic clip state for graphical output
+
+ Having a current 'clip' state is a common attribute of
+ almost all graphic output APIs, most of which internally
+ represent it via a list of rectangular bands. In contrast,
+ this implementation purely uses symbolic clips, but in a
+ quite efficient manner, deferring actual evaluation until
+ a clip representation is requested, and using faster code
+ paths for common special cases (like all-rectangle clips)
+ */
+ class B2DClipState
+ {
+ public:
+ typedef o3tl::cow_wrapper< ImplB2DClipState > ImplType;
+
+ private:
+ ImplType mpImpl;
+
+ public:
+ /// Init clip, in 'cleared' state - everything is visible
+ B2DClipState();
+ ~B2DClipState();
+ B2DClipState( const B2DClipState& );
+ explicit B2DClipState( const B2DRange& );
+ explicit B2DClipState( const B2DPolygon& );
+ explicit B2DClipState( const B2DPolyPolygon& );
+ B2DClipState& operator=( const B2DClipState& );
+
+ /// unshare this poly-range with all internally shared instances
+ void makeUnique();
+
+ /// Set clip to 'null' - nothing is visible
+ void makeNull();
+ /// returns true when clip is 'null' - nothing is visible
+ bool isNull() const;
+
+ /// Set clip 'cleared' - everything is visible
+ void makeClear();
+ /// returns true when clip is 'cleared' - everything is visible
+ bool isCleared() const;
+
+ bool operator==(const B2DClipState&) const;
+ bool operator!=(const B2DClipState&) const;
+
+ void unionRange(const B2DRange& );
+ void unionPolygon(const B2DPolygon& );
+ void unionPolyPolygon(const B2DPolyPolygon& );
+ void unionClipState(const B2DClipState& );
+
+ void intersectRange(const B2DRange& );
+ void intersectPolygon(const B2DPolygon& );
+ void intersectPolyPolygon(const B2DPolyPolygon& );
+ void intersectClipState(const B2DClipState& );
+
+ void subtractRange(const B2DRange& );
+ void subtractPolygon(const B2DPolygon& );
+ void subtractPolyPolygon(const B2DPolyPolygon& );
+ void subtractClipState(const B2DClipState& );
+
+ void xorRange(const B2DRange& );
+ void xorPolygon(const B2DPolygon& );
+ void xorPolyPolygon(const B2DPolyPolygon& );
+ void xorClipState(const B2DClipState& );
+
+ B2DPolyPolygon getClipPoly() const;
+ };
+ }
+}
+
+#endif // _BGFX_TOOLS_CLIPSTATE_HXX
diff --git a/basegfx/inc/basegfx/tools/gradienttools.hxx b/basegfx/inc/basegfx/tools/gradienttools.hxx
index 0dab1a5117ff..2f436fa1d717 100644
--- a/basegfx/inc/basegfx/tools/gradienttools.hxx
+++ b/basegfx/inc/basegfx/tools/gradienttools.hxx
@@ -34,6 +34,9 @@
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/numeric/ftools.hxx>
+#include <vector>
+#include <algorithm>
+
namespace basegfx
{
/** Gradient definition as used in ODF 1.2
@@ -75,6 +78,8 @@ namespace basegfx
{
/** Create matrix for ODF's linear gradient definition
+ Note that odf linear gradients are varying in y direction.
+
@param o_rGradientInfo
Receives the calculated texture transformation matrix (for
use with standard [0,1]x[0,1] texture coordinates)
@@ -106,7 +111,7 @@ namespace basegfx
@param rUV
Current uv coordinate. Values outside [0,1] will be
- clamped.
+ clamped. Assumes gradient color varies along the y axis.
@param rGradInfo
Gradient info, for transformation and number of steps
@@ -126,6 +131,14 @@ namespace basegfx
/** Create matrix for ODF's axial gradient definition
+ Note that odf axial gradients are varying in y
+ direction. Note further that you can map the axial
+ gradient to a linear gradient (in case you want or need to
+ avoid an extra gradient renderer), by using
+ createLinearODFGradientInfo() instead, shifting the
+ resulting texture transformation by 0.5 to the top and
+ appending the same stop colors again, but mirrored.
+
@param o_rGradientInfo
Receives the calculated texture transformation matrix (for
use with standard [0,1]x[0,1] texture coordinates)
@@ -157,7 +170,7 @@ namespace basegfx
@param rUV
Current uv coordinate. Values outside [0,1] will be
- clamped.
+ clamped. Assumes gradient color varies along the y axis.
@param rGradInfo
Gradient info, for transformation and number of steps
@@ -391,7 +404,6 @@ namespace basegfx
{
return getSquareGradientAlpha(rUV, rGradInfo); // only matrix setup differs
}
-
}
}
diff --git a/basegfx/inc/basegfx/tools/keystoplerp.hxx b/basegfx/inc/basegfx/tools/keystoplerp.hxx
new file mode 100644
index 000000000000..a54b3485b1a1
--- /dev/null
+++ b/basegfx/inc/basegfx/tools/keystoplerp.hxx
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: canvastools.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 _BGFX_TOOLS_KEYSTOPLERP_HXX
+#define _BGFX_TOOLS_KEYSTOPLERP_HXX
+
+#include <basegfx/numeric/ftools.hxx>
+#include <vector>
+
+namespace com{ namespace sun{ namespace star{ namespace uno {
+ template<typename T> class Sequence;
+}}}}
+
+namespace basegfx
+{
+ namespace tools
+ {
+ /** Lerp in a vector of key stops
+
+ This class holds a key stop vector and provides the
+ functionality to lerp inside it. Useful e.g. for
+ multi-stop gradients, or the SMIL key time activity.
+
+ For those, given a global [0,1] lerp alpha, one need to
+ find the suitable bucket index from key stop vector, and
+ then calculate the relative alpha between the two buckets
+ found.
+ */
+ class KeyStopLerp
+ {
+ public:
+ typedef std::pair<std::ptrdiff_t,double> ResultType;
+
+ /** Create lerper with given vector of stops
+
+ @param rKeyStops
+
+ Vector of stops, must contain at least two elements
+ (though preferrably more, otherwise you probably don't
+ need key stop lerping in the first place). All
+ elements must be of monotonically increasing value.
+ */
+ explicit KeyStopLerp( const std::vector<double>& rKeyStops );
+
+ /** Create lerper with given sequence of stops
+
+ @param rKeyStops
+
+ Sequence of stops, must contain at least two elements
+ (though preferrably more, otherwise you probably don't
+ need key stop lerping in the first place). All
+ elements must be of monotonically increasing value.
+ */
+ explicit KeyStopLerp( const ::com::sun::star::uno::Sequence<double>& rKeyStops );
+
+ /** Find two nearest bucket index & interpolate
+
+ @param fAlpha
+ Find bucket index i, with keyStops[i] < fAlpha <=
+ keyStops[i+1]. Return new alpha value in [0,1),
+ proportional to fAlpha's position between keyStops[i]
+ and keyStops[i+1]
+ */
+ ResultType lerp(double fAlpha) const;
+
+ private:
+ std::vector<double> maKeyStops;
+ mutable std::ptrdiff_t mnLastIndex;
+ };
+ }
+}
+
+#endif
diff --git a/slideshow/source/inc/lerp.hxx b/basegfx/inc/basegfx/tools/lerp.hxx
index 5aad41f4099f..590ef34c2009 100644
--- a/slideshow/source/inc/lerp.hxx
+++ b/basegfx/inc/basegfx/tools/lerp.hxx
@@ -2,10 +2,13 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2000, 2010 Oracle and/or its affiliates.
+ * Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
+ * $RCSfile: lerp.hxx,v $
+ * $Revision: 1.6 $
+ *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -25,16 +28,15 @@
*
************************************************************************/
-#ifndef INCLUDED_SLIDESHOW_LERP_HXX
-#define INCLUDED_SLIDESHOW_LERP_HXX
+#ifndef _BGFX_TOOLS_LERP_HXX
+#define _BGFX_TOOLS_LERP_HXX
#include <sal/types.h>
-namespace slideshow
+namespace basegfx
{
- namespace internal
+ namespace tools
{
-
/** Generic linear interpolator
@tpl ValueType
@@ -52,8 +54,7 @@ namespace slideshow
// types should be okay here.
return static_cast<ValueType>( (1.0-t)*rFrom + t*rTo );
}
-
}
}
-#endif /* INCLUDED_SLIDESHOW_LERP_HXX */
+#endif /* _BGFX_TOOLS_LERP_HXX */
diff --git a/basegfx/prj/build.lst b/basegfx/prj/build.lst
index 418b3822a7ee..fe3354b3f256 100644
--- a/basegfx/prj/build.lst
+++ b/basegfx/prj/build.lst
@@ -1,4 +1,4 @@
-fx basegfx : o3tl sal offuh cppuhelper cppu testshl2 NULL
+fx basegfx : o3tl sal offuh cppuhelper cppu CPPUNIT:cppunit NULL
fx basegfx usr1 - all fx_mkout NULL
fx basegfx\inc nmake - all fx_inc NULL
fx basegfx\prj get - all fx_prj NULL
diff --git a/basegfx/prj/d.lst b/basegfx/prj/d.lst
index 68ab880eef62..3d4d985f3ae6 100644
--- a/basegfx/prj/d.lst
+++ b/basegfx/prj/d.lst
@@ -27,7 +27,7 @@ mkdir: %_DEST%\inc%_EXT%\basegfx\range
..\inc\basegfx\range\basicrange.hxx %_DEST%\inc%_EXT%\basegfx\range\basicrange.hxx
..\inc\basegfx\range\basicbox.hxx %_DEST%\inc%_EXT%\basegfx\range\basicbox.hxx
..\inc\basegfx\range\b1drange.hxx %_DEST%\inc%_EXT%\basegfx\range\b1drange.hxx
-..\inc\basegfx\range\b2dmultirange.hxx %_DEST%\inc%_EXT%\basegfx\range\b2dmultirange.hxx
+..\inc\basegfx\range\b2dpolyrange.hxx %_DEST%\inc%_EXT%\basegfx\range\b2dpolyrange.hxx
..\inc\basegfx\range\b2drange.hxx %_DEST%\inc%_EXT%\basegfx\range\b2drange.hxx
..\inc\basegfx\range\b2drectangle.hxx %_DEST%\inc%_EXT%\basegfx\range\b2drectangle.hxx
..\inc\basegfx\range\b2dconnectedranges.hxx %_DEST%\inc%_EXT%\basegfx\range\b2dconnectedranges.hxx
@@ -90,7 +90,10 @@ mkdir: %_DEST%\inc%_EXT%\basegfx\tuple
mkdir: %_DEST%\inc%_EXT%\basegfx\tools
..\inc\basegfx\tools\canvastools.hxx %_DEST%\inc%_EXT%\basegfx\tools\canvastools.hxx
+..\inc\basegfx\tools\keystoplerp.hxx %_DEST%\inc%_EXT%\basegfx\tools\keystoplerp.hxx
+..\inc\basegfx\tools\lerp.hxx %_DEST%\inc%_EXT%\basegfx\tools\lerp.hxx
..\inc\basegfx\tools\unopolypolygon.hxx %_DEST%\inc%_EXT%\basegfx\tools\unopolypolygon.hxx
+..\inc\basegfx\tools\b2dclipstate.hxx %_DEST%\inc%_EXT%\basegfx\tools\b2dclipstate.hxx
..\inc\basegfx\tools\rectcliptools.hxx %_DEST%\inc%_EXT%\basegfx\tools\rectcliptools.hxx
..\inc\basegfx\tools\tools.hxx %_DEST%\inc%_EXT%\basegfx\tools\tools.hxx
..\inc\basegfx\tools\gradienttools.hxx %_DEST%\inc%_EXT%\basegfx\tools\gradienttools.hxx
diff --git a/basegfx/qa/mkpolygons.pl b/basegfx/qa/mkpolygons.pl
new file mode 100644
index 000000000000..b465a4f845ab
--- /dev/null
+++ b/basegfx/qa/mkpolygons.pl
@@ -0,0 +1,344 @@
+:
+eval 'exec perl -wS $0 ${1+"$@"}'
+ if 0;
+
+#
+# 2009 Copyright Novell, Inc. & Sun Microsystems, Inc.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+
+use IO::File;
+use Cwd;
+use File::Spec;
+use File::Spec::Functions;
+use File::Temp;
+use File::Path;
+
+$TempDir = "";
+
+
+# all the XML package generation is a blatant rip from AF's
+# write-calc-doc.pl
+
+
+###############################################################################
+# Open a file with the given name.
+# First it is checked if the temporary directory, in which all files for
+# the document are gathered, is already present and create it if it is not.
+# Then create the path to the file inside the temporary directory.
+# Finally open the file and return a file handle to it.
+#
+sub open_file
+{
+ my $filename = pop @_;
+
+ # Create base directory of temporary directory tree if not alreay
+ # present.
+ if ($TempDir eq "")
+ {
+ $TempDir = File::Temp::tempdir (CLEANUP => 1);
+ }
+
+ # Create the path to the file.
+ my $fullname = File::Spec->catfile ($TempDir, $filename);
+ my ($volume,$directories,$file) = File::Spec->splitpath ($fullname);
+ mkpath (File::Spec->catpath ($volume,$directories,""));
+
+ # Open the file and return a file handle to it.
+ return new IO::File ($fullname, "w");
+}
+
+
+###############################################################################
+# Zip the files in the directory tree into the given file.
+#
+sub zip_dirtree
+{
+ my $filename = pop @_;
+
+ my $cwd = getcwd;
+ my $zip_name = $filename;
+
+ # We are about to change the directory.
+ # Therefore create an absolute pathname for the zip archive.
+
+ # First transfer the drive from $cwd to $zip_name. This is a
+ # workaround for a bug in file_name_is_absolute which thinks
+ # the the path \bla is an absolute path under DOS.
+ my ($volume,$directories,$file) = File::Spec->splitpath ($zip_name);
+ my ($volume_cwd,$directories_cwd,$file_cwd) = File::Spec->splitpath ($cwd);
+ $volume = $volume_cwd if ($volume eq "");
+ $zip_name = File::Spec->catpath ($volume,$directories,$file);
+
+ # Add the current working directory to a relative path.
+ if ( ! file_name_is_absolute ($zip_name))
+ {
+ $zip_name = File::Spec->catfile ($cwd, $zip_name);
+
+ # Try everything to clean up the name.
+ $zip_name = File::Spec->rel2abs ($filename);
+ $zip_name = File::Spec->canonpath ($zip_name);
+
+ # Remove .. directories from the middle of the path.
+ while ($zip_name =~ /\/[^\/][^\.\/][^\/]*\/\.\.\//)
+ {
+ $zip_name = $` . "/" . $';
+ }
+ }
+
+ # Just in case the zip program gets confused by an existing file with the
+ # same name as the one to be written that file is removed first.
+ if ( -e $filename)
+ {
+ if (unlink ($filename) == 0)
+ {
+ print "Existing file $filename could not be deleted.\n";
+ print "Please close the application that uses it, then try again.\n";
+ return;
+ }
+ }
+
+ # Finally create the zip file. First change into the temporary directory
+ # so that the resulting zip file contains only paths relative to it.
+ print "zipping [$ZipCmd $ZipFlags $zip_name *]\n";
+ chdir ($TempDir);
+ system ("$ZipCmd $ZipFlags $zip_name *");
+ chdir ($cwd);
+}
+
+
+sub writeHeader
+{
+ print $OUT qq~<?xml version="1.0" encoding="UTF-8"?>
+
+<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" office:version="1.0">
+ <office:scripts/>
+ <office:automatic-styles>
+ <style:style style:name="dp1" style:family="drawing-page">
+ <style:drawing-page-properties presentation:background-visible="true" presentation:background-objects-visible="true" presentation:display-footer="true" presentation:display-page-number="false" presentation:display-date-time="true"/>
+ </style:style>
+ <style:style style:name="gr1" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:textarea-horizontal-align="center" draw:fill="none" draw:stroke="none" draw:textarea-vertical-align="middle"/>
+ </style:style>
+ <style:style style:name="gr2" style:family="graphic" style:parent-style-name="standard">
+ <style:graphic-properties draw:textarea-horizontal-align="center" draw:textarea-vertical-align="middle"/>
+ </style:style>
+ <style:style style:name="pr1" style:family="presentation" style:parent-style-name="Default-title">
+ <style:graphic-properties draw:fill-color="#ffffff" draw:auto-grow-height="true" fo:min-height="3.508cm"/>
+ </style:style>
+ <style:style style:name="pr2" style:family="presentation" style:parent-style-name="Default-notes">
+ <style:graphic-properties draw:fill-color="#ffffff" draw:auto-grow-height="true" fo:min-height="13.367cm"/>
+ </style:style>
+ <style:style style:name="P1" style:family="paragraph">
+ <style:paragraph-properties fo:margin-left="0cm" fo:margin-right="0cm" fo:text-indent="0cm"/>
+ </style:style>
+ <style:style style:name="P2" style:family="paragraph">
+ <style:paragraph-properties fo:margin-left="0.6cm" fo:margin-right="0cm" fo:text-indent="-0.6cm"/>
+ </style:style>
+ <text:list-style style:name="L1">
+ <text:list-level-style-bullet text:level="1" text:bullet-char="â—">
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="0.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="1.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="2.4cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="3.6cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.2cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:bullet-char="â—">
+ <style:list-level-properties text:space-before="4.8cm" text:min-label-width="0.6cm"/>
+ <style:text-properties fo:font-family="StarSymbol" style:use-window-font-color="true" fo:font-size="45%"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ </office:automatic-styles>
+ <office:body>
+ <office:presentation>
+~;
+
+}
+
+sub writeSlideHeader
+{
+ my $titleText = pop @_;
+ my $slideNum = pop @_;
+
+ print $OUT " <draw:page draw:name=\"page1\" draw:style-name=\"dp1\" draw:master-page-name=\"Default\">\n";
+ print $OUT " <office:forms form:automatic-focus=\"false\" form:apply-design-mode=\"false\"/>\n";
+ print $OUT " <draw:rect draw:style-name=\"gr1\" draw:text-style-name=\"P1\" draw:id=\"id$slideNum\" draw:layer=\"layout\" svg:width=\"17.5cm\" svg:height=\"6cm\" svg:x=\"5cm\" svg:y=\"4cm\">\n";
+ print $OUT " <text:p text:style-name=\"P2\">Slide: $slideNum</text:p>\n";
+ print $OUT " <text:p text:style-name=\"P2\">Path: $titleText</text:p>\n";
+ print $OUT " </draw:rect>\n";
+}
+
+
+sub writeSlideFooter
+{
+ print $OUT " <presentation:notes draw:style-name=\"dp1\">\n";
+ print $OUT " <draw:page-thumbnail draw:style-name=\"gr1\" draw:layer=\"layout\" svg:width=\"14.851cm\" svg:height=\"11.138cm\" svg:x=\"3.068cm\" svg:y=\"2.257cm\" draw:page-number=\"1\" presentation:class=\"page\"/>\n";
+ print $OUT " <draw:frame presentation:style-name=\"pr3\" draw:layer=\"layout\" svg:width=\"16.79cm\" svg:height=\"13.116cm\" svg:x=\"2.098cm\" svg:y=\"14.109cm\" presentation:class=\"notes\" presentation:placeholder=\"true\">\n";
+ print $OUT " <draw:text-box/>\n";
+ print $OUT " </draw:frame>\n";
+ print $OUT " </presentation:notes>\n";
+ print $OUT " </draw:page>\n";
+}
+
+sub writeFooter
+{
+ print $OUT qq~ <presentation:settings presentation:full-screen="false"/>
+ </office:presentation>
+ </office:body>
+</office:document-content>
+~;
+
+}
+
+sub writePath
+{
+ my $pathAry = pop @_;
+ my $path = $pathAry->[1];
+ my $viewBox = $pathAry->[0];
+
+ print $OUT " <draw:path draw:style-name=\"gr2\" draw:text-style-name=\"P1\" draw:layer=\"layout\" svg:width=\"10cm\" svg:height=\"10cm\" svg:x=\"5cm\" svg:y=\"5cm\" svg:viewBox=\"";
+ print $OUT $viewBox;
+ print $OUT "\" svg:d=\"";
+ print $OUT $path;
+ print $OUT "\">\n";
+ print $OUT " <text:p/>\n";
+ print $OUT " </draw:path>\n";
+}
+
+sub writeManifest
+{
+ my $outFile = open_file("META-INF/manifest.xml");
+
+ print $outFile qq~<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE manifest:manifest PUBLIC "-//OpenOffice.org//DTD Manifest 1.0//EN" "Manifest.dtd">
+<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0">
+ <manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.presentation" manifest:full-path="/"/>
+ <manifest:file-entry manifest:media-type="text/xml" manifest:full-path="content.xml"/>
+</manifest:manifest>
+~;
+
+ $outFile->close;
+}
+
+
+###############################################################################
+# Print usage information.
+#
+sub usage ()
+{
+ print <<END_OF_USAGE;
+usage: $0 <option>* [<SvgD-values>]
+
+output-file-name defaults to polygons.odp.
+
+ -h Print this usage information.
+ -o output-file-name
+END_OF_USAGE
+}
+
+###############################################################################
+# Process the command line.
+#
+sub process_command_line
+{
+ foreach (@ARGV)
+ {
+ if (/^-h/)
+ {
+ usage;
+ exit 0;
+ }
+ }
+
+ $global_output_name = "polygons.odp";
+ my $j = 0, $noMoreOptions = 0;
+ for (my $i=0; $i<$#ARGV; $i++)
+ {
+ if ( !$noMoreOptions and $ARGV[$i] eq "-o")
+ {
+ $i++;
+ $global_output_name = $ARGV[$i];
+ }
+ elsif ( !$noMoreOptions and $ARGV[$i] eq "--")
+ {
+ $noMoreOptions = 1;
+ }
+ elsif ( !$noMoreOptions and $ARGV[$i] =~ /^-/)
+ {
+ print "Unknown option $ARGV[$i]\n";
+ usage;
+ exit 1;
+ }
+ else
+ {
+ push(@paths, [$ARGV[$i],$ARGV[$i+1]]);
+ $i++;
+ }
+ }
+
+ print "output to $global_output_name\n";
+}
+
+###############################################################################
+# Main
+###############################################################################
+
+$ZipCmd = $ENV{LOG_FILE_ZIP_CMD};
+$ZipFlags = $ENV{LOG_FILE_ZIP_FLAGS};
+# Provide default values for the zip command and it's flags.
+if ( ! defined $ZipCmd)
+{
+ $ZipCmd = "zip" unless defined $ZipCmd;
+ $ZipFlags = "-r -q" unless defined $ZipFlags;
+}
+
+process_command_line();
+
+writeManifest();
+
+$OUT = open_file( "content.xml" );
+
+writeHeader();
+
+$pathNum=0;
+foreach $path (@paths)
+{
+ writeSlideHeader($pathNum, $path->[1]);
+ writePath($path);
+ writeSlideFooter();
+ $pathNum++;
+}
+
+writeFooter();
+
+$OUT->close;
+
+zip_dirtree ($global_output_name);
+
diff --git a/basegfx/source/color/bcolortools.cxx b/basegfx/source/color/bcolortools.cxx
index f7f26c6dd843..543097de3d77 100644
--- a/basegfx/source/color/bcolortools.cxx
+++ b/basegfx/source/color/bcolortools.cxx
@@ -61,7 +61,7 @@ namespace basegfx { namespace tools
else if( g == maxVal )
h = 2.0 + (b - r)/d;
else
- h = 4.0 + (r - h)/d;
+ h = 4.0 + (r - g)/d;
h *= 60.0;
diff --git a/basegfx/source/matrix/b2dhommatrixtools.cxx b/basegfx/source/matrix/b2dhommatrixtools.cxx
index 0f294d6a262f..0b85ee229ecc 100644
--- a/basegfx/source/matrix/b2dhommatrixtools.cxx
+++ b/basegfx/source/matrix/b2dhommatrixtools.cxx
@@ -29,11 +29,39 @@
#include "precompiled_basegfx.hxx"
#include <basegfx/matrix/b2dhommatrixtools.hxx>
+#include <rtl/ustring.hxx>
+#include <rtl/ustrbuf.hxx>
///////////////////////////////////////////////////////////////////////////////
namespace basegfx
{
+ ::rtl::OUString exportToSvg( const B2DHomMatrix& rMatrix )
+ {
+ rtl::OUStringBuffer aStrBuf;
+ aStrBuf.appendAscii("matrix(");
+
+ aStrBuf.append(rMatrix.get(0,0));
+ aStrBuf.appendAscii(", ");
+
+ aStrBuf.append(rMatrix.get(1,0));
+ aStrBuf.appendAscii(", ");
+
+ aStrBuf.append(rMatrix.get(0,1));
+ aStrBuf.appendAscii(", ");
+
+ aStrBuf.append(rMatrix.get(1,1));
+ aStrBuf.appendAscii(", ");
+
+ aStrBuf.append(rMatrix.get(0,2));
+ aStrBuf.appendAscii(", ");
+
+ aStrBuf.append(rMatrix.get(1,2));
+ aStrBuf.appendAscii(")");
+
+ return aStrBuf.makeStringAndClear();
+ }
+
namespace tools
{
void createSinCosOrthogonal(double& o_rSin, double& o_rCos, double fRadiant)
diff --git a/basegfx/source/polygon/b2dpolygon.cxx b/basegfx/source/polygon/b2dpolygon.cxx
index dc16938a3f99..d8255dc7ec10 100644
--- a/basegfx/source/polygon/b2dpolygon.cxx
+++ b/basegfx/source/polygon/b2dpolygon.cxx
@@ -41,38 +41,24 @@
//////////////////////////////////////////////////////////////////////////////
-class CoordinateData2D
+struct CoordinateData2D : public basegfx::B2DPoint
{
- basegfx::B2DPoint maPoint;
-
public:
- CoordinateData2D()
- : maPoint()
- {}
+ CoordinateData2D() {}
explicit CoordinateData2D(const basegfx::B2DPoint& rData)
- : maPoint(rData)
+ : B2DPoint(rData)
{}
- const basegfx::B2DPoint& getCoordinate() const
+ CoordinateData2D& operator=(const basegfx::B2DPoint& rData)
{
- return maPoint;
- }
-
- void setCoordinate(const basegfx::B2DPoint& rValue)
- {
- if(rValue != maPoint)
- maPoint = rValue;
- }
-
- bool operator==(const CoordinateData2D& rData ) const
- {
- return (maPoint == rData.getCoordinate());
+ B2DPoint::operator=(rData);
+ return *this;
}
void transform(const basegfx::B2DHomMatrix& rMatrix)
{
- maPoint *= rMatrix;
+ *this *= rMatrix;
}
};
@@ -112,12 +98,12 @@ public:
const basegfx::B2DPoint& getCoordinate(sal_uInt32 nIndex) const
{
- return maVector[nIndex].getCoordinate();
+ return maVector[nIndex];
}
void setCoordinate(sal_uInt32 nIndex, const basegfx::B2DPoint& rValue)
{
- maVector[nIndex].setCoordinate(rValue);
+ maVector[nIndex] = rValue;
}
void reserve(sal_uInt32 nCount)
@@ -228,6 +214,38 @@ public:
aStart->transform(rMatrix);
}
}
+
+ const basegfx::B2DPoint* begin() const
+ {
+ if(maVector.empty())
+ return 0;
+ else
+ return &maVector.front();
+ }
+
+ const basegfx::B2DPoint* end() const
+ {
+ if(maVector.empty())
+ return 0;
+ else
+ return (&maVector.back())+1;
+ }
+
+ basegfx::B2DPoint* begin()
+ {
+ if(maVector.empty())
+ return 0;
+ else
+ return &maVector.front();
+ }
+
+ basegfx::B2DPoint* end()
+ {
+ if(maVector.empty())
+ return 0;
+ else
+ return (&maVector.back())+1;
+ }
};
//////////////////////////////////////////////////////////////////////////////
@@ -1149,6 +1167,28 @@ public:
maPoints.transform(rMatrix);
}
}
+
+ const basegfx::B2DPoint* begin() const
+ {
+ return maPoints.begin();
+ }
+
+ const basegfx::B2DPoint* end() const
+ {
+ return maPoints.end();
+ }
+
+ basegfx::B2DPoint* begin()
+ {
+ mpBufferedData.reset();
+ return maPoints.begin();
+ }
+
+ basegfx::B2DPoint* end()
+ {
+ mpBufferedData.reset();
+ return maPoints.end();
+ }
};
//////////////////////////////////////////////////////////////////////////////
@@ -1586,6 +1626,26 @@ namespace basegfx
mpPolygon->transform(rMatrix);
}
}
+
+ const B2DPoint* B2DPolygon::begin() const
+ {
+ return mpPolygon->begin();
+ }
+
+ const B2DPoint* B2DPolygon::end() const
+ {
+ return mpPolygon->end();
+ }
+
+ B2DPoint* B2DPolygon::begin()
+ {
+ return mpPolygon->begin();
+ }
+
+ B2DPoint* B2DPolygon::end()
+ {
+ return mpPolygon->end();
+ }
} // end of namespace basegfx
//////////////////////////////////////////////////////////////////////////////
diff --git a/basegfx/source/polygon/b2dpolygontools.cxx b/basegfx/source/polygon/b2dpolygontools.cxx
index e54a5e2707c9..e9db491ecd48 100644
--- a/basegfx/source/polygon/b2dpolygontools.cxx
+++ b/basegfx/source/polygon/b2dpolygontools.cxx
@@ -2346,7 +2346,8 @@ namespace basegfx
// polygon must be closed to resemble a rect, and contain
// at least four points.
if( !rPoly.isClosed() ||
- rPoly.count() < 4 )
+ rPoly.count() < 4 ||
+ rPoly.areControlPointsUsed() )
{
return false;
}
diff --git a/basegfx/source/polygon/b2dpolypolygon.cxx b/basegfx/source/polygon/b2dpolypolygon.cxx
index 767d2b25ced5..9b28dffd19af 100644
--- a/basegfx/source/polygon/b2dpolypolygon.cxx
+++ b/basegfx/source/polygon/b2dpolypolygon.cxx
@@ -163,6 +163,38 @@ public:
maPolygons.end(),
std::mem_fun_ref( &basegfx::B2DPolygon::makeUnique ));
}
+
+ const basegfx::B2DPolygon* begin() const
+ {
+ if(maPolygons.empty())
+ return 0;
+ else
+ return &maPolygons.front();
+ }
+
+ const basegfx::B2DPolygon* end() const
+ {
+ if(maPolygons.empty())
+ return 0;
+ else
+ return (&maPolygons.back())+1;
+ }
+
+ basegfx::B2DPolygon* begin()
+ {
+ if(maPolygons.empty())
+ return 0;
+ else
+ return &maPolygons.front();
+ }
+
+ basegfx::B2DPolygon* end()
+ {
+ if(maPolygons.empty())
+ return 0;
+ else
+ return &(maPolygons.back())+1;
+ }
};
//////////////////////////////////////////////////////////////////////////////
@@ -375,6 +407,26 @@ namespace basegfx
mpPolyPolygon->transform(rMatrix);
}
}
+
+ const B2DPolygon* B2DPolyPolygon::begin() const
+ {
+ return mpPolyPolygon->begin();
+ }
+
+ const B2DPolygon* B2DPolyPolygon::end() const
+ {
+ return mpPolyPolygon->end();
+ }
+
+ B2DPolygon* B2DPolyPolygon::begin()
+ {
+ return mpPolyPolygon->begin();
+ }
+
+ B2DPolygon* B2DPolyPolygon::end()
+ {
+ return mpPolyPolygon->end();
+ }
} // end of namespace basegfx
// eof
diff --git a/basegfx/source/polygon/b2dsvgpolypolygon.cxx b/basegfx/source/polygon/b2dsvgpolypolygon.cxx
index bbb6db4c064a..d2815337edaf 100644
--- a/basegfx/source/polygon/b2dsvgpolypolygon.cxx
+++ b/basegfx/source/polygon/b2dsvgpolypolygon.cxx
@@ -65,10 +65,8 @@ namespace basegfx
}
}
- inline bool lcl_isOnNumberChar(const ::rtl::OUString& rStr, const sal_Int32 nPos, bool bSignAllowed = true)
+ inline bool lcl_isOnNumberChar(const sal_Unicode aChar, bool bSignAllowed = true)
{
- const sal_Unicode aChar(rStr[nPos]);
-
const bool bPredicate( (sal_Unicode('0') <= aChar && sal_Unicode('9') >= aChar)
|| (bSignAllowed && sal_Unicode('+') == aChar)
|| (bSignAllowed && sal_Unicode('-') == aChar) );
@@ -76,6 +74,12 @@ namespace basegfx
return bPredicate;
}
+ inline bool lcl_isOnNumberChar(const ::rtl::OUString& rStr, const sal_Int32 nPos, bool bSignAllowed = true)
+ {
+ return lcl_isOnNumberChar(rStr[nPos],
+ bSignAllowed);
+ }
+
bool lcl_getDoubleChar(double& o_fRetval,
sal_Int32& io_rPos,
const ::rtl::OUString& rStr,
@@ -231,16 +235,16 @@ namespace basegfx
lcl_skipSpacesAndCommas(io_rPos, rStr, nLen);
}
- void lcl_putNumberChar( ::rtl::OUString& rStr,
- double fValue )
+ void lcl_putNumberChar( ::rtl::OUStringBuffer& rStr,
+ double fValue )
{
- rStr += ::rtl::OUString::valueOf( fValue );
+ rStr.append( fValue );
}
- void lcl_putNumberCharWithSpace( ::rtl::OUString& rStr,
- double fValue,
- double fOldValue,
- bool bUseRelativeCoordinates )
+ void lcl_putNumberCharWithSpace( ::rtl::OUStringBuffer& rStr,
+ double fValue,
+ double fOldValue,
+ bool bUseRelativeCoordinates )
{
if( bUseRelativeCoordinates )
fValue -= fOldValue;
@@ -248,11 +252,10 @@ namespace basegfx
const sal_Int32 aLen( rStr.getLength() );
if(aLen)
{
- if( lcl_isOnNumberChar(rStr, aLen - 1, false) &&
+ if( lcl_isOnNumberChar(rStr.charAt(aLen - 1), false) &&
fValue >= 0.0 )
{
- rStr += ::rtl::OUString::valueOf(
- sal_Unicode(' ') );
+ rStr.append( sal_Unicode(' ') );
}
}
@@ -876,7 +879,7 @@ namespace basegfx
bool bDetectQuadraticBeziers)
{
const sal_uInt32 nCount(rPolyPolygon.count());
- ::rtl::OUString aResult;
+ ::rtl::OUStringBuffer aResult;
B2DPoint aCurrentSVGPosition(0.0, 0.0); // SVG assumes (0,0) as the initial current point
for(sal_uInt32 i(0); i < nCount; i++)
@@ -893,7 +896,7 @@ namespace basegfx
// handle polygon start point
B2DPoint aEdgeStart(aPolygon.getB2DPoint(0));
- aResult += ::rtl::OUString::valueOf(lcl_getCommand('M', 'm', bUseRelativeCoordinates));
+ aResult.append(lcl_getCommand('M', 'm', bUseRelativeCoordinates));
lcl_putNumberCharWithSpace(aResult, aEdgeStart.getX(), aCurrentSVGPosition.getX(), bUseRelativeCoordinates);
lcl_putNumberCharWithSpace(aResult, aEdgeStart.getY(), aCurrentSVGPosition.getY(), bUseRelativeCoordinates);
aLastSVGCommand = lcl_getCommand('L', 'l', bUseRelativeCoordinates);
@@ -954,7 +957,7 @@ namespace basegfx
if(aLastSVGCommand != aCommand)
{
- aResult += ::rtl::OUString::valueOf(aCommand);
+ aResult.append(aCommand);
aLastSVGCommand = aCommand;
}
@@ -969,7 +972,7 @@ namespace basegfx
if(aLastSVGCommand != aCommand)
{
- aResult += ::rtl::OUString::valueOf(aCommand);
+ aResult.append(aCommand);
aLastSVGCommand = aCommand;
}
@@ -990,7 +993,7 @@ namespace basegfx
if(aLastSVGCommand != aCommand)
{
- aResult += ::rtl::OUString::valueOf(aCommand);
+ aResult.append(aCommand);
aLastSVGCommand = aCommand;
}
@@ -1007,7 +1010,7 @@ namespace basegfx
if(aLastSVGCommand != aCommand)
{
- aResult += ::rtl::OUString::valueOf(aCommand);
+ aResult.append(aCommand);
aLastSVGCommand = aCommand;
}
@@ -1046,7 +1049,7 @@ namespace basegfx
if(aLastSVGCommand != aCommand)
{
- aResult += ::rtl::OUString::valueOf(aCommand);
+ aResult.append(aCommand);
aLastSVGCommand = aCommand;
}
@@ -1060,7 +1063,7 @@ namespace basegfx
if(aLastSVGCommand != aCommand)
{
- aResult += ::rtl::OUString::valueOf(aCommand);
+ aResult.append(aCommand);
aLastSVGCommand = aCommand;
}
@@ -1074,7 +1077,7 @@ namespace basegfx
if(aLastSVGCommand != aCommand)
{
- aResult += ::rtl::OUString::valueOf(aCommand);
+ aResult.append(aCommand);
aLastSVGCommand = aCommand;
}
@@ -1092,12 +1095,12 @@ namespace basegfx
// close path if closed poly (Z and z are equivalent here, but looks nicer when case is matched)
if(aPolygon.isClosed())
{
- aResult += ::rtl::OUString::valueOf(lcl_getCommand('Z', 'z', bUseRelativeCoordinates));
+ aResult.append(lcl_getCommand('Z', 'z', bUseRelativeCoordinates));
}
}
}
- return aResult;
+ return aResult.makeStringAndClear();
}
}
}
diff --git a/basegfx/source/range/b2dmultirange.cxx b/basegfx/source/range/b2dmultirange.cxx
deleted file mode 100644
index 3a47be3b7dc9..000000000000
--- a/basegfx/source/range/b2dmultirange.cxx
+++ /dev/null
@@ -1,279 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_basegfx.hxx"
-#include <basegfx/range/b2drange.hxx>
-#include <basegfx/tuple/b2dtuple.hxx>
-#include <basegfx/polygon/b2dpolypolygon.hxx>
-#include <basegfx/range/b2dmultirange.hxx>
-#include <basegfx/polygon/b2dpolygontools.hxx>
-#include <basegfx/polygon/b2dpolypolygontools.hxx>
-#include <basegfx/polygon/b2dpolypolygoncutter.hxx>
-#include <boost/bind.hpp>
-#include <boost/mem_fn.hpp>
-#include <algorithm>
-#include <vector>
-
-
-namespace basegfx
-{
- class ImplB2DMultiRange
- {
- public:
- ImplB2DMultiRange() :
- maBounds(),
- maRanges()
- {
- }
-
- explicit ImplB2DMultiRange( const B2DRange& rRange ) :
- maBounds(),
- maRanges( 1, rRange )
- {
- }
-
- bool isEmpty() const
- {
- // no ranges at all, or all ranges empty
- return maRanges.empty() ||
- ::std::count_if( maRanges.begin(),
- maRanges.end(),
- ::boost::mem_fn( &B2DRange::isEmpty ) )
- == static_cast<VectorOfRanges::difference_type>(maRanges.size());
- }
-
- void reset()
- {
- // swap in empty vector
- VectorOfRanges aTmp;
- maRanges.swap( aTmp );
-
- maBounds.reset();
- }
-
- template< typename ValueType > bool isInside( const ValueType& rValue ) const
- {
- if( !maBounds.isInside( rValue ) )
- return false;
-
- // cannot use ::boost::bind here, since isInside is overloaded.
- // It is currently not possible to resolve the overload
- // by considering one of the other template arguments.
- VectorOfRanges::const_iterator aCurr( maRanges.begin() );
- const VectorOfRanges::const_iterator aEnd ( maRanges.end() );
- while( aCurr != aEnd )
- if( aCurr->isInside( rValue ) )
- return true;
-
- return false;
- }
-
- bool overlaps( const B2DRange& rRange ) const
- {
- if( !maBounds.overlaps( rRange ) )
- return false;
-
- const VectorOfRanges::const_iterator aEnd( maRanges.end() );
- return ::std::find_if( maRanges.begin(),
- aEnd,
- ::boost::bind<bool>( ::boost::mem_fn( &B2DRange::overlaps ),
- _1,
- rRange ) ) != aEnd;
- }
-
- void addRange( const B2DRange& rRange )
- {
- maRanges.push_back( rRange );
- maBounds.expand( rRange );
- }
-
- B2DRange getBounds() const
- {
- return maBounds;
- }
-
- B2DPolyPolygon getPolyPolygon() const
- {
- B2DPolyPolygon aRes;
-
- // Make range vector unique ( have to avoid duplicate
- // rectangles. The polygon clipper will return an empty
- // result in this case).
- VectorOfRanges aUniqueRanges;
- aUniqueRanges.reserve( maRanges.size() );
-
- VectorOfRanges::const_iterator aCurr( maRanges.begin() );
- const VectorOfRanges::const_iterator aEnd ( maRanges.end() );
- while( aCurr != aEnd )
- {
- // TODO(F3): It's plain wasted resources to apply a
- // general clipping algorithm to the problem at
- // hand. Go for a dedicated, scan-line-based approach.
- VectorOfRanges::const_iterator aCurrScan( aCurr+1 );
- VectorOfRanges::const_iterator aFound( aEnd );
- while( aCurrScan != aEnd )
- {
- if( aCurrScan->equal( *aCurr ) ||
- aCurrScan->isInside( *aCurr ) )
- {
- // current probe is equal to aCurr, or
- // completely contains aCurr. Thus, stop
- // searching, because aCurr is definitely not
- // a member of the unique rect list
- aFound = aCurrScan;
- break;
- }
-
- ++aCurrScan;
- }
-
- if( aFound == aEnd )
- {
- // check whether aCurr is fully contained in one
- // of the already added rects. If yes, we can skip
- // it.
- bool bUnique( true );
- VectorOfRanges::const_iterator aCurrUnique( aUniqueRanges.begin() );
- VectorOfRanges::const_iterator aEndUnique ( aUniqueRanges.end() );
- while( aCurrUnique != aEndUnique )
- {
- if( aCurrUnique->isInside( *aCurr ) )
- {
- // fully contained, no need to add
- bUnique = false;
- break;
- }
-
- ++aCurrUnique;
- }
-
- if( bUnique )
- aUniqueRanges.push_back( *aCurr );
- }
-
- ++aCurr;
- }
-
- VectorOfRanges::const_iterator aCurrUnique( aUniqueRanges.begin() );
- const VectorOfRanges::const_iterator aEndUnique ( aUniqueRanges.end() );
- while( aCurrUnique != aEndUnique )
- {
- // simply merge all unique parts (OR)
- aRes.append( tools::createPolygonFromRect( *aCurrUnique++ ) );
- }
-
- // remove redundant intersections. Note: since all added
- // rectangles are positively oriented, this method cannot
- // generate any holes.
- aRes = basegfx::tools::solveCrossovers(aRes);
- aRes = basegfx::tools::stripNeutralPolygons(aRes);
- aRes = basegfx::tools::stripDispensablePolygons(aRes, false);
-
- return aRes;
- }
-
- private:
- typedef ::std::vector< B2DRange > VectorOfRanges;
-
- B2DRange maBounds;
- VectorOfRanges maRanges;
- };
-
-
- // ====================================================================
-
-
- B2DMultiRange::B2DMultiRange() :
- mpImpl()
- {
- }
-
- B2DMultiRange::B2DMultiRange( const B2DRange& rRange ) :
- mpImpl( ImplB2DMultiRange( rRange ) )
- {
- }
-
- B2DMultiRange::~B2DMultiRange()
- {
- // otherwise, ImplB2DMultiRange would be an incomplete type
- }
-
- B2DMultiRange::B2DMultiRange( const B2DMultiRange& rSrc ) :
- mpImpl( rSrc.mpImpl )
- {
- }
-
- B2DMultiRange& B2DMultiRange::operator=( const B2DMultiRange& rSrc )
- {
- mpImpl = rSrc.mpImpl;
- return *this;
- }
-
- bool B2DMultiRange::isEmpty() const
- {
- return mpImpl->isEmpty();
- }
-
- void B2DMultiRange::reset()
- {
- mpImpl->reset();
- }
-
- bool B2DMultiRange::isInside( const B2DTuple& rTuple ) const
- {
- return mpImpl->isInside( rTuple );
- }
-
- bool B2DMultiRange::isInside( const B2DRange& rRange ) const
- {
- return mpImpl->isInside( rRange );
- }
-
- bool B2DMultiRange::overlaps( const B2DRange& rRange ) const
- {
- return mpImpl->overlaps( rRange );
- }
-
- void B2DMultiRange::addRange( const B2DRange& rRange )
- {
- mpImpl->addRange( rRange );
- }
-
- B2DRange B2DMultiRange::getBounds() const
- {
- return mpImpl->getBounds();
- }
-
- B2DPolyPolygon B2DMultiRange::getPolyPolygon() const
- {
- return mpImpl->getPolyPolygon();
- }
-
-} // end of namespace basegfx
-
-// eof
diff --git a/basegfx/source/range/b2dpolyrange.cxx b/basegfx/source/range/b2dpolyrange.cxx
new file mode 100644
index 000000000000..e212e083ef55
--- /dev/null
+++ b/basegfx/source/range/b2dpolyrange.cxx
@@ -0,0 +1,423 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: b2dmultirange.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_basegfx.hxx"
+#include <basegfx/range/b2dpolyrange.hxx>
+
+#include <basegfx/range/b2drange.hxx>
+#include <basegfx/range/b2drangeclipper.hxx>
+#include <basegfx/tuple/b2dtuple.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+
+#include <boost/bind.hpp>
+#include <boost/tuple/tuple.hpp>
+#include <algorithm>
+#include <vector>
+
+static basegfx::B2VectorOrientation flipOrientation(
+ basegfx::B2VectorOrientation eOrient)
+{
+ return eOrient == basegfx::ORIENTATION_POSITIVE ?
+ basegfx::ORIENTATION_NEGATIVE : basegfx::ORIENTATION_POSITIVE;
+}
+
+namespace basegfx
+{
+ class ImplB2DPolyRange
+ {
+ void updateBounds()
+ {
+ maBounds.reset();
+ std::for_each(maRanges.begin(),
+ maRanges.end(),
+ boost::bind(
+ (void (B2DRange::*)(const B2DRange&))(
+ &B2DRange::expand),
+ boost::ref(maBounds),
+ _1));
+ }
+
+ public:
+ ImplB2DPolyRange() :
+ maBounds(),
+ maRanges(),
+ maOrient()
+ {}
+
+ explicit ImplB2DPolyRange( const B2DPolyRange::ElementType& rElem ) :
+ maBounds( boost::get<0>(rElem) ),
+ maRanges( 1, boost::get<0>(rElem) ),
+ maOrient( 1, boost::get<1>(rElem) )
+ {}
+
+ explicit ImplB2DPolyRange( const B2DRange& rRange, B2VectorOrientation eOrient ) :
+ maBounds( rRange ),
+ maRanges( 1, rRange ),
+ maOrient( 1, eOrient )
+ {}
+
+ bool operator==(const ImplB2DPolyRange& rRHS) const
+ {
+ return maRanges == rRHS.maRanges && maOrient == rRHS.maOrient;
+ }
+
+ sal_uInt32 count() const
+ {
+ return maRanges.size();
+ }
+
+ B2DPolyRange::ElementType getElement(sal_uInt32 nIndex) const
+ {
+ return boost::make_tuple(maRanges[nIndex],
+ maOrient[nIndex]);
+ }
+
+ void setElement(sal_uInt32 nIndex, const B2DPolyRange::ElementType& rElement )
+ {
+ maRanges[nIndex] = boost::get<0>(rElement);
+ maOrient[nIndex] = boost::get<1>(rElement);
+ updateBounds();
+ }
+
+ void setElement(sal_uInt32 nIndex, const B2DRange& rRange, B2VectorOrientation eOrient )
+ {
+ maRanges[nIndex] = rRange;
+ maOrient[nIndex] = eOrient;
+ updateBounds();
+ }
+
+ void insertElement(sal_uInt32 nIndex, const B2DPolyRange::ElementType& rElement, sal_uInt32 nCount)
+ {
+ maRanges.insert(maRanges.begin()+nIndex, nCount, boost::get<0>(rElement));
+ maOrient.insert(maOrient.begin()+nIndex, nCount, boost::get<1>(rElement));
+ maBounds.expand(boost::get<0>(rElement));
+ }
+
+ void insertElement(sal_uInt32 nIndex, const B2DRange& rRange, B2VectorOrientation eOrient, sal_uInt32 nCount)
+ {
+ maRanges.insert(maRanges.begin()+nIndex, nCount, rRange);
+ maOrient.insert(maOrient.begin()+nIndex, nCount, eOrient);
+ maBounds.expand(rRange);
+ }
+
+ void appendElement(const B2DPolyRange::ElementType& rElement, sal_uInt32 nCount)
+ {
+ maRanges.insert(maRanges.end(), nCount, boost::get<0>(rElement));
+ maOrient.insert(maOrient.end(), nCount, boost::get<1>(rElement));
+ maBounds.expand(boost::get<0>(rElement));
+ }
+
+ void appendElement(const B2DRange& rRange, B2VectorOrientation eOrient, sal_uInt32 nCount)
+ {
+ maRanges.insert(maRanges.end(), nCount, rRange);
+ maOrient.insert(maOrient.end(), nCount, eOrient);
+ maBounds.expand(rRange);
+ }
+
+ void insertPolyRange(sal_uInt32 nIndex, const ImplB2DPolyRange& rPolyRange)
+ {
+ maRanges.insert(maRanges.begin()+nIndex, rPolyRange.maRanges.begin(), rPolyRange.maRanges.end());
+ maOrient.insert(maOrient.begin()+nIndex, rPolyRange.maOrient.begin(), rPolyRange.maOrient.end());
+ updateBounds();
+ }
+
+ void appendPolyRange(const ImplB2DPolyRange& rPolyRange)
+ {
+ maRanges.insert(maRanges.end(),
+ rPolyRange.maRanges.begin(),
+ rPolyRange.maRanges.end());
+ maOrient.insert(maOrient.end(),
+ rPolyRange.maOrient.begin(),
+ rPolyRange.maOrient.end());
+ updateBounds();
+ }
+
+ void remove(sal_uInt32 nIndex, sal_uInt32 nCount)
+ {
+ maRanges.erase(maRanges.begin()+nIndex,maRanges.begin()+nIndex+nCount);
+ maOrient.erase(maOrient.begin()+nIndex,maOrient.begin()+nIndex+nCount);
+ updateBounds();
+ }
+
+ void clear()
+ {
+ std::vector<B2DRange> aTmpRanges;
+ std::vector<B2VectorOrientation> aTmpOrient;
+
+ maRanges.swap(aTmpRanges);
+ maOrient.swap(aTmpOrient);
+
+ maBounds.reset();
+ }
+
+ void flip()
+ {
+ std::for_each(maOrient.begin(),
+ maOrient.end(),
+ boost::bind(
+ &flipOrientation,
+ _1));
+ }
+
+ B2DRange getBounds() const
+ {
+ return maBounds;
+ }
+
+ template< typename ValueType > bool isInside( const ValueType& rValue ) const
+ {
+ if( !maBounds.isInside( rValue ) )
+ return false;
+
+ // cannot use boost::bind here, since isInside is overloaded.
+ // It is currently not possible to resolve the overload
+ // by considering one of the other template arguments.
+ std::vector<B2DRange>::const_iterator aCurr( maRanges.begin() );
+ const std::vector<B2DRange>::const_iterator aEnd ( maRanges.end() );
+ while( aCurr != aEnd )
+ if( aCurr->isInside( rValue ) )
+ return true;
+
+ return false;
+ }
+
+ bool overlaps( const B2DRange& rRange ) const
+ {
+ if( !maBounds.overlaps( rRange ) )
+ return false;
+
+ const std::vector<B2DRange>::const_iterator aEnd( maRanges.end() );
+ return std::find_if( maRanges.begin(),
+ aEnd,
+ boost::bind<bool>( boost::mem_fn( &B2DRange::overlaps ),
+ _1,
+ boost::cref(rRange) ) ) != aEnd;
+ }
+
+ B2DPolyPolygon solveCrossovers() const
+ {
+ return tools::solveCrossovers(maRanges,maOrient);
+ }
+
+ const B2DRange* begin() const
+ {
+ if(maRanges.empty())
+ return 0;
+ else
+ return &maRanges.front();
+ }
+
+ const B2DRange* end() const
+ {
+ if(maRanges.empty())
+ return 0;
+ else
+ return (&maRanges.back())+1;
+ }
+
+ B2DRange* begin()
+ {
+ if(maRanges.empty())
+ return 0;
+ else
+ return &maRanges.front();
+ }
+
+ B2DRange* end()
+ {
+ if(maRanges.empty())
+ return 0;
+ else
+ return (&maRanges.back())+1;
+ }
+
+ private:
+ B2DRange maBounds;
+ std::vector<B2DRange> maRanges;
+ std::vector<B2VectorOrientation> maOrient;
+ };
+
+ B2DPolyRange::B2DPolyRange() :
+ mpImpl()
+ {}
+
+ B2DPolyRange::~B2DPolyRange()
+ {}
+
+ B2DPolyRange::B2DPolyRange( const ElementType& rElem ) :
+ mpImpl( ImplB2DPolyRange( rElem ) )
+ {}
+
+ B2DPolyRange::B2DPolyRange( const B2DRange& rRange, B2VectorOrientation eOrient ) :
+ mpImpl( ImplB2DPolyRange( rRange, eOrient ) )
+ {}
+
+ B2DPolyRange::B2DPolyRange( const B2DPolyRange& rRange ) :
+ mpImpl( rRange.mpImpl )
+ {}
+
+ B2DPolyRange& B2DPolyRange::operator=( const B2DPolyRange& rRange )
+ {
+ mpImpl = rRange.mpImpl;
+ return *this;
+ }
+
+ void B2DPolyRange::makeUnique()
+ {
+ mpImpl.make_unique();
+ }
+
+ bool B2DPolyRange::operator==(const B2DPolyRange& rRange) const
+ {
+ if(mpImpl.same_object(rRange.mpImpl))
+ return true;
+
+ return ((*mpImpl) == (*rRange.mpImpl));
+ }
+
+ bool B2DPolyRange::operator!=(const B2DPolyRange& rRange) const
+ {
+ return !(*this == rRange);
+ }
+
+ sal_uInt32 B2DPolyRange::count() const
+ {
+ return mpImpl->count();
+ }
+
+ B2DPolyRange::ElementType B2DPolyRange::getElement(sal_uInt32 nIndex) const
+ {
+ return mpImpl->getElement(nIndex);
+ }
+
+ void B2DPolyRange::setElement(sal_uInt32 nIndex, const ElementType& rElement )
+ {
+ mpImpl->setElement(nIndex, rElement);
+ }
+
+ void B2DPolyRange::setElement(sal_uInt32 nIndex, const B2DRange& rRange, B2VectorOrientation eOrient )
+ {
+ mpImpl->setElement(nIndex, rRange, eOrient );
+ }
+
+ void B2DPolyRange::insertElement(sal_uInt32 nIndex, const ElementType& rElement, sal_uInt32 nCount)
+ {
+ mpImpl->insertElement(nIndex, rElement, nCount );
+ }
+
+ void B2DPolyRange::insertElement(sal_uInt32 nIndex, const B2DRange& rRange, B2VectorOrientation eOrient, sal_uInt32 nCount)
+ {
+ mpImpl->insertElement(nIndex, rRange, eOrient, nCount );
+ }
+
+ void B2DPolyRange::appendElement(const ElementType& rElement, sal_uInt32 nCount)
+ {
+ mpImpl->appendElement(rElement, nCount);
+ }
+
+ void B2DPolyRange::appendElement(const B2DRange& rRange, B2VectorOrientation eOrient, sal_uInt32 nCount)
+ {
+ mpImpl->appendElement(rRange, eOrient, nCount );
+ }
+
+ void B2DPolyRange::insertPolyRange(sal_uInt32 nIndex, const B2DPolyRange& rRange)
+ {
+ mpImpl->insertPolyRange(nIndex, *rRange.mpImpl);
+ }
+
+ void B2DPolyRange::appendPolyRange(const B2DPolyRange& rRange)
+ {
+ mpImpl->appendPolyRange(*rRange.mpImpl);
+ }
+
+ void B2DPolyRange::remove(sal_uInt32 nIndex, sal_uInt32 nCount)
+ {
+ mpImpl->remove(nIndex, nCount);
+ }
+
+ void B2DPolyRange::clear()
+ {
+ mpImpl->clear();
+ }
+
+ void B2DPolyRange::flip()
+ {
+ mpImpl->flip();
+ }
+
+ B2DRange B2DPolyRange::getBounds() const
+ {
+ return mpImpl->getBounds();
+ }
+
+ bool B2DPolyRange::isInside( const B2DTuple& rTuple ) const
+ {
+ return mpImpl->isInside(rTuple);
+ }
+
+ bool B2DPolyRange::isInside( const B2DRange& rRange ) const
+ {
+ return mpImpl->isInside(rRange);
+ }
+
+ bool B2DPolyRange::overlaps( const B2DRange& rRange ) const
+ {
+ return mpImpl->overlaps(rRange);
+ }
+
+ B2DPolyPolygon B2DPolyRange::solveCrossovers() const
+ {
+ return mpImpl->solveCrossovers();
+ }
+
+ const B2DRange* B2DPolyRange::begin() const
+ {
+ return mpImpl->begin();
+ }
+
+ const B2DRange* B2DPolyRange::end() const
+ {
+ return mpImpl->end();
+ }
+
+ B2DRange* B2DPolyRange::begin()
+ {
+ return mpImpl->begin();
+ }
+
+ B2DRange* B2DPolyRange::end()
+ {
+ return mpImpl->end();
+ }
+
+} // end of namespace basegfx
+
+// eof
diff --git a/basegfx/source/range/b2drangeclipper.cxx b/basegfx/source/range/b2drangeclipper.cxx
new file mode 100644
index 000000000000..524479b4fde0
--- /dev/null
+++ b/basegfx/source/range/b2drangeclipper.cxx
@@ -0,0 +1,950 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: b2dmultirange.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_basegfx.hxx"
+
+#include <rtl/math.hxx>
+
+#include <basegfx/tuple/b2dtuple.hxx>
+#include <basegfx/range/b2drange.hxx>
+#include <basegfx/range/b2dpolyrange.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/polygon/b2dpolygontools.hxx>
+#include <basegfx/polygon/b2dpolypolygontools.hxx>
+
+#include <o3tl/vector_pool.hxx>
+#include <boost/bind.hpp>
+#include <boost/utility.hpp>
+
+#include <algorithm>
+#include <deque>
+#include <list>
+
+
+namespace basegfx
+{
+ namespace
+ {
+ // Generating a poly-polygon from a bunch of rectangles
+ //
+ // Helper functionality for sweep-line algorithm
+ // ====================================================
+
+ typedef std::vector<B2DRange> VectorOfRanges;
+
+ class ImplPolygon;
+ typedef o3tl::vector_pool<ImplPolygon> VectorOfPolygons;
+
+
+ /** This class represents an active edge
+
+ As the sweep line traverses across the overall area,
+ rectangle edges parallel to it generate events, and
+ rectangle edges orthogonal to it generate active
+ edges. This class represents the latter.
+ */
+ class ActiveEdge
+ {
+ public:
+ /** The two possible active rectangle edges differ by one
+ coordinate value - the upper edge has the lower, the
+ lower edge the higher value.
+ */
+ enum EdgeType {
+ /// edge with lower coordinate value
+ UPPER=0,
+ /// edge with higher coordinate value
+ LOWER=1
+ };
+
+ enum EdgeDirection {
+ /// edge proceeds to the left
+ PROCEED_LEFT=0,
+ /// edge proceeds to the right
+ PROCEED_RIGHT=1
+ };
+
+ /** Create active edge
+
+ @param rRect
+ Rectangle this edge is part of
+
+ @param fInvariantCoord
+ The invariant ccordinate value of this edge
+
+ @param eEdgeType
+ Is fInvariantCoord the lower or the higher value, for
+ this rect?
+ */
+ ActiveEdge( const B2DRectangle& rRect,
+ const double& fInvariantCoord,
+ std::ptrdiff_t nPolyIdx,
+ EdgeType eEdgeType,
+ EdgeDirection eEdgeDirection ) :
+ mfInvariantCoord(fInvariantCoord),
+ mpAssociatedRect( &rRect ),
+ mnPolygonIdx( nPolyIdx ),
+ meEdgeType( eEdgeType ),
+ meEdgeDirection( eEdgeDirection )
+ {}
+
+ double getInvariantCoord() const { return mfInvariantCoord; }
+ const B2DRectangle& getRect() const { return *mpAssociatedRect; }
+ std::ptrdiff_t getTargetPolygonIndex() const { return mnPolygonIdx; }
+ void setTargetPolygonIndex( std::ptrdiff_t nIdx ) { mnPolygonIdx = nIdx; }
+ EdgeType getEdgeType() const { return meEdgeType; }
+ EdgeDirection getEdgeDirection() const { return meEdgeDirection; }
+
+ /// For STL sort
+ bool operator<( const ActiveEdge& rRHS ) const { return mfInvariantCoord < rRHS.mfInvariantCoord; }
+
+ private:
+ /** The invariant coordinate value of this edge (e.g. the
+ common y value, for a horizontal edge)
+ */
+ double mfInvariantCoord;
+
+ /** Associated rectangle
+
+ This on the one hand saves some storage space (the
+ vector of rectangles is persistent, anyway), and on
+ the other hand provides an identifier to match active
+ edges and x events (see below)
+
+ Ptr because class needs to be assignable
+ */
+ const B2DRectangle* mpAssociatedRect;
+
+ /** Index of the polygon this edge is currently involved
+ with.
+
+ Note that this can change for some kinds of edge
+ intersection, as the algorithm tends to swap
+ associated polygons there.
+
+ -1 denotes no assigned polygon
+ */
+ std::ptrdiff_t mnPolygonIdx;
+
+ /// 'upper' or 'lower' edge of original rectangle.
+ EdgeType meEdgeType;
+
+ /// 'left' or 'right'
+ EdgeDirection meEdgeDirection;
+ };
+
+ // Needs to be list - various places hold ptrs to elements
+ typedef std::list< ActiveEdge > ListOfEdges;
+
+
+ /** Element of the sweep line event list
+
+ As the sweep line traverses across the overall area,
+ rectangle edges parallel to it generate events, and
+ rectangle edges orthogonal to it generate active
+ edges. This class represents the former.
+
+ The class defines an element of the sweep line list. The
+ sweep line's position jumps in steps defined by the
+ coordinates of the sorted SweepLineEvent entries.
+ */
+ class SweepLineEvent
+ {
+ public:
+ /** The two possible sweep line rectangle edges differ by
+ one coordinate value - the starting edge has the
+ lower, the finishing edge the higher value.
+ */
+ enum EdgeType {
+ /// edge with lower coordinate value
+ STARTING_EDGE=0,
+ /// edge with higher coordinate value
+ FINISHING_EDGE=1
+ };
+
+ /** The two possible sweep line directions
+ */
+ enum EdgeDirection {
+ PROCEED_UP=0,
+ PROCEED_DOWN=1
+ };
+
+ /** Create sweep line event
+
+ @param fPos
+ Coordinate position of the event
+
+ @param rRect
+ Rectangle this event is generated for.
+
+ @param eEdgeType
+ Is fPos the lower or the higher value, for the
+ rectangle this event is generated for?
+ */
+ SweepLineEvent( double fPos,
+ const B2DRectangle& rRect,
+ EdgeType eEdgeType,
+ EdgeDirection eDirection) :
+ mfPos( fPos ),
+ mpAssociatedRect( &rRect ),
+ meEdgeType( eEdgeType ),
+ meEdgeDirection( eDirection )
+ {}
+
+ double getPos() const { return mfPos; }
+ const B2DRectangle& getRect() const { return *mpAssociatedRect; }
+ EdgeType getEdgeType() const { return meEdgeType; }
+ EdgeDirection getEdgeDirection() const { return meEdgeDirection; }
+
+ /// For STL sort
+ bool operator<( const SweepLineEvent& rRHS ) const { return mfPos < rRHS.mfPos; }
+
+ private:
+ /// position of the event, in the direction of the line sweep
+ double mfPos;
+
+ /** Rectangle this event is generated for
+
+ This on the one hand saves some storage space (the
+ vector of rectangles is persistent, anyway), and on
+ the other hand provides an identifier to match active
+ edges and events (see below)
+
+ Ptr because class needs to be assignable
+ */
+ const B2DRectangle* mpAssociatedRect;
+
+ /// 'upper' or 'lower' edge of original rectangle.
+ EdgeType meEdgeType;
+
+ /// 'up' or 'down'
+ EdgeDirection meEdgeDirection;
+ };
+
+ typedef std::vector< SweepLineEvent > VectorOfEvents;
+
+
+ /** Smart point container for B2DMultiRange::getPolyPolygon()
+
+ This class provides methods needed only here, and is used
+ as a place to store some additional information per
+ polygon. Also, most of the intersection logic is
+ implemented here.
+ */
+ class ImplPolygon
+ {
+ public:
+ /** Create polygon
+ */
+ ImplPolygon() :
+ mpLeadingRightEdge(NULL),
+ mnIdx(-1),
+ maPoints(),
+ mbIsFinished(false)
+ {
+ // completely ad-hoc. but what the hell.
+ maPoints.reserve(11);
+ }
+
+ void setPolygonPoolIndex( std::ptrdiff_t nIdx ) { mnIdx = nIdx; }
+ bool isFinished() const { return mbIsFinished; }
+
+ /// Add point to the end of the existing points
+ void append( const B2DPoint& rPoint )
+ {
+ OSL_PRECOND( maPoints.empty() ||
+ maPoints.back().getX() == rPoint.getX() ||
+ maPoints.back().getY() == rPoint.getY(),
+ "ImplPolygon::append(): added point violates 90 degree line angle constraint!" );
+
+ if( maPoints.empty() ||
+ maPoints.back() != rPoint )
+ {
+ // avoid duplicate points
+ maPoints.push_back( rPoint );
+ }
+ }
+
+ /** Perform the intersection of this polygon with an
+ active edge.
+
+ @param rEvent
+ The vertical line event that generated the
+ intersection
+
+ @param rActiveEdge
+ The active edge that generated the intersection
+
+ @param rPolygonPool
+ Polygon pool, we sometimes need to allocate a new one
+
+ @param bIsFinishingEdge
+ True, when this is hitting the last edge of the
+ vertical sweep - every vertical sweep starts and ends
+ with upper and lower edge of the _same_ rectangle.
+
+ @return the new current polygon (that's the one
+ processing must proceed with, when going through the
+ list of upcoming active edges).
+ */
+ std::ptrdiff_t intersect( SweepLineEvent& rEvent,
+ ActiveEdge& rActiveEdge,
+ VectorOfPolygons& rPolygonPool,
+ B2DPolyPolygon& rRes,
+ bool isFinishingEdge )
+ {
+ OSL_PRECOND( !isFinished(),
+ "ImplPolygon::intersect(): called on already finished polygon!" );
+ OSL_PRECOND( !isFinishingEdge
+ || (isFinishingEdge && &rEvent.getRect() == &rActiveEdge.getRect()),
+ "ImplPolygon::intersect(): inconsistent ending!" );
+
+ const B2DPoint aIntersectionPoint( rEvent.getPos(),
+ rActiveEdge.getInvariantCoord() );
+
+ // intersection point, goes to our polygon
+ // unconditionally
+ append(aIntersectionPoint);
+
+ const bool isSweepLineEnteringRect(
+ rEvent.getEdgeType() == SweepLineEvent::STARTING_EDGE);
+ if( isFinishingEdge )
+ {
+ if( isSweepLineEnteringRect )
+ handleFinalOwnRightEdge(rActiveEdge);
+ else
+ handleFinalOwnLeftEdge(rActiveEdge,
+ rPolygonPool,
+ rRes);
+
+ // we're done with this rect & sweep line
+ return -1;
+ }
+ else if( metOwnEdge(rEvent,rActiveEdge) )
+ {
+ handleInitialOwnEdge(rEvent, rActiveEdge);
+
+ // point already added, all init done, continue
+ // with same poly
+ return mnIdx;
+ }
+ else
+ {
+ OSL_ENSURE( rActiveEdge.getTargetPolygonIndex() != -1,
+ "ImplPolygon::intersect(): non-trivial intersection hit empty polygon!" );
+
+ const bool isHittingLeftEdge(
+ rActiveEdge.getEdgeDirection() == ActiveEdge::PROCEED_LEFT);
+
+ if( isHittingLeftEdge )
+ return handleComplexLeftEdge(rActiveEdge,
+ aIntersectionPoint,
+ rPolygonPool,
+ rRes);
+ else
+ return handleComplexRightEdge(rActiveEdge,
+ aIntersectionPoint,
+ rPolygonPool);
+ }
+ }
+
+ private:
+ std::ptrdiff_t getPolygonPoolIndex() const { return mnIdx; }
+
+ void handleInitialOwnEdge(SweepLineEvent& rEvent,
+ ActiveEdge& rActiveEdge)
+ {
+ const bool isActiveEdgeProceedLeft(
+ rActiveEdge.getEdgeDirection() == ActiveEdge::PROCEED_LEFT);
+ const bool isSweepLineEnteringRect(
+ rEvent.getEdgeType() == SweepLineEvent::STARTING_EDGE);
+ (void)isActiveEdgeProceedLeft;
+ (void)isSweepLineEnteringRect;
+
+ OSL_ENSURE( isSweepLineEnteringRect == isActiveEdgeProceedLeft,
+ "ImplPolygon::intersect(): sweep initial own edge hit: wrong polygon order" );
+
+ OSL_ENSURE( isSweepLineEnteringRect ||
+ mpLeadingRightEdge == &rActiveEdge,
+ "ImplPolygon::intersect(): sweep initial own edge hit: wrong leading edge" );
+ }
+
+ void handleFinalOwnRightEdge(ActiveEdge& rActiveEdge)
+ {
+ OSL_ENSURE( rActiveEdge.getEdgeDirection() == ActiveEdge::PROCEED_RIGHT,
+ "ImplPolygon::handleInitialOwnRightEdge(): start edge wrong polygon order" );
+
+ rActiveEdge.setTargetPolygonIndex(mnIdx);
+ mpLeadingRightEdge = &rActiveEdge;
+ }
+
+ void handleFinalOwnLeftEdge(ActiveEdge& rActiveEdge,
+ VectorOfPolygons& rPolygonPool,
+ B2DPolyPolygon& rRes)
+ {
+ OSL_ENSURE( rActiveEdge.getEdgeDirection() == ActiveEdge::PROCEED_LEFT,
+ "ImplPolygon::handleFinalOwnLeftEdge(): end edge wrong polygon order" );
+
+ const bool isHittingOurTail(
+ rActiveEdge.getTargetPolygonIndex() == mnIdx);
+
+ if( isHittingOurTail )
+ finish(rRes); // just finish. no fuss.
+ else
+ {
+ // temp poly hits final left edge
+ const std::ptrdiff_t nTmpIdx=rActiveEdge.getTargetPolygonIndex();
+ ImplPolygon& rTmp=rPolygonPool.get(nTmpIdx);
+
+ // active edge's polygon has points
+ // already. ours need to go in front of them.
+ maPoints.insert(maPoints.end(),
+ rTmp.maPoints.begin(),
+ rTmp.maPoints.end());
+
+ // adjust leading edges, we're switching the polygon
+ ActiveEdge* const pFarEdge=rTmp.mpLeadingRightEdge;
+
+ mpLeadingRightEdge = pFarEdge;
+ pFarEdge->setTargetPolygonIndex(mnIdx);
+
+ // nTmpIdx is an empty shell, get rid of it
+ rPolygonPool.free(nTmpIdx);
+ }
+ }
+
+ std::ptrdiff_t handleComplexLeftEdge(ActiveEdge& rActiveEdge,
+ const B2DPoint& rIntersectionPoint,
+ VectorOfPolygons& rPolygonPool,
+ B2DPolyPolygon& rRes)
+ {
+ const bool isHittingOurTail(
+ rActiveEdge.getTargetPolygonIndex() == mnIdx);
+ if( isHittingOurTail )
+ {
+ finish(rRes);
+
+ // so "this" is done - need new polygon to collect
+ // further points
+ const std::ptrdiff_t nIdxNewPolygon=rPolygonPool.alloc();
+ rPolygonPool.get(nIdxNewPolygon).setPolygonPoolIndex(nIdxNewPolygon);
+ rPolygonPool.get(nIdxNewPolygon).append(rIntersectionPoint);
+
+ rActiveEdge.setTargetPolygonIndex(nIdxNewPolygon);
+
+ return nIdxNewPolygon;
+ }
+ else
+ {
+ const std::ptrdiff_t nTmpIdx=rActiveEdge.getTargetPolygonIndex();
+ ImplPolygon& rTmp=rPolygonPool.get(nTmpIdx);
+
+ // active edge's polygon has points
+ // already. ours need to go in front of them.
+ maPoints.insert(maPoints.end(),
+ rTmp.maPoints.begin(),
+ rTmp.maPoints.end());
+
+ rTmp.maPoints.clear();
+ rTmp.append(rIntersectionPoint);
+
+ // adjust leading edges, we're switching the polygon
+ ActiveEdge* const pFarEdge=rTmp.mpLeadingRightEdge;
+ ActiveEdge* const pNearEdge=&rActiveEdge;
+
+ rTmp.mpLeadingRightEdge = NULL;
+ pNearEdge->setTargetPolygonIndex(nTmpIdx);
+
+ mpLeadingRightEdge = pFarEdge;
+ pFarEdge->setTargetPolygonIndex(mnIdx);
+
+ return nTmpIdx;
+ }
+ }
+
+ std::ptrdiff_t handleComplexRightEdge(ActiveEdge& rActiveEdge,
+ const B2DPoint& rIntersectionPoint,
+ VectorOfPolygons& rPolygonPool)
+ {
+ const std::ptrdiff_t nTmpIdx=rActiveEdge.getTargetPolygonIndex();
+ ImplPolygon& rTmp=rPolygonPool.get(nTmpIdx);
+
+ rTmp.append(rIntersectionPoint);
+
+ rActiveEdge.setTargetPolygonIndex(mnIdx);
+ mpLeadingRightEdge = &rActiveEdge;
+
+ rTmp.mpLeadingRightEdge = NULL;
+
+ return nTmpIdx;
+ }
+
+ /// True when sweep line hits our own active edge
+ bool metOwnEdge(const SweepLineEvent& rEvent,
+ ActiveEdge& rActiveEdge)
+ {
+ const bool bHitOwnEdge=&rEvent.getRect() == &rActiveEdge.getRect();
+ return bHitOwnEdge;
+ }
+
+ /// Retrieve B2DPolygon from this object
+ B2DPolygon getPolygon() const
+ {
+ B2DPolygon aRes;
+ std::for_each( maPoints.begin(),
+ maPoints.end(),
+ boost::bind(
+ &B2DPolygon::append,
+ boost::ref(aRes),
+ _1,
+ 1 ) );
+ aRes.setClosed( true );
+ return aRes;
+ }
+
+ /** Finish this polygon, push to result set.
+ */
+ void finish(B2DPolyPolygon& rRes)
+ {
+ OSL_PRECOND( maPoints.empty() ||
+ maPoints.front().getX() == maPoints.back().getX() ||
+ maPoints.front().getY() == maPoints.back().getY(),
+ "ImplPolygon::finish(): first and last point violate 90 degree line angle constraint!" );
+
+ mbIsFinished = true;
+ mpLeadingRightEdge = NULL;
+
+ rRes.append(getPolygon());
+ }
+
+ /** Refers to the current leading edge element of this
+ polygon, or NULL. The leading edge denotes the 'front'
+ of the polygon vertex sequence, i.e. the coordinates
+ at the polygon's leading edge are returned from
+ maPoints.front()
+ */
+ ActiveEdge* mpLeadingRightEdge;
+
+ /// current index into vector pool
+ std::ptrdiff_t mnIdx;
+
+ /// Container for the actual polygon points
+ std::vector<B2DPoint> maPoints;
+
+ /// When true, this polygon is 'done', i.e. nothing must be added anymore.
+ bool mbIsFinished;
+ };
+
+ /** Init sweep line event list
+
+ This method fills the event list with the sweep line
+ events generated from the input rectangles, and sorts them
+ with increasing x.
+ */
+ void setupSweepLineEventListFromRanges( VectorOfEvents& o_rEventVector,
+ const std::vector<B2DRange>& rRanges,
+ const std::vector<B2VectorOrientation>& rOrientations )
+ {
+ // we need exactly 2*rectVec.size() events: one for the
+ // left, and one for the right edge of each rectangle
+ o_rEventVector.clear();
+ o_rEventVector.reserve( 2*rRanges.size() );
+
+ // generate events
+ // ===============
+
+ // first pass: add all left edges in increasing order
+ std::vector<B2DRange>::const_iterator aCurrRect=rRanges.begin();
+ std::vector<B2VectorOrientation>::const_iterator aCurrOrientation=rOrientations.begin();
+ const std::vector<B2DRange>::const_iterator aEnd=rRanges.end();
+ const std::vector<B2VectorOrientation>::const_iterator aEndOrientation=rOrientations.end();
+ while( aCurrRect != aEnd && aCurrOrientation != aEndOrientation )
+ {
+ const B2DRectangle& rCurrRect( *aCurrRect++ );
+
+ o_rEventVector.push_back(
+ SweepLineEvent( rCurrRect.getMinX(),
+ rCurrRect,
+ SweepLineEvent::STARTING_EDGE,
+ (*aCurrOrientation++) == ORIENTATION_POSITIVE ?
+ SweepLineEvent::PROCEED_UP : SweepLineEvent::PROCEED_DOWN) );
+ }
+
+ // second pass: add all right edges in reversed order
+ std::vector<B2DRange>::const_reverse_iterator aCurrRectR=rRanges.rbegin();
+ std::vector<B2VectorOrientation>::const_reverse_iterator aCurrOrientationR=rOrientations.rbegin();
+ const std::vector<B2DRange>::const_reverse_iterator aEndR=rRanges.rend();
+ const std::vector<B2VectorOrientation>::const_reverse_iterator aEndOrientationR=rOrientations.rend();
+ while( aCurrRectR != aEndR )
+ {
+ const B2DRectangle& rCurrRect( *aCurrRectR++ );
+
+ o_rEventVector.push_back(
+ SweepLineEvent( rCurrRect.getMaxX(),
+ rCurrRect,
+ SweepLineEvent::FINISHING_EDGE,
+ (*aCurrOrientationR++) == ORIENTATION_POSITIVE ?
+ SweepLineEvent::PROCEED_DOWN : SweepLineEvent::PROCEED_UP ) );
+ }
+
+ // sort events
+ // ===========
+
+ // since we use stable_sort, the order of events with the
+ // same x value will not change. The elaborate two-pass
+ // add above thus ensures, that for each two rectangles
+ // with similar left and right x coordinates, the
+ // rectangle whose left event comes first will have its
+ // right event come last. This is advantageous for the
+ // clip algorithm below, see handleRightEdgeCrossing().
+
+ // TODO(P3): Use radix sort (from
+ // b2dpolypolygonrasterconverter, or have your own
+ // templatized version).
+ std::stable_sort( o_rEventVector.begin(),
+ o_rEventVector.end() );
+ }
+
+ /** Insert two active edge segments for the given rectangle.
+
+ This method creates two active edge segments from the
+ given rect, and inserts them into the active edge list,
+ such that this stays sorted (if it was before).
+
+ @param io_rEdgeList
+ Active edge list to insert into
+
+ @param io_rPolygons
+ Vector of polygons. Each rectangle added creates one
+ tentative result polygon in this vector, and the edge list
+ entries holds a reference to that polygon (this _requires_
+ that the polygon vector does not reallocate, i.e. it must
+ have at least the maximal number of rectangles reserved)
+
+ @param o_CurrentPolygon
+ The then-current polygon when processing this sweep line
+ event
+
+ @param rCurrEvent
+ The actual event that caused this call
+ */
+ void createActiveEdgesFromStartEvent( ListOfEdges& io_rEdgeList,
+ VectorOfPolygons& io_rPolygonPool,
+ SweepLineEvent& rCurrEvent )
+ {
+ ListOfEdges aNewEdges;
+ const B2DRectangle& rRect=rCurrEvent.getRect();
+ const bool bGoesDown=rCurrEvent.getEdgeDirection() == SweepLineEvent::PROCEED_DOWN;
+
+ // start event - new rect starts here, needs polygon to
+ // collect points into
+ const std::ptrdiff_t nIdxPolygon=io_rPolygonPool.alloc();
+ io_rPolygonPool.get(nIdxPolygon).setPolygonPoolIndex(nIdxPolygon);
+
+ // upper edge
+ aNewEdges.push_back(
+ ActiveEdge(
+ rRect,
+ rRect.getMinY(),
+ bGoesDown ? nIdxPolygon : -1,
+ ActiveEdge::UPPER,
+ bGoesDown ? ActiveEdge::PROCEED_LEFT : ActiveEdge::PROCEED_RIGHT) );
+ // lower edge
+ aNewEdges.push_back(
+ ActiveEdge(
+ rRect,
+ rRect.getMaxY(),
+ bGoesDown ? -1 : nIdxPolygon,
+ ActiveEdge::LOWER,
+ bGoesDown ? ActiveEdge::PROCEED_RIGHT : ActiveEdge::PROCEED_LEFT ) );
+
+ // furthermore, have to respect a special tie-breaking
+ // rule here, for edges which share the same y value:
+ // newly added upper edges must be inserted _before_ any
+ // other edge with the same y value, and newly added lower
+ // edges must be _after_ all other edges with the same
+ // y. This ensures that the left vertical edge processing
+ // below encounters the upper edge of the current rect
+ // first, and the lower edge last, which automatically
+ // starts and finishes this rect correctly (as only then,
+ // the polygon will have their associated active edges
+ // set).
+ const double nMinY( rRect.getMinY() );
+ const double nMaxY( rRect.getMaxY() );
+ ListOfEdges::iterator aCurr( io_rEdgeList.begin() );
+ const ListOfEdges::iterator aEnd ( io_rEdgeList.end() );
+ while( aCurr != aEnd )
+ {
+ const double nCurrY( aCurr->getInvariantCoord() );
+
+ if( nCurrY >= nMinY &&
+ aNewEdges.size() == 2 ) // only add, if not yet done.
+ {
+ // insert upper edge _before_ aCurr. Thus, it will
+ // be the first entry for a range of equal y
+ // values. Using splice here, since we hold
+ // references to the moved list element!
+ io_rEdgeList.splice( aCurr,
+ aNewEdges,
+ aNewEdges.begin() );
+ }
+
+ if( nCurrY > nMaxY )
+ {
+ // insert lower edge _before_ aCurr. Thus, it will
+ // be the last entry for a range of equal y values
+ // (aCurr is the first entry strictly larger than
+ // nMaxY). Using splice here, since we hold
+ // references to the moved list element!
+ io_rEdgeList.splice( aCurr,
+ aNewEdges,
+ aNewEdges.begin() );
+ // done with insertion, can early-exit here.
+ return;
+ }
+
+ ++aCurr;
+ }
+
+ // append remainder of aNewList (might still contain 2 or
+ // 1 elements, depending of the contents of io_rEdgeList).
+ io_rEdgeList.splice( aCurr,
+ aNewEdges );
+ }
+
+ inline bool isSameRect(ActiveEdge& rEdge,
+ const basegfx::B2DRange& rRect)
+ {
+ return &rEdge.getRect() == &rRect;
+ }
+
+ // wow what a hack. necessary because stl's list::erase does
+ // not eat reverse_iterator
+ template<typename Cont, typename Iter> Iter eraseFromList(Cont&, Iter);
+ template<> inline ListOfEdges::iterator eraseFromList(
+ ListOfEdges& rList, ListOfEdges::iterator aIter)
+ {
+ return rList.erase(aIter);
+ }
+ template<> inline ListOfEdges::reverse_iterator eraseFromList(
+ ListOfEdges& rList, ListOfEdges::reverse_iterator aIter)
+ {
+ return ListOfEdges::reverse_iterator(
+ rList.erase(boost::prior(aIter.base())));
+ }
+
+ template<int bPerformErase,
+ typename Iterator> inline void processActiveEdges(
+ Iterator first,
+ Iterator last,
+ ListOfEdges& rActiveEdgeList,
+ SweepLineEvent& rCurrEvent,
+ VectorOfPolygons& rPolygonPool,
+ B2DPolyPolygon& rRes )
+ {
+ const basegfx::B2DRange& rCurrRect=rCurrEvent.getRect();
+
+ // fast-forward to rCurrEvent's first active edge (holds
+ // for both starting and finishing sweep line events, a
+ // rect is regarded _outside_ any rects whose events have
+ // started earlier
+ first = std::find_if(first, last,
+ boost::bind(
+ &isSameRect,
+ _1,
+ boost::cref(rCurrRect)));
+
+ if(first == last)
+ return;
+
+ int nCount=0;
+ std::ptrdiff_t nCurrPolyIdx=-1;
+ while(first != last)
+ {
+ if( nCurrPolyIdx == -1 )
+ nCurrPolyIdx=first->getTargetPolygonIndex();
+
+ OSL_ASSERT(nCurrPolyIdx != -1);
+
+ // second encounter of my rect -> second edge
+ // encountered, done
+ const bool bExit=
+ nCount &&
+ isSameRect(*first,
+ rCurrRect);
+
+ // deal with current active edge
+ nCurrPolyIdx =
+ rPolygonPool.get(nCurrPolyIdx).intersect(
+ rCurrEvent,
+ *first,
+ rPolygonPool,
+ rRes,
+ bExit);
+
+ // prune upper & lower active edges, if requested
+ if( bPerformErase && (bExit || !nCount) )
+ first = eraseFromList(rActiveEdgeList,first);
+ else
+ ++first;
+
+ // delayed exit, had to prune first
+ if( bExit )
+ return;
+
+ ++nCount;
+ }
+ }
+
+ template<int bPerformErase> inline void processActiveEdgesTopDown(
+ SweepLineEvent& rCurrEvent,
+ ListOfEdges& rActiveEdgeList,
+ VectorOfPolygons& rPolygonPool,
+ B2DPolyPolygon& rRes )
+ {
+ processActiveEdges<bPerformErase>(
+ rActiveEdgeList. begin(),
+ rActiveEdgeList. end(),
+ rActiveEdgeList,
+ rCurrEvent,
+ rPolygonPool,
+ rRes);
+ }
+
+ template<int bPerformErase> inline void processActiveEdgesBottomUp(
+ SweepLineEvent& rCurrEvent,
+ ListOfEdges& rActiveEdgeList,
+ VectorOfPolygons& rPolygonPool,
+ B2DPolyPolygon& rRes )
+ {
+ processActiveEdges<bPerformErase>(
+ rActiveEdgeList. rbegin(),
+ rActiveEdgeList. rend(),
+ rActiveEdgeList,
+ rCurrEvent,
+ rPolygonPool,
+ rRes);
+ }
+
+ enum{ NoErase=0, PerformErase=1 };
+
+ void handleStartingEdge( SweepLineEvent& rCurrEvent,
+ ListOfEdges& rActiveEdgeList,
+ VectorOfPolygons& rPolygonPool,
+ B2DPolyPolygon& rRes)
+ {
+ // inject two new active edges for rect
+ createActiveEdgesFromStartEvent( rActiveEdgeList,
+ rPolygonPool,
+ rCurrEvent );
+
+ if( SweepLineEvent::PROCEED_DOWN == rCurrEvent.getEdgeDirection() )
+ processActiveEdgesTopDown<NoErase>(
+ rCurrEvent, rActiveEdgeList, rPolygonPool, rRes);
+ else
+ processActiveEdgesBottomUp<NoErase>(
+ rCurrEvent, rActiveEdgeList, rPolygonPool, rRes);
+ }
+
+ void handleFinishingEdge( SweepLineEvent& rCurrEvent,
+ ListOfEdges& rActiveEdgeList,
+ VectorOfPolygons& rPolygonPool,
+ B2DPolyPolygon& rRes)
+ {
+ if( SweepLineEvent::PROCEED_DOWN == rCurrEvent.getEdgeDirection() )
+ processActiveEdgesTopDown<PerformErase>(
+ rCurrEvent, rActiveEdgeList, rPolygonPool, rRes);
+ else
+ processActiveEdgesBottomUp<PerformErase>(
+ rCurrEvent, rActiveEdgeList, rPolygonPool, rRes);
+ }
+
+ inline void handleSweepLineEvent( SweepLineEvent& rCurrEvent,
+ ListOfEdges& rActiveEdgeList,
+ VectorOfPolygons& rPolygonPool,
+ B2DPolyPolygon& rRes)
+ {
+ if( SweepLineEvent::STARTING_EDGE == rCurrEvent.getEdgeType() )
+ handleStartingEdge(rCurrEvent,rActiveEdgeList,rPolygonPool,rRes);
+ else
+ handleFinishingEdge(rCurrEvent,rActiveEdgeList,rPolygonPool,rRes);
+ }
+ }
+
+ namespace tools
+ {
+ B2DPolyPolygon solveCrossovers(const std::vector<B2DRange>& rRanges,
+ const std::vector<B2VectorOrientation>& rOrientations)
+ {
+ // sweep-line algorithm to generate a poly-polygon
+ // from a bunch of rectangles
+ // ===============================================
+ //
+ // This algorithm uses the well-known sweep line
+ // concept, explained in every good text book about
+ // computational geometry.
+ //
+ // We start with creating two structures for every
+ // rectangle, one representing the left x coordinate,
+ // one representing the right x coordinate (and both
+ // referencing the original rect). These structs are
+ // sorted with increasing x coordinates.
+ //
+ // Then, we start processing the resulting list from
+ // the beginning. Every entry in the list defines a
+ // point in time of the line sweeping from left to
+ // right across all rectangles.
+ VectorOfEvents aSweepLineEvents;
+ setupSweepLineEventListFromRanges( aSweepLineEvents,
+ rRanges,
+ rOrientations );
+
+ B2DPolyPolygon aRes;
+ VectorOfPolygons aPolygonPool;
+ ListOfEdges aActiveEdgeList;
+
+ // sometimes not enough, but a usable compromise
+ aPolygonPool.reserve( rRanges.size() );
+
+ std::for_each( aSweepLineEvents.begin(),
+ aSweepLineEvents.end(),
+ boost::bind(
+ &handleSweepLineEvent,
+ _1,
+ boost::ref(aActiveEdgeList),
+ boost::ref(aPolygonPool),
+ boost::ref(aRes)) );
+
+ return aRes;
+ }
+ }
+}
+
diff --git a/basegfx/source/range/makefile.mk b/basegfx/source/range/makefile.mk
index 04d8e8e66fa2..5e05eeda94d9 100644
--- a/basegfx/source/range/makefile.mk
+++ b/basegfx/source/range/makefile.mk
@@ -43,7 +43,8 @@ SLOFILES= \
$(SLO)$/b1drange.obj \
$(SLO)$/b2drange.obj \
$(SLO)$/b2xrange.obj \
- $(SLO)$/b2dmultirange.obj \
+ $(SLO)$/b2dpolyrange.obj \
+ $(SLO)$/b2drangeclipper.obj \
$(SLO)$/b3drange.obj
# --- Targets ----------------------------------
diff --git a/basegfx/source/tools/b2dclipstate.cxx b/basegfx/source/tools/b2dclipstate.cxx
new file mode 100644
index 000000000000..005dca1aa66a
--- /dev/null
+++ b/basegfx/source/tools/b2dclipstate.cxx
@@ -0,0 +1,662 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: b2dmultirange.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_basegfx.hxx"
+#include <basegfx/tools/b2dclipstate.hxx>
+
+#include <basegfx/range/b2drange.hxx>
+#include <basegfx/range/b2dpolyrange.hxx>
+#include <basegfx/range/b2drangeclipper.hxx>
+#include <basegfx/polygon/b2dpolygon.hxx>
+#include <basegfx/polygon/b2dpolygontools.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/polygon/b2dpolypolygontools.hxx>
+#include <basegfx/polygon/b2dpolypolygoncutter.hxx>
+
+namespace basegfx
+{
+namespace tools
+{
+ struct ImplB2DClipState
+ {
+ public:
+ enum Operation {UNION, INTERSECT, XOR, SUBTRACT};
+
+ ImplB2DClipState() :
+ maPendingPolygons(),
+ maPendingRanges(),
+ maClipPoly(),
+ mePendingOps(UNION)
+ {}
+
+ explicit ImplB2DClipState( const B2DRange& rRange ) :
+ maPendingPolygons(),
+ maPendingRanges(),
+ maClipPoly(
+ tools::createPolygonFromRect(rRange)),
+ mePendingOps(UNION)
+ {}
+
+ explicit ImplB2DClipState( const B2DPolygon& rPoly ) :
+ maPendingPolygons(),
+ maPendingRanges(),
+ maClipPoly(rPoly),
+ mePendingOps(UNION)
+ {}
+
+ explicit ImplB2DClipState( const B2DPolyPolygon& rPoly ) :
+ maPendingPolygons(),
+ maPendingRanges(),
+ maClipPoly(rPoly),
+ mePendingOps(UNION)
+ {}
+
+ bool isCleared() const
+ {
+ return !maClipPoly.count()
+ && !maPendingPolygons.count()
+ && !maPendingRanges.count();
+ }
+
+ void makeClear()
+ {
+ maPendingPolygons.clear();
+ maPendingRanges.clear();
+ maClipPoly.clear();
+ mePendingOps = UNION;
+ }
+
+ bool isNullClipPoly() const
+ {
+ return maClipPoly.count() == 1
+ && !maClipPoly.getB2DPolygon(0).count();
+ }
+
+ bool isNull() const
+ {
+ return !maPendingPolygons.count()
+ && !maPendingRanges.count()
+ && isNullClipPoly();
+ }
+
+ void makeNull()
+ {
+ maPendingPolygons.clear();
+ maPendingRanges.clear();
+ maClipPoly.clear();
+ maClipPoly.append(B2DPolygon());
+ mePendingOps = UNION;
+ }
+
+ bool operator==(const ImplB2DClipState& rRHS) const
+ {
+ return maPendingPolygons == rRHS.maPendingPolygons
+ && maPendingRanges == rRHS.maPendingRanges
+ && maClipPoly == rRHS.maClipPoly
+ && mePendingOps == rRHS.mePendingOps;
+ }
+
+ void addRange(const B2DRange& rRange, Operation eOp)
+ {
+ if( rRange.isEmpty() )
+ return;
+
+ commitPendingPolygons();
+ if( mePendingOps != eOp )
+ commitPendingRanges();
+
+ mePendingOps = eOp;
+ maPendingRanges.appendElement(
+ rRange,
+ ORIENTATION_POSITIVE);
+ }
+
+ void addPolygon(B2DPolygon aPoly, Operation eOp)
+ {
+ commitPendingRanges();
+ if( mePendingOps != eOp )
+ commitPendingPolygons();
+
+ mePendingOps = eOp;
+ maPendingPolygons.append(aPoly);
+ }
+
+ void addPolyPolygon(B2DPolyPolygon aPoly, Operation eOp)
+ {
+ commitPendingRanges();
+ if( mePendingOps != eOp )
+ commitPendingPolygons();
+
+ mePendingOps = eOp;
+ maPendingPolygons.append(aPoly);
+ }
+
+ void addClipState(const ImplB2DClipState& rOther, Operation eOp)
+ {
+ if( rOther.mePendingOps == mePendingOps
+ && !rOther.maClipPoly.count()
+ && !rOther.maPendingPolygons.count() )
+ {
+ maPendingRanges.appendPolyRange( rOther.maPendingRanges );
+ }
+ else
+ {
+ commitPendingRanges();
+ commitPendingPolygons();
+ rOther.commitPendingRanges();
+ rOther.commitPendingPolygons();
+
+ maPendingPolygons = rOther.maClipPoly;
+ mePendingOps = eOp;
+ }
+ }
+
+ void unionRange(const B2DRange& rRange)
+ {
+ if( isCleared() )
+ return;
+
+ addRange(rRange,UNION);
+ }
+
+ void unionPolygon(const B2DPolygon& rPoly)
+ {
+ if( isCleared() )
+ return;
+
+ addPolygon(rPoly,UNION);
+ }
+
+ void unionPolyPolygon(const B2DPolyPolygon& rPolyPoly)
+ {
+ if( isCleared() )
+ return;
+
+ addPolyPolygon(rPolyPoly,UNION);
+ }
+
+ void unionClipState(const ImplB2DClipState& rOther)
+ {
+ if( isCleared() )
+ return;
+
+ addClipState(rOther, UNION);
+ }
+
+ void intersectRange(const B2DRange& rRange)
+ {
+ if( isNull() )
+ return;
+
+ addRange(rRange,INTERSECT);
+ }
+
+ void intersectPolygon(const B2DPolygon& rPoly)
+ {
+ if( isNull() )
+ return;
+
+ addPolygon(rPoly,INTERSECT);
+ }
+
+ void intersectPolyPolygon(const B2DPolyPolygon& rPolyPoly)
+ {
+ if( isNull() )
+ return;
+
+ addPolyPolygon(rPolyPoly,INTERSECT);
+ }
+
+ void intersectClipState(const ImplB2DClipState& rOther)
+ {
+ if( isNull() )
+ return;
+
+ addClipState(rOther, INTERSECT);
+ }
+
+ void subtractRange(const B2DRange& rRange )
+ {
+ if( isNull() )
+ return;
+
+ addRange(rRange,SUBTRACT);
+ }
+
+ void subtractPolygon(const B2DPolygon& rPoly)
+ {
+ if( isNull() )
+ return;
+
+ addPolygon(rPoly,SUBTRACT);
+ }
+
+ void subtractPolyPolygon(const B2DPolyPolygon& rPolyPoly)
+ {
+ if( isNull() )
+ return;
+
+ addPolyPolygon(rPolyPoly,SUBTRACT);
+ }
+
+ void subtractClipState(const ImplB2DClipState& rOther)
+ {
+ if( isNull() )
+ return;
+
+ addClipState(rOther, SUBTRACT);
+ }
+
+ void xorRange(const B2DRange& rRange)
+ {
+ addRange(rRange,XOR);
+ }
+
+ void xorPolygon(const B2DPolygon& rPoly)
+ {
+ addPolygon(rPoly,XOR);
+ }
+
+ void xorPolyPolygon(const B2DPolyPolygon& rPolyPoly)
+ {
+ addPolyPolygon(rPolyPoly,XOR);
+ }
+
+ void xorClipState(const ImplB2DClipState& rOther)
+ {
+ addClipState(rOther, XOR);
+ }
+
+ B2DPolyPolygon getClipPoly() const
+ {
+ commitPendingRanges();
+ commitPendingPolygons();
+
+ return maClipPoly;
+ }
+
+ private:
+ void commitPendingPolygons() const
+ {
+ if( !maPendingPolygons.count() )
+ return;
+
+ // assumption: maClipPoly has kept polygons prepared for
+ // clipping; i.e. no neutral polygons & correct
+ // orientation
+ maPendingPolygons = tools::prepareForPolygonOperation(maPendingPolygons);
+ const bool bIsEmpty=isNullClipPoly();
+ const bool bIsCleared=!maClipPoly.count();
+ switch(mePendingOps)
+ {
+ case UNION:
+ OSL_ASSERT( !bIsCleared );
+
+ if( bIsEmpty )
+ maClipPoly = maPendingPolygons;
+ else
+ maClipPoly = tools::solvePolygonOperationOr(
+ maClipPoly,
+ maPendingPolygons);
+ break;
+ case INTERSECT:
+ OSL_ASSERT( !bIsEmpty );
+
+ if( bIsCleared )
+ maClipPoly = maPendingPolygons;
+ else
+ maClipPoly = tools::solvePolygonOperationAnd(
+ maClipPoly,
+ maPendingPolygons);
+ break;
+ case XOR:
+ if( bIsEmpty )
+ maClipPoly = maPendingPolygons;
+ else if( bIsCleared )
+ {
+ // not representable, strictly speaking,
+ // using polygons with the common even/odd
+ // or nonzero winding number fill rule. If
+ // we'd want to represent it, fill rule
+ // would need to be "non-negative winding
+ // number" (and we then would return
+ // 'holes' here)
+
+ // going for an ugly hack meanwhile
+ maClipPoly = tools::solvePolygonOperationXor(
+ B2DPolyPolygon(
+ tools::createPolygonFromRect(B2DRange(-1E20,-1E20,1E20,1E20))),
+ maPendingPolygons);
+ }
+ else
+ maClipPoly = tools::solvePolygonOperationXor(
+ maClipPoly,
+ maPendingPolygons);
+ break;
+ case SUBTRACT:
+ OSL_ASSERT( !bIsEmpty );
+
+ // first union all pending ones, subtract en bloc then
+ maPendingPolygons = solveCrossovers(maPendingPolygons);
+ maPendingPolygons = stripNeutralPolygons(maPendingPolygons);
+ maPendingPolygons = stripDispensablePolygons(maPendingPolygons, false);
+
+ if( bIsCleared )
+ {
+ // not representable, strictly speaking,
+ // using polygons with the common even/odd
+ // or nonzero winding number fill rule. If
+ // we'd want to represent it, fill rule
+ // would need to be "non-negative winding
+ // number" (and we then would return
+ // 'holes' here)
+
+ // going for an ugly hack meanwhile
+ maClipPoly = tools::solvePolygonOperationDiff(
+ B2DPolyPolygon(
+ tools::createPolygonFromRect(B2DRange(-1E20,-1E20,1E20,1E20))),
+ maPendingPolygons);
+ }
+ else
+ maClipPoly = tools::solvePolygonOperationDiff(
+ maClipPoly,
+ maPendingPolygons);
+ break;
+ }
+
+ maPendingPolygons.clear();
+ mePendingOps = UNION;
+ }
+
+ void commitPendingRanges() const
+ {
+ if( !maPendingRanges.count() )
+ return;
+
+ // use the specialized range clipper for the win
+ B2DPolyPolygon aCollectedRanges;
+ const bool bIsEmpty=isNullClipPoly();
+ const bool bIsCleared=!maClipPoly.count();
+ switch(mePendingOps)
+ {
+ case UNION:
+ OSL_ASSERT( !bIsCleared );
+
+ aCollectedRanges = maPendingRanges.solveCrossovers();
+ aCollectedRanges = stripNeutralPolygons(aCollectedRanges);
+ aCollectedRanges = stripDispensablePolygons(aCollectedRanges, false);
+ if( bIsEmpty )
+ maClipPoly = aCollectedRanges;
+ else
+ maClipPoly = tools::solvePolygonOperationOr(
+ maClipPoly,
+ aCollectedRanges);
+ break;
+ case INTERSECT:
+ OSL_ASSERT( !bIsEmpty );
+
+ aCollectedRanges = maPendingRanges.solveCrossovers();
+ aCollectedRanges = stripNeutralPolygons(aCollectedRanges);
+ if( maPendingRanges.count() > 1 )
+ aCollectedRanges = stripDispensablePolygons(aCollectedRanges, true);
+
+ if( bIsCleared )
+ maClipPoly = aCollectedRanges;
+ else
+ maClipPoly = tools::solvePolygonOperationAnd(
+ maClipPoly,
+ aCollectedRanges);
+ break;
+ case XOR:
+ aCollectedRanges = maPendingRanges.solveCrossovers();
+ aCollectedRanges = stripNeutralPolygons(aCollectedRanges);
+ aCollectedRanges = correctOrientations(aCollectedRanges);
+
+ if( bIsEmpty )
+ maClipPoly = aCollectedRanges;
+ else if( bIsCleared )
+ {
+ // not representable, strictly speaking,
+ // using polygons with the common even/odd
+ // or nonzero winding number fill rule. If
+ // we'd want to represent it, fill rule
+ // would need to be "non-negative winding
+ // number" (and we then would return
+ // 'holes' here)
+
+ // going for an ugly hack meanwhile
+ maClipPoly = tools::solvePolygonOperationXor(
+ B2DPolyPolygon(
+ tools::createPolygonFromRect(B2DRange(-1E20,-1E20,1E20,1E20))),
+ aCollectedRanges);
+ }
+ else
+ maClipPoly = tools::solvePolygonOperationXor(
+ maClipPoly,
+ aCollectedRanges);
+ break;
+ case SUBTRACT:
+ OSL_ASSERT( !bIsEmpty );
+
+ // first union all pending ranges, subtract en bloc then
+ aCollectedRanges = maPendingRanges.solveCrossovers();
+ aCollectedRanges = stripNeutralPolygons(aCollectedRanges);
+ aCollectedRanges = stripDispensablePolygons(aCollectedRanges, false);
+
+ if( bIsCleared )
+ {
+ // not representable, strictly speaking,
+ // using polygons with the common even/odd
+ // or nonzero winding number fill rule. If
+ // we'd want to represent it, fill rule
+ // would need to be "non-negative winding
+ // number" (and we then would return
+ // 'holes' here)
+
+ // going for an ugly hack meanwhile
+ maClipPoly = tools::solvePolygonOperationDiff(
+ B2DPolyPolygon(
+ tools::createPolygonFromRect(B2DRange(-1E20,-1E20,1E20,1E20))),
+ aCollectedRanges);
+ }
+ else
+ maClipPoly = tools::solvePolygonOperationDiff(
+ maClipPoly,
+ aCollectedRanges);
+ break;
+ }
+
+ maPendingRanges.clear();
+ mePendingOps = UNION;
+ }
+
+ mutable B2DPolyPolygon maPendingPolygons;
+ mutable B2DPolyRange maPendingRanges;
+ mutable B2DPolyPolygon maClipPoly;
+ mutable Operation mePendingOps;
+ };
+
+ B2DClipState::B2DClipState() :
+ mpImpl()
+ {}
+
+ B2DClipState::~B2DClipState()
+ {}
+
+ B2DClipState::B2DClipState( const B2DClipState& rOrig ) :
+ mpImpl(rOrig.mpImpl)
+ {}
+
+ B2DClipState::B2DClipState( const B2DRange& rRange ) :
+ mpImpl( ImplB2DClipState(rRange) )
+ {}
+
+ B2DClipState::B2DClipState( const B2DPolygon& rPoly ) :
+ mpImpl( ImplB2DClipState(rPoly) )
+ {}
+
+ B2DClipState::B2DClipState( const B2DPolyPolygon& rPolyPoly ) :
+ mpImpl( ImplB2DClipState(rPolyPoly) )
+ {}
+
+ B2DClipState& B2DClipState::operator=( const B2DClipState& rRHS )
+ {
+ mpImpl = rRHS.mpImpl;
+ return *this;
+ }
+
+ void B2DClipState::makeUnique()
+ {
+ mpImpl.make_unique();
+ }
+
+ void B2DClipState::makeNull()
+ {
+ mpImpl->makeNull();
+ }
+
+ bool B2DClipState::isNull() const
+ {
+ return mpImpl->isNull();
+ }
+
+ void B2DClipState::makeClear()
+ {
+ mpImpl->makeClear();
+ }
+
+ bool B2DClipState::isCleared() const
+ {
+ return mpImpl->isCleared();
+ }
+
+ bool B2DClipState::operator==(const B2DClipState& rRHS) const
+ {
+ if(mpImpl.same_object(rRHS.mpImpl))
+ return true;
+
+ return ((*mpImpl) == (*rRHS.mpImpl));
+ }
+
+ bool B2DClipState::operator!=(const B2DClipState& rRHS) const
+ {
+ return !(*this == rRHS);
+ }
+
+ void B2DClipState::unionRange(const B2DRange& rRange)
+ {
+ mpImpl->unionRange(rRange);
+ }
+
+ void B2DClipState::unionPolygon(const B2DPolygon& rPoly)
+ {
+ mpImpl->unionPolygon(rPoly);
+ }
+
+ void B2DClipState::unionPolyPolygon(const B2DPolyPolygon& rPolyPoly)
+ {
+ mpImpl->unionPolyPolygon(rPolyPoly);
+ }
+
+ void B2DClipState::unionClipState(const B2DClipState& rState)
+ {
+ mpImpl->unionClipState(*rState.mpImpl);
+ }
+
+ void B2DClipState::intersectRange(const B2DRange& rRange)
+ {
+ mpImpl->intersectRange(rRange);
+ }
+
+ void B2DClipState::intersectPolygon(const B2DPolygon& rPoly)
+ {
+ mpImpl->intersectPolygon(rPoly);
+ }
+
+ void B2DClipState::intersectPolyPolygon(const B2DPolyPolygon& rPolyPoly)
+ {
+ mpImpl->intersectPolyPolygon(rPolyPoly);
+ }
+
+ void B2DClipState::intersectClipState(const B2DClipState& rState)
+ {
+ mpImpl->intersectClipState(*rState.mpImpl);
+ }
+
+ void B2DClipState::subtractRange(const B2DRange& rRange)
+ {
+ mpImpl->subtractRange(rRange);
+ }
+
+ void B2DClipState::subtractPolygon(const B2DPolygon& rPoly)
+ {
+ mpImpl->subtractPolygon(rPoly);
+ }
+
+ void B2DClipState::subtractPolyPolygon(const B2DPolyPolygon& rPolyPoly)
+ {
+ mpImpl->subtractPolyPolygon(rPolyPoly);
+ }
+
+ void B2DClipState::subtractClipState(const B2DClipState& rState)
+ {
+ mpImpl->subtractClipState(*rState.mpImpl);
+ }
+
+ void B2DClipState::xorRange(const B2DRange& rRange)
+ {
+ mpImpl->xorRange(rRange);
+ }
+
+ void B2DClipState::xorPolygon(const B2DPolygon& rPoly)
+ {
+ mpImpl->xorPolygon(rPoly);
+ }
+
+ void B2DClipState::xorPolyPolygon(const B2DPolyPolygon& rPolyPoly)
+ {
+ mpImpl->xorPolyPolygon(rPolyPoly);
+ }
+
+ void B2DClipState::xorClipState(const B2DClipState& rState)
+ {
+ mpImpl->xorClipState(*rState.mpImpl);
+ }
+
+ B2DPolyPolygon B2DClipState::getClipPoly() const
+ {
+ return mpImpl->getClipPoly();
+ }
+
+} // end of namespace tools
+} // end of namespace basegfx
+
+// eof
diff --git a/basegfx/source/tools/gradienttools.cxx b/basegfx/source/tools/gradienttools.cxx
index 89293cfcb61c..857b668da68e 100644
--- a/basegfx/source/tools/gradienttools.cxx
+++ b/basegfx/source/tools/gradienttools.cxx
@@ -49,6 +49,8 @@ namespace basegfx
o_rGradientInfo.maBackTextureTransform.identity();
o_rGradientInfo.mnSteps = nSteps;
+ fAngle = -fAngle;
+
double fTargetSizeX(rTargetRange.getWidth());
double fTargetSizeY(rTargetRange.getHeight());
double fTargetOffsetX(rTargetRange.getMinX());
@@ -67,17 +69,30 @@ namespace basegfx
fTargetSizeY = fNewY;
}
- // add object scale before rotate
+ const double fSizeWithoutBorder=1.0 - fBorder;
+ if( bAxial )
+ {
+ o_rGradientInfo.maTextureTransform.scale(1.0, fSizeWithoutBorder * .5);
+ o_rGradientInfo.maTextureTransform.translate(0.0, 0.5);
+ }
+ else
+ {
+ if(!fTools::equal(fSizeWithoutBorder, 1.0))
+ {
+ o_rGradientInfo.maTextureTransform.scale(1.0, fSizeWithoutBorder);
+ o_rGradientInfo.maTextureTransform.translate(0.0, fBorder);
+ }
+ }
+
o_rGradientInfo.maTextureTransform.scale(fTargetSizeX, fTargetSizeY);
// add texture rotate after scale to keep perpendicular angles
if(0.0 != fAngle)
{
- B2DPoint aCenter(0.5, 0.5);
- aCenter *= o_rGradientInfo.maTextureTransform;
-
- o_rGradientInfo.maTextureTransform = basegfx::tools::createRotateAroundPoint(aCenter, fAngle)
- * o_rGradientInfo.maTextureTransform;
+ const B2DPoint aCenter(0.5*fTargetSizeX,
+ 0.5*fTargetSizeY);
+ o_rGradientInfo.maTextureTransform *=
+ basegfx::tools::createRotateAroundPoint(aCenter, fAngle);
}
// add object translate
@@ -86,24 +101,9 @@ namespace basegfx
// prepare aspect for texture
o_rGradientInfo.mfAspectRatio = (0.0 != fTargetSizeY) ? fTargetSizeX / fTargetSizeY : 1.0;
- // build transform from u,v to [0.0 .. 1.0]. As base, use inverse texture transform
+ // build transform from u,v to [0.0 .. 1.0].
o_rGradientInfo.maBackTextureTransform = o_rGradientInfo.maTextureTransform;
o_rGradientInfo.maBackTextureTransform.invert();
-
- double fSizeWithoutBorder=0;
- if( bAxial )
- {
- fSizeWithoutBorder = (1.0 - fBorder) * 0.5;
- o_rGradientInfo.maBackTextureTransform.translate(0.0, -0.5);
- }
- else
- {
- fSizeWithoutBorder = 1.0 - fBorder;
- o_rGradientInfo.maBackTextureTransform.translate(0.0, -fBorder);
- }
-
- if(!fTools::equal(fSizeWithoutBorder, 0.0))
- o_rGradientInfo.maBackTextureTransform.scale(1.0, 1.0 / fSizeWithoutBorder);
}
/** Most of the setup for radial & ellipsoidal gradient is the same,
@@ -121,6 +121,8 @@ namespace basegfx
o_rGradientInfo.maBackTextureTransform.identity();
o_rGradientInfo.mnSteps = nSteps;
+ fAngle = -fAngle;
+
double fTargetSizeX(rTargetRange.getWidth());
double fTargetSizeY(rTargetRange.getHeight());
double fTargetOffsetX(rTargetRange.getMinX());
@@ -143,20 +145,19 @@ namespace basegfx
fTargetSizeY = 1.4142 * fTargetSizeY;
}
- // add object scale before rotate
+ const double fHalfBorder((1.0 - fBorder) * 0.5);
+ o_rGradientInfo.maTextureTransform.scale(fHalfBorder, fHalfBorder);
+
+ o_rGradientInfo.maTextureTransform.translate(0.5, 0.5);
o_rGradientInfo.maTextureTransform.scale(fTargetSizeX, fTargetSizeY);
- if( !bCircular )
+ // add texture rotate after scale to keep perpendicular angles
+ if( !bCircular && 0.0 != fAngle)
{
- // add texture rotate after scale to keep perpendicular angles
- if(0.0 != fAngle)
- {
- B2DPoint aCenter(0.5, 0.5);
- aCenter *= o_rGradientInfo.maTextureTransform;
-
- o_rGradientInfo.maTextureTransform = basegfx::tools::createRotateAroundPoint(aCenter, fAngle)
- * o_rGradientInfo.maTextureTransform;
- }
+ const B2DPoint aCenter(0.5*fTargetSizeX,
+ 0.5*fTargetSizeY);
+ o_rGradientInfo.maTextureTransform *=
+ basegfx::tools::createRotateAroundPoint(aCenter, fAngle);
}
// add defined offsets after rotation
@@ -173,17 +174,9 @@ namespace basegfx
// prepare aspect for texture
o_rGradientInfo.mfAspectRatio = (0.0 != fTargetSizeY) ? fTargetSizeX / fTargetSizeY : 1.0;
- // build transform from u,v to [0.0 .. 1.0]. As base, use inverse texture transform
+ // build transform from u,v to [0.0 .. 1.0].
o_rGradientInfo.maBackTextureTransform = o_rGradientInfo.maTextureTransform;
o_rGradientInfo.maBackTextureTransform.invert();
- o_rGradientInfo.maBackTextureTransform.translate(-0.5, -0.5);
- const double fHalfBorder((1.0 - fBorder) * 0.5);
-
- if(!fTools::equal(fHalfBorder, 0.0))
- {
- const double fFactor(1.0 / fHalfBorder);
- o_rGradientInfo.maBackTextureTransform.scale(fFactor, fFactor);
- }
}
/** Setup for rect & square gradient is exactly the same. Factored out
@@ -200,6 +193,8 @@ namespace basegfx
o_rGradientInfo.maBackTextureTransform.identity();
o_rGradientInfo.mnSteps = nSteps;
+ fAngle = -fAngle;
+
double fTargetSizeX(rTargetRange.getWidth());
double fTargetSizeY(rTargetRange.getHeight());
double fTargetOffsetX(rTargetRange.getMinX());
@@ -218,17 +213,19 @@ namespace basegfx
fTargetSizeY = fNewY;
}
- // add object scale before rotate
+ const double fHalfBorder((1.0 - fBorder) * 0.5);
+ o_rGradientInfo.maTextureTransform.scale(fHalfBorder, fHalfBorder);
+
+ o_rGradientInfo.maTextureTransform.translate(0.5, 0.5);
o_rGradientInfo.maTextureTransform.scale(fTargetSizeX, fTargetSizeY);
// add texture rotate after scale to keep perpendicular angles
if(0.0 != fAngle)
{
- B2DPoint aCenter(0.5, 0.5);
- aCenter *= o_rGradientInfo.maTextureTransform;
-
- o_rGradientInfo.maTextureTransform = basegfx::tools::createRotateAroundPoint(aCenter, fAngle)
- * o_rGradientInfo.maTextureTransform;
+ const B2DPoint aCenter(0.5*fTargetSizeX,
+ 0.5*fTargetSizeY);
+ o_rGradientInfo.maTextureTransform *=
+ basegfx::tools::createRotateAroundPoint(aCenter, fAngle);
}
// add defined offsets after rotation
@@ -248,14 +245,6 @@ namespace basegfx
// build transform from u,v to [0.0 .. 1.0]. As base, use inverse texture transform
o_rGradientInfo.maBackTextureTransform = o_rGradientInfo.maTextureTransform;
o_rGradientInfo.maBackTextureTransform.invert();
- o_rGradientInfo.maBackTextureTransform.translate(-0.5, -0.5);
- const double fHalfBorder((1.0 - fBorder) * 0.5);
-
- if(!fTools::equal(fHalfBorder, 0.0))
- {
- const double fFactor(1.0 / fHalfBorder);
- o_rGradientInfo.maBackTextureTransform.scale(fFactor, fFactor);
- }
}
namespace tools
diff --git a/basegfx/source/tools/keystoplerp.cxx b/basegfx/source/tools/keystoplerp.cxx
new file mode 100644
index 000000000000..883bfec6bc96
--- /dev/null
+++ b/basegfx/source/tools/keystoplerp.cxx
@@ -0,0 +1,107 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: canvastools.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.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_basegfx.hxx"
+
+#include "basegfx/tools/keystoplerp.hxx"
+#include <com/sun/star/uno/Sequence.hxx>
+
+#include <algorithm>
+
+static void validateInput(const std::vector<double>& rKeyStops)
+{
+ (void)rKeyStops;
+#ifdef DBG_UTIL
+ OSL_ENSURE( rKeyStops.size() > 1,
+ "KeyStopLerp::KeyStopLerp(): key stop vector must have two entries or more" );
+
+ // rKeyStops must be sorted in ascending order
+ for( ::std::size_t i=1, len=rKeyStops.size(); i<len; ++i )
+ {
+ if( rKeyStops[i-1] > rKeyStops[i] )
+ OSL_ENSURE( false,
+ "KeyStopLerp::KeyStopLerp(): time vector is not sorted in ascending order!" );
+ }
+#endif
+}
+
+namespace basegfx
+{
+ namespace tools
+ {
+ KeyStopLerp::KeyStopLerp( const std::vector<double>& rKeyStops ) :
+ maKeyStops(rKeyStops),
+ mnLastIndex(0)
+ {
+ validateInput(maKeyStops);
+ }
+
+ KeyStopLerp::KeyStopLerp( const ::com::sun::star::uno::Sequence<double>& rKeyStops ) :
+ maKeyStops(rKeyStops.getLength()),
+ mnLastIndex(0)
+ {
+ std::copy( rKeyStops.getConstArray(),
+ rKeyStops.getConstArray()+rKeyStops.getLength(),
+ maKeyStops.begin() );
+ validateInput(maKeyStops);
+ }
+
+ KeyStopLerp::ResultType KeyStopLerp::lerp(double fAlpha) const
+ {
+ // cached value still okay?
+ if( maKeyStops.at(mnLastIndex) < fAlpha ||
+ maKeyStops.at(mnLastIndex+1) >= fAlpha )
+ {
+ // nope, find new index
+ mnLastIndex = std::min<std::ptrdiff_t>(
+ maKeyStops.size()-2,
+ // range is ensured by max below
+ std::max<std::ptrdiff_t>(
+ 0,
+ std::distance( maKeyStops.begin(),
+ std::lower_bound( maKeyStops.begin(),
+ maKeyStops.end(),
+ fAlpha )) - 1 ));
+ }
+
+ // lerp between stop and stop+1
+ const double fRawLerp=
+ (fAlpha-maKeyStops.at(mnLastIndex)) /
+ (maKeyStops.at(mnLastIndex+1) - maKeyStops.at(mnLastIndex));
+
+ // clamp to permissible range (input fAlpha might be
+ // everything)
+ return ResultType(
+ mnLastIndex,
+ clamp(fRawLerp,0.0,1.0));
+ }
+ }
+}
diff --git a/basegfx/source/tools/makefile.mk b/basegfx/source/tools/makefile.mk
index c70b78be5d4b..0a0977f7305d 100755
--- a/basegfx/source/tools/makefile.mk
+++ b/basegfx/source/tools/makefile.mk
@@ -37,9 +37,11 @@ ENABLE_EXCEPTIONS=TRUE
# --- Files -------------------------------------
-SLOFILES= $(SLO)$/canvastools.obj \
+SLOFILES= $(SLO)$/b2dclipstate.obj \
+ $(SLO)$/canvastools.obj \
$(SLO)$/gradienttools.obj \
$(SLO)$/debugplotter.obj \
+ $(SLO)$/keystoplerp.obj \
$(SLO)$/liangbarsky.obj \
$(SLO)$/tools.obj \
$(SLO)$/unopolypolygon.obj
diff --git a/basegfx/test/basegfx1d.cxx b/basegfx/test/basegfx1d.cxx
index 5cc823d3daca..41ac65da56e3 100644
--- a/basegfx/test/basegfx1d.cxx
+++ b/basegfx/test/basegfx1d.cxx
@@ -30,7 +30,10 @@
#include "precompiled_basegfx.hxx"
// autogenerated file with codegen.pl
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
namespace basegfx1d
{
@@ -52,7 +55,6 @@ public:
void EmptyMethod()
{
// CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -65,13 +67,7 @@ public:
}; // class b1drange
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx1d::b1drange, "basegfx1d");
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx1d::b1drange);
} // namespace basegfx1d
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-NOADDITIONAL;
-
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/basegfx/test/basegfx2d.cxx b/basegfx/test/basegfx2d.cxx
index b169d35ed96a..31005a158982 100644
--- a/basegfx/test/basegfx2d.cxx
+++ b/basegfx/test/basegfx2d.cxx
@@ -30,7 +30,9 @@
#include "precompiled_basegfx.hxx"
// autogenerated file with codegen.pl
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
@@ -38,7 +40,9 @@
#include <basegfx/curve/b2dcubicbezier.hxx>
#include <basegfx/curve/b2dbeziertools.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
-#include <basegfx/range/b2dmultirange.hxx>
+#include <basegfx/polygon/b2dpolygonclipper.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/range/b2dpolyrange.hxx>
#include <basegfx/numeric/ftools.hxx>
#include <basegfx/color/bcolor.hxx>
#include <basegfx/color/bcolortools.hxx>
@@ -53,214 +57,6 @@ using namespace ::basegfx;
namespace basegfx2d
{
-/// Gets a random ordinal [0,n)
-inline double getRandomOrdinal( const ::std::size_t n )
-{
- return double(n) * rand() / (RAND_MAX + 1.0);
-}
-
-class b2dmultirange : public CppUnit::TestFixture
-{
-private:
- B2DMultiRange aDisjunctRanges;
- B2DMultiRange aEqualRanges;
- B2DMultiRange aIntersectionN;
- B2DMultiRange aIntersectionE;
- B2DMultiRange aIntersectionS;
- B2DMultiRange aIntersectionW;
- B2DMultiRange aIntersectionNE;
- B2DMultiRange aIntersectionSE;
- B2DMultiRange aIntersectionSW;
- B2DMultiRange aIntersectionNW;
- B2DMultiRange aRingIntersection;
- B2DMultiRange aComplexIntersections;
- B2DMultiRange aRandomIntersections;
-
-public:
- // initialise your test code values here.
- void setUp()
- {
- B2DRange aCenter(1.0, 1.0, -1.0, -1.0);
- B2DRange aOffside(9.0, 9.0, 11.0, 11.0);
- B2DRange aNorth(1.0, 0.0, -1.0, -2.0);
- B2DRange aSouth(1.0, 2.0, -1.0, 0.0);
- B2DRange aEast(0.0, 1.0, 2.0, -1.0);
- B2DRange aWest(-2.0, 1.0, 0.0, -1.0);
- B2DRange aNorthEast(0.0, 0.0, 2.0, -2.0);
- B2DRange aSouthEast(0.0, 0.0, 2.0, 2.0);
- B2DRange aSouthWest(0.0, 0.0, -2.0, 2.0);
- B2DRange aNorthWest(0.0, 0.0, -2.0, -2.0);
-
- B2DRange aNorth2(-1.5, 0.5, 1.5, 3.5);
- B2DRange aSouth2(-1.5, -0.5, 1.5, -3.5);
- B2DRange aEast2 (0.5, -1.5, 3.5, 1.5);
- B2DRange aWest2 (-0.5, -1.5,-3.5, 1.5);
-
- ::std::ofstream output("multirange_testcases.gnuplot");
- DebugPlotter aPlotter( "multirange testcases",
- output );
-
- aPlotter.plot( aCenter, "center" );
- aPlotter.plot( aOffside, "offside" );
- aPlotter.plot( aNorth, "north" );
- aPlotter.plot( aSouth, "south" );
- aPlotter.plot( aEast, "east" );
- aPlotter.plot( aWest, "west" );
- aPlotter.plot( aNorthEast, "northeast" );
- aPlotter.plot( aSouthEast, "southeast" );
- aPlotter.plot( aSouthWest, "southwest" );
- aPlotter.plot( aNorthWest, "northwest" );
-
- aDisjunctRanges.addRange( aCenter );
- aDisjunctRanges.addRange( aOffside );
-
- aEqualRanges.addRange( aCenter );
- aEqualRanges.addRange( aCenter );
-
- aIntersectionN.addRange( aCenter );
- aIntersectionN.addRange( aNorth );
-
- aIntersectionE.addRange( aCenter );
- aIntersectionE.addRange( aEast );
-
- aIntersectionS.addRange( aCenter );
- aIntersectionS.addRange( aSouth );
-
- aIntersectionW.addRange( aCenter );
- aIntersectionW.addRange( aWest );
-
- aIntersectionNE.addRange( aCenter );
- aIntersectionNE.addRange( aNorthEast );
-
- aIntersectionSE.addRange( aCenter );
- aIntersectionSE.addRange( aSouthEast );
-
- aIntersectionSW.addRange( aCenter );
- aIntersectionSW.addRange( aSouthWest );
-
- aIntersectionNW.addRange( aCenter );
- aIntersectionNW.addRange( aNorthWest );
-
- aRingIntersection.addRange( aNorth2 );
- aRingIntersection.addRange( aEast2 );
- aRingIntersection.addRange( aSouth2 );
- aRingIntersection.addRange( aWest2 );
-
- aComplexIntersections.addRange( aCenter );
- aComplexIntersections.addRange( aOffside );
- aComplexIntersections.addRange( aCenter );
- aComplexIntersections.addRange( aNorth );
- aComplexIntersections.addRange( aEast );
- aComplexIntersections.addRange( aSouth );
- aComplexIntersections.addRange( aWest );
- aComplexIntersections.addRange( aNorthEast );
- aComplexIntersections.addRange( aSouthEast );
- aComplexIntersections.addRange( aSouthWest );
- aComplexIntersections.addRange( aNorthWest );
-
-/*
- for( int i=0; i<10; ++i )
- {
- B2DRange aRandomRange(
- getRandomOrdinal( 10 ),
- getRandomOrdinal( 10 ),
- getRandomOrdinal( 10 ),
- getRandomOrdinal( 10 ) );
-
- aRandomIntersections.addRange( aRandomRange );
- }
-*/
- }
-
- void tearDown()
- {
- }
-
- ::basegfx::B2DPolyPolygon shiftPoly( int nCount,
- const ::basegfx::B2DPolyPolygon& rPoly )
- {
- B2DHomMatrix aMatrix;
- aMatrix.translate( nCount*4.0,
- 10.0-nCount*2.0 );
-
- ::basegfx::B2DPolyPolygon aRes( rPoly );
- aRes.transform( aMatrix );
-
- return aRes;
- }
-
- void getPolyPolygon()
- {
- ::std::ofstream output("multirange_getpolypolygon.gnuplot");
- DebugPlotter aPlotter( "multirange getPolyPolygon",
- output );
-
- B2DPolyPolygon result;
-
- aPlotter.plot( shiftPoly(
- 0,
- aDisjunctRanges.getPolyPolygon() ),
- "disjunct" );
- aPlotter.plot( shiftPoly(
- 1,
- aEqualRanges.getPolyPolygon() ),
- "equal" );
- aPlotter.plot( shiftPoly(
- 2,
- aIntersectionN.getPolyPolygon() ),
- "intersectionN" );
- aPlotter.plot( shiftPoly(
- 3,
- aIntersectionE.getPolyPolygon() ),
- "intersectionE" );
- aPlotter.plot( shiftPoly(
- 4,
- aIntersectionS.getPolyPolygon() ),
- "intersectionS" );
- aPlotter.plot( shiftPoly(
- 5,
- aIntersectionW.getPolyPolygon() ),
- "intersectionW" );
- aPlotter.plot( shiftPoly(
- 6,
- aIntersectionNE.getPolyPolygon() ),
- "intersectionNE" );
- aPlotter.plot( shiftPoly(
- 7,
- aIntersectionSE.getPolyPolygon() ),
- "intersectionSE" );
- aPlotter.plot( shiftPoly(
- 8,
- aIntersectionSW.getPolyPolygon() ),
- "intersectionSW" );
- aPlotter.plot( shiftPoly(
- 9,
- aIntersectionNW.getPolyPolygon() ),
- "intersectionNW" );
- aPlotter.plot( shiftPoly(
- 10,
- aRingIntersection.getPolyPolygon() ),
- "intersection ring" );
- aPlotter.plot( shiftPoly(
- 11,
- aComplexIntersections.getPolyPolygon() ),
- "intersection complex" );
- aPlotter.plot( shiftPoly(
- 12,
- aRandomIntersections.getPolyPolygon() ),
- "intersection random" );
-
- CPPUNIT_ASSERT_MESSAGE("getPolyPolygon", true );
- }
-
- // Change the following lines only, if you add, remove or rename
- // member functions of the current class,
- // because these macros are need by auto register mechanism.
-
- CPPUNIT_TEST_SUITE(b2dmultirange);
- CPPUNIT_TEST(getPolyPolygon);
- CPPUNIT_TEST_SUITE_END();
-}; // class b2dmultirange
class b2dsvgdimpex : public CppUnit::TestFixture
{
@@ -465,33 +261,6 @@ public:
CPPUNIT_ASSERT_MESSAGE("exporting complex polygon to SVG-D (round-trip)",
!aExport.compareToAscii(sExportString2));
- const B2DPolygon aCircle(
- tools::createPolygonFromEllipse( B2DPoint(4000,4000),
- 1000.0, 2000.0 ));
- aExport = tools::exportToSvgD( B2DPolyPolygon(aCircle), false, false);
-
- // count number of spaces, in lieu of a better way - no real
- // point in comparing with a gold standard, as fractional
- // parts of the coordinates will differ between systems.
- sal_Int32 nIndex=0, nCount=0;
- do
- {
- rtl::OUString aToken = aExport.getToken( 0, ' ', nIndex );
- ++nCount;
- }
- while ( nIndex >= 0 );
-
- // Adapted number of spaces to 50 and 67 because of the new circle construction
- // methods which produce more points and thus more spaces, too. Use both since
- // depending on float precision and the getContinuity() implemetation using
- // fTools::equal, linux and mac produce more 'C' than 'S' statements, while WIN32
- // uses more 'S' statements (as it should be for circles)
-#ifdef S390X
- CPPUNIT_ASSERT_MESSAGE("exporting to circle does not produce the expected number of coordinates", nCount==61 );
-#else
- CPPUNIT_ASSERT_MESSAGE("exporting to circle does not produce the expected number of coordinates", nCount==67 || nCount==50 );
-#endif
-
const B2DPolygon aRect(
tools::createPolygonFromRect( B2DRange(0.0,0.0,4000.0,4000.0) ));
aExport = tools::exportToSvgD( B2DPolyPolygon(aRect), false, false);
@@ -510,6 +279,45 @@ public:
CPPUNIT_TEST_SUITE_END();
}; // class b2dsvgdimpex
+class b2dpolyrange : public CppUnit::TestFixture
+{
+private:
+public:
+ void setUp()
+ {}
+
+ void tearDown()
+ {}
+
+ void check()
+ {
+ B2DPolyRange aRange;
+ aRange.appendElement(B2DRange(0,0,1,1),ORIENTATION_POSITIVE);
+ aRange.appendElement(B2DRange(2,2,3,3),ORIENTATION_POSITIVE);
+
+ CPPUNIT_ASSERT_MESSAGE("simple poly range - count",
+ aRange.count() == 2);
+ CPPUNIT_ASSERT_MESSAGE("simple poly range - first element",
+ aRange.getElement(0).head == B2DRange(0,0,1,1));
+ CPPUNIT_ASSERT_MESSAGE("simple poly range - second element",
+ aRange.getElement(1).head == B2DRange(2,2,3,3));
+
+ // B2DPolyRange relies on correctly orientated rects
+ const B2DRange aRect(0,0,1,1);
+ CPPUNIT_ASSERT_MESSAGE("createPolygonFromRect - correct orientation",
+ tools::getOrientation(
+ tools::createPolygonFromRect(aRect)) == ORIENTATION_POSITIVE );
+ }
+
+ // Change the following lines only, if you add, remove or rename
+ // member functions of the current class,
+ // because these macros are need by auto register mechanism.
+
+ CPPUNIT_TEST_SUITE(b2dpolyrange);
+ CPPUNIT_TEST(check);
+ CPPUNIT_TEST_SUITE_END();
+};
+
class b2dbeziertools : public CppUnit::TestFixture
{
private:
@@ -758,7 +566,6 @@ public:
{
// this is demonstration code
// CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -1110,7 +917,6 @@ public:
// insert your test code here.
void EmptyMethod()
{
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -1140,7 +946,6 @@ public:
void EmptyMethod()
{
// CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -1283,6 +1088,14 @@ public:
aNonRect4.append( B2DPoint(1,1) );
aNonRect4.append( B2DPoint(0,1) );
+ B2DPolygon aNonRect5;
+ aNonRect5.append( B2DPoint(0,0) );
+ aNonRect5.append( B2DPoint(1,0) );
+ aNonRect5.append( B2DPoint(1,1) );
+ aNonRect5.append( B2DPoint(0,1) );
+ aNonRect5.setControlPoints(1,B2DPoint(1,0),B2DPoint(-11,0));
+ aNonRect5.setClosed(true);
+
CPPUNIT_ASSERT_MESSAGE("checking rectangle-ness of rectangle 1",
tools::isRectangle( aRect1 ));
CPPUNIT_ASSERT_MESSAGE("checking rectangle-ness of rectangle 2",
@@ -1295,6 +1108,8 @@ public:
!tools::isRectangle( aNonRect3 ));
CPPUNIT_ASSERT_MESSAGE("checking non-rectangle-ness of polygon 4",
!tools::isRectangle( aNonRect4 ));
+ CPPUNIT_ASSERT_MESSAGE("checking non-rectangle-ness of polygon 5",
+ !tools::isRectangle( aNonRect5 ));
}
// Change the following lines only, if you add, remove or rename
@@ -1322,7 +1137,6 @@ public:
// insert your test code here.
void EmptyMethod()
{
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -1352,7 +1166,6 @@ public:
void EmptyMethod()
{
// CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -1380,7 +1193,6 @@ public:
// insert your test code here.
void EmptyMethod()
{
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -1410,7 +1222,6 @@ public:
void EmptyMethod()
{
// CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -1438,7 +1249,6 @@ public:
// insert your test code here.
void EmptyMethod()
{
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -1502,6 +1312,8 @@ public:
tools::rgb2hsl(maMagenta) == BColor(300,1,0.5));
CPPUNIT_ASSERT_MESSAGE("cyan",
tools::rgb2hsl(maCyan) == BColor(180,1,0.5));
+ CPPUNIT_ASSERT_MESSAGE("third hue case",
+ tools::rgb2hsl(BColor(0,0.5,1)) == BColor(210,1,0.5));
CPPUNIT_ASSERT_MESSAGE("roundtrip white",
tools::hsl2rgb(tools::rgb2hsl(maWhite)) == maWhite);
@@ -1623,21 +1435,21 @@ public:
}; // class b2dvector
// -----------------------------------------------------------------------------
-//CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2dmultirange, "basegfx2d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2dsvgdimpex, "basegfx2d");
-//CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2dbeziertools, "basegfx2d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2dcubicbezier, "basegfx2d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2dhommatrix, "basegfx2d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2dhompoint, "basegfx2d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2dpoint, "basegfx2d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2dpolygon, "basegfx2d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2dpolygontools, "basegfx2d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2dpolypolygon, "basegfx2d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2dquadraticbezier, "basegfx2d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2drange, "basegfx2d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2dtuple, "basegfx2d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::b2dvector, "basegfx2d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx2d::bcolor, "basegfx2d");
+
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dsvgdimpex);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dpolyrange);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dcubicbezier);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dhommatrix);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dhompoint);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dpoint);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dpolygon);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dpolygontools);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dpolypolygon);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dquadraticbezier);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2drange);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dtuple);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::b2dvector);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::bcolor);
} // namespace basegfx2d
diff --git a/basegfx/test/basegfx3d.cxx b/basegfx/test/basegfx3d.cxx
index 23d3542e2d4a..a16132e0810f 100644
--- a/basegfx/test/basegfx3d.cxx
+++ b/basegfx/test/basegfx3d.cxx
@@ -30,7 +30,9 @@
#include "precompiled_basegfx.hxx"
// autogenerated file with codegen.pl
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
namespace basegfx3d
{
@@ -52,7 +54,6 @@ public:
void EmptyMethod()
{
// CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -80,7 +81,6 @@ public:
// insert your test code here.
void EmptyMethod()
{
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -110,7 +110,6 @@ public:
void EmptyMethod()
{
// CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -138,7 +137,6 @@ public:
// insert your test code here.
void EmptyMethod()
{
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -168,7 +166,6 @@ public:
void EmptyMethod()
{
// CPPUNIT_ASSERT_MESSAGE("a message", 1 == 1);
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -196,7 +193,6 @@ public:
// insert your test code here.
void EmptyMethod()
{
- CPPUNIT_ASSERT_STUB();
}
// Change the following lines only, if you add, remove or rename
@@ -209,12 +205,12 @@ public:
}; // class b3dvector
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx3d::b3dhommatrix, "basegfx3d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx3d::b3dhompoint, "basegfx3d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx3d::b3dpoint, "basegfx3d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx3d::b3drange, "basegfx3d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx3d::b3dtuple, "basegfx3d");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(basegfx3d::b3dvector, "basegfx3d");
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx3d::b3dhommatrix);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx3d::b3dhompoint);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx3d::b3dpoint);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx3d::b3drange);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx3d::b3dtuple);
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx3d::b3dvector);
} // namespace basegfx3d
diff --git a/basegfx/test/basegfxtools.cxx b/basegfx/test/basegfxtools.cxx
new file mode 100644
index 000000000000..1a8b97a559b2
--- /dev/null
+++ b/basegfx/test/basegfxtools.cxx
@@ -0,0 +1,110 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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_basegfx.hxx"
+// autogenerated file with codegen.pl
+
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+
+#include <basegfx/tools/keystoplerp.hxx>
+#include <basegfx/numeric/ftools.hxx>
+
+#include <boost/tuple/tuple.hpp>
+
+using namespace ::basegfx;
+using namespace ::boost::tuples;
+
+namespace basegfxtools
+{
+
+class KeyStopLerpTest : public CppUnit::TestFixture
+{
+ tools::KeyStopLerp maKeyStops;
+
+ static std::vector<double> getTestVector()
+ {
+ std::vector<double> aStops(3);
+ aStops[0] = 0.1;
+ aStops[1] = 0.5;
+ aStops[2] = 0.9;
+ return aStops;
+ }
+
+public:
+ KeyStopLerpTest() :
+ maKeyStops(getTestVector())
+ {}
+
+ void setUp()
+ {}
+
+ void tearDown()
+ {}
+
+ void test()
+ {
+ double fAlpha;
+ std::ptrdiff_t nIndex;
+
+ tie(nIndex,fAlpha) = maKeyStops.lerp(-1.0);
+ CPPUNIT_ASSERT_MESSAGE("-1.0", nIndex==0 && fAlpha==0.0);
+
+ tie(nIndex,fAlpha) = maKeyStops.lerp(0.1);
+ CPPUNIT_ASSERT_MESSAGE("0.1", nIndex==0 && fAlpha==0.0);
+
+ tie(nIndex,fAlpha) = maKeyStops.lerp(0.3);
+ CPPUNIT_ASSERT_MESSAGE("0.3", nIndex==0 && fTools::equal(fAlpha,0.5));
+
+ tie(nIndex,fAlpha) = maKeyStops.lerp(0.5);
+ CPPUNIT_ASSERT_MESSAGE("0.5", nIndex==0 && fTools::equal(fAlpha,1.0));
+
+ tie(nIndex,fAlpha) = maKeyStops.lerp(0.51);
+ CPPUNIT_ASSERT_MESSAGE("0.51", nIndex==1 && fTools::equal(fAlpha,0.025));
+
+ tie(nIndex,fAlpha) = maKeyStops.lerp(0.9);
+ CPPUNIT_ASSERT_MESSAGE("0.51", nIndex==1 && fTools::equal(fAlpha,1.0));
+
+ tie(nIndex,fAlpha) = maKeyStops.lerp(1.0);
+ CPPUNIT_ASSERT_MESSAGE("0.51", nIndex==1 && fAlpha==1.0);
+ }
+
+ // Change the following lines only, if you add, remove or rename
+ // member functions of the current class,
+ // because these macros are need by auto register mechanism.
+
+ CPPUNIT_TEST_SUITE(KeyStopLerpTest);
+ CPPUNIT_TEST(test);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+// -----------------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfxtools::KeyStopLerpTest);
+} // namespace basegfxtools
diff --git a/basegfx/test/boxclipper.cxx b/basegfx/test/boxclipper.cxx
new file mode 100644
index 000000000000..d52218a51ee0
--- /dev/null
+++ b/basegfx/test/boxclipper.cxx
@@ -0,0 +1,419 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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_basegfx.hxx"
+// autogenerated file with codegen.pl
+
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+
+#include <basegfx/matrix/b2dhommatrix.hxx>
+#include <basegfx/curve/b2dcubicbezier.hxx>
+#include <basegfx/curve/b2dbeziertools.hxx>
+#include <basegfx/range/b2dpolyrange.hxx>
+#include <basegfx/polygon/b2dpolygon.hxx>
+#include <basegfx/polygon/b2dpolygontools.hxx>
+#include <basegfx/polygon/b2dpolypolygontools.hxx>
+#include <basegfx/polygon/b2dpolypolygoncutter.hxx>
+#include <basegfx/polygon/b2dpolygonclipper.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/numeric/ftools.hxx>
+
+#include <boost/bind.hpp>
+
+using namespace ::basegfx;
+
+
+namespace basegfx2d
+{
+/// Gets a random ordinal [0,n)
+inline double getRandomOrdinal( const ::std::size_t n )
+{
+ // use this one when displaying polygons in OOo, which still sucks
+ // great rocks when trying to import non-integer svg:d attributes
+ // return sal_Int64(double(n) * rand() / (RAND_MAX + 1.0));
+ return double(n) * rand() / (RAND_MAX + 1.0);
+}
+
+inline bool compare(const B2DPoint& left, const B2DPoint& right)
+{
+ return left.getX()<right.getX()
+ || (left.getX()==right.getX() && left.getY()<right.getY());
+}
+
+
+class boxclipper : public CppUnit::TestFixture
+{
+private:
+ B2DPolyRange aDisjunctRanges;
+ B2DPolyRange aEqualRanges;
+ B2DPolyRange aIntersectionN;
+ B2DPolyRange aIntersectionE;
+ B2DPolyRange aIntersectionS;
+ B2DPolyRange aIntersectionW;
+ B2DPolyRange aIntersectionNE;
+ B2DPolyRange aIntersectionSE;
+ B2DPolyRange aIntersectionSW;
+ B2DPolyRange aIntersectionNW;
+ B2DPolyRange aRingIntersection;
+ B2DPolyRange aRingIntersection2;
+ B2DPolyRange aRingIntersectExtraStrip;
+ B2DPolyRange aComplexIntersections;
+ B2DPolyRange aRandomIntersections;
+
+public:
+ // initialise your test code values here.
+ void setUp()
+ {
+ B2DRange aCenter(100, 100, -100, -100);
+ B2DRange aOffside(800, 800, 1000, 1000);
+ B2DRange aNorth(100, 0, -100, -200);
+ B2DRange aSouth(100, 200, -100, 0);
+ B2DRange aEast(0, 100, 200, -100);
+ B2DRange aWest(-200, 100, 0, -100);
+ B2DRange aNorthEast(0, 0, 200, -200);
+ B2DRange aSouthEast(0, 0, 200, 200);
+ B2DRange aSouthWest(0, 0, -200, 200);
+ B2DRange aNorthWest(0, 0, -200, -200);
+
+ B2DRange aNorth2(-150, 50, 150, 350);
+ B2DRange aSouth2(-150, -50, 150, -350);
+ B2DRange aEast2 (50, -150, 350, 150);
+ B2DRange aWest2 (-50, -150,-350, 150);
+
+ aDisjunctRanges.appendElement( aCenter, ORIENTATION_NEGATIVE );
+ aDisjunctRanges.appendElement( aOffside, ORIENTATION_NEGATIVE );
+
+ aEqualRanges.appendElement( aCenter, ORIENTATION_NEGATIVE );
+ aEqualRanges.appendElement( aCenter, ORIENTATION_NEGATIVE );
+
+ aIntersectionN.appendElement( aCenter, ORIENTATION_NEGATIVE );
+ aIntersectionN.appendElement( aNorth, ORIENTATION_NEGATIVE );
+
+ aIntersectionE.appendElement( aCenter, ORIENTATION_NEGATIVE );
+ aIntersectionE.appendElement( aEast, ORIENTATION_NEGATIVE );
+
+ aIntersectionS.appendElement( aCenter, ORIENTATION_NEGATIVE );
+ aIntersectionS.appendElement( aSouth, ORIENTATION_NEGATIVE );
+
+ aIntersectionW.appendElement( aCenter, ORIENTATION_NEGATIVE );
+ aIntersectionW.appendElement( aWest, ORIENTATION_NEGATIVE );
+
+ aIntersectionNE.appendElement( aCenter, ORIENTATION_NEGATIVE );
+ aIntersectionNE.appendElement( aNorthEast, ORIENTATION_NEGATIVE );
+
+ aIntersectionSE.appendElement( aCenter, ORIENTATION_NEGATIVE );
+ aIntersectionSE.appendElement( aSouthEast, ORIENTATION_NEGATIVE );
+
+ aIntersectionSW.appendElement( aCenter, ORIENTATION_NEGATIVE );
+ aIntersectionSW.appendElement( aSouthWest, ORIENTATION_NEGATIVE );
+
+ aIntersectionNW.appendElement( aCenter, ORIENTATION_NEGATIVE );
+ aIntersectionNW.appendElement( aNorthWest, ORIENTATION_NEGATIVE );
+
+ aRingIntersection.appendElement( aNorth2, ORIENTATION_NEGATIVE );
+ aRingIntersection.appendElement( aEast2, ORIENTATION_NEGATIVE );
+ aRingIntersection.appendElement( aSouth2, ORIENTATION_NEGATIVE );
+
+ aRingIntersection2 = aRingIntersection;
+ aRingIntersection2.appendElement( aWest2, ORIENTATION_NEGATIVE );
+
+ aRingIntersectExtraStrip = aRingIntersection2;
+ aRingIntersectExtraStrip.appendElement( B2DRange(0, -25, 200, 25),
+ ORIENTATION_NEGATIVE );
+
+ aComplexIntersections.appendElement( aCenter, ORIENTATION_NEGATIVE );
+ aComplexIntersections.appendElement( aOffside, ORIENTATION_NEGATIVE );
+ aComplexIntersections.appendElement( aCenter, ORIENTATION_NEGATIVE );
+ aComplexIntersections.appendElement( aNorth, ORIENTATION_NEGATIVE );
+ aComplexIntersections.appendElement( aEast, ORIENTATION_NEGATIVE );
+ aComplexIntersections.appendElement( aSouth, ORIENTATION_NEGATIVE );
+ aComplexIntersections.appendElement( aWest, ORIENTATION_NEGATIVE );
+ aComplexIntersections.appendElement( aNorthEast, ORIENTATION_NEGATIVE );
+ aComplexIntersections.appendElement( aSouthEast, ORIENTATION_NEGATIVE );
+ aComplexIntersections.appendElement( aSouthWest, ORIENTATION_NEGATIVE );
+ aComplexIntersections.appendElement( aNorthWest, ORIENTATION_NEGATIVE );
+
+#ifdef GENERATE_RANDOM
+ for( int i=0; i<800; ++i )
+ {
+ B2DRange aRandomRange(
+ getRandomOrdinal( 1000 ),
+ getRandomOrdinal( 1000 ),
+ getRandomOrdinal( 1000 ),
+ getRandomOrdinal( 1000 ) );
+
+ aRandomIntersections.appendElement( aRandomRange, ORIENTATION_NEGATIVE );
+ }
+#else
+ const char* randomSvg="m394 783h404v57h-404zm-197-505h571v576h-571zm356-634h75v200h-75zm-40-113h403v588h-403zm93-811h111v494h-111zm-364-619h562v121h-562zm-134-8h292v27h-292zm110 356h621v486h-621zm78-386h228v25h-228zm475-345h201v201h-201zm-2-93h122v126h-122zm-417-243h567v524h-567zm-266-738h863v456h-863zm262-333h315v698h-315zm-328-826h43v393h-43zm830-219h120v664h-120zm-311-636h221v109h-221zm-500 137h628v19h-628zm681-94h211v493h-211zm-366-646h384v355h-384zm-189-199h715v247h-715zm165-459h563v601h-563zm258-479h98v606h-98zm270-517h65v218h-65zm-44-259h96v286h-96zm-599-202h705v468h-705zm216-803h450v494h-450zm-150-22h26v167h-26zm-55-599h50v260h-50zm190-278h490v387h-490zm-290-453h634v392h-634zm257 189h552v300h-552zm-151-690h136v455h-136zm12-597h488v432h-488zm501-459h48v39h-48zm-224-112h429v22h-429zm-281 102h492v621h-492zm519-158h208v17h-208zm-681-563h56v427h-56zm126-451h615v392h-615zm-47-410h598v522h-598zm-32 316h79v110h-79zm-71-129h18v127h-18zm126-993h743v589h-743zm211-430h428v750h-428zm61-554h100v220h-100zm-353-49h658v157h-658zm778-383h115v272h-115zm-249-541h119v712h-119zm203 86h94v40h-94z";
+ B2DPolyPolygon randomPoly;
+ tools::importFromSvgD(
+ randomPoly,
+ rtl::OUString::createFromAscii(randomSvg));
+ std::for_each(randomPoly.begin(),
+ randomPoly.end(),
+ boost::bind(
+ &B2DPolyRange::appendElement,
+ boost::ref(aRandomIntersections),
+ boost::bind(
+ &B2DPolygon::getB2DRange,
+ _1),
+ ORIENTATION_NEGATIVE,
+ 1));
+#endif
+ }
+
+ void tearDown()
+ {
+ }
+
+ B2DPolyPolygon normalizePoly( const B2DPolyPolygon& rPoly )
+ {
+ B2DPolyPolygon aRes;
+ for( sal_uInt32 i=0; i<rPoly.count(); ++i )
+ {
+ B2DPolygon aTmp=rPoly.getB2DPolygon(i);
+ if( ORIENTATION_NEGATIVE == tools::getOrientation(aTmp) )
+ aTmp.flip();
+
+ aTmp=tools::removeNeutralPoints(aTmp);
+
+ B2DPoint* pSmallest=0;
+ for(B2DPoint* pCurr=aTmp.begin(); pCurr!=aTmp.end(); ++pCurr)
+ {
+ if( ! pSmallest || compare(*pCurr, *pSmallest) )
+ {
+ pSmallest=pCurr;
+ }
+ }
+
+ if( pSmallest )
+ std::rotate(aTmp.begin(),pSmallest,aTmp.end());
+
+ aRes.append(aTmp);
+ }
+
+ // boxclipper & generic clipper disagree slightly on area-less
+ // polygons (one or two points only)
+ aRes = tools::stripNeutralPolygons(aRes);
+
+ // now, sort all polygons with increasing 0th point
+ std::sort(aRes.begin(),
+ aRes.end(),
+ boost::bind(
+ &compare,
+ boost::bind(
+ &B2DPolygon::getB2DPoint,
+ _1,0),
+ boost::bind(
+ &B2DPolygon::getB2DPoint,
+ _2,0)));
+
+ return aRes;
+ }
+
+ void verifyPoly(const char* sName, const char* sSvg, const B2DPolyRange& toTest)
+ {
+ B2DPolyPolygon aTmp1;
+ CPPUNIT_ASSERT_MESSAGE(sName,
+ tools::importFromSvgD(
+ aTmp1,
+ rtl::OUString::createFromAscii(sSvg)));
+
+ const rtl::OUString aSvg=
+ tools::exportToSvgD(toTest.solveCrossovers());
+ B2DPolyPolygon aTmp2;
+ CPPUNIT_ASSERT_MESSAGE(sName,
+ tools::importFromSvgD(
+ aTmp2,
+ aSvg));
+
+ CPPUNIT_ASSERT_MESSAGE(
+ sName,
+ normalizePoly(aTmp2) == normalizePoly(aTmp1));
+ }
+
+ void verifyPoly()
+ {
+ const char* disjunct="m100 100v-200h-200v200zm1100 900v-200h-200v200z";
+ const char* equal="m100 100v-200h-200v200zm200 0v-200h-200v200h200z";
+ const char* intersectionN="m100 0v-100h-200v100zm200 100v-200-100h-200v100 200z";
+ const char* intersectionE="m100 100v-200h-100v200zm200 0v-200h-200-100v200h100z";
+ const char* intersectionS="m100 100v-200h-200v200 100h200v-100zm0 0v-100h-200v100z";
+ const char* intersectionW="m0 100v-200h-100v200zm200 0v-200h-200-100v200h100z";
+ const char* intersectionNE="m100 0v-100h-100v100zm200 0v-200h-200v100h-100v200h200v-100z";
+ const char* intersectionSE="m200 200v-200h-100v-100h-200v200h100v100zm100-100v-100h-100v100z";
+ const char* intersectionSW="m0 100v-100h-100v100zm200 0v-200h-200v100h-100v200h200v-100z";
+ const char* intersectionNW="m100 100v-200h-100v-100h-200v200h100v100zm100-100v-100h-100v100z";
+ const char* ringIntersection="m150 150v-100h-100v100zm300 0v-300h-200v-200h-300v300h200v100h-200v300h300v-200zm0-200v-100h-100v100z";
+ const char* ringIntersection2="m-50-50v-100h-100v100zm100 200v-100h-100v100zm500 0v-300h-200v-200h-300v200h-200v300h200v200h300v-200zm-200-100v-100h100v100zm100-100v-100h-100v100zm100 200v-100h-100v100z";
+ const char* ringIntersectExtraStrip="m-50-50v-100h-100v100zm100 200v-100h-100v100zm500 0v-300h-200v-200h-300v200h-200v300h200v200h300v-200zm-200-100v-100h100v25h-50v50h50v25zm150-25v-50h-150v50zm100-75v-100h-100v100zm100 200v-100h-100v100z";
+ // TODO: old clipper impl. debug difference
+ //const char* complexIntersections="m100 0h-100v-100 100h-100 100v100-100zm0 0zm200 0h-100v-100h-100v-100 100h-100v100h-100 100v100h100v100-100h100v-100zm0 0h-100v-100 100h-100 100v100-100h100zm0 0v-100h-100-100v100 100h100 100v-100zm100 0v-100h-100v-100h-100-100v100h-100v100 100h100v100h100 100v-100h100v-100zm-200 0zm100 0v-100h-100-100v100 100h100 100v-100zm100 100v-200-100h-200-100-100v100 200 100h100 100 200v-100zm-200-100zm1000 1000v-200h-200v200z";
+ const char* complexIntersections="m0 0zm0 0zm0 0zm0 0v-100 100h-100 100v100-100h100zm-100 0v-100 100h-100 100v100-100h100zm0 0v-100h-100-100v100 100h100 100v-100zm0 0v-100h-100-100v100 100h100 100v-100zm0 0v-100h-100v-100 100h-100v100h-100 100v100h100v100-100h100v-100h100zm-100-100v-100h-100-100v100h-100v100 100h100v100h100 100v-100h100v-100-100zm0 0v-100h-200-100-100v100 200 100h100 100 200v-100-200zm600 900v200h200v-200z";
+ const char* randomIntersections="m63 457v-393h-43v393zm114 63v-8h-48v8zm-14 477v-127h-18v127zm693-923v-5h-119v5zm-260 457v-1h-14v1zm-220-375v-27h-8v27zm78 755v-22h-7v22zm203-774v-8h-158v8zm-108 375v-17h23v17zm813-19v-189h-21v-12h-26v-54h-17v-69h-25v-22h-62v-73h104v-5h-104-15v-17h-49v-1h-8v-16h-119v16h-386v18h-38-24v34h-23v26h-23v-26h-8v26h-18v27h18v339h8v-339h23v339h8v17h-8v13h8v5h-8v1h8v42h15v20h17v94h18 3v224h165v39h130v2h75v4h98v-4h153v-2h77v-20h4v-28h11v-218h-11v-27h3v-1h8v-17h-8v-63h8v-51h18v-32zm-581 32v-13h-14v13zm-78-78v-7h-32v7zm124 14v-21h-14v21zm595 32v-189h-26v-12h-4v-9h-13v-45h-13v-10h-12v-59h-62v-22h-26v-10h11v-63h15v-5h-15-49v-17h-8v-1h-119v1h-107v17h-279-38v34h-24v26h-23v27h23v284h-15v55h15v17h-15v13h15v5h-15v1h15v42h17v20h18v94h3 14v62h8v48h90v32h18v61h35v21h8v2h122v37h75v2h98v-2h153v-20h77v-28h4v-29h5v-40h-5v-149h-1v-27h1v-1h3v-17h-3v-46h3v-17-51h8v-32zm-563 2v-13h-14v13zm198 30v-13h-39v13zm204-43v-21h3v21zm-168-21v-21h-39v21zm306 0v-21h-5v21zm178 115v-272h-20v-12h-2v-54h-21v-164h1v-22h-27v-48h-743v47h-23v18h-71v24h-8v419h-39v19h60v156h66 32v202h-72v110h79v-88h11v39h3v48h621v-14h96v-82h35v-326zm-570-420v-4h-156v4zm63 481v-18h-11v18zm72 0v-25h-14v25zm465-112v-13h-5v13zm-46-43v-21h1v21zm-37-21v-21h-12v21zm-352 21v-21h23v21zm-23 30v-17h23v17zm-23 18v-5h23v5zm-23 82v-19h23v19zm272 75v-3h-35v3zm-76-192v-13h-39v13zm150 30v-13h-35v13zm-76 6v-1h-39v1zm11 106v-25h-11v25zm150 160v-14h-75v14zm318-304v-11h-13v-43h-2v-2h-10v-37h-4v37h-27v3h-31v-3-37h-5v37h-43v3h-2v21h2v21h-2v30h-1v-30h-8v-21h8v-21h-8v-3h-5v-62h5v-11h-5v-29h-8v-52h-15v-17-38h-15v-52h-89v16h-22v36h-175v55h-15v1h-25v51h-23v-41h-14v41h-2v105h-4v21h4v21h-4v13h4v17h-4-18v13h18v5h-18v1h18v42h4v11h2v9h14v-9h23v9h40v19h-40v25h40v2h82v2h75v43h-75v3h75 40v60h35v-60h23 34 12 15v-3h-15v-43h15v-48h10v-37h11v-31h1v1h45v30h5v-30h20v-1h11v1h8v30h19v20h3v-20h1v-30h10v-1h2v-32zm-146-329v-1h-2v1zm-117 211v-11 11zm-76 0v-11h-13v11zm13 65v-65h1v65zm-1 42v-21h1v16h35v5zm-36 30v-17h36v17zm-36 18v-5h36v5zm180-5v-13h-13v-17h5v-13h-5v-21h5v-21h-5v-3h-8v-62h8v-11h-8v-29h-9v-51h-6v-1-17h-15v-38h-54v-36h-35v36h-22v38h-67v17h-108v1h-15v51h-25v105h-23v-105h-14v105h-2v21h2v21h-2v13h2v17h-2-4v13h4v5h-4v1h4v42h2v11h14v-11h23v11h40v9h82v19h-82v25h82v2h75v2h40v43h-40v3h40 35 23v-3h-23v-43h23v-2h34v2h12v-2h6v-46h9v-20h8v-17h2v-26h-2v-5zm-127-64v-21 21zm89 51v-17h3v17zm-57-17v-13h-35v13zm58 61v-26h-19v-5h19v-13h-23v-17h23v-13h-23v-21h23v-21h-23v-65h23v-11h-23v-14h-35v-15 15h-22v14h-18v11h18v65h-18v21h18v16h22v5h-22v13h22v17h-22-18v13h18v5h-18v1h18v25h22v17h35v-17zm0-25v-1h-35v1zm-22-390v6h-175v5h-31v-15h228v4zm344 352v-189h-2v-12h-21v-54h-26v-164h26v-5h-26v-17h-119v-36h-562v35h-62v18h-23v34h-23v-10h-48v419h-8v8h8v5h71v5h-58v1h58v42h8v114h32 18v224h3v39h165v34h456v-32h77v-2h4v-20h11v-28h4v-218h-4v-28h36v-17h-36v-63h39v-83zm-50 0v-11h-1v-43h-3v-2h-6v-39h-4v-34h-13v-60h-12v-12h-31v72h-31v-72-9h-59v-17-38h-5v-59h-8v-5h8v-1h-8v-16h-2v16h-13v-11h-15v-5h-89v5h-22v11h-175v6h-15v7h-25v16h-43v36h-18v66h-54v-107h-32v107h-4v41h-8v105h-6v7h6v14h8v21h-8v13h8v17h-8-14v13h14v5h-14v1h14v42h8v20h90v19h-34v7h-15v68h26v-50h23v50h18 4v62h16v-62h15v110h8v10h3v22h119v11h75v50h75v-50h23v-11h34v11h48v-11h30v-22h21v-120h20v-3h11v3h30v-3h13-13v-27h13v-1h17v-17h-17v-46h17v-17h6v-51h3v-32zm-256-32v-21h-35v-65h35v-11h-35v-14 14h-22v11h22v65h-22v21h22v16-16zm89 69v-5h3v5zm-3 26v-26h-31v-5h31v-13h-31v-17h31v-13h-31v-21h31v-21h-31v-65h31v-11h-31v-14h-23v-15h-35v-51 51h-22v15h-18v14h-35v11h35v65h-35v21h35v16h18v5h-18v13h18v17h-18-36-39-61v13h61v5h-61v1h61v25h39v-25h36v25h18v17h22v11h35v-11h23v-17zm-19-25v-1h-4v-5h4v-13h-4-35-22v13h22v5h-22v1h22v25h35v-25zm23 252v-36h34v36zm-34-99v-43h34v43zm35-128v-26h-8v-5h8v-13h-8v-17h8v-13h-8v-21h8v-21h-8v-3h-9v-62h9v-11h-9v-29h-6v-51-1h-15v-17h-54v-38h-35v38h-22v11h-53v6h-14v1h-108v51h-15v105h-25v21h25v21h-25v13h25v17h-25-23-14-2v13h2v5h-2v1h2v42h14v-42h23v42h40v11h82v9h75v46h40v2h35v-2h23v-4h31v-42h3v46h12v-46h6v-20h9v-17zm-15-61v-13h-12v13zm12 30v-13h-12v13zm12 31v-26h-12v26zm12 131v-3h-12v3zm12 110v-14h-12v14zm27-241v-26h-9v-5h9v-13h-9v-17h9v-13h-9v-21h9v-21h-9v-3h-6v-62h6v-11h-6v-29-51h-15v-1h-54v-17h-35v11h-22v6h-53v1h-14v51h-108v105h-15v21h15v21h-15v13h15v17h-15-25v13h25v5h-25v1h25v25h15v17h21v6h61v5h75v9h18v42h22v4h35v-4h23v-42h31v-9h3v9h12v-9-11h6v-17zm0 0v-26h-6v-5h6v-13h-6v-17h6v-13h-6v-21h6v-21h-6v-3-62-11-29h-15v-51h-54v-1h-35v-6 6h-22v1h-53v51h-14v24h-87v81h-21v21h21v21h-21v13h21v17h-21-15v13h15v5h-15v1h15v25h21v17h61v6h39v-6h36v11h18v9h22v42h35v-42h23v-9h31v-11h3v11h12v-11-17zm0 0v-26-5-13-17-13-21-21-3h-12v3h-3v-65h15v-11h-15v-29h-54v-51h-35v-1 1h-22v51h-53v29h-1v-5h-13v5h-26v76h-61v21h61v21h-61v13h61v17h-61-21v13h21v5h-21v1h21v25h61v17h39v-17h36v17h18v11h22v9h35v-9h23v-11h31v-17h3v17h12v-17zm15-419v-12h-2v12zm186 356v-56h-8v-133h-4v-12h-13v-9h-13v-45h-12v-10h-62v-59-6h-26v-16h-33v-10h33v-12h-33v-22h-5v-29h49v-5h-49-8v-17h-119v17h-107-279v34h-38v26h-24v27h24v179h-7v105h-17v55h17v17h-17v13h17v5h-17v1h17v42h18v20h3v94h14 8v62h41v37h26v-37h23v48h18v32h35v61h8v21h122v2h75v37h98v-37h34v17h119v-57h11v29h66v-29h4v-40h-4v-26h3v-123h-3v-27h3v-1h1v-17h-1v-46h1v-17h3v-51-32zm0 0v-54h-4v-2h-3v-73h-10v-60h-13v-12h-12v-9h-31v9h-31v-9-55h-59v-59h-5v-5h5v-1h-5v-16h-8v-10h8v-12h-8v-22h-119v34h117v10h-28v-6h-89v6h-22v5h-175v11h-40v13h-147v11h-4v107h-8v41h-6v105h-22v21h28v21h-17v13h17v17h-14-3v13h3v5h-3v1h3v42h14v20h8v94h41 26 23 18v62h4v48h31v10h8v22h3v11h119v50h75v21h98v-71h34v71h48v-71h30v-11h21v-22h20v-120h11v120h43v-123h17-17v-27h17v-1h6v-17h-6v-46h6v-17h3v-51h1v-32zm-4 0v-11h-6v-43h-4v-2h-13v-39h-12v-34h-4v34h-27v2h-31v-2-34h-48v36h-2v37h-1v-73h-8v-29-52h-5v-17h-8v-38h-15v-59h-15v-6h-89v6h-22v7h-175v16h-15v36h-25v55h-39v11h-4v41h-18v105h-54v-105h-32v105h-4v7h4v14h86v21h-86v13h86v17h-86-4v13h4v5h-4v1h4v42h86v11h18v9h4v19h-4v25h4v50h16v-48h23v45h-8v3h8 122v96h-119v14h119v10h75v22h75v-22h23v-10h34v10h48v-24h-36v-36h15v-60h21v-3h-11v-43h2v15h9v-15h46v15h5v-15h20v-2h-20v-46h20v-37h11v37h8v46h-8v2h8v15h22v-15h1v-2h-1v-46h1v-17h12v-20h13v-31h4v-32zm-142 148v-2h-9v2zm9-2v-46h46v46zm-46 45v-28h46v28zm67-191v-11h-1v-42h-3v42h-19v11h19v32h3v-32zm-61 0v-11h-5v11zm96 0v-11h-4v-43h-13v-2h-2v-37h-10v-2h-4v2h-27v37h-31v-37-2h-5v2h-43v37h-2v3h-1v-3h-8v-62-11-29h-5v-52h-8v-17h-15v-38-52h-15v-7h-89v7h-22v16h-175v36h-15v55h-25v1h-37v10h-2v41h-4v105h-18v21h18v21h-18v13h18v17h-18-86v13h86v5h-86v1h86v42h18v11h4v9h2v19h-2v25h2v2h14v-2h23v2h40v2h82v43h-122v3h122 75v96h-75v14h75v10h75v-10h23v-14h-23v-36h23v-60h34v60h12v-60h15 10v-3h-10v-43h10v-48h11v-37h46v37h5v-37h20v-30h11v30h8v37h22v-17h1v-20h12v-31h13v-32zm-13 0v-11h-2v-43h-10v-2h-4v2h-19v1h-8v42h-31v-21-21-3h-5v3h-43v21h43v21h-43v11h43v19h-45v13h45v1h5v-1h20v-13h-20v-19h31v32h8v1h19v30h3v-30h1v-1h10v-32zm-72 148v-2h-5v2zm5 43h-5zm66-191v-11h-3v11zm-38 146v-46h11v46zm-11 45v-28h11v28zm-11 149v-4h11v4zm-11 40v-40h-8v40zm92-380v-54-2h-4v-133h-13v-12h-13v-9h-12v-45h-31v45h-31v-55-59h-59v-5h33v-1h-33v-16h-5v-10h5v-12h-5v-22h-8v-29h8v-5h-8-119-107v5h107v29h-386v26h-38v27h40v20h-4v11h-14v148h-22v105h-7v55h18v17h-18v13h18v5h-18v1h18v42h3v20h14v94h8 41v62h26v-62h23v62h18v48h4v10h31v22h8v61h122v21h75v2h98v-2h34v2h99v-84h20v-22h11v22h43v-22h23v-123h-6v-27h6v-1h3v-17h-3v-46h3v-17h1v-51h3v-32zm-43 148v-2h-22v2zm22 43h-30zm66 189v-40h-66v40zm41-380v-11h-10v-43h-4v1h-19v42h-8v11h8v32h19v1h3v-1h1v-32zm38 0v-11h-3v-43h-6v-2h-4v-39h-13v-34h-12v-60h-4v60h-27v34h-31v-34-72h-48v72h-3v-29h-8v-52-17h-5v-38h-8v-59h-15v-6h-15v-11h-89v11h-22v6h-175v7h-15v16h-25v36h-43v66h-18v41h-54v-41h-32v41h-4v105h-8v7h8v14h4v21h-4v13h4v17h-4-8v13h8v5h-8v1h8v42h4v11h86v9h18v19h-18v25h18v50h4 16 15 8v110h3v10h119v22h75v11h75v-11h23v-22h34v22h48v-22h30v-24h-30v-96h51v-3h20-20v-28h20v-15h11v15h8v1h22v-1h13v-17h-12v-46h12v-17h17v-51h6v-32z";
+
+ verifyPoly("disjunct", disjunct, aDisjunctRanges);
+ verifyPoly("equal", equal, aEqualRanges);
+ verifyPoly("intersectionN", intersectionN, aIntersectionN);
+ verifyPoly("intersectionE", intersectionE, aIntersectionE);
+ verifyPoly("intersectionS", intersectionS, aIntersectionS);
+ verifyPoly("intersectionW", intersectionW, aIntersectionW);
+ verifyPoly("intersectionNE", intersectionNE, aIntersectionNE);
+ verifyPoly("intersectionSE", intersectionSE, aIntersectionSE);
+ verifyPoly("intersectionSW", intersectionSW, aIntersectionSW);
+ verifyPoly("intersectionNW", intersectionNW, aIntersectionNW);
+ verifyPoly("ringIntersection", ringIntersection, aRingIntersection);
+ verifyPoly("ringIntersection2", ringIntersection2, aRingIntersection2);
+ verifyPoly("ringIntersectExtraStrip", ringIntersectExtraStrip, aRingIntersectExtraStrip);
+ verifyPoly("complexIntersections", complexIntersections, aComplexIntersections);
+ verifyPoly("randomIntersections", randomIntersections, aRandomIntersections);
+ }
+
+ void dumpSvg(const char* pName,
+ const ::basegfx::B2DPolyPolygon& rPoly)
+ {
+ (void)pName; (void)rPoly;
+#if defined(VERBOSE)
+ fprintf(stderr, "%s - svg:d=\"%s\"\n",
+ pName, rtl::OUStringToOString(
+ basegfx::tools::exportToSvgD(rPoly),
+ RTL_TEXTENCODING_UTF8).getStr() );
+#endif
+ }
+
+ void getPolyPolygon()
+ {
+ dumpSvg("disjunct",aDisjunctRanges.solveCrossovers());
+ dumpSvg("equal",aEqualRanges.solveCrossovers());
+ dumpSvg("intersectionN",aIntersectionN.solveCrossovers());
+ dumpSvg("intersectionE",aIntersectionE.solveCrossovers());
+ dumpSvg("intersectionS",aIntersectionS.solveCrossovers());
+ dumpSvg("intersectionW",aIntersectionW.solveCrossovers());
+ dumpSvg("intersectionNE",aIntersectionNE.solveCrossovers());
+ dumpSvg("intersectionSE",aIntersectionSE.solveCrossovers());
+ dumpSvg("intersectionSW",aIntersectionSW.solveCrossovers());
+ dumpSvg("intersectionNW",aIntersectionNW.solveCrossovers());
+ dumpSvg("ringIntersection",aRingIntersection.solveCrossovers());
+ dumpSvg("ringIntersection2",aRingIntersection2.solveCrossovers());
+ dumpSvg("aRingIntersectExtraStrip",aRingIntersectExtraStrip.solveCrossovers());
+ dumpSvg("complexIntersections",aComplexIntersections.solveCrossovers());
+ dumpSvg("randomIntersections",aRandomIntersections.solveCrossovers());
+
+ CPPUNIT_ASSERT_MESSAGE("getPolyPolygon", true );
+ }
+
+ void validatePoly( const char* pName, const B2DPolyRange& rRange )
+ {
+ B2DPolyPolygon genericClip;
+ const sal_uInt32 nCount=rRange.count();
+ for( sal_uInt32 i=0; i<nCount; ++i )
+ {
+ B2DPolygon aRect=tools::createPolygonFromRect(
+ rRange.getElement(i).head);
+ if( rRange.getElement(i).tail.head == ORIENTATION_NEGATIVE )
+ aRect.flip();
+
+ genericClip.append(aRect);
+ }
+
+#if defined(VERBOSE)
+ fprintf(stderr, "%s input - svg:d=\"%s\"\n",
+ pName, rtl::OUStringToOString(
+ basegfx::tools::exportToSvgD(
+ genericClip),
+ RTL_TEXTENCODING_UTF8).getStr() );
+#endif
+
+ const B2DPolyPolygon boxClipResult=rRange.solveCrossovers();
+ const rtl::OUString boxClipSvg(
+ basegfx::tools::exportToSvgD(
+ normalizePoly(
+ boxClipResult)));
+#if defined(VERBOSE)
+ fprintf(stderr, "%s boxclipper - svg:d=\"%s\"\n",
+ pName, rtl::OUStringToOString(
+ boxClipSvg,
+ RTL_TEXTENCODING_UTF8).getStr() );
+#endif
+
+ genericClip = tools::solveCrossovers(genericClip);
+ const rtl::OUString genericClipSvg(
+ basegfx::tools::exportToSvgD(
+ normalizePoly(
+ genericClip)));
+#if defined(VERBOSE)
+ fprintf(stderr, "%s genclipper - svg:d=\"%s\"\n",
+ pName, rtl::OUStringToOString(
+ genericClipSvg,
+ RTL_TEXTENCODING_UTF8).getStr() );
+#endif
+
+ CPPUNIT_ASSERT_MESSAGE(pName,
+ genericClipSvg == boxClipSvg);
+ }
+
+ void validatePoly()
+ {
+ validatePoly("disjunct", aDisjunctRanges);
+ validatePoly("equal", aEqualRanges);
+ validatePoly("intersectionN", aIntersectionN);
+ validatePoly("intersectionE", aIntersectionE);
+ validatePoly("intersectionS", aIntersectionS);
+ validatePoly("intersectionW", aIntersectionW);
+ validatePoly("intersectionNE", aIntersectionNE);
+ validatePoly("intersectionSE", aIntersectionSE);
+ validatePoly("intersectionSW", aIntersectionSW);
+ validatePoly("intersectionNW", aIntersectionNW);
+ // subtle differences on Solaris Intel, comparison not smart enough
+ // (due to floating point inaccuracies)
+ //validatePoly("ringIntersection", aRingIntersection);
+ //validatePoly("ringIntersection2", aRingIntersection2);
+ //validatePoly("ringIntersectExtraStrip", aRingIntersectExtraStrip);
+ // generic clipper buggy here, likely
+ //validatePoly("complexIntersections", aComplexIntersections);
+ //validatePoly("randomIntersections", aRandomIntersections);
+ }
+
+ // Change the following lines only, if you add, remove or rename
+ // member functions of the current class,
+ // because these macros are need by auto register mechanism.
+
+ CPPUNIT_TEST_SUITE(boxclipper);
+ CPPUNIT_TEST(validatePoly);
+ CPPUNIT_TEST(verifyPoly);
+ CPPUNIT_TEST(getPolyPolygon);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+// -----------------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::boxclipper);
+} // namespace basegfx2d
diff --git a/basegfx/test/clipstate.cxx b/basegfx/test/clipstate.cxx
new file mode 100644
index 000000000000..3d9f59979aa7
--- /dev/null
+++ b/basegfx/test/clipstate.cxx
@@ -0,0 +1,178 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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_basegfx.hxx"
+// autogenerated file with codegen.pl
+
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+
+#include <basegfx/tools/b2dclipstate.hxx>
+#include <basegfx/range/b2dpolyrange.hxx>
+#include <basegfx/polygon/b2dpolygon.hxx>
+#include <basegfx/polygon/b2dpolygontools.hxx>
+#include <basegfx/polygon/b2dpolypolygontools.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/numeric/ftools.hxx>
+
+#include <boost/bind.hpp>
+
+using namespace ::basegfx;
+
+
+namespace basegfx2d
+{
+
+class clipstate : public CppUnit::TestFixture
+{
+private:
+ tools::B2DClipState aUnion1;
+ tools::B2DClipState aUnion2;
+ tools::B2DClipState aIntersect;
+ tools::B2DClipState aXor;
+ tools::B2DClipState aSubtract;
+
+public:
+ void setUp()
+ {
+ B2DRange aCenter(100, 100, -100, -100);
+ B2DRange aNorth(-10, -110, 10, -90);
+ B2DRange aWest(-110, -10, -90, 10);
+ B2DRange aSouth(-10, 110, 10, 90);
+ B2DRange aEast(110, -10, 90, 10);
+
+ aUnion1.unionRange(aCenter);
+ aUnion1.unionRange(aNorth);
+ aUnion1.unionRange(aWest);
+ aUnion1.unionRange(aSouth);
+ aUnion1.unionRange(aEast);
+
+ aUnion2.makeNull();
+ aUnion2.unionRange(aCenter);
+ aUnion2.unionRange(aNorth);
+ aUnion2.unionRange(aWest);
+ aUnion2.unionRange(aSouth);
+ aUnion2.unionRange(aEast);
+
+ aIntersect.intersectRange(aCenter);
+ aIntersect.intersectRange(aNorth);
+ aIntersect.intersectRange(aWest);
+ aIntersect.intersectRange(aSouth);
+ aIntersect.intersectRange(aEast);
+
+ aXor.makeNull();
+ aXor.xorRange(aCenter);
+ aXor.xorRange(aNorth);
+ aXor.xorRange(aWest);
+ aXor.xorRange(aSouth);
+ aXor.xorRange(aEast);
+
+ aSubtract.intersectRange(aCenter);
+ aSubtract.subtractRange(aNorth);
+ aSubtract.subtractRange(aWest);
+ aSubtract.subtractRange(aSouth);
+ aSubtract.subtractRange(aEast);
+ }
+
+ void tearDown()
+ {}
+
+ void verifyPoly(const char* sName, const char* sSvg, const tools::B2DClipState& toTest)
+ {
+#if defined(VERBOSE)
+ fprintf(stderr, "%s - svg:d=\"%s\"\n",
+ sName, rtl::OUStringToOString(
+ basegfx::tools::exportToSvgD(toTest.getClipPoly()),
+ RTL_TEXTENCODING_UTF8).getStr() );
+#endif
+
+ B2DPolyPolygon aTmp1;
+ CPPUNIT_ASSERT_MESSAGE(sName,
+ tools::importFromSvgD(
+ aTmp1,
+ rtl::OUString::createFromAscii(sSvg)));
+
+ const rtl::OUString aSvg=
+ tools::exportToSvgD(toTest.getClipPoly());
+ B2DPolyPolygon aTmp2;
+ CPPUNIT_ASSERT_MESSAGE(sName,
+ tools::importFromSvgD(
+ aTmp2,
+ aSvg));
+
+ CPPUNIT_ASSERT_MESSAGE(
+ sName,
+ aTmp2 == aTmp1);
+ }
+
+ void verifySimpleRange()
+ {
+ const char* unionSvg="m100 10v90h-90v10h-20v-10h-90v-90h-10v-20h10v-90h90v-10h20v10h90v90h10v20z";
+ const char* intersectSvg="m-100 10v-20h10v20zm80 90v-10h20v10zm-20-190v-10h20v10zm80 100v-20h10v20z";
+ const char* xorSvg="m-100 10h10v-20h-10zm90 110h20v-10h-20zm0-180h20v-10h-20zm100 110h10v-20h-10zm10 20v90h-90v10h-20v-10h-90v-90h-10v-20h10v-90h90v-10h20v10h90v90h10v20z";
+ const char* subtractSvg="m-90 10v-20h-10v-90h90v10h20v-10h90v90h-10v20h10v90h-90v-10h-20v10h-90v-90z";
+
+ CPPUNIT_ASSERT_MESSAGE("cleared clip stays empty under union operation",
+ aUnion1.isCleared());
+ verifyPoly("union", unionSvg, aUnion2);
+ verifyPoly("intersect", intersectSvg, aIntersect);
+ verifyPoly("xor", xorSvg, aXor);
+ verifyPoly("subtract", subtractSvg, aSubtract);
+ }
+
+ void verifyMixedClips()
+ {
+ tools::B2DClipState aMixedClip;
+
+ const char* unionSvg="m100 10v90h-90v10h-20v-10h-90v-90h-10v-20h10v-90h90v-10h20v10h90v90h10v20z";
+
+ B2DPolyPolygon aTmp1;
+ tools::importFromSvgD(
+ aTmp1,
+ rtl::OUString::createFromAscii(unionSvg));
+
+ aMixedClip.intersectPolyPolygon(aTmp1);
+ aMixedClip.subtractRange(B2DRange(-20,-150,20,0));
+ aMixedClip.subtractRange(B2DRange(-150,-20,0,20));
+ aMixedClip.xorRange(B2DRange(-150,-150,150,150));
+
+ const char* mixedClipSvg="m0 0v20h-100v80h90v10h20v-10h90v-90h10v-20h-10v-90h-80v100zm-40-20v-80h-80v80zm-50 170v-300h300v300z";
+ verifyPoly("mixed clip", mixedClipSvg, aMixedClip);
+ }
+
+ CPPUNIT_TEST_SUITE(clipstate);
+ CPPUNIT_TEST(verifySimpleRange);
+ CPPUNIT_TEST(verifyMixedClips);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+// -----------------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::clipstate);
+} // namespace basegfx2d
diff --git a/basegfx/test/export.map b/basegfx/test/export.map
index 709047ae63e5..3308588ef6f8 100644
--- a/basegfx/test/export.map
+++ b/basegfx/test/export.map
@@ -25,9 +25,9 @@
#
#*************************************************************************
-UDK_3.1 {
+UDK_3_0_0 {
global:
- registerAllTestFunction;
+ cppunitTestPlugIn;
local:
*;
diff --git a/basegfx/test/genericclipper.cxx b/basegfx/test/genericclipper.cxx
new file mode 100644
index 000000000000..84230a084493
--- /dev/null
+++ b/basegfx/test/genericclipper.cxx
@@ -0,0 +1,159 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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_basegfx.hxx"
+// autogenerated file with codegen.pl
+
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+
+#include <basegfx/matrix/b2dhommatrix.hxx>
+#include <basegfx/curve/b2dcubicbezier.hxx>
+#include <basegfx/curve/b2dbeziertools.hxx>
+#include <basegfx/range/b2dpolyrange.hxx>
+#include <basegfx/polygon/b2dpolygon.hxx>
+#include <basegfx/polygon/b2dpolygontools.hxx>
+#include <basegfx/polygon/b2dpolypolygontools.hxx>
+#include <basegfx/polygon/b2dpolypolygoncutter.hxx>
+#include <basegfx/polygon/b2dpolygonclipper.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/numeric/ftools.hxx>
+
+#include <boost/bind.hpp>
+
+using namespace ::basegfx;
+
+
+namespace basegfx2d
+{
+
+class genericclipper : public CppUnit::TestFixture
+{
+private:
+ B2DPolygon aSelfIntersecting;
+ B2DPolygon aShiftedRectangle;
+
+public:
+ // initialise your test code values here.
+ void setUp()
+ {
+ aSelfIntersecting.append(B2DPoint(0, 0));
+ aSelfIntersecting.append(B2DPoint(0, 100));
+ aSelfIntersecting.append(B2DPoint(75, 100));
+ aSelfIntersecting.append(B2DPoint(75, 50));
+ aSelfIntersecting.append(B2DPoint(25, 50));
+ aSelfIntersecting.append(B2DPoint(25, 150));
+ aSelfIntersecting.append(B2DPoint(100,150));
+ aSelfIntersecting.append(B2DPoint(100,0));
+ aSelfIntersecting.setClosed(true);
+
+ aShiftedRectangle = tools::createPolygonFromRect(
+ B2DRange(0,90,20,150));
+ }
+
+ void tearDown()
+ {}
+
+ void validate(const char* pName,
+ const char* pValidSvgD,
+ B2DPolyPolygon (*pFunc)(const B2DPolyPolygon&, const B2DPolyPolygon&))
+ {
+ const B2DPolyPolygon aSelfIntersect(
+ tools::prepareForPolygonOperation(aSelfIntersecting));
+ const B2DPolyPolygon aRect(
+ tools::prepareForPolygonOperation(aShiftedRectangle));
+#if defined(VERBOSE)
+ fprintf(stderr, "%s input LHS - svg:d=\"%s\"\n",
+ pName, rtl::OUStringToOString(
+ basegfx::tools::exportToSvgD(
+ aSelfIntersect),
+ RTL_TEXTENCODING_UTF8).getStr() );
+ fprintf(stderr, "%s input RHS - svg:d=\"%s\"\n",
+ pName, rtl::OUStringToOString(
+ basegfx::tools::exportToSvgD(
+ aRect),
+ RTL_TEXTENCODING_UTF8).getStr() );
+#endif
+
+ const B2DPolyPolygon aRes=
+ pFunc(aSelfIntersect, aRect);
+
+#if defined(VERBOSE)
+ fprintf(stderr, "%s - svg:d=\"%s\"\n",
+ pName, rtl::OUStringToOString(
+ basegfx::tools::exportToSvgD(aRes),
+ RTL_TEXTENCODING_UTF8).getStr() );
+#endif
+
+ rtl::OUString aValid=rtl::OUString::createFromAscii(pValidSvgD);
+
+ CPPUNIT_ASSERT_MESSAGE(pName,
+ basegfx::tools::exportToSvgD(aRes) == aValid);
+ }
+
+ void validateOr()
+ {
+ const char* pValid="m0 0h100v150h-75v-50h-5v50h-20v-50-10zm75 10v-50h-50v50z";
+ validate("validateOr", pValid, &tools::solvePolygonOperationOr);
+ }
+
+ void validateXor()
+ {
+ const char* pValid="m0 0h100v150h-75v-50h-5v50h-20v-50-10zm0 10h20v-10h-20zm75 10v-50h-50v50z";
+ validate("validateXor", pValid, &tools::solvePolygonOperationXor);
+ }
+
+ void validateAnd()
+ {
+ const char* pValid="m0 100v-10h20v10z";
+ validate("validateAnd", pValid, &tools::solvePolygonOperationAnd);
+ }
+
+ void validateDiff()
+ {
+ const char* pValid="m0 90v-90h100v150h-75v-50h-5v-10zm55 10v-50h-50v50z";
+ validate("validateDiff", pValid, &tools::solvePolygonOperationDiff);
+ }
+
+ // Change the following lines only, if you add, remove or rename
+ // member functions of the current class,
+ // because these macros are need by auto register mechanism.
+
+ CPPUNIT_TEST_SUITE(genericclipper);
+ CPPUNIT_TEST(validateOr);
+ CPPUNIT_TEST(validateXor);
+ CPPUNIT_TEST(validateAnd);
+ CPPUNIT_TEST(validateDiff);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+// -----------------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION(basegfx2d::genericclipper);
+} // namespace basegfx2d
diff --git a/basegfx/test/makefile.mk b/basegfx/test/makefile.mk
index dd92dfedaa0c..2c0f30c291a9 100644
--- a/basegfx/test/makefile.mk
+++ b/basegfx/test/makefile.mk
@@ -36,39 +36,33 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# --- Common ----------------------------------------------------------
SHL1OBJS= \
- $(SLO)$/basegfx1d.obj \
- $(SLO)$/basegfx2d.obj \
- $(SLO)$/basegfx3d.obj \
- $(SLO)$/testtools.obj
-
-# linking statically against basegfx parts
-SHL1LIBS=\
- $(SLB)$/curve.lib \
- $(SLB)$/matrix.lib \
- $(SLB)$/numeric.lib \
- $(SLB)$/point.lib \
- $(SLB)$/polygon.lib \
- $(SLB)$/range.lib \
- $(SLB)$/tuple.lib \
- $(SLB)$/tools.lib \
- $(SLB)$/color.lib \
- $(SLB)$/vector.lib
+ $(SLO)$/basegfx1d.obj \
+ $(SLO)$/basegfx2d.obj \
+ $(SLO)$/basegfx3d.obj \
+ $(SLO)$/boxclipper.obj \
+ $(SLO)$/basegfxtools.obj \
+ $(SLO)$/clipstate.obj \
+ $(SLO)$/genericclipper.obj \
+ $(SLO)$/testtools.obj
SHL1TARGET= basegfx_tests
SHL1STDLIBS= \
+ $(BASEGFXLIB) \
$(SALLIB) \
$(CPPUHELPERLIB) \
- $(CPPULIB) \
- $(TESTSHL2LIB) \
+ $(CPPULIB) \
$(CPPUNITLIB)
SHL1IMPLIB= i$(SHL1TARGET)
DEF1NAME =$(SHL1TARGET)
SHL1VERSIONMAP = export.map
+SHL1RPATH = NONE
# END ------------------------------------------------------------------
@@ -81,13 +75,6 @@ SLOFILES=$(SHL1OBJS)
.INCLUDE : target.mk
.INCLUDE : _cppunit.mk
-# --- Enable testshl2 execution in normal build ------------------------
-
-$(MISC)$/unittest_succeeded : $(SHL1TARGETN)
- @echo ----------------------------------------------------------
- @echo - start unit test on library $(SHL1TARGETN)
- @echo ----------------------------------------------------------
- $(TESTSHL2) -sf $(mktmp ) -forward $(BIN)$/ $(SHL1TARGETN)
- $(TOUCH) $@
-
-ALLTAR : $(MISC)$/unittest_succeeded
+.IF "$(verbose)"!="" || "$(VERBOSE)"!=""
+CDEFS+= -DVERBOSE
+.ENDIF
diff --git a/basegfx/test/tests.txt b/basegfx/test/tests.txt
deleted file mode 100644
index fc2d33ab51d5..000000000000
--- a/basegfx/test/tests.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# Jobfile
-basegfx1d.b1drange
-basegfx2d.b2dcubicbezier
-basegfx2d.b2dhommatrix
-basegfx2d.b2dhompoint
-basegfx2d.b2dpoint
-basegfx2d.b2dpolygon
-basegfx2d.b2dpolygontools
-basegfx2d.b2dpolypolygon
-basegfx2d.b2dquadraticbezier
-basegfx2d.b2drange
-basegfx2d.b2dtuple
-basegfx2d.b2dvector
-basegfx3d.b3dhommatrix
-basegfx3d.b3dhompoint
-basegfx3d.b3dhompoint
-basegfx3d.b3dpoint
-basegfx3d.b3drange
-basegfx3d.b3dtuple
-basegfx3d.b3dvector
diff --git a/basic/source/app/basic.src b/basic/source/app/basic.src
index fe7bcff7f6b3..0713fd859f56 100644
--- a/basic/source/app/basic.src
+++ b/basic/source/app/basic.src
@@ -87,7 +87,7 @@ ModalDialog IDD_ABOUT_DIALOG {
FixedText {
Pos = MAP_APPFONT( 40, 60 );
Size = MAP_APPFONT( 110, 10 );
- TEXT = "®1995 Sun Microsystems, Inc.";
+ TEXT = "®1995-2010 Oracle";
CENTER = TRUE;
};
};
@@ -127,7 +127,7 @@ ModalDialog IDD_TT_ABOUT_DIALOG {
Pos = MAP_APPFONT( 5, 40 );
Size = MAP_APPFONT( 110, 10 );
CENTER = TRUE;
- TEXT[ en-US ] = "©1995-2005 Sun Microsystems, Inc.";
+ TEXT[ en-US ] = "©1995-2010 Oracle";
};
OKButton RID_OK {
Pos = MAP_APPFONT( 40, 60 );
diff --git a/basic/source/basmgr/basmgr.cxx b/basic/source/basmgr/basmgr.cxx
index da792f269fc9..7646667bc277 100644
--- a/basic/source/basmgr/basmgr.cxx
+++ b/basic/source/basmgr/basmgr.cxx
@@ -97,20 +97,13 @@ typedef WeakImplHelper1< XStarBasicAccess > StarBasicAccessHelper;
// + BOOL bReference
static const char* szStdLibName = "Standard";
-static const char* szBasicStorage = "StarBASIC";
+static const char szBasicStorage[] = "StarBASIC";
static const char* szOldManagerStream = "BasicManager";
-static const char* szManagerStream = "BasicManager2";
+static const char szManagerStream[] = "BasicManager2";
static const char* szImbedded = "LIBIMBEDDED";
static const char* szCryptingKey = "CryptedBasic";
static const char* szScriptLanguage = "StarBasic";
-static const String BasicStreamName( String::CreateFromAscii(szBasicStorage) );
-static const String ManagerStreamName( String::CreateFromAscii(szManagerStream) );
-
-
-#define DEFINE_CONST_UNICODE(CONSTASCII) UniString(RTL_CONSTASCII_USTRINGPARAM(CONSTASCII))
-
-
TYPEINIT1( BasicManager, SfxBroadcaster );
DBG_NAME( BasicManager );
@@ -666,7 +659,7 @@ BasicManager::BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBA
// DBG_ASSERT(aStorageName.Len() != 0, "Bad storage name");
// If there is no Manager Stream, no further actions are necessary
- if ( rStorage.IsStream( ManagerStreamName ) )
+ if ( rStorage.IsStream( String(RTL_CONSTASCII_USTRINGPARAM(szManagerStream)) ) )
{
LoadBasicManager( rStorage, rBaseURL );
// StdLib contains Parent:
@@ -707,12 +700,12 @@ BasicManager::BasicManager( SotStorage& rStorage, const String& rBaseURL, StarBA
// #91626 Save all stream data to save it unmodified if basic isn't modified
// in an 6.0+ office. So also the old basic dialogs can be saved.
SotStorageStreamRef xManagerStream = rStorage.OpenSotStream
- ( ManagerStreamName, eStreamReadMode );
+ ( String(RTL_CONSTASCII_USTRINGPARAM(szManagerStream)), eStreamReadMode );
mpImpl->mpManagerStream = new SvMemoryStream();
*static_cast<SvStream*>(&xManagerStream) >> *mpImpl->mpManagerStream;
SotStorageRef xBasicStorage = rStorage.OpenSotStorage
- ( BasicStreamName, eStorageReadMode, FALSE );
+ ( String(RTL_CONSTASCII_USTRINGPARAM(szBasicStorage)), eStorageReadMode, FALSE );
if( xBasicStorage.Is() && !xBasicStorage->GetError() )
{
USHORT nLibs = GetLibCount();
@@ -921,7 +914,7 @@ void BasicManager::LoadBasicManager( SotStorage& rStorage, const String& rBaseUR
// StreamMode eStreamMode = STREAM_READ | STREAM_NOCREATE | STREAM_SHARE_DENYWRITE;
SotStorageStreamRef xManagerStream = rStorage.OpenSotStream
- ( ManagerStreamName, eStreamReadMode );
+ ( String(RTL_CONSTASCII_USTRINGPARAM(szManagerStream)), eStreamReadMode );
String aStorName( rStorage.GetName() );
// #i13114 removed, DBG_ASSERT( aStorName.Len(), "No Storage Name!" );
@@ -1169,7 +1162,7 @@ BOOL BasicManager::ImpLoadLibary( BasicLibInfo* pLibInfo, SotStorage* pCurStorag
xStorage = new SotStorage( FALSE, aStorageName, eStorageReadMode );
SotStorageRef xBasicStorage = xStorage->OpenSotStorage
- ( BasicStreamName, eStorageReadMode, FALSE );
+ ( String(RTL_CONSTASCII_USTRINGPARAM(szBasicStorage)), eStorageReadMode, FALSE );
if ( !xBasicStorage.Is() || xBasicStorage->GetError() )
{
@@ -1422,10 +1415,10 @@ BOOL BasicManager::RemoveLib( USHORT nLib, BOOL bDelBasicFromStorage )
else
xStorage = new SotStorage( FALSE, pLibInfo->GetStorageName() );
- if ( xStorage->IsStorage( BasicStreamName ) )
+ if ( xStorage->IsStorage( String(RTL_CONSTASCII_USTRINGPARAM(szBasicStorage)) ) )
{
SotStorageRef xBasicStorage = xStorage->OpenSotStorage
- ( BasicStreamName, STREAM_STD_READWRITE, FALSE );
+ ( String(RTL_CONSTASCII_USTRINGPARAM(szBasicStorage)), STREAM_STD_READWRITE, FALSE );
if ( !xBasicStorage.Is() || xBasicStorage->GetError() )
{
@@ -1445,7 +1438,7 @@ BOOL BasicManager::RemoveLib( USHORT nLib, BOOL bDelBasicFromStorage )
if ( !aInfoList.Count() )
{
xBasicStorage.Clear();
- xStorage->Remove( BasicStreamName );
+ xStorage->Remove( String(RTL_CONSTASCII_USTRINGPARAM(szBasicStorage)) );
xStorage->Commit();
// If no further Streams or SubStorages available,
// delete the Storage, too.
diff --git a/basic/source/classes/sb.cxx b/basic/source/classes/sb.cxx
index c5ac53c43092..86850d9991c6 100644
--- a/basic/source/classes/sb.cxx
+++ b/basic/source/classes/sb.cxx
@@ -64,20 +64,17 @@ TYPEINIT1(StarBASIC,SbxObject)
#define RTLNAME "@SBRTL"
// i#i68894#
-const static String aThisComponent( RTL_CONSTASCII_USTRINGPARAM("ThisComponent") );
-const static String aVBAHook( RTL_CONSTASCII_USTRINGPARAM( "VBAGlobals" ) );
-
SbxObject* StarBASIC::getVBAGlobals( )
{
if ( !pVBAGlobals )
- pVBAGlobals = (SbUnoObject*)Find( aVBAHook , SbxCLASS_DONTCARE );
+ pVBAGlobals = (SbUnoObject*)Find( String(RTL_CONSTASCII_USTRINGPARAM("VBAGlobals")), SbxCLASS_DONTCARE );
return pVBAGlobals;
}
// i#i68894#
SbxVariable* StarBASIC::VBAFind( const String& rName, SbxClassType t )
{
- if( rName == aThisComponent )
+ if( rName.EqualsAscii("ThisComponent") )
return NULL;
// rename to init globals
if ( getVBAGlobals( ) )
diff --git a/basic/source/classes/sbunoobj.cxx b/basic/source/classes/sbunoobj.cxx
index 1e278bf583a7..0e8928bc6c1a 100755..100644
--- a/basic/source/classes/sbunoobj.cxx
+++ b/basic/source/classes/sbunoobj.cxx
@@ -112,9 +112,9 @@ typedef WeakImplHelper1< XAllListener > BasicAllListenerHelper;
// Identifier fuer die dbg_-Properies als Strings anlegen
-static String ID_DBG_SUPPORTEDINTERFACES( RTL_CONSTASCII_USTRINGPARAM("Dbg_SupportedInterfaces") );
-static String ID_DBG_PROPERTIES( RTL_CONSTASCII_USTRINGPARAM("Dbg_Properties") );
-static String ID_DBG_METHODS( RTL_CONSTASCII_USTRINGPARAM("Dbg_Methods") );
+static char const ID_DBG_SUPPORTEDINTERFACES[] = "Dbg_SupportedInterfaces";
+static char const ID_DBG_PROPERTIES[] = "Dbg_Properties";
+static char const ID_DBG_METHODS[] = "Dbg_Methods";
static ::rtl::OUString aSeqLevelStr( RTL_CONSTASCII_USTRINGPARAM("[]") );
static ::rtl::OUString defaultNameSpace( RTL_CONSTASCII_USTRINGPARAM("ooo.vba") );
@@ -1630,7 +1630,7 @@ String Impl_GetSupportedInterfaces( SbUnoObject* pUnoObj )
String aRet;
if( eType != TypeClass_INTERFACE )
{
- aRet += ID_DBG_SUPPORTEDINTERFACES;
+ aRet.AppendAscii( RTL_CONSTASCII_STRINGPARAM(ID_DBG_SUPPORTEDINTERFACES) );
aRet.AppendAscii( " not available.\n(TypeClass is not TypeClass_INTERFACE)\n" );
}
else
@@ -2653,15 +2653,15 @@ void SbUnoObject::implCreateDbgProperties( void )
Property aProp;
// Id == -1: Implementierte Interfaces gemaess ClassProvider anzeigen
- SbxVariableRef xVarRef = new SbUnoProperty( ID_DBG_SUPPORTEDINTERFACES, SbxSTRING, aProp, -1, false );
+ SbxVariableRef xVarRef = new SbUnoProperty( String(RTL_CONSTASCII_USTRINGPARAM(ID_DBG_SUPPORTEDINTERFACES)), SbxSTRING, aProp, -1, false );
QuickInsert( (SbxVariable*)xVarRef );
// Id == -2: Properties ausgeben
- xVarRef = new SbUnoProperty( ID_DBG_PROPERTIES, SbxSTRING, aProp, -2, false );
+ xVarRef = new SbUnoProperty( String(RTL_CONSTASCII_USTRINGPARAM(ID_DBG_PROPERTIES)), SbxSTRING, aProp, -2, false );
QuickInsert( (SbxVariable*)xVarRef );
// Id == -3: Methoden ausgeben
- xVarRef = new SbUnoProperty( ID_DBG_METHODS, SbxSTRING, aProp, -3, false );
+ xVarRef = new SbUnoProperty( String(RTL_CONSTASCII_USTRINGPARAM(ID_DBG_METHODS)), SbxSTRING, aProp, -3, false );
QuickInsert( (SbxVariable*)xVarRef );
}
diff --git a/beanshell/makefile.mk b/beanshell/makefile.mk
index 6b2d09b00355..6e89a0034e97 100644
--- a/beanshell/makefile.mk
+++ b/beanshell/makefile.mk
@@ -38,6 +38,7 @@ TARGET=ooo_beanshell
# --- Files --------------------------------------------------------
TARFILE_NAME=bsh-2.0b1-src
+TARFILE_MD5=ea570af93c284aa9e5621cd563f54f4d
TARFILE_ROOTDIR=BeanShell
PATCH_FILES=bsh-2.0b1-src.patch
diff --git a/berkeleydb/db-4.7.25.patch b/berkeleydb/db-4.7.25.patch
index c97522f62612..8cf412d23e25 100644
--- a/berkeleydb/db-4.7.25.patch
+++ b/berkeleydb/db-4.7.25.patch
@@ -646,7 +646,7 @@
+
--- misc/db-4.7.25.NC/makefile.mk 2009-07-21 11:42:40.000000000 +0200
+++ misc/build/db-4.7.25.NC/makefile.mk 2009-07-21 11:39:26.000000000 +0200
-@@ -1 +1,81 @@
+@@ -1 +1,76 @@
-dummy
+PRJ=..$/..$/..$/..
+PRJNAME=libdb47
@@ -658,11 +658,6 @@
+CFLAGS+=-GS -EHsc -Gy
+
+#LINKFLAGS!:=$(LINKFLAGS:s/NODEFAULTLIB/NOLOGO/)
-+.IF "$(USE_SHELL)"!="4nt"
-+BUILD_ACTION_SEP=;
-+.ELSE # "$(USE_SHELL)"!="4nt"
-+BUILD_ACTION_SEP=^
-+.ENDIF # "$(USE_SHELL)"!="4nt"
+
+CHILDREN= \
+ btree clib common cxx \
@@ -720,7 +715,7 @@
+ALLTAR : $(CHILDREN)
+
+$(CHILDREN) .PHONY :
-+ cd $@ $(BUILD_ACTION_SEP) $(MAKECMD) subdmake=true $(MFLAGS) $(CALLMACROS)
++ cd $@ ; $(MAKECMD) subdmake=true $(MFLAGS) $(CALLMACROS)
+
+.INCLUDE : target.mk
+
diff --git a/berkeleydb/makefile.mk b/berkeleydb/makefile.mk
index fe1208e554ab..963c61a3bbde 100644
--- a/berkeleydb/makefile.mk
+++ b/berkeleydb/makefile.mk
@@ -43,6 +43,7 @@ all:
# --- Files --------------------------------------------------------
TARFILE_NAME=db-4.7.25.NC-custom
+TARFILE_MD5=d70951c80dabecc2892c919ff5d07172
TARFILE_ROOTDIR=db-4.7.25.NC
ADDITIONAL_FILES= \
@@ -160,11 +161,6 @@ OUT2INC= \
# make use of stlport headerfiles
EXT_USE_STLPORT=TRUE
-.IF "$(USE_SHELL)"!="4nt"
-BUILD_ACTION_SEP=;
-.ELSE # "$(USE_SHELL)"!="4nt"
-BUILD_ACTION_SEP=^
-.ENDIF # "$(USE_SHELL)"!="4nt"
BUILD_DIR=
BUILD_ACTION=dmake
diff --git a/bitstream_vera_fonts/fonts/ttf_dejavu/makefile.mk b/bitstream_vera_fonts/fonts/ttf_dejavu/makefile.mk
index 87fd5a859306..12e1db5f26ad 100644
--- a/bitstream_vera_fonts/fonts/ttf_dejavu/makefile.mk
+++ b/bitstream_vera_fonts/fonts/ttf_dejavu/makefile.mk
@@ -37,6 +37,7 @@ TARGET=ttf_dejavu
# --- Files --------------------------------------------------------
TARFILE_NAME=dejavu-fonts-ttf-2.30
+TARFILE_MD5=fe5b3e2b7c4577f30dc001054365653e
TARFILE_ROOTDIR=dejavu-fonts-ttf-2.30
PATCH_FILES=
diff --git a/bitstream_vera_fonts/fonts/ttf_gentium/makefile.mk b/bitstream_vera_fonts/fonts/ttf_gentium/makefile.mk
index 2105e2f01cb5..45d5922a534b 100644
--- a/bitstream_vera_fonts/fonts/ttf_gentium/makefile.mk
+++ b/bitstream_vera_fonts/fonts/ttf_gentium/makefile.mk
@@ -37,6 +37,7 @@ TARGET=ttf_gentium
# --- Files --------------------------------------------------------
TARFILE_NAME=gentiumbasic-fonts-1.10
+TARFILE_MD5=35efabc239af896dfb79be7ebdd6e6b9
TARFILE_ROOTDIR=gentiumbasic-fonts-1.10
PATCH_FILES=
diff --git a/bitstream_vera_fonts/fonts/ttf_liberation/makefile.mk b/bitstream_vera_fonts/fonts/ttf_liberation/makefile.mk
index 4d0093ec9a71..42d611b8157f 100644
--- a/bitstream_vera_fonts/fonts/ttf_liberation/makefile.mk
+++ b/bitstream_vera_fonts/fonts/ttf_liberation/makefile.mk
@@ -37,6 +37,7 @@ TARGET=ttf_liberation
# --- Files --------------------------------------------------------
TARFILE_NAME=liberation-fonts-1.05
+TARFILE_MD5=30102daecfb3a6aa022d2691dc075180
TARFILE_ROOTDIR=liberation-fonts-1.05
PATCH_FILES=
diff --git a/boost/makefile.mk b/boost/makefile.mk
index 8601c4d12801..8c1df4e21dbc 100644
--- a/boost/makefile.mk
+++ b/boost/makefile.mk
@@ -49,6 +49,7 @@ all:
# --- Files --------------------------------------------------------
TARFILE_NAME=boost_1_39_0
+TARFILE_MD5=fcc6df1160753d0b8c835d17fdeeb0a7
PATCH_FILES=$(TARFILE_NAME).patch
CONFIGURE_DIR=
diff --git a/bootstrap.1 b/bootstrap.1
index 622f68b228f4..156f5625557a 100644
--- a/bootstrap.1
+++ b/bootstrap.1
@@ -77,3 +77,8 @@ chmod +x "$SRC_ROOT/solenv/bin/build.pl"
chmod +x "$SRC_ROOT/solenv/bin/build_client.pl"
chmod +x "$SRC_ROOT/solenv/bin/zipdep.pl"
chmod +x "$SRC_ROOT/solenv/bin/gccinstlib.pl"
+
+# fetch or update external tarballs
+if [ "$DO_FETCH_TARBALLS" = "yes" ]; then
+ $SRC_ROOT/fetch_tarballs.sh $SRC_ROOT/ooo.lst
+fi
diff --git a/bridges/source/cpp_uno/gcc3_linux_x86-64/abi.cxx b/bridges/source/cpp_uno/gcc3_linux_x86-64/abi.cxx
index c0166b720f0b..0483e86b7280 100644
--- a/bridges/source/cpp_uno/gcc3_linux_x86-64/abi.cxx
+++ b/bridges/source/cpp_uno/gcc3_linux_x86-64/abi.cxx
@@ -100,8 +100,6 @@ enum x86_64_reg_class
#define MAX_CLASSES 4
-#define ALIGN(v, a) (((((size_t) (v))-1) | ((a)-1))+1)
-
/* x86-64 register passing implementation. See x86-64 ABI for details. Goal
of this code is to classify each 8bytes of incoming argument by the register
class and assign registers accordingly. */
@@ -153,11 +151,8 @@ merge_classes (enum x86_64_reg_class class1, enum x86_64_reg_class class2)
See the x86-64 PS ABI for details.
*/
static int
-classify_argument( typelib_TypeDescriptionReference *pTypeRef, enum x86_64_reg_class classes[], int &rByteOffset )
+classify_argument( typelib_TypeDescriptionReference *pTypeRef, enum x86_64_reg_class classes[], int byteOffset )
{
- /* First, align to the right place. */
- rByteOffset = ALIGN( rByteOffset, pTypeRef->pType->nAlignment );
-
switch ( pTypeRef->eTypeClass )
{
case typelib_TypeClass_VOID:
@@ -173,13 +168,13 @@ classify_argument( typelib_TypeDescriptionReference *pTypeRef, enum x86_64_reg_c
case typelib_TypeClass_HYPER:
case typelib_TypeClass_UNSIGNED_HYPER:
case typelib_TypeClass_ENUM:
- if ( ( rByteOffset % 8 + pTypeRef->pType->nSize ) <= 4 )
+ if ( ( byteOffset % 8 + pTypeRef->pType->nSize ) <= 4 )
classes[0] = X86_64_INTEGERSI_CLASS;
else
classes[0] = X86_64_INTEGER_CLASS;
return 1;
case typelib_TypeClass_FLOAT:
- if ( ( rByteOffset % 8 ) == 0 )
+ if ( ( byteOffset % 8 ) == 0 )
classes[0] = X86_64_SSESF_CLASS;
else
classes[0] = X86_64_SSE_CLASS;
@@ -226,9 +221,9 @@ classify_argument( typelib_TypeDescriptionReference *pTypeRef, enum x86_64_reg_c
for ( sal_Int32 nMember = 0; nMember < pStruct->nMembers; ++nMember )
{
typelib_TypeDescriptionReference *pTypeInStruct = pStruct->ppTypeRefs[ nMember ];
- rByteOffset = pStruct->pMemberOffsets[ nMember ];
+ int offset = byteOffset + pStruct->pMemberOffsets[ nMember ];
- int num = classify_argument( pTypeInStruct, subclasses, rByteOffset );
+ int num = classify_argument( pTypeInStruct, subclasses, offset );
if ( num == 0 )
{
@@ -238,7 +233,7 @@ classify_argument( typelib_TypeDescriptionReference *pTypeRef, enum x86_64_reg_c
for ( int i = 0; i < num; i++ )
{
- int pos = rByteOffset / 8;
+ int pos = offset / 8;
classes[i + pos] = merge_classes( subclasses[i], classes[i + pos] );
}
}
@@ -281,10 +276,9 @@ classify_argument( typelib_TypeDescriptionReference *pTypeRef, enum x86_64_reg_c
bool x86_64::examine_argument( typelib_TypeDescriptionReference *pTypeRef, bool bInReturn, int &nUsedGPR, int &nUsedSSE )
{
enum x86_64_reg_class classes[MAX_CLASSES];
- int offset = 0;
int n;
- n = classify_argument( pTypeRef, classes, offset );
+ n = classify_argument( pTypeRef, classes, 0 );
if ( n == 0 )
return false;
@@ -330,10 +324,9 @@ bool x86_64::return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef
void x86_64::fill_struct( typelib_TypeDescriptionReference *pTypeRef, const sal_uInt64 *pGPR, const double *pSSE, void *pStruct )
{
enum x86_64_reg_class classes[MAX_CLASSES];
- int offset = 0;
int n;
- n = classify_argument( pTypeRef, classes, offset );
+ n = classify_argument( pTypeRef, classes, 0 );
sal_uInt64 *pStructAlign = reinterpret_cast<sal_uInt64 *>( pStruct );
for ( n--; n >= 0; n-- )
@@ -441,10 +434,10 @@ ffi_prep_args (stackLayout *stack, extended_cif *ecif)
/* All easy cases are eliminated. Now fire the big guns. */
enum x86_64_reg_class classes[MAX_CLASSES];
- int offset = 0, j, num;
+ int j, num;
void *a;
- num = classify_argument (*p_arg, classes, &offset);
+ num = classify_argument (*p_arg, classes, 0);
for (j=0, a=*p_argv; j<num; j++, a+=8)
{
switch (classes[j])
@@ -571,7 +564,7 @@ ffi_fill_return_value (return_value *rv, extended_cif *ecif)
;
}
- num = classify_argument (ecif->cif->rtype, classes, &i);
+ num = classify_argument (ecif->cif->rtype, classes, 0);
if (num == 0)
/* Return in memory. */
diff --git a/bridges/test/java_uno/acquire/makefile.mk b/bridges/test/java_uno/acquire/makefile.mk
index 96ee48f62889..def12dd53c49 100644
--- a/bridges/test/java_uno/acquire/makefile.mk
+++ b/bridges/test/java_uno/acquire/makefile.mk
@@ -43,7 +43,7 @@ SLOFILES = $(SLO)$/testacquire.obj
SHL1TARGET = testacquire.uno
SHL1OBJS = $(SLOFILES)
SHL1STDLIBS = $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB)
-SHL1VERSIONMAP = testacquire.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1IMPLIB = itestacquire
JAVAFILES = TestAcquire.java
@@ -52,10 +52,10 @@ JARFILES = OOoRunner.jar juh.jar jurt.jar ridl.jar
.INCLUDE: target.mk
ALLTAR: \
- $(BIN)$/testacquire-java-client$(SCRIPTEXT) \
- $(BIN)$/testacquire-java-server$(SCRIPTEXT) \
- $(BIN)$/testacquire-native-client$(SCRIPTEXT) \
- $(BIN)$/testacquire-native-server$(SCRIPTEXT)
+ $(BIN)$/testacquire-java-client \
+ $(BIN)$/testacquire-java-server \
+ $(BIN)$/testacquire-native-client \
+ $(BIN)$/testacquire-native-server
.IF "$(GUI)" == "WNT"
GIVE_EXEC_RIGHTS = @echo
@@ -86,7 +86,7 @@ $(SLOFILES) $(JAVACLASSFILES): $(BIN)$/$(TARGET).rdb
TEST_JAVAUNO_ACQUIRE_UNO_URL := \
\"'uno:socket,host=127.0.0.1,port=2002;urp;test'\"
-$(BIN)$/testacquire-java-client$(SCRIPTEXT):
+$(BIN)$/testacquire-java-client:
echo java -classpath \
..$/class$/test$(PATH_SEPERATOR)..$/class$(PATH_SEPERATOR)\
..$/class$/java_uno.jar$(PATH_SEPERATOR)$(EXEC_CLASSPATH) \
@@ -94,7 +94,7 @@ $(BIN)$/testacquire-java-client$(SCRIPTEXT):
$(TEST_JAVAUNO_ACQUIRE_UNO_URL) > $@
$(GIVE_EXEC_RIGHTS) $@
-$(BIN)$/testacquire-java-server$(SCRIPTEXT):
+$(BIN)$/testacquire-java-server:
echo java -classpath \
..$/class$/test$(PATH_SEPERATOR)..$/class$(PATH_SEPERATOR)\
..$/class$/java_uno.jar$(PATH_SEPERATOR)$(EXEC_CLASSPATH) \
@@ -102,14 +102,14 @@ $(BIN)$/testacquire-java-server$(SCRIPTEXT):
$(TEST_JAVAUNO_ACQUIRE_UNO_URL) > $@
$(GIVE_EXEC_RIGHTS) $@
-$(BIN)$/testacquire-native-client$(SCRIPTEXT):
+$(BIN)$/testacquire-native-client:
echo '$(AUGMENT_LIBRARY_PATH)' uno \
-c com.sun.star.test.bridges.testacquire.impl \
-l ../lib/$(SHL1TARGETN:f) -ro $(TARGET).rdb -- \
$(TEST_JAVAUNO_ACQUIRE_UNO_URL) > $@
$(GIVE_EXEC_RIGHTS) $@
-$(BIN)$/testacquire-native-server$(SCRIPTEXT):
+$(BIN)$/testacquire-native-server:
echo '$(AUGMENT_LIBRARY_PATH)' uno \
-c com.sun.star.test.bridges.testacquire.impl \
-l ../lib/$(SHL1TARGETN:f) -ro $(TARGET).rdb \
diff --git a/bridges/test/java_uno/acquire/testacquire.map b/bridges/test/java_uno/acquire/testacquire.map
deleted file mode 100644
index 227274db922d..000000000000
--- a/bridges/test/java_uno/acquire/testacquire.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3.1 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
- local:
- *;
-};
diff --git a/bridges/test/java_uno/any/makefile.mk b/bridges/test/java_uno/any/makefile.mk
index 564ee80c2e80..888fae21d3d2 100644
--- a/bridges/test/java_uno/any/makefile.mk
+++ b/bridges/test/java_uno/any/makefile.mk
@@ -100,16 +100,16 @@ $(SLOFILES) : $(MISC)$/gen_files.flag
$(JAVACLASSFILES) : $(MISC)$/gen_files.flag
ALLTAR : \
- $(OUT)$/bin$/TestRemote$(SCRIPTEXT) \
- $(OUT)$/bin$/TestJni$(SCRIPTEXT)
+ $(OUT)$/bin$/TestRemote \
+ $(OUT)$/bin$/TestJni
-$(OUT)$/bin$/TestRemote$(SCRIPTEXT) : $(JAVACLASSFILES)
+$(OUT)$/bin$/TestRemote : $(JAVACLASSFILES)
-rm -f $@
echo java -classpath ..$/class$/test$(PATH_SEPERATOR)..$/class$(PATH_SEPERATOR)$(EXEC_CLASSPATH) \
test.java_uno.anytest.TestRemote > $@
$(GIVE_EXEC_RIGHTS) $@
-$(OUT)$/bin$/TestJni$(SCRIPTEXT) : $(JAVACLASSFILES)
+$(OUT)$/bin$/TestJni : $(JAVACLASSFILES)
-rm -f $@
echo '$(AUGMENT_LIBRARY_PATH)' java -classpath \
.$(PATH_SEPERATOR)..$/class$(PATH_SEPERATOR)$(EXEC_CLASSPATH) \
diff --git a/bridges/test/java_uno/any/test_javauno_any.map b/bridges/test/java_uno/any/test_javauno_any.map
index 4959db8fccc8..c50f7b162db7 100644
--- a/bridges/test/java_uno/any/test_javauno_any.map
+++ b/bridges/test/java_uno/any/test_javauno_any.map
@@ -1,4 +1,4 @@
-UDK_3.1 {
+UDK_3_0_0 {
global:
Java_test_java_1uno_anytest_TestJni_create_1jni_1transport;
local:
diff --git a/bridges/test/java_uno/equals/makefile.mk b/bridges/test/java_uno/equals/makefile.mk
index 3b71858498fb..9ac266f80ff5 100644
--- a/bridges/test/java_uno/equals/makefile.mk
+++ b/bridges/test/java_uno/equals/makefile.mk
@@ -50,7 +50,7 @@ SLOFILES = $(SLO)$/testequals.obj
SHL1TARGET = testequals.uno
SHL1OBJS = $(SLOFILES)
SHL1STDLIBS = $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB)
-SHL1VERSIONMAP = testequals.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1IMPLIB = itestequals
JAVAFILES = TestEquals.java
@@ -58,7 +58,7 @@ JARFILES = juh.jar jurt.jar ridl.jar
.INCLUDE: target.mk
-ALLTAR: $(BIN)$/testequals$(SCRIPTEXT)
+ALLTAR: $(BIN)$/testequals
.IF "$(GUI)" == "WNT"
GIVE_EXEC_RIGHTS = @echo
@@ -81,7 +81,7 @@ $(MISC)$/$(TARGET).rdb: types.idl
$(SLOFILES) $(JAVACLASSFILES): $(MISC)$/$(TARGET).rdb
-$(BIN)$/testequals$(SCRIPTEXT): $(BIN)$/testequals_services.rdb
+$(BIN)$/testequals: $(BIN)$/testequals_services.rdb
echo '$(AUGMENT_LIBRARY_PATH)' java -classpath \
..$/class$/test$(PATH_SEPERATOR)..$/class$(PATH_SEPERATOR)\
..$/class$/java_uno.jar$(PATH_SEPERATOR)$(EXEC_CLASSPATH) \
diff --git a/bridges/test/java_uno/equals/testequals.map b/bridges/test/java_uno/equals/testequals.map
deleted file mode 100644
index 227274db922d..000000000000
--- a/bridges/test/java_uno/equals/testequals.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3.1 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
- local:
- *;
-};
diff --git a/bridges/test/java_uno/nativethreadpool/makefile.mk b/bridges/test/java_uno/nativethreadpool/makefile.mk
index 162c5c225175..d4926e07307b 100644
--- a/bridges/test/java_uno/nativethreadpool/makefile.mk
+++ b/bridges/test/java_uno/nativethreadpool/makefile.mk
@@ -97,7 +97,7 @@ $(BIN)$/$(TARGET).rdb .ERRREMOVE: $(MISC)$/$(TARGET)$/types.rdb \
$(REGCOMP) -register -r $(MISC)$/$(TARGET)$/bootstrap.rdb \
-c javaloader.uno$(DLLPOST) -c javavm.uno$(DLLPOST) \
-c stocservices.uno$(DLLPOST)
-.IF "$(GUI)" == "WNT" || "$(USE_SHELL)" != "bash"
+.IF "$(GUI)" == "WNT"
ERROR -- missing platform
.ELSE # GUI, WNT
+ export OO_JAVA_PROPERTIES='RuntimeLib=$(JVM_LIB_URL)' && \
@@ -107,7 +107,7 @@ $(BIN)$/$(TARGET).rdb .ERRREMOVE: $(MISC)$/$(TARGET)$/types.rdb \
.ENDIF # GUI, WNT
test .PHONY: $(SHL1TARGETN) $(BIN)$/$(TARGET).uno.jar $(BIN)$/$(TARGET).rdb
-.IF "$(GUI)" == "WNT" || "$(USE_SHELL)" != "bash"
+.IF "$(GUI)" == "WNT"
ERROR -- missing platform
.ELSE # GUI, WNT
$(AUGMENT_LIBRARY_PATH) uno -c test.javauno.nativethreadpool.server \
diff --git a/cairo/cairo/makefile.mk b/cairo/cairo/makefile.mk
index 2cf9de19ec0a..e0b12cc9f551 100644
--- a/cairo/cairo/makefile.mk
+++ b/cairo/cairo/makefile.mk
@@ -50,6 +50,8 @@ all:
CAIROVERSION=1.8.0
TARFILE_NAME=$(PRJNAME)-$(CAIROVERSION)
+TARFILE_MD5=4ea70ea87b47e92d318d4e7f5b940f47
+
PATCH_FILES=..$/$(TARFILE_NAME).patch
cairo_CFLAGS=$(SOLARINC)
diff --git a/cairo/pixman/makefile.mk b/cairo/pixman/makefile.mk
index c32cf906a1dd..20773c7597f8 100644
--- a/cairo/pixman/makefile.mk
+++ b/cairo/pixman/makefile.mk
@@ -50,7 +50,9 @@ all:
PIXMANVERSION=0.12.0
TARFILE_NAME=pixman-$(PIXMANVERSION)
-PATCH_FILE_NAME=..$/$(TARFILE_NAME).patch
+TARFILE_MD5=09357cc74975b01714e00c5899ea1881
+
+PATCH_FILES=..$/$(TARFILE_NAME).patch
# Note: we are building static pixman library to avoid linking problems.
# However, for Unix dynamic library must be used (especially due to 64bit issues)
diff --git a/canvas/inc/canvas/base/graphicdevicebase.hxx b/canvas/inc/canvas/base/graphicdevicebase.hxx
index 20de68094028..6750c28e22c8 100644
--- a/canvas/inc/canvas/base/graphicdevicebase.hxx
+++ b/canvas/inc/canvas/base/graphicdevicebase.hxx
@@ -30,11 +30,11 @@
#include <rtl/ref.hxx>
#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/util/XUpdatable.hpp>
#include <com/sun/star/rendering/XGraphicDevice.hpp>
#include <com/sun/star/rendering/XColorSpace.hpp>
-#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
#include <canvas/parametricpolypolygon.hxx>
#include <canvas/propertysethelper.hxx>
@@ -47,8 +47,7 @@ namespace canvas
/** Helper template base class for XGraphicDevice implementations.
This base class provides partial implementations of the
- XGraphicDevice-related interface, such as
- XParametricPolyPolygon2DFactory and XColorSpace.
+ XGraphicDevice-related interface, such as XColorSpace.
This template basically interposes itself between the full
interface you implement (i.e. not restricted to XGraphicDevice
@@ -246,7 +245,7 @@ namespace canvas
return maDeviceHelper.createVolatileAlphaBitmap( this, size );
}
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2DFactory > SAL_CALL getParametricPolyPolygonFactory( ) throw (::com::sun::star::uno::RuntimeException)
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > SAL_CALL getParametricPolyPolygonFactory( ) throw (::com::sun::star::uno::RuntimeException)
{
return this;
}
@@ -265,79 +264,26 @@ namespace canvas
return maDeviceHelper.enterFullScreenMode( bEnter );
}
- // XParametricPolyPolygon2DFactory
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createLinearHorizontalGradient( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors, const ::com::sun::star::uno::Sequence< double >& stops ) throw (::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException)
+ // XMultiServiceFactory
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstance( const ::rtl::OUString& aServiceSpecifier ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
{
return ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D >(
- ParametricPolyPolygon::createLinearHorizontalGradient( this,
- colors,
- stops ) );
+ ParametricPolyPolygon::create(this,
+ aServiceSpecifier,
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >()));
}
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createAxialHorizontalGradient( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors, const ::com::sun::star::uno::Sequence< double >& stops ) throw (::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException)
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstanceWithArguments( const ::rtl::OUString& aServiceSpecifier, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& Arguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
{
return ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D >(
- ParametricPolyPolygon::createAxialHorizontalGradient( this,
- colors,
- stops ) );
+ ParametricPolyPolygon::create(this,
+ aServiceSpecifier,
+ Arguments));
}
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createEllipticalGradient( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors, const ::com::sun::star::uno::Sequence< double >& stops, const ::com::sun::star::geometry::RealRectangle2D& boundRect ) throw (::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException)
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableServiceNames( ) throw (::com::sun::star::uno::RuntimeException)
{
- return ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D >(
- ParametricPolyPolygon::createEllipticalGradient( this,
- colors,
- stops,
- boundRect ) );
- }
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createRectangularGradient( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors, const ::com::sun::star::uno::Sequence< double >& stops, const ::com::sun::star::geometry::RealRectangle2D& boundRect ) throw (::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException)
- {
- return ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D >(
- ParametricPolyPolygon::createRectangularGradient( this,
- colors,
- stops,
- boundRect ) );
- }
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createVerticalLinesHatch( const ::com::sun::star::uno::Sequence< double >& /*leftColor*/,
- const ::com::sun::star::uno::Sequence< double >& /*rightColor*/ ) throw (::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException)
- {
- // TODO(F1): hatch factory NYI
- return ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XParametricPolyPolygon2D >();
- }
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createOrthogonalLinesHatch( const ::com::sun::star::uno::Sequence< double >& /*leftTopColor*/,
- const ::com::sun::star::uno::Sequence< double >& /*rightBottomColor*/ ) throw (::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException)
- {
- // TODO(F1): hatch factory NYI
- return ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XParametricPolyPolygon2D >();
- }
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createThreeCrossingLinesHatch( const ::com::sun::star::uno::Sequence< double >& /*startColor*/,
- const ::com::sun::star::uno::Sequence< double >& /*endColor*/ ) throw (::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException)
- {
- // TODO(F1): hatch factory NYI
- return ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XParametricPolyPolygon2D >();
- }
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XParametricPolyPolygon2D > SAL_CALL createFourCrossingLinesHatch( const ::com::sun::star::uno::Sequence< double >& /*startColor*/,
- const ::com::sun::star::uno::Sequence< double >& /*endColor*/ ) throw (::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException)
- {
- // TODO(F1): hatch factory NYI
- return ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XParametricPolyPolygon2D >();
+ return ParametricPolyPolygon::getAvailableServiceNames();
}
diff --git a/canvas/inc/canvas/canvastools.hxx b/canvas/inc/canvas/canvastools.hxx
index de4785346909..6c9fdfee484a 100644..100755
--- a/canvas/inc/canvas/canvastools.hxx
+++ b/canvas/inc/canvas/canvastools.hxx
@@ -66,6 +66,7 @@ namespace com { namespace sun { namespace star { namespace rendering
struct ViewState;
struct IntegerBitmapLayout;
class XCanvas;
+ struct Texture;
class XIntegerBitmapColorSpace;
class XPolyPolygon2D;
@@ -414,28 +415,6 @@ namespace canvas
*/
::basegfx::B2IRange spritePixelAreaFromB2DRange( const ::basegfx::B2DRange& rRange );
- /** This method clamps the given value to the specified range
-
- @param val
- The value to clamp
-
- @param minVal
- The minimal value val is allowed to attain
-
- @param maxVal
- The maximal value val is allowed to attain
-
- @return the clamped value
- */
- template< typename T > T clamp( T val,
- T minVal,
- T maxVal )
- {
- return ::std::max( minVal,
- ::std::min( maxVal,
- val ) );
- }
-
/** Retrieve various internal properties of the actual canvas implementation.
This method retrieves a bunch of internal, implementation-
@@ -518,6 +497,18 @@ namespace canvas
*/
::basegfx::B2DPolyPolygon getBoundMarksPolyPolygon( const ::basegfx::B2DRange& rRange );
+ /** Calculate number of gradient "strips" to generate (takes
+ into account device resolution)
+
+ @param nColorSteps
+ Maximal integer difference between all color stops, needed
+ for smooth gradient color differences
+ */
+ int calcGradientStepCount( ::basegfx::B2DHomMatrix& rTotalTransform,
+ const ::com::sun::star::rendering::ViewState& viewState,
+ const ::com::sun::star::rendering::RenderState& renderState,
+ const ::com::sun::star::rendering::Texture& texture,
+ int nColorSteps );
/** A very simplistic map for ASCII strings and arbitrary value
types.
diff --git a/canvas/inc/canvas/parametricpolypolygon.hxx b/canvas/inc/canvas/parametricpolypolygon.hxx
index 4bd7e14b0229..aac98a67a713 100644
--- a/canvas/inc/canvas/parametricpolypolygon.hxx
+++ b/canvas/inc/canvas/parametricpolypolygon.hxx
@@ -30,7 +30,7 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/rendering/XGraphicDevice.hpp>
-#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
+#include <com/sun/star/rendering/XParametricPolyPolygon2D.hpp>
#include <cppuhelper/compbase2.hxx>
#include <comphelper/broadcasthelper.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
@@ -59,7 +59,6 @@ namespace canvas
enum GradientType
{
GRADIENT_LINEAR,
- GRADIENT_AXIAL,
GRADIENT_ELLIPTICAL,
GRADIENT_RECTANGULAR
};
@@ -100,24 +99,11 @@ namespace canvas
const GradientType meType;
};
- static ParametricPolyPolygon* createLinearHorizontalGradient( const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XGraphicDevice >& rDevice,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors,
- const ::com::sun::star::uno::Sequence< double >& stops );
- static ParametricPolyPolygon* createAxialHorizontalGradient( const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XGraphicDevice >& rDevice,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors,
- const ::com::sun::star::uno::Sequence< double >& stops );
- static ParametricPolyPolygon* createEllipticalGradient( const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XGraphicDevice >& rDevice,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors,
- const ::com::sun::star::uno::Sequence< double >& stops,
- const ::com::sun::star::geometry::RealRectangle2D& boundRect );
- static ParametricPolyPolygon* createRectangularGradient( const ::com::sun::star::uno::Reference<
- ::com::sun::star::rendering::XGraphicDevice >& rDevice,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors,
- const ::com::sun::star::uno::Sequence< double >& stops,
- const ::com::sun::star::geometry::RealRectangle2D& boundRect );
+ static ::com::sun::star::uno::Sequence< ::rtl::OUString > getAvailableServiceNames();
+ static ParametricPolyPolygon* create(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >& rDevice,
+ const ::rtl::OUString& rServiceName,
+ const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& rArgs );
/// Dispose all internal references
virtual void SAL_CALL disposing();
@@ -140,6 +126,20 @@ namespace canvas
~ParametricPolyPolygon(); // we're a ref-counted UNO class. _We_ destroy ourselves.
private:
+ static ParametricPolyPolygon* createLinearHorizontalGradient( const ::com::sun::star::uno::Reference<
+ ::com::sun::star::rendering::XGraphicDevice >& rDevice,
+ const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors,
+ const ::com::sun::star::uno::Sequence< double >& stops );
+ static ParametricPolyPolygon* createEllipticalGradient( const ::com::sun::star::uno::Reference<
+ ::com::sun::star::rendering::XGraphicDevice >& rDevice,
+ const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors,
+ const ::com::sun::star::uno::Sequence< double >& stops,
+ double fAspect );
+ static ParametricPolyPolygon* createRectangularGradient( const ::com::sun::star::uno::Reference<
+ ::com::sun::star::rendering::XGraphicDevice >& rDevice,
+ const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< double > >& colors,
+ const ::com::sun::star::uno::Sequence< double >& stops,
+ double fAspect );
/// Private, because objects can only be created from the static factories
ParametricPolyPolygon( const ::com::sun::star::uno::Reference<
diff --git a/canvas/prj/build.lst b/canvas/prj/build.lst
index 28e8524a9b38..cacbdb5bb894 100644
--- a/canvas/prj/build.lst
+++ b/canvas/prj/build.lst
@@ -7,5 +7,4 @@ cv canvas\source\simplecanvas nmake - all cv_simplecanvas cv_tools cv_inc
cv canvas\source\cairo nmake - all cv_cairo cv_tools cv_inc NULL
cv canvas\source\directx nmake - w cv_directx cv_tools cv_inc NULL
cv canvas\source\null nmake - all cv_null cv_tools cv_inc NULL
-cv canvas\source\java nmake - all cv_java cv_inc NULL
cv canvas\source\factory nmake - all cv_factory cv_inc NULL
diff --git a/canvas/source/cairo/cairo_canvas.hxx b/canvas/source/cairo/cairo_canvas.hxx
index 26e2904cf71f..bbcb89c54c7d 100644
--- a/canvas/source/cairo/cairo_canvas.hxx
+++ b/canvas/source/cairo/cairo_canvas.hxx
@@ -41,7 +41,6 @@
#include <com/sun/star/rendering/XIntegerBitmap.hpp>
#include <com/sun/star/rendering/XGraphicDevice.hpp>
#include <com/sun/star/rendering/XBufferController.hpp>
-#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
#include <cppuhelper/compbase7.hxx>
#include <comphelper/uno3.hxx>
@@ -65,7 +64,7 @@ namespace cairocanvas
typedef ::cppu::WeakComponentImplHelper7< ::com::sun::star::rendering::XBitmapCanvas,
::com::sun::star::rendering::XIntegerBitmap,
::com::sun::star::rendering::XGraphicDevice,
- ::com::sun::star::rendering::XParametricPolyPolygon2DFactory,
+ ::com::sun::star::lang::XMultiServiceFactory,
::com::sun::star::util::XUpdatable,
::com::sun::star::beans::XPropertySet,
::com::sun::star::lang::XServiceName > GraphicDeviceBase_Base;
diff --git a/canvas/source/cairo/cairo_canvashelper.cxx b/canvas/source/cairo/cairo_canvashelper.cxx
index 17d187d46b27..eec6a09fb215 100644
--- a/canvas/source/cairo/cairo_canvashelper.cxx
+++ b/canvas/source/cairo/cairo_canvashelper.cxx
@@ -53,6 +53,8 @@
#include <basegfx/polygon/b2dpolypolygon.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <basegfx/tools/canvastools.hxx>
+#include <basegfx/tools/keystoplerp.hxx>
+#include <basegfx/tools/lerp.hxx>
#include <comphelper/sequence.hxx>
#include <cppuhelper/compbase1.hxx>
@@ -70,6 +72,7 @@
#include "cairo_canvashelper.hxx"
#include "cairo_canvasbitmap.hxx"
+#include <boost/tuple/tuple.hpp>
#include <algorithm>
using namespace ::cairo;
@@ -119,9 +122,29 @@ namespace cairocanvas
mpCairo = pSurface->getCairo();
}
+ static void setColor( Cairo* pCairo,
+ const uno::Sequence<double>& rColor )
+ {
+ if( rColor.getLength() > 3 )
+ {
+ const double alpha = rColor[3];
+
+ cairo_set_source_rgba( pCairo,
+ alpha*rColor[0],
+ alpha*rColor[1],
+ alpha*rColor[2],
+ alpha );
+ }
+ else if( rColor.getLength() == 3 )
+ cairo_set_source_rgb( pCairo,
+ rColor[0],
+ rColor[1],
+ rColor[2] );
+ }
+
void CanvasHelper::useStates( const rendering::ViewState& viewState,
const rendering::RenderState& renderState,
- bool setColor )
+ bool bSetColor )
{
Matrix aViewMatrix;
Matrix aRenderMatrix;
@@ -155,19 +178,8 @@ namespace cairocanvas
OSL_TRACE ("render clip END");
}
- if( setColor ) {
- if( renderState.DeviceColor.getLength() > 3 )
- cairo_set_source_rgba( mpCairo.get(),
- renderState.DeviceColor [0],
- renderState.DeviceColor [1],
- renderState.DeviceColor [2],
- renderState.DeviceColor [3] );
- else if (renderState.DeviceColor.getLength() == 3)
- cairo_set_source_rgb( mpCairo.get(),
- renderState.DeviceColor [0],
- renderState.DeviceColor [1],
- renderState.DeviceColor [2] );
- }
+ if( bSetColor )
+ setColor(mpCairo.get(),renderState.DeviceColor);
cairo_operator_t compositingMode( CAIRO_OPERATOR_OVER );
switch( renderState.CompositeOperation )
@@ -662,11 +674,33 @@ namespace cairocanvas
double alpha = rColor[3];
// cairo expects premultiplied alpha
cairo_pattern_add_color_stop_rgba( pPattern, stop, rColor[0]*alpha, rColor[1]*alpha, rColor[2]*alpha, alpha );
- //cairo_pattern_add_color_stop_rgba( pPattern, stop, rColor[0], rColor[1], rColor[2], alpha );
}
}
}
+ static uno::Sequence<double> lerp(const uno::Sequence<double>& rLeft, const uno::Sequence<double>& rRight, double fAlpha)
+ {
+ if( rLeft.getLength() == 3 )
+ {
+ uno::Sequence<double> aRes(3);
+ aRes[0] = basegfx::tools::lerp(rLeft[0],rRight[0],fAlpha);
+ aRes[1] = basegfx::tools::lerp(rLeft[1],rRight[1],fAlpha);
+ aRes[2] = basegfx::tools::lerp(rLeft[2],rRight[2],fAlpha);
+ return aRes;
+ }
+ else if( rLeft.getLength() == 4 )
+ {
+ uno::Sequence<double> aRes(4);
+ aRes[0] = basegfx::tools::lerp(rLeft[0],rRight[0],fAlpha);
+ aRes[1] = basegfx::tools::lerp(rLeft[1],rRight[1],fAlpha);
+ aRes[2] = basegfx::tools::lerp(rLeft[2],rRight[2],fAlpha);
+ aRes[3] = basegfx::tools::lerp(rLeft[3],rRight[3],fAlpha);
+ return aRes;
+ }
+
+ return uno::Sequence<double>();
+ }
+
static Pattern* patternFromParametricPolyPolygon( ::canvas::ParametricPolyPolygon& rPolygon )
{
Pattern* pPattern = NULL;
@@ -675,7 +709,6 @@ namespace cairocanvas
// undef macros from vclenum.hxx which conflicts with GradientType enum values
#undef GRADIENT_LINEAR
-#undef GRADIENT_AXIAL
#undef GRADIENT_ELLIPTICAL
switch( aValues.meType ) {
@@ -688,26 +721,17 @@ namespace cairocanvas
addColorStops( pPattern, aValues.maColors, aValues.maStops );
break;
- // FIXME: NYI
- case ::canvas::ParametricPolyPolygon::GRADIENT_RECTANGULAR:
- case ::canvas::ParametricPolyPolygon::GRADIENT_AXIAL:
- x0 = 0;
- y0 = 0;
- x1 = 1;
- y1 = 0;
- pPattern = cairo_pattern_create_linear( x0, y0, x1, y1 );
- addColorStops( pPattern, aValues.maColors, aValues.maStops );
- break;
-
case ::canvas::ParametricPolyPolygon::GRADIENT_ELLIPTICAL:
- cx = 0.5;
- cy = 0.5;
+ cx = 0;
+ cy = 0;
r0 = 0;
- r1 = 0.5;
+ r1 = 1;
- pPattern = cairo_pattern_create_radial( cx, cy, r0, cx, cy, r1 );
+ pPattern = cairo_pattern_create_radial( cx, cy, r0, cy, cy, r1 );
addColorStops( pPattern, aValues.maColors, aValues.maStops, true );
break;
+ default:
+ break;
}
return pPattern;
@@ -716,7 +740,8 @@ namespace cairocanvas
static void doOperation( Operation aOperation,
Cairo* pCairo,
const uno::Sequence< rendering::Texture >* pTextures,
- const SurfaceProviderRef& pDevice )
+ const SurfaceProviderRef& pDevice,
+ const basegfx::B2DRange& rBounds )
{
switch( aOperation ) {
case Fill:
@@ -751,7 +776,20 @@ namespace cairocanvas
if( aTexture.RepeatModeX == rendering::TexturingMode::REPEAT &&
aTexture.RepeatModeY == rendering::TexturingMode::REPEAT )
+ {
cairo_pattern_set_extend( pPattern, CAIRO_EXTEND_REPEAT );
+ }
+ else if ( aTexture.RepeatModeX == rendering::TexturingMode::NONE &&
+ aTexture.RepeatModeY == rendering::TexturingMode::NONE )
+ {
+ cairo_pattern_set_extend( pPattern, CAIRO_EXTEND_NONE );
+ }
+ else if ( aTexture.RepeatModeX == rendering::TexturingMode::CLAMP &&
+ aTexture.RepeatModeY == rendering::TexturingMode::CLAMP )
+ {
+ cairo_pattern_set_extend( pPattern, CAIRO_EXTEND_PAD );
+ }
+
aScaledTextureMatrix.x0 = basegfx::fround( aScaledTextureMatrix.x0 );
aScaledTextureMatrix.y0 = basegfx::fround( aScaledTextureMatrix.y0 );
cairo_pattern_set_matrix( pPattern, &aScaledTextureMatrix );
@@ -787,19 +825,70 @@ namespace cairocanvas
cairo_matrix_init( &aTextureMatrix,
aTransform.m00, aTransform.m10, aTransform.m01,
aTransform.m11, aTransform.m02, aTransform.m12);
- Pattern* pPattern = patternFromParametricPolyPolygon( *pPolyImpl );
+ if( pPolyImpl->getValues().meType == canvas::ParametricPolyPolygon::GRADIENT_RECTANGULAR )
+ {
+ // no general path gradient yet in cairo; emulate then
+ cairo_save( pCairo );
+ cairo_clip( pCairo );
+
+ // fill bound rect with start color
+ cairo_rectangle( pCairo, rBounds.getMinX(), rBounds.getMinY(),
+ rBounds.getWidth(), rBounds.getHeight() );
+ setColor(pCairo,pPolyImpl->getValues().maColors[0]);
+ cairo_fill(pCairo);
+
+ cairo_transform( pCairo, &aTextureMatrix );
+
+ // longest line in gradient bound rect
+ const unsigned int nGradientSize(
+ static_cast<unsigned int>(
+ ::basegfx::B2DVector(rBounds.getMinimum() - rBounds.getMaximum()).getLength() + 1.0 ) );
+
+ // typical number for pixel of the same color (strip size)
+ const unsigned int nStripSize( nGradientSize < 50 ? 2 : 4 );
+
+ // use at least three steps, and at utmost the number of color
+ // steps
+ const unsigned int nStepCount(
+ ::std::max(
+ 3U,
+ ::std::min(
+ nGradientSize / nStripSize,
+ 128U )) + 1 );
+
+ const uno::Sequence<double>* pColors=&pPolyImpl->getValues().maColors[0];
+ basegfx::tools::KeyStopLerp aLerper(pPolyImpl->getValues().maStops);
+ for( unsigned int i=1; i<nStepCount; ++i )
+ {
+ const double fT( i/double(nStepCount) );
- if( pPattern ) {
- OSL_TRACE( "filling with pattern" );
+ std::ptrdiff_t nIndex;
+ double fAlpha;
+ boost::tuples::tie(nIndex,fAlpha)=aLerper.lerp(fT);
- cairo_save( pCairo );
+ setColor(pCairo, lerp(pColors[nIndex], pColors[nIndex+1], fAlpha));
+ cairo_rectangle( pCairo, -1+fT, -1+fT, 2-2*fT, 2-2*fT );
+ cairo_fill(pCairo);
+ }
- cairo_transform( pCairo, &aTextureMatrix );
- cairo_set_source( pCairo, pPattern );
- cairo_fill( pCairo );
cairo_restore( pCairo );
+ }
+ else
+ {
+ Pattern* pPattern = patternFromParametricPolyPolygon( *pPolyImpl );
+
+ if( pPattern ) {
+ OSL_TRACE( "filling with pattern" );
- cairo_pattern_destroy( pPattern );
+ cairo_save( pCairo );
+
+ cairo_transform( pCairo, &aTextureMatrix );
+ cairo_set_source( pCairo, pPattern );
+ cairo_fill( pCairo );
+ cairo_restore( pCairo );
+
+ cairo_pattern_destroy( pPattern );
+ }
}
}
}
@@ -932,7 +1021,7 @@ namespace cairocanvas
if( aOperation == Fill && pTextures ) {
cairo_set_matrix( pCairo, &aOrigMatrix );
- doOperation( aOperation, pCairo, pTextures, pDevice );
+ doOperation( aOperation, pCairo, pTextures, pDevice, aPolyPolygon.getB2DRange() );
cairo_set_matrix( pCairo, &aIdentityMatrix );
}
} else {
@@ -945,7 +1034,7 @@ namespace cairocanvas
}
}
if( bOpToDo && ( aOperation != Fill || !pTextures ) )
- doOperation( aOperation, pCairo, pTextures, pDevice );
+ doOperation( aOperation, pCairo, pTextures, pDevice, aPolyPolygon.getB2DRange() );
cairo_set_matrix( pCairo, &aOrigMatrix );
@@ -980,11 +1069,11 @@ namespace cairocanvas
aEdge.append(aCandidate.getB2DPoint(0));
aEdge.append(basegfx::B2DPoint(0.0, 0.0));
- for(sal_uInt32 a(0); a < nEdgeCount; a++)
+ for(sal_uInt32 b(0); b < nEdgeCount; b++)
{
- const sal_uInt32 nNextIndex((a + 1) % nPointCount);
+ const sal_uInt32 nNextIndex((b + 1) % nPointCount);
aEdge.setB2DPoint(1, aCandidate.getB2DPoint(nNextIndex));
- aEdge.setNextControlPoint(0, aCandidate.getNextControlPoint(a));
+ aEdge.setNextControlPoint(0, aCandidate.getNextControlPoint(b));
aEdge.setPrevControlPoint(1, aCandidate.getPrevControlPoint(nNextIndex));
doPolyPolygonImplementation( basegfx::B2DPolyPolygon(aEdge),
@@ -1209,12 +1298,12 @@ namespace cairocanvas
const rendering::ViewState& viewState,
const rendering::RenderState& renderState,
const geometry::IntegerSize2D& rSize,
- bool /*bModulateColors*/,
+ bool bModulateColors,
bool bHasAlpha )
{
SurfaceSharedPtr pSurface=pInputSurface;
uno::Reference< rendering::XCachedPrimitive > rv = uno::Reference< rendering::XCachedPrimitive >(NULL);
- geometry::IntegerSize2D aBitmapSize = rSize;
+ geometry::IntegerSize2D aBitmapSize = rSize;
if( mpCairo ) {
cairo_save( mpCairo.get() );
@@ -1236,38 +1325,38 @@ namespace cairocanvas
::rtl::math::approxEqual( aMatrix.y0, 0 ) &&
basegfx::fround( rSize.Width * aMatrix.xx ) > 8 &&
basegfx::fround( rSize.Height* aMatrix.yy ) > 8 )
- {
- double dWidth, dHeight;
-
- dWidth = basegfx::fround( rSize.Width * aMatrix.xx );
- dHeight = basegfx::fround( rSize.Height* aMatrix.yy );
- aBitmapSize.Width = static_cast<sal_Int32>( dWidth );
- aBitmapSize.Height = static_cast<sal_Int32>( dHeight );
-
- SurfaceSharedPtr pScaledSurface = mpSurfaceProvider->createSurface(
- ::basegfx::B2ISize( aBitmapSize.Width, aBitmapSize.Height ),
- bHasAlpha ? CAIRO_CONTENT_COLOR_ALPHA : CAIRO_CONTENT_COLOR );
- CairoSharedPtr pCairo = pScaledSurface->getCairo();
-
- cairo_set_operator( pCairo.get(), CAIRO_OPERATOR_SOURCE );
- // add 0.5px to size to avoid rounding errors in cairo, leading sometimes to random data on the image right/bottom borders
- cairo_scale( pCairo.get(), (dWidth+0.5)/rSize.Width, (dHeight+0.5)/rSize.Height );
- cairo_set_source_surface( pCairo.get(), pSurface->getCairoSurface().get(), 0, 0 );
- cairo_paint( pCairo.get() );
-
- pSurface = pScaledSurface;
-
- aMatrix.xx = aMatrix.yy = 1;
- cairo_set_matrix( mpCairo.get(), &aMatrix );
-
- rv = uno::Reference< rendering::XCachedPrimitive >(
- new CachedBitmap( pSurface, viewState, renderState,
- // cast away const, need to
- // change refcount (as this is
- // ~invisible to client code,
- // still logically const)
- const_cast< rendering::XCanvas* >(pCanvas)) );
- }
+ {
+ double dWidth, dHeight;
+
+ dWidth = basegfx::fround( rSize.Width * aMatrix.xx );
+ dHeight = basegfx::fround( rSize.Height* aMatrix.yy );
+ aBitmapSize.Width = static_cast<sal_Int32>( dWidth );
+ aBitmapSize.Height = static_cast<sal_Int32>( dHeight );
+
+ SurfaceSharedPtr pScaledSurface = mpSurfaceProvider->createSurface(
+ ::basegfx::B2ISize( aBitmapSize.Width, aBitmapSize.Height ),
+ bHasAlpha ? CAIRO_CONTENT_COLOR_ALPHA : CAIRO_CONTENT_COLOR );
+ CairoSharedPtr pCairo = pScaledSurface->getCairo();
+
+ cairo_set_operator( pCairo.get(), CAIRO_OPERATOR_SOURCE );
+ // add 0.5px to size to avoid rounding errors in cairo, leading sometimes to random data on the image right/bottom borders
+ cairo_scale( pCairo.get(), (dWidth+0.5)/rSize.Width, (dHeight+0.5)/rSize.Height );
+ cairo_set_source_surface( pCairo.get(), pSurface->getCairoSurface().get(), 0, 0 );
+ cairo_paint( pCairo.get() );
+
+ pSurface = pScaledSurface;
+
+ aMatrix.xx = aMatrix.yy = 1;
+ cairo_set_matrix( mpCairo.get(), &aMatrix );
+
+ rv = uno::Reference< rendering::XCachedPrimitive >(
+ new CachedBitmap( pSurface, viewState, renderState,
+ // cast away const, need to
+ // change refcount (as this is
+ // ~invisible to client code,
+ // still logically const)
+ const_cast< rendering::XCanvas* >(pCanvas)) );
+ }
if( !bHasAlpha && mbHaveAlpha )
{
@@ -1308,7 +1397,11 @@ namespace cairocanvas
cairo_set_operator( mpCairo.get(), CAIRO_OPERATOR_SOURCE );
cairo_rectangle( mpCairo.get(), 0, 0, aBitmapSize.Width, aBitmapSize.Height );
cairo_clip( mpCairo.get() );
- cairo_paint( mpCairo.get() );
+
+ if( bModulateColors )
+ cairo_paint_with_alpha( mpCairo.get(), renderState.DeviceColor[3] );
+ else
+ cairo_paint( mpCairo.get() );
cairo_restore( mpCairo.get() );
} else
OSL_TRACE ("CanvasHelper called after it was disposed");
@@ -1347,15 +1440,35 @@ namespace cairocanvas
return rv;
}
- uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawBitmapModulated( const rendering::XCanvas* ,
- const uno::Reference< rendering::XBitmap >& /*xBitmap*/,
- const rendering::ViewState& /*viewState*/,
- const rendering::RenderState& /*renderState*/ )
+ uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawBitmapModulated( const rendering::XCanvas* pCanvas,
+ const uno::Reference< rendering::XBitmap >& xBitmap,
+ const rendering::ViewState& viewState,
+ const rendering::RenderState& renderState )
{
- // TODO(F3): Implement modulated bitmap!
+#ifdef CAIRO_CANVAS_PERF_TRACE
+ struct timespec aTimer;
+ mxDevice->startPerfTrace( &aTimer );
+#endif
- // TODO(P1): Provide caching here.
- return uno::Reference< rendering::XCachedPrimitive >(NULL);
+ uno::Reference< rendering::XCachedPrimitive > rv;
+ unsigned char* data = NULL;
+ bool bHasAlpha = false;
+ SurfaceSharedPtr pSurface = surfaceFromXBitmap( xBitmap, mpSurfaceProvider, data, bHasAlpha );
+ geometry::IntegerSize2D aSize = xBitmap->getSize();
+
+ if( pSurface ) {
+ rv = implDrawBitmapSurface( pCanvas, pSurface, viewState, renderState, aSize, true, bHasAlpha );
+
+ if( data )
+ free( data );
+ } else
+ rv = uno::Reference< rendering::XCachedPrimitive >(NULL);
+
+#ifdef CAIRO_CANVAS_PERF_TRACE
+ mxDevice->stopPerfTrace( &aTimer, "drawBitmap" );
+#endif
+
+ return rv;
}
uno::Reference< rendering::XGraphicDevice > CanvasHelper::getDevice()
@@ -1678,12 +1791,12 @@ namespace cairocanvas
rendering::RGBColor* pOut( aRes.getArray() );
for( sal_Size i=0; i<nLen; i+=4 )
{
- const sal_Int8 nAlpha(pIn[3]);
- if( nAlpha )
+ const double fAlpha((sal_uInt8)pIn[3]);
+ if( fAlpha )
*pOut++ = rendering::RGBColor(
- vcl::unotools::toDoubleColor(pIn[2]/nAlpha),
- vcl::unotools::toDoubleColor(pIn[1]/nAlpha),
- vcl::unotools::toDoubleColor(pIn[0]/nAlpha));
+ pIn[2]/fAlpha,
+ pIn[1]/fAlpha,
+ pIn[0]/fAlpha);
else
*pOut++ = rendering::RGBColor(0,0,0);
pIn += 4;
@@ -1703,13 +1816,13 @@ namespace cairocanvas
rendering::ARGBColor* pOut( aRes.getArray() );
for( sal_Size i=0; i<nLen; i+=4 )
{
- const sal_Int8 nAlpha(pIn[3]);
- if( nAlpha )
+ const double fAlpha((sal_uInt8)pIn[3]);
+ if( fAlpha )
*pOut++ = rendering::ARGBColor(
- vcl::unotools::toDoubleColor(nAlpha),
- vcl::unotools::toDoubleColor(pIn[2]/nAlpha),
- vcl::unotools::toDoubleColor(pIn[1]/nAlpha),
- vcl::unotools::toDoubleColor(pIn[0]/nAlpha));
+ fAlpha/255.0,
+ pIn[2]/fAlpha,
+ pIn[1]/fAlpha,
+ pIn[0]/fAlpha);
else
*pOut++ = rendering::ARGBColor(0,0,0,0);
pIn += 4;
diff --git a/canvas/source/cairo/cairo_spritecanvas.hxx b/canvas/source/cairo/cairo_spritecanvas.hxx
index 0c942cac1ed3..fcc0ae76839b 100644
--- a/canvas/source/cairo/cairo_spritecanvas.hxx
+++ b/canvas/source/cairo/cairo_spritecanvas.hxx
@@ -39,7 +39,6 @@
#include <com/sun/star/rendering/XIntegerBitmap.hpp>
#include <com/sun/star/rendering/XGraphicDevice.hpp>
#include <com/sun/star/rendering/XBufferController.hpp>
-#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
#include <cppuhelper/compbase9.hxx>
#include <comphelper/uno3.hxx>
@@ -63,7 +62,7 @@ namespace cairocanvas
typedef ::cppu::WeakComponentImplHelper9< ::com::sun::star::rendering::XSpriteCanvas,
::com::sun::star::rendering::XIntegerBitmap,
::com::sun::star::rendering::XGraphicDevice,
- ::com::sun::star::rendering::XParametricPolyPolygon2DFactory,
+ ::com::sun::star::lang::XMultiServiceFactory,
::com::sun::star::rendering::XBufferController,
::com::sun::star::awt::XWindowListener,
::com::sun::star::util::XUpdatable,
diff --git a/canvas/source/cairo/exports.map b/canvas/source/cairo/exports.map
deleted file mode 100644
index 4101b0d761a9..000000000000
--- a/canvas/source/cairo/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-CAN_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/canvas/source/cairo/makefile.mk b/canvas/source/cairo/makefile.mk
index 2c568a4efdbd..b0ff10fe96b0 100644
--- a/canvas/source/cairo/makefile.mk
+++ b/canvas/source/cairo/makefile.mk
@@ -87,7 +87,7 @@ SHL1STDLIBS= $(CPPULIB) $(TKLIB) $(SALLIB) $(VCLLIB) $(COMPHELPERLIB) $(CPPUHELP
.IF "$(SYSTEM_CAIRO)" == "YES"
SHL1STDLIBS+= $(CAIRO_LIBS)
.ELSE
-SHL1STDLIBS+= -lcairo
+SHL1STDLIBS+= -lcairo -lpixman-1
.ENDIF
.IF "$(GUIBASE)"=="aqua"
@@ -98,7 +98,7 @@ CFLAGSCXX+=$(OBJCXXFLAGS)
# Xlib
SLOFILES+= $(SLO)$/cairo_xlib_cairo.obj
-SHL1STDLIBS+= -lfontconfig -lX11 -lXrender -lpixman-1 $(FREETYPE_LIBS)
+SHL1STDLIBS+= -lfontconfig -lX11 -lXrender $(FREETYPE_LIBS)
CFLAGS+=$(FREETYPE_CFLAGS)
.ENDIF # "$(GUIBASE)"=="aqua"
@@ -121,7 +121,7 @@ SHL1IMPLIB=i$(TARGET)
SHL1LIBS=$(SLB)$/$(TARGET).lib
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
DEF1EXPORTFILE=exports.dxp
diff --git a/canvas/source/directx/dx_canvas.hxx b/canvas/source/directx/dx_canvas.hxx
index aca9873387dc..be15b875c4b6 100644
--- a/canvas/source/directx/dx_canvas.hxx
+++ b/canvas/source/directx/dx_canvas.hxx
@@ -38,7 +38,6 @@
#include <com/sun/star/rendering/XIntegerBitmap.hpp>
#include <com/sun/star/rendering/XGraphicDevice.hpp>
#include <com/sun/star/rendering/XBufferController.hpp>
-#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
#include <cppuhelper/compbase7.hxx>
#include <cppuhelper/compbase6.hxx>
@@ -59,7 +58,7 @@ namespace dxcanvas
{
typedef ::cppu::WeakComponentImplHelper6< ::com::sun::star::rendering::XCanvas,
::com::sun::star::rendering::XGraphicDevice,
- ::com::sun::star::rendering::XParametricPolyPolygon2DFactory,
+ ::com::sun::star::lang::XMultiServiceFactory,
::com::sun::star::util::XUpdatable,
::com::sun::star::beans::XPropertySet,
::com::sun::star::lang::XServiceName > GraphicDeviceBase1_Base;
@@ -116,7 +115,7 @@ namespace dxcanvas
typedef ::cppu::WeakComponentImplHelper7< ::com::sun::star::rendering::XBitmapCanvas,
::com::sun::star::rendering::XIntegerBitmap,
::com::sun::star::rendering::XGraphicDevice,
- ::com::sun::star::rendering::XParametricPolyPolygon2DFactory,
+ ::com::sun::star::lang::XMultiServiceFactory,
::com::sun::star::util::XUpdatable,
::com::sun::star::beans::XPropertySet,
::com::sun::star::lang::XServiceName > GraphicDeviceBase2_Base;
diff --git a/canvas/source/directx/dx_canvashelper_texturefill.cxx b/canvas/source/directx/dx_canvashelper_texturefill.cxx
index 026545d6c339..60d62dad338a 100755
--- a/canvas/source/directx/dx_canvashelper_texturefill.cxx
+++ b/canvas/source/directx/dx_canvashelper_texturefill.cxx
@@ -38,7 +38,10 @@
#include <basegfx/point/b2dpoint.hxx>
#include <basegfx/range/b2drectangle.hxx>
#include <basegfx/numeric/ftools.hxx>
+#include <basegfx/polygon/b2dpolygontools.hxx>
#include <basegfx/tools/tools.hxx>
+#include <basegfx/tools/lerp.hxx>
+#include <basegfx/tools/keystoplerp.hxx>
#include <basegfx/tools/canvastools.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx>
@@ -49,6 +52,8 @@
#include "dx_impltools.hxx"
#include <boost/scoped_ptr.hpp>
+#include <boost/bind.hpp>
+#include <boost/tuple/tuple.hpp>
using namespace ::com::sun::star;
@@ -59,26 +64,31 @@ namespace dxcanvas
{
typedef ::boost::shared_ptr< Gdiplus::PathGradientBrush > PathGradientBrushSharedPtr;
- bool fillLinearGradient( GraphicsSharedPtr& rGraphics,
- const Gdiplus::Color& rColor1,
- const Gdiplus::Color& rColor2,
- const GraphicsPathSharedPtr& rFillPath,
- const rendering::Texture& texture )
+ bool fillLinearGradient( GraphicsSharedPtr& rGraphics,
+ const ::canvas::ParametricPolyPolygon::Values& /*rValues*/,
+ const std::vector< Gdiplus::Color >& rColors,
+ const std::vector< Gdiplus::REAL >& rStops,
+ const GraphicsPathSharedPtr& rFillPath,
+ const rendering::Texture& texture )
{
- // setup a linear gradient with two colors
- // ---------------------------------------
+ // setup a linear gradient with given colors
+ // -----------------------------------------
Gdiplus::LinearGradientBrush aBrush(
Gdiplus::PointF(0.0f,
0.5f),
Gdiplus::PointF(1.0f,
0.5f),
- rColor1,
- rColor2 );
+ rColors[0],
+ rColors[1] );
+
+ aBrush.SetInterpolationColors(&rColors[0],
+ &rStops[0],
+ rColors.size());
// render background color, as LinearGradientBrush does not
// properly support the WrapModeClamp repeat mode
- Gdiplus::SolidBrush aBackgroundBrush( rColor1 );
+ Gdiplus::SolidBrush aBackgroundBrush( rColors[0] );
rGraphics->FillPath( &aBackgroundBrush, rFillPath.get() );
// TODO(F2): This does not yet support other repeat modes
@@ -152,7 +162,7 @@ namespace dxcanvas
return false;
}
- Gdiplus::SolidBrush aBackgroundBrush2( rColor2 );
+ Gdiplus::SolidBrush aBackgroundBrush2( rColors.back() );
rGraphics->FillPath( &aBackgroundBrush2, &aSolidFillPath );
// generate clip polygon from the extended parallelogram
@@ -188,167 +198,33 @@ namespace dxcanvas
return true;
}
- bool fillAxialGradient( GraphicsSharedPtr& rGraphics,
- const Gdiplus::Color& rColor1,
- const Gdiplus::Color& rColor2,
- const GraphicsPathSharedPtr& rFillPath,
- const rendering::Texture& texture )
+ int numColorSteps( const Gdiplus::Color& rColor1, const Gdiplus::Color& rColor2 )
{
- // setup a linear gradient with three colors
- // -----------------------------------------
-
- Gdiplus::LinearGradientBrush aBrush(
- Gdiplus::PointF(0.0f,
- 0.5f),
- Gdiplus::PointF(1.0f,
- 0.5f),
- rColor1,
- rColor1 );
-
- Gdiplus::Color aColors[] =
- {
- rColor1, // at 0.0
- rColor2, // at 0.5
- rColor1 // at 1.0
- };
-
- Gdiplus::REAL aPositions[] =
- {
- 0.0,
- 0.5,
- 1.0
- };
-
- if( Gdiplus::Ok != aBrush.SetInterpolationColors( aColors,
- aPositions,
- sizeof( aPositions ) / sizeof(Gdiplus::REAL) ) )
- {
- return false;
- }
-
- // render background color, as LinearGradientBrush does not
- // properly support the WrapModeClamp repeat mode
- Gdiplus::SolidBrush aBackgroundBrush( rColor1 );
- rGraphics->FillPath( &aBackgroundBrush, rFillPath.get() );
-
- // TODO(F2): This does not yet support other repeat modes
- // except clamp, and probably also no multi-texturing
-
- // calculate parallelogram of gradient in object space, extend
- // top and bottom of it such that they cover the whole fill
- // path bound area
- ::basegfx::B2DHomMatrix aTextureTransform;
- ::basegfx::unotools::homMatrixFromAffineMatrix( aTextureTransform,
- texture.AffineTransform );
-
- ::basegfx::B2DPoint aLeftTop( 0.0, 0.0 );
- ::basegfx::B2DPoint aLeftBottom( 0.0, 1.0 );
- ::basegfx::B2DPoint aRightTop( 1.0, 0.0 );
- ::basegfx::B2DPoint aRightBottom( 1.0, 1.0 );
-
- aLeftTop *= aTextureTransform;
- aLeftBottom *= aTextureTransform;
- aRightTop *= aTextureTransform;
- aRightBottom*= aTextureTransform;
-
- Gdiplus::RectF aBounds;
- rFillPath->GetBounds( &aBounds, NULL, NULL );
-
- // now, we potentially have to enlarge our gradient area
- // atop and below the transformed [0,1]x[0,1] unit rect,
- // for the gradient to fill the complete bound rect.
- ::basegfx::tools::infiniteLineFromParallelogram( aLeftTop,
- aLeftBottom,
- aRightTop,
- aRightBottom,
- tools::b2dRangeFromGdiPlusRectF( aBounds ) );
-
- // generate clip polygon from the extended parallelogram
- // (exploit the feature that distinct lines in a figure are
- // automatically closed by a straight line)
- Gdiplus::GraphicsPath aClipPath;
- aClipPath.AddLine( static_cast<Gdiplus::REAL>(aLeftTop.getX()),
- static_cast<Gdiplus::REAL>(aLeftTop.getY()),
- static_cast<Gdiplus::REAL>(aRightTop.getX()),
- static_cast<Gdiplus::REAL>(aRightTop.getY()) );
- aClipPath.AddLine( static_cast<Gdiplus::REAL>(aRightBottom.getX()),
- static_cast<Gdiplus::REAL>(aRightBottom.getY()),
- static_cast<Gdiplus::REAL>(aLeftBottom.getX()),
- static_cast<Gdiplus::REAL>(aLeftBottom.getY()) );
- aClipPath.CloseFigure();
-
- // limit output to a _single_ strip of the gradient (have to
- // clip here, since GDI+ wrapmode clamp does not work here)
- if( Gdiplus::Ok != rGraphics->SetClip( rFillPath.get(),
- Gdiplus::CombineModeIntersect ) )
- {
- return false;
- }
- if( Gdiplus::Ok != rGraphics->SetClip( &aClipPath,
- Gdiplus::CombineModeIntersect ) )
- {
- return false;
- }
-
- // now, finally, output the gradient
- Gdiplus::Matrix aMatrix;
- tools::gdiPlusMatrixFromAffineMatrix2D( aMatrix,
- texture.AffineTransform );
- aBrush.SetTransform( &aMatrix );
-
- rGraphics->FillRectangle( &aBrush, aBounds );
-
- return true;
- }
-
- PathGradientBrushSharedPtr createPathGradientBrush( const GraphicsPathSharedPtr& rGradientPath,
- const Gdiplus::Color& rColor1,
- const Gdiplus::Color& rColor2 )
- {
- PathGradientBrushSharedPtr pGradientBrush(
- new Gdiplus::PathGradientBrush( rGradientPath.get() ) );
-
- Gdiplus::Color aColors[] =
- {
- rColor1
- };
-
- INT nCount(1);
-
- pGradientBrush->SetSurroundColors( aColors,
- &nCount );
- pGradientBrush->SetCenterColor( rColor2 );
-
- return pGradientBrush;
+ return ::std::max(
+ labs( rColor1.GetRed() - rColor2.GetRed() ),
+ ::std::max(
+ labs( rColor1.GetGreen() - rColor2.GetGreen() ),
+ labs( rColor1.GetBlue() - rColor2.GetBlue() ) ) );
}
bool fillPolygonalGradient( const ::canvas::ParametricPolyPolygon::Values& rValues,
+ const std::vector< Gdiplus::Color >& rColors,
+ const std::vector< Gdiplus::REAL >& rStops,
GraphicsSharedPtr& rGraphics,
- const Gdiplus::Color& rColor1,
- const Gdiplus::Color& rColor2,
const GraphicsPathSharedPtr& rPath,
+ const rendering::ViewState& viewState,
+ const rendering::RenderState& renderState,
const rendering::Texture& texture )
{
- Gdiplus::Matrix aMatrix;
- tools::gdiPlusMatrixFromAffineMatrix2D( aMatrix,
- texture.AffineTransform );
-
// copy original fill path object, might have to change it
// below
GraphicsPathSharedPtr pFillPath( rPath );
-
- // clone original gradient path object, we need to change it
- // below
- GraphicsPathSharedPtr pGradientPath(
- tools::graphicsPathFromB2DPolygon( rValues.maGradientPoly ) );
-
- ENSURE_OR_RETURN_FALSE( pGradientPath.get(),
- "ParametricPolyPolygon::fillPolygonalGradient(): Could not clone path" );
+ const ::basegfx::B2DPolygon& rGradientPoly( rValues.maGradientPoly );
PathGradientBrushSharedPtr pGradientBrush;
// fill background uniformly with end color
- Gdiplus::SolidBrush aBackgroundBrush( rColor1 );
+ Gdiplus::SolidBrush aBackgroundBrush( rColors[0] );
rGraphics->FillPath( &aBackgroundBrush, pFillPath.get() );
// scale focus according to aspect ratio: for wider-than-tall
@@ -377,8 +253,6 @@ namespace dxcanvas
return false;
}
- rGraphics->MultiplyTransform( &aMatrix );
-
// disable anti-aliasing, if any
const Gdiplus::SmoothingMode eOldAAMode( rGraphics->GetSmoothingMode() );
rGraphics->SetSmoothingMode( Gdiplus::SmoothingModeHighSpeed );
@@ -388,105 +262,107 @@ namespace dxcanvas
// --------------------------------
// TODO(Q2): Unify step calculations with VCL canvas
- const int nColorSteps(
- ::std::max(
- labs( rColor1.GetRed() - rColor2.GetRed() ),
- ::std::max(
- labs( rColor1.GetGreen() - rColor2.GetGreen() ),
- labs( rColor1.GetBlue() - rColor2.GetBlue() ) ) ) );
-
- Gdiplus::Matrix aWorldTransformMatrix;
- rGraphics->GetTransform( &aWorldTransformMatrix );
-
- Gdiplus::RectF aBounds;
- pGradientPath->GetBounds( &aBounds, &aWorldTransformMatrix, NULL );
-
- // longest line in gradient bound rect
- const int nGradientSize(
- static_cast<int>( hypot( aBounds.Width, aBounds.Height ) + 1.0 ) );
-
- // typical number for pixel of the same color (strip size)
- const int nStripSize( 2 );
-
- // use at least three steps, and at utmost the number of
- // color steps.
- const int nStepCount(
- ::std::max(
- 3,
- ::std::min(
- nGradientSize / nStripSize,
- nColorSteps ) ) + 1 );
-
-
- Gdiplus::SolidBrush aFillBrush( rColor1 );
- Gdiplus::Matrix aGDIScaleMatrix;
- ::basegfx::B2DHomMatrix aScaleMatrix;
-
- // calc relative size for anisotrophic polygon scaling:
- // when the aspect ratio is e.g. 2.0, that denotes a
- // gradient which is twice as wide as high. Then, to
- // generate a symmetric gradient, the x direction is only
- // scaled to 0.5 times the gradient width. Similarly, when
- // the aspect ratio is 4.0, the focus has 3/4 the width of
- // the overall gradient.
- const double nRelativeFocusSize( rValues.mnAspectRatio > 1.0 ?
- 1.0 - 1.0/rValues.mnAspectRatio :
- 1.0 - rValues.mnAspectRatio );
+ int nColorSteps = 0;
+ for( size_t i=0; i<rColors.size()-1; ++i )
+ nColorSteps += numColorSteps(rColors[i],rColors[i+1]);
+ ::basegfx::B2DHomMatrix aTotalTransform;
+ const int nStepCount=
+ ::canvas::tools::calcGradientStepCount(aTotalTransform,
+ viewState,
+ renderState,
+ texture,
+ nColorSteps);
+
+ ::basegfx::B2DHomMatrix aTextureTransform;
+ ::basegfx::unotools::homMatrixFromAffineMatrix( aTextureTransform,
+ texture.AffineTransform );
+ // determine overall transformation for inner polygon (might
+ // have to be prefixed by anisotrophic scaling)
+ ::basegfx::B2DHomMatrix aInnerPolygonTransformMatrix;
+
+ // For performance reasons, we create a temporary VCL polygon
+ // here, keep it all the way and only change the vertex values
+ // in the loop below (as ::Polygon is a pimpl class, creating
+ // one every loop turn would really stress the mem allocator)
+ ::basegfx::B2DPolygon aOuterPoly( rGradientPoly );
+ ::basegfx::B2DPolygon aInnerPoly;
+
+ // subdivide polygon _before_ rendering, would otherwise have
+ // to be performed on every loop turn.
+ if( aOuterPoly.areControlPointsUsed() )
+ aOuterPoly = ::basegfx::tools::adaptiveSubdivideByAngle(aOuterPoly);
+
+ aInnerPoly = aOuterPoly;
+ aOuterPoly.transform(aTextureTransform);
+
+
+ // apply scaling (possibly anisotrophic) to inner polygon
+ // ------------------------------------------------------
+
+ // scale inner polygon according to aspect ratio: for
+ // wider-than-tall bounds (nAspectRatio > 1.0), the inner
+ // polygon, representing the gradient focus, must have
+ // non-zero width. Specifically, a bound rect twice as wide as
+ // tall has a focus polygon of half it's width.
+ const double nAspectRatio( rValues.mnAspectRatio );
+ if( nAspectRatio > 1.0 )
+ {
+ // width > height case
+ aInnerPolygonTransformMatrix.scale( 1.0 - 1.0/nAspectRatio,
+ 0.0 );
+ }
+ else if( nAspectRatio < 1.0 )
+ {
+ // width < height case
+ aInnerPolygonTransformMatrix.scale( 0.0,
+ 1.0 - nAspectRatio );
+ }
+ else
+ {
+ // isotrophic case
+ aInnerPolygonTransformMatrix.scale( 0.0, 0.0 );
+ }
+
+ // and finally, add texture transform to it.
+ aInnerPolygonTransformMatrix *= aTextureTransform;
+ // apply final matrix to polygon
+ aInnerPoly.transform( aInnerPolygonTransformMatrix );
+
+ Gdiplus::GraphicsPath aCurrPath;
+ Gdiplus::SolidBrush aFillBrush( rColors[0] );
+ const sal_uInt32 nNumPoints( aOuterPoly.count() );
+ basegfx::tools::KeyStopLerp aLerper(rValues.maStops);
for( int i=1; i<nStepCount; ++i )
{
- // lerp color. Funnily, the straight-forward integer
- // lerp ((nStepCount - i)*val + i*val)/nStepCount gets
- // fully botched by MSVC, at least for anything that
- // really inlines inlines (i.e. every compile without
- // debug=t)
- const double nFrac( (double)i/nStepCount );
+ std::ptrdiff_t nIndex;
+ double fAlpha;
+ const double fT( i/double(nStepCount) );
+ boost::tuples::tie(nIndex,fAlpha)=aLerper.lerp(fT);
const Gdiplus::Color aFillColor(
- static_cast<BYTE>( (1.0 - nFrac)*rColor1.GetRed() + nFrac*rColor2.GetRed() ),
- static_cast<BYTE>( (1.0 - nFrac)*rColor1.GetGreen() + nFrac*rColor2.GetGreen() ),
- static_cast<BYTE>( (1.0 - nFrac)*rColor1.GetBlue() + nFrac*rColor2.GetBlue() ) );
+ static_cast<BYTE>( basegfx::tools::lerp(rColors[nIndex].GetRed(),rColors[nIndex+1].GetRed(),fAlpha) ),
+ static_cast<BYTE>( basegfx::tools::lerp(rColors[nIndex].GetGreen(),rColors[nIndex+1].GetGreen(),fAlpha) ),
+ static_cast<BYTE>( basegfx::tools::lerp(rColors[nIndex].GetBlue(),rColors[nIndex+1].GetBlue(),fAlpha) ) );
aFillBrush.SetColor( aFillColor );
-
- const double nCurrScale( (nStepCount-i)/(double)nStepCount );
- aScaleMatrix = basegfx::tools::createTranslateB2DHomMatrix(-0.5, -0.5);
-
- // handle anisotrophic polygon scaling
- if( rValues.mnAspectRatio < 1.0 )
- {
- // height > width case
- aScaleMatrix.scale( nCurrScale,
- // lerp with nCurrScale
- // between 1.0 and
- // relative focus height
- nCurrScale + (1.0-nCurrScale)*nRelativeFocusSize );
- }
- else if( rValues.mnAspectRatio > 1.0 )
- {
- // width > height case
- aScaleMatrix.scale( nCurrScale + (1.0-nCurrScale)*nRelativeFocusSize,
- // lerp with nCurrScale
- // between 1.0 and
- // relative focus width
- nCurrScale );
- }
- else
+ aCurrPath.Reset(); aCurrPath.StartFigure();
+ for( unsigned int p=1; p<nNumPoints; ++p )
{
- aScaleMatrix.scale( nCurrScale,
- nCurrScale );
+ const ::basegfx::B2DPoint& rOuterPoint1( aOuterPoly.getB2DPoint(p-1) );
+ const ::basegfx::B2DPoint& rInnerPoint1( aInnerPoly.getB2DPoint(p-1) );
+ const ::basegfx::B2DPoint& rOuterPoint2( aOuterPoly.getB2DPoint(p) );
+ const ::basegfx::B2DPoint& rInnerPoint2( aInnerPoly.getB2DPoint(p) );
+
+ aCurrPath.AddLine(
+ Gdiplus::REAL(fT*rInnerPoint1.getX() + (1-fT)*rOuterPoint1.getX()),
+ Gdiplus::REAL(fT*rInnerPoint1.getY() + (1-fT)*rOuterPoint1.getY()),
+ Gdiplus::REAL(fT*rInnerPoint2.getX() + (1-fT)*rOuterPoint2.getX()),
+ Gdiplus::REAL(fT*rInnerPoint2.getY() + (1-fT)*rOuterPoint2.getY()));
}
+ aCurrPath.CloseFigure();
- aScaleMatrix.translate( 0.5, 0.5 );
-
- tools::gdiPlusMatrixFromB2DHomMatrix( aGDIScaleMatrix,
- aScaleMatrix );
-
- GraphicsPathSharedPtr pScaledGradientPath(
- tools::graphicsPathFromB2DPolygon( rValues.maGradientPoly ) );
- pScaledGradientPath->Transform( &aGDIScaleMatrix );
-
- rGraphics->FillPath( &aFillBrush, pScaledGradientPath.get() );
+ rGraphics->FillPath( &aFillBrush, &aCurrPath );
}
// reset to old anti-alias mode
@@ -507,18 +383,24 @@ namespace dxcanvas
// one sets both, only the translational components of the
// texture is respected.
+ Gdiplus::Matrix aMatrix;
+ tools::gdiPlusMatrixFromAffineMatrix2D( aMatrix,
+ texture.AffineTransform );
+ GraphicsPathSharedPtr pGradientPath(
+ tools::graphicsPathFromB2DPolygon( rValues.maGradientPoly ));
pGradientPath->Transform( &aMatrix );
- pGradientBrush = createPathGradientBrush(
- pGradientPath,
- rColor1,
- rColor2 );
+ pGradientBrush.reset(
+ new Gdiplus::PathGradientBrush( pGradientPath.get() ) );
+ pGradientBrush->SetInterpolationColors( &rColors[0],
+ &rStops[0],
+ rStops.size() );
// explicitely setup center point. Since the center of GDI+
// gradients are by default the _centroid_ of the path
// (i.e. the weighted sum of edge points), it will not
// necessarily coincide with our notion of center.
- Gdiplus::PointF aCenterPoint(0.5, 0.5);
+ Gdiplus::PointF aCenterPoint(0, 0);
aMatrix.TransformPoints( &aCenterPoint );
pGradientBrush->SetCenterPoint( aCenterPoint );
@@ -554,38 +436,35 @@ namespace dxcanvas
}
bool fillGradient( const ::canvas::ParametricPolyPolygon::Values& rValues,
- const Gdiplus::Color& rColor1,
- const Gdiplus::Color& rColor2,
+ const std::vector< Gdiplus::Color >& rColors,
+ const std::vector< Gdiplus::REAL >& rStops,
GraphicsSharedPtr& rGraphics,
const GraphicsPathSharedPtr& rPath,
+ const rendering::ViewState& viewState,
+ const rendering::RenderState& renderState,
const rendering::Texture& texture )
{
switch( rValues.meType )
{
case ::canvas::ParametricPolyPolygon::GRADIENT_LINEAR:
fillLinearGradient( rGraphics,
- rColor1,
- rColor2,
+ rValues,
+ rColors,
+ rStops,
rPath,
texture );
break;
- case ::canvas::ParametricPolyPolygon::GRADIENT_AXIAL:
- fillAxialGradient( rGraphics,
- rColor1,
- rColor2,
- rPath,
- texture );
- break;
-
case ::canvas::ParametricPolyPolygon::GRADIENT_ELLIPTICAL:
// FALLTHROUGH intended
case ::canvas::ParametricPolyPolygon::GRADIENT_RECTANGULAR:
fillPolygonalGradient( rValues,
+ rColors,
+ rStops,
rGraphics,
- rColor1,
- rColor2,
rPath,
+ viewState,
+ renderState,
texture );
break;
@@ -606,13 +485,13 @@ namespace dxcanvas
rTexture.RepeatModeY,
"CanvasHelper::fillBitmap(): GDI+ cannot handle differing X/Y repeat mode." );
- const bool bClamp( rTexture.RepeatModeX == rendering::TexturingMode::CLAMP &&
- rTexture.RepeatModeY == rendering::TexturingMode::CLAMP );
+ const bool bClamp( rTexture.RepeatModeX == rendering::TexturingMode::NONE &&
+ rTexture.RepeatModeY == rendering::TexturingMode::NONE );
const geometry::IntegerSize2D aBmpSize( xBitmap->getSize() );
ENSURE_ARG_OR_THROW( aBmpSize.Width != 0 &&
- aBmpSize.Height != 0,
- "CanvasHelper::fillBitmap(): zero-sized texture bitmap" );
+ aBmpSize.Height != 0,
+ "CanvasHelper::fillBitmap(): zero-sized texture bitmap" );
// TODO(P3): Detect case that path is rectangle and
// bitmap is just scaled into that. Then, we can
@@ -624,7 +503,6 @@ namespace dxcanvas
tools::bitmapFromXBitmap( xBitmap ) );
TextureBrushSharedPtr pBrush;
-
if( ::rtl::math::approxEqual( rTexture.Alpha,
1.0 ) )
{
@@ -662,9 +540,9 @@ namespace dxcanvas
// scale down bitmap to [0,1]x[0,1] rect, as required
// from the XCanvas interface.
+ pBrush->MultiplyTransform( &aTextureTransform );
pBrush->ScaleTransform( static_cast< Gdiplus::REAL >(1.0/aBmpSize.Width),
static_cast< Gdiplus::REAL >(1.0/aBmpSize.Height) );
- pBrush->MultiplyTransform( &aTextureTransform );
// TODO(F1): FillRule
ENSURE_OR_THROW(
@@ -706,17 +584,29 @@ namespace dxcanvas
const ::canvas::ParametricPolyPolygon::Values& rValues(
pGradient->getValues() );
- // TODO: use all the colors and place them on given positions/stops
- const Gdiplus::Color aColor1(tools::sequenceToArgb(rValues.maColors[0]));
- const Gdiplus::Color aColor2(tools::sequenceToArgb(rValues.maColors[rValues.maColors.getLength () - 1] ));
+ OSL_ASSERT(rValues.maColors.getLength() == rValues.maStops.getLength()
+ && rValues.maColors.getLength() > 1);
+
+ std::vector< Gdiplus::Color > aColors(rValues.maColors.getLength());
+ std::transform(&rValues.maColors[0],
+ &rValues.maColors[0]+rValues.maColors.getLength(),
+ aColors.begin(),
+ boost::bind(
+ (Gdiplus::ARGB (*)( const uno::Sequence< double >& ))(
+ &tools::sequenceToArgb),
+ _1));
+ std::vector< Gdiplus::REAL > aStops;
+ comphelper::sequenceToContainer(aStops,rValues.maStops);
// TODO(E1): Return value
// TODO(F1): FillRule
fillGradient( rValues,
- aColor1,
- aColor2,
+ aColors,
+ aStops,
pGraphics,
tools::graphicsPathFromXPolyPolygon2D( xPolyPolygon ),
+ viewState,
+ renderState,
textures[0] );
}
}
diff --git a/canvas/source/directx/dx_impltools.cxx b/canvas/source/directx/dx_impltools.cxx
index 30bd11a2271a..c298fb9238f9 100755
--- a/canvas/source/directx/dx_impltools.cxx
+++ b/canvas/source/directx/dx_impltools.cxx
@@ -196,7 +196,7 @@ namespace dxcanvas
{
const sal_uInt32 nPoints( rPoly.count() );
- if( !nPoints )
+ if( nPoints < 2 )
return;
rOutput->StartFigure();
diff --git a/canvas/source/directx/dx_spritecanvas.hxx b/canvas/source/directx/dx_spritecanvas.hxx
index 5d5e65c23230..b14d79050ccf 100755
--- a/canvas/source/directx/dx_spritecanvas.hxx
+++ b/canvas/source/directx/dx_spritecanvas.hxx
@@ -39,7 +39,6 @@
#include <com/sun/star/rendering/XIntegerBitmap.hpp>
#include <com/sun/star/rendering/XGraphicDevice.hpp>
#include <com/sun/star/rendering/XBufferController.hpp>
-#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
#include <cppuhelper/compbase9.hxx>
#include <comphelper/uno3.hxx>
@@ -58,14 +57,14 @@
namespace dxcanvas
{
typedef ::cppu::WeakComponentImplHelper9< ::com::sun::star::rendering::XSpriteCanvas,
- ::com::sun::star::rendering::XIntegerBitmap,
- ::com::sun::star::rendering::XGraphicDevice,
- ::com::sun::star::rendering::XParametricPolyPolygon2DFactory,
- ::com::sun::star::rendering::XBufferController,
- ::com::sun::star::awt::XWindowListener,
- ::com::sun::star::util::XUpdatable,
- ::com::sun::star::beans::XPropertySet,
- ::com::sun::star::lang::XServiceName > WindowGraphicDeviceBase_Base;
+ ::com::sun::star::rendering::XIntegerBitmap,
+ ::com::sun::star::rendering::XGraphicDevice,
+ ::com::sun::star::lang::XMultiServiceFactory,
+ ::com::sun::star::rendering::XBufferController,
+ ::com::sun::star::awt::XWindowListener,
+ ::com::sun::star::util::XUpdatable,
+ ::com::sun::star::beans::XPropertySet,
+ ::com::sun::star::lang::XServiceName > WindowGraphicDeviceBase_Base;
typedef ::canvas::BufferedGraphicDeviceBase< ::canvas::BaseMutexHelper< WindowGraphicDeviceBase_Base >,
SpriteDeviceHelper,
::osl::MutexGuard,
diff --git a/canvas/source/factory/canvasfactory.map b/canvas/source/factory/canvasfactory.map
deleted file mode 100644
index 44fb01f37126..000000000000
--- a/canvas/source/factory/canvasfactory.map
+++ /dev/null
@@ -1,8 +0,0 @@
-CAN_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/canvas/source/factory/makefile.mk b/canvas/source/factory/makefile.mk
index 94e3f0d04255..fc6d423192d6 100644
--- a/canvas/source/factory/makefile.mk
+++ b/canvas/source/factory/makefile.mk
@@ -43,7 +43,7 @@ SHL1STDLIBS = \
$(CPPULIB) \
$(CPPUHELPERLIB) \
$(SALLIB)
-SHL1VERSIONMAP = canvasfactory.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1DEPN =
SHL1IMPLIB = i$(TARGET)
diff --git a/canvas/source/java/BackBuffer.java b/canvas/source/java/BackBuffer.java
deleted file mode 100644
index 472f6603c33c..000000000000
--- a/canvas/source/java/BackBuffer.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Java AWT
-import java.awt.*;
-import java.awt.image.*;
-
-public class BackBuffer
-{
- private BufferedImage backBuffer;
- //private VolatileImage backBuffer;
- private Graphics2D backBufferGraphics;
- private Graphics2D referenceDevice;
-
- public BackBuffer( Graphics2D _referenceDevice,
- int width,
- int height )
- {
- referenceDevice = _referenceDevice;
- setSize( width, height );
- }
-
- public Graphics2D getGraphics()
- {
- return backBufferGraphics;
- }
-
- public void setSize( int width,
- int height )
- {
- if( backBuffer != null &&
- width == backBuffer.getWidth() &&
- height == backBuffer.getHeight() )
- {
- return;
- }
-
- if( backBufferGraphics != null )
- backBufferGraphics.dispose();
-
- if( backBuffer != null )
- backBuffer.flush();
-
- // TODO: Maybe VolatileImage with another BufferedImage as a backup is
- // a tad faster here.
- backBuffer = referenceDevice.getDeviceConfiguration().createCompatibleImage(width,
- height);
-// backBuffer = referenceDevice.getDeviceConfiguration().createCompatibleVolatileImage(width,
-// height);
-
- backBufferGraphics = backBuffer.createGraphics();
- CanvasUtils.initGraphics( backBufferGraphics );
-
- // clear the buffer to white (to have a defined state here)
- backBufferGraphics.setColor( java.awt.Color.white );
- backBufferGraphics.fillRect( 0,0,width,height );
- }
-
- public void redraw( Graphics2D graph )
- {
- if( graph != null &&
- backBuffer != null )
- {
- CanvasUtils.printLog("BackBuffer.redraw(): using buffer of size (" +
- backBuffer.getWidth() + "," + backBuffer.getHeight() + ")" );
-
- graph.drawImage(backBuffer, 0, 0, null);
-
- // TODO: this is just twiddled to work. I cannot be sure
- // that this volatile backbuffer will survive in the first
- // place, nor that it wise to leave it in VRAM.
-
- // only flush non-volatile images
- // CanvasUtils.postRenderImageTreatment( backBuffer );
- }
- }
-
- public java.awt.Image getBackBuffer()
- {
- return backBuffer;
- }
-
- public void dispose()
- {
- backBufferGraphics.dispose();
- backBuffer.flush();
- }
-}
diff --git a/canvas/source/java/BezierPolyPolygon.java b/canvas/source/java/BezierPolyPolygon.java
deleted file mode 100644
index ed6c08a21abc..000000000000
--- a/canvas/source/java/BezierPolyPolygon.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Canvas
-import com.sun.star.rendering.*;
-import com.sun.star.geometry.*;
-
-public class BezierPolyPolygon
- extends com.sun.star.lib.uno.helper.ComponentBase
- implements com.sun.star.lang.XServiceInfo,
- com.sun.star.rendering.XBezierPolyPolygon2D
-{
- private java.awt.geom.GeneralPath path;
-
- //----------------------------------------------------------------------------------
-
- public BezierPolyPolygon( RealBezierSegment2D[][] points )
- {
- setBezierSegments( points, 0 );
- }
-
- public java.awt.geom.GeneralPath getJavaPath()
- {
- return path;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XPolyPolygon implementation
- // ===========================
- //
- public void addPolyPolygon( RealPoint2D position, XPolyPolygon2D polyPolygon )
- {
- }
-
- public int getNumberOfPolygons( )
- {
- return 0;
- }
-
- public int getNumberOfPolygonPoints( int polygon )
- {
- return 0;
- }
-
- public FillRule getFillRule( )
- {
- if( path.getWindingRule() == java.awt.geom.GeneralPath.WIND_EVEN_ODD )
- return FillRule.EVEN_ODD;
- else
- return FillRule.NON_ZERO;
- }
-
- public void setFillRule( FillRule fillRule )
- {
- if( fillRule == FillRule.EVEN_ODD )
- path.setWindingRule( java.awt.geom.GeneralPath.WIND_EVEN_ODD );
- else
- path.setWindingRule( java.awt.geom.GeneralPath.WIND_NON_ZERO );
- }
-
- public boolean isClosed( int index )
- {
- // TODO
- return false;
- }
-
- public void setClosed( int index, boolean closedState )
- {
- // TODO
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XBezierPolyPolygon implementation
- // =================================
- //
- public RealBezierSegment2D[][] getBezierSegments( int nPolygonIndex, int nNumberOfPolygons, int nPointIndex, int nNumberOfPoints )
- {
- return null;
- }
-
- public void setBezierSegments( RealBezierSegment2D[][] points, int nPolygonIndex )
- {
- if( nPolygonIndex != 0 )
- CanvasUtils.printLog( "LinePolyPolygon.setPoints: subset not yet implemented!" );
-
- path = CanvasUtils.makeGenPathFromBezierPoints( points );
- }
-
- public RealBezierSegment2D getBezierSegment( int nPolygonIndex, int nPointIndex )
- {
- return null;
- }
-
- public void setBezierSegment( RealBezierSegment2D point, int nPolygonIndex, int nPointIndex )
- {
- CanvasUtils.printLog( "LinePolyPolygon.setPoint: not yet implemented!" );
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XServiceInfo impl
- // =================
- //
-
- private static final String s_implName = "XBezierPolyPolygon2D.java.impl";
- private static final String s_serviceName = "com.sun.star.rendering.BezierPolyPolygon2D";
-
- public String getImplementationName()
- {
- return s_implName;
- }
-
- public String [] getSupportedServiceNames()
- {
- return new String [] { s_serviceName };
- }
-
- public boolean supportsService( String serviceName )
- {
- return serviceName.equals( s_serviceName );
- }
-}
diff --git a/canvas/source/java/BitmapCanvas.java b/canvas/source/java/BitmapCanvas.java
deleted file mode 100644
index f40c9bf34c3a..000000000000
--- a/canvas/source/java/BitmapCanvas.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// UNO
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.uno.AnyConverter;
-import com.sun.star.uno.IQueryInterface;
-import com.sun.star.lang.XInitialization;
-import com.sun.star.lib.uno.helper.WeakBase;
-
-// OOo AWT
-import com.sun.star.awt.*;
-
-// Canvas
-import com.sun.star.rendering.*;
-import com.sun.star.geometry.*;
-
-// Java AWT
-import java.awt.*;
-import java.awt.image.*;
-import java.awt.geom.*;
-
-public class BitmapCanvas
- extends CanvasBase
- implements com.sun.star.rendering.XBitmapCanvas,
- com.sun.star.lang.XServiceInfo
-{
- private Graphics2D graphics;
-
- public Graphics2D getGraphics()
- {
- return graphics;
- }
-
- //----------------------------------------------------------------------------------
-
- public BitmapCanvas( Graphics2D _graphics )
- {
- graphics = _graphics;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XBitmapCanvas impl
- // ==================
- //
-
- public synchronized void copyRect( com.sun.star.rendering.XBitmapCanvas sourceCanvas,
- com.sun.star.geometry.RealRectangle2D sourceRect,
- com.sun.star.rendering.ViewState sourceViewState,
- com.sun.star.rendering.RenderState sourceRenderState,
- com.sun.star.geometry.RealRectangle2D destRect,
- com.sun.star.rendering.ViewState destViewState,
- com.sun.star.rendering.RenderState destRenderState )
- {
- // TODO: create temp image when transform is non-trivial
-
- if( sourceCanvas == this )
- {
- // copy rectangle within the canvas
- graphics.copyArea((int)sourceRect.X1,
- (int)sourceRect.Y1,
- (int)(sourceRect.X2 - sourceRect.X1),
- (int)(sourceRect.Y2 - sourceRect.Y1),
- (int)(destRect.X1 - sourceRect.X1),
- (int)(destRect.Y1 - sourceRect.Y1) );
- }
- else
- {
- if( sourceCanvas instanceof JavaCanvas )
- {
- // cache
- CanvasUtils.setupGraphicsState( graphics, destViewState, destRenderState, CanvasUtils.alsoSetupPaint );
-
- // TODO: really extract correct source rect here
- BufferedImage backBuffer = ((BufferedGraphics2D)((JavaCanvas)sourceCanvas).getGraphics()).getBackBuffer();
- graphics.drawImage( backBuffer, 0, 0, null );
- CanvasUtils.postRenderImageTreatment( backBuffer );
-
- }
- // TODO: foreign canvas
- }
- }
-
- //----------------------------------------------------------------------------------
-
- private static final String s_implName = "XBitmapCanvas.java.impl";
- private static final String s_serviceName = "com.sun.star.rendering.BitmapCanvas";
-
- //----------------------------------------------------------------------------------
-
- //
- // XServiceInfo impl
- // =================
- //
- public String getImplementationName()
- {
- return s_implName;
- }
-
- public String [] getSupportedServiceNames()
- {
- return new String [] { s_serviceName };
- }
-
- public boolean supportsService( String serviceName )
- {
- return serviceName.equals( s_serviceName );
- }
-}
diff --git a/canvas/source/java/BufferedGraphics2D.java b/canvas/source/java/BufferedGraphics2D.java
deleted file mode 100644
index 88691351809e..000000000000
--- a/canvas/source/java/BufferedGraphics2D.java
+++ /dev/null
@@ -1,600 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Java AWT
-import java.awt.*;
-import java.awt.geom.*;
-import java.awt.image.*;
-import java.awt.image.renderable.*;
-import java.awt.font.*;
-import java.text.*;
-import java.util.*;
-
-
-public class BufferedGraphics2D
- extends java.awt.Graphics2D
-{
- // TODO: Somehow, get rid of this duplicate graphics (the graphics member,
- // and this object itself, extending a Graphics2D)
- private Graphics2D graphics;
- private BufferedImage backBuffer;
- private Graphics2D backBufferGraphics;
-
- //----------------------------------------------------------------------------------
-
- public BufferedGraphics2D( java.awt.Graphics2D _graphics, int width, int height )
- {
- setGraphics( _graphics, Math.max(1,width), Math.max(1,height) );
- }
-
- public void redraw( Graphics2D graph )
- {
- if( graph != null &&
- backBuffer != null )
- {
- CanvasUtils.printLog("BufferedGraphics2D.redraw: using buffer of size (" +
- backBuffer.getWidth() + "," + backBuffer.getHeight() + ")" );
-
- // set transform to identity
- graph.setTransform( new AffineTransform() );
- graph.drawImage(backBuffer, 0, 0, null);
- CanvasUtils.postRenderImageTreatment( backBuffer );
- }
- }
-
- public BufferedImage getBackBuffer()
- {
- return backBuffer;
- }
-
- public void setSize( int width, int height )
- {
- if( backBuffer != null &&
- width == backBuffer.getWidth() &&
- height == backBuffer.getHeight() )
- {
- return;
- }
-
- if( backBufferGraphics != null )
- backBufferGraphics.dispose();
-
- if( backBuffer != null )
- backBuffer.flush();
-
- // TODO: Maybe VolatileImage with another BufferedImage as a backup is
- // a tad faster here.
- backBuffer = graphics.getDeviceConfiguration().createCompatibleImage(width,
- height);
-
- backBufferGraphics = backBuffer.createGraphics();
- CanvasUtils.initGraphics( backBufferGraphics );
-
- // clear the buffer to white (to have a defined state here)
- backBufferGraphics.setColor( java.awt.Color.white );
- backBufferGraphics.fillRect( 0,0,width,height );
- }
-
- public void setGraphics( Graphics2D _graphics, int width, int height )
- {
- if( graphics != null )
- graphics.dispose();
-
- graphics = _graphics;
-
- setSize(width,height);
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // Graphics
- // ========
- //
- public void clearRect(int x, int y, int width, int height)
- {
- graphics.clearRect(x,y,width,height);
- backBufferGraphics.clearRect(x,y,width,height);
- }
-
- public void clipRect(int x, int y, int width, int height)
- {
- graphics.clipRect(x,y,width,height);
- backBufferGraphics.clipRect(x,y,width,height);
- }
-
- public void copyArea(int x, int y, int width, int height, int dx, int dy)
- {
- graphics.copyArea(x,y,width,height,dx,dy);
- backBufferGraphics.copyArea(x,y,width,height,dx,dy);
- }
-
- public Graphics create()
- {
- return null;
- }
-
- public Graphics create(int x, int y, int width, int height)
- {
- return null;
- }
-
- public void dispose()
- {
- graphics.dispose();
- backBufferGraphics.dispose();
- backBuffer.flush();
- }
-
- public void draw3DRect(int x, int y, int width, int height, boolean raised)
- {
- graphics.draw3DRect(x,y,width,height,raised);
- backBufferGraphics.draw3DRect(x,y,width,height,raised);
- }
-
- public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
- {
- graphics.drawArc(x,y,width,height,startAngle,arcAngle);
- backBufferGraphics.drawArc(x,y,width,height,startAngle,arcAngle);
- }
-
- public void drawBytes(byte[] data, int offset, int length, int x, int y)
- {
- graphics.drawBytes(data,offset,length,x,y);
- backBufferGraphics.drawBytes(data,offset,length,x,y);
- }
-
- public void drawChars(char[] data, int offset, int length, int x, int y)
- {
- graphics.drawChars(data,offset,length,x,y);
- backBufferGraphics.drawChars(data,offset,length,x,y);
- }
-
- public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
- {
- backBufferGraphics.drawImage(img,x,y,bgcolor,observer);
- return graphics.drawImage(img,x,y,bgcolor,observer);
- }
-
- public boolean drawImage(Image img, int x, int y, ImageObserver observer)
- {
- backBufferGraphics.drawImage(img,x,y,observer);
- return graphics.drawImage(img,x,y,observer);
- }
-
- public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
- {
- backBufferGraphics.drawImage(img,x,y,width,height,bgcolor,observer);
- return graphics.drawImage(img,x,y,width,height,bgcolor,observer);
- }
-
- public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
- {
- backBufferGraphics.drawImage(img,x,y,width,height,observer);
- return graphics.drawImage(img,x,y,width,height,observer);
- }
-
- public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)
- {
- backBufferGraphics.drawImage(img,dx1,dy1,dx2,dy2,sx1,sy1,sx2,sy2,bgcolor,observer);
- return graphics.drawImage(img,dx1,dy1,dx2,dy2,sx1,sy1,sx2,sy2,bgcolor,observer);
- }
-
- public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
- {
- backBufferGraphics.drawImage(img,dx1,dy1,dx2,dy2,sx1,sy1,sx2,sy2,observer);
- return graphics.drawImage(img,dx1,dy1,dx2,dy2,sx1,sy1,sx2,sy2,observer);
- }
-
- public void drawLine(int x1, int y1, int x2, int y2)
- {
- graphics.drawLine(x1,y1,x2,y2);
- backBufferGraphics.drawLine(x1,y1,x2,y2);
- }
-
- public void drawOval(int x, int y, int width, int height)
- {
- graphics.drawOval(x,y,width,height);
- backBufferGraphics.drawOval(x,y,width,height);
- }
-
- public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
- {
- graphics.drawPolygon(xPoints,yPoints,nPoints);
- backBufferGraphics.drawPolygon(xPoints,yPoints,nPoints);
- }
-
- public void drawPolygon(Polygon p)
- {
- graphics.drawPolygon(p);
- backBufferGraphics.drawPolygon(p);
- }
-
- public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
- {
- graphics.drawPolyline(xPoints,yPoints,nPoints);
- backBufferGraphics.drawPolyline(xPoints,yPoints,nPoints);
- }
-
- public void drawRect(int x, int y, int width, int height)
- {
- graphics.drawRect(x,y,width,height);
- backBufferGraphics.drawRect(x,y,width,height);
- }
-
- public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
- {
- graphics.drawRoundRect(x,y,width,height,arcWidth,arcHeight);
- backBufferGraphics.drawRoundRect(x,y,width,height,arcWidth,arcHeight);
- }
-
- public void drawString(AttributedCharacterIterator iterator, int x, int y)
- {
- graphics.drawString(iterator,x,y);
- backBufferGraphics.drawString(iterator,x,y);
- }
-
- public void drawString(String str, int x, int y)
- {
- graphics.drawString(str,x,y);
- backBufferGraphics.drawString(str,x,y);
- }
-
- public void fill3DRect(int x, int y, int width, int height, boolean raised)
- {
- graphics.fill3DRect(x,y,width,height,raised);
- backBufferGraphics.fill3DRect(x,y,width,height,raised);
- }
-
- public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
- {
- graphics.fillArc(x,y,width,height,startAngle,arcAngle);
- backBufferGraphics.fillArc(x,y,width,height,startAngle,arcAngle);
- }
-
- public void fillOval(int x, int y, int width, int height)
- {
- graphics.fillOval(x,y,width,height);
- backBufferGraphics.fillOval(x,y,width,height);
- }
-
- public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
- {
- graphics.fillPolygon(xPoints,yPoints,nPoints);
- backBufferGraphics.fillPolygon(xPoints,yPoints,nPoints);
- }
-
- public void fillPolygon(Polygon p)
- {
- graphics.fillPolygon(p);
- backBufferGraphics.fillPolygon(p);
- }
-
- public void fillRect(int x, int y, int width, int height)
- {
- graphics.fillRect(x,y,width,height);
- backBufferGraphics.fillRect(x,y,width,height);
- }
-
- public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
- {
- graphics.fillRoundRect(x,y,width,height,arcWidth,arcHeight);
- backBufferGraphics.fillRoundRect(x,y,width,height,arcWidth,arcHeight);
- }
-
- public Shape getClip()
- {
- return graphics.getClip();
- }
-
- public Rectangle getClipBounds()
- {
- return graphics.getClipBounds();
- }
-
- public Rectangle getClipBounds(Rectangle r)
- {
- return graphics.getClipBounds(r);
- }
-
- public Rectangle getClipRect()
- {
- return graphics.getClipRect();
- }
-
- public Color getColor()
- {
- return getColor();
- }
-
- public Font getFont()
- {
- return getFont();
- }
-
- public FontMetrics getFontMetrics()
- {
- return getFontMetrics();
- }
-
- public FontMetrics getFontMetrics(Font f)
- {
- return getFontMetrics(f);
- }
-
- public boolean hitClip(int x, int y, int width, int height)
- {
- return graphics.hitClip(x,y,width,height);
- }
-
- public void setClip(int x, int y, int width, int height)
- {
- graphics.setClip(x,y,width,height);
- backBufferGraphics.setClip(x,y,width,height);
- }
-
- public void setClip(Shape clip)
- {
- graphics.setClip(clip);
- backBufferGraphics.setClip(clip);
- }
-
- public void setColor(Color c)
- {
- graphics.setColor(c);
- backBufferGraphics.setColor(c);
- }
-
- public void setFont(Font font)
- {
- graphics.setFont(font);
- backBufferGraphics.setFont(font);
- }
-
- public void setPaintMode()
- {
- graphics.setPaintMode();
- backBufferGraphics.setPaintMode();
- }
-
- public void setXORMode(Color c1)
- {
- graphics.setXORMode(c1);
- backBufferGraphics.setXORMode(c1);
- }
-
- public String toString()
- {
- return graphics.toString();
- }
-
- public void translate(int x, int y)
- {
- graphics.translate(x,y);
- backBufferGraphics.translate(x,y);
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // Graphics2D
- // ==========
- //
- public void addRenderingHints(Map hints)
- {
- graphics.addRenderingHints(hints);
- backBufferGraphics.addRenderingHints(hints);
- }
-
- public void clip(Shape s)
- {
- graphics.clip(s);
- backBufferGraphics.clip(s);
- }
-
- public void draw(Shape s)
- {
- graphics.draw(s);
- backBufferGraphics.draw(s);
- }
-
- public void drawGlyphVector(GlyphVector g, float x, float y)
- {
- graphics.drawGlyphVector(g,x,y);
- backBufferGraphics.drawGlyphVector(g,x,y);
- }
-
- public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y)
- {
- graphics.drawImage(img,op,x,y);
- backBufferGraphics.drawImage(img,op,x,y);
- }
-
- public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs)
- {
- backBufferGraphics.drawImage(img,xform,obs);
- return graphics.drawImage(img,xform,obs);
- }
-
- public void drawRenderableImage(RenderableImage img, AffineTransform xform)
- {
- graphics.drawRenderableImage(img,xform);
- backBufferGraphics.drawRenderableImage(img,xform);
- }
-
- public void drawRenderedImage(RenderedImage img, AffineTransform xform)
- {
- graphics.drawRenderedImage(img,xform);
- backBufferGraphics.drawRenderedImage(img,xform);
- }
-
- public void drawString(AttributedCharacterIterator iterator, float x, float y)
- {
- graphics.drawString(iterator,x,y);
- backBufferGraphics.drawString(iterator,x,y);
- }
-
- public void drawString(String s, float x, float y)
- {
- graphics.drawString(s,x,y);
- backBufferGraphics.drawString(s,x,y);
- }
-
- public void fill(Shape s)
- {
- graphics.fill(s);
- backBufferGraphics.fill(s);
- }
-
- public Color getBackground()
- {
- return graphics.getBackground();
- }
-
- public Composite getComposite()
- {
- return graphics.getComposite();
- }
-
- public GraphicsConfiguration getDeviceConfiguration()
- {
- return graphics.getDeviceConfiguration();
- }
-
- public FontRenderContext getFontRenderContext()
- {
- return graphics.getFontRenderContext();
- }
-
- public Paint getPaint()
- {
- return graphics.getPaint();
- }
-
- public Object getRenderingHint(RenderingHints.Key hintKey)
- {
- return graphics.getRenderingHint(hintKey);
- }
-
- public RenderingHints getRenderingHints()
- {
- return graphics.getRenderingHints();
- }
-
- public Stroke getStroke()
- {
- return graphics.getStroke();
- }
-
- public AffineTransform getTransform()
- {
- return graphics.getTransform();
- }
-
- public boolean hit(Rectangle rect, Shape s, boolean onStroke)
- {
- return graphics.hit(rect,s,onStroke);
- }
-
- public void rotate(double theta)
- {
- graphics.rotate(theta);
- backBufferGraphics.rotate(theta);
- }
-
- public void rotate(double theta, double x, double y)
- {
- graphics.rotate(theta,x,y);
- backBufferGraphics.rotate(theta,x,y);
- }
-
- public void scale(double sx, double sy)
- {
- graphics.scale(sx,sy);
- backBufferGraphics.scale(sx,sy);
- }
-
- public void setBackground(Color color)
- {
- graphics.setBackground(color);
- backBufferGraphics.setBackground(color);
- }
-
- public void setComposite(Composite comp)
- {
- graphics.setComposite(comp);
- backBufferGraphics.setComposite(comp);
- }
-
- public void setPaint(Paint paint)
- {
- graphics.setPaint(paint);
- backBufferGraphics.setPaint(paint);
- }
-
- public void setRenderingHint(RenderingHints.Key hintKey, Object hintValue)
- {
- graphics.setRenderingHint(hintKey,hintValue);
- backBufferGraphics.setRenderingHint(hintKey,hintValue);
- }
-
- public void setRenderingHints(Map hints)
- {
- graphics.setRenderingHints(hints);
- backBufferGraphics.setRenderingHints(hints);
- }
-
- public void setStroke(Stroke s)
- {
- graphics.setStroke(s);
- backBufferGraphics.setStroke(s);
- }
-
- public void setTransform(AffineTransform Tx)
- {
- graphics.setTransform(Tx);
- backBufferGraphics.setTransform(Tx);
- }
-
- public void shear(double shx, double shy)
- {
- graphics.shear(shx,shy);
- backBufferGraphics.shear(shx,shy);
- }
-
- public void transform(AffineTransform Tx)
- {
- graphics.transform(Tx);
- backBufferGraphics.transform(Tx);
- }
-
- public void translate(double tx, double ty)
- {
- graphics.translate(tx,ty);
- backBufferGraphics.translate(tx,ty);
- }
-}
diff --git a/canvas/source/java/CanvasBase.java b/canvas/source/java/CanvasBase.java
deleted file mode 100644
index 2df796d06f84..000000000000
--- a/canvas/source/java/CanvasBase.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Canvas
-import com.sun.star.rendering.*;
-import com.sun.star.geometry.*;
-
-// Java AWT
-import java.awt.*;
-import java.awt.geom.*;
-
-public abstract class CanvasBase
- extends com.sun.star.lib.uno.helper.ComponentBase
- implements com.sun.star.rendering.XCanvas
-{
- // to be overridden
- public abstract Graphics2D getGraphics();
-
- //----------------------------------------------------------------------------------
-
- //
- // XCanvas interface
- // =================
- //
- public synchronized void clear()
- {
- Graphics2D graphics = getGraphics();
- // TODO(F3): retrieve true dimensions of the Graphics
- graphics.clearRect(0,0,1000,1000);
- }
-
- public synchronized void drawPoint( RealPoint2D aPoint,
- ViewState viewState,
- RenderState renderState ) throws com.sun.star.lang.IllegalArgumentException
- {
- // cache
- Graphics2D graphics = getGraphics();
-
- // initialize the Graphics2D
- CanvasUtils.setupGraphicsState( graphics, viewState, renderState, CanvasUtils.alsoSetupPaint );
-
- // calculate the domain value for a single device pixel. we're
- // using delta mapping here, to avoid later subtraction of two
- // mapped values (as we really only need a transformed size,
- // not a transformed point).
- AffineTransform transform = graphics.getTransform();
- AffineTransform inverse;
- try
- {
- inverse = transform.createInverse();
- }
- catch( NoninvertibleTransformException e )
- {
- // transformation not invertible. Nothing to render then.
- return;
- }
-
- java.awt.geom.Point2D.Double pointSize = new java.awt.geom.Point2D.Double(1.0,1.0);
- java.awt.geom.Point2D.Double domainPointSize = new java.awt.geom.Point2D.Double();
- inverse.deltaTransform( pointSize, domainPointSize );
-
- // render a circle one device pixel wide
- Ellipse2D.Double ellipse = new Ellipse2D.Double(aPoint.X, aPoint.Y, domainPointSize.x, domainPointSize.y);
-
- // render, at last
- graphics.fill( ellipse );
-
- CanvasUtils.printLog( "XCanvas: drawPoint called" );
- }
-
- public synchronized void drawLine( RealPoint2D aStartPoint,
- RealPoint2D aEndPoint,
- ViewState viewState,
- RenderState renderState ) throws com.sun.star.lang.IllegalArgumentException
- {
- // cache
- Graphics2D graphics = getGraphics();
-
- // initialize the Graphics2D
- CanvasUtils.setupGraphicsState( graphics, viewState, renderState, CanvasUtils.alsoSetupPaint );
- graphics.setStroke( new BasicStroke() );
-
- // setup line object
- Line2D.Double line = new Line2D.Double(aStartPoint.X, aStartPoint.Y, aEndPoint.X, aEndPoint.Y);
-
- // render, at last
- graphics.draw( line );
-
- CanvasUtils.printLog( "XCanvas: drawLine called" );
- }
-
- public synchronized void drawBezier( RealBezierSegment2D aBezierSegment,
- RealPoint2D aEndPoint,
- ViewState viewState,
- RenderState renderState ) throws com.sun.star.lang.IllegalArgumentException
- {
- // cache
- Graphics2D graphics = getGraphics();
-
- // initialize the Graphics2D
- CanvasUtils.setupGraphicsState( graphics, viewState, renderState, CanvasUtils.alsoSetupPaint );
- graphics.setStroke( new BasicStroke() );
-
- // setup bezier object
- CubicCurve2D.Double curve = new CubicCurve2D.Double(aBezierSegment.Px, aBezierSegment.Py,
- aBezierSegment.C1x, aBezierSegment.C1y,
- aBezierSegment.C2x, aBezierSegment.C2y,
- aEndPoint.X, aEndPoint.Y);
-
- // render, at last
- graphics.draw( curve );
-
- CanvasUtils.printLog( "XCanvas: drawbezier called" );
- }
-
- public synchronized XCachedPrimitive drawPolyPolygon( XPolyPolygon2D xPolyPolygon,
- ViewState viewState,
- RenderState renderState ) throws com.sun.star.lang.IllegalArgumentException
- {
- CanvasUtils.printLog( "CanvasBase.drawPolyPolygon() called" );
-
- // cache
- Graphics2D graphics = getGraphics();
-
- // initialize the Graphics2D
- CanvasUtils.setupGraphicsState( graphics, viewState, renderState, CanvasUtils.alsoSetupPaint );
- graphics.setStroke( new BasicStroke() );
-
- // render the polygon
- // TODO: maybe use Graphics.drawPolyline here!
- graphics.draw( CanvasUtils.makeGeneralPath(xPolyPolygon) );
-
- CanvasUtils.printLog( "XCanvas: drawPolyPolygon called" );
-
- return null;
- }
-
- public synchronized XCachedPrimitive strokePolyPolygon( XPolyPolygon2D xPolyPolygon,
- ViewState viewState,
- RenderState renderState,
- StrokeAttributes strokeAttributes ) throws com.sun.star.lang.IllegalArgumentException
- {
- // cache
- Graphics2D graphics = getGraphics();
-
- // initialize the Graphics2D
- CanvasUtils.setupGraphicsState( graphics, viewState, renderState, CanvasUtils.alsoSetupPaint );
- CanvasUtils.applyStrokeAttributes( graphics, strokeAttributes );
-
- // stroke the polygon
- graphics.draw( CanvasUtils.makeGeneralPath(xPolyPolygon) );
-
- CanvasUtils.printLog( "XCanvas: strokePolyPolygon called" );
-
- return null;
- }
-
- public synchronized XCachedPrimitive strokeTexturedPolyPolygon( XPolyPolygon2D xPolyPolygon,
- ViewState viewState,
- RenderState renderState,
- Texture[] textures,
- StrokeAttributes strokeAttributes ) throws com.sun.star.lang.IllegalArgumentException, VolatileContentDestroyedException
- {
- return null;
- }
-
- public synchronized XCachedPrimitive strokeTextureMappedPolyPolygon( XPolyPolygon2D xPolyPolygon,
- ViewState viewState,
- RenderState renderState,
- Texture[] textures,
- com.sun.star.geometry.XMapping2D xMapping,
- StrokeAttributes strokeAttributes ) throws com.sun.star.lang.IllegalArgumentException, VolatileContentDestroyedException
- {
- return null;
- }
-
- public synchronized XPolyPolygon2D queryStrokeShapes( com.sun.star.rendering.XPolyPolygon2D xPolyPolygon,
- com.sun.star.rendering.ViewState viewState,
- com.sun.star.rendering.RenderState renderState,
- com.sun.star.rendering.StrokeAttributes strokeAttributes ) throws com.sun.star.lang.IllegalArgumentException
- {
- return null;
- }
-
- public synchronized XCachedPrimitive fillPolyPolygon( com.sun.star.rendering.XPolyPolygon2D xPolyPolygon,
- com.sun.star.rendering.ViewState viewState,
- com.sun.star.rendering.RenderState renderState ) throws com.sun.star.lang.IllegalArgumentException
- {
- CanvasUtils.printLog( "CanvasBase.fillPolyPolygon() called" );
-
- // cache
- Graphics2D graphics = getGraphics();
-
- // initialize the Graphics2D
- CanvasUtils.setupGraphicsState( graphics, viewState, renderState, CanvasUtils.alsoSetupPaint );
-
- // fill the polygon
- graphics.fill( CanvasUtils.makeGeneralPath(xPolyPolygon) );
-
- CanvasUtils.printLog( "XCanvas: fillPolyPolygon called" );
-
- return null;
- }
-
- public synchronized XCachedPrimitive fillTexturedPolyPolygon( com.sun.star.rendering.XPolyPolygon2D xPolyPolygon,
- com.sun.star.rendering.ViewState viewState,
- com.sun.star.rendering.RenderState renderState,
- com.sun.star.rendering.Texture [] textures ) throws com.sun.star.lang.IllegalArgumentException
- {
- return null;
- }
-
- public synchronized XCachedPrimitive fillTextureMappedPolyPolygon( XPolyPolygon2D xPolyPolygon,
- ViewState viewState,
- RenderState renderState,
- Texture[] textures,
- com.sun.star.geometry.XMapping2D xMapping ) throws com.sun.star.lang.IllegalArgumentException, VolatileContentDestroyedException
- {
- return null;
- }
-
- public synchronized XCanvasFont createFont( FontRequest fontRequest, com.sun.star.beans.PropertyValue[] extraFontProperties, com.sun.star.geometry.Matrix2D fontMatrix ) throws com.sun.star.lang.IllegalArgumentException
- {
- // TODO: support extra arguments
- return new CanvasFont( fontRequest, this );
- }
-
- public FontInfo[] queryAvailableFonts( FontInfo aFilter, com.sun.star.beans.PropertyValue[] aFontProperties ) throws com.sun.star.lang.IllegalArgumentException
- {
- // TODO
- return null;
- }
-
- public XCachedPrimitive drawText( StringContext text, XCanvasFont xFont, ViewState viewState, RenderState renderState, byte textDirection ) throws com.sun.star.lang.IllegalArgumentException
- {
- CanvasUtils.printLog( "CanvasBase.drawText() called" );
-
- // cache
- Graphics2D graphics = getGraphics();
-
- CanvasUtils.printLog( "XCanvas: drawText called" );
-
- CanvasUtils.setupGraphicsState( graphics, viewState, renderState, CanvasUtils.alsoSetupPaint );
- CanvasUtils.setupGraphicsFont( graphics, viewState, renderState, xFont );
-
- CanvasUtils.printLog( "XCanvas: drawText rendering \""+ text.Text.substring(text.StartPosition, text.StartPosition+text.Length) + "\"" );
-
- graphics.drawString( text.Text.substring(text.StartPosition, text.StartPosition+text.Length), (float)0.0, (float)0.0 );
- return null;
- }
-
- public XCachedPrimitive drawTextLayout( XTextLayout layoutetText, ViewState viewState, RenderState renderState ) throws com.sun.star.lang.IllegalArgumentException
- {
- CanvasUtils.printLog( "CanvasBase.drawOffsettedText() called" );
-
- // cache
- Graphics2D graphics = getGraphics();
-
- CanvasUtils.printLog( "XCanvas: drawOffsettedText called" );
-
- CanvasUtils.setupGraphicsState( graphics, viewState, renderState, CanvasUtils.alsoSetupPaint );
- CanvasUtils.setupGraphicsFont( graphics, viewState, renderState, layoutetText.getFont() );
-
- CanvasUtils.printLog( "XCanvas: drawOffsettedText canvas setup done" );
-
- if( layoutetText instanceof TextLayout )
- {
- ((TextLayout)layoutetText).draw( graphics );
- }
- else
- {
- CanvasUtils.printLog( "drawTextLayout: mismatching TextLayout object." );
- throw new com.sun.star.lang.IllegalArgumentException();
- }
-
- return null;
- }
-
- public synchronized XCachedPrimitive drawBitmap( com.sun.star.rendering.XBitmap xBitmap,
- com.sun.star.rendering.ViewState viewState,
- com.sun.star.rendering.RenderState renderState ) throws com.sun.star.lang.IllegalArgumentException
- {
- CanvasUtils.printLog( "CanvasBase.drawBitmap() called" );
-
- // cache
- Graphics2D graphics = getGraphics();
-
- CanvasUtils.setupGraphicsState( graphics, viewState, renderState, CanvasUtils.alsoSetupPaint );
-
- java.awt.image.BufferedImage bitmap = CanvasUtils.getBufferedImage( xBitmap );
-
- if( !graphics.drawImage(bitmap, 0, 0, null) )
- CanvasUtils.printLog( "CanvasBase.drawBitmap: image paint incomplete" );
-
- CanvasUtils.postRenderImageTreatment( bitmap );
-
- return null;
- }
-
- public synchronized XCachedPrimitive drawBitmapModulated( com.sun.star.rendering.XBitmap xBitmap,
- com.sun.star.rendering.ViewState viewState,
- com.sun.star.rendering.RenderState renderState ) throws com.sun.star.lang.IllegalArgumentException
- {
- CanvasUtils.printLog( "CanvasBase.drawBitmapModulated() called" );
-
- // TODO(F3): Implement channel modulation
- return drawBitmap(xBitmap,
- viewState,
- renderState);
- }
-
- public synchronized XGraphicDevice getDevice()
- {
- CanvasUtils.printLog( "CanvasBase.getDevice() called" );
- return new CanvasGraphicDevice( getGraphics() );
- }
-}
diff --git a/canvas/source/java/CanvasBitmap.java b/canvas/source/java/CanvasBitmap.java
deleted file mode 100644
index cfb7617dc094..000000000000
--- a/canvas/source/java/CanvasBitmap.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Canvas
-import com.sun.star.rendering.*;
-import com.sun.star.geometry.*;
-
-public class CanvasBitmap
- extends CanvasBase
- implements com.sun.star.lang.XServiceInfo,
- com.sun.star.rendering.XBitmapCanvas,
- com.sun.star.rendering.XIntegerBitmap
-{
- private java.awt.image.BufferedImage bitmap;
- private java.awt.Graphics2D graphics;
-
- public CanvasBitmap( java.awt.image.BufferedImage _bitmap )
- {
- bitmap = _bitmap;
- graphics = bitmap.createGraphics();
- }
-
- public CanvasBitmap( IntegerSize2D mySize )
- {
- bitmap = new java.awt.image.BufferedImage(mySize.Width, mySize.Height,
- java.awt.image.BufferedImage.TYPE_4BYTE_ABGR);
- graphics = bitmap.createGraphics();
- }
-
- public CanvasBitmap( RealSize2D newSize, boolean beFast, CanvasBitmap source )
- {
-// java.awt.geom.AffineTransform transform = new java.awt.geom.AffineTransform();
-// transform.scale( newSize.width/size.Width, newSize.height/size.Height );
-
-// // TODO: Maybe keep the image returned via
-// // bitmap.getScaledInstance, and do scaling lazy.
-// bitmap = new java.awt.image.BufferedImage((int)(newSize.width+.5),
-// (int)(newSize.height+.5),
-// java.awt.image.BufferedImage.TYPE_4BYTE_ABGR);
-
-// java.awt.image.AffineTransformOp transformer =
-// new java.awt.image.AffineTransformOp( transform,
-// java.awt.image.AffineTransformOp.TYPE_BILINEAR);
-
-// transformer.filter(source.getBufferedImage(), bitmap);
- }
-
- public synchronized java.awt.image.BufferedImage getBufferedImage()
- {
- return bitmap;
- }
-
- public java.awt.Graphics2D getGraphics()
- {
- return graphics;
- }
-
- //
- // XBitmap implementation
- // ======================
- //
-
- public synchronized IntegerSize2D getSize()
- {
- return new IntegerSize2D( bitmap.getWidth(),
- bitmap.getHeight() );
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized XBitmapCanvas queryBitmapCanvas()
- {
- return this;
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized com.sun.star.rendering.XBitmap getScaledBitmap( RealSize2D newSize, boolean beFast ) throws com.sun.star.lang.IllegalArgumentException, VolatileContentDestroyedException
- {
- return new CanvasBitmap( newSize, beFast, this );
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized boolean hasAlpha()
- {
- // TODO
- return false;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XBitmapCanvas impl
- // ==================
- //
-
- public synchronized void copyRect( com.sun.star.rendering.XBitmapCanvas sourceCanvas,
- com.sun.star.geometry.RealRectangle2D sourceRect,
- com.sun.star.rendering.ViewState sourceViewState,
- com.sun.star.rendering.RenderState sourceRenderState,
- com.sun.star.geometry.RealRectangle2D destRect,
- com.sun.star.rendering.ViewState destViewState,
- com.sun.star.rendering.RenderState destRenderState )
- {
- CanvasUtils.printLog( "JavaCanvas.copyRect() called" );
-
- // TODO: create temp image when transform is non-trivial
-
- if( sourceCanvas == this )
- {
- // copy rectangle within the canvas
- getGraphics().copyArea((int)sourceRect.X1,
- (int)sourceRect.Y1,
- (int)(sourceRect.X2 - sourceRect.X1),
- (int)(sourceRect.Y2 - sourceRect.Y1),
- (int)(destRect.X1 - sourceRect.X1),
- (int)(destRect.Y1 - sourceRect.Y1) );
- }
- else
- {
- if( sourceCanvas instanceof JavaCanvas )
- {
- // cache
- CanvasUtils.setupGraphicsState( getGraphics(), destViewState, destRenderState, CanvasUtils.alsoSetupPaint );
-
- java.awt.Image backBuffer = ((JavaCanvas)sourceCanvas).backBuffer.getBackBuffer();
-
- // TODO: really extract correct source rect here
- getGraphics().drawImage( backBuffer, 0, 0, null);
- CanvasUtils.postRenderImageTreatment( backBuffer );
- }
- // TODO: foreign canvas
- }
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XIntegerBitmap implementation
- // =============================
- //
-
- public synchronized byte[] getData( IntegerBitmapLayout[] bitmapLayout,
- IntegerRectangle2D rect )
- {
- int [] pixelData = bitmap.getRGB( rect.X1, rect.Y1, rect.X2 - rect.X1, rect.Y1 - rect.Y2, null, 0, 0 );
-
- return CanvasUtils.int2byte( pixelData );
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized void setData( byte[] data, IntegerBitmapLayout bitmapLayout, com.sun.star.geometry.IntegerRectangle2D rect )
- {
- int [] pixelData = CanvasUtils.byte2int( data );
- bitmap.setRGB( rect.X1, rect.Y1, rect.X2 - rect.X1, rect.Y2 - rect.Y1, pixelData, 0, bitmap.getWidth() );
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized void setPixel( byte[] color, IntegerBitmapLayout bitmapLayout, com.sun.star.geometry.IntegerPoint2D pos )
- {
- if( color.length != 4 )
- CanvasUtils.printLog( "CanvasBitmap.setPixel: Wrong color format" );
-
- int pixel = color[0] + (color[1] + (color[2] + color[3]*256)*256)*256;
- bitmap.setRGB( pos.X, pos.Y, pixel );
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized byte[] getPixel( IntegerBitmapLayout[] bitmapLayout,
- IntegerPoint2D pos )
- {
- int pixel = bitmap.getRGB( pos.X, pos.Y );
-
- byte[] res = new byte[4];
- res[0] = (byte)(pixel & 255);
- res[1] = (byte)((pixel/256) & 255);
- res[2] = (byte)((pixel/256/256) & 255);
- res[3] = (byte)((pixel/256/256/256) & 255);
-
- return res;
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized XBitmapPalette getPalette()
- {
- return null;
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized IntegerBitmapLayout getMemoryLayout()
- {
- // TODO: finish that one
- IntegerBitmapLayout layout = new IntegerBitmapLayout();
-
- return layout;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XServiceInfo impl
- // =================
- //
-
- private static final String s_implName = "XIntegerBitmap.java.impl";
- private static final String s_serviceName = "com.sun.star.rendering.IntegerBitmap";
-
- public String getImplementationName()
- {
- return s_implName;
- }
-
- public String [] getSupportedServiceNames()
- {
- return new String [] { s_serviceName };
- }
-
- public boolean supportsService( String serviceName )
- {
- return serviceName.equals( s_serviceName );
- }
-}
diff --git a/canvas/source/java/CanvasClonedSprite.java b/canvas/source/java/CanvasClonedSprite.java
deleted file mode 100644
index d5f85678db4f..000000000000
--- a/canvas/source/java/CanvasClonedSprite.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Canvas
-import com.sun.star.rendering.*;
-import com.sun.star.geometry.*;
-
-// Java AWT
-import java.awt.geom.*;
-
-public class CanvasClonedSprite
- extends com.sun.star.lib.uno.helper.ComponentBase
- implements com.sun.star.rendering.XSprite,
- com.sun.star.lang.XServiceInfo,
- SpriteBase
-{
- private JavaCanvas canvas;
- private double alpha;
- private java.awt.geom.Point2D.Double outputPosition;
- private SpriteRep spriteRep;
- private SpriteBase original;
-
- //----------------------------------------------------------------------------------
-
- public CanvasClonedSprite( JavaCanvas _canvas,
- XSprite _original )
- {
- CanvasUtils.printLog( "CanvasClonesSprite constructor called!" );
-
- canvas = _canvas;
-
- if( _original instanceof SpriteBase )
- {
- original = (SpriteBase)_original;
- }
-
- alpha = 0.0;
- outputPosition = new java.awt.geom.Point2D.Double(0.0,0.0);
-
- // TODO: throw on error here!
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // SpriteBase
- // ==========
- //
- public SpriteRep getSpriteRep()
- {
- if( spriteRep == null )
- {
- spriteRep = new SpriteRep( original.getSpriteRep() );
-
- spriteRep.moveSprite( outputPosition );
- spriteRep.setSpriteAlpha( alpha );
-
- // TODO: Check for spriteRep.buffer != null here, throw otherwise
- }
- return spriteRep;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XComponent
- // ==========
- //
- public void dispose()
- {
- canvas = null;
- spriteRep = null;
- original = null;
-
- super.dispose();
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XSprite impl
- // ==================
- //
-
- public synchronized void setPriority( double nPriority )
- {
- // TODO
- }
-
- public synchronized void setAlpha( double _alpha )
- {
- alpha = _alpha;
-
- if( spriteRep != null )
- {
- spriteRep.setSpriteAlpha( alpha );
- }
- }
-
- public synchronized void move( RealPoint2D _aNewPos,
- ViewState _viewState,
- RenderState _renderState )
- {
- // transform given point with concatenated transformation
- AffineTransform transform = CanvasUtils.ViewConcatRenderTransform( _viewState, _renderState );
- transform.transform( new java.awt.geom.Point2D.Double(_aNewPos.X,
- _aNewPos.Y),
- outputPosition );
-
- if( spriteRep != null )
- {
- spriteRep.moveSprite( outputPosition );
- }
- }
-
- public synchronized void transform( AffineMatrix2D aTransformation ) throws com.sun.star.lang.IllegalArgumentException
- {
- // TODO
- }
-
- public synchronized void clip( XPolyPolygon2D aClip )
- {
- // TODO
- }
-
- public synchronized void show()
- {
- canvas.showSprite( this );
- canvas.updateScreen( false );
- }
-
- public synchronized void hide()
- {
- canvas.hideSprite( this );
- }
- //----------------------------------------------------------------------------------
-
- private static final String s_implName = "XSprite.java.impl";
- private static final String s_serviceName = "com.sun.star.rendering.Sprite";
-
- //----------------------------------------------------------------------------------
-
- //
- // XServiceInfo impl
- // =================
- //
- public String getImplementationName()
- {
- return s_implName;
- }
-
- public String [] getSupportedServiceNames()
- {
- return new String [] { s_serviceName };
- }
-
- public boolean supportsService( String serviceName )
- {
- return serviceName.equals( s_serviceName );
- }
-}
diff --git a/canvas/source/java/CanvasCustomSprite.java b/canvas/source/java/CanvasCustomSprite.java
deleted file mode 100644
index c3165fa68e80..000000000000
--- a/canvas/source/java/CanvasCustomSprite.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Canvas
-import com.sun.star.rendering.*;
-import com.sun.star.geometry.*;
-
-// Java AWT
-import java.awt.*;
-import java.awt.geom.*;
-
-public class CanvasCustomSprite
- extends com.sun.star.lib.uno.helper.ComponentBase
- implements com.sun.star.rendering.XCustomSprite,
- com.sun.star.lang.XServiceInfo,
- SpriteBase
-{
- private JavaCanvas canvas;
- private RealSize2D spriteSize;
- private Graphics2D referenceGraphics;
- private double alpha;
- private java.awt.geom.Point2D.Double outputPosition;
- private SpriteRep spriteRep;
-
- //----------------------------------------------------------------------------------
-
- public CanvasCustomSprite( RealSize2D _spriteSize,
- JavaCanvas _canvas,
- Graphics2D _referenceGraphics )
- {
- CanvasUtils.printLog( "CanvasCustomSprite constructor called, size is (" + _spriteSize.Width + ", " + _spriteSize.Height + ")" );
-
- canvas = _canvas;
- spriteSize = _spriteSize;
- referenceGraphics = _referenceGraphics;
- alpha = 0.0;
- outputPosition = new java.awt.geom.Point2D.Double(0.0,0.0);
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // SpriteBase
- // ==========
- //
- public synchronized SpriteRep getSpriteRep()
- {
- if( spriteRep == null )
- {
- spriteRep = new SpriteRep();
-
- spriteRep.setupBuffer(referenceGraphics, (int)(spriteSize.Width+.5), (int)(spriteSize.Height+.5) );
-
- spriteRep.moveSprite( outputPosition );
- spriteRep.setSpriteAlpha( alpha );
- }
- return spriteRep;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XComponent
- // ==========
- //
- public void dispose()
- {
- if( spriteRep != null )
- spriteRep.dispose();
-
- canvas = null;
- referenceGraphics = null;
- spriteRep = null;
-
- super.dispose();
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XCustomSprite impl
- // ==================
- //
-
- public synchronized void setPriority( double nPriority )
- {
- // TODO
- }
-
- public synchronized void setAlpha( double _alpha )
- {
- CanvasUtils.printLog( "CanvasCustomSprite.setAlpha() called" );
-
- alpha = _alpha;
-
- if( spriteRep != null )
- {
- spriteRep.setSpriteAlpha( alpha );
- }
- }
-
- public synchronized void move( RealPoint2D _aNewPos,
- ViewState _viewState,
- RenderState _renderState )
- {
- CanvasUtils.printLog( "CanvasCustomSprite.move() called" );
-
- // transform given point with concatenated transformation
- AffineTransform transform = CanvasUtils.ViewConcatRenderTransform( _viewState, _renderState );
- transform.transform( new java.awt.geom.Point2D.Double(_aNewPos.X,
- _aNewPos.Y),
- outputPosition );
-
- if( spriteRep != null )
- {
- spriteRep.moveSprite( outputPosition );
- }
- }
-
- public synchronized void transform( AffineMatrix2D aTransformation ) throws com.sun.star.lang.IllegalArgumentException
- {
- // TODO
- }
-
- public synchronized void clip( XPolyPolygon2D aClip )
- {
- // TODO
- }
-
- public synchronized void show()
- {
- CanvasUtils.printLog( "CanvasCustomSprite.show() called" );
-
- canvas.showSprite( this );
- canvas.updateScreen( false );
- }
-
- public synchronized void hide()
- {
- CanvasUtils.printLog( "CanvasCustomSprite.hide() called" );
-
- canvas.hideSprite( this );
-
- // do _not_ dispose clear SpriteRep, since we cannot actively
- // repaint ourselves
- }
-
- public synchronized com.sun.star.rendering.XCanvas getContentCanvas()
- {
- CanvasUtils.printLog( "CanvasCustomSprite.getContentCanvas() called" );
-
- return getSpriteRep().getContentCanvas();
- }
-
- //----------------------------------------------------------------------------------
-
- private static final String s_implName = "XCustomSprite.java.impl";
- private static final String s_serviceName = "com.sun.star.rendering.CustomSprite";
-
- //----------------------------------------------------------------------------------
-
- //
- // XServiceInfo impl
- // =================
- //
- public String getImplementationName()
- {
- return s_implName;
- }
-
- public String [] getSupportedServiceNames()
- {
- return new String [] { s_serviceName };
- }
-
- public boolean supportsService( String serviceName )
- {
- return serviceName.equals( s_serviceName );
- }
-}
diff --git a/canvas/source/java/CanvasFont.java b/canvas/source/java/CanvasFont.java
deleted file mode 100644
index 1ca2cc1aa3ec..000000000000
--- a/canvas/source/java/CanvasFont.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Canvas
-import com.sun.star.rendering.*;
-
-public class CanvasFont
- extends com.sun.star.lib.uno.helper.ComponentBase
- implements com.sun.star.lang.XServiceInfo,
- com.sun.star.rendering.XCanvasFont
-{
- private CanvasBase associatedCanvas;
- private com.sun.star.rendering.FontRequest fontRequest;
- private java.awt.Font font;
-
- //----------------------------------------------------------------------------------
-
- public CanvasFont( com.sun.star.rendering.FontRequest _fontRequest,
- CanvasBase _canvas )
- {
- associatedCanvas = _canvas;
- fontRequest = _fontRequest;
-
- // TODO: Use proper attributes here, first of all, use fractional point font size
- font = new java.awt.Font( fontRequest.FontDescription.FamilyName, java.awt.Font.PLAIN, (int)(fontRequest.CellSize + .5) );
- }
-
- public java.awt.Font getFont()
- {
- return font;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XCanvasFont implementation
- // ===========================
- //
-
- public XTextLayout createTextLayout( StringContext aText, byte nDirection, long nRandomSeed )
- {
- return new TextLayout( aText, nDirection, nRandomSeed, this, associatedCanvas );
- }
-
- public FontRequest getFontRequest( )
- {
- return fontRequest;
- }
-
- public FontMetrics getFontMetrics( )
- {
- // TODO
- return null;
- }
-
- public double[] getAvailableSizes( )
- {
- // TODO
- return null;
- }
-
- public com.sun.star.beans.PropertyValue[] getExtraFontProperties( )
- {
- // TODO
- return null;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XServiceInfo impl
- // =================
- //
-
- private static final String s_implName = "CanvasFont.java.impl";
- private static final String s_serviceName = "com.sun.star.rendering.XCanvasFont";
-
- public String getImplementationName()
- {
- return s_implName;
- }
-
- public String [] getSupportedServiceNames()
- {
- return new String [] { s_serviceName };
- }
-
- public boolean supportsService( String serviceName )
- {
- return serviceName.equals( s_serviceName );
- }
-}
diff --git a/canvas/source/java/CanvasGraphicDevice.java b/canvas/source/java/CanvasGraphicDevice.java
deleted file mode 100644
index c521d627f1a9..000000000000
--- a/canvas/source/java/CanvasGraphicDevice.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Canvas
-import com.sun.star.rendering.*;
-import com.sun.star.geometry.*;
-
-// Java AWT
-import java.awt.*;
-
-public class CanvasGraphicDevice
- extends com.sun.star.lib.uno.helper.ComponentBase
- implements com.sun.star.lang.XServiceInfo,
- com.sun.star.beans.XPropertySet,
- com.sun.star.rendering.XGraphicDevice
-{
- private java.awt.Graphics2D graphics;
- private java.awt.GraphicsConfiguration graphicsConfig;
-
- //----------------------------------------------------------------------------------
-
- public CanvasGraphicDevice( java.awt.Graphics2D _graphics )
- {
- graphics = _graphics;
- graphicsConfig = graphics.getDeviceConfiguration();
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // GraphicsDevice implementation
- // =============================
- //
- public synchronized XBufferController getBufferController()
- {
- // Use java.awt.image.BufferStrategy to implement XBufferController
- CanvasUtils.printLog( "CanvasGraphicDevice.getBufferController!" );
- return null;
- }
-
- public synchronized XColorSpace getDeviceColorSpace()
- {
- CanvasUtils.printLog( "CanvasGraphicDevice.getDeviceColorSpace!" );
- return null;
- }
-
- public synchronized com.sun.star.geometry.RealSize2D getPhysicalResolution()
- {
- CanvasUtils.printLog( "CanvasGraphicDevice.getPhysicalResolution!" );
- // TODO: getDefaultTransform + getNormalizingTransform
- return new com.sun.star.geometry.RealSize2D(100,100);
- }
-
- public synchronized com.sun.star.geometry.RealSize2D getPhysicalSize()
- {
- CanvasUtils.printLog( "CanvasGraphicDevice.getSize!" );
- java.awt.Rectangle bounds = graphicsConfig.getBounds();
-
- return new com.sun.star.geometry.RealSize2D(bounds.width, bounds.height);
- }
-
- public synchronized XLinePolyPolygon2D createCompatibleLinePolyPolygon( RealPoint2D[][] points )
- {
- CanvasUtils.printLog( "createCompatibleLinePolyPolygon" );
- return new LinePolyPolygon( points );
- }
-
- public synchronized XBezierPolyPolygon2D createCompatibleBezierPolyPolygon( RealBezierSegment2D[][] points )
- {
- CanvasUtils.printLog( "createCompatibleBezierPolyPolygon" );
- return new BezierPolyPolygon( points );
- }
-
- public synchronized com.sun.star.rendering.XBitmap createCompatibleBitmap( IntegerSize2D size )
- {
- CanvasUtils.printLog( "createCompatibleBitmap called with size (" + size.Width + ", " + size.Height + ")" );
- return new CanvasBitmap( graphicsConfig.createCompatibleImage( size.Width,
- size.Height,
- Transparency.OPAQUE ) );
- }
-
- public synchronized com.sun.star.rendering.XVolatileBitmap createVolatileBitmap( IntegerSize2D size )
- {
- CanvasUtils.printLog( "createVolatileBitmap called with size (" + size.Width + ", " + size.Height + ")" );
- //return new CanvasBitmap( graphicsConfig.createCompatibleVolatileImage( size.Width, size.Height ) );
- return null;
- }
-
- public synchronized com.sun.star.rendering.XBitmap createCompatibleAlphaBitmap( IntegerSize2D size )
- {
- CanvasUtils.printLog( "createCompatibleBitmap called with size (" + size.Width + ", " + size.Height + ")" );
- return new CanvasBitmap( graphicsConfig.createCompatibleImage( size.Width,
- size.Height,
- Transparency.TRANSLUCENT ) );
- }
-
- public synchronized com.sun.star.rendering.XVolatileBitmap createVolatileAlphaBitmap( IntegerSize2D size )
- {
- CanvasUtils.printLog( "createVolatileBitmap called with size (" + size.Width + ", " + size.Height + ")" );
- //return new CanvasBitmap( graphicsConfig.createCompatibleVolatileImage( size.Width, size.Height ) );
- return null;
- }
-
- public synchronized com.sun.star.rendering.XParametricPolyPolygon2DFactory getParametricPolyPolygonFactory()
- {
- // TODO
- return null;
- }
-
- public synchronized com.sun.star.beans.XPropertySetInfo getPropertySetInfo()
- {
- // This is a stealth property set
- return null;
- }
-
- public synchronized void setPropertyValue( String aPropertyName, java.lang.Object aValue ) throws com.sun.star.beans.PropertyVetoException
- {
- // all our properties are read-only
- throw new com.sun.star.beans.PropertyVetoException();
- }
-
- public synchronized java.lang.Object getPropertyValue( String PropertyName ) throws com.sun.star.beans.UnknownPropertyException
- {
- if( PropertyName == "DeviceHandle" )
- return graphics;
-
- throw new com.sun.star.beans.UnknownPropertyException();
- }
-
- public synchronized void addPropertyChangeListener( String aPropertyName, com.sun.star.beans.XPropertyChangeListener xListener ) throws com.sun.star.beans.UnknownPropertyException
- {
- if( aPropertyName == "DeviceHandle" )
- return;
-
- throw new com.sun.star.beans.UnknownPropertyException();
- }
-
- public synchronized void removePropertyChangeListener( String aPropertyName, com.sun.star.beans.XPropertyChangeListener aListener ) throws com.sun.star.beans.UnknownPropertyException
- {
- if( aPropertyName == "DeviceHandle" )
- return;
-
- throw new com.sun.star.beans.UnknownPropertyException();
- }
-
- public synchronized void addVetoableChangeListener( String PropertyName, com.sun.star.beans.XVetoableChangeListener aListener ) throws com.sun.star.beans.UnknownPropertyException
- {
- if( PropertyName == "DeviceHandle" )
- return;
-
- throw new com.sun.star.beans.UnknownPropertyException();
- }
-
- public synchronized void removeVetoableChangeListener( String PropertyName, com.sun.star.beans.XVetoableChangeListener aListener ) throws com.sun.star.beans.UnknownPropertyException
- {
- if( PropertyName == "DeviceHandle" )
- return;
-
- throw new com.sun.star.beans.UnknownPropertyException();
- }
-
-
- public synchronized boolean hasFullScreenMode()
- {
- return graphicsConfig.getDevice().isFullScreenSupported();
- }
-
- public synchronized boolean enterFullScreenMode( boolean bEnter )
- {
- return false;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XServiceInfo impl
- // =================
- //
-
- private static final String s_implName = "XGraphicsDevice.java.impl";
- private static final String s_serviceName = "com.sun.star.rendering.GraphicsDevice";
-
- public String getImplementationName()
- {
- return s_implName;
- }
-
- public String [] getSupportedServiceNames()
- {
- return new String [] { s_serviceName };
- }
-
- public boolean supportsService( String serviceName )
- {
- return serviceName.equals( s_serviceName );
- }
-
-}
diff --git a/canvas/source/java/CanvasSprite.java b/canvas/source/java/CanvasSprite.java
deleted file mode 100644
index 9b2cfc0debad..000000000000
--- a/canvas/source/java/CanvasSprite.java
+++ /dev/null
@@ -1,308 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Canvas
-import com.sun.star.rendering.*;
-import com.sun.star.geometry.*;
-
-// Java AWT
-import java.awt.*;
-import java.awt.geom.*;
-
-public class CanvasSprite
- extends com.sun.star.lib.uno.helper.ComponentBase
- implements com.sun.star.rendering.XAnimatedSprite,
- com.sun.star.lang.XServiceInfo,
- SpriteBase
-{
- private XAnimation spriteAnimation;
- private JavaCanvas canvas;
- private Graphics2D referenceGraphics;
- private SpriteRunner runner;
- private ViewState viewState;
- private double alpha;
- private java.awt.geom.Point2D.Double outputPosition;
- private SpriteRep spriteRep;
-
- //----------------------------------------------------------------------------------
-
- public CanvasSprite( XAnimation _animation, JavaCanvas _canvas, Graphics2D _referenceGraphics )
- {
- CanvasUtils.printLog( "CanvasSprite constructor called!" );
-
- spriteAnimation = _animation;
- canvas = _canvas;
- referenceGraphics = _referenceGraphics;
- alpha = 0.0;
- outputPosition = new java.awt.geom.Point2D.Double(0.0,0.0);
-
- runner = new SpriteRunner( this, spriteAnimation, canvas );
- }
-
- public synchronized ViewState getViewState()
- {
- return viewState;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // SpriteBase
- // ==========
- //
- public synchronized SpriteRep getSpriteRep()
- {
- if( spriteRep == null )
- {
- spriteRep = new SpriteRep();
-
- setupSpriteBuffering( CanvasUtils.makeTransform( getViewState().AffineTransform ) );
-
- spriteRep.moveSprite( outputPosition );
- spriteRep.setSpriteAlpha( alpha );
-
- // render initial sprite content
- updateAnimation();
- }
- return spriteRep;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XComponent
- // ==========
- //
- public void dispose()
- {
- // end the animation thread
- if( runner != null )
- {
- runner.quit();
- try
- {
- runner.join(0); // and wait until it's really over
- }
- catch( java.lang.InterruptedException e ) {}
- }
-
- if( spriteRep != null )
- spriteRep.dispose();
-
- canvas = null;
- spriteAnimation = null;
- runner = null;
- referenceGraphics = null;
- spriteRep = null;
-
- super.dispose();
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XSprite impl
- // ============
- //
-
- public synchronized void startAnimation( double speed )
- {
- runner.startAnimation( speed );
- }
-
- public synchronized void stopAnimation()
- {
- runner.stopAnimation();
- }
-
- public synchronized void resetAnimation()
- {
- runner.resetAnimation();
- }
-
- public synchronized void updateAnimation()
- {
- // only call render explicitely, if animation not
- // running. Otherwise, next animation render will update
- // anyway.
- if( spriteRep != null &&
- !runner.isAnimationActive() )
- {
- spriteRep.renderAnimation( spriteAnimation, getViewState(), runner.getCurrentT() );
- }
- }
-
- public synchronized void setPriority( double nPriority )
- {
- // TODO
- }
-
- public synchronized void setAlpha( double _alpha )
- {
- alpha = _alpha;
-
- if( spriteRep != null )
- {
- spriteRep.setSpriteAlpha( alpha );
- }
- }
-
- public synchronized void move( com.sun.star.geometry.RealPoint2D _aNewPos,
- com.sun.star.rendering.ViewState _viewState,
- com.sun.star.rendering.RenderState _renderState )
- {
- // transform given point with concatenated transformation
- AffineTransform transform = CanvasUtils.ViewConcatRenderTransform( _viewState, _renderState );
- transform.transform( new java.awt.geom.Point2D.Double(_aNewPos.X,
- _aNewPos.Y),
- outputPosition );
-
- if( spriteRep != null )
- {
- spriteRep.moveSprite( outputPosition );
- }
- }
-
- public synchronized void transform( AffineMatrix2D aTransformation ) throws com.sun.star.lang.IllegalArgumentException
- {
- // TODO
- }
-
- public synchronized void clip( XPolyPolygon2D aClip )
- {
- // TODO
- }
-
- public synchronized void show()
- {
- canvas.showSprite( this );
- canvas.updateScreen( false );
- }
-
- public synchronized void hide()
- {
- canvas.hideSprite( this );
-
- // dispose and clear SpriteRep, animation content can be
- // regenerated at any time
- if( spriteRep != null )
- spriteRep.dispose();
-
- spriteRep = null;
- }
-
- public synchronized void setViewState( ViewState _viewState )
- {
- viewState = CanvasUtils.createAnimationViewState(_viewState,
- getAnimationAttributes());
-
- CanvasUtils.printTransform( CanvasUtils.makeTransform( viewState.AffineTransform ),
- "CanvasSprite.setViewState" );
-
- if( spriteRep != null )
- {
- // calculate bounds of view-transformed animation output rectangle
- setupSpriteBuffering( CanvasUtils.makeTransform(getViewState().AffineTransform) );
- updateAnimation();
- }
- }
-
- public synchronized AnimationAttributes getAnimationAttributes()
- {
- return spriteAnimation.getAnimationAttributes();
- }
-
- public synchronized void setAll( RealPoint2D _aNewPos,
- ViewState _viewState,
- RenderState _renderState,
- double _alpha,
- boolean bUpdateAnimation )
- {
- alpha = _alpha;
-
- // transform given point with concatenated transformation
- AffineTransform transform = CanvasUtils.ViewConcatRenderTransform( _viewState, _renderState );
- transform.transform( new java.awt.geom.Point2D.Double(_aNewPos.X,
- _aNewPos.Y),
- outputPosition );
-
- if( spriteRep != null )
- {
- spriteRep.setSpriteAlpha( alpha );
- spriteRep.moveSprite( outputPosition );
-
- if( bUpdateAnimation )
- updateAnimation();
- }
- }
-
- //----------------------------------------------------------------------------------
-
- private void setupSpriteBuffering( AffineTransform _viewTransform )
- {
- // determine bounds of view-transformed animation output rectangle
- com.sun.star.geometry.RealSize2D animSize = getAnimationAttributes().UntransformedSize;
-
- java.awt.geom.Rectangle2D.Double aTransformedBounds =
- CanvasUtils.calcTransformedRectBounds( new java.awt.geom.Rectangle2D.Double(0.0,0.0,
- animSize.Width,
- animSize.Height),
- _viewTransform );
- CanvasUtils.printTransform( _viewTransform, "setupSpriteBuffering" );
- CanvasUtils.printLog( "setupSpriteBuffering: bounds are (" + aTransformedBounds.width + ", " + aTransformedBounds.height + ")" );
-
- // create a buffer of the appropriate size
- spriteRep.setupBuffer(referenceGraphics, (int)(aTransformedBounds.width+.5),
- (int)(aTransformedBounds.height+.5) );
- }
-
- //----------------------------------------------------------------------------------
-
- private static final String s_implName = "XSprite.java.impl";
- private static final String s_serviceName = "com.sun.star.rendering.Sprite";
-
- //----------------------------------------------------------------------------------
-
- //
- // XServiceInfo impl
- // =================
- //
- public String getImplementationName()
- {
- return s_implName;
- }
-
- public String [] getSupportedServiceNames()
- {
- return new String [] { s_serviceName };
- }
-
- public boolean supportsService( String serviceName )
- {
- return serviceName.equals( s_serviceName );
- }
-}
diff --git a/canvas/source/java/CanvasTest_perftest.java b/canvas/source/java/CanvasTest_perftest.java
deleted file mode 100644
index 047c9de3b16b..000000000000
--- a/canvas/source/java/CanvasTest_perftest.java
+++ /dev/null
@@ -1,676 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// UNO
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.uno.AnyConverter;
-import com.sun.star.uno.IQueryInterface;
-import com.sun.star.lang.XInitialization;
-import com.sun.star.lib.uno.helper.WeakBase;
-
-// OOo AWT
-import com.sun.star.awt.*;
-
-// Canvas
-import com.sun.star.rendering.*;
-
-// Java AWT
-import java.awt.*;
-import java.awt.image.*;
-import java.awt.geom.*;
-
-public class CanvasTest
- extends CanvasBase
- implements com.sun.star.awt.XWindow,
- com.sun.star.rendering.XSpriteCanvas,
- com.sun.star.lang.XServiceInfo,
- com.sun.star.lang.XInitialization
-{
- private WindowAdapter dummyFrame;
- private BackBuffer backBuffer;
- private java.awt.image.BufferStrategy bufferStrategy;
-
- private java.awt.Font fpsFont;
- private long lastTime;
-
-
- // TEST ONLY {
- private static int testWidth = 1600;
- private static int testHeight = 1200;
- private BufferedImage backgroundBuffer;
- private BufferedImage buffer;
- private BufferedImage buffer2;
- private Graphics2D backBufGraphics;
- private Graphics2D bufferGraphics;
- private Graphics2D buffer2Graphics;
- private float currAlpha;
- // TEST ONLY }
-
-
-
- public Graphics2D getGraphics()
- {
- return backBuffer.getGraphics();
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XInitialization
- // ===============
- //
- public void initialize( java.lang.Object[] arguments )
- {
- CanvasUtils.printLog( "CanvasTest.initialize called!" );
-
- // Do that as the very first thing. The Java2D internal
- // classes choose their render path at initialization time,
- // thus this must happen before doing _any_ GUI.
-
- // TODO: Put those flags into javarc/java.ini, we're maybe
- // coming late into a running JVM!
-
- // now, we're getting slightly system dependent here.
- String os = (String) System.getProperty("os.name");
-
- CanvasUtils.printLog( "System detected: " + os );
-
- // tweak some speed knobs...
- if( os.startsWith("Windows") )
- {
- System.setProperty("sun.java2d.translaccel", "true");
- System.setProperty("sun.java2d.ddforcevram", "true");
- //System.setProperty("sun.java2d.accthreshold", "0");
-
- CanvasUtils.printLog( "Optimizing for Windows" );
- }
- else
- {
- System.setProperty("sun.java2d.opengl", "true");
-
- CanvasUtils.printLog( "Optimizing for Unix" );
- }
-
- /* we're initialized with the following array of anys:
-
- arguments[0] = pointer to VCL window
- arguments[1] = Integer (operating system window handle)
- arguments[2] = com.sun.star.awt.Rectangle (position and size within that OS window)
- arguments[3] = boolean (fullsize window or not)
-
- We then generate a dummy Java frame with that window as the
- parent, to fake a root window for the Java implementation.
- */
- try
- {
- com.sun.star.awt.Rectangle boundRect = (com.sun.star.awt.Rectangle) arguments[2];
-
- //boolean isFullScreen = arguments[1];
- boolean isFullScreen = true;
- //AnyConverter.toBoolean( arguments[3] ) );
-
- // fake a root for Java in VCL window. Pass the flag
- // whether we shall run fullscreen, too.
- dummyFrame = new WindowAdapter( AnyConverter.toInt( arguments[1] ), isFullScreen );
-
- if( isFullScreen )
- {
- // blow window up to fullscreen. Otherwise, we cannot clear the whole screen,
- // which results in ugly flickering
- Dimension screenSize = dummyFrame.frame.getToolkit().getScreenSize();
- boundRect.X = 0;
- boundRect.Y = 0;
- boundRect.Width = screenSize.width-1;
- boundRect.Height = screenSize.height-1;
- }
-
- dummyFrame.setPosSize( boundRect.X, boundRect.Y, boundRect.Width, boundRect.Height, (short)0 );
- CanvasUtils.printLog( "Window size: " + boundRect.Width + ", " + boundRect.Height );
-
- // TEST
- if( true )
- {
- backBuffer = new BackBuffer( (Graphics2D) dummyFrame.frame.getGraphics(),
- Math.max(1,boundRect.Width),
- Math.max(1,boundRect.Height) );
- }
- else
- {
- backBuffer = new BackBuffer( (Graphics2D) dummyFrame.frame.getGraphics(),
- 10, 10 );
- }
-
- // TODO: Maybe delay double buffer init until first sprite creation
- dummyFrame.frame.createBufferStrategy(2);
- bufferStrategy = dummyFrame.frame.getBufferStrategy();
-
- if( bufferStrategy.getCapabilities().isPageFlipping() )
- CanvasUtils.printLog( "CanvasTest.initialize double buffering is using page flipping!" );
- else
- CanvasUtils.printLog( "CanvasTest.initialize double buffering is using blitting!" );
-
- lastTime = System.currentTimeMillis();
- fpsFont = new java.awt.Font( "Times", Font.PLAIN, 20 );
-
-
- if( false )
- {
- // TEST ONLY {
- Graphics2D frameGraphics= (Graphics2D) dummyFrame.frame.getGraphics();
- backgroundBuffer = frameGraphics.getDeviceConfiguration().createCompatibleImage(testWidth,testHeight); // TODO: size dynamic
- buffer = frameGraphics.getDeviceConfiguration().createCompatibleImage(testWidth,testHeight,
- Transparency.TRANSLUCENT);
- buffer2 = frameGraphics.getDeviceConfiguration().createCompatibleImage(testWidth,testHeight,
- Transparency.TRANSLUCENT);
- bufferGraphics = (Graphics2D)buffer.getGraphics();
- buffer2Graphics = (Graphics2D)buffer2.getGraphics();
- backBufGraphics = (Graphics2D)backgroundBuffer.getGraphics();
- currAlpha = 0.1f;
-
- // init content
- Font font = new Font( "Times", Font.PLAIN, 100 );
-
- bufferGraphics.setComposite( AlphaComposite.getInstance(AlphaComposite.CLEAR));
- bufferGraphics.fillRect( 0,0,testWidth,testHeight );
-
- bufferGraphics.setComposite( AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
- bufferGraphics.setColor( Color.red );
- bufferGraphics.fillRect( 0,0,testWidth/2,testHeight/2 );
- bufferGraphics.setColor( Color.green );
- bufferGraphics.fillRect( testWidth/2,0,testWidth,testHeight/2 );
- bufferGraphics.setColor( Color.blue );
- bufferGraphics.fillRect( 0,testHeight/2,testWidth/2,testHeight );
-
- buffer2Graphics.setColor( Color.red );
- buffer2Graphics.fillRect( 0,0,testWidth/2,testHeight/2 );
- buffer2Graphics.setColor( Color.green );
- buffer2Graphics.fillRect( testWidth/2,0,testWidth,testHeight/2 );
- buffer2Graphics.setColor( Color.blue );
- buffer2Graphics.fillRect( 0,testHeight/2,testWidth/2,testHeight );
-
- backBufGraphics.setColor( Color.white );
- backBufGraphics.fillRect(0,0,testWidth,testHeight);
- backBufGraphics.setColor( Color.red );
- backBufGraphics.setFont( font );
- int i, turns=15;
- for(i=0; i<turns; ++i)
- {
- backBufGraphics.drawString( "Crossfade test", testWidth*i/turns, testHeight*i/turns );
- }
- // TEST ONLY }
- }
-
- CanvasUtils.printLog( "CanvasTest.initialize finished!" );
- }
- catch( com.sun.star.lang.IllegalArgumentException e )
- {
- CanvasUtils.printLog( "Cannot create EmbeddedFrame within VCL window hierarchy!" );
- }
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XComponent
- // ==========
- //
- public void dispose()
- {
- CanvasUtils.printLog( "CanvasTest: disposed!" );
-
- // destroy all active sprites
- java.util.Set entries = activeSprites.entrySet();
- java.util.Iterator iter = entries.iterator();
-
- while( iter.hasNext() )
- {
- java.util.Map.Entry entry = (java.util.Map.Entry)iter.next();
- if( entry.getValue() != null )
- ((SpriteRep)entry.getValue()).dispose();
- }
-
- if( bufferStrategy != null )
- bufferStrategy.getDrawGraphics().dispose(); // really necessary?
-
- if( dummyFrame != null )
- dummyFrame.dispose();
-
- if( backBuffer != null)
- backBuffer.dispose();
-
- bufferStrategy = null;
- dummyFrame = null;
- backBuffer = null;
-
- super.dispose();
- }
-
- //----------------------------------------------------------------------------------
-
- public CanvasTest( XComponentContext xContext )
- {
- CanvasUtils.printLog( "CanvasTest constructor called!" );
- activeSprites = new java.util.HashMap( 33 );
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XWindow interface
- // =================
- //
- // This is delegated to WindowAdapter!
- //
- public synchronized void setPosSize( int X, int Y, int Width, int Height, short Flags )
- {
- if( dummyFrame != null )
- {
- dummyFrame.setPosSize( X, Y, Width, Height, Flags );
-
- Width = Math.max(1,Width);
- Height= Math.max(1,Height);
-
- CanvasUtils.printLog( "CanvasTest graphics set to " + Width + "," + Height );
- backBuffer.setSize(Width,Height);
- }
- }
-
- public synchronized com.sun.star.awt.Rectangle getPosSize( )
- {
- if( dummyFrame != null )
- return dummyFrame.getPosSize();
-
- return new com.sun.star.awt.Rectangle();
- }
-
- public synchronized void setVisible( boolean visible )
- {
- if( dummyFrame != null )
- dummyFrame.setVisible( visible );
- }
-
- public synchronized void setEnable( boolean enable )
- {
- if( dummyFrame != null )
- dummyFrame.setEnable( enable );
- }
-
- public synchronized void setFocus()
- {
- if( dummyFrame != null )
- dummyFrame.setFocus();
- }
-
- public synchronized void addWindowListener( XWindowListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.addWindowListener( xListener );
- }
-
- public synchronized void removeWindowListener( XWindowListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.removeWindowListener( xListener );
- }
-
- public synchronized void addFocusListener( XFocusListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.addFocusListener( xListener );
- }
-
- public synchronized void removeFocusListener( XFocusListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.removeFocusListener( xListener );
- }
-
- public synchronized void addKeyListener( XKeyListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.addKeyListener( xListener );
- }
-
- public synchronized void removeKeyListener( XKeyListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.removeKeyListener( xListener );
- }
-
- public synchronized void addMouseListener( XMouseListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.addMouseListener( xListener );
- }
-
- public synchronized void removeMouseListener( XMouseListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.removeMouseListener( xListener );
- }
-
- public synchronized void addMouseMotionListener( XMouseMotionListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.addMouseMotionListener( xListener );
- }
-
- public synchronized void removeMouseMotionListener( XMouseMotionListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.removeMouseMotionListener( xListener );
- }
-
- public synchronized void addPaintListener( XPaintListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.addPaintListener( xListener );
- }
-
- public synchronized void removePaintListener( XPaintListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.removePaintListener( xListener );
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XBitmapCanvas impl
- // ==================
- //
-
- public synchronized void copyRect( com.sun.star.rendering.XBitmapCanvas sourceCanvas,
- com.sun.star.rendering.Rectangle2D sourceRect,
- com.sun.star.rendering.ViewState sourceViewState,
- com.sun.star.rendering.RenderState sourceRenderState,
- com.sun.star.rendering.Rectangle2D destRect,
- com.sun.star.rendering.ViewState destViewState,
- com.sun.star.rendering.RenderState destRenderState )
- {
- CanvasUtils.printLog( "CanvasTest.copyRect() called" );
-
- // TODO: create temp image when transform is non-trivial
-
- if( sourceCanvas == this )
- {
- // copy rectangle within the canvas
- getGraphics().copyArea((int)sourceRect.x1,
- (int)sourceRect.y1,
- (int)(sourceRect.x2 - sourceRect.x1),
- (int)(sourceRect.y2 - sourceRect.y1),
- (int)(destRect.x1 - sourceRect.x1),
- (int)(destRect.y1 - sourceRect.y1) );
- }
- else
- {
- if( sourceCanvas instanceof CanvasTest )
- {
- // cache
- CanvasUtils.setupGraphicsState( getGraphics(), destViewState, destRenderState, CanvasUtils.alsoSetupPaint );
-
- java.awt.Image backBuffer = ((CanvasTest)sourceCanvas).backBuffer.getBackBuffer();
-
- // TODO: really extract correct source rect here
- getGraphics().drawImage( backBuffer, 0, 0, null);
- CanvasUtils.postRenderImageTreatment( backBuffer );
- }
- // TODO: foreign canvas
- }
- }
-
- //----------------------------------------------------------------------------------
-
- // a map of SpriteReps, with Sprite object as keys. Contains all
- // active (i.e. visible) sprites, the SpriteReps are used to
- // repaint the sprite content at any time.
- private java.util.HashMap activeSprites;
-
- //
- // XSpriteCanvas impl
- // ==================
- //
-
- public synchronized com.sun.star.rendering.XAnimatedSprite createSpriteFromAnimation( XAnimation animation )
- {
- CanvasUtils.printLog( "CanvasTest.createSpriteFromAnimation called" );
-
- return new CanvasSprite( animation, this, (Graphics2D)dummyFrame.frame.getGraphics() );
- }
-
- public synchronized XAnimatedSprite createSpriteFromBitmaps( com.sun.star.rendering.XBitmap[] animationBitmaps,
- short interpolationMode )
- {
- return null;
- }
-
- public synchronized XCustomSprite createCustomSprite( Size2D spriteSize )
- {
- CanvasUtils.printLog( "CanvasTest.createCustomSprite called" );
-
- return new CanvasCustomSprite( spriteSize, this, (Graphics2D)dummyFrame.frame.getGraphics() );
- }
-
- public synchronized XSprite createClonedSprite( XSprite original )
- {
- return new CanvasClonedSprite( this, original );
- }
-
- public synchronized void updateScreen()
- {
- redrawAllLayers();
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XSpriteCanvas helper
- // ====================
- //
- public synchronized void renderAnimation( CanvasSprite sprite, XAnimation animation, double t )
- {
- SpriteRep spriteRep = (SpriteRep)activeSprites.get( sprite );
- if( spriteRep != null )
- {
- //Graphics2D graph = getWindowGraphics();
-
- // TODO: ensure update of graphics object externally, e.g. when
- // VCL moves the toplevel window.
- //java.awt.Rectangle bounds = dummyFrame.frame.getBounds();
- //graphics.setGraphics(graph, bounds.width, bounds.height);
-
- spriteRep.renderAnimation( animation, sprite.getViewState(), t );
- }
- else
- {
- CanvasUtils.printLog( "CanvasTest.renderAnimation sprite not active!" );
- }
- }
-
- public synchronized void showSprite( SpriteBase sprite )
- {
- CanvasUtils.printLog( "CanvasTest.showSprite() called" );
-
- SpriteRep spriteRep = (SpriteRep)activeSprites.get( sprite );
- if( spriteRep != null )
- {
- CanvasUtils.printLog( "CanvasTest.showSprite sprite already active!" );
- }
- else
- {
- spriteRep = sprite.getSpriteRep();
-
- // a valid SpriteRep for a given Sprite in the
- // activeSprites hash denotes 'sprite active'
- activeSprites.put( sprite, spriteRep );
-
- // TODO: TEMP! Just for testing! Set empty cursor for presentation
-// dummyFrame.frame.setCursor( dummyFrame.frame.getToolkit().createCustomCursor(new java.awt.image.BufferedImage(0,0,
-// java.awt.image.BufferedImage.TYPE_INT_RGB),
-// new java.awt.Point(0,0),
-// "") );
- }
- }
-
- public synchronized void hideSprite( SpriteBase sprite )
- {
- CanvasUtils.printLog( "CanvasTest.hideSprite() called" );
-
- SpriteRep spriteRep = (SpriteRep)activeSprites.get( sprite );
- if( spriteRep != null )
- {
- activeSprites.put( sprite, null );
- redrawAllLayers();
- }
- else
- {
- CanvasUtils.printLog( "CanvasTest.hideSprite sprite not active!" );
- }
- }
-
- private void redrawAllLayers()
- {
- // fetch the Graphics object to draw into (we're doing double
- // buffering here, the content is later shown via
- // bufferStrategy.show().
- Graphics2D graph = null;
-
- try
- {
- graph = (Graphics2D)bufferStrategy.getDrawGraphics();
-
- GraphicsDevice device = graph.getDeviceConfiguration().getDevice();
- CanvasUtils.printLog( "Available vram: " + device.getAvailableAcceleratedMemory() );
-
- if( false )
- {
- // TEST ONLY {
- // repaint background
- graph.setComposite( AlphaComposite.getInstance(AlphaComposite.SRC_OVER) );
- graph.drawImage(backgroundBuffer, 0, 0, null);
- //backgroundBuffer.flush();
-
- // alpha-composite foreground on top of that
- graph.setComposite( AlphaComposite.getInstance(AlphaComposite.SRC_OVER, currAlpha) );
-
- graph.drawImage(buffer, 0, 0, null);
- //buffer.flush();
-
- currAlpha += 0.1f; if( currAlpha > 1.0 ) currAlpha = 0.1f;
- // TEST ONLY }
- }
-
- if( true )
- {
- // repaint background
- backBuffer.redraw( graph );
-
- // repaint all active sprites
- java.util.Set entries = activeSprites.entrySet();
- java.util.Iterator iter = entries.iterator();
- while( iter.hasNext() )
- {
- java.util.Map.Entry entry = (java.util.Map.Entry)iter.next();
- if( entry.getValue() != null )
- ((SpriteRep)entry.getValue()).redraw(graph);
- }
- }
-
- long currTime = System.currentTimeMillis();
- graph.setComposite( AlphaComposite.getInstance(AlphaComposite.SRC_OVER) );
- graph.setFont( fpsFont );
- graph.setColor( java.awt.Color.black );
-
- try
- {
- String fps = new String( String.valueOf(1000.0/(currTime-lastTime)) );
- graph.drawString( fps.substring(0,5) + " fps", 0, 20);
- CanvasUtils.printLog( fps.substring(0,5) + " fps" );
- }
- catch( Exception e )
- {
- graph.drawString( "0 fps", 0, 20);
- }
-
- lastTime = currTime;
- }
- finally
- {
- if( graph != null )
- graph.dispose();
- }
-
- bufferStrategy.show();
- }
-
- //----------------------------------------------------------------------------------
-
- private static final String s_implName = "XCanvas.java.impl";
- private static final String s_serviceName = "com.sun.star.rendering.Canvas";
-
- //----------------------------------------------------------------------------------
-
- //
- // XServiceInfo impl
- // =================
- //
- public synchronized String getImplementationName()
- {
- return s_implName;
- }
-
- public synchronized String [] getSupportedServiceNames()
- {
- return new String [] { s_serviceName };
- }
-
- public synchronized boolean supportsService( String serviceName )
- {
- return serviceName.equals( s_serviceName );
- }
-
- public static com.sun.star.lang.XSingleServiceFactory __getServiceFactory(
- String implName,
- com.sun.star.lang.XMultiServiceFactory multiFactory,
- com.sun.star.registry.XRegistryKey regKey )
- {
- if (implName.equals( s_implName ))
- {
- return com.sun.star.comp.loader.FactoryHelper.getServiceFactory(
- CanvasTest.class, s_serviceName, multiFactory, regKey );
- }
- return null;
- }
-
- public static boolean __writeRegistryServiceInfo(
- com.sun.star.registry.XRegistryKey regKey )
- {
- return com.sun.star.comp.loader.FactoryHelper.writeRegistryServiceInfo(
- s_implName, s_serviceName, regKey );
- }
-}
diff --git a/canvas/source/java/CanvasUtils.java b/canvas/source/java/CanvasUtils.java
deleted file mode 100644
index 8b2245176e03..000000000000
--- a/canvas/source/java/CanvasUtils.java
+++ /dev/null
@@ -1,627 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// UNO
-import com.sun.star.uno.UnoRuntime;
-
-// Canvas
-import com.sun.star.rendering.*;
-import com.sun.star.geometry.*;
-
-// Java AWT
-import java.awt.*;
-import java.awt.geom.*;
-
-public class CanvasUtils
-{
- //
- // Canvas utilities
- // ================
- //
- public static java.awt.geom.AffineTransform makeTransform( AffineMatrix2D ooTransform )
- {
- return new AffineTransform( ooTransform.m00,
- ooTransform.m10,
- ooTransform.m01,
- ooTransform.m11,
- ooTransform.m02,
- ooTransform.m12 );
- }
-
- public static AffineMatrix2D makeAffineMatrix2D( java.awt.geom.AffineTransform transform )
- {
- double[] matrix = new double[6];
- transform.getMatrix( matrix );
-
- return new AffineMatrix2D( matrix[0], matrix[2], matrix[4],
- matrix[1], matrix[3], matrix[5] );
- }
-
- public static void initGraphics( Graphics2D graphics )
- {
- if( graphics != null )
- {
- java.awt.RenderingHints hints = new java.awt.RenderingHints(null);
- boolean hq = true;
-
- if( hq )
- {
- hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_FRACTIONALMETRICS,
- java.awt.RenderingHints.VALUE_FRACTIONALMETRICS_ON ) );
-// hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_ALPHA_INTERPOLATION,
-// java.awt.RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY) );
- hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_ALPHA_INTERPOLATION,
- java.awt.RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED) );
-// hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_INTERPOLATION,
-// java.awt.RenderingHints.VALUE_INTERPOLATION_BICUBIC) );
- hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_INTERPOLATION,
- java.awt.RenderingHints.VALUE_INTERPOLATION_BILINEAR) );
-// hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_RENDERING,
-// java.awt.RenderingHints.VALUE_RENDER_QUALITY) );
- hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_RENDERING,
- java.awt.RenderingHints.VALUE_RENDER_SPEED) );
-// hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_STROKE_CONTROL,
-// java.awt.RenderingHints.VALUE_STROKE_NORMALIZE) );
- hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_STROKE_CONTROL,
- java.awt.RenderingHints.VALUE_STROKE_DEFAULT) );
- hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_ANTIALIASING,
- java.awt.RenderingHints.VALUE_ANTIALIAS_ON) );
- }
- else
- {
- hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_ALPHA_INTERPOLATION,
- java.awt.RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED) );
- hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_INTERPOLATION,
- java.awt.RenderingHints.VALUE_INTERPOLATION_BILINEAR) );
- hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_RENDERING,
- java.awt.RenderingHints.VALUE_RENDER_SPEED) );
- hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_STROKE_CONTROL,
- java.awt.RenderingHints.VALUE_STROKE_DEFAULT) );
- hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_ANTIALIASING,
- java.awt.RenderingHints.VALUE_ANTIALIAS_OFF) );
- }
-
- // the least common denominator standard
- hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_FRACTIONALMETRICS,
- java.awt.RenderingHints.VALUE_FRACTIONALMETRICS_ON) );
- hints.add( new java.awt.RenderingHints( java.awt.RenderingHints.KEY_TEXT_ANTIALIASING,
- java.awt.RenderingHints.VALUE_TEXT_ANTIALIAS_ON) );
-
- graphics.setRenderingHints( hints );
- }
- }
-
- //----------------------------------------------------------------------------------
-
- public static java.awt.geom.GeneralPath makeGenPathFromBezierPoints( RealBezierSegment2D [][] points )
- {
- java.awt.geom.GeneralPath path = new java.awt.geom.GeneralPath();
-
- // extract every polygon into GeneralPath object
- for( int i=0; i<points.length; ++i )
- {
- if( points[i].length > 0 )
- path.moveTo((float) points[i][0].Px, (float) points[i][0].Py);
-
- for( int j=1; j<points[i].length; ++j )
- {
- CanvasUtils.printLog( "makeGenPathFromBezierPoints: point added." );
- path.curveTo((float)(points[i][j-1].C1x), (float)(points[i][j-1].C1y),
- (float)(points[i][j-1].C2x), (float)(points[i][j-1].C2y),
- (float) points[i][j].Px, (float) points[i][j].Py );
- }
-
- // TODO: closePath?
- }
-
- return path;
- }
-
- public static java.awt.geom.GeneralPath makeGenPathFromBezierPoly( com.sun.star.rendering.XBezierPolyPolygon2D poly )
- {
- try
- {
- com.sun.star.geometry.RealBezierSegment2D [][] points = poly.getBezierSegments(0,-1,0,-1);
-
- return makeGenPathFromBezierPoints( points );
- }
- catch( com.sun.star.lang.IndexOutOfBoundsException e )
- {
- }
-
- return new java.awt.geom.GeneralPath();
- }
-
- public static java.awt.geom.GeneralPath makeGenPathFromLinePoints( RealPoint2D [][] points )
- {
- java.awt.geom.GeneralPath path = new java.awt.geom.GeneralPath();
-
- // extract every polygon into GeneralPath object
- for( int i=0; i<points.length; ++i )
- {
- if( points[i].length > 0 )
- path.moveTo((float) points[i][0].X, (float) points[i][0].Y);
-
- for( int j=1; j<points[i].length; ++j )
- {
- CanvasUtils.printLog( "makeGenPathFromLinePoints: point (" +
- points[i][j].X + "," + points[i][j].Y + ") added." );
- path.lineTo((float) points[i][j].X, (float) points[i][j].Y );
- }
-
- // TODO: closePath?
- }
-
- return path;
- }
-
- public static java.awt.geom.GeneralPath makeGenPathFromLinePoly( com.sun.star.rendering.XLinePolyPolygon2D poly )
- {
- try
- {
- com.sun.star.geometry.RealPoint2D [][] points = poly.getPoints(0,-1,0,-1);
-
- return makeGenPathFromLinePoints( points );
- }
- catch( com.sun.star.lang.IndexOutOfBoundsException e )
- {
- }
-
- return new java.awt.geom.GeneralPath();
- }
-
- public static java.awt.geom.GeneralPath makeGeneralPath( com.sun.star.rendering.XPolyPolygon2D poly )
- {
- if( poly instanceof BezierPolyPolygon )
- {
- CanvasUtils.printLog( "makeGeneralPath: bezier impl used." );
- return ((BezierPolyPolygon)poly).getJavaPath();
- }
-
- if( poly instanceof LinePolyPolygon )
- {
- CanvasUtils.printLog( "makeGeneralPath: line impl used." );
- return ((LinePolyPolygon)poly).getJavaPath();
- }
-
- XBezierPolyPolygon2D bezierPoly = (XBezierPolyPolygon2D) UnoRuntime.queryInterface(XBezierPolyPolygon2D.class, poly);
-
- if( bezierPoly != null )
- {
- // extract polygon data. Prefer bezier interface, because
- // that's the more high-level data.
- return makeGenPathFromBezierPoly( bezierPoly );
- }
-
- XLinePolyPolygon2D linePoly = (XLinePolyPolygon2D) UnoRuntime.queryInterface(XLinePolyPolygon2D.class, poly);
-
- if( linePoly != null )
- {
- // extract polygon data. Fallback to line polygon, if no
- // curves are available.
- return makeGenPathFromLinePoly( linePoly );
- }
-
- // Only opaque general interface. No chance to get to the
- // data. Empty path, then
- CanvasUtils.printLog( "makeGeneralPath: Cannot access polygon data, given interface has class" + poly.getClass().getName() );
- return new GeneralPath();
- }
-
- public static java.awt.image.BufferedImage getBufferedImage( com.sun.star.rendering.XBitmap bitmap )
- {
- if( bitmap instanceof CanvasBitmap )
- {
- CanvasUtils.printLog( "getBufferedImage: CanvasBitmap impl used." );
- return ((CanvasBitmap)bitmap).getBufferedImage();
- }
-
- XIntegerBitmap integerBitmap = (XIntegerBitmap) UnoRuntime.queryInterface(XIntegerBitmap.class, bitmap);
-
- if( integerBitmap != null )
- {
- // extract bitmap data. TODO.
- return null;
- }
-
- // check other types. TODO.
- return null;
- }
-
- public static byte [] int2byte( int [] input )
- {
- byte [] output = new byte[4*input.length];
-
- int i, j;
- for( i=0, j=0; i<input.length; ++i )
- {
- output[j] = (byte)(input[i] & 255);
- output[j+1] = (byte)((input[i]/256) & 255);
- output[j+2] = (byte)((input[i]/256/256) & 255);
- output[j+3] = (byte)((input[i]/256/256/256) & 255);
- j += 4;
- }
-
- return output;
- }
-
- public static int [] byte2int( byte [] input )
- {
- int [] output = new int[(input.length+3)/4];
-
- int i, j;
- for( i=0,j=0; j<output.length; ++j )
- {
- output[j] = input[i] + (input[i+1] + (input[i+2] + input[i+3]*256)*256)*256;
- i += 4;
- }
-
- return output;
- }
-
- public static int javaRuleFromCompositeOp( byte compositeOp )
- {
- // TODO: Finish mapping of Canvas and Java compositing magics
- int rule = java.awt.AlphaComposite.SRC_OVER;
- switch( compositeOp )
- {
- case com.sun.star.rendering.CompositeOperation.CLEAR:
- CanvasUtils.printLog( "javaRuleFromCompositeOp: clear selected" );
- rule = java.awt.AlphaComposite.CLEAR;
- break;
-
- case com.sun.star.rendering.CompositeOperation.SOURCE:
- CanvasUtils.printLog( "javaRuleFromCompositeOp: src selected" );
- rule = java.awt.AlphaComposite.SRC;
- break;
-
- case com.sun.star.rendering.CompositeOperation.DESTINATION:
- CanvasUtils.printLog( "javaRuleFromCompositeOp: dst selected" );
- rule = java.awt.AlphaComposite.DST;
- break;
-
- case com.sun.star.rendering.CompositeOperation.OVER:
- CanvasUtils.printLog( "javaRuleFromCompositeOp: over selected" );
- rule = java.awt.AlphaComposite.SRC_OVER;
- break;
-
- case com.sun.star.rendering.CompositeOperation.UNDER:
- CanvasUtils.printLog( "javaRuleFromCompositeOp: under selected" );
- rule = java.awt.AlphaComposite.DST_OVER;
- break;
-
- case com.sun.star.rendering.CompositeOperation.INSIDE:
- CanvasUtils.printLog( "javaRuleFromCompositeOp: inside selected" );
- rule = java.awt.AlphaComposite.CLEAR;
- break;
-
- case com.sun.star.rendering.CompositeOperation.INSIDE_REVERSE:
- CanvasUtils.printLog( "javaRuleFromCompositeOp: inReverse selected" );
- rule = java.awt.AlphaComposite.CLEAR;
- break;
-
- case com.sun.star.rendering.CompositeOperation.OUTSIDE:
- CanvasUtils.printLog( "javaRuleFromCompositeOp: outside selected" );
- rule = java.awt.AlphaComposite.CLEAR;
- break;
-
- case com.sun.star.rendering.CompositeOperation.OUTSIDE_REVERSE:
- CanvasUtils.printLog( "javaRuleFromCompositeOp: outReverse selected" );
- rule = java.awt.AlphaComposite.CLEAR;
- break;
-
- case com.sun.star.rendering.CompositeOperation.XOR:
- CanvasUtils.printLog( "javaRuleFromCompositeOp: xor selected" );
- rule = java.awt.AlphaComposite.CLEAR;
- break;
-
- case com.sun.star.rendering.CompositeOperation.ADD:
- CanvasUtils.printLog( "javaRuleFromCompositeOp: add selected" );
- rule = java.awt.AlphaComposite.CLEAR;
- break;
-
- case com.sun.star.rendering.CompositeOperation.SATURATE:
- CanvasUtils.printLog( "javaRuleFromCompositeOp: saturate selected" );
- rule = java.awt.AlphaComposite.CLEAR;
- break;
-
- default:
- CanvasUtils.printLog( "javaRuleFromCompositeOp: Unexpected compositing rule" );
- break;
- }
-
- return rule;
- }
-
- public static java.awt.AlphaComposite makeAlphaComposite( byte compositeOp )
- {
- return java.awt.AlphaComposite.getInstance( javaRuleFromCompositeOp( compositeOp ) );
- }
-
- public static java.awt.AlphaComposite makeAlphaCompositeAlpha( byte compositeOp, double alpha )
- {
- return java.awt.AlphaComposite.getInstance( javaRuleFromCompositeOp( compositeOp ), (float)alpha );
- }
-
- // when given to setupGraphicsState, makes that method to also
- // setup the Paint with the color specified in the render state.
- public static final byte alsoSetupPaint=0;
-
- // when given to setupGraphicsState, makes that method to _not_
- // setup the Paint with the color specified in the render state.
- public static final byte dontSetupPaint=1;
-
- public static java.awt.geom.AffineTransform ViewConcatRenderTransform( ViewState viewState,
- RenderState renderState )
- {
- // calculate overall affine transform
- AffineTransform transform = makeTransform( viewState.AffineTransform );
- transform.concatenate( makeTransform( renderState.AffineTransform ) );
-
- printTransform( transform, "ViewConcatRenderTransform" );
-
- return transform;
- }
-
- public static void setupGraphicsState( java.awt.Graphics2D graphics,
- ViewState viewState,
- RenderState renderState,
- byte paintTouchMode )
- {
- // calculate overall affine transform
- graphics.setTransform( ViewConcatRenderTransform(viewState, renderState ) );
-
- // setup overall clip polyPolygon
- if( viewState.Clip != null )
- {
- Area clipArea = new Area( makeGeneralPath( viewState.Clip ) );
-
- if( renderState.Clip != null )
- clipArea.intersect( new Area( makeGeneralPath( renderState.Clip ) ) );
-
- graphics.setClip( clipArea );
- }
- else if( renderState.Clip != null )
- {
- Area clipArea = new Area( makeGeneralPath( renderState.Clip ) );
- graphics.setClip( clipArea );
- }
- else
- {
- // TODO: HACK! Use true visible area here!
- graphics.setClip( new java.awt.Rectangle(-1000000,-1000000,2000000,2000000) );
- }
-
- // setup current output color
- // TODO: Complete color handling here
- if( paintTouchMode == alsoSetupPaint )
- {
- switch( renderState.DeviceColor.length )
- {
- case 3:
- CanvasUtils.printLog( "setupGraphicsState: Color(" +
- renderState.DeviceColor[0] + "," +
- renderState.DeviceColor[1] + "," +
- renderState.DeviceColor[2] + ") set." );
- graphics.setColor( new Color( (float)renderState.DeviceColor[0],
- (float)renderState.DeviceColor[1],
- (float)renderState.DeviceColor[2] ) );
- break;
-
- case 4:
- CanvasUtils.printLog( "setupGraphicsState: Color(" +
- renderState.DeviceColor[0] + "," +
- renderState.DeviceColor[1] + "," +
- renderState.DeviceColor[2] + "," +
- renderState.DeviceColor[3] + ") set." );
- graphics.setColor( new Color( (float)renderState.DeviceColor[0],
- (float)renderState.DeviceColor[1],
- (float)renderState.DeviceColor[2],
- (float)renderState.DeviceColor[3] ) );
- break;
-
- default:
- CanvasUtils.printLog( "setupGraphicsState: unexpected number of " +
- renderState.DeviceColor.length + " color components!" );
- break;
- }
- }
-
- // setup current composite mode
- graphics.setComposite( makeAlphaComposite( renderState.CompositeOperation ) );
- }
-
- public static void applyStrokeAttributes( java.awt.Graphics2D graphics,
- StrokeAttributes attributes )
- {
- int cap = java.awt.BasicStroke.CAP_BUTT;
-
- if( attributes.StartCapType != attributes.EndCapType )
- CanvasUtils.printLog( "applyStrokeAttributes: different start and end caps are not yet supported!" );
-
- if( attributes.LineArray.length != 0 )
- CanvasUtils.printLog( "applyStrokeAttributes: multi-strokes are not yet supported!" );
-
- if( attributes.StartCapType == PathCapType.BUTT )
- cap = java.awt.BasicStroke.CAP_BUTT;
- else if( attributes.StartCapType == PathCapType.ROUND )
- cap = java.awt.BasicStroke.CAP_ROUND;
- else if( attributes.StartCapType == PathCapType.SQUARE )
- cap = java.awt.BasicStroke.CAP_SQUARE;
-
- int join = java.awt.BasicStroke.JOIN_MITER;
-
- if( attributes.JoinType == PathJoinType.MITER )
- cap = java.awt.BasicStroke.JOIN_MITER;
- else if( attributes.JoinType == PathJoinType.ROUND )
- cap = java.awt.BasicStroke.JOIN_ROUND;
- else if( attributes.JoinType == PathJoinType.BEVEL )
- cap = java.awt.BasicStroke.JOIN_BEVEL;
- else
- CanvasUtils.printLog( "applyStrokeAttributes: current join type not yet supported!" );
-
- float [] dashArray = null;
-
- if( attributes.DashArray.length != 0 )
- {
- dashArray = new float [attributes.DashArray.length];
-
- for( int i=0; i<attributes.DashArray.length; ++i )
- dashArray[i] = (float)attributes.DashArray[i];
- }
-
- graphics.setStroke( new java.awt.BasicStroke( (float)attributes.StrokeWidth,
- cap,
- join,
- (float)attributes.MiterLimit,
- dashArray,
- 0) );
- }
-
- public static void setupGraphicsFont( java.awt.Graphics2D graphics,
- ViewState viewState,
- RenderState renderState,
- com.sun.star.rendering.XCanvasFont xFont )
- {
- if( xFont instanceof CanvasFont )
- {
- CanvasUtils.printLog( "setupGraphicsFont: font impl used." );
- graphics.setFont( ((CanvasFont)xFont).getFont() );
- }
- else
- {
- CanvasUtils.printLog( "setupGraphicsFont: creating Java font anew." );
- CanvasFont canvasFont;
- canvasFont = new CanvasFont( xFont.getFontRequest(), null );
- graphics.setFont( canvasFont.getFont() );
- }
- }
-
- static java.awt.geom.Rectangle2D.Double calcTransformedRectBounds( java.awt.geom.Rectangle2D.Double aRect,
- AffineTransform aTransform )
- {
- // transform rect by given transformation
- java.awt.geom.Point2D.Double aPointTopLeft = new java.awt.geom.Point2D.Double(aRect.x, aRect.y);
- aTransform.transform(aPointTopLeft, aPointTopLeft);
-
- java.awt.geom.Point2D.Double aPointTopRight = new java.awt.geom.Point2D.Double(aRect.x + aRect.width,
- aRect.y);
- aTransform.transform(aPointTopRight, aPointTopRight);
-
- java.awt.geom.Point2D.Double aPointBottomLeft = new java.awt.geom.Point2D.Double(aRect.x,
- aRect.y + aRect.height);
- aTransform.transform(aPointBottomLeft, aPointBottomLeft);
-
- java.awt.geom.Point2D.Double aPointBottomRight = new java.awt.geom.Point2D.Double(aRect.x + aRect.width,
- aRect.y + aRect.height);
- aTransform.transform(aPointBottomRight, aPointBottomRight);
-
- // calc bounding rect of those four points
- java.awt.geom.Point2D.Double aResTopLeft = new java.awt.geom.Point2D.Double( Math.min(aPointTopLeft.x,
- Math.min(aPointTopRight.x,
- Math.min(aPointBottomLeft.x,aPointBottomRight.x))),
- Math.min(aPointTopLeft.y,
- Math.min(aPointTopRight.y,
- Math.min(aPointBottomLeft.y,aPointBottomRight.y))) );
-
- java.awt.geom.Point2D.Double aResBottomRight = new java.awt.geom.Point2D.Double( Math.max(aPointTopLeft.x,
- Math.max(aPointTopRight.x,
- Math.max(aPointBottomLeft.x,aPointBottomRight.x))),
- Math.max(aPointTopLeft.y,
- Math.max(aPointTopRight.y,
- Math.max(aPointBottomLeft.y,aPointBottomRight.y))) );
- return new java.awt.geom.Rectangle2D.Double( aResTopLeft.x, aResTopLeft.y,
- aResBottomRight.x - aResTopLeft.x,
- aResBottomRight.y - aResTopLeft.y );
- }
-
- // Create a corrected view transformation out of the give one,
- // which ensures that the rectangle given by (0,0) and
- // attributes.untransformedSize is mapped with its left,top corner
- // to (0,0) again. This is required to properly render sprite
- // animations to buffer bitmaps.
- public static ViewState createAnimationViewState( ViewState inputViewState,
- AnimationAttributes attributes )
- {
- // TODO: Properly respect clip here. Might have to be transformed, too.
-
- AffineTransform aViewTransform = makeTransform( inputViewState.AffineTransform );
-
- // transform Rect(0,0,attributes.untransformedSize) by
- // viewTransform
- java.awt.geom.Rectangle2D.Double aTransformedRect =
- calcTransformedRectBounds( new java.awt.geom.Rectangle2D.Double(0.0, 0.0,
- attributes.UntransformedSize.Width,
- attributes.UntransformedSize.Height),
- aViewTransform );
-
- printTransform( aViewTransform, "createAnimationViewState" );
-
- CanvasUtils.printLog( "createAnimationViewState: transformed origin is: (" + aTransformedRect.x + ", " + aTransformedRect.y + ")" );
-
- // now move resulting left,top point of bounds to (0,0)
- AffineTransform animationViewTransform = new AffineTransform();
- animationViewTransform.translate( -aTransformedRect.x, -aTransformedRect.y );
- animationViewTransform.concatenate( aViewTransform );
-
- printTransform( animationViewTransform, "createAnimationViewState" );
-
- return new ViewState( makeAffineMatrix2D( animationViewTransform ), inputViewState.Clip );
- }
-
- public static void postRenderImageTreatment( Image buffer )
- {
- // TODO: This is specific to Sun's JREs 1.4 and upwards. Make this more portable
- buffer.flush(); // as long as we force images to VRAM,
- // we need to flush them afterwards, to
- // avoid eating up all VRAM.
- }
-
- public static void printTransform( AffineTransform transform,
- String stringPrefix )
- {
- CanvasUtils.printLog( stringPrefix + ": Transform is" );
- double [] matrix = new double[6];
- transform.getMatrix(matrix);
- int i;
- for( i=0; i<6; ++i )
- System.err.print( matrix[i] + ", " );
- CanvasUtils.printLog( "" );
- }
-
- public static void preCondition( boolean bCondition,
- String methodName )
- {
- if( !bCondition )
- printLog("Precondition violated: " + methodName);
- }
-
- public static void printLog( String s )
- {
- System.err.println( s );
- }
-}
diff --git a/canvas/source/java/JavaCanvas.java b/canvas/source/java/JavaCanvas.java
deleted file mode 100644
index fbee763fc272..000000000000
--- a/canvas/source/java/JavaCanvas.java
+++ /dev/null
@@ -1,675 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// UNO
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.uno.AnyConverter;
-
-// OOo AWT
-import com.sun.star.awt.*;
-
-// Canvas
-import com.sun.star.rendering.*;
-import com.sun.star.geometry.*;
-
-// Java AWT
-import java.awt.*;
-
-public class JavaCanvas
- extends CanvasBase
- implements com.sun.star.awt.XWindow,
- com.sun.star.rendering.XSpriteCanvas,
- com.sun.star.rendering.XIntegerBitmap,
- com.sun.star.lang.XServiceInfo,
- com.sun.star.lang.XInitialization
-{
- private WindowAdapter dummyFrame;
- public BackBuffer backBuffer;
- private java.awt.image.BufferStrategy bufferStrategy;
-
- private java.awt.Font fpsFont;
- private long lastTime;
- private com.sun.star.awt.Rectangle boundRect;
-
- public Graphics2D getGraphics()
- {
- return backBuffer.getGraphics();
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XInitialization
- // ===============
- //
- public void initialize( java.lang.Object[] arguments )
- {
- CanvasUtils.printLog( "JavaCanvas.initialize called!" );
-
- // Do that as the very first thing. The Java2D internal
- // classes choose their render path at initialization time,
- // thus this must happen before doing _any_ GUI.
-
- // TODO: Put those flags into javarc/java.ini, we're maybe
- // coming late into a running JVM!
-
- // now, we're getting slightly system dependent here.
- String os = (String) System.getProperty("os.name");
-
- CanvasUtils.printLog( "System detected: " + os );
-
- // tweak some speed knobs...
-// if( os.startsWith("Windows") )
-// {
-// System.setProperty("sun.java2d.translaccel", "true");
-// System.setProperty("sun.java2d.ddforcevram", "true");
-// //System.setProperty("sun.java2d.accthreshold", "0");
-
-// CanvasUtils.printLog( "Optimizing for Windows" );
-// }
-// else
-// {
-// System.setProperty("sun.java2d.opengl", "true");
-
-// CanvasUtils.printLog( "Optimizing for Unix" );
-// }
-
- /* we're initialized with the following array of anys:
-
- arguments[0] = pointer to VCL window
- arguments[1] = Integer (operating system window handle)
- arguments[2] = com.sun.star.awt.Rectangle (position and size within that OS window)
- arguments[3] = boolean (fullsize window or not)
-
- We then generate a dummy Java frame with that window as the
- parent, to fake a root window for the Java implementation.
- */
- try
- {
- boundRect = (com.sun.star.awt.Rectangle) arguments[2];
-
- //boolean isFullScreen = arguments[1];
- boolean isFullScreen = true;
- //AnyConverter.toBoolean( arguments[3] ) );
-
- // fake a root for Java in VCL window. Pass the flag
- // whether we shall run fullscreen, too.
- dummyFrame = new WindowAdapter( AnyConverter.toInt( arguments[1] ), isFullScreen );
-
- if( isFullScreen )
- {
- // blow window up to fullscreen. Otherwise, we cannot clear the whole screen,
- // which results in ugly flickering
- Dimension screenSize = dummyFrame.frame.getToolkit().getScreenSize();
- boundRect.X = 0;
- boundRect.Y = 0;
- boundRect.Width = screenSize.width-1;
- boundRect.Height = screenSize.height-1;
- }
-
- dummyFrame.setPosSize( boundRect.X, boundRect.Y, boundRect.Width, boundRect.Height, (short)0 );
- CanvasUtils.printLog( "Window size: " + boundRect.Width + ", " + boundRect.Height );
-
- backBuffer = new BackBuffer( (Graphics2D) dummyFrame.frame.getGraphics(),
- Math.max(1,boundRect.Width),
- Math.max(1,boundRect.Height) );
-
- // TODO: Maybe delay double buffer init until first sprite creation
- dummyFrame.frame.createBufferStrategy(2);
- bufferStrategy = dummyFrame.frame.getBufferStrategy();
-
- if( bufferStrategy.getCapabilities().isPageFlipping() )
- CanvasUtils.printLog( "JavaCanvas.initialize double buffering is using page flipping!" );
- else
- CanvasUtils.printLog( "JavaCanvas.initialize double buffering is using blitting!" );
-
- lastTime = System.currentTimeMillis();
- fpsFont = new java.awt.Font( "Times", Font.PLAIN, 20 );
-
- CanvasUtils.printLog( "JavaCanvas.initialize finished!" );
- }
- catch( com.sun.star.lang.IllegalArgumentException e )
- {
- CanvasUtils.printLog( "Cannot create EmbeddedFrame within VCL window hierarchy!" );
- }
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XComponent
- // ==========
- //
- public void dispose()
- {
- CanvasUtils.printLog( "JavaCanvas: disposed!" );
-
- // destroy all active sprites
- java.util.Set entries = activeSprites.entrySet();
- java.util.Iterator iter = entries.iterator();
-
- while( iter.hasNext() )
- {
- java.util.Map.Entry entry = (java.util.Map.Entry)iter.next();
- if( entry.getValue() != null )
- ((SpriteRep)entry.getValue()).dispose();
- }
-
- if( bufferStrategy != null )
- bufferStrategy.getDrawGraphics().dispose(); // really necessary?
-
- if( dummyFrame != null )
- dummyFrame.dispose();
-
- if( backBuffer != null)
- backBuffer.dispose();
-
- bufferStrategy = null;
- dummyFrame = null;
- backBuffer = null;
-
- super.dispose();
- }
-
- //----------------------------------------------------------------------------------
-
- public JavaCanvas( XComponentContext xContext )
- {
- CanvasUtils.printLog( "JavaCanvas constructor called!" );
- activeSprites = new java.util.HashMap( 33 );
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XWindow interface
- // =================
- //
- // This is delegated to WindowAdapter!
- //
- public synchronized void setPosSize( int X, int Y, int Width, int Height, short Flags )
- {
- if( dummyFrame != null )
- {
- dummyFrame.setPosSize( X, Y, Width, Height, Flags );
-
- Width = Math.max(1,Width);
- Height= Math.max(1,Height);
-
- CanvasUtils.printLog( "JavaCanvas graphics set to " + Width + "," + Height );
- backBuffer.setSize(Width,Height);
- }
- }
-
- public synchronized com.sun.star.awt.Rectangle getPosSize( )
- {
- if( dummyFrame != null )
- return dummyFrame.getPosSize();
-
- return new com.sun.star.awt.Rectangle();
- }
-
- public synchronized void setVisible( boolean visible )
- {
- if( dummyFrame != null )
- dummyFrame.setVisible( visible );
- }
-
- public synchronized void setEnable( boolean enable )
- {
- if( dummyFrame != null )
- dummyFrame.setEnable( enable );
- }
-
- public synchronized void setFocus()
- {
- if( dummyFrame != null )
- dummyFrame.setFocus();
- }
-
- public synchronized void addWindowListener( XWindowListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.addWindowListener( xListener );
- }
-
- public synchronized void removeWindowListener( XWindowListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.removeWindowListener( xListener );
- }
-
- public synchronized void addFocusListener( XFocusListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.addFocusListener( xListener );
- }
-
- public synchronized void removeFocusListener( XFocusListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.removeFocusListener( xListener );
- }
-
- public synchronized void addKeyListener( XKeyListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.addKeyListener( xListener );
- }
-
- public synchronized void removeKeyListener( XKeyListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.removeKeyListener( xListener );
- }
-
- public synchronized void addMouseListener( XMouseListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.addMouseListener( xListener );
- }
-
- public synchronized void removeMouseListener( XMouseListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.removeMouseListener( xListener );
- }
-
- public synchronized void addMouseMotionListener( XMouseMotionListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.addMouseMotionListener( xListener );
- }
-
- public synchronized void removeMouseMotionListener( XMouseMotionListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.removeMouseMotionListener( xListener );
- }
-
- public synchronized void addPaintListener( XPaintListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.addPaintListener( xListener );
- }
-
- public synchronized void removePaintListener( XPaintListener xListener )
- {
- if( dummyFrame != null )
- dummyFrame.removePaintListener( xListener );
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XBitmapCanvas impl
- // ==================
- //
-
- public synchronized void copyRect( com.sun.star.rendering.XBitmapCanvas sourceCanvas,
- com.sun.star.geometry.RealRectangle2D sourceRect,
- com.sun.star.rendering.ViewState sourceViewState,
- com.sun.star.rendering.RenderState sourceRenderState,
- com.sun.star.geometry.RealRectangle2D destRect,
- com.sun.star.rendering.ViewState destViewState,
- com.sun.star.rendering.RenderState destRenderState )
- {
- CanvasUtils.printLog( "JavaCanvas.copyRect() called" );
-
- // TODO: create temp image when transform is non-trivial
-
- if( sourceCanvas == this )
- {
- // copy rectangle within the canvas
- getGraphics().copyArea((int)sourceRect.X1,
- (int)sourceRect.Y1,
- (int)(sourceRect.X2 - sourceRect.X1),
- (int)(sourceRect.Y2 - sourceRect.Y1),
- (int)(destRect.X1 - sourceRect.X1),
- (int)(destRect.Y1 - sourceRect.Y1) );
- }
- else
- {
- if( sourceCanvas instanceof JavaCanvas )
- {
- // cache
- CanvasUtils.setupGraphicsState( getGraphics(), destViewState, destRenderState, CanvasUtils.alsoSetupPaint );
-
- java.awt.Image backBuffer = ((JavaCanvas)sourceCanvas).backBuffer.getBackBuffer();
-
- // TODO: really extract correct source rect here
- getGraphics().drawImage( backBuffer, 0, 0, null);
- CanvasUtils.postRenderImageTreatment( backBuffer );
- }
- // TODO: foreign canvas
- }
- }
-
- //----------------------------------------------------------------------------------
-
- // a map of SpriteReps, with Sprite object as keys. Contains all
- // active (i.e. visible) sprites, the SpriteReps are used to
- // repaint the sprite content at any time.
- private java.util.HashMap activeSprites;
-
- //
- // XSpriteCanvas impl
- // ==================
- //
-
- public synchronized com.sun.star.rendering.XAnimatedSprite createSpriteFromAnimation( XAnimation animation )
- {
- CanvasUtils.printLog( "JavaCanvas.createSpriteFromAnimation called" );
-
- return new CanvasSprite( animation, this, (Graphics2D)dummyFrame.frame.getGraphics() );
- }
-
- public synchronized XAnimatedSprite createSpriteFromBitmaps( com.sun.star.rendering.XBitmap[] animationBitmaps,
- byte interpolationMode )
- {
- return null;
- }
-
- public synchronized XCustomSprite createCustomSprite( RealSize2D spriteSize )
- {
- CanvasUtils.printLog( "JavaCanvas.createCustomSprite called" );
-
- return new CanvasCustomSprite( spriteSize, this, (Graphics2D)dummyFrame.frame.getGraphics() );
- }
-
- public synchronized XSprite createClonedSprite( XSprite original )
- {
- return new CanvasClonedSprite( this, original );
- }
-
- public synchronized boolean updateScreen( boolean bUpdateAll )
- {
- redrawAllLayers();
-
- return true;
- }
-
- //
- // XBitmap implementation
- // ======================
- //
-
- public synchronized IntegerSize2D getSize()
- {
- return new IntegerSize2D( boundRect.Width,
- boundRect.Height );
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized XBitmapCanvas queryBitmapCanvas()
- {
- return this;
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized com.sun.star.rendering.XBitmap getScaledBitmap( RealSize2D newSize, boolean beFast ) throws com.sun.star.lang.IllegalArgumentException, VolatileContentDestroyedException
- {
- // TODO
- return null;
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized boolean hasAlpha()
- {
- // TODO
- return false;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XIntegerBitmap implementation
- // =============================
- //
-
- public synchronized byte[] getData( IntegerBitmapLayout[] bitmapLayout,
- IntegerRectangle2D rect )
- {
- // TODO
- return null;
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized void setData( byte[] data, IntegerBitmapLayout bitmapLayout, com.sun.star.geometry.IntegerRectangle2D rect )
- {
- // TODO
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized void setPixel( byte[] color, IntegerBitmapLayout bitmapLayout, com.sun.star.geometry.IntegerPoint2D pos )
- {
- // TODO
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized byte[] getPixel( IntegerBitmapLayout[] bitmapLayout,
- IntegerPoint2D pos )
- {
- // TODO
- return null;
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized XBitmapPalette getPalette()
- {
- // TODO
- return null;
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized IntegerBitmapLayout getMemoryLayout()
- {
- // TODO: finish that one
- IntegerBitmapLayout layout = new IntegerBitmapLayout();
-
- return layout;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XSpriteCanvas helper
- // ====================
- //
- public synchronized void renderAnimation( CanvasSprite sprite, XAnimation animation, double t )
- {
- SpriteRep spriteRep = (SpriteRep)activeSprites.get( sprite );
- if( spriteRep != null )
- {
- //Graphics2D graph = getWindowGraphics();
-
- // TODO: ensure update of graphics object externally, e.g. when
- // VCL moves the toplevel window.
- //java.awt.Rectangle bounds = dummyFrame.frame.getBounds();
- //graphics.setGraphics(graph, bounds.width, bounds.height);
-
- spriteRep.renderAnimation( animation, sprite.getViewState(), t );
- }
- else
- {
- CanvasUtils.printLog( "JavaCanvas.renderAnimation sprite not active!" );
- }
- }
-
- public synchronized void showSprite( SpriteBase sprite )
- {
- CanvasUtils.printLog( "JavaCanvas.showSprite() called" );
-
- SpriteRep spriteRep = (SpriteRep)activeSprites.get( sprite );
- if( spriteRep != null )
- {
- CanvasUtils.printLog( "JavaCanvas.showSprite sprite already active!" );
- }
- else
- {
- spriteRep = sprite.getSpriteRep();
-
- // a valid SpriteRep for a given Sprite in the
- // activeSprites hash denotes 'sprite active'
- activeSprites.put( sprite, spriteRep );
-
- // TODO: TEMP! Just for testing! Set empty cursor for presentation
-// dummyFrame.frame.setCursor( dummyFrame.frame.getToolkit().createCustomCursor(new java.awt.image.BufferedImage(0,0,
-// java.awt.image.BufferedImage.TYPE_INT_RGB),
-// new java.awt.Point(0,0),
-// "") );
- }
- }
-
- public synchronized void hideSprite( SpriteBase sprite )
- {
- CanvasUtils.printLog( "JavaCanvas.hideSprite() called" );
-
- SpriteRep spriteRep = (SpriteRep)activeSprites.get( sprite );
- if( spriteRep != null )
- {
- activeSprites.put( sprite, null );
- redrawAllLayers();
- }
- else
- {
- CanvasUtils.printLog( "JavaCanvas.hideSprite sprite not active!" );
- }
- }
-
- private void redrawAllLayers()
- {
- // fetch the Graphics object to draw into (we're doing double
- // buffering here, the content is later shown via
- // bufferStrategy.show().
- Graphics2D graph = null;
-
- try
- {
- graph = (Graphics2D)bufferStrategy.getDrawGraphics();
-
- GraphicsDevice device = graph.getDeviceConfiguration().getDevice();
- CanvasUtils.printLog( "Available vram: " + device.getAvailableAcceleratedMemory() );
-
- // repaint background
- backBuffer.redraw( graph );
-
- // repaint all active sprites
- java.util.Set entries = activeSprites.entrySet();
- java.util.Iterator iter = entries.iterator();
- while( iter.hasNext() )
- {
- java.util.Map.Entry entry = (java.util.Map.Entry)iter.next();
- if( entry.getValue() != null )
- ((SpriteRep)entry.getValue()).redraw(graph);
- }
-
- long currTime = System.currentTimeMillis();
- graph.setComposite( AlphaComposite.getInstance(AlphaComposite.SRC_OVER) );
- graph.setFont( fpsFont );
- graph.setColor( java.awt.Color.black );
-
- try
- {
- String fps = new String( String.valueOf(1000.0/(currTime-lastTime)) );
- graph.drawString( fps.substring(0,5) + " fps", 0, 20);
- CanvasUtils.printLog( fps.substring(0,5) + " fps" );
- }
- catch( Exception e )
- {
- graph.drawString( "0 fps", 0, 20);
- }
-
- lastTime = currTime;
- }
- catch( Exception e )
- {
- CanvasUtils.printLog( "Exception thrown in redrawAllLayers" );
- }
- finally
- {
- if( graph != null )
- graph.dispose();
- }
-
- bufferStrategy.show();
- }
-
- //----------------------------------------------------------------------------------
-
- private static final String s_implName = "XCanvas.java.impl";
- private static final String s_serviceName = "com.sun.star.rendering.JavaCanvas";
-
- //----------------------------------------------------------------------------------
-
- //
- // XServiceInfo impl
- // =================
- //
- public synchronized String getImplementationName()
- {
- return s_implName;
- }
-
- public synchronized String [] getSupportedServiceNames()
- {
- return new String [] { s_serviceName };
- }
-
- public synchronized boolean supportsService( String serviceName )
- {
- return serviceName.equals( s_serviceName );
- }
-
- public static com.sun.star.lang.XSingleServiceFactory __getServiceFactory(
- String implName,
- com.sun.star.lang.XMultiServiceFactory multiFactory,
- com.sun.star.registry.XRegistryKey regKey )
- {
- if (implName.equals( s_implName ))
- {
- return com.sun.star.comp.loader.FactoryHelper.getServiceFactory(
- JavaCanvas.class, s_serviceName, multiFactory, regKey );
- }
- return null;
- }
-
- public static boolean __writeRegistryServiceInfo(
- com.sun.star.registry.XRegistryKey regKey )
- {
- return com.sun.star.comp.loader.FactoryHelper.writeRegistryServiceInfo(
- s_implName, s_serviceName, regKey );
- }
-}
diff --git a/canvas/source/java/LinePolyPolygon.java b/canvas/source/java/LinePolyPolygon.java
deleted file mode 100644
index 3ab19d97ba19..000000000000
--- a/canvas/source/java/LinePolyPolygon.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Canvas
-import com.sun.star.rendering.*;
-import com.sun.star.geometry.*;
-
-public class LinePolyPolygon
- extends com.sun.star.lib.uno.helper.ComponentBase
- implements com.sun.star.lang.XServiceInfo,
- com.sun.star.rendering.XLinePolyPolygon2D
-{
- private java.awt.geom.GeneralPath path;
-
- //----------------------------------------------------------------------------------
-
- public LinePolyPolygon( RealPoint2D[][] points )
- {
- setPoints( points, 0 );
- }
-
- public java.awt.geom.GeneralPath getJavaPath()
- {
- return path;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XPolyPolygon implementation
- // ===========================
- //
- public synchronized void addPolyPolygon( RealPoint2D position, XPolyPolygon2D polyPolygon )
- {
- }
-
- public synchronized int getNumberOfPolygons( )
- {
- return 0;
- }
-
- public synchronized int getNumberOfPolygonPoints( int polygon )
- {
- return 0;
- }
-
- public synchronized FillRule getFillRule( )
- {
- if( path.getWindingRule() == java.awt.geom.GeneralPath.WIND_EVEN_ODD )
- return FillRule.EVEN_ODD;
- else
- return FillRule.NON_ZERO;
- }
-
- public synchronized void setFillRule( FillRule fillRule )
- {
- if( fillRule == FillRule.EVEN_ODD )
- path.setWindingRule( java.awt.geom.GeneralPath.WIND_EVEN_ODD );
- else
- path.setWindingRule( java.awt.geom.GeneralPath.WIND_NON_ZERO );
- }
-
- public synchronized boolean isClosed( int index )
- {
- // TODO
- return false;
- }
-
- public synchronized void setClosed( int index, boolean closedState )
- {
- // TODO
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XLinePolyPolygon implementation
- // ===============================
- //
- public synchronized RealPoint2D[][] getPoints( int nPolygonIndex, int nNumberOfPolygons, int nPointIndex, int nNumberOfPoints )
- {
- // TODO: Implement subsetting
-
-// double [] points = new double[6];
-
-// // BAH! Use util.Vector here!
-
-// // find number of subpaths
-// PathIterator aIter = path.getPathIterator( new AffineTransform() );
-// int nNumSubPaths = 0;
-// while( !aIter.isDone() )
-// {
-// if( aIter.currentSegment(points) == SEG_MOVETO )
-// ++nNumSubPaths;
-
-// aIter.next();
-// }
-
-// Point2D [][] aRes = new Point2D[nNumSubPaths][];
-// aIter = path.getPathIterator( new AffineTransform() );
-// while( !aIter.isDone() )
-// {
-// switch( aIter.currentSegment(points) )
-// {
-// case SEG_MOVETO:
-// break;
-
-// case SEG_LINETO:
-// break;
-
-// case SEG_CLOSE:
-// break;
-
-// default:
-// CanvasUtils.printLog( "LinePolyPolygon.getPoints(): unexpected path type" );
-// break;
-// }
-
-// aIter.next();
-// }
-// double [] points = new double[6];
-
- return null;
- }
-
- public synchronized void setPoints( RealPoint2D[][] points, int nPolygonIndex )
- {
- if( nPolygonIndex != 0 )
- CanvasUtils.printLog( "LinePolyPolygon.setPoints: subset not yet implemented!" );
-
- path = CanvasUtils.makeGenPathFromLinePoints( points );
- }
-
- public synchronized RealPoint2D getPoint( int nPolygonIndex, int nPointIndex )
- {
- return null;
- }
-
- public synchronized void setPoint( RealPoint2D point, int nPolygonIndex, int nPointIndex )
- {
- CanvasUtils.printLog( "LinePolyPolygon.setPoint: not yet implemented!" );
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XServiceInfo impl
- // =================
- //
-
- private static final String s_implName = "XLinePolyPolygon2D.java.impl";
- private static final String s_serviceName = "com.sun.star.rendering.LinePolyPolygon2D";
-
- public String getImplementationName()
- {
- return s_implName;
- }
-
- public String [] getSupportedServiceNames()
- {
- return new String [] { s_serviceName };
- }
-
- public boolean supportsService( String serviceName )
- {
- return serviceName.equals( s_serviceName );
- }
-}
diff --git a/canvas/source/java/SpriteBase.java b/canvas/source/java/SpriteBase.java
deleted file mode 100644
index 5f2ed3c57ecc..000000000000
--- a/canvas/source/java/SpriteBase.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Canvas
-
-public interface SpriteBase
-{
- // to be overridden
- public SpriteRep getSpriteRep();
-}
diff --git a/canvas/source/java/SpriteRep.java b/canvas/source/java/SpriteRep.java
deleted file mode 100644
index 046a45f2d9bb..000000000000
--- a/canvas/source/java/SpriteRep.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Canvas
-import com.sun.star.rendering.*;
-
-// Java AWT
-import java.awt.*;
-import java.awt.geom.*;
-
-public class SpriteRep
-{
- private java.awt.image.BufferedImage buffer;
- private CanvasBitmap canvasBitmap;
- private double alpha;
- private java.awt.geom.Point2D.Double outputPosition;
- private boolean bufferOwned;
-
- //----------------------------------------------------------------------------------
-
- // TODO: Everything in this class
- // TODO: Implement lifetime control for buffer object, which is shared between SpriteReps
- public SpriteRep()
- {
- CanvasUtils.printLog( "SpriteRep constructor called!" );
-
- alpha = 0.0;
- outputPosition = new java.awt.geom.Point2D.Double(0.0,0.0);
- bufferOwned = true; // the buffer member is our own, and has to be disposed
- }
-
- public SpriteRep( SpriteRep original )
- {
- CanvasUtils.printLog( "SpriteRep clone constructor called!" );
-
- alpha = 0.0;
- outputPosition = new java.awt.geom.Point2D.Double(0.0,0.0);
- cloneBuffer( original );
- bufferOwned = false; // the buffer member is not our own, and must not be disposed
- }
-
- //----------------------------------------------------------------------------------
-
- public synchronized void renderAnimation( XAnimation animation, ViewState viewState, double t )
- {
- if( canvasBitmap != null )
- {
- // clear buffer with all transparent
- Graphics2D bitmapGraphics = canvasBitmap.getGraphics();
-
- // before that, setup _everything_ we might have changed in CanvasUtils.setupGraphicsState
- bitmapGraphics.setColor( new Color( 0.0f, 0.0f, 0.0f, 1.0f ) );
- bitmapGraphics.setComposite(
- java.awt.AlphaComposite.getInstance(java.awt.AlphaComposite.CLEAR));
- bitmapGraphics.setTransform( new AffineTransform() );
- bitmapGraphics.setClip( new java.awt.Rectangle(0,0,buffer.getWidth(),buffer.getHeight()) );
- bitmapGraphics.fillRect(0,0,buffer.getWidth(),buffer.getHeight());
-
- try
- {
- // now push the animation at time instance t into the
- // virginal graphics
- animation.render(canvasBitmap, viewState, t);
- }
- catch( com.sun.star.lang.IllegalArgumentException e )
- {
- CanvasUtils.printLog( "Cannot create EmbeddedFrame within VCL window hierarchy!" );
- }
- }
- }
-
- public synchronized void setSpriteAlpha( double _alpha )
- {
- CanvasUtils.printLog("SpriteRep.setSpriteAlpha called with alpha=" + alpha);
- alpha = _alpha;
- }
-
- public synchronized void moveSprite( java.awt.geom.Point2D.Double aNewPos )
- {
- outputPosition = aNewPos;
- CanvasUtils.printLog( "SpriteRep.moveSprite: moving to (" + outputPosition.x + ", " + outputPosition.y + ")" );
- }
-
- public synchronized void redraw( Graphics2D output )
- {
- if( buffer != null )
- {
- CanvasUtils.printLog( "SpriteRep.redraw: compositing with alpha=" + alpha );
- output.setComposite( java.awt.AlphaComposite.getInstance(java.awt.AlphaComposite.SRC_OVER, (float)alpha) );
-
- output.drawImage( buffer,
- (int)(outputPosition.getX() + .5),
- (int)(outputPosition.getY() + .5),
- null );
-
- //CanvasUtils.postRenderImageTreatment( buffer );
-
- CanvasUtils.printLog( "SpriteRep.redraw called, output rect is (" +
- outputPosition.getX() + ", " +
- outputPosition.getY() + ", " +
- buffer.getWidth() + ", " +
- buffer.getHeight() + ")" );
- }
- }
-
- public synchronized void setupBuffer( java.awt.Graphics2D graphics, int width, int height )
- {
- if( canvasBitmap != null )
- canvasBitmap.dispose();
-
- if( buffer != null )
- buffer.flush();
-
- buffer = graphics.getDeviceConfiguration().createCompatibleImage(Math.max(1,width),
- Math.max(1,height),
- Transparency.TRANSLUCENT);
- canvasBitmap = new CanvasBitmap( buffer );
- CanvasUtils.initGraphics( canvasBitmap.getGraphics() );
-
- CanvasUtils.printLog( "SpriteRep.setupBuffer called, with dimensions (" + width + ", " + height + ")" );
- }
-
- public synchronized void cloneBuffer( SpriteRep original )
- {
- buffer = original.buffer;
- }
-
- public synchronized com.sun.star.rendering.XCanvas getContentCanvas()
- {
- CanvasUtils.printLog( "SpriteRep.getContentCanvas() called" );
-
- Graphics2D graphics = canvasBitmap.getGraphics();
- graphics.setTransform( new AffineTransform() );
- graphics.setComposite( AlphaComposite.getInstance(AlphaComposite.CLEAR));
- graphics.fillRect( 0,0,buffer.getWidth(),buffer.getHeight() );
-
- return canvasBitmap;
- }
-
- public void dispose()
- {
- if( canvasBitmap != null )
- canvasBitmap.dispose();
-
- if( buffer != null && bufferOwned )
- buffer.flush();
-
- canvasBitmap = null;
- buffer = null;
- }
-}
diff --git a/canvas/source/java/SpriteRunner.java b/canvas/source/java/SpriteRunner.java
deleted file mode 100644
index 17e472e7e5c7..000000000000
--- a/canvas/source/java/SpriteRunner.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Canvas
-import com.sun.star.rendering.*;
-
-//
-// HOWTO get a Graphics2D from a window
-//
-
-// import javax.swing.*;
-// import java.awt.*;
-// import java.awt.geom.*;
-
-// public class Stroke1 extends JFrame {
-// Stroke drawingStroke = new BasicStroke(5);
-// Rectangle2D rect =
-// new Rectangle2D.Double(20, 40, 100, 40);
-
-// public void paint(Graphics g) {
-// Graphics2D g2d = (Graphics2D)g;
-// g2d.setStroke(drawingStroke);
-// g2d.draw(rect);
-// }
-
-// public static void main(String args[]) {
-// JFrame frame = new Stroke1();
-// frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
-// frame.setSize(200, 100);
-// frame.show();
-// }
-// }
-
-
-public class SpriteRunner
- extends Thread
-{
- private CanvasSprite sprite;
- private XAnimation spriteAnimation;
- private JavaCanvas canvas;
- private double startTime;
- private double currentSpeed;
- private double currentT;
- private boolean animationActive;
- private boolean stayAlive;
-
- //----------------------------------------------------------------------------------
-
- public SpriteRunner( CanvasSprite _sprite, XAnimation _animation, JavaCanvas _canvas )
- {
- CanvasUtils.printLog( "SpriteRunner constructor called!" );
-
- sprite = _sprite;
- spriteAnimation = _animation;
- canvas = _canvas;
- startTime = 0.0;
- currentSpeed = 0.0;
- currentT = 0.0;
- animationActive = false;
- stayAlive = true;
-
- // Set priority to lower-than-normal, as this thread runs the
- // animation in a busy loop.
- setPriority( MIN_PRIORITY );
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // Thread
- // ======
- //
- // Overriding
- //
- public void run()
- {
- // perform the animation rendering (as fast as possible, for now)
-
- while( stayAlive )
- {
- while( animationActive )
- {
- // to determine the current animation step to render, calc the
- // elapsed time since this animation was started
- double elapsedTime = getCurrentTime() - startTime;
-
- // the frame to render is determined by mapping the cycle
- // duration (currentSpeed) to the [0,1] range of the animation.
- currentT = (elapsedTime % currentSpeed) / currentSpeed;
-
- // delegate animation rendering to SpriteCanvas, as
- // only this instance can enforce consistency (on-time
- // saving of background etc.)
- canvas.renderAnimation( sprite, spriteAnimation, currentT );
-
- // TODO: Consolidate _all_ sprites per canvas into one
- // thread, call updateScreen() only after all sprites
- // have been processed.
-
- //Make changes visible
- canvas.updateScreen( false );
-
- // TODO: Evaluate vs. setPriority and other means
-// try
-// {
-// // give other tasks some time to breathe (10ms - this is only meant symbolically)
-// sleep(10);
-// } catch( InterruptedException e ) { }
- }
-
- // wait until animation is activated again
- try
- {
- wait();
- }
- catch( InterruptedException e ) { }
- catch( IllegalMonitorStateException e ) { }
- }
- }
-
- public synchronized void startAnimation( double speed )
- {
- resetAnimation();
- currentSpeed = speed;
-
- // start us, if not done already
- if( !isAlive() )
- start();
-
- // enable animation thread
- animationActive = true;
-
- try
- {
- notify();
- } catch( IllegalMonitorStateException e ) { }
- }
-
- public synchronized void stopAnimation()
- {
- // stop animation after the current frame has been completely
- // rendered
- animationActive = false;
- }
-
- public synchronized void resetAnimation()
- {
- startTime = getCurrentTime();
- }
-
- public synchronized boolean isAnimationActive()
- {
- return animationActive;
- }
-
- public synchronized void quit()
- {
- stayAlive = false;
- stopAnimation();
- }
-
- public synchronized double getCurrentT()
- {
- return currentT;
- }
-
- //----------------------------------------------------------------------------------
-
- // helper
- static double getCurrentTime()
- {
- // determine current time in seconds
- java.util.Calendar cal = new java.util.GregorianCalendar();
- return cal.getTimeInMillis() / 1000.0;
- }
-}
diff --git a/canvas/source/java/TextLayout.java b/canvas/source/java/TextLayout.java
deleted file mode 100644
index 1a443fcbeeac..000000000000
--- a/canvas/source/java/TextLayout.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// Canvas
-import com.sun.star.rendering.*;
-
-public class TextLayout
- extends com.sun.star.lib.uno.helper.ComponentBase
- implements com.sun.star.lang.XServiceInfo,
- com.sun.star.rendering.XTextLayout
-{
- private double[] advancements;
- private StringContext text;
- private byte direction;
- private CanvasBase associatedCanvas;
- private CanvasFont font;
-
- //----------------------------------------------------------------------------------
-
- public TextLayout( StringContext aText,
- byte nDirection,
- long nRandomSeed,
- CanvasFont _font,
- CanvasBase _canvas )
- {
- text = aText;
- direction = nDirection;
- associatedCanvas = _canvas;
- font = _font;
- }
-
- //
- // XTextLayout implementation
- // ==========================
- //
-
- public XPolyPolygon2D[] queryTextShapes( )
- {
- // TODO
- return null;
- }
-
- public com.sun.star.geometry.RealRectangle2D[] queryInkMeasures( )
- {
- // TODO
- return null;
- }
-
- public com.sun.star.geometry.RealRectangle2D[] queryMeasures( )
- {
- // TODO
- return null;
- }
-
- public double[] queryLogicalAdvancements( )
- {
- // TODO
- return null;
- }
-
- public void applyLogicalAdvancements( double[] aAdvancements ) throws com.sun.star.lang.IllegalArgumentException
- {
- if( aAdvancements.length != text.Length )
- throw new com.sun.star.lang.IllegalArgumentException();
-
- advancements = aAdvancements;
- }
-
- public com.sun.star.geometry.RealRectangle2D queryTextBounds( )
- {
- // TODO
- return null;
- }
-
- public double justify( double nSize ) throws com.sun.star.lang.IllegalArgumentException
- {
- // TODO
- return 0;
- }
-
- public double combinedJustify( XTextLayout[] aNextLayouts, double nSize ) throws com.sun.star.lang.IllegalArgumentException
- {
- // TODO
- return 0;
- }
-
- public TextHit getTextHit( /*IN*/com.sun.star.geometry.RealPoint2D aHitPoint )
- {
- // TODO
- return null;
- }
-
- public Caret getCaret( int nInsertionIndex, boolean bExcludeLigatures ) throws com.sun.star.lang.IndexOutOfBoundsException
- {
- // TODO
- return null;
- }
-
- public int getNextInsertionIndex( int nStartIndex, int nCaretAdvancement, boolean bExcludeLigatures ) throws com.sun.star.lang.IndexOutOfBoundsException
- {
- // TODO
- return 0;
- }
-
- public XPolyPolygon2D queryVisualHighlighting( int nStartIndex, int nEndIndex ) throws com.sun.star.lang.IndexOutOfBoundsException
- {
- // TODO
- return null;
- }
-
- public XPolyPolygon2D queryLogicalHighlighting( int nStartIndex, int nEndIndex ) throws com.sun.star.lang.IndexOutOfBoundsException
- {
- // TODO
- return null;
- }
-
- public double getBaselineOffset( )
- {
- // TODO
- return 0.0;
- }
-
- public byte getMainTextDirection( )
- {
- return direction;
- }
-
- public XCanvasFont getFont( )
- {
- return font;
- }
-
- public StringContext getText( )
- {
- return text;
- }
-
- public boolean draw( java.awt.Graphics2D graphics )
- {
- // TODO: use proper advancement. Text direction need not be horizontal!
- // TODO: given text string need not have a one-to-one relationship between code point and glyph (offset)!
- graphics.drawString( text.Text.substring(text.StartPosition, text.StartPosition + 1), (float)0.0, (float)0.0 );
- for( int i=1; i<advancements.length && i<text.Length; ++i )
- {
- CanvasUtils.printLog( "XCanvas: drawOffsettedText rendering a \"" +
- text.Text.substring(text.StartPosition + i,
- text.StartPosition + i + 1) +
- "\" (position " + (text.StartPosition + i) +
- " of " + text.Text + ", offset " + advancements[i] + ")" );
-
- graphics.drawString( text.Text.substring(text.StartPosition + i, text.StartPosition + i + 1), (float)advancements[i-1], (float)0.0 );
- }
-
- return true;
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XServiceInfo impl
- // =================
- //
-
- private static final String s_implName = "CanvasFont.java.impl";
- private static final String s_serviceName = "com.sun.star.rendering.XCanvasFont";
-
- public String getImplementationName()
- {
- return s_implName;
- }
-
- public String [] getSupportedServiceNames()
- {
- return new String [] { s_serviceName };
- }
-
- public boolean supportsService( String serviceName )
- {
- return serviceName.equals( s_serviceName );
- }
-}
diff --git a/canvas/source/java/aqua/WindowAdapter.java b/canvas/source/java/aqua/WindowAdapter.java
deleted file mode 100644
index 2529bb56e55c..000000000000
--- a/canvas/source/java/aqua/WindowAdapter.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// UNO
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.uno.AnyConverter;
-import com.sun.star.lang.XInitialization;
-import com.sun.star.lib.uno.helper.WeakBase;
-
-// OOo AWT
-import com.sun.star.awt.*;
-
-// system-dependent stuff
-import sun.awt.*;
-
-//Apple specifics
-import apple.awt.*;
-
-
-public class WindowAdapter
-// defacto implementing the interface, but not deriving from it, since
-// we're no real XInterface here
-// implements com.sun.star.awt.XWindow
-{
- public java.awt.Frame frame;
- private boolean fullscreen;
-
- public WindowAdapter( int windowHandle,
- boolean _fullscreen )
- {
- fullscreen = false;
-
- if( _fullscreen )
- {
- // create a normal Java frame, and set it into fullscreen mode
- frame = new javax.swing.JFrame( "Presentation" );
- frame.setUndecorated( true );
- frame.setVisible( true );
-
- java.awt.Graphics2D graphics = (java.awt.Graphics2D)frame.getGraphics();
- if( graphics.getDeviceConfiguration().getDevice().isFullScreenSupported() )
- {
- CanvasUtils.printLog( "WindowAdapter(Aqua): entering fullscreen mode" );
- graphics.getDeviceConfiguration().getDevice().setFullScreenWindow( frame );
- fullscreen = true;
- }
- else
- {
- CanvasUtils.printLog( "WindowAdapter(Aqua): fullscreen not supported" );
- }
-
- graphics.dispose();
- }
- else
- {
- // we're initialized with the operating system window handle
- // as the parameter. We then generate a dummy Java frame with
- // that window as the parent, to fake a root window for the
- // Java implementation.
-
- // now, we're getting slightly system dependent here.
- String os = (String) System.getProperty("os.name");
-
- // create the embedded frame
- if( os.startsWith("Mac OS X") )
- frame = new apple.awt.CEmbeddedFrame( windowHandle );
- else
- throw new com.sun.star.uno.RuntimeException();
-
-
-// frame = new javax.swing.JFrame( "Test window" );
-
-// // resize it according to the given bounds
-// frame.setBounds( boundRect );
-// frame.setVisible( true );
- }
- }
-
- //----------------------------------------------------------------------------------
-
- public void dispose()
- {
- if( fullscreen )
- {
- java.awt.Graphics2D graphics = (java.awt.Graphics2D)frame.getGraphics();
- if( graphics.getDeviceConfiguration().getDevice().isFullScreenSupported() )
- {
- CanvasUtils.printLog( "WindowAdapter(Aqua): leaving fullscreen mode" );
- graphics.getDeviceConfiguration().getDevice().setFullScreenWindow( null );
- }
- graphics.dispose();
- }
-
- if( frame != null )
- frame.dispose();
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XWindow interface
- // =================
- //
- public void setPosSize( int X, int Y, int Width, int Height, short Flags )
- {
- frame.setBounds( new java.awt.Rectangle( X, Y, Width, Height ) );
- }
-
- public com.sun.star.awt.Rectangle getPosSize( )
- {
- java.awt.Rectangle bounds = frame.getBounds();
-
- return new com.sun.star.awt.Rectangle( bounds.x, bounds.y, bounds.width, bounds.height );
- }
-
- public void setVisible( boolean visible )
- {
- frame.setVisible( visible );
- }
-
- public void setEnable( boolean enable )
- {
- frame.setEnabled( enable );
- }
-
- public void setFocus()
- {
- }
-
- public void addWindowListener( XWindowListener xListener )
- {
- }
-
- public void removeWindowListener( XWindowListener xListener )
- {
- }
-
- public void addFocusListener( XFocusListener xListener )
- {
- }
-
- public void removeFocusListener( XFocusListener xListener )
- {
- }
-
- public void addKeyListener( XKeyListener xListener )
- {
- }
-
- public void removeKeyListener( XKeyListener xListener )
- {
- }
-
- public void addMouseListener( XMouseListener xListener )
- {
- }
-
- public void removeMouseListener( XMouseListener xListener )
- {
- }
-
- public void addMouseMotionListener( XMouseMotionListener xListener )
- {
- }
-
- public void removeMouseMotionListener( XMouseMotionListener xListener )
- {
- }
-
- public void addPaintListener( XPaintListener xListener )
- {
- }
-
- public void removePaintListener( XPaintListener xListener )
- {
- }
-}
diff --git a/canvas/source/java/java_Service.java b/canvas/source/java/java_Service.java
deleted file mode 100644
index 6fcaa1581ca8..000000000000
--- a/canvas/source/java/java_Service.java
+++ /dev/null
@@ -1,118 +0,0 @@
-
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.awt.*;
-
-public class java_Service
- extends com.sun.star.lib.uno.helper.WeakBase
- implements com.sun.star.lang.XServiceInfo, foo.XBar
-{
- private XToolkit m_xToolkit;
- private XVclWindowPeer m_xPeer;
- private javax.swing.JFrame m_frame;
-
- public java_Service( XComponentContext xContext )
- {
- try
- {
- m_xToolkit =
- (XToolkit) UnoRuntime.queryInterface(
- XToolkit.class,
- xContext.getServiceManager().createInstanceWithContext(
- "com.sun.star.awt.Toolkit", xContext ) );
- }
- catch (com.sun.star.uno.Exception exc)
- {
- throw new com.sun.star.uno.RuntimeException(
- "exception occured gettin toolkit: " + exc, this );
- }
- }
-
- // XBar impl
- public void raiseAndCloseWindows( foo.XBar [] seq )
- throws com.sun.star.uno.Exception
- {
- for ( int nPos = 0; nPos < seq.length; ++nPos )
- seq[ nPos ].raiseWindows( "called by Java code" );
-
- // modal dialog before closing
- javax.swing.JOptionPane.showMessageDialog(
- null, "[Java] all windows created." );
-
- for ( int nPos = 0; nPos < seq.length; ++nPos )
- seq[ nPos ].closeWindows();
- }
-
- public void raiseWindows( String msg )
- throws com.sun.star.uno.Exception
- {
- // create java frame
- m_frame = new javax.swing.JFrame(
- "[java frame created by Java code] " + msg );
- m_frame.setSize( 500, 50 );
- m_frame.setLocation( 200, 500 );
- m_frame.setVisible( true );
-
- // create office workwindow
- m_xPeer = (XVclWindowPeer) UnoRuntime.queryInterface(
- XVclWindowPeer.class,
- m_xToolkit.createWindow(
- new WindowDescriptor(
- WindowClass.TOP, "workwindow", null, (short) -1,
- new Rectangle( 800, 500, 500, 50 ),
- WindowAttribute.SHOW |
- WindowAttribute.BORDER |
- WindowAttribute.SIZEABLE |
- WindowAttribute.MOVEABLE |
- WindowAttribute.CLOSEABLE ) ) );
- m_xPeer.setProperty(
- "Title", "[office window created by Java code] " + msg );
- }
-
- public void closeWindows()
- throws com.sun.star.uno.Exception
- {
- m_frame.dispose();
- m_xPeer.dispose();
- }
-
-
- private static final String s_implName = "foo.java.impl";
- private static final String s_serviceName = "foo.java";
-
- // XServiceInfo impl
- public String getImplementationName()
- {
- return s_implName;
- }
-
- public String [] getSupportedServiceNames()
- {
- return new String [] { s_serviceName };
- }
-
- public boolean supportsService( String serviceName )
- {
- return serviceName.equals( s_serviceName );
- }
-
- public static com.sun.star.lang.XSingleServiceFactory __getServiceFactory(
- String implName,
- com.sun.star.lang.XMultiServiceFactory multiFactory,
- com.sun.star.registry.XRegistryKey regKey )
- {
- if (implName.equals( s_implName ))
- {
- return com.sun.star.comp.loader.FactoryHelper.getServiceFactory(
- java_Service.class, s_serviceName, multiFactory, regKey );
- }
- return null;
- }
-
- public static boolean __writeRegistryServiceInfo(
- com.sun.star.registry.XRegistryKey regKey )
- {
- return com.sun.star.comp.loader.FactoryHelper.writeRegistryServiceInfo(
- s_implName, s_serviceName, regKey );
- }
-}
diff --git a/canvas/source/java/makefile.mk b/canvas/source/java/makefile.mk
deleted file mode 100644
index 86f329e4fe3b..000000000000
--- a/canvas/source/java/makefile.mk
+++ /dev/null
@@ -1,93 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-# Builds the Java Canvas implementation.
-
-PRJNAME = canvas
-PRJ = ..$/..
-TARGET = javacanvas
-PACKAGE = canvas
-
-USE_JAVAVER:=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE: settings.mk
-
-.IF "$(SOLAR_JAVA)"=="TRUE"
-# Since Canvas needs newer features like
-# e.g. java.awt.image.BufferStrategy,
-# disabled for now for everything <1.4
-.IF "$(JAVANUMVER:s/.//)" >= "000100040000"
-
-JAVAFILES = \
- SpriteBase.java \
- JavaCanvas.java \
- CanvasGraphicDevice.java \
- CanvasUtils.java \
- CanvasFont.java \
- CanvasBitmap.java \
- CanvasSprite.java \
- CanvasCustomSprite.java \
- CanvasClonedSprite.java \
- TextLayout.java \
- BackBuffer.java \
- LinePolyPolygon.java \
- BezierPolyPolygon.java \
- SpriteRunner.java
-
-.IF "$(GUIBASE)"=="unx"
-
-JAVAFILES += x11/WindowAdapter.java
-
-.ELIF "$(GUIBASE)"=="aqua"
-
-JAVAFILES += aqua/WindowAdapter.java
-
-.ELSE
-
-JAVAFILES += win/WindowAdapter.java
-
-.ENDIF # "$(GUIBASE)"=="unx"
-
-JARFILES = jurt.jar unoil.jar ridl.jar juh.jar java_uno.jar
-#JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-JARTARGET = $(TARGET).uno.jar
-JARCOMPRESS = TRUE
-#JARCLASSDIRS = $(PACKAGE)
-CUSTOMMANIFESTFILE = manifest
-
-.ENDIF # "$(JAVANUMVER:s/.//)" >= "000100040000"
-.ENDIF # "$(SOLAR_JAVA)"=="TRUE"
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE: target.mk
-
-#dist: $(JAVA_FILES:b:+".class")
-# +jar -cvfm $(CLASSDIR)/JavaCanvas.jar $(JARMANIFEST) $(JAVACLASSFILES)
diff --git a/canvas/source/java/manifest b/canvas/source/java/manifest
deleted file mode 100644
index 6ddc3ab0ae51..000000000000
--- a/canvas/source/java/manifest
+++ /dev/null
@@ -1 +0,0 @@
-RegistrationClassName: JavaCanvas
diff --git a/canvas/source/java/perftest/PerfTest.java b/canvas/source/java/perftest/PerfTest.java
deleted file mode 100644
index 98e3cc5c3de5..000000000000
--- a/canvas/source/java/perftest/PerfTest.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-import java.awt.*;
-import java.awt.image.*;
-import java.awt.geom.*;
-
-
-public class PerfTest
-{
- // the frame object we're generating. TODO: Remove public access.
- private Frame frame;
- private boolean fullscreen;
-
- public PerfTest()
- {
- fullscreen = false;
-
- // create a normal Java frame, and set it into fullscreen mode
- frame = new javax.swing.JFrame( "PerformanceTest" );
- frame.setBounds( new Rectangle(0,0,1600,1200) );
- frame.setUndecorated( true );
- frame.setVisible( true );
-
- Graphics2D graphics = (Graphics2D)frame.getGraphics();
- if( graphics.getDeviceConfiguration().getDevice().isFullScreenSupported() )
- {
- System.err.println( "entering fullscreen mode" );
- graphics.getDeviceConfiguration().getDevice().setFullScreenWindow( frame );
- fullscreen = true;
- }
- else
- {
- System.err.println( "fullscreen not supported" );
- }
-
- graphics.dispose();
- }
-
- //----------------------------------------------------------------------------------
-
- public void dispose()
- {
- if( fullscreen )
- {
- Graphics2D graphics = (Graphics2D)frame.getGraphics();
- if( graphics.getDeviceConfiguration().getDevice().isFullScreenSupported() )
- {
- System.err.println( "leaving fullscreen mode" );
- graphics.getDeviceConfiguration().getDevice().setFullScreenWindow( null );
- }
- graphics.dispose();
- }
-
- if( frame != null )
- frame.dispose();
- }
-
- //----------------------------------------------------------------------------------
-
- public static void initGraphics( Graphics2D graphics )
- {
- if( graphics != null )
- {
- RenderingHints hints = new RenderingHints(null);
- boolean hq = true;
-
- if( hq )
- {
- hints.add( new RenderingHints( RenderingHints.KEY_FRACTIONALMETRICS,
- RenderingHints.VALUE_FRACTIONALMETRICS_ON ) );
-// hints.add( new RenderingHints( RenderingHints.KEY_ALPHA_INTERPOLATION,
-// RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY) );
- hints.add( new RenderingHints( RenderingHints.KEY_ALPHA_INTERPOLATION,
- RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED) );
-// hints.add( new RenderingHints( RenderingHints.KEY_INTERPOLATION,
-// RenderingHints.VALUE_INTERPOLATION_BICUBIC) );
- hints.add( new RenderingHints( RenderingHints.KEY_INTERPOLATION,
- RenderingHints.VALUE_INTERPOLATION_BILINEAR) );
-// hints.add( new RenderingHints( RenderingHints.KEY_RENDERING,
-// RenderingHints.VALUE_RENDER_QUALITY) );
- hints.add( new RenderingHints( RenderingHints.KEY_RENDERING,
- RenderingHints.VALUE_RENDER_SPEED) );
-// hints.add( new RenderingHints( RenderingHints.KEY_STROKE_CONTROL,
-// RenderingHints.VALUE_STROKE_NORMALIZE) );
- hints.add( new RenderingHints( RenderingHints.KEY_STROKE_CONTROL,
- RenderingHints.VALUE_STROKE_DEFAULT) );
- hints.add( new RenderingHints( RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_ON) );
- }
- else
- {
- hints.add( new RenderingHints( RenderingHints.KEY_ALPHA_INTERPOLATION,
- RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED) );
- hints.add( new RenderingHints( RenderingHints.KEY_INTERPOLATION,
- RenderingHints.VALUE_INTERPOLATION_BILINEAR) );
- hints.add( new RenderingHints( RenderingHints.KEY_RENDERING,
- RenderingHints.VALUE_RENDER_SPEED) );
- hints.add( new RenderingHints( RenderingHints.KEY_STROKE_CONTROL,
- RenderingHints.VALUE_STROKE_DEFAULT) );
- hints.add( new RenderingHints( RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_OFF) );
- }
-
- // the least common denominator standard
- hints.add( new RenderingHints( RenderingHints.KEY_FRACTIONALMETRICS,
- RenderingHints.VALUE_FRACTIONALMETRICS_ON) );
- hints.add( new RenderingHints( RenderingHints.KEY_TEXT_ANTIALIASING,
- RenderingHints.VALUE_TEXT_ANTIALIAS_ON) );
-
- graphics.setRenderingHints( hints );
- }
- }
-
- public void run()
- {
- frame.createBufferStrategy(2);
- BufferStrategy bufferStrategy = frame.getBufferStrategy();
-
- if( bufferStrategy.getCapabilities().isPageFlipping() )
- System.err.println( "double buffering is using page flipping" );
- else
- System.err.println( "double buffering is using blitting" );
-
- int width = 1600;
- int height = 1200;
- Graphics2D graphics = (Graphics2D)frame.getGraphics();
- VolatileImage backBuffer = graphics.getDeviceConfiguration().createCompatibleVolatileImage(width,height); // TODO: size dynamic
- BufferedImage buffer = graphics.getDeviceConfiguration().createCompatibleImage(width,height,
- Transparency.TRANSLUCENT);
- BufferedImage buffer2 = graphics.getDeviceConfiguration().createCompatibleImage(width,height,
- Transparency.TRANSLUCENT);
- BufferedImage buffer3 = graphics.getDeviceConfiguration().createCompatibleImage(width,height,
- Transparency.TRANSLUCENT);
-
- GraphicsDevice device = graphics.getDeviceConfiguration().getDevice();
- System.err.println( "Images generated. Available vram: " + device.getAvailableAcceleratedMemory() );
-
- Graphics2D bufferGraphics = (Graphics2D)buffer.getGraphics();
- Graphics2D buffer2Graphics = (Graphics2D)buffer2.getGraphics();
- Graphics2D buffer3Graphics = (Graphics2D)buffer3.getGraphics();
- Graphics2D backBufGraphics = (Graphics2D)backBuffer.getGraphics();
-
- System.err.println( "Image graphics generated. Available vram: " + device.getAvailableAcceleratedMemory() );
-
- // init Graphics
- initGraphics( graphics );
- initGraphics( bufferGraphics );
- initGraphics( buffer2Graphics );
- initGraphics( backBufGraphics );
-
- // init content
- Font font = new Font( "Times", Font.PLAIN, 100 );
- Font fpsFont = new Font( "Times", Font.PLAIN, 20 );
-
- bufferGraphics.setComposite( AlphaComposite.getInstance(AlphaComposite.CLEAR));
- bufferGraphics.fillRect( 0,0,width,height );
-
- bufferGraphics.setComposite( AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
- bufferGraphics.setColor( Color.red );
- bufferGraphics.fillRect( 0,0,width/2,height/2 );
- bufferGraphics.setColor( Color.green );
- bufferGraphics.fillRect( width/2,0,width,height/2 );
- bufferGraphics.setColor( Color.blue );
- bufferGraphics.fillRect( 0,height/2,width/2,height );
-
- buffer2Graphics.setColor( Color.red );
- buffer2Graphics.fillRect( 0,0,width/2,height/2 );
- buffer2Graphics.setColor( Color.green );
- buffer2Graphics.fillRect( width/2,0,width,height/2 );
- buffer2Graphics.setColor( Color.blue );
- buffer2Graphics.fillRect( 0,height/2,width/2,height );
-
- buffer3Graphics.setColor( Color.blue );
- buffer3Graphics.fillRect( 0,0,width/2,height/2 );
- buffer3Graphics.setColor( Color.white );
- buffer3Graphics.fillRect( width/2,0,width,height/2 );
- buffer3Graphics.setColor( Color.gray );
- buffer3Graphics.fillRect( 0,height/2,width/2,height );
-
- backBufGraphics.setColor( Color.white );
- backBufGraphics.fillRect(0,0,width,height);
- backBufGraphics.setColor( Color.red );
- backBufGraphics.setFont( font );
- int i, turns=15;
- for(i=0; i<turns; ++i)
- {
- backBufGraphics.drawString( "Crossfade test", width*i/turns, height*i/turns );
- }
-
- System.err.println( "Images filled with content. Available vram: " + device.getAvailableAcceleratedMemory() );
-
- long lastTime = System.currentTimeMillis();
- int turn, numTurns = 100;
- for(turn=0; turn<numTurns; ++turn)
- {
- // fetch the Graphics object to draw into (we're doing double
- // buffering here, the content is later shown via
- // bufferStrategy.show().
- Graphics2D graph = null;
-
- try
- {
- graph = (Graphics2D)bufferStrategy.getDrawGraphics();
-
- try
- {
- // repaint background
- graph.setComposite( AlphaComposite.getInstance(AlphaComposite.SRC_OVER) );
- graph.drawImage(backBuffer, 0, 0, null);
-
- // alpha-composite foreground on top of that
- float alpha = turn/(float)numTurns;
- graph.setComposite( AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha) );
-
- graph.drawImage(buffer, 0, 0, null);
- buffer.flush();
- graph.drawImage(buffer2, 100, 100, null);
- buffer2.flush();
-
- long currTime = System.currentTimeMillis();
- graph.setComposite( AlphaComposite.getInstance(AlphaComposite.SRC_OVER) );
- graph.setFont( fpsFont );
- graph.setColor( Color.black );
- String fps = new String( String.valueOf(1000.0/(currTime-lastTime)) );
- System.err.println( "Images composited. Framerate: " + fps + " fps" );
- graph.drawString( fps.substring(0,5) + " fps", 0, 20);
- lastTime = currTime;
-
- System.err.println( "Available vram: " + device.getAvailableAcceleratedMemory() );
- }
- catch( Exception e )
- {
- }
-
- System.err.println( "Turn: " + turn );
- }
- finally
- {
- if( graph != null )
- graph.dispose();
- }
-
- bufferStrategy.show();
- }
-
- try
- {
- Thread.sleep(2000);
- }
- catch( Exception e )
- {
- }
- }
-
- //----------------------------------------------------------------------------------
-
- public static void main(String[] args)
- {
- // now, we're getting slightly system dependent here.
- String os = (String) System.getProperty("os.name");
-
- System.err.println( "System detected: " + os );
-
- // tweak some speed knobs...
- if( os.startsWith("Windows") )
- {
- System.setProperty("sun.java2d.translaccel", "true");
- System.setProperty("sun.java2d.ddforcevram", "true");
- //System.setProperty("sun.java2d.accthreshold", "0");
-
- System.err.println( "Optimizing for Windows" );
- }
- else
- {
- System.setProperty("sun.java2d.opengl", "true");
-
- System.err.println( "Optimizing for Unix" );
- }
-
- PerfTest test = new PerfTest();
-
- test.run();
-
- test.dispose();
- }
-
- //----------------------------------------------------------------------------------
-
-}
diff --git a/canvas/source/java/perftest/WindowAdapter.java b/canvas/source/java/perftest/WindowAdapter.java
deleted file mode 100644
index fa34e6720fc7..000000000000
--- a/canvas/source/java/perftest/WindowAdapter.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-import sun.awt.*;
-import com.sun.star.awt.*;
-
-
-public class WindowAdapter
-// defacto implementing the interface, but not deriving from it, since
-// we're no real XInterface here
-// implements com.sun.star.awt.XWindow
-{
- // the frame object we're generating. TODO: Remove public access.
- public java.awt.Frame frame;
- private boolean fullscreen;
-
- public WindowAdapter( int windowHandle,
- boolean _fullscreen )
- {
- CanvasUtils.printLog( "WindowAdapter(X11): constructor called" );
- fullscreen = false;
-
- if( _fullscreen )
- {
- // create a normal Java frame, and set it into fullscreen mode
- frame = new javax.swing.JFrame( "Presentation" );
- frame.setUndecorated( true );
- frame.setVisible( true );
-
- java.awt.Graphics2D graphics = (java.awt.Graphics2D)frame.getGraphics();
- if( graphics.getDeviceConfiguration().getDevice().isFullScreenSupported() )
- {
- CanvasUtils.printLog( "WindowAdapter(X11): entering fullscreen mode" );
- graphics.getDeviceConfiguration().getDevice().setFullScreenWindow( frame );
- fullscreen = true;
- }
- else
- {
- CanvasUtils.printLog( "WindowAdapter(X11): fullscreen not supported" );
- }
-
- graphics.dispose();
- }
- else
- {
- // we're initialized with the operating system window handle
- // as the parameter. We then generate a dummy Java frame with
- // that window as the parent, to fake a root window for the
- // Java implementation.
-
- // now, we're getting slightly system dependent here.
- String os = (String) System.getProperty("os.name");
-
- System.err.println("WindowAdapter created");
-
- // create the embedded frame
- if( os.startsWith("Linux") )
- {
- // create a java frame from that
- // TODO: Maybe that's the reason why we crash on Linux 1.5beta
- // immediately: Try XAWT here, or naked X: sun.awt.X11.XEmbeddedFrame
-
- //frame = new sun.awt.motif.MEmbeddedFrame( windowHandle );
- //frame = new sun.awt.X11.XEmbeddedFrame( windowHandle ); // cannot currently compile
- CanvasUtils.printLog( "WindowAdapter(X11): no frame created for now" );
- frame = null;
- }
- else
- {
- throw new com.sun.star.uno.RuntimeException();
- }
- }
- }
-
- //----------------------------------------------------------------------------------
-
- public void dispose()
- {
- if( fullscreen )
- {
- java.awt.Graphics2D graphics = (java.awt.Graphics2D)frame.getGraphics();
- if( graphics.getDeviceConfiguration().getDevice().isFullScreenSupported() )
- {
- CanvasUtils.printLog( "WindowAdapter(X11): leaving fullscreen mode" );
- graphics.getDeviceConfiguration().getDevice().setFullScreenWindow( null );
- }
- graphics.dispose();
- }
-
- if( frame != null )
- frame.dispose();
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XWindow interface
- // =================
- //
- public void setPosSize( int X, int Y, int Width, int Height, short Flags )
- {
- frame.setBounds( new java.awt.Rectangle( X, Y, Width, Height ) );
- }
-
- public com.sun.star.awt.Rectangle getPosSize( )
- {
- java.awt.Rectangle bounds = frame.getBounds();
-
- return new com.sun.star.awt.Rectangle( bounds.x, bounds.y, bounds.width, bounds.height );
- }
-
- public void setVisible( boolean visible )
- {
- frame.setVisible( visible );
- }
-
- public void setEnable( boolean enable )
- {
- frame.setEnabled( enable );
- }
-
- public void setFocus()
- {
- }
-
- public void addWindowListener( XWindowListener xListener )
- {
- }
-
- public void removeWindowListener( XWindowListener xListener )
- {
- }
-
- public void addFocusListener( XFocusListener xListener )
- {
- }
-
- public void removeFocusListener( XFocusListener xListener )
- {
- }
-
- public void addKeyListener( XKeyListener xListener )
- {
- }
-
- public void removeKeyListener( XKeyListener xListener )
- {
- }
-
- public void addMouseListener( XMouseListener xListener )
- {
- }
-
- public void removeMouseListener( XMouseListener xListener )
- {
- }
-
- public void addMouseMotionListener( XMouseMotionListener xListener )
- {
- }
-
- public void removeMouseMotionListener( XMouseMotionListener xListener )
- {
- }
-
- public void addPaintListener( XPaintListener xListener )
- {
- }
-
- public void removePaintListener( XPaintListener xListener )
- {
- }
-}
diff --git a/canvas/source/java/perftest/makefile.mk b/canvas/source/java/perftest/makefile.mk
deleted file mode 100644
index 787a42adfb74..000000000000
--- a/canvas/source/java/perftest/makefile.mk
+++ /dev/null
@@ -1,55 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-# Builds the Java Canvas implementation.
-
-PRJNAME = canvas
-PRJ = ../../..
-TARGET = PerfTest
-PACKAGE = test
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE: settings.mk
-
-JAVAFILES = \
- PerfTest.java
-
-JARFILES = jurt.jar unoil.jar ridl.jar juh.jar java_uno.jar
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
-#JARCLASSDIRS = $(PACKAGE)
-CUSTOMMANIFESTFILE = manifest
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE: target.mk
-
-#dist: $(JAVA_FILES:b:+".class")
-# +jar -cvfm $(CLASSDIR)/PerfTest.jar $(JARMANIFEST) $(JAVACLASSFILES)
diff --git a/canvas/source/java/perftest/manifest b/canvas/source/java/perftest/manifest
deleted file mode 100644
index 805a87d47b57..000000000000
--- a/canvas/source/java/perftest/manifest
+++ /dev/null
@@ -1 +0,0 @@
-RegistrationClassName: PerfTest
diff --git a/canvas/source/java/win/WindowAdapter.java b/canvas/source/java/win/WindowAdapter.java
deleted file mode 100644
index 6cfe54db5991..000000000000
--- a/canvas/source/java/win/WindowAdapter.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// UNO
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.uno.AnyConverter;
-import com.sun.star.lang.XInitialization;
-import com.sun.star.lib.uno.helper.WeakBase;
-
-// OOo AWT
-import com.sun.star.awt.*;
-
-// system-dependent stuff
-import sun.awt.*;
-
-
-public class WindowAdapter
-// defacto implementing the interface, but not deriving from it, since
-// we're no real XInterface here
-// implements com.sun.star.awt.XWindow
-{
- public java.awt.Frame frame;
- private boolean fullscreen;
-
- public WindowAdapter( int windowHandle,
- boolean _fullscreen )
- {
- fullscreen = false;
-
- if( _fullscreen )
- {
- // create a normal Java frame, and set it into fullscreen mode
- frame = new javax.swing.JFrame( "Presentation" );
- frame.setUndecorated( true );
- frame.setVisible( true );
-
- java.awt.Graphics2D graphics = (java.awt.Graphics2D)frame.getGraphics();
- if( graphics.getDeviceConfiguration().getDevice().isFullScreenSupported() )
- {
- CanvasUtils.printLog( "WindowAdapter(Win32): entering fullscreen mode" );
- graphics.getDeviceConfiguration().getDevice().setFullScreenWindow( frame );
- fullscreen = true;
- }
- else
- {
- CanvasUtils.printLog( "WindowAdapter(Win32): fullscreen not supported" );
- }
-
- graphics.dispose();
- }
- else
- {
- // we're initialized with the operating system window handle
- // as the parameter. We then generate a dummy Java frame with
- // that window as the parent, to fake a root window for the
- // Java implementation.
-
- // now, we're getting slightly system dependent here.
- String os = (String) System.getProperty("os.name");
-
- // create the embedded frame
- if( os.startsWith("Windows") )
- frame = new sun.awt.windows.WEmbeddedFrame( windowHandle );
- else
- throw new com.sun.star.uno.RuntimeException();
-
-
-// frame = new javax.swing.JFrame( "Test window" );
-
-// // resize it according to the given bounds
-// frame.setBounds( boundRect );
-// frame.setVisible( true );
- }
- }
-
- //----------------------------------------------------------------------------------
-
- public void dispose()
- {
- if( fullscreen )
- {
- java.awt.Graphics2D graphics = (java.awt.Graphics2D)frame.getGraphics();
- if( graphics.getDeviceConfiguration().getDevice().isFullScreenSupported() )
- {
- CanvasUtils.printLog( "WindowAdapter(Win32): leaving fullscreen mode" );
- graphics.getDeviceConfiguration().getDevice().setFullScreenWindow( null );
- }
- graphics.dispose();
- }
-
- if( frame != null )
- frame.dispose();
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XWindow interface
- // =================
- //
- public void setPosSize( int X, int Y, int Width, int Height, short Flags )
- {
- frame.setBounds( new java.awt.Rectangle( X, Y, Width, Height ) );
- }
-
- public com.sun.star.awt.Rectangle getPosSize( )
- {
- java.awt.Rectangle bounds = frame.getBounds();
-
- return new com.sun.star.awt.Rectangle( bounds.x, bounds.y, bounds.width, bounds.height );
- }
-
- public void setVisible( boolean visible )
- {
- frame.setVisible( visible );
- }
-
- public void setEnable( boolean enable )
- {
- frame.setEnabled( enable );
- }
-
- public void setFocus()
- {
- }
-
- public void addWindowListener( XWindowListener xListener )
- {
- }
-
- public void removeWindowListener( XWindowListener xListener )
- {
- }
-
- public void addFocusListener( XFocusListener xListener )
- {
- }
-
- public void removeFocusListener( XFocusListener xListener )
- {
- }
-
- public void addKeyListener( XKeyListener xListener )
- {
- }
-
- public void removeKeyListener( XKeyListener xListener )
- {
- }
-
- public void addMouseListener( XMouseListener xListener )
- {
- }
-
- public void removeMouseListener( XMouseListener xListener )
- {
- }
-
- public void addMouseMotionListener( XMouseMotionListener xListener )
- {
- }
-
- public void removeMouseMotionListener( XMouseMotionListener xListener )
- {
- }
-
- public void addPaintListener( XPaintListener xListener )
- {
- }
-
- public void removePaintListener( XPaintListener xListener )
- {
- }
-}
diff --git a/canvas/source/java/x11/WindowAdapter.java b/canvas/source/java/x11/WindowAdapter.java
deleted file mode 100644
index 555f6c8ca1b8..000000000000
--- a/canvas/source/java/x11/WindowAdapter.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-import com.sun.star.awt.*;
-
-
-public class WindowAdapter
-// defacto implementing the interface, but not deriving from it, since
-// we're no real XInterface here
-// implements com.sun.star.awt.XWindow
-{
- // the frame object we're generating. TODO: Remove public access.
- public java.awt.Frame frame;
- private boolean fullscreen;
-
- public WindowAdapter( int windowHandle,
- boolean _fullscreen )
- {
- CanvasUtils.printLog( "WindowAdapter(X11): constructor called" );
- fullscreen = false;
-
- if( _fullscreen )
- {
- // create a normal Java frame, and set it into fullscreen mode
- frame = new javax.swing.JFrame( "Presentation" );
- frame.setUndecorated( true );
- frame.setVisible( true );
-
- java.awt.Graphics2D graphics = (java.awt.Graphics2D)frame.getGraphics();
- if( graphics.getDeviceConfiguration().getDevice().isFullScreenSupported() )
- {
- CanvasUtils.printLog( "WindowAdapter(X11): entering fullscreen mode" );
- graphics.getDeviceConfiguration().getDevice().setFullScreenWindow( frame );
- fullscreen = true;
- }
- else
- {
- CanvasUtils.printLog( "WindowAdapter(X11): fullscreen not supported" );
- }
-
- graphics.dispose();
- }
- else
- {
- // we're initialized with the operating system window handle
- // as the parameter. We then generate a dummy Java frame with
- // that window as the parent, to fake a root window for the
- // Java implementation.
-
- // now, we're getting slightly system dependent here.
- String os = (String) System.getProperty("os.name");
-
- System.err.println("WindowAdapter created");
-
- // create the embedded frame
- if( os.startsWith("Linux") )
- {
- // create a java frame from that
- // TODO: Maybe that's the reason why we crash on Linux 1.5beta
- // immediately: Try XAWT here, or naked X: sun.awt.X11.XEmbeddedFrame
-
- // TODO
- //frame = new sun.awt.motif.MEmbeddedFrame( windowHandle ); // Crashes 1.5, because class is unknown
- //frame = new sun.awt.X11.XEmbeddedFrame( windowHandle ); // cannot currently compile, because class is not in 1.4.
- CanvasUtils.printLog( "WindowAdapter(X11): no frame created for now" );
- frame = null; // disabled for now
- }
- else
- {
- throw new com.sun.star.uno.RuntimeException();
- }
- }
- }
-
- //----------------------------------------------------------------------------------
-
- public void dispose()
- {
- if( fullscreen )
- {
- java.awt.Graphics2D graphics = (java.awt.Graphics2D)frame.getGraphics();
- if( graphics.getDeviceConfiguration().getDevice().isFullScreenSupported() )
- {
- CanvasUtils.printLog( "WindowAdapter(X11): leaving fullscreen mode" );
- graphics.getDeviceConfiguration().getDevice().setFullScreenWindow( null );
- }
- graphics.dispose();
- }
-
- if( frame != null )
- frame.dispose();
- }
-
- //----------------------------------------------------------------------------------
-
- //
- // XWindow interface
- // =================
- //
- public void setPosSize( int X, int Y, int Width, int Height, short Flags )
- {
- frame.setBounds( new java.awt.Rectangle( X, Y, Width, Height ) );
- }
-
- public com.sun.star.awt.Rectangle getPosSize( )
- {
- java.awt.Rectangle bounds = frame.getBounds();
-
- return new com.sun.star.awt.Rectangle( bounds.x, bounds.y, bounds.width, bounds.height );
- }
-
- public void setVisible( boolean visible )
- {
- frame.setVisible( visible );
- }
-
- public void setEnable( boolean enable )
- {
- frame.setEnabled( enable );
- }
-
- public void setFocus()
- {
- }
-
- public void addWindowListener( XWindowListener xListener )
- {
- }
-
- public void removeWindowListener( XWindowListener xListener )
- {
- }
-
- public void addFocusListener( XFocusListener xListener )
- {
- }
-
- public void removeFocusListener( XFocusListener xListener )
- {
- }
-
- public void addKeyListener( XKeyListener xListener )
- {
- }
-
- public void removeKeyListener( XKeyListener xListener )
- {
- }
-
- public void addMouseListener( XMouseListener xListener )
- {
- }
-
- public void removeMouseListener( XMouseListener xListener )
- {
- }
-
- public void addMouseMotionListener( XMouseMotionListener xListener )
- {
- }
-
- public void removeMouseMotionListener( XMouseMotionListener xListener )
- {
- }
-
- public void addPaintListener( XPaintListener xListener )
- {
- }
-
- public void removePaintListener( XPaintListener xListener )
- {
- }
-}
diff --git a/canvas/source/null/exports.map b/canvas/source/null/exports.map
deleted file mode 100644
index 4101b0d761a9..000000000000
--- a/canvas/source/null/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-CAN_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/canvas/source/null/makefile.mk b/canvas/source/null/makefile.mk
index 98bf2c5c9b71..07971ef8153e 100644
--- a/canvas/source/null/makefile.mk
+++ b/canvas/source/null/makefile.mk
@@ -60,7 +60,7 @@ SHL1IMPLIB=i$(TARGET)
SHL1LIBS=$(SLB)$/$(TARGET).lib
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
DEF1EXPORTFILE=exports.dxp
diff --git a/canvas/source/null/null_spritecanvas.hxx b/canvas/source/null/null_spritecanvas.hxx
index 662897a3df10..136e09a291db 100644
--- a/canvas/source/null/null_spritecanvas.hxx
+++ b/canvas/source/null/null_spritecanvas.hxx
@@ -38,7 +38,7 @@
#include <com/sun/star/rendering/XIntegerBitmap.hpp>
#include <com/sun/star/rendering/XGraphicDevice.hpp>
#include <com/sun/star/rendering/XBufferController.hpp>
-#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <cppuhelper/compbase8.hxx>
#include <comphelper/uno3.hxx>
@@ -57,7 +57,7 @@ namespace nullcanvas
typedef ::cppu::WeakComponentImplHelper8< ::com::sun::star::rendering::XSpriteCanvas,
::com::sun::star::rendering::XIntegerBitmap,
::com::sun::star::rendering::XGraphicDevice,
- ::com::sun::star::rendering::XParametricPolyPolygon2DFactory,
+ ::com::sun::star::lang::XMultiServiceFactory,
::com::sun::star::rendering::XBufferController,
::com::sun::star::awt::XWindowListener,
::com::sun::star::beans::XPropertySet,
diff --git a/canvas/source/simplecanvas/exports.map b/canvas/source/simplecanvas/exports.map
deleted file mode 100644
index 4101b0d761a9..000000000000
--- a/canvas/source/simplecanvas/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-CAN_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/canvas/source/simplecanvas/makefile.mk b/canvas/source/simplecanvas/makefile.mk
index dc99c0a9bbc9..4d5a7e7bb3a1 100644
--- a/canvas/source/simplecanvas/makefile.mk
+++ b/canvas/source/simplecanvas/makefile.mk
@@ -52,7 +52,7 @@ SHL1IMPLIB=i$(TARGET)
SHL1LIBS=$(SLB)$/$(TARGET).lib
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
DEF1EXPORTFILE=exports.dxp
diff --git a/canvas/source/tools/canvastools.cxx b/canvas/source/tools/canvastools.cxx
index 7ce8d02038b9..ad833cc3ca40 100644..100755
--- a/canvas/source/tools/canvastools.cxx
+++ b/canvas/source/tools/canvastools.cxx
@@ -991,6 +991,54 @@ namespace canvas
return aPolyPoly;
}
+ int calcGradientStepCount( ::basegfx::B2DHomMatrix& rTotalTransform,
+ const rendering::ViewState& viewState,
+ const rendering::RenderState& renderState,
+ const rendering::Texture& texture,
+ int nColorSteps )
+ {
+ // calculate overall texture transformation (directly from
+ // texture to device space).
+ ::basegfx::B2DHomMatrix aMatrix;
+
+ rTotalTransform.identity();
+ ::basegfx::unotools::homMatrixFromAffineMatrix( rTotalTransform,
+ texture.AffineTransform );
+ ::canvas::tools::mergeViewAndRenderTransform(aMatrix,
+ viewState,
+ renderState);
+ rTotalTransform *= aMatrix; // prepend total view/render transformation
+
+ // determine size of gradient in device coordinate system
+ // (to e.g. determine sensible number of gradient steps)
+ ::basegfx::B2DPoint aLeftTop( 0.0, 0.0 );
+ ::basegfx::B2DPoint aLeftBottom( 0.0, 1.0 );
+ ::basegfx::B2DPoint aRightTop( 1.0, 0.0 );
+ ::basegfx::B2DPoint aRightBottom( 1.0, 1.0 );
+
+ aLeftTop *= rTotalTransform;
+ aLeftBottom *= rTotalTransform;
+ aRightTop *= rTotalTransform;
+ aRightBottom*= rTotalTransform;
+
+ // longest line in gradient bound rect
+ const int nGradientSize(
+ static_cast<int>(
+ ::std::max(
+ ::basegfx::B2DVector(aRightBottom-aLeftTop).getLength(),
+ ::basegfx::B2DVector(aRightTop-aLeftBottom).getLength() ) + 1.0 ) );
+
+ // typical number for pixel of the same color (strip size)
+ const int nStripSize( nGradientSize < 50 ? 2 : 4 );
+
+ // use at least three steps, and at utmost the number of color
+ // steps
+ return ::std::max( 3,
+ ::std::min(
+ nGradientSize / nStripSize,
+ nColorSteps ) );
+ }
+
} // namespace tools
} // namespace canvas
diff --git a/canvas/source/tools/image.cxx b/canvas/source/tools/image.cxx
index 2b7d38abc8ea..b6183e463e99 100644
--- a/canvas/source/tools/image.cxx
+++ b/canvas/source/tools/image.cxx
@@ -1512,7 +1512,7 @@ void Image::fillGradientImpl( const ParametricPolyPolygon::Values& rValues,
typedef color_generator_adaptor<color_type> color_generator_type;
unsigned int dwNumSteps = static_cast<unsigned int>(rBounds.getWidth());
color_generator_type colors(color1,color2,dwNumSteps);
- colors.set_linear(rValues.meType != ParametricPolyPolygon::GRADIENT_AXIAL);
+ colors.set_linear(true);
// color = f(x,y)
gradient_polymorphic_wrapper<agg::gradient_x> gf_x;
diff --git a/canvas/source/tools/parametricpolypolygon.cxx b/canvas/source/tools/parametricpolypolygon.cxx
index db449f6c15f8..368f04a572e3 100644
--- a/canvas/source/tools/parametricpolypolygon.cxx
+++ b/canvas/source/tools/parametricpolypolygon.cxx
@@ -50,68 +50,126 @@ using namespace ::com::sun::star;
namespace canvas
{
- ParametricPolyPolygon* ParametricPolyPolygon::createLinearHorizontalGradient(
- const uno::Reference< rendering::XGraphicDevice >& rDevice,
- const uno::Sequence< uno::Sequence< double > >& colors,
- const uno::Sequence< double >& stops )
+ uno::Sequence<rtl::OUString> ParametricPolyPolygon::getAvailableServiceNames()
{
- // TODO(P2): hold gradient brush statically, and only setup
- // the colors
- return new ParametricPolyPolygon( rDevice, GRADIENT_LINEAR, colors, stops );
+ uno::Sequence<rtl::OUString> aRet(3);
+ aRet[0] = rtl::OUString::createFromAscii("LinearGradient");
+ aRet[1] = rtl::OUString::createFromAscii("EllipticalGradient");
+ aRet[2] = rtl::OUString::createFromAscii("RectangularGradient");
+
+ return aRet;
+ }
+
+ ParametricPolyPolygon* ParametricPolyPolygon::create(
+ const uno::Reference< rendering::XGraphicDevice >& rDevice,
+ const ::rtl::OUString& rServiceName,
+ const uno::Sequence< uno::Any >& rArgs )
+ {
+ uno::Sequence< uno::Sequence< double > > colorSequence(2);
+ uno::Sequence< double > colorStops(2);
+ double fAspectRatio=1.0;
+
+ // defaults
+ uno::Sequence< rendering::RGBColor > rgbColors(1);
+ rgbColors[0] = rendering::RGBColor(0,0,0);
+ colorSequence[0] = rDevice->getDeviceColorSpace()->convertFromRGB(rgbColors);
+ rgbColors[0] = rendering::RGBColor(1,1,1);
+ colorSequence[1] = rDevice->getDeviceColorSpace()->convertFromRGB(rgbColors);
+ colorStops[0] = 0;
+ colorStops[1] = 1;
+
+ // extract args
+ for( sal_Int32 i=0; i<rArgs.getLength(); ++i )
+ {
+ beans::PropertyValue aProp;
+ if( (rArgs[i] >>= aProp) )
+ {
+ if( aProp.Name.equalsAscii("Colors") )
+ {
+ aProp.Value >>= colorSequence;
+ }
+ else if( aProp.Name.equalsAscii("Stops") )
+ {
+ aProp.Value >>= colorStops;
+ }
+ else if( aProp.Name.equalsAscii("AspectRatio") )
+ {
+ aProp.Value >>= fAspectRatio;
+ }
+ }
+ }
+
+ if( rServiceName.equalsAscii("LinearGradient") )
+ {
+ return createLinearHorizontalGradient(rDevice, colorSequence, colorStops);
+ }
+ else if( rServiceName.equalsAscii("EllipticalGradient") )
+ {
+ return createEllipticalGradient(rDevice, colorSequence, colorStops, fAspectRatio);
+ }
+ else if( rServiceName.equalsAscii("RectangularGradient") )
+ {
+ return createRectangularGradient(rDevice, colorSequence, colorStops, fAspectRatio);
+ }
+ else if( rServiceName.equalsAscii("VerticalLineHatch") )
+ {
+ // TODO: NYI
+ }
+ else if( rServiceName.equalsAscii("OrthogonalLinesHatch") )
+ {
+ // TODO: NYI
+ }
+ else if( rServiceName.equalsAscii("ThreeCrossingLinesHatch") )
+ {
+ // TODO: NYI
+ }
+ else if( rServiceName.equalsAscii("FourCrossingLinesHatch") )
+ {
+ // TODO: NYI
+ }
+
+ return NULL;
}
- ParametricPolyPolygon* ParametricPolyPolygon::createAxialHorizontalGradient(
+ ParametricPolyPolygon* ParametricPolyPolygon::createLinearHorizontalGradient(
const uno::Reference< rendering::XGraphicDevice >& rDevice,
const uno::Sequence< uno::Sequence< double > >& colors,
const uno::Sequence< double >& stops )
{
// TODO(P2): hold gradient brush statically, and only setup
// the colors
- return new ParametricPolyPolygon( rDevice, GRADIENT_AXIAL, colors, stops );
- }
-
- namespace
- {
- double calcAspectRatio( const geometry::RealRectangle2D& rBoundRect )
- {
- const double nWidth( rBoundRect.X2 - rBoundRect.X1 );
- const double nHeight( rBoundRect.Y2 - rBoundRect.Y1 );
-
- return ::basegfx::fTools::equalZero( nHeight ) ? 1.0 : fabs( nWidth / nHeight );
- }
+ return new ParametricPolyPolygon( rDevice, GRADIENT_LINEAR, colors, stops );
}
ParametricPolyPolygon* ParametricPolyPolygon::createEllipticalGradient(
const uno::Reference< rendering::XGraphicDevice >& rDevice,
const uno::Sequence< uno::Sequence< double > >& colors,
const uno::Sequence< double >& stops,
- const geometry::RealRectangle2D& boundRect )
+ double fAspectRatio )
{
// TODO(P2): hold gradient polygon statically, and only setup
// the colors
return new ParametricPolyPolygon(
rDevice,
::basegfx::tools::createPolygonFromCircle(
- ::basegfx::B2DPoint( 0.5, 0.5), 0.5 ),
+ ::basegfx::B2DPoint(0,0), 1 ),
GRADIENT_ELLIPTICAL,
- colors, stops,
- calcAspectRatio( boundRect ) );
+ colors, stops, fAspectRatio );
}
ParametricPolyPolygon* ParametricPolyPolygon::createRectangularGradient( const uno::Reference< rendering::XGraphicDevice >& rDevice,
const uno::Sequence< uno::Sequence< double > >& colors,
const uno::Sequence< double >& stops,
- const geometry::RealRectangle2D& boundRect )
+ double fAspectRatio )
{
// TODO(P2): hold gradient polygon statically, and only setup
// the colors
return new ParametricPolyPolygon(
rDevice,
::basegfx::tools::createPolygonFromRect(
- ::basegfx::B2DRectangle( 0.0, 0.0, 1.0, 1.0 ) ),
+ ::basegfx::B2DRectangle( -1, -1, 1, 1 ) ),
GRADIENT_RECTANGULAR,
- colors, stops,
- calcAspectRatio( boundRect ) );
+ colors, stops, fAspectRatio );
}
void SAL_CALL ParametricPolyPolygon::disposing()
diff --git a/canvas/source/tools/verifyinput.cxx b/canvas/source/tools/verifyinput.cxx
index c2ee4ed968a0..42ab1c7aee19 100644
--- a/canvas/source/tools/verifyinput.cxx
+++ b/canvas/source/tools/verifyinput.cxx
@@ -426,7 +426,7 @@ namespace canvas
#endif
}
- if( texture.RepeatModeX < rendering::TexturingMode::CLAMP ||
+ if( texture.RepeatModeX < rendering::TexturingMode::NONE ||
texture.RepeatModeX > rendering::TexturingMode::REPEAT )
{
#if OSL_DEBUG_LEVEL > 0
@@ -442,7 +442,7 @@ namespace canvas
#endif
}
- if( texture.RepeatModeY < rendering::TexturingMode::CLAMP ||
+ if( texture.RepeatModeY < rendering::TexturingMode::NONE ||
texture.RepeatModeY > rendering::TexturingMode::REPEAT )
{
#if OSL_DEBUG_LEVEL > 0
diff --git a/canvas/source/vcl/canvas.hxx b/canvas/source/vcl/canvas.hxx
index f7667d8f2c19..adda8d8eea40 100644
--- a/canvas/source/vcl/canvas.hxx
+++ b/canvas/source/vcl/canvas.hxx
@@ -38,7 +38,6 @@
#include <com/sun/star/rendering/XIntegerBitmap.hpp>
#include <com/sun/star/rendering/XGraphicDevice.hpp>
#include <com/sun/star/rendering/XBufferController.hpp>
-#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
#include <cppuhelper/compbase7.hxx>
#include <comphelper/uno3.hxx>
@@ -60,7 +59,7 @@ namespace vclcanvas
typedef ::cppu::WeakComponentImplHelper7< ::com::sun::star::rendering::XBitmapCanvas,
::com::sun::star::rendering::XIntegerBitmap,
::com::sun::star::rendering::XGraphicDevice,
- ::com::sun::star::rendering::XParametricPolyPolygon2DFactory,
+ ::com::sun::star::lang::XMultiServiceFactory,
::com::sun::star::util::XUpdatable,
::com::sun::star::beans::XPropertySet,
::com::sun::star::lang::XServiceName > GraphicDeviceBase_Base;
diff --git a/canvas/source/vcl/canvashelper_texturefill.cxx b/canvas/source/vcl/canvashelper_texturefill.cxx
index 11350c0b4f9f..023ceb2b5005 100644..100755
--- a/canvas/source/vcl/canvashelper_texturefill.cxx
+++ b/canvas/source/vcl/canvashelper_texturefill.cxx
@@ -54,6 +54,8 @@
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <basegfx/polygon/b2dlinegeometry.hxx>
#include <basegfx/tools/tools.hxx>
+#include <basegfx/tools/lerp.hxx>
+#include <basegfx/tools/keystoplerp.hxx>
#include <basegfx/tools/canvastools.hxx>
#include <basegfx/numeric/ftools.hxx>
@@ -62,6 +64,9 @@
#include <canvas/canvastools.hxx>
#include <canvas/parametricpolypolygon.hxx>
+#include <boost/bind.hpp>
+#include <boost/tuple/tuple.hpp>
+
#include "spritecanvas.hxx"
#include "canvashelper.hxx"
#include "impltools.hxx"
@@ -115,17 +120,13 @@ namespace vclcanvas
Since most of the code for linear and axial gradients are
the same, we've a unified method here
*/
- void fillGeneralLinearGradient( OutputDevice& rOutDev,
- const ::basegfx::B2DHomMatrix& rTextureTransform,
- const ::Rectangle& rBounds,
- int nStepCount,
- const ::Color& rColor1,
- const ::Color& rColor2,
- bool bFillNonOverlapping,
- bool bAxialGradient )
+ void fillLinearGradient( OutputDevice& rOutDev,
+ const ::basegfx::B2DHomMatrix& rTextureTransform,
+ const ::Rectangle& rBounds,
+ unsigned int nStepCount,
+ const ::canvas::ParametricPolyPolygon::Values& rValues,
+ const std::vector< ::Color >& rColors )
{
- (void)bFillNonOverlapping;
-
// determine general position of gradient in relation to
// the bound rect
// =====================================================
@@ -204,36 +205,26 @@ namespace vclcanvas
// iteratively render all other strips
// -----------------------------------
- // ensure that nStepCount is odd, to have a well-defined
- // middle index for axial gradients.
- if( bAxialGradient && !(nStepCount % 2) )
+ // ensure that nStepCount matches color stop parity, to
+ // have a well-defined middle color e.g. for axial
+ // gradients.
+ if( (rColors.size() % 2) != (nStepCount % 2) )
++nStepCount;
- const int nStepCountHalved( nStepCount / 2 );
+ basegfx::tools::KeyStopLerp aLerper(rValues.maStops);
// only iterate nStepCount-1 steps, as the last strip is
// explicitely painted below
- for( int i=0; i<nStepCount-1; ++i )
+ for( unsigned int i=0; i<nStepCount-1; ++i )
{
- // lerp color
- if( bAxialGradient )
- {
- // axial gradient has a triangle-like interpolation function
- const int iPrime( i<=nStepCountHalved ? i : nStepCount-i-1);
+ std::ptrdiff_t nIndex;
+ double fAlpha;
+ boost::tuples::tie(nIndex,fAlpha)=aLerper.lerp(double(i)/nStepCount);
- rOutDev.SetFillColor(
- Color( (UINT8)(((nStepCountHalved - iPrime)*rColor1.GetRed() + iPrime*rColor2.GetRed())/nStepCountHalved),
- (UINT8)(((nStepCountHalved - iPrime)*rColor1.GetGreen() + iPrime*rColor2.GetGreen())/nStepCountHalved),
- (UINT8)(((nStepCountHalved - iPrime)*rColor1.GetBlue() + iPrime*rColor2.GetBlue())/nStepCountHalved) ) );
- }
- else
- {
- // linear gradient has a plain lerp between start and end color
- rOutDev.SetFillColor(
- Color( (UINT8)(((nStepCount - i)*rColor1.GetRed() + i*rColor2.GetRed())/nStepCount),
- (UINT8)(((nStepCount - i)*rColor1.GetGreen() + i*rColor2.GetGreen())/nStepCount),
- (UINT8)(((nStepCount - i)*rColor1.GetBlue() + i*rColor2.GetBlue())/nStepCount) ) );
- }
+ rOutDev.SetFillColor(
+ Color( (UINT8)(basegfx::tools::lerp(rColors[nIndex].GetRed(),rColors[nIndex+1].GetRed(),fAlpha)),
+ (UINT8)(basegfx::tools::lerp(rColors[nIndex].GetGreen(),rColors[nIndex+1].GetGreen(),fAlpha)),
+ (UINT8)(basegfx::tools::lerp(rColors[nIndex].GetBlue(),rColors[nIndex+1].GetBlue(),fAlpha)) ));
// copy right egde of polygon to left edge (and also
// copy the closing point)
@@ -280,59 +271,18 @@ namespace vclcanvas
aTempPoly[3] = ::Point( ::basegfx::fround( rPoint4.getX() ),
::basegfx::fround( rPoint4.getY() ) );
- if( bAxialGradient )
- rOutDev.SetFillColor( rColor1 );
- else
- rOutDev.SetFillColor( rColor2 );
+ rOutDev.SetFillColor( rColors.back() );
rOutDev.DrawPolygon( aTempPoly );
}
-
- inline void fillLinearGradient( OutputDevice& rOutDev,
- const ::Color& rColor1,
- const ::Color& rColor2,
- const ::basegfx::B2DHomMatrix& rTextureTransform,
- const ::Rectangle& rBounds,
- int nStepCount,
- bool bFillNonOverlapping )
- {
- fillGeneralLinearGradient( rOutDev,
- rTextureTransform,
- rBounds,
- nStepCount,
- rColor1,
- rColor2,
- bFillNonOverlapping,
- false );
- }
-
- inline void fillAxialGradient( OutputDevice& rOutDev,
- const ::Color& rColor1,
- const ::Color& rColor2,
- const ::basegfx::B2DHomMatrix& rTextureTransform,
- const ::Rectangle& rBounds,
- int nStepCount,
- bool bFillNonOverlapping )
- {
- fillGeneralLinearGradient( rOutDev,
- rTextureTransform,
- rBounds,
- nStepCount,
- rColor1,
- rColor2,
- bFillNonOverlapping,
- true );
- }
-
void fillPolygonalGradient( OutputDevice& rOutDev,
- const ::canvas::ParametricPolyPolygon::Values& rValues,
- const ::Color& rColor1,
- const ::Color& rColor2,
const ::basegfx::B2DHomMatrix& rTextureTransform,
const ::Rectangle& rBounds,
- int nStepCount,
- bool bFillNonOverlapping )
+ unsigned int nStepCount,
+ bool bFillNonOverlapping,
+ const ::canvas::ParametricPolyPolygon::Values& rValues,
+ const std::vector< ::Color >& rColors )
{
const ::basegfx::B2DPolygon& rGradientPoly( rValues.maGradientPoly );
@@ -366,9 +316,6 @@ namespace vclcanvas
// apply scaling (possibly anisotrophic) to inner polygon
// ------------------------------------------------------
- // move center of scaling to origin
- aInnerPolygonTransformMatrix.translate( -0.5, -0.5 );
-
// scale inner polygon according to aspect ratio: for
// wider-than-tall bounds (nAspectRatio > 1.0), the inner
// polygon, representing the gradient focus, must have
@@ -393,9 +340,6 @@ namespace vclcanvas
aInnerPolygonTransformMatrix.scale( 0.0, 0.0 );
}
- // move origin back to former center of polygon
- aInnerPolygonTransformMatrix.translate( 0.5, 0.5 );
-
// and finally, add texture transform to it.
aInnerPolygonTransformMatrix *= rTextureTransform;
@@ -403,8 +347,8 @@ namespace vclcanvas
aInnerPoly.transform( aInnerPolygonTransformMatrix );
- const sal_Int32 nNumPoints( aOuterPoly.count() );
- ::Polygon aTempPoly( static_cast<USHORT>(nNumPoints+1) );
+ const sal_uInt32 nNumPoints( aOuterPoly.count() );
+ ::Polygon aTempPoly( static_cast<USHORT>(nNumPoints+1) );
// increase number of steps by one: polygonal gradients have
// the outermost polygon rendered in rColor2, and the
@@ -422,37 +366,42 @@ namespace vclcanvas
// color).
++nStepCount;
+ basegfx::tools::KeyStopLerp aLerper(rValues.maStops);
+
if( !bFillNonOverlapping )
{
// fill background
- rOutDev.SetFillColor( rColor1 );
+ rOutDev.SetFillColor( rColors.front() );
rOutDev.DrawRect( rBounds );
// render polygon
// ==============
- for( int i=1,p; i<nStepCount; ++i )
+ for( unsigned int i=1,p; i<nStepCount; ++i )
{
+ const double fT( i/double(nStepCount) );
+
+ std::ptrdiff_t nIndex;
+ double fAlpha;
+ boost::tuples::tie(nIndex,fAlpha)=aLerper.lerp(fT);
+
// lerp color
rOutDev.SetFillColor(
- Color( (UINT8)(((nStepCount - i)*rColor1.GetRed() + i*rColor2.GetRed())/nStepCount),
- (UINT8)(((nStepCount - i)*rColor1.GetGreen() + i*rColor2.GetGreen())/nStepCount),
- (UINT8)(((nStepCount - i)*rColor1.GetBlue() + i*rColor2.GetBlue())/nStepCount) ) );
+ Color( (UINT8)(basegfx::tools::lerp(rColors[nIndex].GetRed(),rColors[nIndex+1].GetRed(),fAlpha)),
+ (UINT8)(basegfx::tools::lerp(rColors[nIndex].GetGreen(),rColors[nIndex+1].GetGreen(),fAlpha)),
+ (UINT8)(basegfx::tools::lerp(rColors[nIndex].GetBlue(),rColors[nIndex+1].GetBlue(),fAlpha)) ));
// scale and render polygon, by interpolating between
// outer and inner polygon.
- // calc interpolation parameter in [0,1] range
- const double nT( (nStepCount-i)/double(nStepCount) );
-
for( p=0; p<nNumPoints; ++p )
{
const ::basegfx::B2DPoint& rOuterPoint( aOuterPoly.getB2DPoint(p) );
const ::basegfx::B2DPoint& rInnerPoint( aInnerPoly.getB2DPoint(p) );
aTempPoly[(USHORT)p] = ::Point(
- basegfx::fround( (1.0-nT)*rInnerPoint.getX() + nT*rOuterPoint.getX() ),
- basegfx::fround( (1.0-nT)*rInnerPoint.getY() + nT*rOuterPoint.getY() ) );
+ basegfx::fround( fT*rInnerPoint.getX() + (1-fT)*rOuterPoint.getX() ),
+ basegfx::fround( fT*rInnerPoint.getY() + (1-fT)*rOuterPoint.getY() ) );
}
// close polygon explicitely
@@ -486,13 +435,19 @@ namespace vclcanvas
aTempPolyPoly.Insert( aTempPoly );
aTempPolyPoly.Insert( aTempPoly2 );
- for( int i=0,p; i<nStepCount; ++i )
+ for( unsigned int i=0,p; i<nStepCount; ++i )
{
+ const double fT( (i+1)/double(nStepCount) );
+
+ std::ptrdiff_t nIndex;
+ double fAlpha;
+ boost::tuples::tie(nIndex,fAlpha)=aLerper.lerp(fT);
+
// lerp color
rOutDev.SetFillColor(
- Color( (UINT8)(((nStepCount - i)*rColor1.GetRed() + i*rColor2.GetRed())/nStepCount),
- (UINT8)(((nStepCount - i)*rColor1.GetGreen() + i*rColor2.GetGreen())/nStepCount),
- (UINT8)(((nStepCount - i)*rColor1.GetBlue() + i*rColor2.GetBlue())/nStepCount) ) );
+ Color( (UINT8)(basegfx::tools::lerp(rColors[nIndex].GetRed(),rColors[nIndex+1].GetRed(),fAlpha)),
+ (UINT8)(basegfx::tools::lerp(rColors[nIndex].GetGreen(),rColors[nIndex+1].GetGreen(),fAlpha)),
+ (UINT8)(basegfx::tools::lerp(rColors[nIndex].GetBlue(),rColors[nIndex+1].GetBlue(),fAlpha)) ));
#if defined(VERBOSE) && OSL_DEBUG_LEVEL > 0
if( i && !(i % 10) )
@@ -503,17 +458,14 @@ namespace vclcanvas
// calculate the inner polygon, which is actually the
// start of the _next_ color strip. Thus, i+1
- // calc interpolation parameter in [0,1] range
- const double nT( (nStepCount-i-1)/double(nStepCount) );
-
for( p=0; p<nNumPoints; ++p )
{
const ::basegfx::B2DPoint& rOuterPoint( aOuterPoly.getB2DPoint(p) );
const ::basegfx::B2DPoint& rInnerPoint( aInnerPoly.getB2DPoint(p) );
aTempPoly[(USHORT)p] = ::Point(
- basegfx::fround( (1.0-nT)*rInnerPoint.getX() + nT*rOuterPoint.getX() ),
- basegfx::fround( (1.0-nT)*rInnerPoint.getY() + nT*rOuterPoint.getY() ) );
+ basegfx::fround( fT*rInnerPoint.getX() + (1-fT)*rOuterPoint.getX() ),
+ basegfx::fround( fT*rInnerPoint.getY() + (1-fT)*rOuterPoint.getY() ) );
}
// close polygon explicitely
@@ -546,46 +498,33 @@ namespace vclcanvas
void doGradientFill( OutputDevice& rOutDev,
const ::canvas::ParametricPolyPolygon::Values& rValues,
- const ::Color& rColor1,
- const ::Color& rColor2,
+ const std::vector< ::Color >& rColors,
const ::basegfx::B2DHomMatrix& rTextureTransform,
const ::Rectangle& rBounds,
- int nStepCount,
+ unsigned int nStepCount,
bool bFillNonOverlapping )
{
switch( rValues.meType )
{
case ::canvas::ParametricPolyPolygon::GRADIENT_LINEAR:
fillLinearGradient( rOutDev,
- rColor1,
- rColor2,
rTextureTransform,
rBounds,
nStepCount,
- bFillNonOverlapping );
- break;
-
- case ::canvas::ParametricPolyPolygon::GRADIENT_AXIAL:
- fillAxialGradient( rOutDev,
- rColor1,
- rColor2,
- rTextureTransform,
- rBounds,
- nStepCount,
- bFillNonOverlapping );
+ rValues,
+ rColors );
break;
case ::canvas::ParametricPolyPolygon::GRADIENT_ELLIPTICAL:
// FALLTHROUGH intended
case ::canvas::ParametricPolyPolygon::GRADIENT_RECTANGULAR:
fillPolygonalGradient( rOutDev,
- rValues,
- rColor1,
- rColor2,
rTextureTransform,
rBounds,
nStepCount,
- bFillNonOverlapping );
+ bFillNonOverlapping,
+ rValues,
+ rColors );
break;
default:
@@ -594,11 +533,19 @@ namespace vclcanvas
}
}
+ int numColorSteps( const ::Color& rColor1, const ::Color& rColor2 )
+ {
+ return ::std::max(
+ labs( rColor1.GetRed() - rColor2.GetRed() ),
+ ::std::max(
+ labs( rColor1.GetGreen() - rColor2.GetGreen() ),
+ labs( rColor1.GetBlue() - rColor2.GetBlue() ) ) );
+ }
+
bool gradientFill( OutputDevice& rOutDev,
OutputDevice* p2ndOutDev,
const ::canvas::ParametricPolyPolygon::Values& rValues,
- const ::Color& rColor1,
- const ::Color& rColor2,
+ const std::vector< ::Color >& rColors,
const PolyPolygon& rPoly,
const rendering::ViewState& viewState,
const rendering::RenderState& renderState,
@@ -612,65 +559,27 @@ namespace vclcanvas
// deadlocks, canvashelper calls this method with locked own
// mutex.
- // calculate overall texture transformation (directly from
- // texture to device space).
- ::basegfx::B2DHomMatrix aMatrix;
- ::basegfx::B2DHomMatrix aTextureTransform;
-
- ::basegfx::unotools::homMatrixFromAffineMatrix( aTextureTransform,
- texture.AffineTransform );
- ::canvas::tools::mergeViewAndRenderTransform(aMatrix,
- viewState,
- renderState);
- aTextureTransform *= aMatrix; // prepend total view/render transformation
-
- // determine maximal bound rect of gradient-filled polygon
- const ::Rectangle aPolygonDeviceRectOrig(
- rPoly.GetBoundRect() );
-
- // determine size of gradient in device coordinate system
- // (to e.g. determine sensible number of gradient steps)
- ::basegfx::B2DPoint aLeftTop( 0.0, 0.0 );
- ::basegfx::B2DPoint aLeftBottom( 0.0, 1.0 );
- ::basegfx::B2DPoint aRightTop( 1.0, 0.0 );
- ::basegfx::B2DPoint aRightBottom( 1.0, 1.0 );
-
- aLeftTop *= aTextureTransform;
- aLeftBottom *= aTextureTransform;
- aRightTop *= aTextureTransform;
- aRightBottom*= aTextureTransform;
-
-
// calc step size
// --------------
- const int nColorSteps(
- ::std::max(
- labs( rColor1.GetRed() - rColor2.GetRed() ),
- ::std::max(
- labs( rColor1.GetGreen() - rColor2.GetGreen() ),
- labs( rColor1.GetBlue() - rColor2.GetBlue() ) ) ) );
-
- // longest line in gradient bound rect
- const int nGradientSize(
- static_cast<int>(
- ::std::max(
- ::basegfx::B2DVector(aRightBottom-aLeftTop).getLength(),
- ::basegfx::B2DVector(aRightTop-aLeftBottom).getLength() ) + 1.0 ) );
-
- // typical number for pixel of the same color (strip size)
- const int nStripSize( nGradientSize < 50 ? 2 : 4 );
-
- // use at least three steps, and at utmost the number of color
- // steps
- const int nStepCount(
- ::std::max(
- 3,
- ::std::min(
- nGradientSize / nStripSize,
- nColorSteps ) ) );
+ int nColorSteps = 0;
+ for( size_t i=0; i<rColors.size()-1; ++i )
+ nColorSteps += numColorSteps(rColors[i],rColors[i+1]);
+
+ ::basegfx::B2DHomMatrix aTotalTransform;
+ const int nStepCount=
+ ::canvas::tools::calcGradientStepCount(aTotalTransform,
+ viewState,
+ renderState,
+ texture,
+ nColorSteps);
rOutDev.SetLineColor();
+ // determine maximal bound rect of texture-filled
+ // polygon
+ const ::Rectangle aPolygonDeviceRectOrig(
+ rPoly.GetBoundRect() );
+
if( tools::isRectangle( rPoly ) )
{
// use optimized output path
@@ -687,9 +596,8 @@ namespace vclcanvas
rOutDev.IntersectClipRegion( aPolygonDeviceRectOrig );
doGradientFill( rOutDev,
rValues,
- rColor1,
- rColor2,
- aTextureTransform,
+ rColors,
+ aTotalTransform,
aPolygonDeviceRectOrig,
nStepCount,
false );
@@ -701,9 +609,8 @@ namespace vclcanvas
p2ndOutDev->IntersectClipRegion( aPolygonDeviceRectOrig );
doGradientFill( *p2ndOutDev,
rValues,
- rColor1,
- rColor2,
- aTextureTransform,
+ rColors,
+ aTotalTransform,
aPolygonDeviceRectOrig,
nStepCount,
false );
@@ -720,9 +627,8 @@ namespace vclcanvas
doGradientFill( rOutDev,
rValues,
- rColor1,
- rColor2,
- aTextureTransform,
+ rColors,
+ aTotalTransform,
aPolygonDeviceRectOrig,
nStepCount,
false );
@@ -734,9 +640,8 @@ namespace vclcanvas
p2ndOutDev->SetClipRegion( aPolyClipRegion );
doGradientFill( *p2ndOutDev,
rValues,
- rColor1,
- rColor2,
- aTextureTransform,
+ rColors,
+ aTotalTransform,
aPolygonDeviceRectOrig,
nStepCount,
false );
@@ -750,9 +655,8 @@ namespace vclcanvas
rOutDev.SetRasterOp( ROP_XOR );
doGradientFill( rOutDev,
rValues,
- rColor1,
- rColor2,
- aTextureTransform,
+ rColors,
+ aTotalTransform,
aPolygonDeviceRectOrig,
nStepCount,
true );
@@ -762,9 +666,8 @@ namespace vclcanvas
rOutDev.SetRasterOp( ROP_XOR );
doGradientFill( rOutDev,
rValues,
- rColor1,
- rColor2,
- aTextureTransform,
+ rColors,
+ aTotalTransform,
aPolygonDeviceRectOrig,
nStepCount,
true );
@@ -776,9 +679,8 @@ namespace vclcanvas
p2ndOutDev->SetRasterOp( ROP_XOR );
doGradientFill( *p2ndOutDev,
rValues,
- rColor1,
- rColor2,
- aTextureTransform,
+ rColors,
+ aTotalTransform,
aPolygonDeviceRectOrig,
nStepCount,
true );
@@ -788,9 +690,8 @@ namespace vclcanvas
p2ndOutDev->SetRasterOp( ROP_XOR );
doGradientFill( *p2ndOutDev,
rValues,
- rColor1,
- rColor2,
- aTextureTransform,
+ rColors,
+ aTotalTransform,
aPolygonDeviceRectOrig,
nStepCount,
true );
@@ -852,33 +753,41 @@ namespace vclcanvas
::canvas::ParametricPolyPolygon* pGradient =
dynamic_cast< ::canvas::ParametricPolyPolygon* >( textures[0].Gradient.get() );
- if( pGradient )
+ if( pGradient && pGradient->getValues().maColors.getLength() )
{
// copy state from Gradient polypoly locally
// (given object might change!)
const ::canvas::ParametricPolyPolygon::Values& rValues(
pGradient->getValues() );
- // TODO: use all the colors and place them on given positions/stops
- const ::Color aColor1(
- ::vcl::unotools::stdColorSpaceSequenceToColor(
- rValues.maColors [0] ) );
- const ::Color aColor2(
- ::vcl::unotools::stdColorSpaceSequenceToColor(
- rValues.maColors [rValues.maColors.getLength () - 1] ) );
-
- // TODO(E1): Return value
- // TODO(F1): FillRule
- gradientFill( mpOutDev->getOutDev(),
- mp2ndOutDev.get() ? &mp2ndOutDev->getOutDev() : (OutputDevice*)NULL,
- rValues,
- aColor1,
- aColor2,
- aPolyPoly,
- viewState,
- renderState,
- textures[0],
- nTransparency );
+ if( rValues.maColors.getLength() < 2 )
+ {
+ rendering::RenderState aTempState=renderState;
+ aTempState.DeviceColor = rValues.maColors[0];
+ fillPolyPolygon(pCanvas, xPolyPolygon, viewState, aTempState);
+ }
+ else
+ {
+ std::vector< ::Color > aColors(rValues.maColors.getLength());
+ std::transform(&rValues.maColors[0],
+ &rValues.maColors[0]+rValues.maColors.getLength(),
+ aColors.begin(),
+ boost::bind(
+ &vcl::unotools::stdColorSpaceSequenceToColor,
+ _1));
+
+ // TODO(E1): Return value
+ // TODO(F1): FillRule
+ gradientFill( mpOutDev->getOutDev(),
+ mp2ndOutDev.get() ? &mp2ndOutDev->getOutDev() : (OutputDevice*)NULL,
+ rValues,
+ aColors,
+ aPolyPoly,
+ viewState,
+ renderState,
+ textures[0],
+ nTransparency );
+ }
}
else
{
@@ -889,10 +798,6 @@ namespace vclcanvas
}
else if( textures[0].Bitmap.is() )
{
-// OSL_ENSURE( textures[0].RepeatModeX == rendering::TexturingMode::REPEAT &&
-// textures[0].RepeatModeY == rendering::TexturingMode::REPEAT,
-// "CanvasHelper::fillTexturedPolyPolygon(): VCL canvas cannot currently clamp textures." );
-
const geometry::IntegerSize2D aBmpSize( textures[0].Bitmap->getSize() );
ENSURE_ARG_OR_THROW( aBmpSize.Width != 0 &&
@@ -967,23 +872,6 @@ namespace vclcanvas
aLocalState );
}
}
- else if ( textures[0].RepeatModeX == rendering::TexturingMode::CLAMP &&
- textures[0].RepeatModeY == rendering::TexturingMode::CLAMP )
- {
- rendering::RenderState aLocalState( renderState );
- ::canvas::tools::appendToRenderState(aLocalState,
- aTextureTransform);
- ::basegfx::B2DHomMatrix aScaleCorrection;
- aScaleCorrection.scale( 1.0/aBmpSize.Width,
- 1.0/aBmpSize.Height );
- ::canvas::tools::appendToRenderState(aLocalState,
- aScaleCorrection);
-
- return drawBitmap( pCanvas,
- textures[0].Bitmap,
- viewState,
- aLocalState );
- }
else
{
// No easy mapping to drawBitmap() - calculate
@@ -1117,15 +1005,21 @@ namespace vclcanvas
aSingleTextureRect,
aPureTotalTransform );
- const ::Point aPt( ::vcl::unotools::pointFromB2DPoint(
- aSingleDeviceTextureRect.getMinimum() ) );
+ const ::Point aPtRepeat( ::vcl::unotools::pointFromB2DPoint(
+ aSingleDeviceTextureRect.getMinimum() ) );
const ::Size aSz( ::basegfx::fround( aScale.getX() * aBmpSize.Width ),
::basegfx::fround( aScale.getY() * aBmpSize.Height ) );
const ::Size aIntegerNextTileX( ::vcl::unotools::sizeFromB2DSize(aNextTileX) );
const ::Size aIntegerNextTileY( ::vcl::unotools::sizeFromB2DSize(aNextTileY) );
- const sal_Int32 nTilesX( nX2 - nX1 );
- const sal_Int32 nTilesY( nY2 - nY1 );
+ const ::Point aPt( textures[0].RepeatModeX == rendering::TexturingMode::NONE ?
+ ::basegfx::fround( aOutputPos.getX() ) : aPtRepeat.X(),
+ textures[0].RepeatModeY == rendering::TexturingMode::NONE ?
+ ::basegfx::fround( aOutputPos.getY() ) : aPtRepeat.Y() );
+ const sal_Int32 nTilesX( textures[0].RepeatModeX == rendering::TexturingMode::NONE ?
+ 1 : nX2 - nX1 );
+ const sal_Int32 nTilesY( textures[0].RepeatModeX == rendering::TexturingMode::NONE ?
+ 1 : nY2 - nY1 );
OutputDevice& rOutDev( mpOutDev->getOutDev() );
@@ -1206,20 +1100,9 @@ namespace vclcanvas
aPolyPoly.Translate( ::Point( -aPolygonDeviceRect.Left(),
-aPolygonDeviceRect.Top() ) );
- aVDev.SetRasterOp( ROP_XOR );
- textureFill( aVDev,
- *pGrfObj,
- aOutPos,
- aIntegerNextTileX,
- aIntegerNextTileY,
- nTilesX,
- nTilesY,
- aSz,
- aGrfAttr );
- aVDev.SetFillColor( COL_BLACK );
- aVDev.SetRasterOp( ROP_0 );
- aVDev.DrawPolyPolygon( aPolyPoly );
- aVDev.SetRasterOp( ROP_XOR );
+ const Region aPolyClipRegion( aPolyPoly );
+
+ aVDev.SetClipRegion( aPolyClipRegion );
textureFill( aVDev,
*pGrfObj,
aOutPos,
@@ -1251,7 +1134,6 @@ namespace vclcanvas
aOutputBmpEx );
}
else
-#if defined(QUARTZ) // TODO: other ports should avoid the XOR-trick too (implementation vs. interface!)
{
const Region aPolyClipRegion( aPolyPoly );
@@ -1287,66 +1169,6 @@ namespace vclcanvas
r2ndOutDev.Pop();
}
}
-#else // TODO: remove once doing the XOR-trick in the canvas-layer becomes redundant
- {
- // output via repeated XORing
- rOutDev.Push( PUSH_RASTEROP );
- rOutDev.SetRasterOp( ROP_XOR );
- textureFill( rOutDev,
- *pGrfObj,
- aPt,
- aIntegerNextTileX,
- aIntegerNextTileY,
- nTilesX,
- nTilesY,
- aSz,
- aGrfAttr );
- rOutDev.SetFillColor( COL_BLACK );
- rOutDev.SetRasterOp( ROP_0 );
- rOutDev.DrawPolyPolygon( aPolyPoly );
- rOutDev.SetRasterOp( ROP_XOR );
- textureFill( rOutDev,
- *pGrfObj,
- aPt,
- aIntegerNextTileX,
- aIntegerNextTileY,
- nTilesX,
- nTilesY,
- aSz,
- aGrfAttr );
- rOutDev.Pop();
-
- if( mp2ndOutDev )
- {
- OutputDevice& r2ndOutDev( mp2ndOutDev->getOutDev() );
- r2ndOutDev.Push( PUSH_RASTEROP );
- r2ndOutDev.SetRasterOp( ROP_XOR );
- textureFill( r2ndOutDev,
- *pGrfObj,
- aPt,
- aIntegerNextTileX,
- aIntegerNextTileY,
- nTilesX,
- nTilesY,
- aSz,
- aGrfAttr );
- r2ndOutDev.SetFillColor( COL_BLACK );
- r2ndOutDev.SetRasterOp( ROP_0 );
- r2ndOutDev.DrawPolyPolygon( aPolyPoly );
- r2ndOutDev.SetRasterOp( ROP_XOR );
- textureFill( r2ndOutDev,
- *pGrfObj,
- aPt,
- aIntegerNextTileX,
- aIntegerNextTileY,
- nTilesX,
- nTilesY,
- aSz,
- aGrfAttr );
- r2ndOutDev.Pop();
- }
- }
-#endif // complex-clipping vs. XOR-trick
}
}
}
diff --git a/canvas/source/vcl/exports.map b/canvas/source/vcl/exports.map
deleted file mode 100644
index 4101b0d761a9..000000000000
--- a/canvas/source/vcl/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-CAN_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/canvas/source/vcl/makefile.mk b/canvas/source/vcl/makefile.mk
index 21eed478123a..be2fc69894a4 100644
--- a/canvas/source/vcl/makefile.mk
+++ b/canvas/source/vcl/makefile.mk
@@ -75,7 +75,7 @@ SHL1IMPLIB=i$(TARGET)
SHL1LIBS=$(SLB)$/$(TARGET).lib
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
DEF1EXPORTFILE=exports.dxp
diff --git a/canvas/source/vcl/spritecanvas.hxx b/canvas/source/vcl/spritecanvas.hxx
index a5d4a6fe1e10..db4b05ddb9b2 100644
--- a/canvas/source/vcl/spritecanvas.hxx
+++ b/canvas/source/vcl/spritecanvas.hxx
@@ -39,7 +39,6 @@
#include <com/sun/star/rendering/XIntegerBitmap.hpp>
#include <com/sun/star/rendering/XGraphicDevice.hpp>
#include <com/sun/star/rendering/XBufferController.hpp>
-#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
#include <cppuhelper/compbase9.hxx>
#include <comphelper/uno3.hxx>
@@ -62,7 +61,7 @@ namespace vclcanvas
typedef ::cppu::WeakComponentImplHelper9< ::com::sun::star::rendering::XSpriteCanvas,
::com::sun::star::rendering::XIntegerBitmap,
::com::sun::star::rendering::XGraphicDevice,
- ::com::sun::star::rendering::XParametricPolyPolygon2DFactory,
+ ::com::sun::star::lang::XMultiServiceFactory,
::com::sun::star::rendering::XBufferController,
::com::sun::star::awt::XWindowListener,
::com::sun::star::util::XUpdatable,
diff --git a/chart2/prj/build.lst b/chart2/prj/build.lst
index 3cdc9a26e3f5..370eacebe0c2 100644
--- a/chart2/prj/build.lst
+++ b/chart2/prj/build.lst
@@ -24,3 +24,4 @@ ch chart2\source\controller\chartapiwrapper nmake - all ch_source_controlle
ch chart2\source\controller\main nmake - all ch_source_controller_main ch_inc NULL
ch chart2\source\controller\menus nmake - all ch_source_controller_menus ch_inc NULL
ch chart2\prj get - all ch_prj NULL
+ch chart2\qa\unoapi nmake - all ch_qa_unoapi NULL
diff --git a/chart2/qa/unoapi/Test.java b/chart2/qa/unoapi/Test.java
new file mode 100644
index 000000000000..c1b6fd05983d
--- /dev/null
+++ b/chart2/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.chart2.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "sch.sce", "-xcl", "knownissues.xcl", "-tdoc",
+ "testdocuments", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/chart2/qa/unoapi/makefile.mk b/chart2/qa/unoapi/makefile.mk
index 517327aab0bf..de494ead5449 100644
--- a/chart2/qa/unoapi/makefile.mk
+++ b/chart2/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,21 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJ=..$/..
+PRJ = ../..
+PRJNAME = chart2
+TARGET = qa_unoapi
-PRJNAME=sch
-TARGET=qa_unoapi
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/chart2/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
.INCLUDE: settings.mk
-
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce sch.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
+.END
diff --git a/chart2/source/controller/controller.map b/chart2/source/controller/controller.map
deleted file mode 100644
index ac2c3750bfe0..000000000000
--- a/chart2/source/controller/controller.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/chart2/source/controller/makefile.mk b/chart2/source/controller/makefile.mk
index 8fdd6000fbe1..b8a256181045 100644
--- a/chart2/source/controller/makefile.mk
+++ b/chart2/source/controller/makefile.mk
@@ -100,7 +100,7 @@ SHL1STDLIBS= $(CHARTTOOLS) \
#specifies the exported symbols for Windows only:
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP = controller.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
#--------definition file
diff --git a/chart2/source/model/makefile.mk b/chart2/source/model/makefile.mk
index 701f47fb94b5..dfb5522a7879 100644
--- a/chart2/source/model/makefile.mk
+++ b/chart2/source/model/makefile.mk
@@ -86,7 +86,7 @@ SHL1STDLIBS= $(CHARTTOOLS) \
#specifies the exported symbols for Windows only:
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP = model.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
#--------definition file
diff --git a/chart2/source/model/model.map b/chart2/source/model/model.map
deleted file mode 100644
index 07b1790d5754..000000000000
--- a/chart2/source/model/model.map
+++ /dev/null
@@ -1,8 +0,0 @@
-CHART_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/chart2/source/tools/tools.map b/chart2/source/tools/tools.map
deleted file mode 100644
index 07b1790d5754..000000000000
--- a/chart2/source/tools/tools.map
+++ /dev/null
@@ -1,8 +0,0 @@
-CHART_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/chart2/source/view/view.map b/chart2/source/view/view.map
deleted file mode 100644
index d86ffaa9bdd4..000000000000
--- a/chart2/source/view/view.map
+++ /dev/null
@@ -1,9 +0,0 @@
-CHART_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
-
- local:
- *;
-};
diff --git a/cli_ure/source/basetypes/makefile.mk b/cli_ure/source/basetypes/makefile.mk
index 83269c4193a3..5547c32de0df 100644
--- a/cli_ure/source/basetypes/makefile.mk
+++ b/cli_ure/source/basetypes/makefile.mk
@@ -37,13 +37,6 @@ TARGET = basetypes
.INCLUDE : $(PRJ)$/util$/target.pmk
.INCLUDE : target.mk
-
-.IF "$(USE_SHELL)"!="4nt"
-ECHOQUOTE='
-.ELSE
-ECHOQUOTE=
-.ENDIF
-
.IF "$(BUILD_FOR_CLI)" != ""
.INCLUDE : $(BIN)$/cliureversion.mk
@@ -73,15 +66,15 @@ CSFILES = \
.IF "$(CCNUMVER)" <= "001399999999"
$(ASSEMBLY_ATTRIBUTES) : assembly.cs makefile.mk $(BIN)$/cliuno.snk $(BIN)$/cliureversion.mk
$(GNUCOPY) -p assembly.cs $@
- echo $(ECHOQUOTE) \
- [assembly:System.Reflection.AssemblyVersion( "$(CLI_BASETYPES_NEW_VERSION)")] \
- [assembly:System.Reflection.AssemblyKeyFile(@"$(BIN)$/cliuno.snk")]$(ECHOQUOTE) \
+ echo \
+ '[assembly:System.Reflection.AssemblyVersion( "$(CLI_BASETYPES_NEW_VERSION)")] \
+ [assembly:System.Reflection.AssemblyKeyFile(@"$(BIN)$/cliuno.snk")]' \
>> $@
.ELSE
$(ASSEMBLY_ATTRIBUTES) : assembly.cs makefile.mk $(BIN)$/cliuno.snk $(BIN)$/cliureversion.mk
$(GNUCOPY) -p assembly.cs $@
- echo $(ECHOQUOTE) \
- [assembly:System.Reflection.AssemblyVersion( "$(CLI_BASETYPES_NEW_VERSION)")]$(ECHOQUOTE) \
+ echo \
+ '[assembly:System.Reflection.AssemblyVersion( "$(CLI_BASETYPES_NEW_VERSION)")]' \
>> $@
.ENDIF
diff --git a/cli_ure/source/climaker/makefile.mk b/cli_ure/source/climaker/makefile.mk
index 8bea8f5c60e7..b001a1545fae 100644
--- a/cli_ure/source/climaker/makefile.mk
+++ b/cli_ure/source/climaker/makefile.mk
@@ -122,9 +122,7 @@ ALLTAR: \
#Create the config file that is used with the policy assembly
$(CLIMAKER_CONFIG): climaker.exe.config
$(COPY) $< $@
-.IF "$(USE_SHELL)"!="4nt"
chmod +x $@
-.ENDIF # "$(USE_SHELL)"!="4nt"
.IF "$(BUILD_FOR_CLI)" != ""
diff --git a/cli_ure/source/native/makefile.mk b/cli_ure/source/native/makefile.mk
index 333884bcdf73..2c8be1a9b5b9 100644
--- a/cli_ure/source/native/makefile.mk
+++ b/cli_ure/source/native/makefile.mk
@@ -45,13 +45,6 @@ CCACHE_DISABLE=TRUE
use_shl_versions=
-.IF "$(USE_SHELL)"!="4nt"
-ECHOQUOTE='
-.ELSE
-ECHOQUOTE=
-.ENDIF
-
-
.IF "$(BUILD_FOR_CLI)" == ""
#do not even build the cxx files because they contain cli cpp
all:
@@ -143,11 +136,11 @@ CFLAGSCXX += -clr:oldSyntax
$(ASSEMBLY_ATTRIBUTES) : assembly.cxx $(BIN)$/cliuno.snk $(BIN)$/cliureversion.mk
@echo $(ASSEMBLY_KEY_X)
$(GNUCOPY) -p assembly.cxx $@
- echo $(ECHOQUOTE) \
- [assembly:System::Reflection::AssemblyVersion( "$(CLI_CPPUHELPER_NEW_VERSION)" )]; $(ECHOQUOTE) \
+ echo \
+ '[assembly:System::Reflection::AssemblyVersion( "$(CLI_CPPUHELPER_NEW_VERSION)" )];' \
>> $(OUT)$/misc$/assembly_cppuhelper.cxx
- echo $(ECHOQUOTE) \
- [assembly:System::Reflection::AssemblyKeyFile($(ASSEMBLY_KEY_X))]; $(ECHOQUOTE) \
+ echo \
+ '[assembly:System::Reflection::AssemblyKeyFile($(ASSEMBLY_KEY_X))];' \
>> $(OUT)$/misc$/assembly_cppuhelper.cxx
diff --git a/cli_ure/source/native/msvc.map b/cli_ure/source/native/msvc.map
index 2fba6b6d3e7e..429f750cc2b0 100644
--- a/cli_ure/source/native/msvc.map
+++ b/cli_ure/source/native/msvc.map
@@ -1,4 +1,4 @@
-UDK_3.1 {
+UDK_3_0_0 {
global:
local:
diff --git a/cli_ure/source/ure/makefile.mk b/cli_ure/source/ure/makefile.mk
index 29e9c7770a8c..3e0290888cc5 100644
--- a/cli_ure/source/ure/makefile.mk
+++ b/cli_ure/source/ure/makefile.mk
@@ -37,13 +37,6 @@ TARGET = ure
.INCLUDE : $(PRJ)$/util$/target.pmk
.INCLUDE : target.mk
-
-.IF "$(USE_SHELL)"!="4nt"
-ECHOQUOTE='
-.ELSE
-ECHOQUOTE=
-.ENDIF
-
.IF "$(BUILD_FOR_CLI)" != ""
.INCLUDE : $(BIN)$/cliureversion.mk
@@ -69,15 +62,15 @@ CSFILES = \
.IF "$(CCNUMVER)" <= "001399999999"
$(ASSEMBLY_ATTRIBUTES) : assembly.cs makefile.mk $(BIN)$/cliuno.snk $(BIN)$/cliureversion.mk
$(GNUCOPY) -p assembly.cs $@
- echo $(ECHOQUOTE) \
- [assembly:System.Reflection.AssemblyVersion( "$(CLI_URE_NEW_VERSION)")] \
- [assembly:System.Reflection.AssemblyKeyFile(@"$(BIN)$/cliuno.snk")]$(ECHOQUOTE) \
+ echo \
+ '[assembly:System.Reflection.AssemblyVersion( "$(CLI_URE_NEW_VERSION)")] \
+ [assembly:System.Reflection.AssemblyKeyFile(@"$(BIN)$/cliuno.snk")]' \
>> $@
.ELSE
$(ASSEMBLY_ATTRIBUTES) : assembly.cs makefile.mk $(BIN)$/cliuno.snk $(BIN)$/cliureversion.mk
$(GNUCOPY) -p assembly.cs $@
- echo $(ECHOQUOTE) \
- [assembly:System.Reflection.AssemblyVersion( "$(CLI_URE_NEW_VERSION)")]$(ECHOQUOTE) \
+ echo \
+ '[assembly:System.Reflection.AssemblyVersion( "$(CLI_URE_NEW_VERSION)")]' \
>> $@
.ENDIF
diff --git a/cli_ure/version/makefile.mk b/cli_ure/version/makefile.mk
index e71a63746e54..2b5913100be4 100644
--- a/cli_ure/version/makefile.mk
+++ b/cli_ure/version/makefile.mk
@@ -37,15 +37,6 @@ TARGET = cliureversion.mk
.INCLUDE : $(PRJ)$/util$/target.pmk
.INCLUDE : target.mk
-
-.IF "$(USE_SHELL)"!="4nt"
-ECHOQUOTE='
-.ELSE
-ECHOQUOTE=
-.ENDIF
-
-
-
ALLTAR : \
$(BIN)$/cliureversion.mk
diff --git a/codemaker/test/cppumaker/makefile.mk b/codemaker/test/cppumaker/makefile.mk
index 3aa9dc65d90c..964ae166cdf5 100644
--- a/codemaker/test/cppumaker/makefile.mk
+++ b/codemaker/test/cppumaker/makefile.mk
@@ -33,6 +33,8 @@ ENABLE_EXCEPTIONS := TRUE
.INCLUDE: settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
DLLPRE = # no leading "lib" on .so files
INCPRE += $(MISC)$/$(TARGET)$/inc
diff --git a/comphelper/qa/makefile.mk b/comphelper/qa/makefile.mk
index 6e715675bb03..0360d308529e 100644
--- a/comphelper/qa/makefile.mk
+++ b/comphelper/qa/makefile.mk
@@ -33,6 +33,8 @@ ENABLE_EXCEPTIONS := TRUE
.INCLUDE: settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
DLLPRE = # no leading "lib" on .so files
INCPRE += $(MISC)$/$(TARGET)$/inc
diff --git a/configmgr/prj/build.lst b/configmgr/prj/build.lst
index 2fd4e03fa442..9fcccbc73b4c 100644
--- a/configmgr/prj/build.lst
+++ b/configmgr/prj/build.lst
@@ -1,3 +1,4 @@
cg configmgr : BOOST:boost comphelper cppu cppuhelper offuh sal salhelper stlport NULL
cg configmgr\inc nmake - all cg_inc NULL
cg configmgr\source nmake - all cg_source cg_inc NULL
+cg configmgr\qa\unoapi nmake - all cg_qa_unoapi NULL
diff --git a/configmgr/qa/unit/makefile.mk b/configmgr/qa/unit/makefile.mk
index 916c40ffedf5..25035d7e9dda 100644
--- a/configmgr/qa/unit/makefile.mk
+++ b/configmgr/qa/unit/makefile.mk
@@ -33,6 +33,8 @@ ENABLE_EXCEPTIONS = TRUE
.INCLUDE: settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
SLOFILES = $(SLO)/test.obj
SHL1OBJS = $(SLOFILES)
diff --git a/configmgr/qa/unoapi/Test.java b/configmgr/qa/unoapi/Test.java
new file mode 100644
index 000000000000..4d1f5a3c4be7
--- /dev/null
+++ b/configmgr/qa/unoapi/Test.java
@@ -0,0 +1,50 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.configmgr.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "module.sce", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/configmgr/qa/unoapi/makefile.mk b/configmgr/qa/unoapi/makefile.mk
index 5af6b0729660..252e4a0d9af4 100644
--- a/configmgr/qa/unoapi/makefile.mk
+++ b/configmgr/qa/unoapi/makefile.mk
@@ -25,14 +25,26 @@
#
#***********************************************************************/
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
+
PRJ = ../..
PRJNAME = configmgr
-TARGET = unoapi
+TARGET = qa_unoapi
+
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/configmgr/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR: TEST
+ALLTAR : javatest
-TEST .PHONY:
- $(SOLARENV)/bin/checkapi -sce module.sce
+.END
diff --git a/configure.in b/configure.in
index d3e5a0757435..91ff5806fbe5 100644
--- a/configure.in
+++ b/configure.in
@@ -35,6 +35,13 @@ AC_ARG_ENABLE(ldap,
[ --disable-ldap Disables the use of LDAP backend via Netscape/Mozilla
or OpenLDAP LDAP SDK
],,)
+AC_ARG_ENABLE(fetch-external,
+[ --disable-fetch-external Disables fetching external tarballs from web sources.
+],,)
+AC_ARG_WITH(external-tar,
+[ --with-external-tar=<TARFILE PATH> Specify path to tarfiles manually ],
+[ TARFILE_LOCATION="$withval"
+])
AC_ARG_WITH(openldap,
[ --with-openldap Enables the use of the OpenLDAP LDAP SDK instead
of the Netscape/Mozilla one
@@ -374,7 +381,7 @@ AC_ARG_ENABLE(mysql-connector,
AC_ARG_WITH(system-mysql,
[ --with-system-mysql Use MySQL libraries already on system, for building the MySQL Connector/OOo extension.
Requires MYSQLCONFIG to point to the mysql_config executable.
-],,with_system_mysql="no")
+],,)
AC_ARG_WITH(libmysql-path,
[ --with-libmysql-path Use Connector/C (libmysql) installation for building the MySQL Connector/OOo extension.
@@ -540,6 +547,9 @@ AC_ARG_WITH(system-altlinuxhyph,
AC_ARG_WITH(system-lpsolve,
[ --with-system-lpsolve Use lpsolve already on system
],,)
+AC_ARG_WITH(system-cppunit,
+[ --with-system-cppunit Use cppunit already on system
+],,)
AC_ARG_WITH(system-mozilla,
[ --with-system-mozilla Use mozilla already on system. Note that some
components cannot be built against a contemporary
@@ -595,6 +605,13 @@ AC_ARG_WITH(ant-home,
Usage: --with-ant-home=<absolute path to Ant home>
],,)
+AC_ARG_WITH(junit,
+[ --with-junit Specifies the JUnit 4 jar file to use for JUnit-based
+ tests. --without-junit disables those tests. Not
+ relevant in the --without-java case.
+
+ Usage: --with-junit=<absolute path to JUnit 4 jar>
+],,with_junit=yes)
AC_ARG_WITH(perl-home,
[ --with-perl-home If you have installed the Perl 5 Distribution, on your
system, please supply the path here.
@@ -772,7 +789,7 @@ AC_ARG_WITH(zip-home,
],,)
AC_ARG_WITH(mingwin,
[ --with-mingwin For Windows users, use the mingwin32 compiler within
- cygwin environment, this implies --with-use-shell=tcsh
+ cygwin environment
Usage: --with-mingwin=yes
@@ -782,15 +799,6 @@ AC_ARG_WITH(mingwin,
Usage: --with-mingwin=i586-mingw32msvc-g++
],WITH_MINGWIN=$withval,WITH_MINGWIN=0)
-AC_ARG_WITH(use-shell,
-[ --with-use-shell Use this option to override the default shell to be
- used for the build environment.
- Supported options:
- tcsh (default)
- bash
-
- Usage: --with-use-shell=tcsh|bash
-],with_use_shell=$withval,with_use_shell="tcsh")
AC_ARG_WITH(build-version,
[ --with-build-version Allows the builder to add a custom version tag
that will appear in the Help/About box for QA
@@ -1196,6 +1204,19 @@ else
fi
AC_SUBST(ENABLE_FONTCONFIG)
+dnl ===================================================================
+dnl find external tarballs.
+dnl ===================================================================
+if test -z $TARFILE_LOCATION; then
+ TARFILE_LOCATION="DEFAULT"
+fi
+AC_SUBST(TARFILE_LOCATION)
+
+if test -z "$enable_fetch_external" || test "$enable_fetch_external" = "yes" \
+ && test -z "$with_system_libs" -a "$with_system_jars" != "no"; then
+ DO_FETCH_TARBALLS="yes"
+fi
+AC_SUBST(DO_FETCH_TARBALLS)
dnl ===================================================================
dnl Disable legacy binary file formats filters
@@ -1305,16 +1326,8 @@ AC_SUBST(DICT_SYSTEM_DIR)
AC_SUBST(HYPH_SYSTEM_DIR)
AC_SUBST(THES_SYSTEM_DIR)
-dnl ===================================================================
-dnl all O/S use tcsh or bash.
-dnl The following sets the with_use_shell variable.
-dnl ===================================================================
-AC_MSG_CHECKING([which shell to use])
if test $_os = "WINNT"; then
- dnl ===================================================================
- if test "$with_use_shell" != "tcsh" -a "$with_use_shell" != "bash"; then
- AC_MSG_ERROR([only "tcsh" or "bash" are supported options])
- fi
+ AC_MSG_CHECKING([Windows build environment sanity])
dnl ===================================================================
dnl Sanity check! Native windows programs cannot use cygwin symlinks!
dnl ===================================================================
@@ -1342,32 +1355,14 @@ link, and copy the program to the name of the link.])
fi
fi
dnl ===================================================================
- dnl If using Mingwin32 then don't use 4NT
- dnl ===================================================================
if test "$WITH_MINGWIN" = "yes" ; then
- if test "x$with_use_shell" = "x"; then
- with_use_shell="tcsh"
- fi
if test -z "$CC"; then
CC="gcc -mno-cygwin"
CXX="g++ -mno-cygwin"
fi
fi
-elif test $_os = "OS2"; then
- if test "$with_use_shell" != "tcsh"; then
- AC_MSG_ERROR([only "tcsh" is supported options])
- fi
-else
- dnl ===================================================================
- dnl All other operating systems use tcsh or bash.
- dnl ===================================================================
- if test "$with_use_shell" != "tcsh" -a "$with_use_shell" != "bash"; then
- AC_MSG_ERROR([only "tcsh" or "bash" are supported options])
- fi
+ AC_MSG_RESULT([ok])
fi
-USE_SHELL="$with_use_shell"
-AC_MSG_RESULT([$USE_SHELL])
-AC_SUBST(USE_SHELL)
AC_SUBST(WITH_MINGWIN)
dnl ===================================================================
@@ -1386,25 +1381,13 @@ fi
dnl ===================================================================
-dnl Check whether the chosen shell can be used.
+dnl Check whether the bash shell can be used.
dnl ===================================================================
-if test "$with_use_shell" = "tcsh"; then
- AC_PATH_PROG(SHELLPATH, tcsh)
- if test -z "$SHELLPATH"; then
- AC_MSG_ERROR([tcsh not found in \$PATH])
- else
- SHELLPATH=`echo $SHELLPATH | $SED -n "s/\/tcsh$//p"`
- fi
-elif test "$with_use_shell" = "bash"; then
- AC_PATH_PROG(SHELLPATH, bash)
- if test -z "$SHELLPATH"; then
- AC_MSG_ERROR([bash not found in \$PATH])
- else
- SHELLPATH=`echo $SHELLPATH | $SED -n "s/\/bash$//p"`
- fi
+AC_PATH_PROG(SHELLPATH, bash)
+if test -z "$SHELLPATH"; then
+ AC_MSG_ERROR([bash not found in \$PATH])
else
- AC_MSG_WARN([Windows/OS/2 4NT builds don't test for the shell])
- SHELLPATH="NO_SHELLPATH_NEEDED"
+ SHELLPATH=`echo $SHELLPATH | $SED -n "s/\/bash$//p"`
fi
AC_SUBST(SHELLPATH)
@@ -2749,6 +2732,17 @@ if test "$SOLAR_JAVA" != ""; then
fi
JAVAINTERPRETER=`cygpath -d "$JAVAINTERPRETER"`
JAVAINTERPRETER=`cygpath -u "$JAVAINTERPRETER"`
+ elif test "$_os" = "Darwin"; then
+ dnl HACK: There currently is only a 32 bit version of OOo for Mac OS X,
+ dnl and Tiger java complains about -d32 while Snow Leopard java needs it
+ dnl to run in 32 bit mode and be able to load OOo jnilibs:
+ AC_MSG_CHECKING([whether to pass -d32 to Java interpreter])
+ if "$JAVAINTERPRETER" -d32 >&5 2>&5; then
+ AC_MSG_RESULT([yes])
+ JAVAIFLAGS=-d32
+ else
+ AC_MSG_RESULT([no])
+ fi
fi
fi
@@ -3131,6 +3125,7 @@ AC_SUBST(JAVA_HOME)
AC_SUBST(JDK)
AC_SUBST(JAVAFLAGS)
AC_SUBST(JAVAINTERPRETER)
+AC_SUBST(JAVAIFLAGS)
AC_SUBST(JAVACOMPILER)
AC_SUBST(JAVAAOTCOMPILER)
AC_SUBST(JAVADOC)
@@ -3182,7 +3177,7 @@ fi
AC_SUBST(BUILD_DMAKE)
AC_MSG_CHECKING([whether to enable EPM for packing])
-if test "$_os" != "WINNT" -a \( "z$enable_epm" = "z" -o "$enable_epm" != "no" \) ; then
+if test "$enable_epm" = "yes"; then
AC_MSG_RESULT([yes])
dnl ===================================================================
dnl Check for epm - not needed for windows
@@ -3233,18 +3228,6 @@ if test "$_os" != "WINNT" -a \( "z$enable_epm" = "z" -o "$enable_epm" != "no" \)
# test which package format to use
AC_MSG_CHECKING([which package format to use])
- # epm supports the following formats:
- # aix - AIX software distribution
- # bsd - FreeBSD, NetBSD, or OpenBSD software distribution
- # depot or swinstall - HP-UX software distribution
- # deb - Debian software distribution
- # inst or tardist - IRIX software distribution
- # osx - MacOS X software distribution
- # pkg - Solaris software distribution
- # rpm - RedHat software distribution
- # setld - Tru64 (setld) software distribution
- # native - "Native" software distribution for the platform
- # portable - Portable software distribution
# defaults
case "$_os" in
@@ -3274,6 +3257,9 @@ if test "$_os" != "WINNT" -a \( "z$enable_epm" = "z" -o "$enable_epm" != "no" \)
OSF1)
PKGFORMAT=setld
;;
+ WINNT)
+ PKGFORMAT=msi
+ ;;
# we never should get here since we check the arciecture/os at the beginning,
# but go sure...
*)
@@ -3282,7 +3268,7 @@ if test "$_os" != "WINNT" -a \( "z$enable_epm" = "z" -o "$enable_epm" != "no" \)
if test -n "$with_package_format"; then
for i in $with_package_format; do
case "$i" in
- aix | bsd | deb | inst | tardist | osx | pkg | rpm | setld | native | portable)
+ aix | bsd | deb | inst | tardist | osx | pkg | rpm | setld | native | portable | archive | dmg | installed | msi)
;;
*)
AC_MSG_ERROR([unsupported format $i. Supported by EPM are:
@@ -3297,6 +3283,11 @@ rpm - RedHat software distribution
setld - Tru64 (setld) software distribution
native - "Native" software distribution for the platform
portable - Portable software distribution
+OOo additionally supports:
+archive - .tar.gz or .zip
+dmg - Mac OS X .dmg
+installed - installation tree
+msi - Windows .msi
])
;;
esac
@@ -3611,6 +3602,33 @@ AC_SUBST(LIBWPD_CFLAGS)
AC_SUBST(LIBWPD_LIBS)
dnl ===================================================================
+dnl Check for system cppunit
+dnl ===================================================================
+AC_MSG_CHECKING([which cppunit to use])
+if test -n "$with_system_cppunit" -o -n "$with_system_libs" && \
+ test "$with_system_cppunit" != "no"; then
+ AC_MSG_RESULT([external])
+ SYSTEM_CPPUNIT=YES
+ # might work for earlier, too but go sure. We didn't have
+ # a system-cppunit before the first version using a proper cppunit
+ # (and that being 1.12.1) anyway
+ PKG_CHECK_MODULES( CPPUNIT, cppunit >= 1.12.1 )
+ AC_MSG_CHECKING([STL compatibility])
+ if test "$WITH_STLPORT" != "no"; then
+ AC_MSG_ERROR([to use system cppunit you need to use --without-stlport])
+ else
+ AC_MSG_RESULT([OK])
+ fi
+else
+ AC_MSG_RESULT([internal])
+ SYSTEM_CPPUNIT=NO
+ BUILD_TYPE="$BUILD_TYPE CPPUNIT"
+fi
+AC_SUBST(SYSTEM_CPPUNIT)
+AC_SUBST(CPPUNIT_CFLAGS)
+AC_SUBST(CPPUNIT_LIBS)
+
+dnl ===================================================================
dnl Check whether freetype is available
dnl ===================================================================
if test "$test_freetype" = "yes"; then
@@ -3940,13 +3958,6 @@ int main(int argc, char **argv) {
], [AC_MSG_RESULT(OK)], [AC_MSG_ERROR([not suitable, we need >= 1.0.6])])
AC_LANG_POP([C++])
- AC_MSG_CHECKING([STL compatibility])
- if test "$WITH_STLPORT" != "no"; then
- AC_MSG_ERROR([to use system mysqlcppconn you need to use --without-stlport])
- else
- AC_MSG_RESULT([OK])
- fi
-
else
AC_MSG_RESULT([internal])
AC_MSG_CHECKING([for mysqlcppconn module])
@@ -4063,6 +4074,70 @@ if test -n "$with_system_saxon" -o -n "$with_system_libs" && \
[AC_MSG_ERROR(serializer.jar not found.)], [])
AC_SUBST(SERIALIZER_JAR)
fi
+
+dnl Saxon comes in two practically available versions, the out-of-date saxonb which
+dnl supports the java extensions that OOo uses, and the up-to-date saxon he
+dnl "home edition" version, which is crippled to not support those java extensions.
+dnl And as an aside the he one also needs to be tweaked to include
+dnl a META-INF/services to broadcast that it supports the jaxp transform factory
+
+ AC_MSG_CHECKING([if saxon works])
+ cat > saxontest.java <<_ACEOF
+[import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.stream.StreamSource;
+import java.io.*;
+
+import net.sf.saxon.FeatureKeys;
+
+class saxontest {
+ public static void main(String[] args) {
+ System.setProperty("javax.xml.transform.TransformerFactory",
+ "net.sf.saxon.TransformerFactoryImpl");
+ try {
+ TransformerFactory tfactory = TransformerFactory.newInstance();
+ // some external saxons (Debian, Ubuntu, ...) have this disabled
+ // per default
+ tfactory.setAttribute(FeatureKeys.ALLOW_EXTERNAL_FUNCTIONS, new Boolean(true));
+ System.out.println("TransformerFactory is" +
+ tfactory.getClass().getName());
+ Transformer transformer = tfactory.newTransformer(
+ new StreamSource(new File(args[0])));
+ } catch(Exception e){
+ e.printStackTrace(System.err);
+ System.exit(-1);
+ }
+ System.exit(0);
+ }
+}
+]
+_ACEOF
+ cat > saxontest.xsl<<_ACEOF
+[<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:template match="/">
+ <xsl:value-of select="math:sqrt(1)" xmlns:math="java:java.lang.Math"/>
+ </xsl:template>
+</xsl:stylesheet>
+]
+_ACEOF
+ javac_cmd="$JAVACOMPILER -cp $SAXON_JAR saxontest.java 1>&2"
+ AC_TRY_EVAL(javac_cmd)
+ if test $? = 0 && test -f ./saxontest.class ; then
+ java_cmd="$JAVAINTERPRETER -cp $SAXON_JAR:. saxontest saxontest.xsl 1>&2"
+ AC_TRY_EVAL(java_cmd)
+ if test $? = 0; then
+ AC_MSG_RESULT([yes])
+ else
+ cat saxontest.java >&5
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([Non-functional saxon jar, e.g. crippled saxon-he instead of saxonb])
+ fi
+ else
+ AC_MSG_RESULT([no])
+ cat saxontest.java >&5
+ AC_MSG_ERROR([saxontest could not be compiled, non-functional saxon jar])
+ fi
else
AC_MSG_RESULT([internal])
SYSTEM_SAXON=NO
@@ -4455,26 +4530,34 @@ if test "$BUILD_MOZAB" = "TRUE"; then
MOZILLA_VERSION=1.1.14
fi
MOZILLA_SOURCE_VERSION="seamonkey-${MOZILLA_VERSION}.source"
- for e in gz bz2; do
- AC_MSG_CHECKING([for $MOZILLA_SOURCE_VERSION.tar.$e])
- if test ! -e "moz/download/$MOZILLA_SOURCE_VERSION.tar.$e" && test "$HAVE_MOZILLA_TARBALL" != "y"; then
- AC_MSG_RESULT([not found])
- HAVE_MOZILLA_TARBALL=n
+ MOZILLA_FETCH_FILE=`grep $MOZILLA_SOURCE_VERSION ooo.lst`
+ AC_MSG_CHECKING([for mozilla sources])
+ if test -z "$MOZILLA_FETCH_FILE"; then
+ AC_MSG_RESULT([not found])
+ HAVE_MOZILLA_TARBALL=n
+ else
+ AC_MSG_CHECKING([for $MOZILLA_FETCH_FILE])
+ if test ! -e "$TARFILE_LOCATION/$MOZILLA_FETCH_FILE"; then
+ if test -z "$DO_FETCH"; then
+ AC_MSG_RESULT([will be fetched])
+ HAVE_MOZILLA_TARBALL=y
+ else
+ AC_MSG_RESULT([not found])
+ HAVE_MOZILLA_TARBALL=n
+ fi
else
AC_MSG_RESULT([found])
HAVE_MOZILLA_TARBALL=y
fi
- done
+ fi
if test "$HAVE_MOZILLA_TARBALL" != "y"; then
- AC_MSG_ERROR([Mozilla/SeaMonkey source archive not found.
-Please copy $MOZILLA_SOURCE_VERSION.tar.bz2 or $MOZILLA_SOURCE_VERSION.tar.gz to moz/download/.
-The archives can be found here:
-ftp://ftp.mozilla.org/pub/mozilla.org/seamonkey/releases/$MOZILLA_VERSION/])
+ AC_MSG_ERROR([Mozilla/SeaMonkey source archive not found.
+Use "./fetch_tarballs.sh ooo.lst" to download.])
fi
if test "$_os" = "WINNT"; then
AC_MSG_CHECKING([for moztools binaries])
- if test ! -e "moz/download/vc8-moztools.zip" ; then
- AC_MSG_ERROR([The following file is missing in moz/download: vc8-moztools.zip
+ if test ! -e "$TARFILE_LOCATION/vc8-moztools.zip" ; then
+ AC_MSG_ERROR([The following file is missing in $TARFILE_LOCATION: vc8-moztools.zip
(from ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/historic/vc8/)])
else
AC_MSG_RESULT([ok])
@@ -6632,6 +6715,34 @@ EOF
fi
rm -f conftest* core core.* *.core
+OOO_JUNIT_JAR=
+if test "$SOLAR_JAVA" != "" && test "$with_junit" != "no"; then
+ AC_MSG_CHECKING([for JUnit 4])
+ if test "$with_junit" == "yes"; then
+ if test -e /usr/share/java/junit4.jar; then
+ OOO_JUNIT_JAR=/usr/share/java/junit4.jar
+ else
+ OOO_JUNIT_JAR=/usr/share/java/junit.jar
+ fi
+ else
+ OOO_JUNIT_JAR=$with_junit
+ fi
+ if test "$_os" = "WINNT"; then
+ OOO_JUNIT_JAR=`cygpath -m "$OOO_JUNIT_JAR"`
+ fi
+ "$JAVA_HOME/bin/jar" tf "$OOO_JUNIT_JAR" 2>&5 | \
+ grep org/junit/Before.class > /dev/null 2>&5
+ if test $? -eq 0; then
+ AC_MSG_RESULT([$OOO_JUNIT_JAR])
+ else
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([cannot find JUnit 4 jar at $OOO_JUNIT_JAR;
+please install one and/or specify its pathname via --with-junit=...,
+or disable it via --without-junit])
+ fi
+fi
+AC_SUBST(OOO_JUNIT_JAR)
+
AC_MSG_CHECKING([which languages to be built])
WITH_LANG="$with_lang"
if test -z "$WITH_LANG"; then
diff --git a/connectivity/com/sun/star/sdbcx/comp/hsqldb/makefile.mk b/connectivity/com/sun/star/sdbcx/comp/hsqldb/makefile.mk
index 4976a7d607ca..ce9581b93458 100644
--- a/connectivity/com/sun/star/sdbcx/comp/hsqldb/makefile.mk
+++ b/connectivity/com/sun/star/sdbcx/comp/hsqldb/makefile.mk
@@ -38,10 +38,9 @@ SECONDARY_PACKAGE = org$/hsqldb$/lib
.IF "$(SYSTEM_HSQLDB)" == "YES"
-XCLASSPATH!:=$(XCLASSPATH)$(PATH_SEPERATOR)$(HSQLDB_JAR)
-JARFILES+= $(HSQLDB_JAR)
+EXTRAJARFILES = $(HSQLDB_JAR)
.ELSE
-JARFILES+= hsqldb.jar
+JARFILES = hsqldb.jar
.ENDIF
JAVAFILES =\
@@ -60,7 +59,7 @@ JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class
JARCOMPRESS = TRUE
JARCLASSDIRS = $(PACKAGE) $(SECONDARY_PACKAGE)
JARTARGET = $(TARGET).jar
-JARCLASSPATH = $(JARFILES) ..
+JARCLASSPATH = $(JARFILES) $(EXTRAJARFILES) ..
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
diff --git a/connectivity/source/cpool/dbpool.map b/connectivity/source/cpool/dbpool.map
deleted file mode 100644
index 7202c9d71b93..000000000000
--- a/connectivity/source/cpool/dbpool.map
+++ /dev/null
@@ -1,8 +0,0 @@
-DBPOOL_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/cpool/makefile.mk b/connectivity/source/cpool/makefile.mk
index 124e7b574d6c..1f6e49c6cbd7 100644
--- a/connectivity/source/cpool/makefile.mk
+++ b/connectivity/source/cpool/makefile.mk
@@ -55,7 +55,7 @@ SLOFILES=\
SHL1TARGET= $(DBPOOL_TARGET)$(DBPOOL_MAJOR)
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1OBJS=$(SLOFILES)
SHL1STDLIBS=\
diff --git a/connectivity/source/dbtools/dbt.map b/connectivity/source/dbtools/dbt.map
deleted file mode 100644
index c3eaaa5a253f..000000000000
--- a/connectivity/source/dbtools/dbt.map
+++ /dev/null
@@ -1,8 +0,0 @@
-DBTOOLS_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/drivers/adabas/adabas.map b/connectivity/source/drivers/adabas/adabas.map
deleted file mode 100644
index 7ce4c703e6b3..000000000000
--- a/connectivity/source/drivers/adabas/adabas.map
+++ /dev/null
@@ -1,8 +0,0 @@
-ADABAS_2_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/drivers/adabas/makefile.mk b/connectivity/source/drivers/adabas/makefile.mk
index e3e9d76ac2f2..9268f02a3b42 100644
--- a/connectivity/source/drivers/adabas/makefile.mk
+++ b/connectivity/source/drivers/adabas/makefile.mk
@@ -71,7 +71,7 @@ SLOFILES=\
$(SLO)$/BResultSetMetaData.obj \
$(SLO)$/BResultSet.obj
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Library -----------------------------------
diff --git a/connectivity/source/drivers/calc/calc.map b/connectivity/source/drivers/calc/calc.map
deleted file mode 100644
index bcab8e6c9101..000000000000
--- a/connectivity/source/drivers/calc/calc.map
+++ /dev/null
@@ -1,8 +0,0 @@
-CALC_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/drivers/calc/makefile.mk b/connectivity/source/drivers/calc/makefile.mk
index 452e9a92b320..8e193524aa45 100644
--- a/connectivity/source/drivers/calc/makefile.mk
+++ b/connectivity/source/drivers/calc/makefile.mk
@@ -57,7 +57,7 @@ SLOFILES=\
$(SLO)$/Cservices.obj \
$(SLO)$/CDriver.obj
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Library -----------------------------------
diff --git a/connectivity/source/drivers/dbase/DTable.cxx b/connectivity/source/drivers/dbase/DTable.cxx
index d19f419f17ae..15da50651250 100644
--- a/connectivity/source/drivers/dbase/DTable.cxx
+++ b/connectivity/source/drivers/dbase/DTable.cxx
@@ -1527,6 +1527,7 @@ BOOL ODbaseTable::InsertRow(OValueRefVector& rRow, BOOL bFlush,const Reference<X
// Buffer mit Leerzeichen fuellen
AllocBuffer();
memset(m_pBuffer, 0, m_aHeader.db_slng);
+ m_pBuffer[0] = ' ';
// Gesamte neue Row uebernehmen:
// ... und am Ende als neuen Record hinzufuegen:
diff --git a/connectivity/source/drivers/dbase/dbase.map b/connectivity/source/drivers/dbase/dbase.map
deleted file mode 100644
index 2c620b4f3620..000000000000
--- a/connectivity/source/drivers/dbase/dbase.map
+++ /dev/null
@@ -1,10 +0,0 @@
-DBASE_2_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
-
-
diff --git a/connectivity/source/drivers/dbase/makefile.mk b/connectivity/source/drivers/dbase/makefile.mk
index dded9086bcb1..f855cf1f4554 100644
--- a/connectivity/source/drivers/dbase/makefile.mk
+++ b/connectivity/source/drivers/dbase/makefile.mk
@@ -89,7 +89,7 @@ EXCEPTIONSFILES +=\
.ENDIF
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Library -----------------------------------
diff --git a/connectivity/source/drivers/evoab/evoab.map b/connectivity/source/drivers/evoab/evoab.map
deleted file mode 100644
index 00cf7191f143..000000000000
--- a/connectivity/source/drivers/evoab/evoab.map
+++ /dev/null
@@ -1,8 +0,0 @@
-EVOAB_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/drivers/evoab/makefile.mk b/connectivity/source/drivers/evoab/makefile.mk
index 31d654fd26a2..c1dbc21cdf1e 100644
--- a/connectivity/source/drivers/evoab/makefile.mk
+++ b/connectivity/source/drivers/evoab/makefile.mk
@@ -65,7 +65,7 @@ SLOFILES=\
$(SLO)$/LDebug.obj
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Library -----------------------------------
diff --git a/connectivity/source/drivers/evoab2/evoab2.map b/connectivity/source/drivers/evoab2/evoab2.map
deleted file mode 100644
index 00cf7191f143..000000000000
--- a/connectivity/source/drivers/evoab2/evoab2.map
+++ /dev/null
@@ -1,8 +0,0 @@
-EVOAB_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/drivers/evoab2/makefile.mk b/connectivity/source/drivers/evoab2/makefile.mk
index 43600a379fbc..e8a1cf96cddf 100644
--- a/connectivity/source/drivers/evoab2/makefile.mk
+++ b/connectivity/source/drivers/evoab2/makefile.mk
@@ -65,7 +65,7 @@ SLOFILES=\
$(SLO)$/EApi.obj \
$(SLO)$/NDebug.obj
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Library -----------------------------------
diff --git a/connectivity/source/drivers/flat/flat.map b/connectivity/source/drivers/flat/flat.map
deleted file mode 100644
index bf26bd0fa0fa..000000000000
--- a/connectivity/source/drivers/flat/flat.map
+++ /dev/null
@@ -1,8 +0,0 @@
-FLAT_2_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/drivers/flat/makefile.mk b/connectivity/source/drivers/flat/makefile.mk
index 312e6d6c9426..2d1f99f759c7 100644
--- a/connectivity/source/drivers/flat/makefile.mk
+++ b/connectivity/source/drivers/flat/makefile.mk
@@ -70,7 +70,7 @@ EXCEPTIONSFILES=\
$(SLO)$/EDriver.obj
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Library -----------------------------------
SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
diff --git a/connectivity/source/drivers/jdbc/jdbc.map b/connectivity/source/drivers/jdbc/jdbc.map
deleted file mode 100644
index 23369ec76466..000000000000
--- a/connectivity/source/drivers/jdbc/jdbc.map
+++ /dev/null
@@ -1,8 +0,0 @@
-JDBC_2_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/drivers/jdbc/makefile.mk b/connectivity/source/drivers/jdbc/makefile.mk
index 2de63f2c0366..46619952163b 100644
--- a/connectivity/source/drivers/jdbc/makefile.mk
+++ b/connectivity/source/drivers/jdbc/makefile.mk
@@ -78,7 +78,7 @@ SLOFILES=\
$(SLO)$/tools.obj \
$(SLO)$/ContextClassLoader.obj
-SHL1VERSIONMAP=$(JDBC_TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Library -----------------------------------
diff --git a/connectivity/source/drivers/kab/kab.map b/connectivity/source/drivers/kab/kab.map
deleted file mode 100644
index 6b7216de8c11..000000000000
--- a/connectivity/source/drivers/kab/kab.map
+++ /dev/null
@@ -1,8 +0,0 @@
-KAB_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/drivers/kab/kabdrv.map b/connectivity/source/drivers/kab/kabdrv.map
index c32084ddd4ab..5de866f2e52f 100644
--- a/connectivity/source/drivers/kab/kabdrv.map
+++ b/connectivity/source/drivers/kab/kabdrv.map
@@ -1,4 +1,4 @@
-KAB_1_0 {
+UDK_3_0_0 {
global:
createKabConnection;
initKApplication;
diff --git a/connectivity/source/drivers/kab/makefile.mk b/connectivity/source/drivers/kab/makefile.mk
index 98148a29e98d..2a0dc5cd8999 100644
--- a/connectivity/source/drivers/kab/makefile.mk
+++ b/connectivity/source/drivers/kab/makefile.mk
@@ -61,7 +61,7 @@ DEPOBJFILES= \
# --- Library -----------------------------------
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1TARGET= $(TARGET)$(KAB_MAJOR)
SHL1OBJS=$(SLOFILES)
diff --git a/connectivity/source/drivers/macab/MacabConnection.cxx b/connectivity/source/drivers/macab/MacabConnection.cxx
index 58cf82f272fc..31b2bbfd6b1e 100755
--- a/connectivity/source/drivers/macab/MacabConnection.cxx
+++ b/connectivity/source/drivers/macab/MacabConnection.cxx
@@ -314,10 +314,11 @@ MacabAddressBook* MacabConnection::getAddressBook() const
return m_pAddressBook;
}
// -----------------------------------------------------------------------------
-extern "C" void* SAL_CALL createMacabConnection( void* _pDriver )
+extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL createMacabConnection( void* _pDriver )
{
MacabConnection* pConnection = new MacabConnection( static_cast< MacabDriver* >( _pDriver ) );
// by definition, the pointer crossing library boundaries as void ptr is acquired once
pConnection->acquire();
return pConnection;
}
+
diff --git a/connectivity/source/drivers/macab/MacabServices.cxx b/connectivity/source/drivers/macab/MacabServices.cxx
index 6f48fb0a7e57..b3c303324302 100755
--- a/connectivity/source/drivers/macab/MacabServices.cxx
+++ b/connectivity/source/drivers/macab/MacabServices.cxx
@@ -114,7 +114,7 @@ struct ProviderRequest
//---------------------------------------------------------------------------------------
-extern "C" void SAL_CALL component_getImplementationEnvironment(
+extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
const sal_Char **ppEnvTypeName,
uno_Environment **
)
@@ -123,7 +123,7 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" sal_Bool SAL_CALL component_writeInfo(
+extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
void*,
void* pRegistryKey
)
@@ -148,7 +148,7 @@ extern "C" sal_Bool SAL_CALL component_writeInfo(
}
//---------------------------------------------------------------------------------------
-extern "C" void* SAL_CALL component_getFactory(
+extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
void*)
diff --git a/connectivity/source/drivers/macab/macab.map b/connectivity/source/drivers/macab/macab.map
deleted file mode 100755
index fe2d1ac90534..000000000000
--- a/connectivity/source/drivers/macab/macab.map
+++ /dev/null
@@ -1,8 +0,0 @@
-MACAB_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/drivers/macab/macab.xcu b/connectivity/source/drivers/macab/macab.xcu
index 7d4fa6df7d70..0845bc9a2ce2 100755
--- a/connectivity/source/drivers/macab/macab.xcu
+++ b/connectivity/source/drivers/macab/macab.xcu
@@ -27,7 +27,7 @@
************************************************************************ -->
<oor:component-data oor:name="Drivers" oor:package="org.openoffice.Office.DataAccess" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<node oor:name="Installed">
- <node oor:name="sdbc:address:macab:*" oor:op="replace">
+ <node oor:name="sdbc:address:macab" oor:op="replace">
<prop oor:name="Driver">
<value>com.sun.star.comp.sdbc.macab.Driver</value>
</prop>
diff --git a/connectivity/source/drivers/macab/macabdrv.map b/connectivity/source/drivers/macab/macabdrv.map
deleted file mode 100755
index d953690f6ba3..000000000000
--- a/connectivity/source/drivers/macab/macabdrv.map
+++ /dev/null
@@ -1,6 +0,0 @@
-MACAB_1_0 {
- global:
- createMacabConnection;
- local:
- *;
-};
diff --git a/connectivity/source/drivers/macab/makefile.mk b/connectivity/source/drivers/macab/makefile.mk
index 811f1fabb143..35532b15ec2d 100755
--- a/connectivity/source/drivers/macab/makefile.mk
+++ b/connectivity/source/drivers/macab/makefile.mk
@@ -54,8 +54,6 @@ DEPOBJFILES= \
# --- Library -----------------------------------
-SHL1VERSIONMAP=$(TARGET).map
-
SHL1TARGET= $(TARGET)$(MACAB_MAJOR)
SHL1OBJS=$(SLOFILES)
SHL1STDLIBS=\
@@ -98,8 +96,6 @@ MACAB_LIB=-framework Carbon -framework AddressBook
# --- Library -----------------------------------
-SHL2VERSIONMAP=$(TARGET2).map
-
SHL2TARGET= $(TARGET2)$(MACAB_MAJOR)
SHL2OBJS=$(SLO2FILES)
SHL2STDLIBS=\
diff --git a/connectivity/source/drivers/mozab/bootstrap/makefile.mk b/connectivity/source/drivers/mozab/bootstrap/makefile.mk
index 78c1e39578c0..6a4172da205d 100644
--- a/connectivity/source/drivers/mozab/bootstrap/makefile.mk
+++ b/connectivity/source/drivers/mozab/bootstrap/makefile.mk
@@ -67,7 +67,7 @@ SLOFILES += \
CDEFS+=-DMINIMAL_PROFILEDISCOVER
SHL1TARGET=$(TARGET)
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1OBJS=$(SLOFILES)
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/connectivity/source/drivers/mozab/bootstrap/mozbootstrap.map b/connectivity/source/drivers/mozab/bootstrap/mozbootstrap.map
deleted file mode 100644
index 750db5d4af09..000000000000
--- a/connectivity/source/drivers/mozab/bootstrap/mozbootstrap.map
+++ /dev/null
@@ -1,8 +0,0 @@
-MOZBOOTSTRAP_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/drivers/mozab/makefile.mk b/connectivity/source/drivers/mozab/makefile.mk
index ffcc41af7536..b1e12fde6f8a 100644
--- a/connectivity/source/drivers/mozab/makefile.mk
+++ b/connectivity/source/drivers/mozab/makefile.mk
@@ -85,7 +85,7 @@ SLOFILES=\
# --- MOZAB BASE Library -----------------------------------
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
SHL1OBJS=$(SLOFILES)
SHL1STDLIBS=\
diff --git a/connectivity/source/drivers/mozab/mozab.map b/connectivity/source/drivers/mozab/mozab.map
deleted file mode 100644
index 9f3a1f27d0f5..000000000000
--- a/connectivity/source/drivers/mozab/mozab.map
+++ /dev/null
@@ -1,8 +0,0 @@
-MOZAB_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/drivers/mozab/mozabdrv.map b/connectivity/source/drivers/mozab/mozabdrv.map
index 918cb530e1f1..a431a0737754 100644
--- a/connectivity/source/drivers/mozab/mozabdrv.map
+++ b/connectivity/source/drivers/mozab/mozabdrv.map
@@ -1,4 +1,4 @@
-MOZABDRV_1_0 {
+UDK_3_0_0 {
global:
OMozabConnection_CreateInstance;
OMozillaBootstrap_CreateInstance;
diff --git a/connectivity/source/drivers/mysql/makefile.mk b/connectivity/source/drivers/mysql/makefile.mk
index af486c293806..fbb68321cb01 100644
--- a/connectivity/source/drivers/mysql/makefile.mk
+++ b/connectivity/source/drivers/mysql/makefile.mk
@@ -55,7 +55,7 @@ SLOFILES=\
$(SLO)$/YUsers.obj \
$(SLO)$/Yservices.obj
-SHL1VERSIONMAP=$(MYSQL_TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Library -----------------------------------
diff --git a/connectivity/source/drivers/mysql/mysql.map b/connectivity/source/drivers/mysql/mysql.map
deleted file mode 100644
index 834658431ada..000000000000
--- a/connectivity/source/drivers/mysql/mysql.map
+++ /dev/null
@@ -1,8 +0,0 @@
-MYSQL_2_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/drivers/odbc/makefile.mk b/connectivity/source/drivers/odbc/makefile.mk
index 09052f9d77a3..508cbfb6df63 100644
--- a/connectivity/source/drivers/odbc/makefile.mk
+++ b/connectivity/source/drivers/odbc/makefile.mk
@@ -71,7 +71,7 @@ SHL1IMPLIB= i$(ODBC_TARGET)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
-SHL1VERSIONMAP=odbc.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Targets ----------------------------------
diff --git a/connectivity/source/drivers/odbc/odbc.map b/connectivity/source/drivers/odbc/odbc.map
deleted file mode 100644
index 14e4b7110c89..000000000000
--- a/connectivity/source/drivers/odbc/odbc.map
+++ /dev/null
@@ -1,8 +0,0 @@
-ODBC_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/connectivity/source/manager/makefile.mk b/connectivity/source/manager/makefile.mk
index e72dfc78bcdf..52ec191ec836 100644
--- a/connectivity/source/manager/makefile.mk
+++ b/connectivity/source/manager/makefile.mk
@@ -52,7 +52,7 @@ SLOFILES=\
SHL1TARGET= $(SDBC_TARGET)$(SDBC_MAJOR)
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1OBJS=$(SLOFILES)
SHL1STDLIBS=\
diff --git a/connectivity/source/manager/sdbc.map b/connectivity/source/manager/sdbc.map
deleted file mode 100644
index 2d8534b22e21..000000000000
--- a/connectivity/source/manager/sdbc.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SDBC_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/cppcanvas/source/mtfrenderer/implrenderer.cxx b/cppcanvas/source/mtfrenderer/implrenderer.cxx
index e6fb12cb2003..1423cd42ed93 100644
--- a/cppcanvas/source/mtfrenderer/implrenderer.cxx
+++ b/cppcanvas/source/mtfrenderer/implrenderer.cxx
@@ -41,7 +41,6 @@
#include <cppcanvas/canvas.hxx>
#include <com/sun/star/rendering/XGraphicDevice.hpp>
#include <com/sun/star/rendering/TexturingMode.hpp>
-#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.hpp>
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/geometry/RealPoint2D.hpp>
#include <com/sun/star/rendering/ViewState.hpp>
@@ -52,6 +51,7 @@
#include <com/sun/star/rendering/PathCapType.hpp>
#include <com/sun/star/rendering/PathJoinType.hpp>
#include <basegfx/tools/canvastools.hxx>
+#include <basegfx/tools/gradienttools.hxx>
#include <basegfx/numeric/ftools.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
@@ -591,13 +591,12 @@ namespace cppcanvas
// discernible difference should be visible.
nSteps > 64 )
{
- uno::Reference< rendering::XParametricPolyPolygon2DFactory > xFactory(
+ uno::Reference< lang::XMultiServiceFactory> xFactory(
rParms.mrCanvas->getUNOCanvas()->getDevice()->getParametricPolyPolygonFactory() );
if( xFactory.is() )
{
- ::basegfx::B2DHomMatrix aTextureTransformation;
- rendering::Texture aTexture;
+ rendering::Texture aTexture;
aTexture.RepeatModeX = rendering::TexturingMode::CLAMP;
aTexture.RepeatModeY = rendering::TexturingMode::CLAMP;
@@ -632,240 +631,118 @@ namespace cppcanvas
uno::Sequence< uno::Sequence < double > > aColors(2);
uno::Sequence< double > aStops(2);
- aStops[0] = 0.0;
- aStops[1] = 1.0;
+ if( rGradient.GetStyle() == GRADIENT_AXIAL )
+ {
+ aStops.realloc(3);
+ aColors.realloc(3);
- aColors[0] = aStartColor;
- aColors[1] = aEndColor;
+ aStops[0] = 0.0;
+ aStops[1] = 0.5;
+ aStops[2] = 1.0;
+ aColors[0] = aEndColor;
+ aColors[1] = aStartColor;
+ aColors[2] = aEndColor;
+ }
+ else
+ {
+ aStops[0] = 0.0;
+ aStops[1] = 1.0;
- // Setup texture transformation
- // ----------------------------
+ aColors[0] = aStartColor;
+ aColors[1] = aEndColor;
+ }
const ::basegfx::B2DRectangle aBounds(
::basegfx::tools::getRange(aDevicePoly) );
+ const ::basegfx::B2DVector aOffset(
+ rGradient.GetOfsX() / 100.0,
+ rGradient.GetOfsY() / 100.0);
+ double fRotation( rGradient.GetAngle() * M_PI / 1800.0 );
+ const double fBorder( rGradient.GetBorder() / 100.0 );
- // setup rotation angle. VCL rotates
- // counter-clockwise, while canvas transformation
- // rotates clockwise
- double nRotation( -rGradient.GetAngle() * M_PI / 1800.0 );
+ basegfx::B2DHomMatrix aRot90;
+ aRot90.rotate(M_PI_2);
+ basegfx::ODFGradientInfo aGradInfo;
+ rtl::OUString aGradientService;
switch( rGradient.GetStyle() )
{
case GRADIENT_LINEAR:
- // FALLTHROUGH intended
+ basegfx::tools::createLinearODFGradientInfo(aGradInfo,
+ aBounds,
+ nSteps,
+ fBorder,
+ fRotation);
+ // map odf to svg gradient orientation - x
+ // instead of y direction
+ aGradInfo.maTextureTransform = aGradInfo.maTextureTransform * aRot90;
+ aGradientService = rtl::OUString::createFromAscii("LinearGradient");
+ break;
+
case GRADIENT_AXIAL:
{
- // standard orientation for VCL linear
- // gradient is vertical, thus, rotate 90
- // degrees
- nRotation += M_PI/2.0;
-
- const double nBorder(
- ::basegfx::pruneScaleValue(
- (1.0 - rGradient.GetBorder() / 100.0) ) );
-
- // shrink texture, to account for border
- // (only in x direction, linear gradient
- // is constant in y direction, anyway)
- aTextureTransformation.scale( nBorder,
- 1.0 );
-
- // linear gradients don't respect offsets
- // (they are implicitely assumed to be
- // 50%). linear gradients don't have
- // border on both sides, only on the
- // startColor side, axial gradients have
- // border on both sides. As both gradients
- // are invariant in y direction: leave y
- // offset alone.
- double nOffsetX( rGradient.GetBorder() / 200.0 );
-
- // determine type of gradient (and necessary
- // transformation matrix, should it be emulated by a
- // generic gradient)
- switch( rGradient.GetStyle() )
- {
- case GRADIENT_LINEAR:
- nOffsetX = rGradient.GetBorder() / 100.0;
- aTexture.Gradient = xFactory->createLinearHorizontalGradient( aColors,
- aStops );
- break;
-
- case GRADIENT_AXIAL:
- // vcl considers center color as start color
- ::std::swap(aColors[0],aColors[1]);
- aTexture.Gradient = xFactory->createAxialHorizontalGradient( aColors,
- aStops );
- break;
-
- default: // other cases can't happen
- break;
- }
-
- // apply border offset values
- aTextureTransformation.translate( nOffsetX,
- 0.0 );
-
- // rotate texture according to gradient rotation
- aTextureTransformation.translate( -0.5, -0.5 );
- aTextureTransformation.rotate( nRotation );
-
- // to let the first strip of a rotated
- // gradient start at the _edge_ of the
- // bound rect (and not, due to rotation,
- // slightly inside), slightly enlarge the
- // gradient:
- //
- // y/2 sin(alpha) + x/2 cos(alpha)
- //
- // (values to change are not actual
- // gradient scales, but original bound
- // rect dimensions. Since we still want
- // the border setting to apply after that,
- // we multiply with that as above for
- // nScaleX)
- const double nScale(
- ::basegfx::pruneScaleValue(
- fabs( aBounds.getHeight()*sin(nRotation) ) +
- fabs( aBounds.getWidth()*cos(nRotation) )));
-
- // scale and translate back origin to center of
- // primitive
- aTextureTransformation = basegfx::tools::createScaleTranslateB2DHomMatrix(
- nScale, nScale, 0.5*aBounds.getWidth(), 0.5*aBounds.getHeight())
- * aTextureTransformation;
+ basegfx::tools::createLinearODFGradientInfo(aGradInfo,
+ aBounds,
+ nSteps,
+ fBorder,
+ fRotation);
+ // map odf to svg gradient orientation - x
+ // instead of y direction
+ aGradInfo.maTextureTransform = aGradInfo.maTextureTransform * aRot90;
+
+ // map odf axial gradient to 3-stop linear
+ // gradient - shift left by 0.5
+ basegfx::B2DHomMatrix aShift;
+ aShift.translate(-0.5,0);
+ aGradInfo.maTextureTransform = aGradInfo.maTextureTransform * aShift;
+
+ aGradientService = rtl::OUString::createFromAscii("LinearGradient");
+ break;
}
- break;
case GRADIENT_RADIAL:
- // FALLTHROUGH intended
- case GRADIENT_ELLIPTICAL:
- // FALLTHROUGH intended
- case GRADIENT_SQUARE:
- // FALLTHROUGH intended
- case GRADIENT_RECT:
- {
- // determine scale factors for the gradient (must
- // be scaled up from [0,1]x[0,1] rect to object
- // bounds). Will potentially changed in switch
- // statement below.
- // Respect border value, while doing so, the VCL
- // gradient's border will effectively shrink the
- // resulting gradient.
- double nScaleX( aBounds.getWidth() * (1.0 - rGradient.GetBorder() / 100.0) );
- double nScaleY( aBounds.getHeight()* (1.0 - rGradient.GetBorder() / 100.0) );
-
- // determine offset values. Since the border is
- // divided half-by-half to both sides of the
- // gradient, divide translation offset by an
- // additional 2. Also respect offset here, but
- // since VCL gradients have their center at [0,0]
- // for zero offset, but canvas gradients have
- // their top, left edge aligned with the
- // primitive, and offset of 50% effectively must
- // yield zero shift. Both values will potentially
- // be adapted in switch statement below.
- double nOffsetX( aBounds.getWidth() *
- (2.0 * rGradient.GetOfsX() - 100.0 + rGradient.GetBorder()) / 200.0 );
- double nOffsetY( aBounds.getHeight() *
- (2.0 * rGradient.GetOfsY() - 100.0 + rGradient.GetBorder()) / 200.0 );
-
- // determine type of gradient (and necessary
- // transformation matrix, should it be emulated by a
- // generic gradient)
- switch( rGradient.GetStyle() )
- {
- case GRADIENT_RADIAL:
- {
- // create isotrophic scaling
- if( nScaleX > nScaleY )
- {
- nOffsetY -= (nScaleX - nScaleY) * 0.5;
- nScaleY = nScaleX;
- }
- else
- {
- nOffsetX -= (nScaleY - nScaleX) * 0.5;
- nScaleX = nScaleY;
- }
-
- // enlarge gradient to match bound rect diagonal
- aTextureTransformation.translate( -0.5, -0.5 );
- const double nScale( hypot(aBounds.getWidth(), aBounds.getHeight()) / nScaleX );
- aTextureTransformation.scale( nScale, nScale );
- aTextureTransformation.translate( 0.5, 0.5 );
-
- aTexture.Gradient = xFactory->createEllipticalGradient( aColors,
- aStops,
- geometry::RealRectangle2D(0.0,0.0,
- 1.0,1.0) );
- }
- break;
-
- case GRADIENT_ELLIPTICAL:
- {
- // enlarge gradient slightly
- aTextureTransformation.translate( -0.5, -0.5 );
- const double nSqrt2( sqrt(2.0) );
- aTextureTransformation.scale( nSqrt2,nSqrt2 );
- aTextureTransformation.translate( 0.5, 0.5 );
-
- aTexture.Gradient = xFactory->createEllipticalGradient(
- aColors,
- aStops,
- ::basegfx::unotools::rectangle2DFromB2DRectangle(
- aBounds ));
- }
- break;
-
- case GRADIENT_SQUARE:
- // create isotrophic scaling
- if( nScaleX > nScaleY )
- {
- nOffsetY -= (nScaleX - nScaleY) * 0.5;
- nScaleY = nScaleX;
- }
- else
- {
- nOffsetX -= (nScaleY - nScaleX) * 0.5;
- nScaleX = nScaleY;
- }
-
- aTexture.Gradient = xFactory->createRectangularGradient( aColors,
- aStops,
- geometry::RealRectangle2D(0.0,0.0,
- 1.0,1.0) );
- break;
-
- case GRADIENT_RECT:
- aTexture.Gradient = xFactory->createRectangularGradient(
- aColors,
- aStops,
- ::basegfx::unotools::rectangle2DFromB2DRectangle(
- aBounds ) );
- break;
-
- default: // other cases can't happen
- break;
- }
-
- nScaleX = ::basegfx::pruneScaleValue( nScaleX );
- nScaleY = ::basegfx::pruneScaleValue( nScaleY );
+ basegfx::tools::createRadialODFGradientInfo(aGradInfo,
+ aBounds,
+ aOffset,
+ nSteps,
+ fBorder);
+ aGradientService = rtl::OUString::createFromAscii("EllipticalGradient");
+ break;
- aTextureTransformation.scale( nScaleX, nScaleY );
+ case GRADIENT_ELLIPTICAL:
+ basegfx::tools::createEllipticalODFGradientInfo(aGradInfo,
+ aBounds,
+ aOffset,
+ nSteps,
+ fBorder,
+ fRotation);
+ aGradientService = rtl::OUString::createFromAscii("EllipticalGradient");
+ break;
- // rotate texture according to gradient rotation
- aTextureTransformation = basegfx::tools::createRotateAroundPoint(0.5*nScaleX, 0.5*nScaleY, nRotation)
- * aTextureTransformation;
+ case GRADIENT_SQUARE:
+ basegfx::tools::createSquareODFGradientInfo(aGradInfo,
+ aBounds,
+ aOffset,
+ nSteps,
+ fBorder,
+ fRotation);
+ aGradientService = rtl::OUString::createFromAscii("RectangularGradient");
+ break;
- aTextureTransformation.translate( nOffsetX, nOffsetY );
- }
- break;
+ case GRADIENT_RECT:
+ basegfx::tools::createRectangularODFGradientInfo(aGradInfo,
+ aBounds,
+ aOffset,
+ nSteps,
+ fBorder,
+ fRotation);
+ aGradientService = rtl::OUString::createFromAscii("RectangularGradient");
+ break;
default:
ENSURE_OR_THROW( false,
- "ImplRenderer::createGradientAction(): Unexpected gradient type" );
+ "ImplRenderer::createGradientAction(): Unexpected gradient type" );
break;
}
@@ -876,31 +753,49 @@ namespace cppcanvas
// gradient will always display at the origin, and
// not within the polygon bound (which might be
// miles away from the origin).
- aTextureTransformation.translate( aBounds.getMinX(),
- aBounds.getMinY() );
-
+ aGradInfo.maTextureTransform.translate( aBounds.getMinX(),
+ aBounds.getMinY() );
::basegfx::unotools::affineMatrixFromHomMatrix( aTexture.AffineTransform,
- aTextureTransformation );
+ aGradInfo.maTextureTransform );
+
+ uno::Sequence<uno::Any> args(3);
+ beans::PropertyValue aProp;
+ aProp.Name = rtl::OUString::createFromAscii("Colors");
+ aProp.Value <<= aColors;
+ args[0] <<= aProp;
+ aProp.Name = rtl::OUString::createFromAscii("Stops");
+ aProp.Value <<= aStops;
+ args[1] <<= aProp;
+ aProp.Name = rtl::OUString::createFromAscii("AspectRatio");
+ aProp.Value <<= aGradInfo.mfAspectRatio;
+ args[2] <<= aProp;
+
+ aTexture.Gradient.set(
+ xFactory->createInstanceWithArguments(aGradientService,
+ args),
+ uno::UNO_QUERY);
+ if( aTexture.Gradient.is() )
+ {
+ ActionSharedPtr pPolyAction(
+ internal::PolyPolyActionFactory::createPolyPolyAction(
+ aDevicePoly,
+ rParms.mrCanvas,
+ getState( rParms.mrStates ),
+ aTexture ) );
- ActionSharedPtr pPolyAction(
- internal::PolyPolyActionFactory::createPolyPolyAction(
- aDevicePoly,
- rParms.mrCanvas,
- getState( rParms.mrStates ),
- aTexture ) );
+ if( pPolyAction )
+ {
+ maActions.push_back(
+ MtfAction(
+ pPolyAction,
+ rParms.mrCurrActionIndex ) );
- if( pPolyAction )
- {
- maActions.push_back(
- MtfAction(
- pPolyAction,
- rParms.mrCurrActionIndex ) );
+ rParms.mrCurrActionIndex += pPolyAction->getActionCount()-1;
+ }
- rParms.mrCurrActionIndex += pPolyAction->getActionCount()-1;
+ // done, using native gradients
+ return;
}
-
- // done, using native gradients
- return;
}
}
@@ -1880,8 +1775,8 @@ namespace cppcanvas
}
else
{
- aTexture.RepeatModeX = rendering::TexturingMode::CLAMP;
- aTexture.RepeatModeY = rendering::TexturingMode::CLAMP;
+ aTexture.RepeatModeX = rendering::TexturingMode::NONE;
+ aTexture.RepeatModeY = rendering::TexturingMode::NONE;
}
::PolyPolygon aPath;
diff --git a/cppu/qa/makefile.mk b/cppu/qa/makefile.mk
index 51d9dfe22374..b40d3512e575 100644
--- a/cppu/qa/makefile.mk
+++ b/cppu/qa/makefile.mk
@@ -33,6 +33,8 @@ ENABLE_EXCEPTIONS := TRUE
.INCLUDE: settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
DLLPRE = # no leading "lib" on .so files
INCPRE += $(MISC)$/$(TARGET)$/inc
diff --git a/cppuhelper/prj/build.lst b/cppuhelper/prj/build.lst
index db8ddcaae6c8..de66b2d61a4b 100644
--- a/cppuhelper/prj/build.lst
+++ b/cppuhelper/prj/build.lst
@@ -3,3 +3,4 @@ ch cppuhelper usr1 - all ch_mkout NULL
ch cppuhelper\inc nmake - all ch_include NULL
ch cppuhelper\source nmake - all ch_source ch_unotypes ch_include NULL
ch cppuhelper\unotypes nmake - all ch_unotypes NULL
+ch cppuhelper\qa\propertysetmixin nmake - all ch_qa_propertysetmixin ch_source NULL
diff --git a/cppuhelper/qa/ifcontainer/export.map b/cppuhelper/qa/ifcontainer/export.map
index 4ca70fa85463..879fa8953788 100644
--- a/cppuhelper/qa/ifcontainer/export.map
+++ b/cppuhelper/qa/ifcontainer/export.map
@@ -1,4 +1,4 @@
-UDK_3.0 {
+UDK_3_0_0 {
global:
registerAllTestFunction;
diff --git a/cppuhelper/qa/ifcontainer/makefile.mk b/cppuhelper/qa/ifcontainer/makefile.mk
index 1e93701d3859..3277b4c204ea 100644
--- a/cppuhelper/qa/ifcontainer/makefile.mk
+++ b/cppuhelper/qa/ifcontainer/makefile.mk
@@ -35,6 +35,7 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
# BEGIN ----------------------------------------------------------------
# auto generated Target:joblist by codegen.pl
diff --git a/cppuhelper/qa/propertysetmixin/comp.map b/cppuhelper/qa/propertysetmixin/comp.map
deleted file mode 100644
index e4b038369818..000000000000
--- a/cppuhelper/qa/propertysetmixin/comp.map
+++ /dev/null
@@ -1,36 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/cppuhelper/qa/propertysetmixin/makefile.mk b/cppuhelper/qa/propertysetmixin/makefile.mk
index 8bf652d33b9b..edd4795fc115 100644
--- a/cppuhelper/qa/propertysetmixin/makefile.mk
+++ b/cppuhelper/qa/propertysetmixin/makefile.mk
@@ -25,46 +25,44 @@
#
#*************************************************************************
-PRJ := ..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
+
+PRJ := ../..
PRJNAME := cppuhelper
TARGET := qa_propertysetmixin
-PACKAGE = test$/cppuhelper$/propertysetmixin$/comp
+PACKAGE = test/cppuhelper/propertysetmixin/comp
ENABLE_EXCEPTIONS := TRUE
.INCLUDE: settings.mk
-.IF "$(GUI)" == "WNT"
-FILEURLPREFIX = file:///
-MY_URE_INTERNAL_JAVA_DIR=$(strip $(subst,\,/ file:///$(shell @$(WRAPCMD) echo $(SOLARBINDIR))))
+.IF "$(OS)" == "WNT"
+my_file = file:///
.ELSE
-FILEURLPREFIX = file://
-MY_URE_INTERNAL_JAVA_DIR=file://$(SOLARBINDIR)
-.ENDIF
-
-
+my_file = file://
+.END
DLLPRE = # no leading "lib" on .so files
-INCPRE += -I$(MISC)$/$(TARGET)$/inc
+INCPRE += -I$(MISC)/$(TARGET)/inc
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
SHL1TARGET = $(TARGET)
-SHL1OBJS = $(SLO)$/test_propertysetmixin.obj
-SHL1STDLIBS = $(CPPULIB) $(CPPUHELPERLIB) $(CPPUNITLIB) $(SALLIB) $(TESTSHL2LIB)
+SHL1OBJS = $(SLO)/test_propertysetmixin.obj
+SHL1VERSIONMAP = test.map
+SHL1STDLIBS = $(CPPULIB) $(CPPUHELPERLIB) $(CPPUNITLIB) $(SALLIB)
SHL1IMPLIB = i$(SHL1TARGET)
+SHL1RPATH = NONE
DEF1NAME = $(SHL1TARGET)
-.IF "$(COMNAME)" == "gcc3"
-SHL1VERSIONMAP = test.gcc3.map
-.ELSE
-SHL1VERSIONMAP = test.map
-.ENDIF
-
SHL2TARGET = $(TARGET).uno
-SHL2OBJS = $(SLO)$/comp_propertysetmixin.obj
-SHL2VERSIONMAP = comp.map
+SHL2OBJS = $(SLO)/comp_propertysetmixin.obj
+SHL2VERSIONMAP = $(SOLARENV)/src/component.map
SHL2STDLIBS = $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB)
SHL2IMPLIB = i$(SHL2TARGET)
+SH21RPATH = NONE
DEF2NAME = $(SHL2TARGET)
SLOFILES = $(SHL1OBJS) $(SHL2OBJS)
@@ -76,63 +74,52 @@ JARFILES = java_uno.jar juh.jar jurt.jar ridl.jar
ALLTAR: test
-$(MISC)$/$(TARGET)$/types.urd: types.idl
+$(MISC)/$(TARGET)/types.urd: types.idl
- $(MKDIR) $(@:d)
$(IDLC) -O$(@:d) -I$(SOLARIDLDIR) -cid -we $<
-$(MISC)$/$(TARGET)$/types.rdb .ERRREMOVE: $(MISC)$/$(TARGET)$/types.urd
+$(MISC)/$(TARGET)/types.rdb: $(MISC)/$(TARGET)/types.urd
- $(RM) $@
$(REGMERGE) $@ /UCR $<
-$(MISC)$/$(TARGET)$/uno.rdb .ERRREMOVE: $(MISC)$/$(TARGET)$/types.rdb \
- $(DLLDEST)$/$(SHL2TARGET)$(DLLPOST) \
- $(MISC)$/$(TARGET)$/$(TARGET).uno.jar $(MISC)$/$(TARGET)$/bootstrap.rdb
+$(MISC)/$(TARGET)/uno.rdb: $(MISC)/$(TARGET)/types.rdb $(SHL2TARGETN) \
+ $(MISC)/$(TARGET)/$(TARGET).uno.jar $(MISC)/$(TARGET)/bootstrap.rdb
- $(MKDIR) $(@:d)
- $(COPY) $(SOLARBINDIR)$/types.rdb $@
- $(REGMERGE) $@ / $(MISC)$/$(TARGET)$/types.rdb
- $(REGCOMP) -register -r $@ -c javaloader.uno$(DLLPOST) \
- -c javavm.uno$(DLLPOST) -c reflection.uno$(DLLPOST) \
- -c stocservices.uno$(DLLPOST)
- $(REGCOMP) -register -r $@ \
- -c $(subst,$/,/ $(DLLDEST)$/$(SHL2TARGET)$(DLLPOST))
- $(REGCOMP) -register -br $(MISC)$/$(TARGET)$/bootstrap.rdb -r $@ \
- -c \
- $(subst,$/,/ $(FILEURLPREFIX)$(PWD)$/$(MISC)$/$(TARGET)$/$(TARGET).uno.jar) \
- -classpath $(CLASSPATH) \
- -env:URE_INTERNAL_JAVA_DIR=$(MY_URE_INTERNAL_JAVA_DIR)
-
-$(MISC)$/$(TARGET)$/bootstrap.rdb .ERRREMOVE:
+ $(COPY) $(SOLARBINDIR)/types.rdb $@
+ $(REGMERGE) $@ / $(MISC)/$(TARGET)/types.rdb
+ $(REGCOMP) -register -r $@ -wop -c javaloader.uno -c javavm.uno \
+ -c reflection.uno -c stocservices.uno -c $(SHL2TARGETN)
+ $(REGCOMP) -register -br $(MISC)/$(TARGET)/bootstrap.rdb -r $@ \
+ -c $(my_file)$(PWD)/$(MISC)/$(TARGET)/$(TARGET).uno.jar \
+ -env:URE_INTERNAL_JAVA_DIR=$(my_file)$(SOLARBINDIR)
+
+$(MISC)/$(TARGET)/bootstrap.rdb:
- $(MKDIR) $(@:d)
- $(COPY) $(SOLARBINDIR)$/types.rdb $@
- $(REGCOMP) -register -r $@ -c javaloader.uno$(DLLPOST) \
- -c javavm.uno$(DLLPOST) -c stocservices.uno$(DLLPOST)
+ $(COPY) $(SOLARBINDIR)/types.rdb $@
+ $(REGCOMP) -register -r $@ -wop -c javaloader.uno -c javavm.uno \
+ -c stocservices.uno
-$(MISC)$/$(TARGET)$/cppumaker.flag: $(MISC)$/$(TARGET)$/types.rdb
- $(CPPUMAKER) -O$(MISC)$/$(TARGET)$/inc -BUCR -Gc \
- -X$(SOLARBINDIR)$/types.rdb $<
+$(MISC)/$(TARGET)/cppumaker.flag: $(MISC)/$(TARGET)/types.rdb
+ $(CPPUMAKER) -O$(MISC)/$(TARGET)/inc -BUCR -Gc \
+ -X$(SOLARBINDIR)/types.rdb $<
$(TOUCH) $@
-$(SLOFILES): $(MISC)$/$(TARGET)$/cppumaker.flag
+$(SLOFILES): $(MISC)/$(TARGET)/cppumaker.flag
-$(MISC)$/$(TARGET)$/javamaker.flag: $(MISC)$/$(TARGET)$/types.rdb
- $(JAVAMAKER) -O$(CLASSDIR) -BUCR -nD -Gc -X$(SOLARBINDIR)$/types.rdb $<
+$(MISC)/$(TARGET)/javamaker.flag: $(MISC)/$(TARGET)/types.rdb
+ $(JAVAMAKER) -O$(CLASSDIR) -BUCR -nD -Gc -X$(SOLARBINDIR)/types.rdb $<
$(TOUCH) $@
-# The following dependency (to execute javac whenever javamaker has run) does
-# not work reliably, see #i28827#:
-$(JAVAFILES) $(JAVACLASSFILES): $(MISC)$/$(TARGET)$/javamaker.flag
+$(JAVATARGET): $(MISC)/$(TARGET)/javamaker.flag
-$(MISC)$/$(TARGET)$/$(TARGET).uno.jar: $(JAVACLASSFILES) \
- $(MISC)$/$(TARGET)$/javamaker.flag manifest
+$(MISC)/$(TARGET)/$(TARGET).uno.jar: $(JAVATARGET) \
+ $(MISC)/$(TARGET)/javamaker.flag manifest
jar cfm $@ manifest -C $(CLASSDIR) test/cppuhelper/propertysetmixin
-test .PHONY: $(SHL1TARGETN) $(MISC)$/$(TARGET)$/uno.rdb
-.IF "$(GUI)" == "WNT"
- set CLASSPATH=$(CLASSPATH) && \
- set URE_INTERNAL_JAVA_DIR=$(MY_URE_INTERNAL_JAVA_DIR) && \
- testshl2 $(SHL1TARGETN) -forward "$(MISC)$/$(TARGET)$/uno.rdb#$(SOLARBINDIR)"
-.ELSE
- setenv CLASSPATH $(CLASSPATH) && \
- setenv URE_INTERNAL_JAVA_DIR $(MY_URE_INTERNAL_JAVA_DIR) && \
- testshl2 $(SHL1TARGETN) -forward "$(MISC)$/$(TARGET)$/uno.rdb#$(SOLARLIBDIR)"
-.ENDIF
+test .PHONY: $(SHL1TARGETN) $(MISC)/$(TARGET)/uno.rdb
+ $(CPPUNITTESTER) $(SHL1TARGETN) \
+ -env:URE_INTERNAL_JAVA_DIR=$(my_file)$(SOLARBINDIR) \
+ -env:URE_INTERNAL_LIB_DIR=$(my_file)$(SOLARSHAREDBIN) \
+ -env:arg-reg=$(MISC)/$(TARGET)/uno.rdb -env:arg-path=$(SOLARSHAREDBIN)
+
+.END
diff --git a/cppuhelper/qa/propertysetmixin/test.map b/cppuhelper/qa/propertysetmixin/test.map
index 7321bbca16ad..3308588ef6f8 100644
--- a/cppuhelper/qa/propertysetmixin/test.map
+++ b/cppuhelper/qa/propertysetmixin/test.map
@@ -27,7 +27,7 @@
UDK_3_0_0 {
global:
- registerAllTestFunction;
+ cppunitTestPlugIn;
local:
*;
diff --git a/cppuhelper/qa/propertysetmixin/test_propertysetmixin.cxx b/cppuhelper/qa/propertysetmixin/test_propertysetmixin.cxx
index 395f0b096c7b..06db4cfdad52 100644
--- a/cppuhelper/qa/propertysetmixin/test_propertysetmixin.cxx
+++ b/cppuhelper/qa/propertysetmixin/test_propertysetmixin.cxx
@@ -61,9 +61,12 @@
#include "com/sun/star/uno/XComponentContext.hpp"
#include "cppuhelper/implbase1.hxx"
#include "cppuhelper/servicefactory.hxx"
-#include "testshl/simpleheader.hxx"
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
#include "osl/mutex.hxx"
-#include "osl/thread.h"
+#include "rtl/bootstrap.hxx"
#include "rtl/ref.hxx"
#include "rtl/string.h"
#include "rtl/textenc.h"
@@ -95,6 +98,14 @@ std::ostream & operator <<(std::ostream & out, css::uno::Any const & value) {
out << "com::sun::star::uno::Any[" << value.getValueType() << ", ...]";
}
+rtl::OUString getArgument(rtl::OUString const & name) {
+ rtl::OUString val;
+ CPPUNIT_ASSERT(
+ rtl::Bootstrap::get(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("arg-")) + name, val));
+ return val;
+}
+
class BoundListener:
public cppu::WeakImplHelper1< css::beans::XPropertyChangeListener >
{
@@ -219,17 +230,12 @@ void Test::setUp() {
// single component context is used for all tests and destroyed in the last
// pseudo-test "finish":
if (!m_context.is()) {
- char const * fw = getForwardString();
- rtl::OUString forward(fw, rtl_str_getLength(fw),
- osl_getThreadTextEncoding());
- //TODO: check for string conversion failure
- sal_Int32 index = forward.indexOf('#');
- rtl::OUString registry = forward.copy(0, index);
- rtl::OUString bootstrappath = forward.copy(index+1);
-
css::uno::Reference< css::lang::XMultiComponentFactory > factory(
cppu::createRegistryServiceFactory(
- registry, sal_False, bootstrappath),
+ getArgument(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("reg"))),
+ sal_False,
+ getArgument(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("path")))),
css::uno::UNO_QUERY_THROW);
css::uno::Reference< css::beans::XPropertySet >(
factory, css::uno::UNO_QUERY_THROW)->getPropertyValue(
@@ -667,8 +673,8 @@ void Test::testFull(
css::uno::Reference< css::uno::XComponentContext > Test::m_context;
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "alltests");
+CPPUNIT_TEST_SUITE_REGISTRATION(Test);
}
-NOADDITIONAL;
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/cppuhelper/qa/unourl/export.map b/cppuhelper/qa/unourl/export.map
index 4ca70fa85463..879fa8953788 100644
--- a/cppuhelper/qa/unourl/export.map
+++ b/cppuhelper/qa/unourl/export.map
@@ -1,4 +1,4 @@
-UDK_3.0 {
+UDK_3_0_0 {
global:
registerAllTestFunction;
diff --git a/cppuhelper/qa/unourl/makefile.mk b/cppuhelper/qa/unourl/makefile.mk
index 9c4e3bc86976..de2c05d40bc1 100644
--- a/cppuhelper/qa/unourl/makefile.mk
+++ b/cppuhelper/qa/unourl/makefile.mk
@@ -35,6 +35,7 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
# BEGIN ----------------------------------------------------------------
# auto generated Target:joblist by codegen.pl
diff --git a/cppuhelper/qa/weak/makefile.mk b/cppuhelper/qa/weak/makefile.mk
index 771edb26cfe5..543e87118a75 100644
--- a/cppuhelper/qa/weak/makefile.mk
+++ b/cppuhelper/qa/weak/makefile.mk
@@ -33,6 +33,7 @@ ENABLE_EXCEPTIONS := TRUE
.INCLUDE: settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
DLLPRE = # no leading "lib" on .so files
SHL1TARGET = $(TARGET)
diff --git a/cppuhelper/test/cfg_test.map b/cppuhelper/test/cfg_test.map
deleted file mode 100644
index ac2c3750bfe0..000000000000
--- a/cppuhelper/test/cfg_test.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/cppunit/cppunit-1.8.0-r1.patch b/cppunit/cppunit-1.8.0-r1.patch
deleted file mode 100644
index 9785fee093a6..000000000000
--- a/cppunit/cppunit-1.8.0-r1.patch
+++ /dev/null
@@ -1,2415 +0,0 @@
---- misc/cppunit-1.8.0/AUTHORS 2002-03-26 09:29:58.000000000 +0100
-+++ misc/build/cppunit-1.8.0/AUTHORS 2009-09-12 14:15:35.015625000 +0200
-@@ -5,3 +5,4 @@
- Baptiste Lepilleur <gaiacrtn@free.fr> <blep@sourceforge.net>
- Bastiaan Bakker <bastiaan.bakker@lifeline.nl>
- Steve Robbins <smr99@sourceforge.net>
-+Lars Langhans <lla@openoffice.org>
---- misc/cppunit-1.8.0/ChangeLog 2002-04-11 11:53:02.000000000 +0200
-+++ misc/build/cppunit-1.8.0/ChangeLog 2009-09-12 14:15:35.031250000 +0200
-@@ -1,3 +1,9 @@
-+2008-12-09 Lars Langhans <lla@openoffice.org>
-+ * create with some source files a new library
-+ * lot of source changes to build it within OOo environment.
-+ * lot of additional code to build within OOo environment.
-+ * Configure is no longer supported.
-+
- 2002-04-11 Baptiste Lepilleur <gaiacrtn@free.fr>
-
- * doc/FAQ: removed question about the Exception::operator =() problem.
---- misc/cppunit-1.8.0/INSTALL 2001-07-06 19:48:28.000000000 +0200
-+++ misc/build/cppunit-1.8.0/INSTALL 2009-09-12 14:15:35.062500000 +0200
-@@ -1,6 +1,12 @@
- Basic Installation
- ==================
-
-+<IMPORTANT>
-+This is a patched Version of CppUnit and works only in a OpenOffice.org
-+environment.
-+All other information here are expired.
-+</IMPORTANT>
-+
- These are generic installation instructions.
-
- The `configure' shell script attempts to guess correct values for
---- misc/cppunit-1.8.0/include/cppunit/Asserter.h 2002-03-28 16:47:07.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/Asserter.h 2009-09-12 14:15:35.078125000 +0200
-@@ -5,6 +5,7 @@
- #include <cppunit/SourceLine.h>
- #include <string>
-
-+
- namespace CppUnit
- {
-
-@@ -44,8 +45,8 @@
-
- /*! Throws a Exception with the specified message and location.
- */
-- void CPPUNIT_API fail( std::string message,
-- SourceLine sourceLine = SourceLine() );
-+ void CPPUNIT_API fail( std::string const& message,
-+ SourceLine const& sourceLine = SourceLine() );
-
- /*! Throws a Exception with the specified message and location.
- * \param shouldFail if \c true then the exception is thrown. Otherwise
-@@ -54,8 +55,14 @@
- * \param sourceLine Location of the assertion.
- */
- void CPPUNIT_API failIf( bool shouldFail,
-- std::string message,
-- SourceLine sourceLine = SourceLine() );
-+ std::string const& message,
-+ SourceLine const& sourceLine = SourceLine() );
-+
-+
-+ // LLA: test, if it's possible to use a DEFINE twice ;-)
-+ void CPPUNIT_API failIf( bool shouldFail,
-+ const char* message,
-+ SourceLine const& sourceLine = SourceLine() );
-
- /*! Throws a NotEqualException with the specified message and location.
- * \param expected Text describing the expected value.
-@@ -64,10 +71,10 @@
- * where the "difference" is located.
- * \param sourceLine Location of the assertion.
- */
-- void CPPUNIT_API failNotEqual( std::string expected,
-- std::string actual,
-- SourceLine sourceLine = SourceLine(),
-- std::string additionalMessage ="" );
-+ void CPPUNIT_API failNotEqual( std::string const& expected,
-+ std::string const& actual,
-+ SourceLine const& sourceLine = SourceLine(),
-+ std::string const& additionalMessage ="" );
-
- /*! Throws a NotEqualException with the specified message and location.
- * \param shouldFail if \c true then the exception is thrown. Otherwise
-@@ -79,10 +86,18 @@
- * \param sourceLine Location of the assertion.
- */
- void CPPUNIT_API failNotEqualIf( bool shouldFail,
-- std::string expected,
-- std::string actual,
-- SourceLine sourceLine = SourceLine(),
-- std::string additionalMessage ="" );
-+ std::string const& expected,
-+ std::string const& actual,
-+ SourceLine const& sourceLine = SourceLine(),
-+ std::string const& additionalMessage ="" );
-+
-+
-+ /*! Throws an Exception with the specified message and location.
-+ * \param message Message explaining the assertion failure.
-+ * \param sourceLine Location of the assertion.
-+ */
-+ void CPPUNIT_API failStub( std::string const& message,
-+ SourceLine const& sourceLine = SourceLine() );
-
- } // namespace Asserter
- } // namespace CppUnit
---- misc/cppunit-1.8.0/include/cppunit/Exception.h 2002-03-28 16:47:07.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/Exception.h 2009-09-12 14:15:35.093750000 +0200
-@@ -21,7 +21,7 @@
- class Type
- {
- public:
-- Type( std::string type ) : m_type ( type ) {}
-+ Type( std::string const& _type ) : m_type ( _type ) {}
-
- bool operator ==( const Type &other ) const
- {
-@@ -32,13 +32,13 @@
- };
-
-
-- Exception( std::string message = "",
-- SourceLine sourceLine = SourceLine() );
-+ Exception( std::string const& message = "",
-+ SourceLine const& sourceLine = SourceLine() );
-
- #ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
-- Exception( std::string message,
-+ Exception( std::string const& message,
- long lineNumber,
-- std::string fileName );
-+ std::string const& fileName );
- #endif
-
- Exception (const Exception& other);
-@@ -74,6 +74,41 @@
- SourceLine m_sourceLine;
- };
-
-+// -----------------------------------------------------------------------------
-+
-+class StubException : public Exception
-+{
-+public:
-+ StubException( std::string const& _message = "",
-+ SourceLine const& _sourceLine = SourceLine() )
-+ :Exception(_message, _sourceLine) {}
-+
-+
-+#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
-+ StubException( std::string const& message,
-+ long lineNumber,
-+ std::string const& fileName )
-+ :Exception(message, lineNumber, fileName) {}
-+#endif
-+};
-+
-+// -----------------------------------------------------------------------------
-+
-+class SignalException : public Exception
-+{
-+public:
-+ SignalException( std::string const& _message = "",
-+ SourceLine const& _sourceLine = SourceLine() )
-+ :Exception(_message, _sourceLine) {}
-+
-+
-+#ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
-+ SignalException( std::string const& message,
-+ long lineNumber,
-+ std::string const& fileName )
-+ :Exception(message, lineNumber, fileName) {}
-+#endif
-+};
-
- } // namespace CppUnit
-
---- misc/cppunit-1.8.0/include/cppunit/NotEqualException.h 2002-03-28 16:47:07.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/NotEqualException.h 2009-09-12 14:15:35.093750000 +0200
-@@ -19,16 +19,16 @@
- * \param additionalMessage Additionnal information provided to further qualify
- * the inequality.
- */
-- NotEqualException( std::string expected,
-- std::string actual,
-- SourceLine sourceLine = SourceLine(),
-- std::string additionalMessage = "" );
-+ NotEqualException( std::string const& expected,
-+ std::string const& actual,
-+ SourceLine const& sourceLine = SourceLine(),
-+ std::string const& additionalMessage = "" );
-
- #ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
-- NotEqualException( std::string expected,
-- std::string actual,
-+ NotEqualException( std::string const& expected,
-+ std::string const& actual,
- long lineNumber,
-- std::string fileName );
-+ std::string const& fileName );
- #endif
-
- NotEqualException( const NotEqualException &other );
---- misc/cppunit-1.8.0/include/cppunit/Portability.h 2002-03-25 19:41:39.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/Portability.h 2009-09-12 14:15:35.109375000 +0200
-@@ -28,7 +28,7 @@
- #define CPPUNIT_ENABLE_CU_TEST_MACROS 0
- #endif
-
--/* Define to 1 if the preprocessor expands (#foo) to "foo" (quotes incl.)
-+/* Define to 1 if the preprocessor expands (#foo) to "foo" (quotes incl.)
- I don't think there is any C preprocess that does NOT support this! */
- #ifndef CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION
- #define CPPUNIT_HAVE_CPP_SOURCE_ANNOTATION 1
-@@ -51,11 +51,11 @@
- #if CPPUNIT_HAVE_SSTREAM
- # include <sstream>
- namespace CppUnit {
-- class OStringStream : public std::ostringstream
-+ class OStringStream : public std::ostringstream
- {
- };
- }
--#else
-+#else
- #if CPPUNIT_HAVE_CLASS_STRSTREAM
- # include <string>
- # if CPPUNIT_HAVE_STRSTREAM
-@@ -65,7 +65,7 @@
- # endif
-
- namespace CppUnit {
-- class OStringStream : public std::ostrstream
-+ class OStringStream : public std::ostrstream
- {
- public:
- std::string str()
---- misc/cppunit-1.8.0/include/cppunit/Test.h 2002-03-28 16:47:07.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/Test.h 2009-09-12 14:15:35.125000000 +0200
-@@ -4,13 +4,15 @@
- #include <cppunit/Portability.h>
- #include <string>
-
-+typedef void* hTestResult;
-+
- namespace CppUnit {
-
--class TestResult;
-+//# class TestResult;
-
- /*! \brief Base class for all test objects.
- * \ingroup BrowsingCollectedTestResult
-- *
-+ *l-
- * All test objects should be a subclass of Test. Some test objects,
- * TestCase for example, represent one individual test. Other test
- * objects, such as TestSuite, are comprised of several tests.
-@@ -27,7 +29,7 @@
-
- /*! \brief Run the test, collecting results.
- */
-- virtual void run (TestResult *result) = 0;
-+ virtual void run (hTestResult pResult) = 0;
-
- /*! \brief Return the number of test cases invoked by run().
- *
---- misc/cppunit-1.8.0/include/cppunit/TestAssert.h 2002-04-04 17:39:37.000000000 +0200
-+++ misc/build/cppunit-1.8.0/include/cppunit/TestAssert.h 2009-09-12 14:15:35.156250000 +0200
-@@ -5,9 +5,10 @@
- #include <cppunit/Exception.h>
- #include <cppunit/Asserter.h>
-
--
- namespace CppUnit {
-
-+
-+
- /*! \brief Traits used by CPPUNIT_ASSERT_EQUAL().
- *
- * Here is an example of specialization of that traits:
-@@ -31,83 +32,83 @@
- * };
- * \endcode
- */
-- template <class T>
-- struct assertion_traits
-- {
-- static bool equal( const T& x, const T& y )
-- {
-- return x == y;
-- }
--
-- static std::string toString( const T& x )
-- {
-- OStringStream ost;
-- ost << x;
-- return ost.str();
-- }
-- };
-
-
-- namespace TestAssert
-- {
-+template <class T>
-+struct assertion_traits
-+{
-+ static bool equal( const T& x, const T& y )
-+ {
-+ return x == y;
-+ }
-+
-+ static std::string toString( const T& x )
-+ {
-+ OStringStream ost;
-+ ost << x;
-+ return ost.str();
-+ }
-+};
-+
-+namespace TestAssert
-+{
- #ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
-- void CPPUNIT_API assertImplementation( bool condition,
-- std::string conditionExpression = "",
-- long lineNumber,
-- std::string fileName );
--
-- void CPPUNIT_API assertNotEqualImplementation( std::string expected,
-- std::string actual,
-- long lineNumber,
-- std::string fileName );
--
--
-- template <class T>
-- void assertEquals( const T& expected,
-- const T& actual,
-- long lineNumber,
-- std::string fileName )
-- {
-- if ( !assertion_traits<T>::equal(expected,actual) ) // lazy toString conversion...
-- {
-- assertNotEqualImplementation( assertion_traits<T>::toString(expected),
-- assertion_traits<T>::toString(actual),
-- lineNumber,
-- fileName );
-- }
-- }
--
-- void CPPUNIT_API assertEquals( double expected,
-- double actual,
-- double delta,
-- long lineNumber,
-- std::string fileName );
-+ void CPPUNIT_API assertImplementation( bool condition,
-+ std::string conditionExpression = "",
-+ long lineNumber,
-+ std::string fileName );
-+
-+ void CPPUNIT_API assertNotEqualImplementation( std::string expected,
-+ std::string actual,
-+ long lineNumber,
-+ std::string fileName );
-+
-+
-+ template <class T>
-+ void assertEquals( const T& expected,
-+ const T& actual,
-+ long lineNumber,
-+ std::string fileName )
-+ {
-+ if ( !assertion_traits<T>::equal(expected,actual) ) // lazy toString conversion...
-+ {
-+ assertNotEqualImplementation( assertion_traits<T>::toString(expected),
-+ assertion_traits<T>::toString(actual),
-+ lineNumber,
-+ fileName );
-+ }
-+ }
-+
-+ void CPPUNIT_API assertEquals( double expected,
-+ double actual,
-+ double delta,
-+ long lineNumber,
-+ std::string fileName );
-
- #else // using SourceLine
-
-- template <class T>
-- void assertEquals( const T& expected,
-- const T& actual,
-- SourceLine sourceLine,
-- const std::string &message ="" )
-- {
-- if ( !assertion_traits<T>::equal(expected,actual) ) // lazy toString conversion...
-- {
-- Asserter::failNotEqual( assertion_traits<T>::toString(expected),
-- assertion_traits<T>::toString(actual),
-- sourceLine,
-- message );
-- }
-- }
--
-- void CPPUNIT_API assertDoubleEquals( double expected,
-- double actual,
-- double delta,
-- SourceLine sourceLine );
-+ template <class T>
-+ void assertEquals( const T& expected,
-+ const T& actual,
-+ SourceLine sourceLine,
-+ const std::string &message ="" )
-+ {
-+ if ( !assertion_traits<T>::equal(expected,actual) ) // lazy toString conversion...
-+ {
-+ Asserter::failNotEqual( assertion_traits<T>::toString(expected),
-+ assertion_traits<T>::toString(actual),
-+ sourceLine,
-+ message );
-+ }
-+ }
-+
-+ void CPPUNIT_API assertDoubleEquals( double expected,
-+ double actual,
-+ double delta,
-+ SourceLine sourceLine );
-
- #endif
-- }
--
-+}
-
- /* A set of macros which allow us to get the line number
- * and file name at the point of an error.
-@@ -118,15 +119,22 @@
- /** Assertions that a condition is \c true.
- * \ingroup Assertions
- */
--#define CPPUNIT_ASSERT(condition) \
-- ( ::CppUnit::Asserter::failIf( !(condition), \
-- (#condition), \
-- CPPUNIT_SOURCELINE() ) )
-+ // LLA: due to the fact, that side effects are not wished, we create a local scope,
-+ // assign the condition to a local variable and check this variable again and again.
-+
-+#define CPPUNIT_ASSERT(condition) \
-+ { bool __bLocalCondition = condition; \
-+ CheckBoom((__bLocalCondition), (#condition)); \
-+ (::CppUnit::Asserter::failIf( !(__bLocalCondition), \
-+ (#condition), \
-+ CPPUNIT_SOURCELINE() ) ); }
- #else
--#define CPPUNIT_ASSERT(condition) \
-- ( ::CppUnit::Asserter::failIf( !(condition), \
-- "", \
-- CPPUNIT_SOURCELINE() ) )
-+#define CPPUNIT_ASSERT(condition) \
-+ { bool __bLocalCondition = condition; \
-+ CheckBoom((__bLocalCondition), ""); \
-+ (::CppUnit::Asserter::failIf( !(__bLocalCondition), \
-+ "", \
-+ CPPUNIT_SOURCELINE() ) ); }
- #endif
-
- /** Assertion with a user specified message.
-@@ -136,25 +144,33 @@
- * \param condition If this condition evaluates to \c false then the
- * test failed.
- */
--#define CPPUNIT_ASSERT_MESSAGE(message,condition) \
-- ( ::CppUnit::Asserter::failIf( !(condition), \
-- (message), \
-- CPPUNIT_SOURCELINE() ) )
-+#define CPPUNIT_ASSERT_MESSAGE(message,condition) \
-+ { bool __bLocalCondition = (condition); \
-+ CheckBoom((__bLocalCondition), (message)); \
-+ (::CppUnit::Asserter::failIf( !(__bLocalCondition), \
-+ (message), \
-+ CPPUNIT_SOURCELINE() ) ); }
-+
-+#define CPPUNIT_ASSERT_STUB() \
-+ CheckBoom((1 == 0), ("This is only a stub.")); \
-+ (::CppUnit::Asserter::failStub("This is only a stub.", \
-+ CPPUNIT_SOURCELINE() ) )
-+
-
- /** Fails with the specified message.
- * \ingroup Assertions
- * \param message Message reported in diagnostic.
- */
- #define CPPUNIT_FAIL( message ) \
-- ( ::CppUnit::Asserter::fail( message, \
-- CPPUNIT_SOURCELINE() ) )
-+ ( ::CppUnit::Asserter::fail( message, \
-+ CPPUNIT_SOURCELINE() ) )
-
- #ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
- /// Generalized macro for primitive value comparisons
- #define CPPUNIT_ASSERT_EQUAL(expected,actual) \
-- ( ::CppUnit::TestAssert::assertEquals( (expected), \
-- (actual), \
-- __LINE__, __FILE__ ) )
-+ ( ::CppUnit::TestAssert::assertEquals( (expected), \
-+ (actual), \
-+ __LINE__, __FILE__ ) )
- #else
- /** Asserts that two values are equals.
- * \ingroup Assertions
-@@ -173,9 +189,9 @@
- * removed by specializing the CppUnit::assertion_traits.
- */
- #define CPPUNIT_ASSERT_EQUAL(expected,actual) \
-- ( ::CppUnit::TestAssert::assertEquals( (expected), \
-- (actual), \
-- CPPUNIT_SOURCELINE() ) )
-+ ( ::CppUnit::TestAssert::assertEquals( (expected), \
-+ (actual), \
-+ CPPUNIT_SOURCELINE() ) )
-
- /** Asserts that two values are equals, provides additional messafe on failure.
- * \ingroup Assertions
-@@ -196,20 +212,20 @@
- * removed by specializing the CppUnit::assertion_traits.
- */
- #define CPPUNIT_ASSERT_EQUAL_MESSAGE(message,expected,actual) \
-- ( ::CppUnit::TestAssert::assertEquals( (expected), \
-- (actual), \
-- CPPUNIT_SOURCELINE(), \
-- (message) ) )
-+ ( ::CppUnit::TestAssert::assertEquals( (expected), \
-+ (actual), \
-+ CPPUNIT_SOURCELINE(), \
-+ (message) ) )
- #endif
-
- /*! \brief Macro for primitive value comparisons
- * \ingroup Assertions
- */
- #define CPPUNIT_ASSERT_DOUBLES_EQUAL(expected,actual,delta) \
-- ( ::CppUnit::TestAssert::assertDoubleEquals( (expected), \
-- (actual), \
-- (delta), \
-- CPPUNIT_SOURCELINE() ) )
-+ ( ::CppUnit::TestAssert::assertDoubleEquals( (expected), \
-+ (actual), \
-+ (delta), \
-+ CPPUNIT_SOURCELINE() ) )
-
- // Backwards compatibility
-
-@@ -223,7 +239,6 @@
-
- #endif
-
--
- } // namespace CppUnit
-
- #endif // CPPUNIT_TESTASSERT_H
---- misc/cppunit-1.8.0/include/cppunit/TestCaller.h 2002-03-28 16:47:07.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/TestCaller.h 2009-09-12 14:15:35.171875000 +0200
-@@ -111,7 +111,7 @@
- * \param name name of this TestCaller
- * \param test the method this TestCaller calls in runTest()
- */
-- TestCaller( std::string name, TestMethod test ) :
-+ TestCaller( std::string const& name, TestMethod test ) :
- TestCase( name ),
- m_ownFixture( true ),
- m_fixture( new Fixture() ),
-@@ -128,7 +128,7 @@
- * \param test the method this TestCaller calls in runTest()
- * \param fixture the Fixture to invoke the test method on.
- */
-- TestCaller(std::string name, TestMethod test, Fixture& fixture) :
-+ TestCaller(std::string const& name, TestMethod test, Fixture& fixture) :
- TestCase( name ),
- m_ownFixture( false ),
- m_fixture( &fixture ),
-@@ -145,7 +145,7 @@
- * \param test the method this TestCaller calls in runTest()
- * \param fixture the Fixture to invoke the test method on.
- */
-- TestCaller(std::string name, TestMethod test, Fixture* fixture) :
-+ TestCaller(std::string const& name, TestMethod test, Fixture* fixture) :
- TestCase( name ),
- m_ownFixture( true ),
- m_fixture( fixture ),
---- misc/cppunit-1.8.0/include/cppunit/TestCase.h 2002-03-27 18:56:45.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/TestCase.h 2009-09-12 14:15:35.187500000 +0200
-@@ -3,15 +3,12 @@
-
- #include <cppunit/Portability.h>
- #include <cppunit/Test.h>
--#include <cppunit/TestAssert.h>
- #include <cppunit/TestFixture.h>
- #include <string>
-
--
- namespace CppUnit {
-
--class TestResult;
--
-+//# class TestResult;
-
- /*! \brief A single test object.
- *
-@@ -28,25 +25,25 @@
- {
- public:
-
-- TestCase( std::string Name );
-+ TestCase( std::string const& Name );
- //! \internal
- TestCase();
- ~TestCase();
-
-- virtual void run(TestResult *result);
-+ virtual void run(hTestResult pResult);
- virtual int countTestCases() const;
- std::string getName() const;
- std::string toString() const;
-
- //! FIXME: what is this for?
-- virtual TestResult *run();
-+ //# virtual TestResult *run();
-
- protected:
- //! FIXME: this should probably be pure virtual.
- virtual void runTest();
-
- //! Create TestResult for the run(void) method.
-- TestResult *defaultResult();
-+ //# TestResult *defaultResult();
-
- private:
- TestCase( const TestCase &other );
---- misc/cppunit-1.8.0/include/cppunit/TestFailure.h 2002-03-28 16:47:07.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/TestFailure.h 2009-09-12 14:15:35.187500000 +0200
-@@ -4,6 +4,16 @@
- #include <cppunit/Portability.h>
- #include <string>
-
-+namespace ErrorType
-+{
-+ enum num
-+ {
-+ ET_FAILURE = 1,
-+ ET_ERROR = 2,
-+ ET_SIGNAL = 4
-+ };
-+}
-+
- namespace CppUnit {
-
- class Exception;
-@@ -20,12 +30,13 @@
- * TestFailure assumes lifetime control for any exception
- * passed to it.
- */
-+
- class CPPUNIT_API TestFailure
- {
- public:
- TestFailure( Test *failedTest,
- Exception *thrownException,
-- bool isError );
-+ ErrorType::num eError );
-
- virtual ~TestFailure ();
-
-@@ -36,6 +47,7 @@
- virtual SourceLine sourceLine() const;
-
- virtual bool isError() const;
-+ virtual ErrorType::num getErrorType() const;
-
- virtual std::string failedTestName() const;
-
-@@ -46,7 +58,7 @@
- protected:
- Test *m_failedTest;
- Exception *m_thrownException;
-- bool m_isError;
-+ ErrorType::num m_eError;
-
- private:
- TestFailure( const TestFailure &other );
---- misc/cppunit-1.8.0/include/cppunit/TestFixture.h 2002-03-28 16:47:07.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/TestFixture.h 2009-09-12 14:15:35.203125000 +0200
-@@ -74,11 +74,6 @@
- * }
- * \endcode
- *
-- * A set of macros have been created for convenience. They are located in HelperMacros.h.
-- *
-- * \see TestResult, TestSuite, TestCaller,
-- * \see CPPUNIT_TEST_SUB_SUITE, CPPUNIT_TEST, CPPUNIT_TEST_SUITE_END,
-- * \see CPPUNIT_TEST_SUITE_REGISTRATION, CPPUNIT_TEST_EXCEPTION, CPPUNIT_TEST_FAIL.
- */
- class CPPUNIT_API TestFixture
- {
---- misc/cppunit-1.8.0/include/cppunit/TestSuite.h 2002-03-28 16:47:07.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/TestSuite.h 2009-09-12 14:15:35.218750000 +0200
-@@ -4,9 +4,11 @@
- #include <cppunit/Portability.h>
-
- #if CPPUNIT_NEED_DLL_DECL
-+#ifdef _MSC_VER
- #pragma warning( push )
- #pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
- #endif
-+#endif
-
- #include <cppunit/Test.h>
- #include <vector>
-@@ -14,7 +16,7 @@
-
- namespace CppUnit {
-
--class TestResult;
-+//# class TestResult;
-
- #if CPPUNIT_NEED_DLL_DECL
- template class CPPUNIT_API std::vector<Test *>;
-@@ -35,7 +37,6 @@
- * Note that TestSuites assume lifetime
- * control for any tests added to them.
- *
-- * TestSuites do not register themselves in the TestRegistry.
- * \see Test
- * \see TestCaller
- */
-@@ -44,10 +45,10 @@
- class CPPUNIT_API TestSuite : public Test
- {
- public:
-- TestSuite( std::string name = "" );
-+ TestSuite( std::string const& name = "" );
- ~TestSuite();
-
-- void run( TestResult *result );
-+ void run( hTestResult pResult );
- int countTestCases() const;
- std::string getName() const;
- std::string toString() const;
-@@ -71,7 +72,9 @@
-
-
- #if CPPUNIT_NEED_DLL_DECL
-+#ifdef _MSC_VER
- #pragma warning( pop )
- #endif
-+#endif
-
- #endif // CPPUNIT_TESTSUITE_H
---- misc/cppunit-1.8.0/include/cppunit/callbackfunc_fktptr.h 2009-09-14 08:43:30.656250000 +0200
-+++ misc/build/cppunit-1.8.0/include/cppunit/callbackfunc_fktptr.h 2009-09-12 15:11:06.859375000 +0200
-@@ -1 +1,47 @@
--dummy
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * Copyright 2000, 2010 Oracle and/or its affiliates
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * This file is part of OpenOffice.org.
-+ *
-+ * OpenOffice.org is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License version 3
-+ * only, as published by the Free Software Foundation.
-+ *
-+ * OpenOffice.org is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU Lesser General Public License version 3 for more details
-+ * (a copy is included in the LICENSE file that accompanied this code).
-+ *
-+ * You should have received a copy of the GNU Lesser General 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 _callbackfunc_fktptr_h
-+#define _callbackfunc_fktptr_h
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+// these typedefs are used for the TestCase, to call the TestResult functions.
-+// The TestResult is only in the testshl tool, not in the test libraries.
-+
-+typedef void* hTest;
-+typedef void* hException;
-+
-+typedef long (* FktPtr_CallbackDispatch)(int x, ...);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
---- misc/cppunit-1.8.0/include/cppunit/config-auto.h 2009-09-12 15:20:48.250000000 +0200
-+++ misc/build/cppunit-1.8.0/include/cppunit/config-auto.h 2009-09-12 14:15:35.234375000 +0200
-@@ -1 +1,64 @@
--dummy
-+#ifndef _INCLUDE_CPPUNIT_CONFIG_AUTO_H
-+#define _INCLUDE_CPPUNIT_CONFIG_AUTO_H 1
-+
-+/* include/cppunit/config-auto.h. Generated automatically at end of configure. */
-+/* config/config.h. Generated automatically by configure. */
-+/* config/config.h.in. Generated automatically from configure.in by autoheader. */
-+
-+/* define if library uses std::string::compare(string,pos,n) */
-+#ifndef CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST
-+#define CPPUNIT_FUNC_STRING_COMPARE_STRING_FIRST 1
-+#endif
-+
-+/* define if the library defines sstream */
-+#ifndef CPPUNIT_HAVE_SSTREAM
-+#define CPPUNIT_HAVE_SSTREAM 1
-+#endif
-+
-+/* Define if you have the <cmath> header file. */
-+#ifndef CPPUNIT_HAVE_CMATH
-+#define CPPUNIT_HAVE_CMATH 1
-+#endif
-+
-+/* Define if you have the <dlfcn.h> header file. */
-+#ifndef CPPUNIT_HAVE_DLFCN_H
-+#define CPPUNIT_HAVE_DLFCN_H 1
-+#endif
-+
-+/* define to 1 if the compiler implements namespaces */
-+#ifndef CPPUNIT_HAVE_NAMESPACES
-+#define CPPUNIT_HAVE_NAMESPACES 1
-+#endif
-+
-+/* define if the compiler supports Run-Time Type Identification */
-+#ifndef CPPUNIT_HAVE_RTTI
-+#define CPPUNIT_HAVE_RTTI 0
-+#endif
-+
-+/* define if the compiler has stringstream */
-+#ifndef CPPUNIT_HAVE_SSTREAM
-+#define CPPUNIT_HAVE_SSTREAM 1
-+#endif
-+
-+/* Define if you have the <strstream> header file. */
-+#ifndef CPPUNIT_HAVE_STRSTREAM
-+#define CPPUNIT_HAVE_STRSTREAM 1
-+#endif
-+
-+/* Name of package */
-+#ifndef CPPUNIT_PACKAGE
-+#define CPPUNIT_PACKAGE "cppunit"
-+#endif
-+
-+/* Define to 1 to use type_info::name() for class names */
-+#ifndef CPPUNIT_USE_TYPEINFO_NAME
-+#define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI
-+#endif
-+
-+/* Version number of package */
-+#ifndef CPPUNIT_VERSION
-+#define CPPUNIT_VERSION "1.8.0"
-+#endif
-+
-+/* _INCLUDE_CPPUNIT_CONFIG_AUTO_H */
-+#endif
---- misc/cppunit-1.8.0/include/cppunit/config-msvc6.h 2002-03-25 19:41:39.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/config-msvc6.h 2009-09-12 14:15:35.250000000 +0200
-@@ -21,12 +21,10 @@
- #define CPPUNIT_HAVE_NAMESPACES 1
- #endif
-
--/* define if the compiler supports Run-Time Type Identification */
- #ifndef CPPUNIT_HAVE_RTTI
--#define CPPUNIT_HAVE_RTTI 1
-+#define CPPUNIT_HAVE_RTTI 0
- #endif
-
--/* Define to 1 to use type_info::name() for class names */
- #ifndef CPPUNIT_USE_TYPEINFO_NAME
- #define CPPUNIT_USE_TYPEINFO_NAME CPPUNIT_HAVE_RTTI
- #endif
---- misc/cppunit-1.8.0/include/cppunit/extensions/AutoRegisterSuite.h 2002-03-28 16:47:07.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/extensions/AutoRegisterSuite.h 2009-09-12 14:15:35.265625000 +0200
-@@ -1,6 +1,7 @@
- #ifndef CPPUNIT_EXTENSIONS_AUTOREGISTERSUITE_H
- #define CPPUNIT_EXTENSIONS_AUTOREGISTERSUITE_H
-
-+#include <stdio.h>
- #include <string>
- #include <cppunit/extensions/TestSuiteFactory.h>
- #include <cppunit/extensions/TestFactoryRegistry.h>
-@@ -30,19 +31,20 @@
- /** Auto-register the suite factory in the global registry.
- */
- AutoRegisterSuite()
-- {
-- TestFactory *factory = new TestSuiteFactory<TestCaseType>();
-- TestFactoryRegistry::getRegistry().registerFactory( factory );
-- }
--
-+ {
-+ TestFactory *factory = new TestSuiteFactory<TestCaseType>();
-+ TestFactoryRegistry::getRegistry().registerFactory( factory );
-+ }
-+
- /** Auto-register the suite factory in the specified registry.
- * \param name Name of the registry.
- */
- AutoRegisterSuite( const std::string &name )
-- {
-- TestFactory *factory = new TestSuiteFactory<TestCaseType>();
-- TestFactoryRegistry::getRegistry( name ).registerFactory( factory );
-- }
-+ {
-+ // printf("AutoRegisterSuite %s\n", name.c_str());
-+ TestFactory *factory = new TestSuiteFactory<TestCaseType>();
-+ TestFactoryRegistry::getRegistry( name ).registerFactory( factory );
-+ }
- };
-
- } // namespace CppUnit
---- misc/cppunit-1.8.0/include/cppunit/extensions/HelperMacros.h 2002-03-28 16:47:07.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/extensions/HelperMacros.h 2009-09-12 14:15:35.281250000 +0200
-@@ -132,6 +132,14 @@
- } \
- }; \
- public: \
-+ static CppUnit::TestSuite *suite() \
-+ { \
-+ CppUnit::TestSuiteBuilder<__ThisTestFixtureType> \
-+ builder __CPPUNIT_SUITE_CTOR_ARGS( ATestFixtureType ); \
-+ ThisTestFixtureFactory factory; \
-+ __ThisTestFixtureType::registerTests( builder.suite(), &factory ); \
-+ return builder.takeSuite(); \
-+ } \
- static void \
- registerTests( CppUnit::TestSuite *suite, \
- CppUnit::TestFixtureFactory *factory ) \
-@@ -245,14 +253,6 @@
- #define CPPUNIT_TEST_SUITE_END() \
- builder.takeSuite(); \
- } \
-- static CppUnit::TestSuite *suite() \
-- { \
-- CppUnit::TestSuiteBuilder<__ThisTestFixtureType> \
-- builder __CPPUNIT_SUITE_CTOR_ARGS( ATestFixtureType ); \
-- ThisTestFixtureFactory factory; \
-- __ThisTestFixtureType::registerTests( builder.suite(), &factory ); \
-- return builder.takeSuite(); \
-- } \
- private: /* dummy typedef so that the macro can still end with ';'*/ \
- typedef ThisTestFixtureFactory __ThisTestFixtureFactory
-
-@@ -283,10 +283,12 @@
- * \see CPPUNIT_TEST_SUITE, CppUnit::AutoRegisterSuite,
- * CppUnit::TestFactoryRegistry.
- */
--#define CPPUNIT_TEST_SUITE_REGISTRATION( ATestFixtureType ) \
-- static CppUnit::AutoRegisterSuite< ATestFixtureType > \
-- __CPPUNIT_MAKE_UNIQUE_NAME(__autoRegisterSuite )
-
-+/* LLA:
-+ #define CPPUNIT_TEST_SUITE_REGISTRATION( ATestFixtureType ) \
-+ static CppUnit::AutoRegisterSuite< ATestFixtureType > \
-+ __CPPUNIT_MAKE_UNIQUE_NAME(__autoRegisterSuite )
-+*/
-
- /** Adds the specified fixture suite to the specified registry suite.
- * \ingroup CreatingTestSuite
-@@ -325,21 +327,7 @@
- */
- #define CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( ATestFixtureType, suiteName ) \
- static CppUnit::AutoRegisterSuite< ATestFixtureType > \
-- __CPPUNIT_MAKE_UNIQUE_NAME(__autoRegisterSuite )(suiteName)
--
--
--// Backwards compatibility
--// (Not tested!)
--
--#if CPPUNIT_ENABLE_CU_TEST_MACROS
--
--#define CU_TEST_SUITE(tc) CPPUNIT_TEST_SUITE(tc)
--#define CU_TEST_SUB_SUITE(tc,sc) CPPUNIT_TEST_SUB_SUITE(tc,sc)
--#define CU_TEST(tm) CPPUNIT_TEST(tm)
--#define CU_TEST_SUITE_END() CPPUNIT_TEST_SUITE_END()
--#define CU_TEST_SUITE_REGISTRATION(tc) CPPUNIT_TEST_SUITE_REGISTRATION(tc)
--
--#endif
-+ __CPPUNIT_MAKE_UNIQUE_NAME(__autoRegisterSuite )( suiteName )
-
-
- #endif // CPPUNIT_EXTENSIONS_HELPERMACROS_H
---- misc/cppunit-1.8.0/include/cppunit/extensions/TestFactoryRegistry.h 2002-03-28 16:47:07.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/extensions/TestFactoryRegistry.h 2009-09-12 14:15:35.296875000 +0200
-@@ -4,13 +4,16 @@
- #include <cppunit/Portability.h>
-
- #if CPPUNIT_NEED_DLL_DECL
-+#ifdef _MSC_VER
- #pragma warning( push )
- #pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
- #endif
-+#endif
-
- #include <cppunit/extensions/TestFactory.h>
- #include <map>
- #include <string>
-+#include <cppunit/Test.h>
-
- namespace CppUnit {
-
-@@ -79,7 +82,7 @@
- * \param name Name of the registry. It is the name of TestSuite returned by
- * makeTest().
- */
-- TestFactoryRegistry( std::string name = "All Tests" );
-+ TestFactoryRegistry( std::string const& name = "All Tests" );
-
- /// Destructor.
- virtual ~TestFactoryRegistry();
-@@ -105,6 +108,7 @@
- * specified name.
- */
- static TestFactoryRegistry &getRegistry( const std::string &name );
-+ static void testRegistries(hTestResult _pResult);
-
- /** Adds the registered tests to the specified suite.
- * \param suite Suite the tests are added to.
-@@ -116,9 +120,12 @@
- * \param factory Factory to register.
- * \deprecated Use registerFactory( TestFactory *) instead.
- */
-+protected:
-+
- void registerFactory( const std::string &name,
- TestFactory *factory );
--
-+public:
-+
- /** Adds the specified TestFactory to the registry.
- *
- * \param factory Factory to register.
-@@ -141,8 +148,10 @@
-
-
- #if CPPUNIT_NEED_DLL_DECL
-+#ifdef _MSC_VER
- #pragma warning( pop )
- #endif
-+#endif
-
-
- #endif // CPPUNIT_EXTENSIONS_TESTFACTORYREGISTRY_H
---- misc/cppunit-1.8.0/include/cppunit/extensions/TestSuiteBuilder.h 2002-03-28 16:47:07.000000000 +0100
-+++ misc/build/cppunit-1.8.0/include/cppunit/extensions/TestSuiteBuilder.h 2009-09-12 14:15:35.312500000 +0200
-@@ -34,11 +34,11 @@
- }
- #endif
-
-- TestSuiteBuilder( TestSuite *suite ) : m_suite( suite )
-+ TestSuiteBuilder( TestSuite *_suite ) : m_suite( _suite )
- {
- }
-
-- TestSuiteBuilder(std::string name) : m_suite( new TestSuite(name) )
-+ TestSuiteBuilder(std::string const& name) : m_suite( new TestSuite(name) )
- {
- }
-
-@@ -57,7 +57,7 @@
- m_suite->addTest( test );
- }
-
-- void addTestCaller( std::string methodName,
-+ void addTestCaller( std::string const& methodName,
- TestMethod testMethod )
- {
- Test *test =
-@@ -66,7 +66,7 @@
- addTest( test );
- }
-
-- void addTestCaller( std::string methodName,
-+ void addTestCaller( std::string const& methodName,
- TestMethod testMethod,
- Fixture *fixture )
- {
-@@ -78,7 +78,7 @@
- }
-
- template<typename ExceptionType>
-- void addTestCallerForException( std::string methodName,
-+ void addTestCallerForException( std::string const& methodName,
- TestMethod testMethod,
- Fixture *fixture,
- ExceptionType *dummyPointer )
-@@ -93,7 +93,8 @@
-
- std::string makeTestName( const std::string &methodName )
- {
-- return m_suite->getName() + "." + methodName;
-+ // return m_suite->getName() + "." + methodName;
-+ return methodName;
- }
-
- private:
---- misc/cppunit-1.8.0/include/cppunit/externcallbackfunc.hxx 2009-09-14 08:43:30.703125000 +0200
-+++ misc/build/cppunit-1.8.0/include/cppunit/externcallbackfunc.hxx 2009-09-12 15:12:02.703125000 +0200
-@@ -1 +1,36 @@
--dummy
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * Copyright 2000, 2010 Oracle and/or its affiliates.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * This file is part of OpenOffice.org.
-+ *
-+ * OpenOffice.org is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License version 3
-+ * only, as published by the Free Software Foundation.
-+ *
-+ * OpenOffice.org is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU Lesser General Public License version 3 for more details
-+ * (a copy is included in the LICENSE file that accompanied this code).
-+ *
-+ * You should have received a copy of the GNU Lesser General 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 _externcallbackfunc_hxx
-+#define _externcallbackfunc_hxx
-+
-+#include <cppunit/callbackfunc_fktptr.h>
-+
-+// these pointers have they origin in 'tresregister.cxx'
-+extern FktPtr_CallbackDispatch pCallbackFunc;
-+
-+#endif
---- misc/cppunit-1.8.0/include/cppunit/tagvalues.hxx 2009-09-14 08:43:30.609375000 +0200
-+++ misc/build/cppunit-1.8.0/include/cppunit/tagvalues.hxx 2009-09-12 15:14:27.812500000 +0200
-@@ -1 +1,91 @@
--dummy
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * Copyright 2000, 2010 Oracle and/or its affiliates.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * This file is part of OpenOffice.org.
-+ *
-+ * OpenOffice.org is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License version 3
-+ * only, as published by the Free Software Foundation.
-+ *
-+ * OpenOffice.org is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU Lesser General Public License version 3 for more details
-+ * (a copy is included in the LICENSE file that accompanied this code).
-+ *
-+ * You should have received a copy of the GNU Lesser General 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 TAGVALUES_H
-+#define TAGVALUES_H
-+
-+typedef unsigned long Tag;
-+
-+/* constants for Tag.ti_Tag, control tag values */
-+#define TAG_DONE (Tag(0L)) /* terminates array of TagItems. ti_Data unused */
-+#define TAG_END (Tag(0L)) /* synonym for TAG_DONE */
-+#define TAG_IGNORE (Tag(1L)) /* ignore this item, not end of array */
-+#define TAG_MORE (Tag(2L)) /* ti_Data is pointer to another array of TagItems
-+ * note that this tag terminates the current array
-+ */
-+#define TAG_SKIP (Tag(3L)) /* skip this and the next ti_Data items */
-+
-+/* differentiates user tags from control tags */
-+#define TAG_USER (Tag(1L<<31))
-+
-+
-+#define TAG_TYPE (Tag(TAG_USER | (0x01L)))
-+
-+#define TAG_RESULT (TAG_USER | 0x100)
-+
-+#define RESULT_START (Tag(TAG_RESULT | (0x02L)))
-+#define TAG_RESULT_PTR (Tag(TAG_RESULT | (0x03L)))
-+#define TAG_TEST_PTR (Tag(TAG_RESULT | (0x04L)))
-+
-+#define RESULT_END (Tag(TAG_RESULT | (0x05L)))
-+
-+#define RESULT_ADD_FAILURE (Tag(TAG_RESULT | (0x06L)))
-+#define RESULT_ADD_ERROR (Tag(TAG_RESULT | (0x07L)))
-+
-+#define TAG_EXCEPTION (Tag(TAG_RESULT | (0x08L)))
-+
-+#define RESULT_ADD_INFO (Tag(TAG_RESULT | (0x09L)))
-+#define TAG_INFO (Tag(TAG_RESULT | (0x0aL)))
-+
-+#define RESULT_ENTER_NODE (Tag(TAG_RESULT | (0x0bL)))
-+#define RESULT_LEAVE_NODE (Tag(TAG_RESULT | (0x0cL)))
-+#define TAG_NODENAME (Tag(TAG_RESULT | (0x0dL)))
-+
-+#define RESULT_SHOULD_STOP (Tag(TAG_RESULT | (0x0eL)))
-+
-+
-+#define TAG_SIGNAL (TAG_USER | 0x200)
-+// #define SIGNAL_CHECK (Tag(TAG_SIGNAL | (0x01L)))
-+// #define INIT_SIGNAL_HANDLING (Tag(TAG_SIGNAL | (0x04L)))
-+// #define RELEASE_SIGNAL_HANDLING (Tag(TAG_SIGNAL | (0x05L)))
-+
-+#define SIGNAL_START_TEST (Tag(TAG_SIGNAL | (0x06L)))
-+#define SIGNAL_END_TEST (Tag(TAG_SIGNAL | (0x07L)))
-+
-+#define TAG_EXECUTION (TAG_USER | 0x400)
-+#define EXECUTION_CHECK (Tag(TAG_EXECUTION | (0x01)))
-+#define INIT_TEST (Tag(TAG_EXECUTION | (0x02)))
-+#define RELEASE_TEST (Tag(TAG_EXECUTION | (0x03)))
-+// #define EXECUTION_PUSH_NAME (Tag(TAG_EXECUTION | (0x04)))
-+// #define EXECUTION_POP_NAME (Tag(TAG_EXECUTION | (0x05)))
-+
-+#define DO_NOT_EXECUTE 666
-+#define GO_EXECUTE 1
-+
-+typedef long ReturnValue;
-+
-+#endif
---- misc/cppunit-1.8.0/makefile.mk 2009-09-12 15:20:48.343750000 +0200
-+++ misc/build/cppunit-1.8.0/makefile.mk 2009-09-12 14:15:35.328125000 +0200
-@@ -1 +1,29 @@
--dummy
-+#*************************************************************************
-+#
-+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+#
-+# Copyright 2000, 2010 Oracle and/or its affiliates.
-+#
-+# OpenOffice.org - a multi-platform office productivity suite
-+#
-+# This file is part of OpenOffice.org.
-+#
-+# OpenOffice.org is free software: you can redistribute it and/or modify
-+# it under the terms of the GNU Lesser General Public License version 3
-+# only, as published by the Free Software Foundation.
-+#
-+# OpenOffice.org is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+# GNU Lesser General Public License version 3 for more details
-+# (a copy is included in the LICENSE file that accompanied this code).
-+#
-+# You should have received a copy of the GNU Lesser General Public License
-+# version 3 along with OpenOffice.org. If not, see
-+# <http://www.openoffice.org/license.html>
-+# for a copy of the LGPLv3 License.
-+#
-+#*************************************************************************
-+
-+target:
-+ cd src && $(MAKE) $(MFLAGS) $(CALLMACROS)
---- misc/cppunit-1.8.0/src/cppunit/Asserter.cpp 2002-03-27 20:04:02.000000000 +0100
-+++ misc/build/cppunit-1.8.0/src/cppunit/Asserter.cpp 2009-09-12 14:15:35.343750000 +0200
-@@ -1,52 +1,72 @@
- #include <cppunit/Asserter.h>
- #include <cppunit/NotEqualException.h>
-
--
- namespace CppUnit
- {
--
-+
-
- namespace Asserter
- {
-
-+void
-+fail( std::string const& message,
-+ SourceLine const& sourceLine )
-+{
-+ throw Exception( message, sourceLine );
-+}
-
- void
--fail( std::string message,
-- SourceLine sourceLine )
-+failStub( std::string const& message,
-+ SourceLine const& sourceLine )
- {
-- throw Exception( message, sourceLine );
-+ throw StubException( message, sourceLine );
- }
-
-
- void
- failIf( bool shouldFail,
-- std::string message,
-- SourceLine location )
-+ std::string const& message,
-+ SourceLine const& location )
- {
- if ( shouldFail )
-- fail( message, location );
-+ {
-+ fail( message, location );
-+ }
- }
-
--
-+// -----------------------------------------------------------------------------
- void
--failNotEqual( std::string expected,
-- std::string actual,
-- SourceLine sourceLine,
-- std::string additionalMessage )
-+failIf( bool shouldFail,
-+ const char* _suMessage,
-+ SourceLine const& location )
- {
-- throw NotEqualException( expected,
-- actual,
-- sourceLine,
-- additionalMessage );
-+ if ( shouldFail )
-+ {
-+ std::string message( _suMessage );
-+ fail( message, location );
-+ }
-+}
-+// -----------------------------------------------------------------------------
-+
-+void
-+failNotEqual( std::string const& expected,
-+ std::string const& actual,
-+ SourceLine const& sourceLine,
-+ std::string const& additionalMessage )
-+{
-+ throw NotEqualException( expected,
-+ actual,
-+ sourceLine,
-+ additionalMessage );
- }
-
-
- void
- failNotEqualIf( bool shouldFail,
-- std::string expected,
-- std::string actual,
-- SourceLine sourceLine,
-- std::string additionalMessage )
-+ std::string const& expected,
-+ std::string const& actual,
-+ SourceLine const& sourceLine,
-+ std::string const& additionalMessage )
- {
- if ( shouldFail )
- failNotEqual( expected, actual, sourceLine, additionalMessage );
---- misc/cppunit-1.8.0/src/cppunit/Exception.cpp 2001-10-19 20:37:24.000000000 +0200
-+++ misc/build/cppunit-1.8.0/src/cppunit/Exception.cpp 2009-09-12 14:15:35.359375000 +0200
-@@ -19,20 +19,19 @@
-
- /// Construct the exception
- Exception::Exception( const Exception &other ) :
-- std::exception( other )
--{
-- m_message = other.m_message;
-- m_sourceLine = other.m_sourceLine;
--}
-+ std::exception( other ),
-+ m_message( other.m_message),
-+ m_sourceLine(other.m_sourceLine)
-+{}
-
-
- /*!
- * \deprecated Use other constructor instead.
- */
--Exception::Exception( std::string message,
-- SourceLine sourceLine ) :
-- m_message( message ),
-- m_sourceLine( sourceLine )
-+Exception::Exception( std::string const& _message,
-+ SourceLine const& _sourceLine ) :
-+ m_message( _message ),
-+ m_sourceLine( _sourceLine )
- {
- }
-
-@@ -41,9 +40,9 @@
- /*!
- * \deprecated Use other constructor instead.
- */
--Exception::Exception( std::string message,
-+Exception::Exception( std::string const& message,
- long lineNumber,
-- std::string fileName ) :
-+ std::string const& fileName ) :
- m_message( message ),
- m_sourceLine( fileName, lineNumber )
- {
---- misc/cppunit-1.8.0/src/cppunit/NotEqualException.cpp 2001-10-06 00:27:14.000000000 +0200
-+++ misc/build/cppunit-1.8.0/src/cppunit/NotEqualException.cpp 2009-09-12 14:15:35.359375000 +0200
-@@ -3,17 +3,17 @@
- namespace CppUnit {
-
-
--NotEqualException::NotEqualException( std::string expected,
-- std::string actual,
-- SourceLine sourceLine ,
-- std::string additionalMessage ) :
-- Exception( "Expected: " + expected +
-- ", but was: " + actual +
-- "." + additionalMessage ,
-- sourceLine),
-- m_expected( expected ),
-- m_actual( actual ),
-- m_additionalMessage( additionalMessage )
-+NotEqualException::NotEqualException( std::string const& _expected,
-+ std::string const& _actual,
-+ SourceLine const& _sourceLine ,
-+ std::string const& _additionalMessage ) :
-+ Exception( "Expected: " + _expected +
-+ ", but was: " + _actual +
-+ "." + _additionalMessage ,
-+ _sourceLine),
-+ m_expected( _expected ),
-+ m_actual( _actual ),
-+ m_additionalMessage( _additionalMessage )
- {
- }
-
-@@ -22,10 +22,10 @@
- /*!
- * \deprecated Use other constructor instead.
- */
--NotEqualException::NotEqualException( std::string expected,
-- std::string actual,
-+NotEqualException::NotEqualException( std::string const& expected,
-+ std::string const& actual,
- long lineNumber,
-- std::string fileName ) :
-+ std::string const& fileName ) :
- Exception( "Expected: " + expected + ", but was: " + actual,
- lineNumber,
- fileName ),
---- misc/cppunit-1.8.0/src/cppunit/SourceLine.cpp 2001-10-06 00:27:14.000000000 +0200
-+++ misc/build/cppunit-1.8.0/src/cppunit/SourceLine.cpp 2009-09-12 14:15:35.375000000 +0200
-@@ -10,10 +10,10 @@
- }
-
-
--SourceLine::SourceLine( const std::string &fileName,
-- int lineNumber ) :
-- m_fileName( fileName ),
-- m_lineNumber( lineNumber )
-+SourceLine::SourceLine( const std::string &file,
-+ int line ) :
-+ m_fileName( file ),
-+ m_lineNumber( line )
- {
- }
-
---- misc/cppunit-1.8.0/src/cppunit/TestAssert.cpp 2001-10-07 21:36:47.000000000 +0200
-+++ misc/build/cppunit-1.8.0/src/cppunit/TestAssert.cpp 2009-09-12 14:15:35.390625000 +0200
-@@ -1,4 +1,4 @@
--#if HAVE_CMATH
-+#ifdef HAVE_CMATH
- # include <cmath>
- #else
- # include <math.h>
-@@ -15,56 +15,56 @@
- /// Check for a failed general assertion
- void
- TestAssert::assertImplementation( bool condition,
-- std::string conditionExpression,
-- long lineNumber,
-- std::string fileName )
-+ std::string conditionExpression,
-+ long lineNumber,
-+ std::string fileName )
- {
- Asserter::failIf( condition,
-- conditionExpression,
-- SourceLine( fileName, lineNumber ) );
-+ conditionExpression,
-+ SourceLine( fileName, lineNumber ) );
- }
-
-
- /// Reports failed equality
- void
- TestAssert::assertNotEqualImplementation( std::string expected,
-- std::string actual,
-- long lineNumber,
-- std::string fileName )
-+ std::string actual,
-+ long lineNumber,
-+ std::string fileName )
- {
- Asserter::failNotEqual( expected,
-- actual,
-- SouceLine( fileName, lineNumber ), "" );
-+ actual,
-+ SouceLine( fileName, lineNumber ), "" );
- }
-
-
- /// Check for a failed equality assertion
- void
- TestAssert::assertEquals( double expected,
-- double actual,
-- double delta,
-- long lineNumber,
-- std::string fileName )
-+ double actual,
-+ double delta,
-+ long lineNumber,
-+ std::string fileName )
- {
- if (fabs (expected - actual) > delta)
-- assertNotEqualImplementation( assertion_traits<double>::toString(expected),
-- assertion_traits<double>::toString(actual),
-- lineNumber,
-- fileName );
-+ assertNotEqualImplementation( assertion_traits<double>::toString(expected),
-+ assertion_traits<double>::toString(actual),
-+ lineNumber,
-+ fileName );
- }
-
- #else // CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
-
- void
- TestAssert::assertDoubleEquals( double expected,
-- double actual,
-- double delta,
-- SourceLine sourceLine )
-+ double actual,
-+ double delta,
-+ SourceLine sourceLine )
- {
- Asserter::failNotEqualIf( fabs( expected - actual ) > delta,
-- assertion_traits<double>::toString(expected),
-- assertion_traits<double>::toString(actual),
-- sourceLine );
-+ assertion_traits<double>::toString(expected),
-+ assertion_traits<double>::toString(actual),
-+ sourceLine );
- }
-
-
---- misc/cppunit-1.8.0/src/cppunit/TestCase.cpp 2002-03-25 23:35:34.000000000 +0100
-+++ misc/build/cppunit-1.8.0/src/cppunit/TestCase.cpp 2009-09-12 15:14:46.515625000 +0200
-@@ -1,74 +1,142 @@
-+#include <stdlib.h>
- #include <cppunit/Portability.h>
- #include <typeinfo>
- #include <stdexcept>
-
- #include "cppunit/TestCase.h"
- #include "cppunit/Exception.h"
--#include "cppunit/TestResult.h"
--
-+#include "cppunit/tagvalues.hxx"
-+#include "cppunit/externcallbackfunc.hxx"
-
- namespace CppUnit {
-
- /// Create a default TestResult
--CppUnit::TestResult*
--TestCase::defaultResult()
--{
-- return new TestResult;
--}
--
--
--/// Run the test and catch any exceptions that are triggered by it
--void
--TestCase::run( TestResult *result )
--{
-- result->startTest(this);
--
-- try {
-- setUp();
--
-- try {
-- runTest();
-- }
-- catch ( Exception &e ) {
-- Exception *copy = e.clone();
-- result->addFailure( this, copy );
-- }
-- catch ( std::exception &e ) {
-- result->addError( this, new Exception( e.what() ) );
-- }
-- catch (...) {
-- Exception *e = new Exception( "caught unknown exception" );
-- result->addError( this, e );
-- }
--
-- try {
-- tearDown();
-- }
-- catch (...) {
-- result->addError( this, new Exception( "tearDown() failed" ) );
-- }
-- }
-- catch (...) {
-- result->addError( this, new Exception( "setUp() failed" ) );
-- }
--
-- result->endTest( this );
--}
--
--
--/// A default run method
--TestResult *
--TestCase::run()
--{
-- TestResult *result = defaultResult();
--
-- run (result);
-- return result;
--}
-+//# CppUnit::TestResult*
-+//# TestCase::defaultResult()
-+//# {
-+//# return new TestResult;
-+//# }
-+
-+
-+/// Run the test and catch any exceptions that are triggered by it
-+//# void
-+//# TestCase::run( TestResult *result )
-+//# {
-+//# result->startTest(this);
-+//#
-+//# try {
-+//# setUp();
-+//#
-+//# try {
-+//# runTest();
-+//# }
-+//# catch ( Exception &e ) {
-+//# Exception *copy = e.clone();
-+//# result->addFailure( this, copy );
-+//# }
-+//# catch ( std::exception &e ) {
-+//# result->addError( this, new Exception( e.what() ) );
-+//# }
-+//# catch (...) {
-+//# Exception *e = new Exception( "caught unknown exception" );
-+//# result->addError( this, e );
-+//# }
-+//#
-+//# try {
-+//# tearDown();
-+//# }
-+//# catch (...) {
-+//# result->addError( this, new Exception( "tearDown() failed" ) );
-+//# }
-+//# }
-+//# catch (...) {
-+//# result->addError( this, new Exception( "setUp() failed" ) );
-+//# }
-+//#
-+//# result->endTest( this );
-+//# }
-+//#
-+
-+void
-+TestCase::run( hTestResult result )
-+{
-+ CppUnit::Test* pTest = this;
-+
-+ // if (signalCheck(pTest->getName()) == HAS_SIGNAL)
-+ long nValue = (pCallbackFunc)(0 /* NULL */, TAG_TYPE, EXECUTION_CHECK, TAG_RESULT_PTR, result, TAG_NODENAME, pTest->getName().c_str(), TAG_DONE);
-+ if (nValue == DO_NOT_EXECUTE)
-+ {
-+ return;
-+ }
-+
-+ // (pTestResult_StartTest)(result, pTest);
-+ (pCallbackFunc)(0 /* NULL */, TAG_TYPE, RESULT_START, TAG_RESULT_PTR, result, TAG_TEST_PTR, pTest, TAG_DONE);
-+
-+ try
-+ {
-+ setUp();
-+
-+ try
-+ {
-+ runTest();
-+ // (pTestResult_AddInfo)(result, pTest, "PASSED");
-+ (pCallbackFunc)(0 /* NULL */, TAG_TYPE, RESULT_ADD_INFO, TAG_RESULT_PTR, result, TAG_TEST_PTR, pTest, TAG_INFO, "PASSED", TAG_DONE);
-+ }
-+ catch ( CppUnit::StubException &)
-+ {
-+ (pCallbackFunc)(0 /* NULL */, TAG_TYPE, RESULT_ADD_INFO, TAG_RESULT_PTR, result, TAG_TEST_PTR, pTest, TAG_INFO, "STUB", TAG_DONE );
-+ }
-+ catch ( CppUnit::Exception &e )
-+ {
-+ CppUnit::Exception *copy = e.clone();
-+ // (pTestResult_AddFailure)( result, pTest, copy );
-+ (pCallbackFunc)(0 /* NULL */, TAG_TYPE, RESULT_ADD_FAILURE, TAG_RESULT_PTR, result, TAG_TEST_PTR, pTest, TAG_EXCEPTION, copy, TAG_DONE );
-+ }
-+ catch ( std::exception &e )
-+ {
-+ // (pTestResult_AddError)( result, pTest, new Exception( e.what() ) );
-+ (pCallbackFunc)( 0 /* NULL */, TAG_TYPE, RESULT_ADD_ERROR, TAG_RESULT_PTR, result, TAG_TEST_PTR, pTest, TAG_EXCEPTION, new CppUnit::Exception( e.what() ), TAG_DONE );
-+ }
-+ catch (...)
-+ {
-+ CppUnit::Exception *e = new CppUnit::Exception( "caught unknown exception" );
-+ // (pTestResult_AddError)( result, pTest, e );
-+ (pCallbackFunc)( 0 /* NULL */, TAG_TYPE, RESULT_ADD_ERROR, TAG_RESULT_PTR, result, TAG_TEST_PTR, pTest, TAG_EXCEPTION, e, TAG_DONE );
-+ }
-+
-+ try
-+ {
-+ tearDown();
-+ }
-+ catch (...)
-+ {
-+ // (pTestResult_AddError)( result, pTest, new Exception( "tearDown() failed" ) );
-+ (pCallbackFunc)( 0 /* NULL */, TAG_TYPE, RESULT_ADD_ERROR, TAG_RESULT_PTR, result, TAG_TEST_PTR, pTest, TAG_EXCEPTION, new CppUnit::Exception( "tearDown() failed" ), TAG_DONE );
-+ }
-+ }
-+ catch (...)
-+ {
-+ // (pTestResult_AddError)( result, pTest, new Exception( "setUp() failed" ) );
-+ (pCallbackFunc)( 0 /* NULL */, TAG_TYPE, RESULT_ADD_ERROR, TAG_RESULT_PTR, result, TAG_TEST_PTR, pTest, TAG_EXCEPTION, new CppUnit::Exception( "setUp() failed" ), TAG_DONE );
-+ }
-+
-+ // (pTestResult_EndTest)( result, pTest );
-+ (pCallbackFunc)( 0 /* NULL */, TAG_TYPE, RESULT_END, TAG_RESULT_PTR, result, TAG_TEST_PTR, pTest, TAG_DONE );
-+}
-+
-+/// A default run method
-+//# TestResult *
-+//# TestCase::run()
-+//# {
-+//# TestResult *result = defaultResult();
-+//#
-+//# run (result);
-+//# return result;
-+//# }
-
-
--/// All the work for runTest is deferred to subclasses
--void
-+/// All the work for runTest is deferred to subclasses
-+void
- TestCase::runTest()
- {
- }
-@@ -77,7 +145,7 @@
- /** Constructs a test case.
- * \param name the name of the TestCase.
- **/
--TestCase::TestCase( std::string name )
-+TestCase::TestCase( std::string const& name )
- : m_name(name)
- {
- }
-@@ -100,25 +168,25 @@
-
-
- /// Returns a count of all the tests executed
--int
-+int
- TestCase::countTestCases() const
--{
-- return 1;
-+{
-+ return 1;
- }
-
-
- /// Returns the name of the test case
--std::string
-+std::string
- TestCase::getName() const
--{
-- return m_name;
-+{
-+ return m_name;
- }
-
-
- /// Returns the name of the test case instance
--std::string
-+std::string
- TestCase::toString() const
--{
-+{
- std::string className;
-
- #if CPPUNIT_USE_TYPEINFO_NAME
-@@ -128,8 +196,13 @@
- className = "TestCase";
- #endif
-
-- return className + "." + getName();
-+ return className + "." + getName();
- }
--
-+
-
- } // namespace CppUnit
-+
-+// The following sets variables for GNU EMACS
-+// Local Variables:
-+// tab-width:4
-+// End:
---- misc/cppunit-1.8.0/src/cppunit/TestFactoryRegistry.cpp 2002-03-28 16:47:08.000000000 +0100
-+++ misc/build/cppunit-1.8.0/src/cppunit/TestFactoryRegistry.cpp 2009-09-12 15:17:54.093750000 +0200
-@@ -1,12 +1,19 @@
-+#include <stdio.h>
-+#include <stdlib.h>
- #include <cppunit/extensions/TestFactoryRegistry.h>
- #include <cppunit/TestSuite.h>
--#include <set>
-
-+#include <set>
-+#include <sstream>
-
- #if CPPUNIT_USE_TYPEINFO_NAME
- # include "cppunit/extensions/TypeInfoHelper.h"
- #endif
-
-+#include <cppunit/externcallbackfunc.hxx>
-+#include <cppunit/tagvalues.hxx>
-+
-+#undef HELLOWORLD_DEBUGGER
-
- namespace CppUnit {
-
-@@ -26,15 +33,18 @@
-
- static NamedRegistries &getInstance();
-
-- TestFactoryRegistry &getRegistry( std::string name );
-+ TestFactoryRegistry &getRegistry( std::string const& name );
-
- void wasDestroyed( TestFactory *factory );
-
- bool needDestroy( TestFactory *factory );
-
-+ void testRegistries( hTestResult );
- private:
-- typedef std::map<std::string, TestFactoryRegistry *> Registries;
-- Registries m_registries;
-+ typedef std::map<std::string, TestFactoryRegistry *> MapRegistries;
-+ // typedef std::pair<std::string, TestFactoryRegistry *> StringTestFactoryRegistry;
-+ // typedef std::vector< StringTestFactoryRegistry > MapRegistries;
-+ MapRegistries m_registries;
-
- typedef std::set<TestFactory *> Factories;
- Factories m_factoriesToDestroy;
-@@ -44,13 +54,27 @@
-
- NamedRegistries::~NamedRegistries()
- {
-- Registries::iterator it = m_registries.begin();
-- while ( it != m_registries.end() )
-- {
-- TestFactoryRegistry *registry = (it++)->second;
-- if ( needDestroy( registry ) )
-- delete registry;
-- }
-+#ifdef HELLOWORLD_DEBUGGER
-+ printf("~NamedRegistries.\n");
-+#endif
-+ MapRegistries::iterator it = m_registries.begin();
-+ while ( it != m_registries.end() )
-+ {
-+ TestFactoryRegistry *registry = (it++)->second;
-+ if ( needDestroy( registry ) )
-+ delete registry;
-+ }
-+/*
-+ for (MapRegistries::iterator it = m_registries.begin();
-+ it != m_registries.end();
-+ ++it)
-+ {
-+ StringTestFactoryRegistry stfr = *it;
-+ TestFactoryRegistry *registry = stfr.second;
-+ if ( needDestroy( registry ) )
-+ delete registry;
-+ }
-+*/
- }
-
-
-@@ -63,17 +87,55 @@
-
-
- TestFactoryRegistry &
--NamedRegistries::getRegistry( std::string name )
-+NamedRegistries::getRegistry( std::string const& name )
- {
-- Registries::const_iterator foundIt = m_registries.find( name );
-- if ( foundIt == m_registries.end() )
-+#ifdef HELLOWORLD_DEBUGGER
-+ printf("getRegistry '%s', ", name.c_str());
-+#endif
-+ MapRegistries::const_iterator foundIt = m_registries.find( name );
-+ if ( foundIt == m_registries.end() )
-+ {
-+ TestFactoryRegistry *factory = new TestFactoryRegistry( name );
-+ // m_registries.insert( std::make_pair( name, factory ) );
-+ m_registries[name] = factory;
-+ m_factoriesToDestroy.insert( factory );
-+
-+#ifdef HELLOWORLD_DEBUGGER
-+ printf("factory not found, create.\n");
-+#endif
-+ return *factory;
-+ }
-+#ifdef HELLOWORLD_DEBUGGER
-+ printf("factory found.\n");
-+#endif
-+ return *foundIt->second;
-+/*
-+ // MapRegistries::const_iterator foundIt;
-+ TestFactoryRegistry *pFound = NULL;
-+ for (MapRegistries::const_iterator it = m_registries.begin();
-+ it != m_registries.end();
-+ ++it)
-+ {
-+ StringTestFactoryRegistry stfr = *it;
-+ if (name == stfr.first)
-+ {
-+ pFound = stfr.second;
-+ break;
-+ }
-+ }
-+
-+ // MapRegistries::const_iterator foundIt = m_registries.find( name );
-+ if ( pFound != NULL )
- {
- TestFactoryRegistry *factory = new TestFactoryRegistry( name );
-- m_registries.insert( std::make_pair( name, factory ) );
-+ // m_registries.insert( std::make_pair( name, factory ) );
-+ StringTestFactoryRegistry stfr = std::make_pair(name, factory);
-+ m_registries.push_back(stfr);
- m_factoriesToDestroy.insert( factory );
- return *factory;
- }
-- return *foundIt->second;
-+ return *pFound;
-+*/
- }
-
-
-@@ -91,9 +153,32 @@
- return m_destroyedFactories.count( factory ) == 0;
- }
-
-+void NamedRegistries::testRegistries( hTestResult _pResult)
-+{
-+ // initialise the test handling
-+ (pCallbackFunc)(0 /* NULL */, TAG_TYPE, INIT_TEST, TAG_RESULT_PTR, _pResult, TAG_DONE);
-+
-+ // Start signal based Check
-+ for (MapRegistries::const_iterator it = m_registries.begin();
-+ it != m_registries.end();
-+ ++it)
-+ {
-+ std::string sName = (*it).first;
-+
-+ CppUnit::Test* tp = CppUnit::TestFactoryRegistry::getRegistry(sName).makeTest();
-+ tp->run(_pResult);
-+ }
-
-+ // release test handling
-+ (pCallbackFunc)(0 /* NULL */, TAG_TYPE, RELEASE_TEST, TAG_RESULT_PTR, _pResult, TAG_DONE);
-+ // start normal based tests, leave signal signed tests out.
-
--TestFactoryRegistry::TestFactoryRegistry( std::string name ) :
-+ //! Allfunction in the inclusion list which has a flag, not found, has to call here.
-+}
-+
-+// -----------------------------------------------------------------------------
-+
-+TestFactoryRegistry::TestFactoryRegistry( std::string const& name ) :
- m_name( name )
- {
- }
-@@ -116,26 +201,38 @@
- }
- }
-
--
-+// static
- TestFactoryRegistry &
- TestFactoryRegistry::getRegistry()
- {
- return getRegistry( "All Tests" );
- }
-
--
-+// static
- TestFactoryRegistry &
- TestFactoryRegistry::getRegistry( const std::string &name )
- {
- return NamedRegistries::getInstance().getRegistry( name );
- }
-
-+// static
-+void TestFactoryRegistry::testRegistries( hTestResult _pResult )
-+{
-+ NamedRegistries::getInstance().testRegistries( _pResult );
-+}
-+
-
- void
- TestFactoryRegistry::registerFactory( const std::string &name,
- TestFactory *factory )
- {
-- m_factories[name] = factory;
-+#ifdef HELLOWORLD_DEBUGGER
-+ printf("registerFactory %s\n", name.c_str());
-+#endif
-+ m_factories[name] = factory;
-+#ifdef HELLOWORLD_DEBUGGER
-+ printf("FactorySize: %d\n ", m_factories.size());
-+#endif
- }
-
-
-@@ -144,10 +241,23 @@
- {
- static int serialNumber = 1;
-
-- OStringStream ost;
-- ost << "@Dummy@" << serialNumber++;
--
-- registerFactory( ost.str(), factory );
-+ std::string aStr("@Dummy@_");
-+
-+ char cBuf[20];
-+ char *pBuf = cBuf;
-+ sprintf(pBuf, "%d", serialNumber++ );
-+
-+ aStr += std::string(pBuf);
-+
-+ // LLA: this does not work within Solaris, could be a problem of the osl::Module::load?
-+ // std::ostringstream ost;
-+ // ost << "@Dummy@" << nValue;
-+ // registerFactory( ost.str(), factory );
-+
-+#ifdef HELLOWORLD_DEBUGGER
-+ printf("aStr: %s\n", aStr.c_str());
-+#endif
-+ registerFactory( aStr, factory );
- }
-
-
-@@ -163,6 +273,9 @@
- void
- TestFactoryRegistry::addTestToSuite( TestSuite *suite )
- {
-+#ifdef HELLOWORLD_DEBUGGER
-+ printf("addTestToSuite %s\n", suite->getName().c_str());
-+#endif
- for ( Factories::iterator it = m_factories.begin();
- it != m_factories.end();
- ++it )
---- misc/cppunit-1.8.0/src/cppunit/TestFailure.cpp 2002-02-28 11:57:20.000000000 +0100
-+++ misc/build/cppunit-1.8.0/src/cppunit/TestFailure.cpp 2009-09-12 14:15:35.437500000 +0200
-@@ -5,12 +5,12 @@
- namespace CppUnit {
-
- /// Constructs a TestFailure with the given test and exception.
--TestFailure::TestFailure( Test *failedTest,
-- Exception *thrownException,
-- bool isError ) :
-- m_failedTest( failedTest ),
-- m_thrownException( thrownException ),
-- m_isError( isError )
-+TestFailure::TestFailure( Test *failed,
-+ Exception *_thrownException,
-+ ErrorType::num eError ) :
-+ m_failedTest( failed ),
-+ m_thrownException( _thrownException ),
-+ m_eError( eError )
- {
- }
-
-@@ -45,10 +45,19 @@
-
-
- /// Indicates if the failure is a failed assertion or an error.
--bool
-+bool
- TestFailure::isError() const
- {
-- return m_isError;
-+ if (m_eError == ErrorType::ET_ERROR ||
-+ m_eError == ErrorType::ET_SIGNAL)
-+ return true;
-+ return false;
-+}
-+
-+ErrorType::num
-+TestFailure::getErrorType() const
-+{
-+ return m_eError;
- }
-
-
-@@ -71,7 +80,7 @@
- TestFailure *
- TestFailure::clone() const
- {
-- return new TestFailure( m_failedTest, m_thrownException->clone(), m_isError );
-+ return new TestFailure( m_failedTest, m_thrownException->clone(), m_eError );
- }
-
- } // namespace CppUnit
---- misc/cppunit-1.8.0/src/cppunit/TestSuite.cpp 2002-03-24 20:39:55.000000000 +0100
-+++ misc/build/cppunit-1.8.0/src/cppunit/TestSuite.cpp 2009-09-12 15:16:07.265625000 +0200
-@@ -1,11 +1,13 @@
-+#include <stdlib.h>
- #include "cppunit/TestSuite.h"
--#include "cppunit/TestResult.h"
-+#include "cppunit/tagvalues.hxx"
-+#include "cppunit/externcallbackfunc.hxx"
-
- namespace CppUnit {
-
- /// Default constructor
--TestSuite::TestSuite( std::string name )
-- : m_name( name )
-+TestSuite::TestSuite( std::string const& name )
-+ : m_name( name )
- {
- }
-
-@@ -13,7 +15,7 @@
- /// Destructor
- TestSuite::~TestSuite()
- {
-- deleteContents();
-+ deleteContents();
- }
-
-
-@@ -21,28 +23,37 @@
- void
- TestSuite::deleteContents()
- {
-- for ( std::vector<Test *>::iterator it = m_tests.begin();
-- it != m_tests.end();
-- ++it)
-- delete *it;
-- m_tests.clear();
-+ for ( std::vector<Test *>::iterator it = m_tests.begin();
-+ it != m_tests.end();
-+ ++it)
-+ delete *it;
-+ m_tests.clear();
- }
-
-
- /// Runs the tests and collects their result in a TestResult.
-+
- void
--TestSuite::run( TestResult *result )
-+TestSuite::run( hTestResult result )
- {
-- for ( std::vector<Test *>::iterator it = m_tests.begin();
-- it != m_tests.end();
-- ++it )
-- {
-- if ( result->shouldStop() )
-- break;
--
-- Test *test = *it;
-- test->run( result );
-- }
-+ // (pTestResult_EnterNode)(result, getName().c_str());
-+ (pCallbackFunc)(0 /* NULL */, TAG_TYPE, RESULT_ENTER_NODE, TAG_RESULT_PTR, result, TAG_NODENAME, getName().c_str(), TAG_DONE);
-+ for ( std::vector<Test *>::const_iterator it = getTests().begin();
-+ it != getTests().end();
-+ ++it )
-+ {
-+ //# if ( result->shouldStop() )
-+ //# break;
-+ // if ( pTestResult_ShouldStop(result) )
-+ if ( (pCallbackFunc)(0 /* NULL */, TAG_TYPE, RESULT_SHOULD_STOP, TAG_RESULT_PTR, result, TAG_DONE) )
-+ {
-+ break;
-+ }
-+ Test *test = *it;
-+ test->run( result );
-+ }
-+ // (pTestResult_LeaveNode)(result, getName().c_str());
-+ (pCallbackFunc)(0 /* NULL */, TAG_TYPE, RESULT_LEAVE_NODE, TAG_RESULT_PTR, result, TAG_NODENAME, getName().c_str(), TAG_DONE);
- }
-
-
-@@ -50,14 +61,14 @@
- int
- TestSuite::countTestCases() const
- {
-- int count = 0;
--
-- for ( std::vector<Test *>::const_iterator it = m_tests.begin();
-- it != m_tests.end();
-- ++it )
-- count += (*it)->countTestCases();
--
-- return count;
-+ int count = 0;
-+
-+ for ( std::vector<Test *>::const_iterator it = m_tests.begin();
-+ it != m_tests.end();
-+ ++it )
-+ count += (*it)->countTestCases();
-+
-+ return count;
- }
-
-
-@@ -65,7 +76,7 @@
- void
- TestSuite::addTest( Test *test )
- {
-- m_tests.push_back( test );
-+ m_tests.push_back( test );
- }
-
-
-@@ -73,7 +84,7 @@
- std::string
- TestSuite::toString() const
- {
-- return "suite " + getName();
-+ return "suite " + getName();
- }
-
-
-@@ -81,16 +92,20 @@
- std::string
- TestSuite::getName() const
- {
-- return m_name;
-+ return m_name;
- }
-
-
- const std::vector<Test *> &
- TestSuite::getTests() const
- {
-- return m_tests;
-+ return m_tests;
- }
-
-
- } // namespace CppUnit
-
-+// The following sets variables for GNU EMACS
-+// Local Variables:
-+// tab-width:4
-+// End:
---- misc/cppunit-1.8.0/src/cppunit/makefile.mk 2009-09-12 15:20:48.515625000 +0200
-+++ misc/build/cppunit-1.8.0/src/cppunit/makefile.mk 2009-09-12 14:15:35.468750000 +0200
-@@ -1 +1,86 @@
--dummy
-+#*************************************************************************
-+#
-+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+#
-+# Copyright 2000, 2010 Oracle and/or its affiliates.
-+#
-+# OpenOffice.org - a multi-platform office productivity suite
-+#
-+# This file is part of OpenOffice.org.
-+#
-+# OpenOffice.org is free software: you can redistribute it and/or modify
-+# it under the terms of the GNU Lesser General Public License version 3
-+# only, as published by the Free Software Foundation.
-+#
-+# OpenOffice.org is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+# GNU Lesser General Public License version 3 for more details
-+# (a copy is included in the LICENSE file that accompanied this code).
-+#
-+# You should have received a copy of the GNU Lesser General 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=..$/..$/..$/..$/..$/..
-+INCEXT=..$/..$/include
-+
-+PRJNAME=cppunit
-+TARGET=cppunit
-+LIBTARGET=NO
-+ENABLE_EXCEPTIONS=TRUE
-+# ENABLE_RTTI=TRUE
-+
-+# --- Settings -----------------------------------------------------
-+
-+.INCLUDE : settings.mk
-+
-+# --- Files --------------------------------------------------------
-+
-+# CXXFILES = \
-+# querytemplate.cxx \
-+# stringhelper.cxx
-+
-+# ENVCFLAGSCXX+=-DCPPUNIT_BUILD_DLL
-+
-+CPPUNIT_TESTSHL_SLOFILES = \
-+ $(SLO)$/SourceLine.obj \
-+ $(SLO)$/Exception.obj \
-+ $(SLO)$/NotEqualException.obj \
-+ $(SLO)$/TestFailure.obj
-+
-+CPPUNIT_STATIC_SOLFILES = \
-+ $(SLO)$/Asserter.obj \
-+ $(SLO)$/TestCase.obj \
-+ $(SLO)$/TestSuite.obj \
-+ $(SLO)$/TestAssert.obj \
-+ $(SLO)$/TestFactoryRegistry.obj
-+
-+
-+SLOFILES = \
-+ $(CPPUNIT_TESTSHL_SLOFILES) \
-+ $(CPPUNIT_STATIC_SOLFILES)
-+#-------------------------------------------------------------------------------
-+# This is statically cppunit library
-+LIB1TARGET= $(LB)$/$(TARGET).lib
-+LIB1OBJFILES= \
-+ $(SLOFILES)
-+
-+.IF "$(GUI)"=="WNT"
-+.IF "$(COM)"=="GCC"
-+LIB1ARCHIV=$(LB)$/lib$(TARGET)$(DLLPOSTFIX).a
-+.ENDIF
-+#LIB1FILES=$(LB)$/c5t_winstuff.lib
-+.ENDIF
-+
-+.IF "$(GUI)" == "UNX"
-+LIB1ARCHIV=$(LB)$/lib$(TARGET)$(DLLPOSTFIX).a
-+.ENDIF
-+
-+# --- Targets ------------------------------------------------------
-+
-+.INCLUDE : target.mk
-+
---- misc/cppunit-1.8.0/src/makefile.mk 2009-09-12 15:20:48.421875000 +0200
-+++ misc/build/cppunit-1.8.0/src/makefile.mk 2009-09-12 14:15:35.484375000 +0200
-@@ -1 +1,29 @@
--dummy
-+#*************************************************************************
-+#
-+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+#
-+# Copyright 2000, 2010 Oracle and/or its affiliates.
-+#
-+# OpenOffice.org - a multi-platform office productivity suite
-+#
-+# This file is part of OpenOffice.org.
-+#
-+# OpenOffice.org is free software: you can redistribute it and/or modify
-+# it under the terms of the GNU Lesser General Public License version 3
-+# only, as published by the Free Software Foundation.
-+#
-+# OpenOffice.org is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+# GNU Lesser General Public License version 3 for more details
-+# (a copy is included in the LICENSE file that accompanied this code).
-+#
-+# You should have received a copy of the GNU Lesser General Public License
-+# version 3 along with OpenOffice.org. If not, see
-+# <http://www.openoffice.org/license.html>
-+# for a copy of the LGPLv3 License.
-+#
-+#*************************************************************************
-+
-+target:
-+ cd cppunit && $(MAKE) $(MFLAGS) $(CALLMACROS)
diff --git a/cppunit/makefile.mk b/cppunit/makefile.mk
index 7fb183f1ebc2..b57c341e2a23 100644
--- a/cppunit/makefile.mk
+++ b/cppunit/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,42 +21,132 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=.
+PRJ = .
+PRJNAME = cppunit
+TARGET = cppunit
-PRJNAME=so_cppunit
-TARGET=so_cppunit
+.INCLUDE: settings.mk
-# --- Settings -----------------------------------------------------
+TARFILE_NAME = cppunit-1.12.1
+TARFILE_MD5=bd30e9cf5523cdfc019b94f5e1d7fd19
+ # from <https://sourceforge.net/projects/cppunit/files/cppunit/1.12.1/
+ # cppunit-1.12.1.tar.gz/download>
-.INCLUDE : settings.mk
+PATCH_FILES = solarisfinite.patch warnings.patch windows.patch
+ # solarisfinite.patch: see <https://sourceforge.net/tracker/?func=detail&
+ # aid=2912590&group_id=11795&atid=311795>
+ # warnings.patch: see <https://sourceforge.net/tracker/?func=detail&
+ # aid=2912630&group_id=11795&atid=311795>
-# --- Files --------------------------------------------------------
+.IF "$(OS)" == "WNT" && "$(COM)" == "MSC"
-TARFILE_NAME=cppunit-1.8.0
+# On Windows, CppUnit appears to support either the Unix-style configure/make
+# approach with cygwin and gcc (and libtool fails miserably if gcc is replaced
+# by MSVC cl), or a Visual Studio project (CppUnitLibraries.dsw). However, the
+# latter is too old to work with vcbuild from a wntmsci12 tool chain. So, the
+# easiest way appears to inject hand-crafted dmake makefiles to build the
+# relevant parts. (Another approach would be to manually use the Visual Studio
+# IDE to convert CppUnitLibraries.dsw to modern format, inject the resulting
+# cppunit_dll.vcproj and DllPlugInTester.vcproj and build those with vcbuild.)
-ADDITIONAL_FILES=\
- include$/cppunit$/config-auto.h \
- include$/cppunit$/tagvalues.hxx \
- include$/cppunit$/callbackfunc_fktptr.h \
- include$/cppunit$/externcallbackfunc.hxx \
- makefile.mk \
- src$/makefile.mk \
- src$/cppunit$/makefile.mk
+CONFIGURE_ACTION = $(SED) -e s:@BACKPATH@:../$(BACK_PATH): \
+ < ../$(BACK_PATH)$(PATH_IN_MODULE)/ooo-cppunit_dll.mk \
+ > src/cppunit/ooo-cppunit_dll.mk && \
+ $(SED) -e s:@BACKPATH@:../$(BACK_PATH): \
+ < ../$(BACK_PATH)$(PATH_IN_MODULE)/ooo-DllPlugInTester.mk \
+ > src/DllPlugInTester/ooo-DllPlugInTester.mk
-PATCH_FILES=cppunit-1.8.0-r1.patch
+BUILD_ACTION = cd src/cppunit && dmake -f ooo-cppunit_dll.mk && \
+ cd ../DllPlugInTester && dmake -f ooo-DllPlugInTester.mk
-# CONFIGURE_DIR=
-# CONFIGURE_ACTION=
-#
-# BUILD_DIR=
-BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
+OUTDIR2INC = include/cppunit
+
+.INCLUDE: set_ext.mk
+.INCLUDE: target.mk
+.INCLUDE: tg_ext.mk
+
+$(PACKAGE_DIR)/$(CONFIGURE_FLAG_FILE): ooo-cppunit_dll.mk ooo-DllPlugInTester.mk
+
+.ELSE
+
+.IF "$(USE_SYSTEM_STL)" != "YES"
+
+OOO_STLPORT_CXXFLAGS = -I$(SOLARINCDIR)/stl
+.IF "$(USE_STLP_DEBUG)" == "TRUE"
+OOO_STLPORT_CXXFLAGS += -D_STLP_DEBUG
+.END
+.IF "$(COM)" == "GCC"
+OOO_STLPORT_CXXFLAGS += -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH)
+.END
+
+OOO_STLPORT_LDFLAGS = -L$(SOLARLIBDIR)
+OOO_STLPORT_LIBS = $(LIBSTLPORT)
+
+# When "checking for C compiler default output file name" configure
+# unfortunately uses "$CC $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS" to build
+# a C program that links against $(LIBSTLPORT); at least on one unxlngi6
+# machine, this has been observed to fail with "/lib/libm.so.6: undefined
+# reference to `_rtld_global_ro@GLIBC_PRIVATE'" unless -lm is also specified:
+.IF "$(OS)" == "LINUX" && "$(COM)" == "GCC" && "$(CPU)" == "I"
+OOO_STLPORT_LIBS += -lm
+.END
+
+# And later, when "checking whether the C compiler works" configure tries to
+# execute that program; however, the program would fail to locate the STLport
+# library (another work-around might be to add something like --as-needed around
+# $(LIBSTLPORT)):
+.IF "$(OS)" == "LINUX" || "$(OS)" == "SOLARIS"
+.IF "$(LD_LIBRARY_PATH)" == ""
+LD_LIBRARY_PATH := $(SOLARLIBDIR)
+ # strictly speaking, this is incorrect if the LD_LIBRARY_PATH environment
+ # variable is set to the empty string
+.ELSE
+LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):$(SOLARLIBDIR)
+.END
+.EXPORT: LD_LIBRARY_PATH
+.END
+
+.END
+
+# At least on Solaris with Sun CC, linking the cppunit dynamic library fails as
+# TestAssert.o uses fabs but -lm is missing from the command line (cppunit's
+# aclocal.m4 contains an unused AC_CHECK_LIBM, maybe using that would be a
+# better fix):
+.IF "$(OS)" == "SOLARIS" && "$(COM)" == "C52"
+MY_LIBS = -lm
+.END
+
+CONFIGURE_ACTION = ./configure
+CONFIGURE_FLAGS = --prefix=$(shell cd $(PACKAGE_DIR) && \
+ pwd $(PWDFLAGS))/$(TARFILE_ROOTDIR)/ooo-install \
+ --disable-dependency-tracking --disable-static --disable-doxygen \
+ --disable-html-docs --disable-latex-docs CC='$(CC)' CXX='$(CXX)' \
+ CXXFLAGS='$(EXTRA_CFLAGS) $(OOO_STLPORT_CXXFLAGS)' \
+ LDFLAGS='$(LDFLAGS) $(OOO_STLPORT_LDFLAGS)' \
+ LIBS='$(OOO_STLPORT_LIBS) $(MY_LIBS)'
+
+BUILD_ACTION = $(GNUMAKE)
+BUILD_FLAGS = install
+
+OUTDIR2INC = ooo-install/include/cppunit
-# --- Targets ------------------------------------------------------
+.IF "$(OS)" == "WNT"
+OUT2BIN = ooo-install/bin/DllPlugInTester.exe \
+ ooo-install/bin/cygcppunit-1-12-1.dll
+.ELSE
+OUT2BIN = ooo-install/bin/DllPlugInTester
+.IF "$(OS)" == "MACOSX"
+OUT2LIB = ooo-install/lib/libcppunit-1.12.1.dylib
+EXTRPATH = NONE
+.ELSE
+OUT2LIB = ooo-install/lib/libcppunit-1.12.so.1
+.END
+.END
-.INCLUDE : set_ext.mk
-.INCLUDE : target.mk
-.INCLUDE : tg_ext.mk
+.INCLUDE: set_ext.mk
+.INCLUDE: target.mk
+.INCLUDE: tg_ext.mk
+.END
diff --git a/stoc/test/tdmanager/testtdmanager.gcc3.map b/cppunit/ooo-DllPlugInTester.mk
index 609b64e1e0ca..1c8c8a0a167b 100644
--- a/stoc/test/tdmanager/testtdmanager.gcc3.map
+++ b/cppunit/ooo-DllPlugInTester.mk
@@ -23,16 +23,28 @@
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
-#*************************************************************************
+#***********************************************************************/
+
+PRJ = @BACKPATH@../..
+PRJNAME = cppunit
+TARGET = DllPlugInTester
+
+ENABLE_EXCEPTIONS = TRUE
+nodep = TRUE
+
+.INCLUDE: settings.mk
+
+CDEFS += -DCPPUNIT_DLL
+CFLAGSCXX += -I../../include
+UWINAPILIB =
-UDK_3_0_0 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
+OBJFILES = $(APP1OBJS)
- _ZN4_STL7num_put*; # STLport
+APP1OBJS = \
+ $(OBJ)/CommandLineParser.obj \
+ $(OBJ)/DllPlugInTester.obj
+APP1RPATH = NONE
+APP1STDLIBS = icppunit_dll.lib
+APP1TARGET = DllPlugInTester_dll
- local:
- *;
-};
+.INCLUDE: target.mk
diff --git a/cppunit/ooo-cppunit_dll.mk b/cppunit/ooo-cppunit_dll.mk
new file mode 100644
index 000000000000..048a51e90926
--- /dev/null
+++ b/cppunit/ooo-cppunit_dll.mk
@@ -0,0 +1,100 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General 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 = @BACKPATH@../..
+PRJNAME = cppunit
+TARGET = cppunit_dll
+
+ENABLE_EXCEPTIONS = TRUE
+EXTERNAL_WARNINGS_NOT_ERRORS = TRUE
+nodep = TRUE
+
+.INCLUDE: settings.mk
+
+CDEFS += -DCPPUNIT_BUILD_DLL
+CFLAGSCXX += -I../../include
+UWINAPILIB =
+
+SLOFILES = $(SHL1OBJS)
+
+SHL1IMPLIB = i$(SHL1TARGET)
+SHL1OBJS = \
+ $(SLO)/AdditionalMessage.obj \
+ $(SLO)/Asserter.obj \
+ $(SLO)/BeosDynamicLibraryManager.obj \
+ $(SLO)/BriefTestProgressListener.obj \
+ $(SLO)/CompilerOutputter.obj \
+ $(SLO)/DefaultProtector.obj \
+ $(SLO)/DllMain.obj \
+ $(SLO)/DynamicLibraryManager.obj \
+ $(SLO)/DynamicLibraryManagerException.obj \
+ $(SLO)/Exception.obj \
+ $(SLO)/Message.obj \
+ $(SLO)/PlugInManager.obj \
+ $(SLO)/PlugInParameters.obj \
+ $(SLO)/Protector.obj \
+ $(SLO)/ProtectorChain.obj \
+ $(SLO)/RepeatedTest.obj \
+ $(SLO)/SourceLine.obj \
+ $(SLO)/StringTools.obj \
+ $(SLO)/SynchronizedObject.obj \
+ $(SLO)/Test.obj \
+ $(SLO)/TestAssert.obj \
+ $(SLO)/TestCase.obj \
+ $(SLO)/TestCaseDecorator.obj \
+ $(SLO)/TestComposite.obj \
+ $(SLO)/TestDecorator.obj \
+ $(SLO)/TestFactoryRegistry.obj \
+ $(SLO)/TestFailure.obj \
+ $(SLO)/TestLeaf.obj \
+ $(SLO)/TestNamer.obj \
+ $(SLO)/TestPath.obj \
+ $(SLO)/TestPlugInDefaultImpl.obj \
+ $(SLO)/TestResult.obj \
+ $(SLO)/TestResultCollector.obj \
+ $(SLO)/TestRunner.obj \
+ $(SLO)/TestSetUp.obj \
+ $(SLO)/TestSuccessListener.obj \
+ $(SLO)/TestSuite.obj \
+ $(SLO)/TestSuiteBuilderContext.obj \
+ $(SLO)/TextOutputter.obj \
+ $(SLO)/TextTestProgressListener.obj \
+ $(SLO)/TextTestResult.obj \
+ $(SLO)/TextTestRunner.obj \
+ $(SLO)/TypeInfoHelper.obj \
+ $(SLO)/UnixDynamicLibraryManager.obj \
+ $(SLO)/Win32DynamicLibraryManager.obj \
+ $(SLO)/XmlDocument.obj \
+ $(SLO)/XmlElement.obj \
+ $(SLO)/XmlOutputter.obj \
+ $(SLO)/XmlOutputterHook.obj
+SHL1RPATH = NONE
+SHL1TARGET = cppunit_dll
+SHL1USE_EXPORTS = name
+DEF1NAME = $(SHL1TARGET)
+
+.INCLUDE: target.mk
diff --git a/cppunit/prj/build.lst b/cppunit/prj/build.lst
index f2587dd4c624..9bfcb57f9e89 100644
--- a/cppunit/prj/build.lst
+++ b/cppunit/prj/build.lst
@@ -1,3 +1,2 @@
-c5t cppunit : soltools stlport NULL
-c5t cppunit usr1 - all c5t_mkout NULL
-c5t cppunit nmake - all c5t_make NULL
+c5t cppunit : stlport NULL
+c5t cppunit nmake - all cppunit NULL
diff --git a/cppunit/prj/d.lst b/cppunit/prj/d.lst
index ff580704f9a4..6ecac46bfb90 100644
--- a/cppunit/prj/d.lst
+++ b/cppunit/prj/d.lst
@@ -1,10 +1,29 @@
-mkdir: %_DEST%/inc%_EXT%/cppunit
-mkdir: %_DEST%/inc%_EXT%/cppunit/extensions
+mkdir: %_DEST%\inc%_EXT%\cppunit
+..\%__SRC%\inc\cppunit\*.h %_DEST%\inc%_EXT%\cppunit\*.h
+mkdir: %_DEST%\inc%_EXT%\cppunit\config
+..\%__SRC%\inc\cppunit\config\*.h %_DEST%\inc%_EXT%\cppunit\config\*.h
+mkdir: %_DEST%\inc%_EXT%\cppunit\extensions
+..\%__SRC%\inc\cppunit\extensions\*.h %_DEST%\inc%_EXT%\cppunit\extensions\*.h
+mkdir: %_DEST%\inc%_EXT%\cppunit\plugin
+..\%__SRC%\inc\cppunit\plugin\*.h %_DEST%\inc%_EXT%\cppunit\plugin\*.h
+mkdir: %_DEST%\inc%_EXT%\cppunit\portability
+..\%__SRC%\inc\cppunit\portability\*.h %_DEST%\inc%_EXT%\cppunit\portability\*.h
+mkdir: %_DEST%\inc%_EXT%\cppunit\tools
+..\%__SRC%\inc\cppunit\tools\*.h %_DEST%\inc%_EXT%\cppunit\tools\*.h
+mkdir: %_DEST%\inc%_EXT%\cppunit\ui\text
+..\%__SRC%\inc\cppunit\ui\text\*.h %_DEST%\inc%_EXT%\cppunit\ui\text\*.h
-../%__SRC%/misc/build/cppunit-1.8.0/include/cppunit/*.h %_DEST%/inc%_EXT%/cppunit/*.h
-../%__SRC%/misc/build/cppunit-1.8.0/include/cppunit/*.hxx %_DEST%/inc%_EXT%/cppunit/*.hxx
-../%__SRC%/misc/build/cppunit-1.8.0/include/cppunit/extensions/*.h %_DEST%/inc%_EXT%/cppunit/extensions/*.h
+..\%__SRC%\bin\cppunit_dll.dll %_DEST%\bin%_EXT%\cppunit_dll.dll
+..\%__SRC%\lib\icppunit_dll.lib %_DEST%\lib%_EXT%\icppunit_dll.lib
-../%__SRC%/lib/cppunit.lib %_DEST%/lib%_EXT%/cppunit.lib
-../%__SRC%/lib/*.a %_DEST%/lib%_EXT%/*.a
+..\%__SRC%\bin\cygcppunit-1-12-1.dll %_DEST%\bin%_EXT%\cygcppunit-1-12-1.dll
+..\%__SRC%\lib\libcppunit-1.12.1.dylib %_DEST%\lib%_EXT%\libcppunit-1.12.1.dylib
+symlink: %_DEST%\lib%_EXT%\libcppunit-1.12.1.dylib %_DEST%\lib%_EXT%\libcppunit.dylib
+
+..\%__SRC%\lib\libcppunit-1.12.so.1 %_DEST%\lib%_EXT%\libcppunit-1.12.so.1
+symlink: %_DEST%\lib%_EXT%\libcppunit-1.12.so.1 %_DEST%\lib%_EXT%\libcppunit.so
+
+..\%__SRC%\bin\DllPlugInTester %_DEST%\bin%_EXT%\DllPlugInTester
+..\%__SRC%\bin\DllPlugInTester.exe %_DEST%\bin%_EXT%\DllPlugInTester.exe
+..\%__SRC%\bin\DllPlugInTester_dll.exe %_DEST%\bin%_EXT%\DllPlugInTester_dll.exe
diff --git a/cppunit/solarisfinite.patch b/cppunit/solarisfinite.patch
new file mode 100644
index 000000000000..0c15cdcb77a7
--- /dev/null
+++ b/cppunit/solarisfinite.patch
@@ -0,0 +1,14 @@
+--- misc/cppunit-1.12.1/include/cppunit/portability/FloatingPoint.h Mon Mar 5 04:16:42 2007
++++ misc/build/cppunit-1.12.1/include/cppunit/portability/FloatingPoint.h Thu Dec 3 16:34:23 2009
+@@ -3,6 +3,11 @@
+
+ #include <cppunit/Portability.h>
+ #include <math.h>
++
++#if defined(__sun) && !defined(CPPUNIT_HAVE_ISFINITE) && defined(CPPUNIT_HAVE_FINITE)
++#include <ieeefp.h>
++ // <math.h> is still needed for usage of fabs in TestAssert.cpp
++#endif
+
+ CPPUNIT_NS_BEGIN
+
diff --git a/cppunit/warnings.patch b/cppunit/warnings.patch
new file mode 100644
index 000000000000..39e804aff7f0
--- /dev/null
+++ b/cppunit/warnings.patch
@@ -0,0 +1,22 @@
+--- misc/cppunit-1.12.1/include/cppunit/plugin/TestPlugIn.h 2007-01-12 05:54:34.000000000 +0100
++++ misc/build/cppunit-1.12.1/include/cppunit/plugin/TestPlugIn.h 2009-12-02 15:33:29.639857272 +0100
+@@ -151,9 +151,7 @@
+ #include <windows.h>
+ #endif
+ #define CPPUNIT_PLUGIN_IMPLEMENT_MAIN() \
+- BOOL APIENTRY DllMain( HANDLE hModule, \
+- DWORD ul_reason_for_call, \
+- LPVOID lpReserved ) \
++ BOOL APIENTRY DllMain( HANDLE, DWORD, LPVOID ) \
+ { \
+ return TRUE; \
+ } \
+@@ -162,7 +160,7 @@
+ // Unix
+ #elif defined(CPPUNIT_HAVE_UNIX_DLL_LOADER) || defined(CPPUNIT_HAVE_UNIX_SHL_LOADER)
+ #define CPPUNIT_PLUGIN_IMPLEMENT_MAIN() \
+- int main( int argc, char *argv[] ) \
++ int main( int, char *[] ) \
+ { \
+ return 0; \
+ } \
diff --git a/cppunit/windows.patch b/cppunit/windows.patch
new file mode 100644
index 000000000000..da346924ea44
--- /dev/null
+++ b/cppunit/windows.patch
@@ -0,0 +1,12 @@
+--- misc/cppunit-1.12.1/include/cppunit/plugin/TestPlugIn.h 2010-01-11 14:42:25.084658287 +0100
++++ misc/build/cppunit-1.12.1/include/cppunit/plugin/TestPlugIn.h 2010-01-11 14:42:18.660706180 +0100
+@@ -149,6 +149,9 @@
+ #define NOMINMAX
+ #define BLENDFUNCTION void // for mingw & gcc
+ #include <windows.h>
++#if defined(OPTIONAL) // set within windows.h
++#undef OPTIONAL
++#endif
+ #endif
+ #define CPPUNIT_PLUGIN_IMPLEMENT_MAIN() \
+ BOOL APIENTRY DllMain( HANDLE, DWORD, LPVOID ) \
diff --git a/crashrep/source/all/crashrep.ulf b/crashrep/source/all/crashrep.ulf
index 4bc69015cb1d..2de1753918d2 100644
--- a/crashrep/source/all/crashrep.ulf
+++ b/crashrep/source/all/crashrep.ulf
@@ -7,7 +7,7 @@ en-US = "Welcome to the %PRODUCTNAME% %PRODUCTVERSION% Error Report"
[%WELCOME_BODY1%]
-en-US = "This error report tool gathers information about how %PRODUCTNAME% is working and sends it to Sun Microsystems to help improve future versions.\n\n"
+en-US = "This error report tool gathers information about how %PRODUCTNAME% is working and sends it to Oracle to help improve future versions.\n\n"
[%WELCOME_BODY2%]
@@ -15,11 +15,11 @@ en-US = "It's easy - just send the report without any further effort on your par
[%WELCOME_BODY3%]
-en-US = "Customer Privacy\nThe information gathered is limited to data concerning the state of %PRODUCTNAME% %PRODUCTVERSION% when the error occurred. Other information about passwords or document contents is not collected.\n\nThe information will only be used to improve the quality of %PRODUCTNAME% and will not be shared with third parties.\nFor more information on Sun Microsystems' privacy policy, visit\n"
+en-US = "Customer Privacy\nThe information gathered is limited to data concerning the state of %PRODUCTNAME% %PRODUCTVERSION% when the error occurred. Other information about passwords or document contents is not collected.\n\nThe information will only be used to improve the quality of %PRODUCTNAME% and will not be shared with third parties.\nFor more information on Oracle's privacy policy, visit\n"
[%PRIVACY_URL%]
-en-US = "http://www.sun.com/privacy/"
+en-US = "http://www.oracle.com/html/services-privacy-policy.html"
[%NEXT_BUTTON%]
@@ -43,7 +43,7 @@ en-US = "An error occurred while running %PRODUCTNAME% %PRODUCTVERSION%"
[%REPORT_BODY%]
-en-US = "The %PRODUCTNAME% %PRODUCTVERSION% Error Report has gathered information that could help Sun Microsystems improve %PRODUCTNAME%.\nIn the spaces below, you can enter a title for your crash report and describe the action you were trying to carry out when the error occurred. Then click 'Send'.\n"
+en-US = "The %PRODUCTNAME% %PRODUCTVERSION% Error Report has gathered information that could help Oracle improve %PRODUCTNAME%.\nIn the spaces below, you can enter a title for your crash report and describe the action you were trying to carry out when the error occurred. Then click 'Send'.\n"
[%ENTER_TITLE%]
@@ -51,7 +51,7 @@ en-US = "Which type of document (e.g. presentation) were you using when the erro
[%ALLOW_CONTACT%]
-en-US = "~I allow Sun Microsystems to contact me regarding this report."
+en-US = "~I allow Oracle to contact me regarding this report."
[%ENTER_EMAIL%]
@@ -156,7 +156,7 @@ en-US = "Status: The error report has been sent successfully."
[%ERROR_MSG_NOEMAILADDRESS%]
-en-US = "You have marked the option 'I allow Sun Microsystems to contact me regarding this report.'\nPlease enter your e-mail address."
+en-US = "You have marked the option 'I allow Oracle to contact me regarding this report.'\nPlease enter your e-mail address."
[%MSG_CMDLINE_USAGE%]
diff --git a/cui/util/cui.map b/cui/util/cui.map
index b43a11bd5096..06074d301dc3 100644
--- a/cui/util/cui.map
+++ b/cui/util/cui.map
@@ -1,4 +1,4 @@
-CUI_1_0 {
+UDK_3_0_0 {
global:
CreateDialogFactory;
GetSpecialCharsForEdit;
diff --git a/curl/makefile.mk b/curl/makefile.mk
index f54d72ce8a44..1fab0c301bff 100644
--- a/curl/makefile.mk
+++ b/curl/makefile.mk
@@ -42,6 +42,7 @@ all:
# --- Files --------------------------------------------------------
TARFILE_NAME=curl-7.19.7
+TARFILE_MD5=ecb2e37e45c9933e2a963cabe03670ab
PATCH_FILES=curl-7.19.7.patch
.IF "$(GUI)"=="WNT"
diff --git a/dbaccess/prj/build.lst b/dbaccess/prj/build.lst
index 0b6122d413ab..d5c6eacc7d2a 100644
--- a/dbaccess/prj/build.lst
+++ b/dbaccess/prj/build.lst
@@ -28,3 +28,4 @@ ba dbaccess\source\ui\imagelists nmake - all ba_uiimglst ba_inc NULL
ba dbaccess\util nmake - all ba_util ba_uiimglst ba_capi ba_cdaccess ba_cmisc ba_crecovery ba_shared ba_uibrowser ba_uiapp ba_uicontrol ba_uidlg ba_uimisc ba_uiquery ba_uitabledesign ba_uirelationdesign ba_uiuno ba_conntools ba_misctools ba_miscres ba_ext_adabasui NULL
ba dbaccess\win32\source\odbcconfig nmake - w ba_odbcconfig ba_inc NULL
ba dbaccess\qa\complex\dbaccess nmake - all ba_complex_tests NULL
+ba dbaccess\qa\unoapi nmake - all ba_q_unoapi NULL
diff --git a/dbaccess/qa/complex/dbaccess/RowSet.java b/dbaccess/qa/complex/dbaccess/RowSet.java
index d03abe90d59c..5a13f6724d1f 100644
--- a/dbaccess/qa/complex/dbaccess/RowSet.java
+++ b/dbaccess/qa/complex/dbaccess/RowSet.java
@@ -977,7 +977,7 @@ public class RowSet extends ComplexTestCase
}
catch (Exception e)
{
- assure("could not text the relationship between XParameters and XParametersSupplier" + e.getMessage(), false);
+ assure("could not test the relationship between XParameters and XParametersSupplier" + e.getMessage(), false);
}
}
diff --git a/dbaccess/qa/unoapi/Test.java b/dbaccess/qa/unoapi/Test.java
new file mode 100644
index 000000000000..4f2409fdc8bd
--- /dev/null
+++ b/dbaccess/qa/unoapi/Test.java
@@ -0,0 +1,52 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.dbaccess.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "dbaccess.sce", "-xcl", "knownissues.xcl", "-ini",
+ "dbaccess.props", "-tdoc", "testdocuments", "-cs",
+ connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/dbaccess/qa/unoapi/makefile.mk b/dbaccess/qa/unoapi/makefile.mk
index 0429e8c3dd46..41ed9480f526 100644
--- a/dbaccess/qa/unoapi/makefile.mk
+++ b/dbaccess/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,28 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=dbaccess
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = dbaccess
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/dbaccess/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
+ALLTAR : javatest
-ALLTAR : UNOAPI_TEST
-
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce dbaccess.sce -ini dbaccess.props -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
- @echo =======================================================================
- @echo In case of problems make sure that you put valid values in the dbaccess.props and added an appropriate jdbc-driver to your office installation
- @echo =======================================================================
- @echo In case of problems with TableWindowAccessibility or JoinViewAccessibility this might be because of connection problems, just re-run the testcases
- @echo =======================================================================
-
-run_%:
- +$(SOLARENV)$/bin$/checkapi -o dbaccess.$(@:s/run_//) -ini dbaccess.props -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
+.END
diff --git a/dbaccess/source/core/api/BookmarkSet.cxx b/dbaccess/source/core/api/BookmarkSet.cxx
index e71a5187db64..b5b9ec0ec787 100644
--- a/dbaccess/source/core/api/BookmarkSet.cxx
+++ b/dbaccess/source/core/api/BookmarkSet.cxx
@@ -59,10 +59,10 @@ using namespace ::com::sun::star::lang;
// using namespace ::cppu;
using namespace ::osl;
-void OBookmarkSet::construct(const Reference< XResultSet>& _xDriverSet)
+void OBookmarkSet::construct(const Reference< XResultSet>& _xDriverSet,const ::rtl::OUString& i_sRowSetFilter)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OBookmarkSet::construct" );
- OCacheSet::construct(_xDriverSet);
+ OCacheSet::construct(_xDriverSet,i_sRowSetFilter);
m_xRowLocate.set(_xDriverSet,UNO_QUERY);
}
// -----------------------------------------------------------------------------
diff --git a/dbaccess/source/core/api/BookmarkSet.hxx b/dbaccess/source/core/api/BookmarkSet.hxx
index c7beff64dbde..36d3c90c7969 100644
--- a/dbaccess/source/core/api/BookmarkSet.hxx
+++ b/dbaccess/source/core/api/BookmarkSet.hxx
@@ -51,7 +51,7 @@ namespace dbaccess
m_xRowLocate = NULL;
}
- virtual void construct(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xDriverSet);
+ virtual void construct(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xDriverSet,const ::rtl::OUString& i_sRowSetFilter);
virtual void fillValueRow(ORowSetRow& _rRow,sal_Int32 _nPosition);
// ::com::sun::star::sdbcx::XRowLocate
virtual ::com::sun::star::uno::Any SAL_CALL getBookmark() throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
diff --git a/dbaccess/source/core/api/CacheSet.cxx b/dbaccess/source/core/api/CacheSet.cxx
index b541bb7fd6fa..bedd873adc83 100644
--- a/dbaccess/source/core/api/CacheSet.cxx
+++ b/dbaccess/source/core/api/CacheSet.cxx
@@ -126,7 +126,7 @@ OCacheSet::OCacheSet()
return sQuote;
}
// -------------------------------------------------------------------------
-void OCacheSet::construct( const Reference< XResultSet>& _xDriverSet)
+void OCacheSet::construct( const Reference< XResultSet>& _xDriverSet,const ::rtl::OUString& /*i_sRowSetFilter*/)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OCacheSet::construct" );
OSL_ENSURE(_xDriverSet.is(),"Invalid resultSet");
diff --git a/dbaccess/source/core/api/CacheSet.hxx b/dbaccess/source/core/api/CacheSet.hxx
index 63aa508478b2..658e2c9871bf 100644
--- a/dbaccess/source/core/api/CacheSet.hxx
+++ b/dbaccess/source/core/api/CacheSet.hxx
@@ -107,7 +107,7 @@ namespace dbaccess
public:
// late constructor
- virtual void construct(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xDriverSet);
+ virtual void construct(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xDriverSet,const ::rtl::OUString& i_sRowSetFilter);
virtual void fillValueRow(ORowSetRow& _rRow,sal_Int32 _nPosition);
// ::com::sun::star::sdbc::XRow
diff --git a/dbaccess/source/core/api/KeySet.cxx b/dbaccess/source/core/api/KeySet.cxx
index f804c1c1cb34..04bef19278b1 100644
--- a/dbaccess/source/core/api/KeySet.cxx
+++ b/dbaccess/source/core/api/KeySet.cxx
@@ -148,6 +148,134 @@ namespace
}
}
}
+ class OPrivateRow : public ::cppu::WeakImplHelper1<XRow>
+ {
+ ORowSetValueVector::Vector m_aRow;
+ sal_Int32 m_nPos;
+ public:
+ OPrivateRow(const ORowSetValueVector::Vector& i_aRow) : m_aRow(i_aRow),m_nPos(0)
+ {
+ }
+ virtual ::sal_Bool SAL_CALL wasNull( ) throw (SQLException, RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getString( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual ::sal_Bool SAL_CALL getBoolean( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual ::sal_Int8 SAL_CALL getByte( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual ::sal_Int16 SAL_CALL getShort( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual ::sal_Int32 SAL_CALL getInt( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual ::sal_Int64 SAL_CALL getLong( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual float SAL_CALL getFloat( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual double SAL_CALL getDouble( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual Sequence< ::sal_Int8 > SAL_CALL getBytes( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual ::com::sun::star::util::Date SAL_CALL getDate( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual ::com::sun::star::util::Time SAL_CALL getTime( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual ::com::sun::star::util::DateTime SAL_CALL getTimestamp( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual Reference< ::com::sun::star::io::XInputStream > SAL_CALL getBinaryStream( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual Reference< ::com::sun::star::io::XInputStream > SAL_CALL getCharacterStream( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual Any SAL_CALL getObject( ::sal_Int32 columnIndex, const Reference< ::com::sun::star::container::XNameAccess >& typeMap ) throw (SQLException, RuntimeException);
+ virtual Reference< XRef > SAL_CALL getRef( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual Reference< XBlob > SAL_CALL getBlob( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual Reference< XClob > SAL_CALL getClob( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ virtual Reference< XArray > SAL_CALL getArray( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException);
+ };
+ ::sal_Bool SAL_CALL OPrivateRow::wasNull( ) throw (SQLException, RuntimeException)
+ {
+ return m_aRow[m_nPos].isNull();
+ }
+ ::rtl::OUString SAL_CALL OPrivateRow::getString( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return m_aRow[m_nPos];
+ }
+ ::sal_Bool SAL_CALL OPrivateRow::getBoolean( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return m_aRow[m_nPos];
+ }
+ ::sal_Int8 SAL_CALL OPrivateRow::getByte( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return m_aRow[m_nPos];
+ }
+ ::sal_Int16 SAL_CALL OPrivateRow::getShort( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return m_aRow[m_nPos];
+ }
+ ::sal_Int32 SAL_CALL OPrivateRow::getInt( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return m_aRow[m_nPos];
+ }
+ ::sal_Int64 SAL_CALL OPrivateRow::getLong( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return m_aRow[m_nPos];
+ }
+ float SAL_CALL OPrivateRow::getFloat( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return m_aRow[m_nPos];
+ }
+ double SAL_CALL OPrivateRow::getDouble( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return m_aRow[m_nPos];
+ }
+ Sequence< ::sal_Int8 > SAL_CALL OPrivateRow::getBytes( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return m_aRow[m_nPos];
+ }
+ ::com::sun::star::util::Date SAL_CALL OPrivateRow::getDate( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return m_aRow[m_nPos];
+ }
+ ::com::sun::star::util::Time SAL_CALL OPrivateRow::getTime( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return m_aRow[m_nPos];
+ }
+ ::com::sun::star::util::DateTime SAL_CALL OPrivateRow::getTimestamp( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return m_aRow[m_nPos];
+ }
+ Reference< ::com::sun::star::io::XInputStream > SAL_CALL OPrivateRow::getBinaryStream( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return Reference< ::com::sun::star::io::XInputStream >(m_aRow[m_nPos].makeAny(),UNO_QUERY);
+ }
+ Reference< ::com::sun::star::io::XInputStream > SAL_CALL OPrivateRow::getCharacterStream( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return Reference< ::com::sun::star::io::XInputStream >(m_aRow[m_nPos].makeAny(),UNO_QUERY);
+ }
+ Any SAL_CALL OPrivateRow::getObject( ::sal_Int32 columnIndex, const Reference< ::com::sun::star::container::XNameAccess >& ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return m_aRow[m_nPos].makeAny();
+ }
+ Reference< XRef > SAL_CALL OPrivateRow::getRef( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return Reference< XRef >(m_aRow[m_nPos].makeAny(),UNO_QUERY);
+ }
+ Reference< XBlob > SAL_CALL OPrivateRow::getBlob( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return Reference< XBlob >(m_aRow[m_nPos].makeAny(),UNO_QUERY);
+ }
+ Reference< XClob > SAL_CALL OPrivateRow::getClob( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return Reference< XClob >(m_aRow[m_nPos].makeAny(),UNO_QUERY);
+ }
+ Reference< XArray > SAL_CALL OPrivateRow::getArray( ::sal_Int32 columnIndex ) throw (SQLException, RuntimeException)
+ {
+ m_nPos = columnIndex;
+ return Reference< XArray >(m_aRow[m_nPos].makeAny(),UNO_QUERY);
+ }
}
DBG_NAME(OKeySet)
// -------------------------------------------------------------------------
@@ -159,6 +287,7 @@ OKeySet::OKeySet(const connectivity::OSQLTable& _xTable,
:m_aParameterValueForCache(_aParameterValueForCache)
,m_pKeyColumnNames(NULL)
,m_pColumnNames(NULL)
+ ,m_pParameterNames(NULL)
,m_pForeignColumnNames(NULL)
,m_xTable(_xTable)
,m_xTableKeys(_xTableKeys)
@@ -188,25 +317,38 @@ OKeySet::~OKeySet()
m_xComposer = NULL;
delete m_pKeyColumnNames;
delete m_pColumnNames;
+ delete m_pParameterNames;
delete m_pForeignColumnNames;
DBG_DTOR(OKeySet,NULL);
}
// -----------------------------------------------------------------------------
-void OKeySet::construct(const Reference< XResultSet>& _xDriverSet)
+void OKeySet::construct(const Reference< XResultSet>& _xDriverSet,const ::rtl::OUString& i_sRowSetFilter)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OKeySet::construct" );
- OCacheSet::construct(_xDriverSet);
+ OCacheSet::construct(_xDriverSet,i_sRowSetFilter);
Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
bool bCase = (xMeta.is() && xMeta->storesMixedCaseQuotedIdentifiers()) ? true : false;
- m_pKeyColumnNames = new SelectColumnsMetaData(bCase);
- m_pColumnNames = new SelectColumnsMetaData(bCase);
- m_pForeignColumnNames = new SelectColumnsMetaData(bCase);
+ m_pKeyColumnNames = new SelectColumnsMetaData(bCase);
+ m_pColumnNames = new SelectColumnsMetaData(bCase);
+ m_pParameterNames = new SelectColumnsMetaData(bCase);
+ m_pForeignColumnNames = new SelectColumnsMetaData(bCase);
Reference<XNameAccess> xKeyColumns = getKeyColumns();
Reference<XColumnsSupplier> xSup(m_xComposer,UNO_QUERY);
Reference<XNameAccess> xSourceColumns = m_xTable->getColumns();
+ // locate parameter in select columns
+ Reference<XParametersSupplier> xParaSup(m_xComposer,UNO_QUERY);
+ Reference<XIndexAccess> xQueryParameters = xParaSup->getParameters();
+ const sal_Int32 nParaCount = xQueryParameters->getCount();
+ Sequence< ::rtl::OUString> aParameterColumns(nParaCount);
+ for(sal_Int32 i = 0; i< nParaCount;++i)
+ {
+ Reference<XPropertySet> xPara(xQueryParameters->getByIndex(i),UNO_QUERY_THROW);
+ xPara->getPropertyValue(PROPERTY_REALNAME) >>= aParameterColumns[i];
+ }
+
::rtl::OUString sCatalog,sSchema,sTable;
@@ -235,6 +377,7 @@ void OKeySet::construct(const Reference< XResultSet>& _xDriverSet)
::dbaccess::getColumnPositions(xSup->getColumns(),aBestColumnNames,m_sUpdateTableName,(*m_pKeyColumnNames));
::dbaccess::getColumnPositions(xSup->getColumns(),xSourceColumns->getElementNames(),m_sUpdateTableName,(*m_pColumnNames));
+ ::dbaccess::getColumnPositions(xSup->getColumns(),aParameterColumns,m_sUpdateTableName,(*m_pParameterNames));
SelectColumnsMetaData::const_iterator aPosIter = (*m_pKeyColumnNames).begin();
SelectColumnsMetaData::const_iterator aPosEnd = (*m_pKeyColumnNames).end();
@@ -251,7 +394,7 @@ void OKeySet::construct(const Reference< XResultSet>& _xDriverSet)
// the first row is empty because it's now easier for us to distinguish when we are beforefirst or first
// without extra varaible to be set
- m_aKeyMap.insert(OKeySetMatrix::value_type(0,OKeySetValue(NULL,0)));
+ m_aKeyMap.insert(OKeySetMatrix::value_type(0,OKeySetValue(NULL,::std::pair<sal_Int32,Reference<XRow> >(0,NULL))));
m_aKeyIter = m_aKeyMap.begin();
@@ -281,9 +424,10 @@ void OKeySet::construct(const Reference< XResultSet>& _xDriverSet)
aFilter.append(aAnd);
}
+ Reference< XSingleSelectQueryComposer> xSourceComposer(m_xComposer,UNO_QUERY);
Reference< XMultiServiceFactory > xFactory(m_xConnection, UNO_QUERY_THROW);
Reference<XSingleSelectQueryComposer> xAnalyzer(xFactory->createInstance(SERVICE_NAME_SINGLESELECTQUERYCOMPOSER),UNO_QUERY);
- xAnalyzer->setQuery(m_xComposer->getQuery());
+ xAnalyzer->setElementaryQuery(xSourceComposer->getElementaryQuery());
Reference<XTablesSupplier> xTabSup(xAnalyzer,uno::UNO_QUERY);
Reference<XNameAccess> xSelectTables(xTabSup->getTables(),uno::UNO_QUERY);
const Sequence< ::rtl::OUString> aSeq = xSelectTables->getElementNames();
@@ -320,11 +464,10 @@ void OKeySet::construct(const Reference< XResultSet>& _xDriverSet)
}
}
} // if ( aSeq.getLength() > 1 ) // special handling for join
- const ::rtl::OUString sOldFilter = xAnalyzer->getFilter();
- if ( sOldFilter.getLength() )
+ if ( i_sRowSetFilter.getLength() )
{
FilterCreator aFilterCreator;
- aFilterCreator.append( sOldFilter );
+ aFilterCreator.append( i_sRowSetFilter );
aFilterCreator.append( aFilter.makeStringAndClear() );
aFilter = aFilterCreator.getComposedAndClear();
}
@@ -587,13 +730,24 @@ void SAL_CALL OKeySet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow
i = 1;
// first the set values
+ bool bRefetch = true;
aIter = m_pColumnNames->begin();
sal_uInt16 j = 0;
+ Reference<XRow> xRow;
for(;aIter != aEnd;++aIter,++j)
{
sal_Int32 nPos = aIter->second.nPosition;
if((_rInsertRow->get())[nPos].isModified())
{
+ if ( bRefetch )
+ {
+ bRefetch = ::std::find(m_aFilterColumns.begin(),m_aFilterColumns.end(),aIter->first) == m_aFilterColumns.end();
+ if ( !bRefetch )
+ {
+ xRow = new OPrivateRow(_rInsertRow->get());
+ }
+ }
+
impl_convertValue_throw(_rInsertRow,aIter->second);
(_rInsertRow->get())[nPos].setSigned((_rOrginalRow->get())[nPos].isSigned());
setParameter(i++,xParameter,(_rInsertRow->get())[nPos],aIter->second.nType,aIter->second.nScale);
@@ -621,10 +775,11 @@ void SAL_CALL OKeySet::updateRow(const ORowSetRow& _rInsertRow ,const ORowSetRow
m_bUpdated = xPrep->executeUpdate() > 0;
if(m_bUpdated)
{
- m_aKeyIter = m_aKeyMap.find(::comphelper::getINT32((_rInsertRow->get())[0].getAny()));
- OSL_ENSURE(m_aKeyIter != m_aKeyMap.end(),"New inserted row not found!");
- m_aKeyIter->second.second = 2;
- copyRowValue(_rInsertRow,m_aKeyIter->second.first);
+ const sal_Int32 nBookmark = ::comphelper::getINT32((_rInsertRow->get())[0].getAny());
+ m_aKeyIter = m_aKeyMap.find(nBookmark);
+ m_aKeyIter->second.second.first = 2;
+ m_aKeyIter->second.second.second = xRow;
+ copyRowValue(_rInsertRow,m_aKeyIter->second.first,nBookmark);
}
}
// -------------------------------------------------------------------------
@@ -785,21 +940,47 @@ void SAL_CALL OKeySet::insertRow( const ORowSetRow& _rInsertRow,const connectivi
}
if ( m_bInserted )
{
- ORowSetRow aKeyRow = new connectivity::ORowVector< ORowSetValue >((*m_pKeyColumnNames).size());
- copyRowValue(_rInsertRow,aKeyRow);
-
OKeySetMatrix::iterator aKeyIter = m_aKeyMap.end();
--aKeyIter;
- m_aKeyIter = m_aKeyMap.insert(OKeySetMatrix::value_type(aKeyIter->first + 1,OKeySetValue(aKeyRow,1))).first;
+ ORowSetRow aKeyRow = new connectivity::ORowVector< ORowSetValue >((*m_pKeyColumnNames).size());
+ copyRowValue(_rInsertRow,aKeyRow,aKeyIter->first + 1);
+
+ m_aKeyIter = m_aKeyMap.insert(OKeySetMatrix::value_type(aKeyIter->first + 1,OKeySetValue(aKeyRow,::std::pair<sal_Int32,Reference<XRow> >(1,NULL)))).first;
// now we set the bookmark for this row
(_rInsertRow->get())[0] = makeAny((sal_Int32)m_aKeyIter->first);
}
}
// -----------------------------------------------------------------------------
-void OKeySet::copyRowValue(const ORowSetRow& _rInsertRow,ORowSetRow& _rKeyRow)
+void OKeySet::copyRowValue(const ORowSetRow& _rInsertRow,ORowSetRow& _rKeyRow,sal_Int32 i_nBookmark)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OKeySet::copyRowValue" );
connectivity::ORowVector< ORowSetValue >::Vector::iterator aIter = _rKeyRow->get().begin();
+
+ // check the if the parameter values have been changed
+ OSL_ENSURE((m_aParameterValueForCache.get().size()-1) == m_pParameterNames->size(),"OKeySet::copyRowValue: Parameter values and names differ!");
+ connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aParaValuesIter = m_aParameterValueForCache.get().begin() +1;
+
+ bool bChanged = false;
+ SelectColumnsMetaData::const_iterator aParaIter = (*m_pParameterNames).begin();
+ SelectColumnsMetaData::const_iterator aParaEnd = (*m_pParameterNames).end();
+ for(sal_Int32 i = 1;aParaIter != aParaEnd;++aParaIter,++aParaValuesIter,++i)
+ {
+ ORowSetValue aValue(*aParaValuesIter);
+ aValue.setSigned(m_aSignedFlags[aParaIter->second.nPosition]);
+ if ( (_rInsertRow->get())[aParaIter->second.nPosition] != aValue )
+ {
+ ORowSetValueVector aCopy(m_aParameterValueForCache);
+ (aCopy.get())[i] = (_rInsertRow->get())[aParaIter->second.nPosition];
+ m_aUpdatedParameter[i_nBookmark] = aCopy;
+ bChanged = true;
+ }
+ }
+ if ( !bChanged )
+ {
+ m_aUpdatedParameter.erase(i_nBookmark);
+ }
+
+ // update the key values
SelectColumnsMetaData::const_iterator aPosIter = (*m_pKeyColumnNames).begin();
SelectColumnsMetaData::const_iterator aPosEnd = (*m_pKeyColumnNames).end();
for(;aPosIter != aPosEnd;++aPosIter,++aIter)
@@ -1149,9 +1330,23 @@ void SAL_CALL OKeySet::refreshRow() throw(SQLException, RuntimeException)
Reference< XParameters > xParameter(m_xStatement,UNO_QUERY);
OSL_ENSURE(xParameter.is(),"No Parameter interface!");
xParameter->clearParameters();
+
sal_Int32 nPos=1;
- connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aParaIter = m_aParameterValueForCache.get().begin();
- connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aParaEnd = m_aParameterValueForCache.get().end();
+ connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aParaIter;
+ connectivity::ORowVector< ORowSetValue >::Vector::const_iterator aParaEnd;
+ OUpdatedParameter::iterator aUpdateFind = m_aUpdatedParameter.find(m_aKeyIter->first);
+ if ( aUpdateFind == m_aUpdatedParameter.end() )
+ {
+
+ aParaIter = m_aParameterValueForCache.get().begin();
+ aParaEnd = m_aParameterValueForCache.get().end();
+ }
+ else
+ {
+ aParaIter = aUpdateFind->second.get().begin();
+ aParaEnd = aUpdateFind->second.get().end();
+ }
+
for(++aParaIter;aParaIter != aParaEnd;++aParaIter,++nPos)
{
::dbtools::setObjectWithInfo( xParameter, nPos, aParaIter->makeAny(), aParaIter->getTypeKind() );
@@ -1202,7 +1397,7 @@ sal_Bool OKeySet::fetchRow()
const SelectColumnDescription& rColDesc = aPosIter->second;
aIter->fill(rColDesc.nPosition,rColDesc.nType,rColDesc.bNullable,m_xDriverRow);
}
- m_aKeyIter = m_aKeyMap.insert(OKeySetMatrix::value_type(m_aKeyMap.rbegin()->first+1,OKeySetValue(aKeyRow,0))).first;
+ m_aKeyIter = m_aKeyMap.insert(OKeySetMatrix::value_type(m_aKeyMap.rbegin()->first+1,OKeySetValue(aKeyRow,::std::pair<sal_Int32,Reference<XRow> >(0,NULL)))).first;
}
else
m_bRowCountFinal = sal_True;
@@ -1361,13 +1556,13 @@ Reference< XArray > SAL_CALL OKeySet::getArray( sal_Int32 columnIndex ) throw(SQ
sal_Bool SAL_CALL OKeySet::rowUpdated( ) throw(SQLException, RuntimeException)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OKeySet::rowUpdated" );
- return m_aKeyIter != m_aKeyMap.begin() && m_aKeyIter != m_aKeyMap.end() && m_aKeyIter->second.second == 2;
+ return m_aKeyIter != m_aKeyMap.begin() && m_aKeyIter != m_aKeyMap.end() && m_aKeyIter->second.second.first == 2;
}
// -------------------------------------------------------------------------
sal_Bool SAL_CALL OKeySet::rowInserted( ) throw(SQLException, RuntimeException)
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "Ocke.Janssen@sun.com", "OKeySet::rowInserted" );
- return m_aKeyIter != m_aKeyMap.begin() && m_aKeyIter != m_aKeyMap.end() && m_aKeyIter->second.second == 1;
+ return m_aKeyIter != m_aKeyMap.begin() && m_aKeyIter != m_aKeyMap.end() && m_aKeyIter->second.second.first == 1;
}
// -------------------------------------------------------------------------
sal_Bool SAL_CALL OKeySet::rowDeleted( ) throw(SQLException, RuntimeException)
@@ -1413,20 +1608,22 @@ sal_Bool SAL_CALL OKeySet::rowDeleted( ) throw(SQLException, RuntimeException)
// -----------------------------------------------------------------------------
namespace dbaccess
{
- void getColumnPositions(const Reference<XNameAccess>& _rxQueryColumns,
- const Sequence< ::rtl::OUString>& _aColumnNames,
+
+void getColumnPositions(const Reference<XNameAccess>& _rxQueryColumns,
+ const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rColumnNames,
const ::rtl::OUString& _rsUpdateTableName,
- SelectColumnsMetaData& _rColumnNames)
+ SelectColumnsMetaData& _rColumnAssignments)
+
{
// get the real name of the columns
Sequence< ::rtl::OUString> aSelNames(_rxQueryColumns->getElementNames());
const ::rtl::OUString* pSelBegin = aSelNames.getConstArray();
const ::rtl::OUString* pSelEnd = pSelBegin + aSelNames.getLength();
- const ::rtl::OUString* pColumnIter = _aColumnNames.getConstArray();
- const ::rtl::OUString* pColumnEnd = pColumnIter + _aColumnNames.getLength();
+ const ::rtl::OUString* pColumnIter = _rColumnNames.getConstArray();
+ const ::rtl::OUString* pColumnEnd = pColumnIter + _rColumnNames.getLength();
- ::comphelper::UStringMixLess aTmp(_rColumnNames.key_comp());
+ ::comphelper::UStringMixLess aTmp(_rColumnAssignments.key_comp());
::comphelper::UStringMixEqual bCase(static_cast< ::comphelper::UStringMixLess*>(&aTmp)->isCaseSensitive());
for(sal_Int32 nPos = 1;pSelBegin != pSelEnd;++pSelBegin,++nPos)
@@ -1440,7 +1637,7 @@ namespace dbaccess
for(;pColumnIter != pColumnEnd;++pColumnIter)
{
- if(bCase(sRealName,*pColumnIter) && bCase(_rsUpdateTableName,sTableName) && _rColumnNames.find(*pColumnIter) == _rColumnNames.end())
+ if(bCase(sRealName,*pColumnIter) && bCase(_rsUpdateTableName,sTableName) && _rColumnAssignments.find(*pColumnIter) == _rColumnAssignments.end())
{
sal_Int32 nType = 0;
xColumnProp->getPropertyValue(PROPERTY_TYPE) >>= nType;
@@ -1454,11 +1651,11 @@ namespace dbaccess
xColumnProp->getPropertyValue(PROPERTY_ISNULLABLE) >>= bNullable;
- _rColumnNames[sRealName] = SelectColumnDescription( nPos, nType,nScale,bNullable != sdbc::ColumnValue::NO_NULLS, sColumnDefault );
+ _rColumnAssignments[sRealName] = SelectColumnDescription( nPos, nType,nScale,bNullable != sdbc::ColumnValue::NO_NULLS, sColumnDefault );
break;
}
}
- pColumnIter = _aColumnNames.getConstArray();
+ pColumnIter = _rColumnNames.getConstArray();
}
}
}
@@ -1484,3 +1681,4 @@ void OKeySet::impl_convertValue_throw(const ORowSetRow& _rInsertRow,const Select
}
}
// -----------------------------------------------------------------------------
+
diff --git a/dbaccess/source/core/api/KeySet.hxx b/dbaccess/source/core/api/KeySet.hxx
index 5f92d8f4fa5b..169d8d4f65a6 100644
--- a/dbaccess/source/core/api/KeySet.hxx
+++ b/dbaccess/source/core/api/KeySet.hxx
@@ -80,12 +80,13 @@ namespace dbaccess
// the elements of _rxQueryColumns must have the properties PROPERTY_REALNAME and PROPERTY_TABLENAME
void getColumnPositions(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& _rxQueryColumns,
- const ::com::sun::star::uno::Sequence< ::rtl::OUString>& _aColumnNames,
+ const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rColumnNames,
const ::rtl::OUString& _rsUpdateTableName,
- SelectColumnsMetaData& _rColumnNames /* out */);
+ SelectColumnsMetaData& _rColumnAssignments /* out */);
- typedef ::std::pair<ORowSetRow,sal_Int32> OKeySetValue;
+ typedef ::std::pair<ORowSetRow,::std::pair<sal_Int32,::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRow> > > OKeySetValue;
typedef ::std::map<sal_Int32,OKeySetValue > OKeySetMatrix;
+ typedef ::std::map<sal_Int32,ORowSetValueVector > OUpdatedParameter;
// is used when the source supports keys
class OKeySet : public OCacheSet
{
@@ -94,9 +95,11 @@ namespace dbaccess
::std::vector< ::rtl::OUString > m_aAutoColumns; // contains all columns which are autoincrement ones
+ OUpdatedParameter m_aUpdatedParameter; // contains all parameter which have been updated and are needed for refetching
ORowSetValueVector m_aParameterValueForCache;
SelectColumnsMetaData* m_pKeyColumnNames; // contains all key column names
SelectColumnsMetaData* m_pColumnNames; // contains all column names
+ SelectColumnsMetaData* m_pParameterNames; // contains all parameter names
SelectColumnsMetaData* m_pForeignColumnNames; // contains all column names of the rest
connectivity::OSQLTable m_xTable; // reference to our table
::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess> m_xTableKeys;
@@ -106,6 +109,7 @@ namespace dbaccess
::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryAnalyzer > m_xComposer;
::rtl::OUString m_sUpdateTableName;
::rtl::OUString m_aSelectComposedTableName;
+ ::std::vector< ::rtl::OUString > m_aFilterColumns;
sal_Bool m_bRowCountFinal;
@@ -125,8 +129,9 @@ namespace dbaccess
*
* \param _rInsertRow the row which was inserted
* \param _rKeyRow The current key row of the row set.
+ + \param i_nBookmark The bookmark is used to update the parameter
*/
- void copyRowValue(const ORowSetRow& _rInsertRow,ORowSetRow& _rKeyRow);
+ void copyRowValue(const ORowSetRow& _rInsertRow,ORowSetRow& _rKeyRow,sal_Int32 i_nBookmark);
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > getKeyColumns() const;
void fillAllRows();
@@ -143,7 +148,7 @@ namespace dbaccess
const ORowSetValueVector& _aParameterValueForCache);
// late ctor which can throw exceptions
- virtual void construct(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xDriverSet);
+ virtual void construct(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xDriverSet,const ::rtl::OUString& i_sRowSetFilter);
// ::com::sun::star::sdbc::XRow
virtual sal_Bool SAL_CALL wasNull( ) throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
diff --git a/dbaccess/source/core/api/RowSet.cxx b/dbaccess/source/core/api/RowSet.cxx
index 2d7bda3f29b4..156a3e21037b 100644
--- a/dbaccess/source/core/api/RowSet.cxx
+++ b/dbaccess/source/core/api/RowSet.cxx
@@ -1775,7 +1775,7 @@ void ORowSet::execute_NoApprove_NoNewConn(ResettableMutexGuard& _rClearForNotifi
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "dbaccess", "frank.schoenheit@sun.com", "ORowSet::execute_NoApprove_NoNewConn: creating cache" );
- m_pCache = new ORowSetCache( xResultSet, m_xComposer.get(), m_aContext, aComposedUpdateTableName, m_bModified, m_bNew,m_aParameterValueForCache );
+ m_pCache = new ORowSetCache( xResultSet, m_xComposer.get(), m_aContext, aComposedUpdateTableName, m_bModified, m_bNew,m_aParameterValueForCache,m_aFilter );
if ( m_nResultSetConcurrency == ResultSetConcurrency::READ_ONLY )
{
m_nPrivileges = Privilege::SELECT;
diff --git a/dbaccess/source/core/api/RowSetCache.cxx b/dbaccess/source/core/api/RowSetCache.cxx
index 94e6cf62e235..bd9de512e311 100644
--- a/dbaccess/source/core/api/RowSetCache.cxx
+++ b/dbaccess/source/core/api/RowSetCache.cxx
@@ -135,7 +135,8 @@ ORowSetCache::ORowSetCache(const Reference< XResultSet >& _xRs,
const ::rtl::OUString& _rUpdateTableName,
sal_Bool& _bModified,
sal_Bool& _bNew,
- const ORowSetValueVector& _aParameterValueForCache)
+ const ORowSetValueVector& _aParameterValueForCache,
+ const ::rtl::OUString& i_sRowSetFilter)
:m_xSet(_xRs)
,m_xMetaData(Reference< XResultSetMetaDataSupplier >(_xRs,UNO_QUERY)->getMetaData())
,m_aContext( _rContext )
@@ -257,7 +258,7 @@ ORowSetCache::ORowSetCache(const Reference< XResultSet >& _xRs,
{
m_pCacheSet = new OBookmarkSet();
m_xCacheSet = m_pCacheSet;
- m_pCacheSet->construct(_xRs);
+ m_pCacheSet->construct(_xRs,i_sRowSetFilter);
// check privileges
m_nPrivileges = Privilege::SELECT;
@@ -291,7 +292,7 @@ ORowSetCache::ORowSetCache(const Reference< XResultSet >& _xRs,
{
m_pCacheSet = new OStaticSet();
m_xCacheSet = m_pCacheSet;
- m_pCacheSet->construct(_xRs);
+ m_pCacheSet->construct(_xRs,i_sRowSetFilter);
m_nPrivileges = Privilege::SELECT;
}
else
@@ -332,7 +333,7 @@ ORowSetCache::ORowSetCache(const Reference< XResultSet >& _xRs,
{
m_pCacheSet = pKeySet;
m_xCacheSet = m_pCacheSet;
- pKeySet->construct(_xRs);
+ pKeySet->construct(_xRs,i_sRowSetFilter);
if(Reference<XResultSetUpdate>(_xRs,UNO_QUERY).is()) // this interface is optional so we have to check it
{
@@ -356,7 +357,7 @@ ORowSetCache::ORowSetCache(const Reference< XResultSet >& _xRs,
m_xCacheSet = NULL;
m_pCacheSet = new OStaticSet();
m_xCacheSet = m_pCacheSet;
- m_pCacheSet->construct(_xRs);
+ m_pCacheSet->construct(_xRs,i_sRowSetFilter);
m_nPrivileges = Privilege::SELECT;
}
}
@@ -1281,8 +1282,7 @@ void ORowSetCache::updateRow( ORowSetMatrix::iterator& _rUpdateRow )
// refetch the whole row
(*m_aMatrixIter) = NULL;
- if ( !moveToBookmark(aBookmark) )
- m_aMatrixIter = m_pMatrix->end();
+ moveToBookmark(aBookmark);
// moveToBookmark((*(*m_aInsertRow))[0].makeAny());
// if(m_pCacheSet->rowUpdated())
diff --git a/dbaccess/source/core/api/RowSetCache.hxx b/dbaccess/source/core/api/RowSetCache.hxx
index 812cc3007e64..2153d84740bb 100644
--- a/dbaccess/source/core/api/RowSetCache.hxx
+++ b/dbaccess/source/core/api/RowSetCache.hxx
@@ -192,7 +192,8 @@ namespace dbaccess
const ::rtl::OUString& _rUpdateTableName,
sal_Bool& _bModified,
sal_Bool& _bNew,
- const ORowSetValueVector& _aParameterValueForCache);
+ const ORowSetValueVector& _aParameterValueForCache,
+ const ::rtl::OUString& i_sRowSetFilter);
~ORowSetCache();
diff --git a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
index b14b4440275a..8bc9a665bc9d 100644
--- a/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
+++ b/dbaccess/source/core/api/SingleSelectQueryComposer.cxx
@@ -47,6 +47,7 @@
#include <com/sun/star/sdbc/DataType.hpp>
#include <com/sun/star/sdbc/XResultSetMetaData.hpp>
#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
+#include <com/sun/star/sdbc/XParameters.hpp>
#include <com/sun/star/uno/XAggregation.hpp>
#include <com/sun/star/util/XNumberFormatter.hpp>
/** === end UNO includes === **/
@@ -708,13 +709,28 @@ Reference< XNameAccess > SAL_CALL OSingleSelectQueryComposer::getColumns( ) thr
}
catch( const Exception& ) { }
- if ( !xResultSetMeta.is() )
+ try
+ {
+ if ( !xResultSetMeta.is() )
+ {
+ xStatement.reset( Reference< XStatement >( m_xConnection->createStatement(), UNO_QUERY_THROW ) );
+ Reference< XPropertySet > xStatementProps( xStatement, UNO_QUERY_THROW );
+ try { xStatementProps->setPropertyValue( PROPERTY_ESCAPE_PROCESSING, makeAny( sal_False ) ); }
+ catch ( const Exception& ) { DBG_UNHANDLED_EXCEPTION(); }
+ xResMetaDataSup.set( xStatement->executeQuery( sSQL ), UNO_QUERY_THROW );
+ xResultSetMeta.set( xResMetaDataSup->getMetaData(), UNO_QUERY_THROW );
+ }
+ }
+ catch( const Exception& )
{
- xStatement.reset( Reference< XStatement >( m_xConnection->createStatement(), UNO_QUERY_THROW ) );
- Reference< XPropertySet > xStatementProps( xStatement, UNO_QUERY_THROW );
- try { xStatementProps->setPropertyValue( PROPERTY_ESCAPE_PROCESSING, makeAny( sal_False ) ); }
- catch ( const Exception& ) { DBG_UNHANDLED_EXCEPTION(); }
- xResMetaDataSup.set( xStatement->executeQuery( sSQL ), UNO_QUERY_THROW );
+ //@see issue http://qa.openoffice.org/issues/show_bug.cgi?id=110111
+ // access returns a different order of column names when executing select * from
+ // and asking the columns from the metadata.
+ Reference< XParameters > xParameters( xPreparedStatement, UNO_QUERY_THROW );
+ Reference< XIndexAccess > xPara = getParameters();
+ for(sal_Int32 i = 1;i <= xPara->getCount();++i)
+ xParameters->setNull(i,DataType::VARCHAR);
+ xResMetaDataSup.set(xPreparedStatement->executeQuery(), UNO_QUERY_THROW );
xResultSetMeta.set( xResMetaDataSup->getMetaData(), UNO_QUERY_THROW );
}
diff --git a/dbaccess/source/ext/adabas/adabasui.map b/dbaccess/source/ext/adabas/adabasui.map
deleted file mode 100644
index 26ba4ca31813..000000000000
--- a/dbaccess/source/ext/adabas/adabasui.map
+++ /dev/null
@@ -1,8 +0,0 @@
-ADABASUI_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/dbaccess/source/ext/adabas/makefile.mk b/dbaccess/source/ext/adabas/makefile.mk
index 72f5e8d511f3..e23310ac92f3 100644
--- a/dbaccess/source/ext/adabas/makefile.mk
+++ b/dbaccess/source/ext/adabas/makefile.mk
@@ -76,7 +76,7 @@ SHL1DEF=$(MISC)$/$(SHL1TARGET).def
SHL1LIBS=$(SLB)$/$(TARGET).lib
DEF1NAME=$(SHL1TARGET)
DEF1EXPORTFILE=$(TARGET).dxp
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- .res file ----------------------------------------------------------
RES1FILELIST=\
diff --git a/dbaccess/source/ext/macromigration/dbmm.map b/dbaccess/source/ext/macromigration/dbmm.map
deleted file mode 100644
index 397b86886982..000000000000
--- a/dbaccess/source/ext/macromigration/dbmm.map
+++ /dev/null
@@ -1,8 +0,0 @@
-DBMM_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/dbaccess/source/ext/macromigration/makefile.mk b/dbaccess/source/ext/macromigration/makefile.mk
index 8a17d9f18c36..41898091c26a 100644
--- a/dbaccess/source/ext/macromigration/makefile.mk
+++ b/dbaccess/source/ext/macromigration/makefile.mk
@@ -62,7 +62,7 @@ SLOFILES= $(SLO)$/macromigrationwizard.obj \
# --- library -----------------------------------
SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS= \
$(CPPULIB) \
diff --git a/dbaccess/source/filter/migration/exports.map b/dbaccess/source/filter/migration/exports.map
deleted file mode 100644
index 8faa43a8aa07..000000000000
--- a/dbaccess/source/filter/migration/exports.map
+++ /dev/null
@@ -1,9 +0,0 @@
-DBACCESS_FLT_1_0 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-}; \ No newline at end of file
diff --git a/dbaccess/source/filter/migration/makefile.mk b/dbaccess/source/filter/migration/makefile.mk
index 71615d560f2a..7bb53208d9d0 100644
--- a/dbaccess/source/filter/migration/makefile.mk
+++ b/dbaccess/source/filter/migration/makefile.mk
@@ -64,7 +64,7 @@ SHL1DEPN=
SHL1LIBS=$(LIB1TARGET)
SHL1IMPLIB= i$(SHL1TARGET)
# SHL1LIBS= $(SLB)$/$(TARGET).lib
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/dbaccess/source/filter/xml/exports.map b/dbaccess/source/filter/xml/exports.map
deleted file mode 100644
index 8faa43a8aa07..000000000000
--- a/dbaccess/source/filter/xml/exports.map
+++ /dev/null
@@ -1,9 +0,0 @@
-DBACCESS_FLT_1_0 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-}; \ No newline at end of file
diff --git a/dbaccess/source/filter/xml/makefile.mk b/dbaccess/source/filter/xml/makefile.mk
index 1f1bcbea65ab..6c6091c5f69e 100644
--- a/dbaccess/source/filter/xml/makefile.mk
+++ b/dbaccess/source/filter/xml/makefile.mk
@@ -104,7 +104,7 @@ SHL1DEPN=
SHL1LIBS=$(LIB1TARGET)
SHL1IMPLIB= i$(SHL1TARGET)
# SHL1LIBS= $(SLB)$/$(TARGET).lib
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/dbaccess/source/ui/control/tabletree.cxx b/dbaccess/source/ui/control/tabletree.cxx
index 5dc8fe2ecba6..72db2ee129df 100644
--- a/dbaccess/source/ui/control/tabletree.cxx
+++ b/dbaccess/source/ui/control/tabletree.cxx
@@ -638,37 +638,45 @@ String OTableTreeListBox::getQualifiedTableName( SvLBoxEntry* _pEntry ) const
{
OSL_PRECOND( !isFolderEntry( _pEntry ), "OTableTreeListBox::getQualifiedTableName: folder entries not allowed here!" );
- Reference< XDatabaseMetaData > xMeta;
- if ( !impl_getAndAssertMetaData( xMeta ) )
- return String();
+ try
+ {
+ Reference< XDatabaseMetaData > xMeta;
+ if ( !impl_getAndAssertMetaData( xMeta ) )
+ return String();
- ::rtl::OUString sCatalog;
- ::rtl::OUString sSchema;
- ::rtl::OUString sTable;
+ ::rtl::OUString sCatalog;
+ ::rtl::OUString sSchema;
+ ::rtl::OUString sTable;
- SvLBoxEntry* pSchema = GetParent( _pEntry );
- if ( pSchema )
- {
- SvLBoxEntry* pCatalog = GetParent( pSchema );
- if ( pCatalog
- || ( xMeta->supportsCatalogsInDataManipulation()
- && !xMeta->supportsSchemasInDataManipulation()
- ) // here we support catalog but no schema
- )
+ SvLBoxEntry* pSchema = GetParent( _pEntry );
+ if ( pSchema )
{
- if ( pCatalog == NULL )
+ SvLBoxEntry* pCatalog = GetParent( pSchema );
+ if ( pCatalog
+ || ( xMeta->supportsCatalogsInDataManipulation()
+ && !xMeta->supportsSchemasInDataManipulation()
+ ) // here we support catalog but no schema
+ )
{
- pCatalog = pSchema;
- pSchema = NULL;
+ if ( pCatalog == NULL )
+ {
+ pCatalog = pSchema;
+ pSchema = NULL;
+ }
+ sCatalog = GetEntryText( pCatalog );
}
- sCatalog = GetEntryText( pCatalog );
+ if ( pSchema )
+ sSchema = GetEntryText(pSchema);
}
- if ( pSchema )
- sSchema = GetEntryText(pSchema);
- }
- sTable = GetEntryText( _pEntry );
+ sTable = GetEntryText( _pEntry );
- return ::dbtools::composeTableName( xMeta, sCatalog, sSchema, sTable, sal_False, ::dbtools::eInDataManipulation );
+ return ::dbtools::composeTableName( xMeta, sCatalog, sSchema, sTable, sal_False, ::dbtools::eInDataManipulation );
+ }
+ catch( const Exception& )
+ {
+ DBG_UNHANDLED_EXCEPTION();
+ }
+ return String();
}
//------------------------------------------------------------------------
diff --git a/dbaccess/source/ui/misc/WCopyTable.cxx b/dbaccess/source/ui/misc/WCopyTable.cxx
index 5670ff86b60e..f7c3daeb6543 100644
--- a/dbaccess/source/ui/misc/WCopyTable.cxx
+++ b/dbaccess/source/ui/misc/WCopyTable.cxx
@@ -1101,6 +1101,7 @@ void OCopyTableWizard::insertColumn(sal_Int32 _nPos,OFieldDescription* _pField)
m_aDestVec.insert(m_aDestVec.begin() + _nPos,
m_vDestColumns.insert(ODatabaseExport::TColumns::value_type(_pField->GetName(),_pField)).first);
+ m_mNameMapping[_pField->GetName()] = _pField->GetName();
}
}
// -----------------------------------------------------------------------------
@@ -1191,6 +1192,8 @@ void OCopyTableWizard::clearDestColumns()
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "misc", "Ocke.Janssen@sun.com", "OCopyTableWizard::clearDestColumns" );
clearColumns(m_vDestColumns,m_aDestVec);
+ m_bAddPKFirstTime = sal_True;
+ m_mNameMapping.clear();
}
// -----------------------------------------------------------------------------
diff --git a/dbaccess/util/dba.map b/dbaccess/util/dba.map
deleted file mode 100644
index 9a3ed2329fc1..000000000000
--- a/dbaccess/util/dba.map
+++ /dev/null
@@ -1,8 +0,0 @@
-DBACCESS_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/dbaccess/util/dbu.map b/dbaccess/util/dbu.map
deleted file mode 100644
index f5c9cb31fd3c..000000000000
--- a/dbaccess/util/dbu.map
+++ /dev/null
@@ -1,8 +0,0 @@
-DBACCESS_UI_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/dbaccess/util/makefile.mk b/dbaccess/util/makefile.mk
index 94152b941476..8430b5edf8dc 100644
--- a/dbaccess/util/makefile.mk
+++ b/dbaccess/util/makefile.mk
@@ -79,7 +79,6 @@ DEF1NAME=$(SHL1TARGET)
DEFLIB1NAME=$(TARGET)
DEF1DEPN= $(MISC)$/$(SHL1TARGET).flt \
$(SLB)$/$(TARGET).lib
-# SHL1VERSIONMAP=$(TARGET).map
SHL1USE_EXPORTS=name
.ENDIF
@@ -151,7 +150,6 @@ DEF2NAME=$(SHL2TARGET)
DEFLIB2NAME=$(TARGET2)
DEF2DEPN= $(MISC)$/$(SHL2TARGET).flt \
$(SLB)$/$(TARGET2).lib
-# SHL2VERSIONMAP=$(TARGET2).map
SHL2USE_EXPORTS=name
ALL: \
@@ -207,7 +205,7 @@ SHL3STDLIBS= \
SHL3LIBS=$(LIB3TARGET)
SHL3DEF=$(MISC)$/$(SHL3TARGET).def
DEF3NAME=$(SHL3TARGET)
-SHL3VERSIONMAP=$(TARGET3).map
+SHL3VERSIONMAP=$(SOLARENV)/src/component.map
.END
diff --git a/dbaccess/util/sdbt.map b/dbaccess/util/sdbt.map
deleted file mode 100644
index b2aca0c07ad0..000000000000
--- a/dbaccess/util/sdbt.map
+++ /dev/null
@@ -1,8 +0,0 @@
-DBACCESS_SDBTOOLS_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/default_images/res/mainapp_16.png b/default_images/res/mainapp_16.png
index fe7477df5f23..3aa8f08a8c5d 100644
--- a/default_images/res/mainapp_16.png
+++ b/default_images/res/mainapp_16.png
Binary files differ
diff --git a/default_images/res/mainapp_16_8.png b/default_images/res/mainapp_16_8.png
index 6b6f5ac2f2c8..3aa8f08a8c5d 100644
--- a/default_images/res/mainapp_16_8.png
+++ b/default_images/res/mainapp_16_8.png
Binary files differ
diff --git a/default_images/res/mainapp_16_h.png b/default_images/res/mainapp_16_h.png
index 46fbf528ffbf..08df53ac02dc 100644
--- a/default_images/res/mainapp_16_h.png
+++ b/default_images/res/mainapp_16_h.png
Binary files differ
diff --git a/default_images/res/mainapp_32.png b/default_images/res/mainapp_32.png
index f2e6e9e4d451..296c6f4c58b1 100644
--- a/default_images/res/mainapp_32.png
+++ b/default_images/res/mainapp_32.png
Binary files differ
diff --git a/default_images/res/mainapp_32_8.png b/default_images/res/mainapp_32_8.png
index 9792932cf3d9..296c6f4c58b1 100644
--- a/default_images/res/mainapp_32_8.png
+++ b/default_images/res/mainapp_32_8.png
Binary files differ
diff --git a/default_images/res/mainapp_32_h.png b/default_images/res/mainapp_32_h.png
index d885c82d63e4..113cbf1631b3 100644
--- a/default_images/res/mainapp_32_h.png
+++ b/default_images/res/mainapp_32_h.png
Binary files differ
diff --git a/default_images/res/mainapp_48_8.png b/default_images/res/mainapp_48_8.png
index b1c2ff30fe30..86bcf599553f 100644
--- a/default_images/res/mainapp_48_8.png
+++ b/default_images/res/mainapp_48_8.png
Binary files differ
diff --git a/default_images/res/printeradmin_16.png b/default_images/res/printeradmin_16.png
index 87bc1b9e7ced..399076c9934d 100644
--- a/default_images/res/printeradmin_16.png
+++ b/default_images/res/printeradmin_16.png
Binary files differ
diff --git a/default_images/res/printeradmin_16_8.png b/default_images/res/printeradmin_16_8.png
index 560f74d3c913..399076c9934d 100644
--- a/default_images/res/printeradmin_16_8.png
+++ b/default_images/res/printeradmin_16_8.png
Binary files differ
diff --git a/default_images/res/printeradmin_16_h.png b/default_images/res/printeradmin_16_h.png
index 6c9fd4eadeb0..11f08c7f6c98 100644
--- a/default_images/res/printeradmin_16_h.png
+++ b/default_images/res/printeradmin_16_h.png
Binary files differ
diff --git a/default_images/res/printeradmin_32.png b/default_images/res/printeradmin_32.png
index 011345359dbb..b09999c7d083 100644
--- a/default_images/res/printeradmin_32.png
+++ b/default_images/res/printeradmin_32.png
Binary files differ
diff --git a/default_images/res/printeradmin_32_8.png b/default_images/res/printeradmin_32_8.png
index c82750ce9b7e..b09999c7d083 100644
--- a/default_images/res/printeradmin_32_8.png
+++ b/default_images/res/printeradmin_32_8.png
Binary files differ
diff --git a/default_images/res/printeradmin_32_h.png b/default_images/res/printeradmin_32_h.png
index 9113f86ac535..6ccf29c45a11 100644
--- a/default_images/res/printeradmin_32_h.png
+++ b/default_images/res/printeradmin_32_h.png
Binary files differ
diff --git a/default_images/res/printeradmin_48_8.png b/default_images/res/printeradmin_48_8.png
index 5f44cee190a2..a11cbe5ab107 100644
--- a/default_images/res/printeradmin_48_8.png
+++ b/default_images/res/printeradmin_48_8.png
Binary files differ
diff --git a/desktop/qa/deployment_misc/makefile.mk b/desktop/qa/deployment_misc/makefile.mk
index 556df1a623c4..15faef0dc46e 100644
--- a/desktop/qa/deployment_misc/makefile.mk
+++ b/desktop/qa/deployment_misc/makefile.mk
@@ -34,6 +34,7 @@ ENABLE_EXCEPTIONS := TRUE
.INCLUDE: settings.mk
.INCLUDE: $(PRJ)$/source$/deployment$/inc$/dp_misc.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
DLLPRE = # no leading "lib" on .so files
SHL1TARGET = $(TARGET)
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 53778534c750..efba60ca75b9 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -1149,16 +1149,6 @@ USHORT Desktop::Exception(USHORT nError)
switch( nError & EXC_MAJORTYPE )
{
-/*
- case EXC_USER:
- if( nError == EXC_OUTOFMEMORY )
- {
- // not possible without a special NewHandler!
- String aMemExceptionString;
- Application::Abort( aMemExceptionString );
- }
- break;
-*/
case EXC_RSCNOTLOADED:
{
String aResExceptionString;
@@ -1175,23 +1165,14 @@ USHORT Desktop::Exception(USHORT nError)
default:
{
- if ( pArgs->IsNoRestore() ) {
- if (m_pLockfile != NULL) {
- m_pLockfile->clean();
- }
- _exit( ExitHelper::E_LOCKFILE );
+ if (m_pLockfile != NULL) {
+ m_pLockfile->clean();
}
-
if( bRestart )
{
OfficeIPCThread::DisableOfficeIPCThread();
if( pSignalHandler )
DELETEZ( pSignalHandler );
-
- if (m_pLockfile != NULL) {
- m_pLockfile->clean();
- }
-
#ifdef MACOSX
DoRestart();
#endif
@@ -1199,17 +1180,15 @@ USHORT Desktop::Exception(USHORT nError)
}
else
{
- bInException = sal_False;
- _exit( ExitHelper::E_CRASH );
+ Application::Abort( String() );
}
break;
}
}
+ OSL_ASSERT(false); // unreachable
return 0;
-
- // ConfigManager is disposed, so no way to continue
}
void Desktop::AppEvent( const ApplicationEvent& rAppEvent )
@@ -1579,7 +1558,8 @@ void Desktop::Main()
// SetSplashScreenProgress(80);
- if ( !bTerminateRequested && !pCmdLineArgs->IsInvisible() )
+ if ( !bTerminateRequested && !pCmdLineArgs->IsInvisible() &&
+ !pCmdLineArgs->IsNoQuickstart() )
InitializeQuickstartMode( xSMgr );
RTL_LOGFILE_CONTEXT( aLog2, "desktop (cd100003) createInstance com.sun.star.frame.Desktop" );
@@ -1666,7 +1646,11 @@ void Desktop::Main()
// remove temp directory
RemoveTemporaryDirectory();
+ // The acceptors in the AcceptorMap must be released (in DeregisterServices)
+ // with the solar mutex unlocked, to avoid deadlock:
+ nAcquireCount = Application::ReleaseSolarMutex();
DeregisterServices();
+ Application::AcquireSolarMutex(nAcquireCount);
tools::DeInitTestToolLib();
diff --git a/desktop/source/app/appinit.cxx b/desktop/source/app/appinit.cxx
index a8f9580fa2f6..97eb3f555f60 100644
--- a/desktop/source/app/appinit.cxx
+++ b/desktop/source/app/appinit.cxx
@@ -311,7 +311,6 @@ void Desktop::RegisterServices( Reference< XMultiServiceFactory >& xSMgr )
namespace
{
struct acceptorMap : public rtl::Static< AcceptorMap, acceptorMap > {};
- struct mtxAccMap : public rtl::Static< osl::Mutex, mtxAccMap > {};
struct CurrentTempURL : public rtl::Static< String, CurrentTempURL > {};
}
@@ -319,8 +318,6 @@ static sal_Bool bAccept = sal_False;
void Desktop::createAcceptor(const OUString& aAcceptString)
{
- // make sure nobody adds an acceptor whle we create one...
- osl::MutexGuard aGuard(mtxAccMap::get());
// check whether the requested acceptor already exists
AcceptorMap &rMap = acceptorMap::get();
AcceptorMap::const_iterator pIter = rMap.find(aAcceptString);
@@ -367,7 +364,6 @@ class enable
void Desktop::enableAcceptors()
{
RTL_LOGFILE_CONTEXT(aLog, "desktop (lo119109) Desktop::enableAcceptors");
- osl::MutexGuard aGuard(mtxAccMap::get());
if (!bAccept)
{
// from now on, all new acceptors are enabled
@@ -381,7 +377,6 @@ void Desktop::enableAcceptors()
void Desktop::destroyAcceptor(const OUString& aAcceptString)
{
- osl::MutexGuard aGuard(mtxAccMap::get());
// special case stop all acceptors
AcceptorMap &rMap = acceptorMap::get();
if (aAcceptString.compareToAscii("all") == 0) {
diff --git a/desktop/source/app/cmdlineargs.cxx b/desktop/source/app/cmdlineargs.cxx
index ac0381c3a96d..0625191ee2ea 100644
--- a/desktop/source/app/cmdlineargs.cxx
+++ b/desktop/source/app/cmdlineargs.cxx
@@ -399,6 +399,13 @@ sal_Bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString&
#if defined(WNT) || defined(OS2) || defined(QUARTZ)
SetBoolParam_Impl( CMD_BOOLPARAM_QUICKSTART, sal_True );
#endif
+ SetBoolParam_Impl( CMD_BOOLPARAM_NOQUICKSTART, sal_False );
+ return sal_True;
+ }
+ else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-quickstart=no" )))
+ {
+ SetBoolParam_Impl( CMD_BOOLPARAM_NOQUICKSTART, sal_True );
+ SetBoolParam_Impl( CMD_BOOLPARAM_QUICKSTART, sal_False );
return sal_True;
}
else if ( aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-terminate_after_init" )) == sal_True )
@@ -662,6 +669,12 @@ sal_Bool CommandLineArgs::IsQuickstart() const
return m_aBoolParams[ CMD_BOOLPARAM_QUICKSTART ];
}
+sal_Bool CommandLineArgs::IsNoQuickstart() const
+{
+ osl::MutexGuard aMutexGuard( m_aMutex );
+ return m_aBoolParams[ CMD_BOOLPARAM_NOQUICKSTART ];
+}
+
sal_Bool CommandLineArgs::IsTerminateAfterInit() const
{
osl::MutexGuard aMutexGuard( m_aMutex );
diff --git a/desktop/source/app/cmdlineargs.hxx b/desktop/source/app/cmdlineargs.hxx
index 1ec1ac3ad760..615577098c2d 100644
--- a/desktop/source/app/cmdlineargs.hxx
+++ b/desktop/source/app/cmdlineargs.hxx
@@ -48,6 +48,7 @@ class CommandLineArgs
CMD_BOOLPARAM_SERVER,
CMD_BOOLPARAM_HEADLESS,
CMD_BOOLPARAM_QUICKSTART,
+ CMD_BOOLPARAM_NOQUICKSTART,
CMD_BOOLPARAM_TERMINATEAFTERINIT,
CMD_BOOLPARAM_NOFIRSTSTARTWIZARD,
CMD_BOOLPARAM_NOLOGO,
@@ -132,6 +133,7 @@ class CommandLineArgs
sal_Bool IsServer() const;
sal_Bool IsHeadless() const;
sal_Bool IsQuickstart() const;
+ sal_Bool IsNoQuickstart() const;
sal_Bool IsTerminateAfterInit() const;
sal_Bool IsNoFirstStartWizard() const;
sal_Bool IsNoLogo() const;
diff --git a/desktop/source/app/copyright_ascii_ooo.c b/desktop/source/app/copyright_ascii_ooo.c
index 7b58f1a60f7e..7439547f62b4 100644
--- a/desktop/source/app/copyright_ascii_ooo.c
+++ b/desktop/source/app/copyright_ascii_ooo.c
@@ -5,12 +5,6 @@
*/
extern const char copyright_text_1[];
-extern const char copyright_text_2[];
-extern const char copyright_text_21[];
-extern const char copyright_text_22[];
-const char copyright_text_1[] = "Copyright © 2010 Sun Microsystems, Inc., All rights reserved.";
-const char copyright_text_2[] = "Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual property rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent applications in the U.S. and in other countries.";
-const char copyright_text_21[] = "Copyright © 2010 Sun Microsystems, Tous droits réservés.";
-const char copyright_text_22[] = "Sun Microsystems, Inc. a les droits de propriété intellectuels relatants à la technologie incorporée dans ce produit. En particulier, et sans la limitation, ces droits de propriété intellectuels peuvent inclure un ou plus des brevets américains énumérés à http://www.sun.com/patents et un ou les brevets plus supplémentaires ou les applications de brevet en attente dans les États - Unis et les autres pays.";
+const char copyright_text_1[] = "Copyright © 2000, 2010 Oracle and/or its affiliates, All rights reserved.";
diff --git a/desktop/source/app/copyright_ascii_sun.c b/desktop/source/app/copyright_ascii_sun.c
index 6284744db94f..c7de54e98fba 100644
--- a/desktop/source/app/copyright_ascii_sun.c
+++ b/desktop/source/app/copyright_ascii_sun.c
@@ -4,17 +4,5 @@
*
*/
-const char copyright_text_1[] = "Copyright © 2010 Sun Microsystems, Inc., All rights reserved.";
-const char copyright_text_2[] = "Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual property rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent applications in the U.S. and in other countries.";
-const char copyright_text_3[] = "U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements. Use is subject to license terms.";
-const char copyright_text_4[] = "This distribution may include materials developed by third parties.Sun, Sun Microsystems, the Sun logo, Java, Solaris and StarOffice are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.";
-const char copyright_text_5[] = "UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.";
-const char copyright_text_21[] = "Copyright © 2010 Sun Microsystems, Tous droits réservés.";
-const char copyright_text_22[] = "Sun Microsystems, Inc. a les droits de propriété intellectuels relatants à la technologie incorporée dans ce produit. En particulier, et sans la limitation, ces droits de propriété intellectuels peuvent inclure un ou plus des brevets américains énumérés à http://www.sun.com/patents et un ou les brevets plus supplémentaires ou les applications de brevet en attente dans les États - Unis et les autres pays.";
-const char copyright_text_23[] = "Ce produit ou document est protégé par un copyright et distribué avec des licences qui en restreignent l'utilisation, la copie, la distribution, et la décompilation. Aucune partie de ce produit ou document ne peut être reproduite sous aucune forme, par quelque moyen que ce soit, sans l'autorisation préalable et écrite de Sun et de ses bailleurs de licence, s'il y ena.";
-const char copyright_text_24[] = "L'utilisation est soumise aux termes du contrat de licence.";
-const char copyright_text_25[] = "Cette distribution peut comprendre des composants développés par des tierces parties.";
-const char copyright_text_26[] = "Sun, Sun Microsystems, le logo Sun, Java, Solaris et StarOffice sont des marques de fabrique ou des marques déposées de Sun Microsystems, Inc. aux Etats-Unis et dans d'autres pay";
-const char copyright_text_27[] = "Toutes les marques SPARC sont utilisées sous licence et sont des marques de fabrique ou des marques déposées de SPARC International, Inc. aux Etats-Unis et dans d'autres pay";
-const char copyright_text_28[] = "UNIX est une marque déposée aux Etats-Unis et dans d'autres pays et licenciée exlusivement par X/Open Company, Ltd.";
+const char copyright_text_1[] = "Copyright © 2000, 2010 Oracle and/or its affiliates, All rights reserved.";
diff --git a/desktop/source/app/desktop.src b/desktop/source/app/desktop.src
index d7ab4a27764e..2f6897adf80e 100644
--- a/desktop/source/app/desktop.src
+++ b/desktop/source/app/desktop.src
@@ -209,7 +209,7 @@ InfoBox INFOBOX_EXPIRED
{
Buttons = WB_OK ;
DefButton = WB_DEF_OK ;
- Message [ en-US ] = "This Evaluation Version has expired. To find out more about %PRODUCTNAME,\nvisit www.sun.com/%PRODUCTNAME.";
+ Message [ en-US ] = "This Evaluation Version has expired. To find out more about %PRODUCTNAME,\nvisit http://www.oracle.com/us/products/applications/open-office.";
};
String STR_TITLE_EXPIRED
diff --git a/desktop/source/app/version.map b/desktop/source/app/version.map
index 657ee2a95433..0ffffcd58635 100644
--- a/desktop/source/app/version.map
+++ b/desktop/source/app/version.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-soffice.3 {
+UDK_3_0_0 {
global:
soffice_main;
diff --git a/desktop/source/deployment/deployment.map b/desktop/source/deployment/deployment.map
deleted file mode 100644
index 563b3d86a5d0..000000000000
--- a/desktop/source/deployment/deployment.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/desktop/source/deployment/gui/makefile.mk b/desktop/source/deployment/gui/makefile.mk
index b55ad49421fc..6a9c7b6bbb38 100644
--- a/desktop/source/deployment/gui/makefile.mk
+++ b/desktop/source/deployment/gui/makefile.mk
@@ -60,7 +60,7 @@ SLOFILES = \
$(SLO)$/descedit.obj
SHL1TARGET = $(TARGET)$(DLLPOSTFIX).uno
-SHL1VERSIONMAP = ..$/deployment.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1STDLIBS = \
$(SALLIB) \
diff --git a/desktop/source/deployment/makefile.mk b/desktop/source/deployment/makefile.mk
index f11f87ad56cd..7eda0f582e15 100644
--- a/desktop/source/deployment/makefile.mk
+++ b/desktop/source/deployment/makefile.mk
@@ -49,7 +49,7 @@ INCPRE += inc
DLLPRE =
SHL1TARGET = $(TARGET)$(DLLPOSTFIX).uno
-SHL1VERSIONMAP = deployment.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1LIBS = \
$(SLB)$/deployment_manager.lib \
diff --git a/desktop/source/inc/exithelper.hxx b/desktop/source/inc/exithelper.hxx
index 958b549adfa0..2e6d7e774d98 100644
--- a/desktop/source/inc/exithelper.hxx
+++ b/desktop/source/inc/exithelper.hxx
@@ -56,12 +56,8 @@ class ExitHelper
E_SECOND_OFFICE = 1,
/// an uno exception was catched during startup
E_FATAL_ERROR = 333, // Only the low 8 bits are significant 333 % 256 = 77
- /// crash during runtime
- E_CRASH = 78,
/// user force automatic restart after crash
E_CRASH_WITH_RESTART = 79,
- /// ???
- E_LOCKFILE = 80
};
};
diff --git a/desktop/source/migration/services/makefile.mk b/desktop/source/migration/services/makefile.mk
index 64adfe70b7b2..55ecff6bc06f 100644
--- a/desktop/source/migration/services/makefile.mk
+++ b/desktop/source/migration/services/makefile.mk
@@ -65,7 +65,7 @@ SHL1OBJS= \
$(SLO)$/autocorrmigration.obj
SHL1TARGET=$(TARGET)
-SHL1VERSIONMAP = migrationoo2.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1STDLIBS= \
$(DEPLOYMENTMISCLIB) \
diff --git a/desktop/source/migration/services/migrationoo2.map b/desktop/source/migration/services/migrationoo2.map
deleted file mode 100644
index ac2c3750bfe0..000000000000
--- a/desktop/source/migration/services/migrationoo2.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/desktop/source/offacc/exports.map b/desktop/source/offacc/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/desktop/source/offacc/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/desktop/source/offacc/makefile.mk b/desktop/source/offacc/makefile.mk
index fb5cb9ab936c..c2d53930b580 100644
--- a/desktop/source/offacc/makefile.mk
+++ b/desktop/source/offacc/makefile.mk
@@ -47,7 +47,7 @@ SHL1OBJS= $(SLOFILES)
SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
SHL1IMPLIB= i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/desktop/source/pkgchk/unopkg/version.map b/desktop/source/pkgchk/unopkg/version.map
index 66b81247e826..6d34cb662d2c 100644
--- a/desktop/source/pkgchk/unopkg/version.map
+++ b/desktop/source/pkgchk/unopkg/version.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-unopkg.3 {
+UDK_3_0_0 {
global:
unopkg_main;
diff --git a/desktop/source/so_comp/exports.map b/desktop/source/so_comp/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/desktop/source/so_comp/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/desktop/source/so_comp/makefile.mk b/desktop/source/so_comp/makefile.mk
index b16ae7a009bf..590f99518c68 100644
--- a/desktop/source/so_comp/makefile.mk
+++ b/desktop/source/so_comp/makefile.mk
@@ -55,7 +55,7 @@ SHL1OBJS= $(SLOFILES)
SHL1TARGET= $(TARGET)
SHL1IMPLIB= i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/desktop/source/splash/exports.map b/desktop/source/splash/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/desktop/source/splash/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/desktop/source/splash/makefile.mk b/desktop/source/splash/makefile.mk
index 518ccc11ad0c..89609687438c 100644
--- a/desktop/source/splash/makefile.mk
+++ b/desktop/source/splash/makefile.mk
@@ -54,7 +54,7 @@ SHL1OBJS= $(SLOFILES) \
SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
SHL1IMPLIB=i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/desktop/util/ooverinfo.rc b/desktop/util/ooverinfo.rc
index 28b1e0d4a811..6d92e2a99500 100644
--- a/desktop/util/ooverinfo.rc
+++ b/desktop/util/ooverinfo.rc
@@ -110,10 +110,10 @@ VS_VERSION_INFO versioninfo
13 ICON "icons\\oasis-empty-document.ico"
14 ICON "icons\\oasis-database.ico"
15 ICON "icons\\oasis-formula.ico"
-16 ICON "icons\\empty-template.ico"
+16 ICON "icons\\oasis-web-template.ico"
17 ICON "icons\\empty-document.ico"
18 ICON "icons\\ooo-configuration.ico"
-19 ICON "icons\\ooo-open.ico"
+19 ICON "icons\\ooo3_open.ico"
20 ICON "icons\\empty-document.ico"
21 ICON "icons\\ooo3_writer_app.ico"
22 ICON "icons\\ooo3_calc_app.ico"
diff --git a/desktop/util/ooverinfo2.rc b/desktop/util/ooverinfo2.rc
index d19603d54855..f149ec6474e7 100644
--- a/desktop/util/ooverinfo2.rc
+++ b/desktop/util/ooverinfo2.rc
@@ -62,7 +62,7 @@ ICON 10 "icons/oasis-presentation-template.ico"
ICON 13 "icons/oasis-empty-document.ico"
ICON 14 "icons/oasis-database.ico"
ICON 15 "icons/oasis-formula.ico"
-ICON 16 "icons/empty-template.ico"
+ICON 16 "icons/oasis-web-template.ico"
ICON 17 "icons/empty-document.ico"
ICON 18 "icons/ooo-configuration.ico"
ICON 19 "icons/ooo-open.ico"
diff --git a/desktop/util/verinfo.rc b/desktop/util/verinfo.rc
index d61493568490..038953f2aa79 100644
--- a/desktop/util/verinfo.rc
+++ b/desktop/util/verinfo.rc
@@ -115,10 +115,10 @@ VS_VERSION_INFO versioninfo
13 ICON "icons\\oasis-empty-document.ico"
14 ICON "icons\\oasis-database.ico"
15 ICON "icons\\oasis-formula.ico"
-16 ICON "icons\\empty-template.ico"
+16 ICON "icons\\oasis-web-template.ico"
17 ICON "icons\\empty-document.ico"
18 ICON "icons\\so8-configuration.ico"
-19 ICON "icons\\so8-open.ico"
+19 ICON "icons\\so9_open.ico"
20 ICON "icons\\empty-document.ico"
21 ICON "icons\\so9_writer_app.ico"
22 ICON "icons\\so9_calc_app.ico"
diff --git a/desktop/win32/source/applauncher/makefile.mk b/desktop/win32/source/applauncher/makefile.mk
index 4285476475ca..f0f5743f38a1 100644
--- a/desktop/win32/source/applauncher/makefile.mk
+++ b/desktop/win32/source/applauncher/makefile.mk
@@ -129,7 +129,7 @@ APP6PRODUCTDEF+=-DRES_APP_NAME=smath
APP7TARGET=so$/sweb
APP7NOSAL=TRUE
APP7LINKRES=$(MISC)$/$(TARGET)7.res
-APP7ICON=$(SOLARRESDIR)$/icons/so9_html_doc.ico
+APP7ICON=$(SOLARRESDIR)$/icons/so9_writer_app.ico
APP7OBJS = \
$(OBJ)$/launcher.obj\
$(OBJ)$/sweb.obj
diff --git a/desktop/win32/source/applauncher/ooo/makefile.mk b/desktop/win32/source/applauncher/ooo/makefile.mk
index 9c60ad1b48e4..02f240cce9e0 100644
--- a/desktop/win32/source/applauncher/ooo/makefile.mk
+++ b/desktop/win32/source/applauncher/ooo/makefile.mk
@@ -116,7 +116,7 @@ APP7DEPN=verinfo.rc
APP7VERINFO=verinfo.rc
APP7NOSAL=TRUE
APP7LINKRES=$(MISC)$/$(TARGET)7.res
-APP7ICON=$(SOLARRESDIR)$/icons/ooo3_html_doc.ico
+APP7ICON=$(SOLARRESDIR)$/icons/ooo3_writer_app.ico
APP7OBJS = \
$(OBJ)$/launcher.obj\
$(OBJ)$/sweb.obj
diff --git a/drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx b/drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx
index c2d097d74a3b..8659eb356405 100644
--- a/drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx
@@ -78,14 +78,14 @@ namespace drawinglayer
{
case attribute::GRADIENTSTYLE_LINEAR:
{
- texture::GeoTexSvxGradientLinear aGradient(getObjectRange(), aStart, aEnd, nSteps, getFillGradient().getBorder(), -getFillGradient().getAngle());
+ texture::GeoTexSvxGradientLinear aGradient(getObjectRange(), aStart, aEnd, nSteps, getFillGradient().getBorder(), getFillGradient().getAngle());
aGradient.appendTransformations(rMatrices);
aGradient.appendColors(rColors);
break;
}
case attribute::GRADIENTSTYLE_AXIAL:
{
- texture::GeoTexSvxGradientAxial aGradient(getObjectRange(), aStart, aEnd, nSteps, getFillGradient().getBorder(), -getFillGradient().getAngle());
+ texture::GeoTexSvxGradientAxial aGradient(getObjectRange(), aStart, aEnd, nSteps, getFillGradient().getBorder(), getFillGradient().getAngle());
aGradient.appendTransformations(rMatrices);
aGradient.appendColors(rColors);
break;
@@ -99,21 +99,21 @@ namespace drawinglayer
}
case attribute::GRADIENTSTYLE_ELLIPTICAL:
{
- texture::GeoTexSvxGradientElliptical aGradient(getObjectRange(), aStart, aEnd, nSteps, getFillGradient().getBorder(), getFillGradient().getOffsetX(), getFillGradient().getOffsetY(), -getFillGradient().getAngle());
+ texture::GeoTexSvxGradientElliptical aGradient(getObjectRange(), aStart, aEnd, nSteps, getFillGradient().getBorder(), getFillGradient().getOffsetX(), getFillGradient().getOffsetY(), getFillGradient().getAngle());
aGradient.appendTransformations(rMatrices);
aGradient.appendColors(rColors);
break;
}
case attribute::GRADIENTSTYLE_SQUARE:
{
- texture::GeoTexSvxGradientSquare aGradient(getObjectRange(), aStart, aEnd, nSteps, getFillGradient().getBorder(), getFillGradient().getOffsetX(), getFillGradient().getOffsetY(), -getFillGradient().getAngle());
+ texture::GeoTexSvxGradientSquare aGradient(getObjectRange(), aStart, aEnd, nSteps, getFillGradient().getBorder(), getFillGradient().getOffsetX(), getFillGradient().getOffsetY(), getFillGradient().getAngle());
aGradient.appendTransformations(rMatrices);
aGradient.appendColors(rColors);
break;
}
case attribute::GRADIENTSTYLE_RECT:
{
- texture::GeoTexSvxGradientRect aGradient(getObjectRange(), aStart, aEnd, nSteps, getFillGradient().getBorder(), getFillGradient().getOffsetX(), getFillGradient().getOffsetY(), -getFillGradient().getAngle());
+ texture::GeoTexSvxGradientRect aGradient(getObjectRange(), aStart, aEnd, nSteps, getFillGradient().getBorder(), getFillGradient().getOffsetX(), getFillGradient().getOffsetY(), getFillGradient().getAngle());
aGradient.appendTransformations(rMatrices);
aGradient.appendColors(rColors);
break;
@@ -213,12 +213,16 @@ namespace drawinglayer
if(attribute::GRADIENTSTYLE_RADIAL == getFillGradient().getStyle()
|| attribute::GRADIENTSTYLE_ELLIPTICAL == getFillGradient().getStyle())
{
- const basegfx::B2DPoint aCircleCenter(0.5, 0.5);
- aUnitPolygon = basegfx::tools::createPolygonFromEllipse(aCircleCenter, 0.5, 0.5);
+ aUnitPolygon = basegfx::tools::createPolygonFromCircle(
+ basegfx::B2DPoint(0,0), 1);
+ }
+ else if(attribute::GRADIENTSTYLE_LINEAR == maFillGradient.getStyle())
+ {
+ aUnitPolygon = basegfx::tools::createPolygonFromRect(basegfx::B2DRange(0, 0, 1, 1));
}
else
{
- aUnitPolygon = basegfx::tools::createUnitPolygon();
+ aUnitPolygon = basegfx::tools::createPolygonFromRect(basegfx::B2DRange(-1, -1, 1, 1));
}
// get the transform matrices and colors (where colors
diff --git a/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx b/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx
index b606f4a286fc..4466081cae32 100644
--- a/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx
@@ -50,12 +50,11 @@ namespace drawinglayer
Primitive2DSequence FillHatchPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const
{
Primitive2DSequence aRetval;
-
if(!getFillHatch().isDefault())
{
// create hatch
const basegfx::BColor aHatchColor(getFillHatch().getColor());
- const double fAngle(-getFillHatch().getAngle());
+ const double fAngle(getFillHatch().getAngle());
::std::vector< basegfx::B2DHomMatrix > aMatrices;
// get hatch transformations
@@ -64,7 +63,7 @@ namespace drawinglayer
case attribute::HATCHSTYLE_TRIPLE:
{
// rotated 45 degrees
- texture::GeoTexSvxHatch aHatch(getObjectRange(), getFillHatch().getDistance(), fAngle + F_PI4);
+ texture::GeoTexSvxHatch aHatch(getObjectRange(), getFillHatch().getDistance(), fAngle - F_PI4);
aHatch.appendTransformations(aMatrices);
// fall-through by purpose
@@ -72,7 +71,7 @@ namespace drawinglayer
case attribute::HATCHSTYLE_DOUBLE:
{
// rotated 90 degrees
- texture::GeoTexSvxHatch aHatch(getObjectRange(), getFillHatch().getDistance(), fAngle + F_PI2);
+ texture::GeoTexSvxHatch aHatch(getObjectRange(), getFillHatch().getDistance(), fAngle - F_PI2);
aHatch.appendTransformations(aMatrices);
// fall-through by purpose
diff --git a/drawinglayer/source/primitive3d/hatchtextureprimitive3d.cxx b/drawinglayer/source/primitive3d/hatchtextureprimitive3d.cxx
index 5dbdce756a5a..d94fbb5f893c 100644
--- a/drawinglayer/source/primitive3d/hatchtextureprimitive3d.cxx
+++ b/drawinglayer/source/primitive3d/hatchtextureprimitive3d.cxx
@@ -147,7 +147,7 @@ namespace drawinglayer
// get 2d range of texture coordinates
const basegfx::B2DRange aOutlineRange(basegfx::tools::getRange(aTexPolyPolygon));
const basegfx::BColor aHatchColor(getHatch().getColor());
- const double fAngle(-getHatch().getAngle());
+ const double fAngle(getHatch().getAngle());
::std::vector< basegfx::B2DHomMatrix > aMatrices;
// get hatch transformations
@@ -156,13 +156,13 @@ namespace drawinglayer
case attribute::HATCHSTYLE_TRIPLE:
{
// rotated 45 degrees
- texture::GeoTexSvxHatch aHatch(aOutlineRange, getHatch().getDistance(), fAngle + F_PI4);
+ texture::GeoTexSvxHatch aHatch(aOutlineRange, getHatch().getDistance(), fAngle - F_PI4);
aHatch.appendTransformations(aMatrices);
}
case attribute::HATCHSTYLE_DOUBLE:
{
// rotated 90 degrees
- texture::GeoTexSvxHatch aHatch(aOutlineRange, getHatch().getDistance(), fAngle + F_PI2);
+ texture::GeoTexSvxHatch aHatch(aOutlineRange, getHatch().getDistance(), fAngle - F_PI2);
aHatch.appendTransformations(aMatrices);
}
case attribute::HATCHSTYLE_SINGLE:
diff --git a/drawinglayer/source/processor2d/vclhelpergradient.cxx b/drawinglayer/source/processor2d/vclhelpergradient.cxx
index b9fa91a89750..6c318dbcedc9 100644
--- a/drawinglayer/source/processor2d/vclhelpergradient.cxx
+++ b/drawinglayer/source/processor2d/vclhelpergradient.cxx
@@ -210,16 +210,6 @@ namespace drawinglayer
::std::vector< basegfx::BColor > aColors;
basegfx::B2DPolygon aUnitPolygon;
- if(attribute::GRADIENTSTYLE_RADIAL == eGradientStyle || attribute::GRADIENTSTYLE_ELLIPTICAL == eGradientStyle)
- {
- const basegfx::B2DPoint aCircleCenter(0.5, 0.5);
- aUnitPolygon = basegfx::tools::createPolygonFromEllipse(aCircleCenter, 0.5, 0.5);
- }
- else
- {
- aUnitPolygon = basegfx::tools::createUnitPolygon();
- }
-
// make sure steps is not too high/low
nSteps = impCalcGradientSteps(rOutDev, nSteps, aOutlineRange, sal_uInt32((rStart.getMaximumDistance(rEnd) * 127.5) + 0.5));
@@ -231,6 +221,7 @@ namespace drawinglayer
texture::GeoTexSvxGradientLinear aGradient(aOutlineRange, rStart, rEnd, nSteps, fBorder, fAngle);
aGradient.appendTransformations(aMatrices);
aGradient.appendColors(aColors);
+ aUnitPolygon = basegfx::tools::createUnitPolygon();
break;
}
case attribute::GRADIENTSTYLE_AXIAL:
@@ -238,6 +229,7 @@ namespace drawinglayer
texture::GeoTexSvxGradientAxial aGradient(aOutlineRange, rStart, rEnd, nSteps, fBorder, fAngle);
aGradient.appendTransformations(aMatrices);
aGradient.appendColors(aColors);
+ aUnitPolygon = basegfx::tools::createPolygonFromRect(basegfx::B2DRange(-1, -1, 1, 1));
break;
}
case attribute::GRADIENTSTYLE_RADIAL:
@@ -245,6 +237,7 @@ namespace drawinglayer
texture::GeoTexSvxGradientRadial aGradient(aOutlineRange, rStart, rEnd, nSteps, fBorder, fOffsetX, fOffsetY);
aGradient.appendTransformations(aMatrices);
aGradient.appendColors(aColors);
+ aUnitPolygon = basegfx::tools::createPolygonFromCircle(basegfx::B2DPoint(0,0), 1);
break;
}
case attribute::GRADIENTSTYLE_ELLIPTICAL:
@@ -252,6 +245,7 @@ namespace drawinglayer
texture::GeoTexSvxGradientElliptical aGradient(aOutlineRange, rStart, rEnd, nSteps, fBorder, fOffsetX, fOffsetX, fAngle);
aGradient.appendTransformations(aMatrices);
aGradient.appendColors(aColors);
+ aUnitPolygon = basegfx::tools::createPolygonFromCircle(basegfx::B2DPoint(0,0), 1);
break;
}
case attribute::GRADIENTSTYLE_SQUARE:
@@ -259,6 +253,7 @@ namespace drawinglayer
texture::GeoTexSvxGradientSquare aGradient(aOutlineRange, rStart, rEnd, nSteps, fBorder, fOffsetX, fOffsetX, fAngle);
aGradient.appendTransformations(aMatrices);
aGradient.appendColors(aColors);
+ aUnitPolygon = basegfx::tools::createPolygonFromRect(basegfx::B2DRange(-1, -1, 1, 1));
break;
}
case attribute::GRADIENTSTYLE_RECT:
@@ -266,6 +261,7 @@ namespace drawinglayer
texture::GeoTexSvxGradientRect aGradient(aOutlineRange, rStart, rEnd, nSteps, fBorder, fOffsetX, fOffsetX, fAngle);
aGradient.appendTransformations(aMatrices);
aGradient.appendColors(aColors);
+ aUnitPolygon = basegfx::tools::createPolygonFromRect(basegfx::B2DRange(-1, -1, 1, 1));
break;
}
}
diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index fe0c6ff1ea4f..e49e54fb751c 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -581,7 +581,7 @@ namespace drawinglayer
impDrawGradientToOutDev(
*mpOutputDevice, aLocalPolyPolygon, rGradient.getStyle(), rGradient.getSteps(),
aStartColor, aEndColor, rGradient.getBorder(),
- -rGradient.getAngle(), rGradient.getOffsetX(), rGradient.getOffsetY(), false);
+ rGradient.getAngle(), rGradient.getOffsetX(), rGradient.getOffsetY(), false);
}
}
}
diff --git a/drawinglayer/source/processor3d/defaultprocessor3d.cxx b/drawinglayer/source/processor3d/defaultprocessor3d.cxx
index b6f5cd60f271..13d50a63878b 100644
--- a/drawinglayer/source/processor3d/defaultprocessor3d.cxx
+++ b/drawinglayer/source/processor3d/defaultprocessor3d.cxx
@@ -100,12 +100,12 @@ namespace drawinglayer
{
case attribute::GRADIENTSTYLE_LINEAR:
{
- pNewTex.reset(new texture::GeoTexSvxGradientLinear(aOutlineRange, aStart, aEnd, nSteps, rFillGradient.getBorder(), -rFillGradient.getAngle()));
+ pNewTex.reset(new texture::GeoTexSvxGradientLinear(aOutlineRange, aStart, aEnd, nSteps, rFillGradient.getBorder(), rFillGradient.getAngle()));
break;
}
case attribute::GRADIENTSTYLE_AXIAL:
{
- pNewTex.reset(new texture::GeoTexSvxGradientAxial(aOutlineRange, aStart, aEnd, nSteps, rFillGradient.getBorder(), -rFillGradient.getAngle()));
+ pNewTex.reset(new texture::GeoTexSvxGradientAxial(aOutlineRange, aStart, aEnd, nSteps, rFillGradient.getBorder(), rFillGradient.getAngle()));
break;
}
case attribute::GRADIENTSTYLE_RADIAL:
@@ -115,17 +115,17 @@ namespace drawinglayer
}
case attribute::GRADIENTSTYLE_ELLIPTICAL:
{
- pNewTex.reset(new texture::GeoTexSvxGradientElliptical(aOutlineRange, aStart, aEnd, nSteps, rFillGradient.getBorder(), rFillGradient.getOffsetX(), rFillGradient.getOffsetY(), -rFillGradient.getAngle()));
+ pNewTex.reset(new texture::GeoTexSvxGradientElliptical(aOutlineRange, aStart, aEnd, nSteps, rFillGradient.getBorder(), rFillGradient.getOffsetX(), rFillGradient.getOffsetY(), rFillGradient.getAngle()));
break;
}
case attribute::GRADIENTSTYLE_SQUARE:
{
- pNewTex.reset(new texture::GeoTexSvxGradientSquare(aOutlineRange, aStart, aEnd, nSteps, rFillGradient.getBorder(), rFillGradient.getOffsetX(), rFillGradient.getOffsetY(), -rFillGradient.getAngle()));
+ pNewTex.reset(new texture::GeoTexSvxGradientSquare(aOutlineRange, aStart, aEnd, nSteps, rFillGradient.getBorder(), rFillGradient.getOffsetX(), rFillGradient.getOffsetY(), rFillGradient.getAngle()));
break;
}
case attribute::GRADIENTSTYLE_RECT:
{
- pNewTex.reset(new texture::GeoTexSvxGradientRect(aOutlineRange, aStart, aEnd, nSteps, rFillGradient.getBorder(), rFillGradient.getOffsetX(), rFillGradient.getOffsetY(), -rFillGradient.getAngle()));
+ pNewTex.reset(new texture::GeoTexSvxGradientRect(aOutlineRange, aStart, aEnd, nSteps, rFillGradient.getBorder(), rFillGradient.getOffsetX(), rFillGradient.getOffsetY(), rFillGradient.getAngle()));
break;
}
}
diff --git a/drawinglayer/source/texture/texture.cxx b/drawinglayer/source/texture/texture.cxx
index 770e3035692d..107072b712dd 100644
--- a/drawinglayer/source/texture/texture.cxx
+++ b/drawinglayer/source/texture/texture.cxx
@@ -158,15 +158,10 @@ namespace drawinglayer
{
if(maGradientInfo.mnSteps)
{
- const double fTop(mfBorder);
- const double fStripeWidth((1.0 - fTop) / maGradientInfo.mnSteps);
-
+ const double fStripeWidth(1.0 / maGradientInfo.mnSteps);
for(sal_uInt32 a(1L); a < maGradientInfo.mnSteps; a++)
{
- const double fOffsetUpper(fStripeWidth * (double)a);
-
- // create matrix
- const basegfx::B2DRange aRect(0.0, fTop + fOffsetUpper, 1.0, 1.0);
+ const basegfx::B2DRange aRect(0.0, fStripeWidth * a, 1.0, 1.0);
impAppendMatrix(rMatrices, aRect);
}
}
@@ -218,17 +213,10 @@ namespace drawinglayer
{
if(maGradientInfo.mnSteps)
{
- const double fHalfBorder(mfBorder * 0.5);
- double fTop(fHalfBorder);
- double fBottom(1.0 - fHalfBorder);
- const double fStripeWidth((fBottom - fTop) / ((maGradientInfo.mnSteps * 2L) - 1L));
-
- for(sal_uInt32 a(1L); a < maGradientInfo.mnSteps; a++)
+ const double fStripeWidth=1.0 / (maGradientInfo.mnSteps - 1L);
+ for(sal_uInt32 a(maGradientInfo.mnSteps-1L); a != 0; a--)
{
- const double fOffset(fStripeWidth * (double)a);
-
- // create matrix
- const basegfx::B2DRange aRect(0.0, fTop + fOffset, 1.0, fBottom - fOffset);
+ const basegfx::B2DRange aRect(0, 0, 1.0, fStripeWidth * a);
impAppendMatrix(rMatrices, aRect);
}
}
@@ -280,34 +268,10 @@ namespace drawinglayer
{
if(maGradientInfo.mnSteps)
{
- const double fHalfBorder((1.0 - mfBorder) * 0.5);
- double fLeft(0.5 - fHalfBorder);
- double fTop(0.5 - fHalfBorder);
- double fRight(0.5 + fHalfBorder);
- double fBottom(0.5 + fHalfBorder);
- double fIncrementX, fIncrementY;
-
- if(maGradientInfo.mfAspectRatio > 1.0)
- {
- fIncrementY = (fBottom - fTop) / (double)(maGradientInfo.mnSteps * 2L);
- fIncrementX = fIncrementY / maGradientInfo.mfAspectRatio;
- }
- else
- {
- fIncrementX = (fRight - fLeft) / (double)(maGradientInfo.mnSteps * 2L);
- fIncrementY = fIncrementX * maGradientInfo.mfAspectRatio;
- }
-
- for(sal_uInt32 a(1L); a < maGradientInfo.mnSteps; a++)
+ const double fStepSize=1.0 / maGradientInfo.mnSteps;
+ for(sal_uInt32 a(maGradientInfo.mnSteps-1L); a > 0; a--)
{
- // next step
- fLeft += fIncrementX;
- fRight -= fIncrementX;
- fTop += fIncrementY;
- fBottom -= fIncrementY;
-
- // create matrix
- const basegfx::B2DRange aRect(fLeft, fTop, fRight, fBottom);
+ const basegfx::B2DRange aRect(0, 0, fStepSize*a, fStepSize*a);
impAppendMatrix(rMatrices, aRect);
}
}
@@ -352,34 +316,29 @@ namespace drawinglayer
{
if(maGradientInfo.mnSteps)
{
- const double fHalfBorder((1.0 - mfBorder) * 0.5);
- double fLeft(0.5 - fHalfBorder);
- double fTop(0.5 - fHalfBorder);
- double fRight(0.5 + fHalfBorder);
- double fBottom(0.5 + fHalfBorder);
+ double fWidth(1);
+ double fHeight(1);
double fIncrementX, fIncrementY;
if(maGradientInfo.mfAspectRatio > 1.0)
{
- fIncrementY = (fBottom - fTop) / (double)(maGradientInfo.mnSteps * 2L);
+ fIncrementY = fHeight / maGradientInfo.mnSteps;
fIncrementX = fIncrementY / maGradientInfo.mfAspectRatio;
}
else
{
- fIncrementX = (fRight - fLeft) / (double)(maGradientInfo.mnSteps * 2L);
+ fIncrementX = fWidth / maGradientInfo.mnSteps;
fIncrementY = fIncrementX * maGradientInfo.mfAspectRatio;
}
for(sal_uInt32 a(1L); a < maGradientInfo.mnSteps; a++)
{
// next step
- fLeft += fIncrementX;
- fRight -= fIncrementX;
- fTop += fIncrementY;
- fBottom -= fIncrementY;
+ fWidth -= fIncrementX;
+ fHeight -= fIncrementY;
// create matrix
- const basegfx::B2DRange aRect(fLeft, fTop, fRight, fBottom);
+ const basegfx::B2DRange aRect(0, 0, fWidth, fHeight);
impAppendMatrix(rMatrices, aRect);
}
}
@@ -424,42 +383,10 @@ namespace drawinglayer
{
if(maGradientInfo.mnSteps)
{
- const double fHalfBorder((1.0 - mfBorder) * 0.5);
- double fLeft(0.5 - fHalfBorder);
- double fTop(0.5 - fHalfBorder);
- double fRight(0.5 + fHalfBorder);
- double fBottom(0.5 + fHalfBorder);
- double fIncrementX, fIncrementY;
-
- if(maGradientInfo.mfAspectRatio > 1.0)
- {
- const double fWidth(fRight - fLeft);
- const double fHalfAspectExpansion(((maGradientInfo.mfAspectRatio - 1.0) * 0.5) * fWidth);
- fTop -= fHalfAspectExpansion;
- fBottom += fHalfAspectExpansion;
- fIncrementX = fWidth / (double)(maGradientInfo.mnSteps * 2L);
- fIncrementY = fIncrementX * maGradientInfo.mfAspectRatio;
- }
- else
+ const double fStepSize=1.0 / maGradientInfo.mnSteps;
+ for(sal_uInt32 a(maGradientInfo.mnSteps-1L); a > 0; a--)
{
- const double fHeight(fBottom - fTop);
- const double fHalfAspectExpansion((((1.0 / maGradientInfo.mfAspectRatio) - 1.0) * 0.5) * fHeight);
- fLeft -= fHalfAspectExpansion;
- fRight += fHalfAspectExpansion;
- fIncrementY = fHeight / (double)(maGradientInfo.mnSteps * 2L);
- fIncrementX = fIncrementY / maGradientInfo.mfAspectRatio;
- }
-
- for(sal_uInt32 a(1L); a < maGradientInfo.mnSteps; a++)
- {
- // next step
- fLeft += fIncrementX;
- fRight -= fIncrementX;
- fTop += fIncrementY;
- fBottom -= fIncrementY;
-
- // create matrix
- const basegfx::B2DRange aRect(fLeft, fTop, fRight, fBottom);
+ const basegfx::B2DRange aRect(0, 0, fStepSize*a, fStepSize*a);
impAppendMatrix(rMatrices, aRect);
}
}
@@ -504,34 +431,29 @@ namespace drawinglayer
{
if(maGradientInfo.mnSteps)
{
- const double fHalfBorder((1.0 - mfBorder) * 0.5);
- double fLeft(0.5 - fHalfBorder);
- double fTop(0.5 - fHalfBorder);
- double fRight(0.5 + fHalfBorder);
- double fBottom(0.5 + fHalfBorder);
+ double fWidth(1);
+ double fHeight(1);
double fIncrementX, fIncrementY;
if(maGradientInfo.mfAspectRatio > 1.0)
{
- fIncrementY = (fBottom - fTop) / (double)(maGradientInfo.mnSteps * 2L);
+ fIncrementY = fHeight / maGradientInfo.mnSteps;
fIncrementX = fIncrementY / maGradientInfo.mfAspectRatio;
}
else
{
- fIncrementX = (fRight - fLeft) / (double)(maGradientInfo.mnSteps * 2L);
+ fIncrementX = fWidth / maGradientInfo.mnSteps;
fIncrementY = fIncrementX * maGradientInfo.mfAspectRatio;
}
for(sal_uInt32 a(1L); a < maGradientInfo.mnSteps; a++)
{
// next step
- fLeft += fIncrementX;
- fRight -= fIncrementX;
- fTop += fIncrementY;
- fBottom -= fIncrementY;
+ fWidth -= fIncrementX;
+ fHeight -= fIncrementY;
// create matrix
- const basegfx::B2DRange aRect(fLeft, fTop, fRight, fBottom);
+ const basegfx::B2DRange aRect(0, 0, fWidth, fHeight);
impAppendMatrix(rMatrices, aRect);
}
}
@@ -567,6 +489,8 @@ namespace drawinglayer
double fTargetOffsetX(rTargetRange.getMinX());
double fTargetOffsetY(rTargetRange.getMinY());
+ fAngle = -fAngle;
+
// add object expansion
if(0.0 != fAngle)
{
diff --git a/drawinglayer/source/texture/texture3d.cxx b/drawinglayer/source/texture/texture3d.cxx
index d83998df9efd..cf85b53bad43 100644
--- a/drawinglayer/source/texture/texture3d.cxx
+++ b/drawinglayer/source/texture/texture3d.cxx
@@ -189,7 +189,7 @@ namespace drawinglayer
{
const attribute::FillHatchAttribute& rHatch(rPrimitive.getHatch());
const basegfx::B2DRange aOutlineRange(0.0, 0.0, rPrimitive.getTextureSize().getX(), rPrimitive.getTextureSize().getY());
- const double fAngleA(-rHatch.getAngle());
+ const double fAngleA(rHatch.getAngle());
maColor = rHatch.getColor();
mbFillBackground = rHatch.isFillBackground();
mp0 = new GeoTexSvxHatch(aOutlineRange, rHatch.getDistance(), fAngleA);
diff --git a/dtrans/source/generic/exports.map b/dtrans/source/generic/exports.map
deleted file mode 100644
index 28449cc0f4a8..000000000000
--- a/dtrans/source/generic/exports.map
+++ /dev/null
@@ -1,9 +0,0 @@
-DTRANS_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
-
diff --git a/dtrans/source/generic/makefile.mk b/dtrans/source/generic/makefile.mk
index c1afa848d7ed..e015400c32d9 100644
--- a/dtrans/source/generic/makefile.mk
+++ b/dtrans/source/generic/makefile.mk
@@ -46,7 +46,7 @@ SLOFILES= \
SHL1TARGET= dtrans
-SHL1VERSIONMAP= exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS= \
$(SALLIB) \
diff --git a/dtrans/util/exports.map b/dtrans/util/exports.map
deleted file mode 100644
index 7c56baa9bd73..000000000000
--- a/dtrans/util/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/dtrans/util/makefile.mk b/dtrans/util/makefile.mk
index 921f4458b43c..0443c131ccb6 100644
--- a/dtrans/util/makefile.mk
+++ b/dtrans/util/makefile.mk
@@ -64,7 +64,7 @@ SHL1IMPLIB=i$(SHL1TARGET)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
DEF1EXPORTFILE= exports.dxp
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
.IF "$(GUI)"=="WNT"
diff --git a/editeng/source/editeng/editdbg.cxx b/editeng/source/editeng/editdbg.cxx
index 01a387249f24..a21c6ed345c6 100644
--- a/editeng/source/editeng/editdbg.cxx
+++ b/editeng/source/editeng/editdbg.cxx
@@ -458,7 +458,7 @@ void EditDbg::ShowEditEngineData( EditEngine* pEE, BOOL bInfoBox )
fprintf( fp, "\n\n ================================================================================" );
fprintf( fp, "\n================== EditEngine & Views ======================================" );
fprintf( fp, "\n================================================================================" );
- fprintf( fp, "\nControl: %lx", pEE->GetControlWord() );
+ fprintf( fp, "\nControl: %"SAL_PRIxUINT32, pEE->GetControlWord() );
fprintf( fp, "\nRefMapMode: %i", pEE->pImpEditEngine->pRefDev->GetMapMode().GetMapUnit() );
fprintf( fp, "\nPaperSize: %li x %li", pEE->GetPaperSize().Width(), pEE->GetPaperSize().Height() );
fprintf( fp, "\nMaxAutoPaperSize: %li x %li", pEE->GetMaxAutoPaperSize().Width(), pEE->GetMaxAutoPaperSize().Height() );
diff --git a/epm/makefile.mk b/epm/makefile.mk
index 9cf767911ab5..a33f6077b925 100644
--- a/epm/makefile.mk
+++ b/epm/makefile.mk
@@ -37,6 +37,7 @@ TARGET=epm
# --- Files --------------------------------------------------------
TARFILE_NAME=epm-3.7
+TARFILE_MD5=3ade8cfe7e59ca8e65052644fed9fca4
PATCH_FILES=epm-3.7.patch
.IF "$(GUI)"=="UNX" && "$(BUILD_EPM)" != "NO"
diff --git a/eventattacher/source/exports.map b/eventattacher/source/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/eventattacher/source/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/eventattacher/source/makefile.mk b/eventattacher/source/makefile.mk
index ddab6f7ea30f..632a1fa41ad5 100644
--- a/eventattacher/source/makefile.mk
+++ b/eventattacher/source/makefile.mk
@@ -44,7 +44,7 @@ SLOFILES= \
SHL1TARGET= $(TARGET)
SHL1IMPLIB= i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/expat/makefile.mk b/expat/makefile.mk
index 1c2ca1a9e0f7..867e2b371558 100644
--- a/expat/makefile.mk
+++ b/expat/makefile.mk
@@ -43,6 +43,7 @@ all:
# --- Files --------------------------------------------------------
TARFILE_NAME=expat-2.0.1
+TARFILE_MD5=ee8b492592568805593f81f8cdf2a04c
ADDITIONAL_FILES=lib$/makefile.mk
PATCH_FILES=expat-2.0.1.patch \
expat-winapi.patch
diff --git a/extensions/prj/build.lst b/extensions/prj/build.lst
index 1489e2a4e0e4..0885b3021c61 100644
--- a/extensions/prj/build.lst
+++ b/extensions/prj/build.lst
@@ -34,3 +34,4 @@ ex extensions\source\update\feed nmake - all ex_updchkfeed ex
ex extensions\source\update\check nmake - all ex_updchk ex_inc NULL
ex extensions\source\update\ui nmake - all ex_updchkui ex_inc NULL
ex extensions\util nmake - all ex_util ex_preload ex_abpilot ex_dbpilots ex_logging ex_ldap ex_propctrlr ex_bib ex_plutil ex_oooimprovecore NULL
+ex extensions\qa\unoapi nmake - all ex_qa_unoapi NULL
diff --git a/extensions/qa/unoapi/Test.java b/extensions/qa/unoapi/Test.java
new file mode 100644
index 000000000000..c997cb9ded32
--- /dev/null
+++ b/extensions/qa/unoapi/Test.java
@@ -0,0 +1,50 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.extensions.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "extensions.sce", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/extensions/qa/unoapi/makefile.mk b/extensions/qa/unoapi/makefile.mk
index fef18c6d2ded..a869a3c1013e 100644
--- a/extensions/qa/unoapi/makefile.mk
+++ b/extensions/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,19 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=extensions
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = extensions
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/extensions/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce $(PRJNAME).sce -THRCNT 1
+.END
diff --git a/extensions/source/abpilot/abp.map b/extensions/source/abpilot/abp.map
deleted file mode 100644
index 2b4747c38ff9..000000000000
--- a/extensions/source/abpilot/abp.map
+++ /dev/null
@@ -1,8 +0,0 @@
-EXTABP_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/extensions/source/abpilot/makefile.mk b/extensions/source/abpilot/makefile.mk
index c5b25fc733f7..19477e1b6b2b 100644
--- a/extensions/source/abpilot/makefile.mk
+++ b/extensions/source/abpilot/makefile.mk
@@ -76,7 +76,7 @@ RESLIB1IMAGES=$(PRJ)$/res
RESLIB1SRSFILES= $(SRS)$/abp.srs
SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS= \
$(VCLLIB) \
diff --git a/extensions/source/activex/main/makefile.mk b/extensions/source/activex/main/makefile.mk
index 53a54473ff49..e4770180886c 100644
--- a/extensions/source/activex/main/makefile.mk
+++ b/extensions/source/activex/main/makefile.mk
@@ -152,8 +152,4 @@ VERSIONOBJ_X64=
$(MISC)$/envsettings.h : makefile.mk
-$(RM) $@
# it looks wrong; but rc likes it that way...
-.IF "$(USE_SHELL)"!="4nt"
echo "#define MISC .\..\$(INPATH)\misc" > $@
-.ELSE # "$(USE_SHELL)"!="4nt"
- echo #define MISC .\..\$(INPATH)\misc > $@
-.ENDIF # "$(USE_SHELL)"!="4nt"
diff --git a/extensions/source/bibliography/exports.map b/extensions/source/bibliography/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/extensions/source/bibliography/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/extensions/source/bibliography/makefile.mk b/extensions/source/bibliography/makefile.mk
index efc1fbe222f3..f25dce11045b 100644
--- a/extensions/source/bibliography/makefile.mk
+++ b/extensions/source/bibliography/makefile.mk
@@ -82,7 +82,7 @@ SHL1LIBS= $(SLB)$/$(TARGET).lib
SHL1IMPLIB= i$(TARGET)
SHL1DEPN= $(SHL1LIBS)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME= $(SHL1TARGET)
# --- Targets ------------------------------------------------------
diff --git a/extensions/source/dbpilots/dbp.map b/extensions/source/dbpilots/dbp.map
deleted file mode 100644
index 1fe77064bd27..000000000000
--- a/extensions/source/dbpilots/dbp.map
+++ /dev/null
@@ -1,8 +0,0 @@
-EXTDBP_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/extensions/source/dbpilots/makefile.mk b/extensions/source/dbpilots/makefile.mk
index 8ef5ebae82e8..b5831e5fda0f 100644
--- a/extensions/source/dbpilots/makefile.mk
+++ b/extensions/source/dbpilots/makefile.mk
@@ -76,7 +76,7 @@ RESLIB1NAME=dbp
RESLIB1SRSFILES= $(SRS)$/dbp.srs
SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS= \
$(SVTOOLLIB) \
diff --git a/extensions/source/logging/log.map b/extensions/source/logging/log.map
deleted file mode 100644
index 0bb561b5b067..000000000000
--- a/extensions/source/logging/log.map
+++ /dev/null
@@ -1,8 +0,0 @@
-LOG_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/extensions/source/logging/makefile.mk b/extensions/source/logging/makefile.mk
index f3bfb2a4ea06..4a1fa9813cb0 100644
--- a/extensions/source/logging/makefile.mk
+++ b/extensions/source/logging/makefile.mk
@@ -68,7 +68,7 @@ SHL1STDLIBS= \
SHL1LIBS=$(LIB1TARGET)
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Targets ----------------------------------
diff --git a/extensions/source/oooimprovecore/makefile.mk b/extensions/source/oooimprovecore/makefile.mk
index 977098af8049..97e130c3a644 100644
--- a/extensions/source/oooimprovecore/makefile.mk
+++ b/extensions/source/oooimprovecore/makefile.mk
@@ -69,7 +69,7 @@ SHL1STDLIBS= \
SHL1LIBS=$(LIB1TARGET)
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Targets ----------------------------------
diff --git a/extensions/source/oooimprovecore/oooimprovecore.map b/extensions/source/oooimprovecore/oooimprovecore.map
deleted file mode 100644
index fe782c0d7737..000000000000
--- a/extensions/source/oooimprovecore/oooimprovecore.map
+++ /dev/null
@@ -1,8 +0,0 @@
-OOOIMPROVECORE_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/extensions/source/oooimprovement/makefile.mk b/extensions/source/oooimprovement/makefile.mk
index ba8ff01a8c0e..6e5d7ab0d6a2 100644
--- a/extensions/source/oooimprovement/makefile.mk
+++ b/extensions/source/oooimprovement/makefile.mk
@@ -73,7 +73,7 @@ SHL1TARGET= oooimp$(DLLPOSTFIX)
SHL1LIBS= $(SLB)$/$(TARGET).lib
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
-SHL1VERSIONMAP= oooimprovement.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
PACKAGEDIR=$(subst,.,$/ $(PACKAGE))
SPOOLDIR=$(MISC)$/registry$/spool
diff --git a/extensions/source/oooimprovement/oooimprovement.map b/extensions/source/oooimprovement/oooimprovement.map
deleted file mode 100644
index de08e5708ea5..000000000000
--- a/extensions/source/oooimprovement/oooimprovement.map
+++ /dev/null
@@ -1,11 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
-
diff --git a/extensions/source/plugin/unx/npwrap.cxx b/extensions/source/plugin/unx/npwrap.cxx
index 1be5f9f42a03..387de8cde24d 100644
--- a/extensions/source/plugin/unx/npwrap.cxx
+++ b/extensions/source/plugin/unx/npwrap.cxx
@@ -482,7 +482,9 @@ int main( int argc, char **argv)
medDebug( 1, "left plugin app main loop\n" );
+ #ifdef ENABLE_GTK
g_source_remove(xt_polling_timer_id);
+ #endif
pNP_Shutdown();
medDebug( 1, "NP_Shutdown done\n" );
diff --git a/extensions/source/plugin/util/exports.map b/extensions/source/plugin/util/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/extensions/source/plugin/util/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/extensions/source/plugin/util/makefile.mk b/extensions/source/plugin/util/makefile.mk
index 659e8f3acaed..7a8c46c01769 100644
--- a/extensions/source/plugin/util/makefile.mk
+++ b/extensions/source/plugin/util/makefile.mk
@@ -67,7 +67,7 @@ SHL1OWNLIBS = \
SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
SHL1IMPLIB= i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/extensions/source/preload/makefile.mk b/extensions/source/preload/makefile.mk
index 4e4bab1bc71a..fb11a2bfd32c 100644
--- a/extensions/source/preload/makefile.mk
+++ b/extensions/source/preload/makefile.mk
@@ -57,7 +57,7 @@ RESLIB1IMAGES=$(PRJ)$/res
RESLIB1SRSFILES= $(SRS)$/preload.srs
SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS= \
$(SFXLIB) \
diff --git a/extensions/source/preload/preload.map b/extensions/source/preload/preload.map
deleted file mode 100644
index ff4971857d69..000000000000
--- a/extensions/source/preload/preload.map
+++ /dev/null
@@ -1,8 +0,0 @@
-EXTDBI_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/extensions/source/preload/preload.src b/extensions/source/preload/preload.src
index feea7249ce70..59805b768adf 100644
--- a/extensions/source/preload/preload.src
+++ b/extensions/source/preload/preload.src
@@ -86,10 +86,8 @@ TabPage RID_TP_WELCOME
Text [ en-US ] = "Welcome to %PRODUCTNAME %PRODUCTVERSION OEM\n\nTo start the %PRODUCTNAME %PRODUCTVERSION OEM, "
"please enter your personal data in the dialog following the license text. Important information is contained "
"in the readme files which are located in the %PRODUCTNAME product directory. Please read these files carefully. "
- "You can also find detailed information at the Sun website \n\n"
- "http://www.sun.com/staroffice.\n\nSupport and Training:\n\nGet FREE software support valid for 60 days from date "
- "of purchase. To take advantage of this offer, visit the website below.\n\n"
- "http://www.sun.com/star/service\n\nWe hope you enjoy working with %PRODUCTNAME.";
+ "You can also find detailed information at the Oracle website \n\n"
+ "http://www.oracle.com/us/products/applications/open-office.";
};
};
diff --git a/extensions/source/propctrlr/makefile.mk b/extensions/source/propctrlr/makefile.mk
index 27255c9e5f46..c69f47bcef1a 100644
--- a/extensions/source/propctrlr/makefile.mk
+++ b/extensions/source/propctrlr/makefile.mk
@@ -113,7 +113,7 @@ RESLIB1IMAGES=$(PRJ)$/res
RESLIB1SRSFILES= $(SRS)$/$(TARGET).srs
SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS= \
$(EDITENGLIB) \
diff --git a/extensions/source/propctrlr/pcr.map b/extensions/source/propctrlr/pcr.map
deleted file mode 100644
index 6794fcdf213e..000000000000
--- a/extensions/source/propctrlr/pcr.map
+++ /dev/null
@@ -1,8 +0,0 @@
-EXTPCR_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/extensions/source/resource/exports.map b/extensions/source/resource/exports.map
deleted file mode 100644
index 7c56baa9bd73..000000000000
--- a/extensions/source/resource/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/extensions/source/resource/makefile.mk b/extensions/source/resource/makefile.mk
index 2502d8467f22..a89d690b7393 100644
--- a/extensions/source/resource/makefile.mk
+++ b/extensions/source/resource/makefile.mk
@@ -63,7 +63,7 @@ SHL1DEF= $(MISC)$/$(SHL1TARGET).def
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
SHL1IMPLIB=i$(TARGET)
SHL1LIBS=$(SLB)$/$(TARGET).lib
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME= $(SHL1TARGET)
DEF1EXPORTFILE= exports.dxp
diff --git a/extensions/source/scanner/exports.map b/extensions/source/scanner/exports.map
deleted file mode 100644
index 7c56baa9bd73..000000000000
--- a/extensions/source/scanner/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/extensions/source/scanner/makefile.mk b/extensions/source/scanner/makefile.mk
index 347b1e1cfc26..ff42864e0496 100644
--- a/extensions/source/scanner/makefile.mk
+++ b/extensions/source/scanner/makefile.mk
@@ -88,7 +88,7 @@ SHL1STDLIBS+=$(SVTOOLLIB) -ldl
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
SHL1IMPLIB=i$(TARGET)
SHL1LIBS=$(SLB)$/$(TARGET).lib
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
DEF1EXPORTFILE=exports.dxp
diff --git a/extensions/source/svg/exports.map b/extensions/source/svg/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/extensions/source/svg/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/extensions/source/svg/makefile.mk b/extensions/source/svg/makefile.mk
index 543fbca73982..c46aede54920 100644
--- a/extensions/source/svg/makefile.mk
+++ b/extensions/source/svg/makefile.mk
@@ -47,7 +47,7 @@ SLOFILES= $(SLO)$/svgprinter.obj \
SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
SHL1IMPLIB=i$(SHL1TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/extensions/source/update/check/makefile.mk b/extensions/source/update/check/makefile.mk
index b87eb0377803..9f5f544102dd 100644
--- a/extensions/source/update/check/makefile.mk
+++ b/extensions/source/update/check/makefile.mk
@@ -82,7 +82,7 @@ SHL1STDLIBS= \
$(SHELL32LIB) \
$(OLE32LIB)
-SHL1VERSIONMAP=..$/exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/extensions/source/update/check/updatecheckjob.cxx b/extensions/source/update/check/updatecheckjob.cxx
index 3be38dd9888a..2444637515d4 100644
--- a/extensions/source/update/check/updatecheckjob.cxx
+++ b/extensions/source/update/check/updatecheckjob.cxx
@@ -28,6 +28,8 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_extensions.hxx"
+#include <memory>
+
#include "updatecheck.hxx"
#include "updatecheckconfig.hxx"
#include "updatehdl.hxx"
@@ -55,16 +57,12 @@ class InitUpdateCheckJobThread : public osl::Thread
{
public:
InitUpdateCheckJobThread( const uno::Reference< uno::XComponentContext > &xContext,
- const uno::Sequence< beans::NamedValue > &xParameters );
+ const uno::Sequence< beans::NamedValue > &xParameters,
+ bool bShowDialog );
virtual void SAL_CALL run();
- virtual void SAL_CALL onTerminated();
-
- void showDialog();
- void setTerminating() { m_bTerminating = true; }
-protected:
- ~InitUpdateCheckJobThread();
+ void setTerminating();
private:
osl::Condition m_aCondition;
@@ -115,7 +113,7 @@ public:
private:
uno::Reference<uno::XComponentContext> m_xContext;
uno::Reference< frame::XDesktop > m_xDesktop;
- InitUpdateCheckJobThread *m_pInitThread;
+ std::auto_ptr< InitUpdateCheckJobThread > m_pInitThread;
void handleExtensionUpdates( const uno::Sequence< beans::NamedValue > &rListProp );
};
@@ -125,29 +123,25 @@ private:
//------------------------------------------------------------------------------
InitUpdateCheckJobThread::InitUpdateCheckJobThread(
const uno::Reference< uno::XComponentContext > &xContext,
- const uno::Sequence< beans::NamedValue > &xParameters ) :
+ const uno::Sequence< beans::NamedValue > &xParameters,
+ bool bShowDialog ) :
m_xContext( xContext ),
m_xParameters( xParameters ),
- m_bShowDialog( false ),
+ m_bShowDialog( bShowDialog ),
m_bTerminating( false )
{
create();
}
//------------------------------------------------------------------------------
-InitUpdateCheckJobThread::~InitUpdateCheckJobThread()
-{
-}
-
-//------------------------------------------------------------------------------
void SAL_CALL InitUpdateCheckJobThread::run()
{
- TimeValue tv = { 25, 0 };
-
- m_aCondition.wait( &tv );
-
- if ( m_bTerminating )
- return;
+ if (!m_bShowDialog) {
+ TimeValue tv = { 25, 0 };
+ m_aCondition.wait( &tv );
+ if ( m_bTerminating )
+ return;
+ }
rtl::Reference< UpdateCheck > aController( UpdateCheck::get() );
aController->initialize( m_xParameters, m_xContext );
@@ -156,16 +150,8 @@ void SAL_CALL InitUpdateCheckJobThread::run()
aController->showDialog( true );
}
-//------------------------------------------------------------------------------
-void SAL_CALL InitUpdateCheckJobThread::onTerminated()
-{
- delete this;
-}
-
-//------------------------------------------------------------------------------
-void InitUpdateCheckJobThread::showDialog()
-{
- m_bShowDialog = true;
+void InitUpdateCheckJobThread::setTerminating() {
+ m_bTerminating = true;
m_aCondition.set();
}
@@ -174,8 +160,7 @@ void InitUpdateCheckJobThread::showDialog()
//------------------------------------------------------------------------------
UpdateCheckJob::UpdateCheckJob( const uno::Reference<uno::XComponentContext>& xContext ) :
- m_xContext(xContext),
- m_pInitThread( NULL )
+ m_xContext(xContext)
{
m_xDesktop.set( xContext->getServiceManager()->createInstanceWithContext( UNISTRING("com.sun.star.frame.Desktop"), xContext ), uno::UNO_QUERY );
if ( m_xDesktop.is() )
@@ -234,7 +219,6 @@ UpdateCheckJob::execute(const uno::Sequence<beans::NamedValue>& namedValues)
uno::Sequence<beans::NamedValue> aConfig =
getValue< uno::Sequence<beans::NamedValue> > (namedValues, "JobConfig");
- m_pInitThread = new InitUpdateCheckJobThread( m_xContext, aConfig );
/* Determine the way we got invoked here -
* see Developers Guide Chapter "4.7.2 Jobs" to understand the magic
@@ -245,10 +229,10 @@ UpdateCheckJob::execute(const uno::Sequence<beans::NamedValue>& namedValues)
rtl::OUString aEventName = getValue< rtl::OUString > (aEnvironment, "EventName");
- if( ! aEventName.equalsAscii("onFirstVisibleTask") )
- {
- m_pInitThread->showDialog();
- }
+ m_pInitThread.reset(
+ new InitUpdateCheckJobThread(
+ m_xContext, aConfig,
+ !aEventName.equalsAscii("onFirstVisibleTask")));
return uno::Any();
}
@@ -346,7 +330,7 @@ void SAL_CALL UpdateCheckJob::queryTermination( lang::EventObject const & )
void SAL_CALL UpdateCheckJob::notifyTermination( lang::EventObject const & rEvt )
throw ( uno::RuntimeException )
{
- if ( m_pInitThread )
+ if ( m_pInitThread.get() != 0 )
m_pInitThread->setTerminating();
disposing( rEvt );
diff --git a/extensions/source/update/exports.map b/extensions/source/update/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/extensions/source/update/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/extensions/source/update/feed/makefile.mk b/extensions/source/update/feed/makefile.mk
index c7d15a2beb74..7e12970ddef1 100644
--- a/extensions/source/update/feed/makefile.mk
+++ b/extensions/source/update/feed/makefile.mk
@@ -54,7 +54,7 @@ SHL1STDLIBS= \
$(CPPULIB) \
$(SALLIB)
-SHL1VERSIONMAP=..$/exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/extensions/source/update/ui/makefile.mk b/extensions/source/update/ui/makefile.mk
index 1cf95a52108d..c4826efba9ca 100644
--- a/extensions/source/update/ui/makefile.mk
+++ b/extensions/source/update/ui/makefile.mk
@@ -64,7 +64,7 @@ SHL1STDLIBS= \
$(VCLLIB) \
$(TOOLSLIB)
-SHL1VERSIONMAP=..$/exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/extensions/source/xmlextract/exports.map b/extensions/source/xmlextract/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/extensions/source/xmlextract/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/extensions/source/xmlextract/makefile.mk b/extensions/source/xmlextract/makefile.mk
index 8a24ac5313c1..0a021027f4b4 100644
--- a/extensions/source/xmlextract/makefile.mk
+++ b/extensions/source/xmlextract/makefile.mk
@@ -46,7 +46,7 @@ SLOFILES= $(SLO)$/xmxuno.obj \
SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
SHL1IMPLIB= i$(SHL1TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/external/glibc/makefile.mk b/external/glibc/makefile.mk
index 067a4844df90..cf4516515a67 100644
--- a/external/glibc/makefile.mk
+++ b/external/glibc/makefile.mk
@@ -37,6 +37,7 @@ TARGET=getopt
# --- Files --------------------------------------------------------
TARFILE_NAME=glibc-2.1.3-stub
+TARFILE_MD5=4a660ce8466c9df01f19036435425c3a
TARFILE_ROOTDIR=glibc-2.1.3
ADDITIONAL_FILES=posix$/makefile.mk posix$/config.h posix$/readdir_r.c
diff --git a/extras/prj/build.lst b/extras/prj/build.lst
index 59c2a6cdad6e..72aadb048832 100644
--- a/extras/prj/build.lst
+++ b/extras/prj/build.lst
@@ -1,5 +1,4 @@
er extras : solenv NULL
-er extras usr30073 - none NULL
er extras usr1 - all er_mkout NULL
er extras\source\autotext nmake - all er_atxt NULL
er extras\source\autotext\lang nmake - all er_atxtl NULL
diff --git a/extras/source/templates/wizard/styles/lang/bg/sunstyle.ots b/extras/source/templates/wizard/styles/lang/bg/sunstyle.ots
deleted file mode 100644
index 0d294f92704e..000000000000
--- a/extras/source/templates/wizard/styles/lang/bg/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/cs/sunstyle.ots b/extras/source/templates/wizard/styles/lang/cs/sunstyle.ots
deleted file mode 100644
index feca2da3491c..000000000000
--- a/extras/source/templates/wizard/styles/lang/cs/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/da/sunstyle.ots b/extras/source/templates/wizard/styles/lang/da/sunstyle.ots
deleted file mode 100644
index a2599b837b79..000000000000
--- a/extras/source/templates/wizard/styles/lang/da/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/de/sunstyle.ots b/extras/source/templates/wizard/styles/lang/de/sunstyle.ots
deleted file mode 100644
index c3ca9cfba9d2..000000000000
--- a/extras/source/templates/wizard/styles/lang/de/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/delzip b/extras/source/templates/wizard/styles/lang/delzip
index 54bcf3046529..e69de29bb2d1 100644
--- a/extras/source/templates/wizard/styles/lang/delzip
+++ b/extras/source/templates/wizard/styles/lang/delzip
@@ -1 +0,0 @@
-~
diff --git a/extras/source/templates/wizard/styles/lang/en-GB/sunstyle.ots b/extras/source/templates/wizard/styles/lang/en-GB/sunstyle.ots
deleted file mode 100644
index dd080ca1b052..000000000000
--- a/extras/source/templates/wizard/styles/lang/en-GB/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/en-US/sunstyle.ots b/extras/source/templates/wizard/styles/lang/en-US/sunstyle.ots
deleted file mode 100644
index 7e570a57598e..000000000000
--- a/extras/source/templates/wizard/styles/lang/en-US/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/es/sunstyle.ots b/extras/source/templates/wizard/styles/lang/es/sunstyle.ots
deleted file mode 100644
index 317365254c8c..000000000000
--- a/extras/source/templates/wizard/styles/lang/es/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/eu/sunstyle.ots b/extras/source/templates/wizard/styles/lang/eu/sunstyle.ots
deleted file mode 100755
index 14fa85794ce4..000000000000
--- a/extras/source/templates/wizard/styles/lang/eu/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/fr/sunstyle.ots b/extras/source/templates/wizard/styles/lang/fr/sunstyle.ots
deleted file mode 100644
index 52f89b37e279..000000000000
--- a/extras/source/templates/wizard/styles/lang/fr/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/hu/sunstyle.ots b/extras/source/templates/wizard/styles/lang/hu/sunstyle.ots
deleted file mode 100644
index e7eba91ca8eb..000000000000
--- a/extras/source/templates/wizard/styles/lang/hu/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/it/sunstyle.ots b/extras/source/templates/wizard/styles/lang/it/sunstyle.ots
deleted file mode 100644
index 64ff6ad7e317..000000000000
--- a/extras/source/templates/wizard/styles/lang/it/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/ja/sunstyle.ots b/extras/source/templates/wizard/styles/lang/ja/sunstyle.ots
deleted file mode 100644
index 978f62397425..000000000000
--- a/extras/source/templates/wizard/styles/lang/ja/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/km/sunstyle.ots b/extras/source/templates/wizard/styles/lang/km/sunstyle.ots
deleted file mode 100644
index e7f07d4147c0..000000000000
--- a/extras/source/templates/wizard/styles/lang/km/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/ko/sunstyle.ots b/extras/source/templates/wizard/styles/lang/ko/sunstyle.ots
deleted file mode 100644
index 581228bc402e..000000000000
--- a/extras/source/templates/wizard/styles/lang/ko/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/nl/sunstyle.ots b/extras/source/templates/wizard/styles/lang/nl/sunstyle.ots
deleted file mode 100644
index 0fd540313d09..000000000000
--- a/extras/source/templates/wizard/styles/lang/nl/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/pl/sunstyle.ots b/extras/source/templates/wizard/styles/lang/pl/sunstyle.ots
deleted file mode 100644
index 4c2ac5793a15..000000000000
--- a/extras/source/templates/wizard/styles/lang/pl/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/pt-BR/sunstyle.ots b/extras/source/templates/wizard/styles/lang/pt-BR/sunstyle.ots
deleted file mode 100644
index ec10cca19653..000000000000
--- a/extras/source/templates/wizard/styles/lang/pt-BR/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/pt/sunstyle.ots b/extras/source/templates/wizard/styles/lang/pt/sunstyle.ots
deleted file mode 100644
index e24a5d14655e..000000000000
--- a/extras/source/templates/wizard/styles/lang/pt/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/ru/sunstyle.ots b/extras/source/templates/wizard/styles/lang/ru/sunstyle.ots
deleted file mode 100644
index 388e20768651..000000000000
--- a/extras/source/templates/wizard/styles/lang/ru/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/sk/sunstyle.ots b/extras/source/templates/wizard/styles/lang/sk/sunstyle.ots
deleted file mode 100644
index 84356bb9a6b8..000000000000
--- a/extras/source/templates/wizard/styles/lang/sk/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/sl/sunstyle.ots b/extras/source/templates/wizard/styles/lang/sl/sunstyle.ots
deleted file mode 100644
index 2cf8e69a8dd5..000000000000
--- a/extras/source/templates/wizard/styles/lang/sl/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/sv/sunstyle.ots b/extras/source/templates/wizard/styles/lang/sv/sunstyle.ots
deleted file mode 100644
index 9cbefcf73e98..000000000000
--- a/extras/source/templates/wizard/styles/lang/sv/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/vi/sunstyle.ots b/extras/source/templates/wizard/styles/lang/vi/sunstyle.ots
deleted file mode 100755
index 61607d5b239c..000000000000
--- a/extras/source/templates/wizard/styles/lang/vi/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/zh-CN/sunstyle.ots b/extras/source/templates/wizard/styles/lang/zh-CN/sunstyle.ots
deleted file mode 100644
index 4335b89340eb..000000000000
--- a/extras/source/templates/wizard/styles/lang/zh-CN/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/extras/source/templates/wizard/styles/lang/zh-TW/sunstyle.ots b/extras/source/templates/wizard/styles/lang/zh-TW/sunstyle.ots
deleted file mode 100644
index e95984e8c7be..000000000000
--- a/extras/source/templates/wizard/styles/lang/zh-TW/sunstyle.ots
+++ /dev/null
Binary files differ
diff --git a/fetch_tarballs.sh b/fetch_tarballs.sh
new file mode 100755
index 000000000000..87c2c80e4be3
--- /dev/null
+++ b/fetch_tarballs.sh
@@ -0,0 +1,143 @@
+#!/bin/sh
+#*************************************************************************
+#
+# DO NOT 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.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.
+#
+#*************************************************************************
+
+if [ -z "$TARFILE_LOCATION" ]; then
+ echo "ERROR: no destination defined! please set TARFILE_LOCATION!"
+ exit
+fi
+
+if [ ! -d "$TARFILE_LOCATION" ]; then
+ mkdir $TARFILE_LOCATION
+fi
+if [ ! -d "$TARFILE_LOCATION" ]; then
+ echo "ERROR: can't create"
+ exit
+fi
+
+if [ -z "$1" ]; then
+ echo "ERROR: parameter missing!"
+ echo "usage: $0 <fetch list>"
+ echo "first line must define the base url."
+ exit
+fi
+
+# check for wget and md5sum
+wget=
+md5sum=
+curl=
+
+for i in wget /usr/bin/wget /usr/local/bin/wget /usr/sfw/bin/wget /opt/sfw/bin/wget /opt/local/bin/wget; do
+ eval "$i --version" > /dev/null 2>&1
+ ret=$?
+ if [ $ret -eq 0 ]; then
+ wget=$i
+ echo found wget: $wget
+ break 2
+ fi
+done
+
+for i in curl /usr/bin/curl /usr/local/bin/curl /usr/sfw/bin/curl /opt/sfw/bin/curl /opt/local/bin/curl; do
+# mac curl returns "2" on --version
+# eval "$i --version" > /dev/null 2>&1
+# ret=$?
+# if [ $ret -eq 0 ]; then
+ if [ -x $i ]; then
+ curl=$i
+ echo found curl: $curl
+ break 2
+ fi
+done
+
+if [ -z "$wget" -a -z "$curl" ]; then
+ echo "ERROR: neither wget nor curl found!"
+ exit
+fi
+
+for i in md5sum /usr/local/bin/md5sum gmd5sum /usr/sfw/bin/md5sum /opt/sfw/bin/gmd5sum /opt/local/bin/md5sum; do
+ eval "$i --version" > /dev/null 2>&1
+ ret=$?
+ if [ $ret -eq 0 ]; then
+ md5sum=$i
+ echo found md5sum: $md5sum
+ break 2
+ fi
+done
+
+if [ -z "$md5sum" ]; then
+ echo "Warning: no md5sum: found!"
+fi
+
+start_dir=`pwd`
+filelist=`cat $1`
+cd $TARFILE_LOCATION
+for i in $filelist ; do
+# echo $i
+ if [ "$i" != `echo $i | sed "s/^http:\///"` ]; then
+ tarurl=$i
+ # TODO: check for comment
+ else
+ if [ "$tarurl" != "" ]; then
+ if [ ! -f "$i" ]; then
+ if [ ! -z "$wget" ]; then
+ $wget -nv -N $tarurl/$i
+ else
+ echo fetching $i
+ $curl $file_date_check -O $tarurl/$i
+ fi
+ wret=$?
+ if [ $wret -ne 0 ]; then
+ failed="$failed $i"
+ wret=0
+ fi
+ if [ -f $i -a -n "$md5sum" ]; then
+ sum=`$md5sum $i | sed "s/ [ *].*//"`
+ sum2=`echo $i | sed "s/-.*//"`
+ if [ "$sum" != "$sum2" ]; then
+ echo checksum failure for $i
+ failed="$failed $i"
+ fi
+ fi
+ fi
+ fi
+ fi
+done
+cd $start_dir
+
+if [ ! -z "$failed" ]; then
+ echo
+ echo ERROR: failed on:
+ for i in $failed ; do
+ echo $i
+ done
+ exit 1
+fi
+
diff --git a/fileaccess/source/exports.map b/fileaccess/source/exports.map
deleted file mode 100644
index 2dd01358d43f..000000000000
--- a/fileaccess/source/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-OOO_1.1 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/fileaccess/source/makefile.mk b/fileaccess/source/makefile.mk
index 7bd6266f7df0..2b7826534618 100644
--- a/fileaccess/source/makefile.mk
+++ b/fileaccess/source/makefile.mk
@@ -46,7 +46,7 @@ SLOFILES= \
SHL1TARGET= $(TARGET)
SHL1IMPLIB= i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/filter/qa/complex/filter/detection/typeDetection/makefile.mk b/filter/qa/complex/filter/detection/typeDetection/makefile.mk
index bbc25efa3c29..942c40372de4 100644
--- a/filter/qa/complex/filter/detection/typeDetection/makefile.mk
+++ b/filter/qa/complex/filter/detection/typeDetection/makefile.mk
@@ -81,10 +81,6 @@ CT_APP = org.openoffice.Runner
$(CLASSDIR)$/$(PACKAGE)$/files.csv : ALLDEP
.ENDIF
-
-TST:
- @echo "$(USE_SHELL)"
-
.INCLUDE : target.mk
$(CLASSDIR)$/$(PACKAGE)$/preselectedFilter.csv : preselectedFilter.csv
@@ -109,16 +105,9 @@ $(CLASSDIR)$/$(PACKAGE)$/TypeDetection.props : TypeDetection.props
# --- chmod --------------------------------------------------------
-.IF "$(USE_SHELL)" != "4nt"
CHMOD :
chmod 444 $(CLASSDIR)$/$(PACKAGE)$/*.csv
chmod 666 $(CLASSDIR)$/$(PACKAGE)$/*.props
-.ELSE
-CHMOD :
- echo erstmanix
-.ENDIF
-
-
RUN: run
diff --git a/filter/source/config/cache/exports.map b/filter/source/config/cache/exports.map
deleted file mode 100644
index 85610ad80888..000000000000
--- a/filter/source/config/cache/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/filter/source/config/cache/makefile.mk b/filter/source/config/cache/makefile.mk
index 62eb4353fcf3..fbc4806b0a32 100644
--- a/filter/source/config/cache/makefile.mk
+++ b/filter/source/config/cache/makefile.mk
@@ -72,7 +72,7 @@ DEF1NAME= $(SHL1TARGET)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
SHL1DEPN=
SHL1IMPLIB= i$(SHL1TARGET)
-SHL1VERSIONMAP= exports.map
+SHL1VERSIONMAP= $(SOLARENV)/src/component.map
# --- Targets ----------------------------------
diff --git a/filter/source/config/fragments/filters/writerglobal8_writer.xcu b/filter/source/config/fragments/filters/writerglobal8_writer.xcu
index cd19313777df..f61bbeeea958 100644
--- a/filter/source/config/fragments/filters/writerglobal8_writer.xcu
+++ b/filter/source/config/fragments/filters/writerglobal8_writer.xcu
@@ -1,5 +1,5 @@
<node oor:name="writerglobal8_writer" oor:op="replace">
- <prop oor:name="Flags"><value>EXPORT TEMPLATE</value></prop>
+ <prop oor:name="Flags"><value>EXPORT TEMPLATE DEFAULT</value></prop>
<prop oor:name="UIComponent"/>
<prop oor:name="FilterService"/>
<prop oor:name="UserData"><value>CXML</value></prop>
diff --git a/filter/source/config/fragments/makefile.mk b/filter/source/config/fragments/makefile.mk
index 71bd6ca2b6e6..d827b3496359 100644
--- a/filter/source/config/fragments/makefile.mk
+++ b/filter/source/config/fragments/makefile.mk
@@ -187,7 +187,7 @@ MERGE:=python ../tools/merge/pyAltFCFGMerge
MERGE:=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/python ../tools/merge/pyAltFCFGMerge
.ENDIF
.ELSE
-MERGE := $(JAVAI) -jar $(SOLARBINDIR)$/FCFGMerge.jar
+MERGE := $(JAVAI) $(JAVAIFLAGS) -jar $(SOLARBINDIR)$/FCFGMerge.jar
.ENDIF
PACKLANG := $(XSLTPROC) --nonet
diff --git a/filter/source/flash/exports.map b/filter/source/flash/exports.map
deleted file mode 100644
index ebfdcf95c118..000000000000
--- a/filter/source/flash/exports.map
+++ /dev/null
@@ -1,9 +0,0 @@
-FLASH_1_0 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/filter/source/flash/makefile.mk b/filter/source/flash/makefile.mk
index 171f7901cbaa..e5ff1bf21c5e 100644
--- a/filter/source/flash/makefile.mk
+++ b/filter/source/flash/makefile.mk
@@ -86,7 +86,7 @@ SHL1STDLIBS+=\
SHL1DEPN=
SHL1IMPLIB= i$(SHL1TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1LIBS= $(SLB)$/$(TARGET).lib
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
diff --git a/filter/source/graphicfilter/egif/exports.map b/filter/source/graphicfilter/egif/exports.map
index 10820132c0ce..61e4682c6551 100644
--- a/filter/source/graphicfilter/egif/exports.map
+++ b/filter/source/graphicfilter/egif/exports.map
@@ -1,4 +1,4 @@
-GIFEXPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicExport;
DoExportDialog;
diff --git a/filter/source/graphicfilter/eos2met/exports.map b/filter/source/graphicfilter/eos2met/exports.map
index ce76d3850094..61e4682c6551 100644
--- a/filter/source/graphicfilter/eos2met/exports.map
+++ b/filter/source/graphicfilter/eos2met/exports.map
@@ -1,4 +1,4 @@
-METEXPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicExport;
DoExportDialog;
diff --git a/filter/source/graphicfilter/epbm/exports.map b/filter/source/graphicfilter/epbm/exports.map
index 2d09b0bdb752..61e4682c6551 100644
--- a/filter/source/graphicfilter/epbm/exports.map
+++ b/filter/source/graphicfilter/epbm/exports.map
@@ -1,4 +1,4 @@
-PBMEXPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicExport;
DoExportDialog;
diff --git a/filter/source/graphicfilter/epgm/exports.map b/filter/source/graphicfilter/epgm/exports.map
index 3967c4684f05..61e4682c6551 100644
--- a/filter/source/graphicfilter/epgm/exports.map
+++ b/filter/source/graphicfilter/epgm/exports.map
@@ -1,4 +1,4 @@
-PGMEXPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicExport;
DoExportDialog;
diff --git a/filter/source/graphicfilter/epict/exports.map b/filter/source/graphicfilter/epict/exports.map
index 2f21c5c04b53..61e4682c6551 100644
--- a/filter/source/graphicfilter/epict/exports.map
+++ b/filter/source/graphicfilter/epict/exports.map
@@ -1,4 +1,4 @@
-PICTEXPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicExport;
DoExportDialog;
diff --git a/filter/source/graphicfilter/eppm/exports.map b/filter/source/graphicfilter/eppm/exports.map
index 0462b75b7b43..61e4682c6551 100644
--- a/filter/source/graphicfilter/eppm/exports.map
+++ b/filter/source/graphicfilter/eppm/exports.map
@@ -1,4 +1,4 @@
-PPMEXPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicExport;
DoExportDialog;
diff --git a/filter/source/graphicfilter/eps/exports.map b/filter/source/graphicfilter/eps/exports.map
index 1b61354c2869..61e4682c6551 100644
--- a/filter/source/graphicfilter/eps/exports.map
+++ b/filter/source/graphicfilter/eps/exports.map
@@ -1,4 +1,4 @@
-EPSEXPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicExport;
DoExportDialog;
diff --git a/filter/source/graphicfilter/eras/exports.map b/filter/source/graphicfilter/eras/exports.map
index 4a78a96ee951..d4e28c44700c 100644
--- a/filter/source/graphicfilter/eras/exports.map
+++ b/filter/source/graphicfilter/eras/exports.map
@@ -1,4 +1,4 @@
-RASEXPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicExport;
diff --git a/filter/source/graphicfilter/etiff/exports.map b/filter/source/graphicfilter/etiff/exports.map
index 094e72c0f5fb..d4e28c44700c 100644
--- a/filter/source/graphicfilter/etiff/exports.map
+++ b/filter/source/graphicfilter/etiff/exports.map
@@ -1,4 +1,4 @@
-TIFEXPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicExport;
diff --git a/filter/source/graphicfilter/expm/exports.map b/filter/source/graphicfilter/expm/exports.map
index f1f42312c802..d4e28c44700c 100644
--- a/filter/source/graphicfilter/expm/exports.map
+++ b/filter/source/graphicfilter/expm/exports.map
@@ -1,4 +1,4 @@
-XPMEXPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicExport;
diff --git a/filter/source/graphicfilter/icgm/exports.map b/filter/source/graphicfilter/icgm/exports.map
index eaa1db885d5e..cc7f07dd1112 100644
--- a/filter/source/graphicfilter/icgm/exports.map
+++ b/filter/source/graphicfilter/icgm/exports.map
@@ -1,4 +1,4 @@
-CGMIMPORTER_1_0 {
+UDK_3_0_0 {
global:
ImportCGM;
diff --git a/filter/source/graphicfilter/idxf/exports.map b/filter/source/graphicfilter/idxf/exports.map
index d107435568e5..941e4ab9bde8 100644
--- a/filter/source/graphicfilter/idxf/exports.map
+++ b/filter/source/graphicfilter/idxf/exports.map
@@ -1,4 +1,4 @@
-DXFIMPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicImport;
diff --git a/filter/source/graphicfilter/ieps/exports.map b/filter/source/graphicfilter/ieps/exports.map
index 59406d7255ef..941e4ab9bde8 100644
--- a/filter/source/graphicfilter/ieps/exports.map
+++ b/filter/source/graphicfilter/ieps/exports.map
@@ -1,4 +1,4 @@
-EPSIMPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicImport;
diff --git a/filter/source/graphicfilter/ios2met/exports.map b/filter/source/graphicfilter/ios2met/exports.map
index 440afa9245d8..941e4ab9bde8 100644
--- a/filter/source/graphicfilter/ios2met/exports.map
+++ b/filter/source/graphicfilter/ios2met/exports.map
@@ -1,4 +1,4 @@
-METIMPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicImport;
diff --git a/filter/source/graphicfilter/ipbm/exports.map b/filter/source/graphicfilter/ipbm/exports.map
index 0e2a1bcdec9d..941e4ab9bde8 100644
--- a/filter/source/graphicfilter/ipbm/exports.map
+++ b/filter/source/graphicfilter/ipbm/exports.map
@@ -1,4 +1,4 @@
-PBMIMPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicImport;
diff --git a/filter/source/graphicfilter/ipcd/exports.map b/filter/source/graphicfilter/ipcd/exports.map
index a0719af28be2..941e4ab9bde8 100644
--- a/filter/source/graphicfilter/ipcd/exports.map
+++ b/filter/source/graphicfilter/ipcd/exports.map
@@ -1,4 +1,4 @@
-PCDIMPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicImport;
diff --git a/filter/source/graphicfilter/ipcx/exports.map b/filter/source/graphicfilter/ipcx/exports.map
index d44f79111a96..941e4ab9bde8 100644
--- a/filter/source/graphicfilter/ipcx/exports.map
+++ b/filter/source/graphicfilter/ipcx/exports.map
@@ -1,4 +1,4 @@
-PCXIMPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicImport;
diff --git a/filter/source/graphicfilter/ipict/exports.map b/filter/source/graphicfilter/ipict/exports.map
index 2576cecdca91..941e4ab9bde8 100644
--- a/filter/source/graphicfilter/ipict/exports.map
+++ b/filter/source/graphicfilter/ipict/exports.map
@@ -1,4 +1,4 @@
-PICTIMPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicImport;
diff --git a/filter/source/graphicfilter/ipsd/exports.map b/filter/source/graphicfilter/ipsd/exports.map
index b2cda91bec78..941e4ab9bde8 100644
--- a/filter/source/graphicfilter/ipsd/exports.map
+++ b/filter/source/graphicfilter/ipsd/exports.map
@@ -1,4 +1,4 @@
-PSDIMPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicImport;
diff --git a/filter/source/graphicfilter/iras/exports.map b/filter/source/graphicfilter/iras/exports.map
index ebd8464837fa..941e4ab9bde8 100644
--- a/filter/source/graphicfilter/iras/exports.map
+++ b/filter/source/graphicfilter/iras/exports.map
@@ -1,4 +1,4 @@
-RASIMPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicImport;
diff --git a/filter/source/graphicfilter/itga/exports.map b/filter/source/graphicfilter/itga/exports.map
index cb127f330e5d..941e4ab9bde8 100644
--- a/filter/source/graphicfilter/itga/exports.map
+++ b/filter/source/graphicfilter/itga/exports.map
@@ -1,4 +1,4 @@
-TGAIMPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicImport;
diff --git a/filter/source/graphicfilter/itiff/exports.map b/filter/source/graphicfilter/itiff/exports.map
index 983df223406e..941e4ab9bde8 100644
--- a/filter/source/graphicfilter/itiff/exports.map
+++ b/filter/source/graphicfilter/itiff/exports.map
@@ -1,4 +1,4 @@
-TIFIMPORTER_1_0 {
+UDK_3_0_0 {
global:
GraphicImport;
diff --git a/filter/source/msfilter/msocximex.cxx b/filter/source/msfilter/msocximex.cxx
index e434da1fbfb3..82663cdf2523 100644
--- a/filter/source/msfilter/msocximex.cxx
+++ b/filter/source/msfilter/msocximex.cxx
@@ -2323,8 +2323,8 @@ sal_Bool OCX_ToggleButton::Import(com::sun::star::uno::Reference<
if (pValue)
{
INT16 nTmp=pValue[0]-0x30;
- aTmp <<= nTmp;
- rPropSet->setPropertyValue( WW8_ASCII2STR("State"), aTmp);
+ aTmp <<= nTmp == 1;
+ rPropSet->setPropertyValue( WW8_ASCII2STR("DefaultState"), aTmp);
}
if (pCaption)
@@ -2444,9 +2444,9 @@ sal_Bool OCX_ToggleButton::WriteContents(SvStorageStreamRef &rContents,
WriteAlign(rContents,4);
nValueLen = 1|SVX_MSOCX_COMPRESSED;
- aTmp = rPropSet->getPropertyValue(WW8_ASCII2STR("State"));
- sal_Int16 nDefault = sal_Int16();
- aTmp >>= nDefault;
+ bool bDefault = false;
+ rPropSet->getPropertyValue(WW8_ASCII2STR("DefaultState")) >>= bDefault;
+ sal_uInt8 nDefault = static_cast< sal_uInt8 >( bDefault ? '1' : '0' );
*rContents << nValueLen;
pBlockFlags[2] |= 0x40;
@@ -2459,8 +2459,7 @@ sal_Bool OCX_ToggleButton::WriteContents(SvStorageStreamRef &rContents,
*rContents << rSize.Width;
*rContents << rSize.Height;
- nDefault += 0x30;
- *rContents << sal_uInt8(nDefault);
+ *rContents << nDefault;
*rContents << sal_uInt8(0x00);
aCaption.WriteCharArray( *rContents );
diff --git a/filter/source/msfilter/powerpoint/exports.map b/filter/source/msfilter/powerpoint/exports.map
deleted file mode 100644
index a7e1e75c930a..000000000000
--- a/filter/source/msfilter/powerpoint/exports.map
+++ /dev/null
@@ -1,9 +0,0 @@
-PPTIMPORTER_1_0 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-}; \ No newline at end of file
diff --git a/filter/source/msfilter/powerpoint/makefile.mk b/filter/source/msfilter/powerpoint/makefile.mk
index 5857bcb83e36..0ad3d4202f1f 100644
--- a/filter/source/msfilter/powerpoint/makefile.mk
+++ b/filter/source/msfilter/powerpoint/makefile.mk
@@ -54,7 +54,7 @@ SHL1STDLIBS=\
SHL1DEPN=
SHL1IMPLIB= i$(SHL1TARGET)
SHL1LIBS= $(SLB)$/$(TARGET).lib
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/filter/source/pdf/exports.map b/filter/source/pdf/exports.map
deleted file mode 100644
index c673092ae700..000000000000
--- a/filter/source/pdf/exports.map
+++ /dev/null
@@ -1,9 +0,0 @@
-PDFFILTER_1_0 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-}; \ No newline at end of file
diff --git a/filter/source/pdf/makefile.mk b/filter/source/pdf/makefile.mk
index 02ed88337774..edf3147a822c 100644
--- a/filter/source/pdf/makefile.mk
+++ b/filter/source/pdf/makefile.mk
@@ -74,7 +74,7 @@ SHL1DEPN=
SHL1IMPLIB= i$(SHL1TARGET)
SHL1LIBS= $(SLB)$/$(TARGET).lib
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
diff --git a/filter/source/placeware/makefile.mk b/filter/source/placeware/makefile.mk
index 1f26aabe8072..3238193c52ae 100644
--- a/filter/source/placeware/makefile.mk
+++ b/filter/source/placeware/makefile.mk
@@ -53,7 +53,7 @@ SHL1STDLIBS= \
$(CPPULIB) \
$(CPPUHELPERLIB) \
$(SALLIB)
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEPN=
SHL1IMPLIB= i$(TARGET)
diff --git a/filter/source/placeware/placeware.map b/filter/source/placeware/placeware.map
deleted file mode 100644
index ac2c3750bfe0..000000000000
--- a/filter/source/placeware/placeware.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/filter/source/svg/exports.map b/filter/source/svg/exports.map
deleted file mode 100644
index c673092ae700..000000000000
--- a/filter/source/svg/exports.map
+++ /dev/null
@@ -1,9 +0,0 @@
-PDFFILTER_1_0 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-}; \ No newline at end of file
diff --git a/filter/source/svg/makefile.mk b/filter/source/svg/makefile.mk
index 0cac9d29e632..12c1210c18c4 100644
--- a/filter/source/svg/makefile.mk
+++ b/filter/source/svg/makefile.mk
@@ -73,7 +73,7 @@ SHL1STDLIBS+=\
SHL1DEPN=
SHL1IMPLIB= i$(SHL1TARGET)
SHL1LIBS= $(SLB)$/$(TARGET).lib
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/filter/source/t602/makefile.mk b/filter/source/t602/makefile.mk
index c51c055978ae..c65de1bc9b7c 100644
--- a/filter/source/t602/makefile.mk
+++ b/filter/source/t602/makefile.mk
@@ -47,7 +47,7 @@ SHL1TARGETDEPN=makefile.mk
SHL1OBJS=$(SLOFILES)
SHL1TARGET=$(LIBNAME)$(DLLPOSTFIX)
SHL1IMPLIB=i$(LIBNAME)
-SHL1VERSIONMAP=$(LIBNAME).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
#SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/filter/source/t602/t602filter.map b/filter/source/t602/t602filter.map
deleted file mode 100644
index ea06e33d056c..000000000000
--- a/filter/source/t602/t602filter.map
+++ /dev/null
@@ -1,8 +0,0 @@
-T602IMP_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/filter/source/xmlfilteradaptor/makefile.mk b/filter/source/xmlfilteradaptor/makefile.mk
index 74a40a38ca95..b3d39f860388 100644
--- a/filter/source/xmlfilteradaptor/makefile.mk
+++ b/filter/source/xmlfilteradaptor/makefile.mk
@@ -44,7 +44,7 @@ CDEFS+=-DCOMPMOD_NAMESPACE=framework
SHL1TARGET= xmlfa$(DLLPOSTFIX)
SHL1IMPLIB= i$(SHL1TARGET)
-SHL1VERSIONMAP= xmlfa.map
+SHL1VERSIONMAP= $(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
diff --git a/filter/source/xmlfilteradaptor/xmlfa.map b/filter/source/xmlfilteradaptor/xmlfa.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/filter/source/xmlfilteradaptor/xmlfa.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/filter/source/xmlfilterdetect/makefile.mk b/filter/source/xmlfilterdetect/makefile.mk
index a08346c23127..d13c4af5f576 100644
--- a/filter/source/xmlfilterdetect/makefile.mk
+++ b/filter/source/xmlfilterdetect/makefile.mk
@@ -45,7 +45,7 @@ CDEFS+=-DCOMPMOD_NAMESPACE=framework
SHL1TARGET= xmlfd$(DLLPOSTFIX)
SHL1IMPLIB= i$(SHL1TARGET)
-SHL1VERSIONMAP= xmlfd.map
+SHL1VERSIONMAP= $(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
diff --git a/filter/source/xmlfilterdetect/xmlfd.map b/filter/source/xmlfilterdetect/xmlfd.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/filter/source/xmlfilterdetect/xmlfd.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/filter/source/xsltfilter/XSLTransformer.java b/filter/source/xsltfilter/XSLTransformer.java
index 86d13cbc23e5..4806c18b8161 100644
--- a/filter/source/xsltfilter/XSLTransformer.java
+++ b/filter/source/xsltfilter/XSLTransformer.java
@@ -78,6 +78,8 @@ import com.sun.star.uno.UnoRuntime;
import com.sun.star.lib.uno.adapter.XInputStreamToInputStreamAdapter;
import com.sun.star.lib.uno.adapter.XOutputStreamToOutputStreamAdapter;
+import net.sf.saxon.FeatureKeys;
+
/** This outer class provides an inner class to implement the service
* description, a method to instantiate the
* component on demand (__getServiceFactory()), and a method to give
@@ -291,6 +293,9 @@ public class XSLTransformer
// create new transformer for this stylesheet
TransformerFactory tfactory = TransformerFactory.newInstance();
debug("TransformerFactory is '" + tfactory.getClass().getName() + "'");
+ // some external saxons (Debian, Ubuntu, ...) have this disabled
+ // per default
+ tfactory.setAttribute(FeatureKeys.ALLOW_EXTERNAL_FUNCTIONS, new Boolean(true));
transformer = tfactory.newTransformer(new StreamSource(stylesheeturl));
transformer.setOutputProperty("encoding", "UTF-8");
// transformer.setURIResolver(XSLTransformer.this);
diff --git a/filter/source/xsltfilter/exports.map b/filter/source/xsltfilter/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/filter/source/xsltfilter/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/filter/source/xsltfilter/makefile.mk b/filter/source/xsltfilter/makefile.mk
index af9476224c63..1a20572d1698 100644
--- a/filter/source/xsltfilter/makefile.mk
+++ b/filter/source/xsltfilter/makefile.mk
@@ -33,9 +33,6 @@ LIBTARGET=NO
# --- Settings -----------------------------------------------------
CLASSDIR!:=$(CLASSDIR)$/$(TARGET)
-.IF "$(XML_CLASSPATH)" != ""
-XCLASSPATH+=":$(XML_CLASSPATH)"
-.ENDIF
.INCLUDE: settings.mk
SLOFILES=$(SLO)$/XSLTFilter.obj $(SLO)$/fla.obj
@@ -44,7 +41,7 @@ SHL1TARGETDEPN=makefile.mk
SHL1OBJS=$(SLOFILES)
SHL1TARGET=$(LIBNAME)$(DLLPOSTFIX)
SHL1IMPLIB=i$(LIBNAME)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
@@ -68,6 +65,12 @@ JARCOMPRESS = TRUE
JARCLASSDIRS = XSLTransformer*.class XSLTFilterOLEExtracter*.class
JARTARGET = $(TARGET).jar
+.IF "$(SYSTEM_SAXON)" == "YES"
+XCLASSPATH+=$(SAXON_JAR)
+.ELSE
+JARFILES += saxon9.jar
+.ENDIF
+
# --- Files --------------------------------------------------------
JAVACLASSFILES=$(CLASSDIR)$/XSLTransformer.class $(CLASSDIR)$/XSLTFilterOLEExtracter.class
.ENDIF
diff --git a/filter/source/xsltvalidate/makefile.mk b/filter/source/xsltvalidate/makefile.mk
index 45e46cca459b..5337d31a4bd7 100644
--- a/filter/source/xsltvalidate/makefile.mk
+++ b/filter/source/xsltvalidate/makefile.mk
@@ -39,13 +39,13 @@ CLASSDIR!:=$(CLASSDIR)$/$(TARGET)
JARFILES = ridl.jar unoil.jar jurt.jar juh.jar crimson.jar
.IF "$(SYSTEM_XALAN)" == "YES"
-XCLASSPATH!:=$(XCLASSPATH)$(PATH_SEPERATOR)$(XALAN_JAR)
+EXTRAJARFILES += $(XALAN_JAR)
.ELSE
JARFILES += xalan.jar
.ENDIF
.IF "$(SYSTEM_XML_APIS)" == "YES"
-XCLASSPATH!:=$(XCLASSPATH)$(PATH_SEPERATOR)$(XML_APIS_JAR)
+EXTRAJARFILES += $(XML_APIS_JAR)
.ELSE
JARFILES += xml-apis.jar
.ENDIF
diff --git a/forms/prj/build.lst b/forms/prj/build.lst
index ec07ab8e243c..99f6b29d208b 100644
--- a/forms/prj/build.lst
+++ b/forms/prj/build.lst
@@ -15,3 +15,4 @@ fm forms\source\richtext nmake - all fm_richtext fm_inc N
fm forms\source\runtime nmake - all frm_runtime NULL
fm forms\util nmake - all fm_util fm_component fm_solar_component fm_solar_control fm_helper fm_misc fm_resource fm_richtext frm_runtime fm_xforms NULL
fm forms\qa nmake - all fm_qa NULL
+fm forms\qa\unoapi nmake - all fm_qa_unoapi NULL
diff --git a/forms/qa/unoapi/Test.java b/forms/qa/unoapi/Test.java
new file mode 100644
index 000000000000..52130214cc78
--- /dev/null
+++ b/forms/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.forms.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "forms.sce", "-xcl", "knownissues.xcl", "-tdoc",
+ "testdocuments", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/forms/qa/unoapi/makefile.mk b/forms/qa/unoapi/makefile.mk
index 9f033d058ce7..50c83e587db8 100644
--- a/forms/qa/unoapi/makefile.mk
+++ b/forms/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,27 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=forms
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = forms
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/forms/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
-
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce forms.sce -xcl knownissues.xcl -DOCPTH $(PWD)$/testdocuments -THRCNT 1 -tdoc $(PWD)$/testdocuments
- @echo =======================================================================
- @echo Problems with controls might me focus problems during the run of XView
- @echo these seems to appear by chance ... just re-run those testcases with
- @echo $(SOLARENV)$/bin$/checkapi -o componentName -xcl knownissues.xcl -DOCPTH $(PWD)$/testdocuments -THRCNT 1 -tdoc $(PWD)$/testdocuments
- @echo =======================================================================
+ALLTAR : javatest
-run_%:
- +$(SOLARENV)$/bin$/checkapi -o $(PRJNAME).$(@:s/run_//) -xcl knownissues.xcl -DOCPTH $(PWD)$/testdocuments -THRCNT 1 -tdoc $(PWD)$/testdocuments
+.END
diff --git a/forms/source/component/Columns.cxx b/forms/source/component/Columns.cxx
index ae1cbc2b7a5b..a93d121d4b99 100644
--- a/forms/source/component/Columns.cxx
+++ b/forms/source/component/Columns.cxx
@@ -32,6 +32,7 @@
#include "property.hrc"
#endif
#include "property.hxx"
+#include "componenttools.hxx"
#include "ids.hxx"
#include "findpos.hxx"
#include <com/sun/star/io/XPersistObject.hpp>
@@ -169,11 +170,20 @@ Sequence<sal_Int8> SAL_CALL OGridColumn::getImplementationId() throw(RuntimeExce
//------------------------------------------------------------------
Sequence<Type> SAL_CALL OGridColumn::getTypes() throw(RuntimeException)
{
- Reference<XTypeProvider> xProv;
-
- if (query_aggregation(m_xAggregate, xProv))
- return concatSequences(OGridColumn_BASE::getTypes(), xProv->getTypes());
- return OGridColumn_BASE::getTypes();
+ TypeBag aTypes( OGridColumn_BASE::getTypes() );
+ // erase the types which we do not support
+ aTypes.removeType( XFormComponent::static_type() );
+ aTypes.removeType( XServiceInfo::static_type() );
+ aTypes.removeType( XBindableValue::static_type() );
+ aTypes.removeType( XPropertyContainer::static_type() );
+ // but re-add their base class(es)
+ aTypes.addType( XChild::static_type() );
+
+ Reference< XTypeProvider > xProv;
+ if ( query_aggregation( m_xAggregate, xProv ))
+ aTypes.addTypes( xProv->getTypes() );
+
+ return aTypes.getTypes();
}
//------------------------------------------------------------------
diff --git a/forms/source/component/ListBox.cxx b/forms/source/component/ListBox.cxx
index 0aa90d9919cf..88135c040d71 100644
--- a/forms/source/component/ListBox.cxx
+++ b/forms/source/component/ListBox.cxx
@@ -41,7 +41,6 @@
/** === begin UNO includes === **/
#include <com/sun/star/util/XNumberFormatTypes.hpp>
#include <com/sun/star/sdbc/XRowSet.hpp>
-#include <com/sun/star/sdbc/DataType.hpp>
#include <com/sun/star/container/XIndexAccess.hpp>
#include <com/sun/star/sdb/XSQLQueryComposerFactory.hpp>
#include <com/sun/star/sdb/XQueriesSupplier.hpp>
@@ -167,7 +166,7 @@ namespace frm
,OErrorBroadcaster( OComponentHelper::rBHelper )
,m_aListRowSet( getContext() )
,m_nNULLPos(-1)
- ,m_bBoundComponent(sal_False)
+ ,m_nBoundColumnType( DataType::SQLNULL )
{
DBG_CTOR(OListBoxModel,NULL);
@@ -189,7 +188,7 @@ namespace frm
,m_aBoundValues( _pOriginal->m_aBoundValues )
,m_aDefaultSelectSeq( _pOriginal->m_aDefaultSelectSeq )
,m_nNULLPos(-1)
- ,m_bBoundComponent(sal_False)
+ ,m_nBoundColumnType( DataType::SQLNULL )
{
DBG_CTOR(OListBoxModel,NULL);
}
@@ -629,7 +628,7 @@ namespace frm
DBG_ASSERT( !hasExternalListSource(), "OListBoxModel::loadData: cannot load from DB when I have an external list source!" );
m_nNULLPos = -1;
- m_bBoundComponent = sal_False;
+ m_nBoundColumnType = DataType::SQLNULL;
// pre-requisites:
// PRE1: connection
@@ -832,20 +831,19 @@ namespace frm
::dbtools::FormattedColumnValue aValueFormatter( getContext(), m_xCursor, xDataField );
// Feld der BoundColumn des ResultSets holen
- sal_Int32 nBoundColumnType = DataType::SQLNULL;
+ m_nBoundColumnType = DataType::SQLNULL;
if ( ( nBoundColumn > 0 ) && m_xColumn.is() )
{ // don't look for a bound column if we're not connected to a field
try
{
Reference< XPropertySet > xBoundField( xColumns->getByIndex( nBoundColumn ), UNO_QUERY_THROW );
- OSL_VERIFY( xBoundField->getPropertyValue( ::rtl::OUString::createFromAscii( "Type" ) ) >>= nBoundColumnType );
+ OSL_VERIFY( xBoundField->getPropertyValue( ::rtl::OUString::createFromAscii( "Type" ) ) >>= m_nBoundColumnType );
}
catch( const Exception& )
{
DBG_UNHANDLED_EXCEPTION();
}
}
- m_bBoundComponent = ( nBoundColumnType != DataType::SQLNULL );
// Ist die LB an ein Feld gebunden und sind Leereintraege zulaessig
// dann wird die Position fuer einen Leereintrag gemerkt
@@ -860,9 +858,9 @@ namespace frm
aStr = aValueFormatter.getFormattedValue();
aDisplayList.push_back( aStr );
- if ( m_bBoundComponent )
+ if ( impl_hasBoundComponent() )
{
- aBoundValue.fill( nBoundColumn + 1, nBoundColumnType, xCursorRow );
+ aBoundValue.fill( nBoundColumn + 1, m_nBoundColumnType, xCursorRow );
aValueList.push_back( aBoundValue );
}
@@ -907,7 +905,7 @@ namespace frm
// NULL eintrag hinzufuegen
if (bUseNULL && m_nNULLPos == -1)
{
- if ( m_bBoundComponent )
+ if ( impl_hasBoundComponent() )
aValueList.insert( aValueList.begin(), ORowSetValue() );
aDisplayList.insert( aDisplayList.begin(), ORowSetValue( ::rtl::OUString() ) );
@@ -940,7 +938,7 @@ namespace frm
{
ValueList().swap(m_aBoundValues);
m_nNULLPos = -1;
- m_bBoundComponent = sal_False;
+ m_nBoundColumnType = DataType::SQLNULL;
if ( !hasExternalListSource() )
setFastPropertyValue( PROPERTY_ID_STRINGITEMLIST, makeAny( StringSequence() ) );
@@ -1035,7 +1033,7 @@ namespace frm
Sequence< sal_Int16 > aSelectionIndicies;
ORowSetValue aCurrentValue;
- aCurrentValue.fill( getFieldType(), m_xColumn );
+ aCurrentValue.fill( impl_hasBoundComponent() ? m_nBoundColumnType : getFieldType(), m_xColumn );
// reset selection for NULL values
if ( aCurrentValue.isNull() )
diff --git a/forms/source/component/ListBox.hxx b/forms/source/component/ListBox.hxx
index d2af81c1c52c..04db6069d89e 100644
--- a/forms/source/component/ListBox.hxx
+++ b/forms/source/component/ListBox.hxx
@@ -41,6 +41,7 @@
#include <com/sun/star/awt/XFocusListener.hpp>
#include <com/sun/star/awt/XListBox.hpp>
#include <com/sun/star/form/XChangeBroadcaster.hpp>
+#include <com/sun/star/sdbc/DataType.hpp>
/** === end UNO includes === **/
#include <comphelper/asyncnotification.hxx>
@@ -82,7 +83,7 @@ class OListBoxModel :public OBoundControlModel
// </properties>
sal_Int16 m_nNULLPos; // position of the NULL value in our list
- sal_Bool m_bBoundComponent : 1;
+ sal_Int32 m_nBoundColumnType;
private:
::connectivity::ORowSetValue getFirstSelectedValue() const;
@@ -177,6 +178,8 @@ private:
void impl_refreshDbEntryList( bool _bForce );
ValueList impl_getValues() const;
+
+ bool impl_hasBoundComponent() const { return m_nBoundColumnType != ::com::sun::star::sdbc::DataType::SQLNULL; }
};
//==================================================================
diff --git a/forms/source/inc/componenttools.hxx b/forms/source/inc/componenttools.hxx
index 73771f19783a..e91573c43d2f 100644
--- a/forms/source/inc/componenttools.hxx
+++ b/forms/source/inc/componenttools.hxx
@@ -48,7 +48,7 @@ namespace frm
typedef ::com::sun::star::uno::Type Type;
public:
- bool operator()( const Type& _rLHS, const Type& _rRHS )
+ bool operator()( const Type& _rLHS, const Type& _rRHS ) const
{
return _rLHS.getTypeName() < _rRHS.getTypeName();
}
@@ -85,7 +85,9 @@ namespace frm
const TypeSequence& _rTypes3
);
- void addTypes( const TypeSequence& _rTypes );
+ void addType( const Type& i_rType );
+ void addTypes( const TypeSequence& _rTypes );
+ void removeType( const Type& i_rType );
/** returns the types represented by this bag
*/
diff --git a/forms/source/misc/componenttools.cxx b/forms/source/misc/componenttools.cxx
index 80e772dbd0da..bdba7456fa7f 100644
--- a/forms/source/misc/componenttools.cxx
+++ b/forms/source/misc/componenttools.cxx
@@ -84,6 +84,18 @@ namespace frm
}
//--------------------------------------------------------------------
+ void TypeBag::addType( const Type& i_rType )
+ {
+ m_aTypes.insert( i_rType );
+ }
+
+ //--------------------------------------------------------------------
+ void TypeBag::removeType( const TypeBag::Type& i_rType )
+ {
+ m_aTypes.erase( i_rType );
+ }
+
+ //--------------------------------------------------------------------
TypeBag::TypeSequence TypeBag::getTypes() const
{
TypeSequence aTypes( m_aTypes.size() );
diff --git a/forms/util/frm.map b/forms/util/frm.map
deleted file mode 100644
index 7975644b139a..000000000000
--- a/forms/util/frm.map
+++ /dev/null
@@ -1,8 +0,0 @@
-FORMS_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/forms/util/makefile.mk b/forms/util/makefile.mk
index 66de3cb83fb2..00d7a81d5a97 100644
--- a/forms/util/makefile.mk
+++ b/forms/util/makefile.mk
@@ -81,7 +81,7 @@ SHL1DEPN=$(LIB1TARGET) \
makefile.mk
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/formula/inc/formula/errorcodes.hxx b/formula/inc/formula/errorcodes.hxx
index 2d8d9d18b71b..f9b04e012fab 100644
--- a/formula/inc/formula/errorcodes.hxx
+++ b/formula/inc/formula/errorcodes.hxx
@@ -83,9 +83,13 @@ const USHORT NOTAVAILABLE = 0x7fff;
represent an interpreter error code. */
inline double CreateDoubleError( USHORT nErr )
{
- double fVal;
+ union
+ {
+ double fVal;
+ sal_math_Double smVal;
+ };
::rtl::math::setNan( &fVal );
- reinterpret_cast< sal_math_Double * >(&fVal)->nan_parts.fraction_lo = nErr;
+ smVal.nan_parts.fraction_lo = nErr;
return fVal;
}
diff --git a/formula/util/for.map b/formula/util/for.map
deleted file mode 100644
index b34eff63c44f..000000000000
--- a/formula/util/for.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
- local:
- *;
-};
diff --git a/formula/util/forui.map b/formula/util/forui.map
deleted file mode 100644
index b34eff63c44f..000000000000
--- a/formula/util/forui.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
- local:
- *;
-};
diff --git a/formula/util/makefile.mk b/formula/util/makefile.mk
index 3e8f2301b283..7ae30b007d00 100644
--- a/formula/util/makefile.mk
+++ b/formula/util/makefile.mk
@@ -120,7 +120,6 @@ DEFLIB2NAME=$(TARGET2)
.ENDIF
SHL2USE_EXPORTS=name
-# SHL2VERSIONMAP=$(TARGET2).map
# --- .res file ----------------------------------------------------------
diff --git a/fpicker/source/aqua/exports.map b/fpicker/source/aqua/exports.map
deleted file mode 100644
index f4ed78b9e970..000000000000
--- a/fpicker/source/aqua/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/fpicker/source/aqua/makefile.mk b/fpicker/source/aqua/makefile.mk
index f79d2a018952..10990e22d5e1 100644
--- a/fpicker/source/aqua/makefile.mk
+++ b/fpicker/source/aqua/makefile.mk
@@ -74,7 +74,7 @@ SHL1STDLIBS=\
$(CPPULIB) \
$(SALLIB)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/fpicker/source/generic/exports.map b/fpicker/source/generic/exports.map
deleted file mode 100644
index f4ed78b9e970..000000000000
--- a/fpicker/source/generic/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/fpicker/source/generic/makefile.mk b/fpicker/source/generic/makefile.mk
index f5d624f8e4d6..bfbfb65f3da6 100644
--- a/fpicker/source/generic/makefile.mk
+++ b/fpicker/source/generic/makefile.mk
@@ -53,7 +53,7 @@ SHL1STDLIBS=\
$(CPPULIB) \
$(SALLIB)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
diff --git a/fpicker/source/office/exports.map b/fpicker/source/office/exports.map
deleted file mode 100644
index f4ed78b9e970..000000000000
--- a/fpicker/source/office/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/fpicker/source/office/makefile.mk b/fpicker/source/office/makefile.mk
index c687d8cb333e..adc3c30f9a3d 100644
--- a/fpicker/source/office/makefile.mk
+++ b/fpicker/source/office/makefile.mk
@@ -69,7 +69,7 @@ SHL1STDLIBS=\
$(CPPULIB) \
$(SALLIB)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
diff --git a/fpicker/source/unx/gnome/exports.map b/fpicker/source/unx/gnome/exports.map
deleted file mode 100644
index f4ed78b9e970..000000000000
--- a/fpicker/source/unx/gnome/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/fpicker/source/unx/gnome/makefile.mk b/fpicker/source/unx/gnome/makefile.mk
index aa1fbc54b7f5..04c6e650ff6f 100644
--- a/fpicker/source/unx/gnome/makefile.mk
+++ b/fpicker/source/unx/gnome/makefile.mk
@@ -87,7 +87,7 @@ SHL1STDLIBS=\
LINKFLAGSDEFS=
.ENDIF # "$(OS)"=="SOLARIS"
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
.ENDIF # GTK_TWO_FOUR
diff --git a/fpicker/source/win32/filepicker/VistaFilePickerEventHandler.cxx b/fpicker/source/win32/filepicker/VistaFilePickerEventHandler.cxx
index 3f51aa9c765d..c44e4bd65b35 100644
--- a/fpicker/source/win32/filepicker/VistaFilePickerEventHandler.cxx
+++ b/fpicker/source/win32/filepicker/VistaFilePickerEventHandler.cxx
@@ -125,14 +125,14 @@ STDMETHODIMP VistaFilePickerEventHandler::OnFileOk(IFileDialog* /*pDialog*/)
}
//-----------------------------------------------------------------------------------------
-STDMETHODIMP VistaFilePickerEventHandler::OnFolderChanging(IFileDialog* pDialog,
- IShellItem* pFolder)
+STDMETHODIMP VistaFilePickerEventHandler::OnFolderChanging(IFileDialog* /*pDialog*/,
+ IShellItem* /*pFolder*/)
{
return E_NOTIMPL;
}
//-----------------------------------------------------------------------------------------
-STDMETHODIMP VistaFilePickerEventHandler::OnFolderChange(IFileDialog* pDialog)
+STDMETHODIMP VistaFilePickerEventHandler::OnFolderChange(IFileDialog* /*pDialog*/)
{
impl_sendEvent(E_DIRECTORY_CHANGED, 0);
return S_OK;
@@ -250,7 +250,7 @@ void lcl_updateVersionListDirectly(IFileDialog* pDialog)
}
//-----------------------------------------------------------------------------------------
-STDMETHODIMP VistaFilePickerEventHandler::OnSelectionChange(IFileDialog* pDialog)
+STDMETHODIMP VistaFilePickerEventHandler::OnSelectionChange(IFileDialog* /*pDialog*/)
{
impl_sendEvent(E_FILE_SELECTION_CHANGED, 0);
//lcl_updateVersionListDirectly(pDialog);
@@ -258,16 +258,16 @@ STDMETHODIMP VistaFilePickerEventHandler::OnSelectionChange(IFileDialog* pDialog
}
//-----------------------------------------------------------------------------------------
-STDMETHODIMP VistaFilePickerEventHandler::OnShareViolation(IFileDialog* pDialog ,
- IShellItem* pItem ,
- FDE_SHAREVIOLATION_RESPONSE* pResponse)
+STDMETHODIMP VistaFilePickerEventHandler::OnShareViolation(IFileDialog* /*pDialog*/ ,
+ IShellItem* /*pItem*/ ,
+ FDE_SHAREVIOLATION_RESPONSE* /*pResponse*/)
{
impl_sendEvent(E_CONTROL_STATE_CHANGED, css::ui::dialogs::CommonFilePickerElementIds::LISTBOX_FILTER);
return S_OK;
}
//-----------------------------------------------------------------------------------------
-STDMETHODIMP VistaFilePickerEventHandler::OnTypeChange(IFileDialog* pDialog)
+STDMETHODIMP VistaFilePickerEventHandler::OnTypeChange(IFileDialog* /*pDialog*/)
{
/*
IFileDialogCustomize *iCustomize;
@@ -299,32 +299,32 @@ STDMETHODIMP VistaFilePickerEventHandler::OnTypeChange(IFileDialog* pDialog)
}
//-----------------------------------------------------------------------------------------
-STDMETHODIMP VistaFilePickerEventHandler::OnOverwrite(IFileDialog* pDialog ,
- IShellItem* pItem ,
- FDE_OVERWRITE_RESPONSE* pResponse)
+STDMETHODIMP VistaFilePickerEventHandler::OnOverwrite(IFileDialog* /*pDialog*/ ,
+ IShellItem* /*pItem*/ ,
+ FDE_OVERWRITE_RESPONSE* /*pResponse*/)
{
return E_NOTIMPL;
}
//-----------------------------------------------------------------------------------------
-STDMETHODIMP VistaFilePickerEventHandler::OnItemSelected(IFileDialogCustomize* pCustomize,
+STDMETHODIMP VistaFilePickerEventHandler::OnItemSelected(IFileDialogCustomize* /*pCustomize*/,
DWORD nIDCtl ,
- DWORD nIDItem )
+ DWORD /*nIDItem*/ )
{
- impl_sendEvent(E_CONTROL_STATE_CHANGED, nIDCtl);
+ impl_sendEvent(E_CONTROL_STATE_CHANGED, static_cast<sal_Int16>( nIDCtl ));
return S_OK;
}
//-----------------------------------------------------------------------------------------
-STDMETHODIMP VistaFilePickerEventHandler::OnButtonClicked(IFileDialogCustomize* pCustomize,
+STDMETHODIMP VistaFilePickerEventHandler::OnButtonClicked(IFileDialogCustomize* /*pCustomize*/,
DWORD nIDCtl )
{
- impl_sendEvent(E_CONTROL_STATE_CHANGED, nIDCtl);
+ impl_sendEvent(E_CONTROL_STATE_CHANGED, static_cast<sal_Int16>( nIDCtl));
return S_OK;
}
//-----------------------------------------------------------------------------------------
-STDMETHODIMP VistaFilePickerEventHandler::OnCheckButtonToggled(IFileDialogCustomize* pCustomize,
+STDMETHODIMP VistaFilePickerEventHandler::OnCheckButtonToggled(IFileDialogCustomize* /*pCustomize*/,
DWORD nIDCtl ,
BOOL bChecked )
{
@@ -353,15 +353,15 @@ STDMETHODIMP VistaFilePickerEventHandler::OnCheckButtonToggled(IFileDialogCustom
if (nIDCtl == css::ui::dialogs::ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION)
m_pInternalNotify->onAutoExtensionChanged(bChecked);
- impl_sendEvent(E_CONTROL_STATE_CHANGED, nIDCtl);
+ impl_sendEvent(E_CONTROL_STATE_CHANGED, static_cast<sal_Int16>( nIDCtl));
return S_OK;
}
//-----------------------------------------------------------------------------------------
-STDMETHODIMP VistaFilePickerEventHandler::OnControlActivating(IFileDialogCustomize* pCustomize,
+STDMETHODIMP VistaFilePickerEventHandler::OnControlActivating(IFileDialogCustomize* /*pCustomize*/,
DWORD nIDCtl )
{
- impl_sendEvent(E_CONTROL_STATE_CHANGED, nIDCtl);
+ impl_sendEvent(E_CONTROL_STATE_CHANGED, static_cast<sal_Int16>( nIDCtl));
return S_OK;
}
diff --git a/framework/prj/build.lst b/framework/prj/build.lst
index b9814037e729..5c745e09077d 100644
--- a/framework/prj/build.lst
+++ b/framework/prj/build.lst
@@ -20,4 +20,4 @@ fr framework\source\uiconfiguration nmake - all fr_uiconfiguration f
fr framework\source\accelerators nmake - all fr_accelerators fr_threadhelp fr_inc NULL
fr framework\source\tabwin nmake - all fr_tabwin fr_threadhelp fr_inc NULL
fr framework\util nmake - all fr_util fr_constant fr_threadhelp fr_classes fr_loadenv fr_jobs fr_interaction fr_helper fr_dispatch fr_services fr_register fr_recording fr_layoutmanager fr_uielement fr_uifactory fr_xml fr_uiconfiguration fr_accelerators fr_tabwin NULL
-
+fr framework\qa\unoapi nmake - all fr_qa_unoapi NULL
diff --git a/framework/qa/unoapi/Test.java b/framework/qa/unoapi/Test.java
new file mode 100644
index 000000000000..da9bb3bd5020
--- /dev/null
+++ b/framework/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.framework.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "framework.sce", "-xcl", "knownissues.xcl", "-tdoc",
+ "testdocuments", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/framework/qa/unoapi/makefile.mk b/framework/qa/unoapi/makefile.mk
index 0be0e52a17c2..38a6cf7cced8 100755
--- a/framework/qa/unoapi/makefile.mk
+++ b/framework/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,22 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=framework
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = framework
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/framework/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce framework.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments -THRCNT 1 -AutoRestart true
- @echo =======================================================================
- @echo In case you noticed a failures of fwk.JobExecutor or fwk.JobHandler make sure that you registered $(SOLARSRC)$/qadevOOo$/testdocs$/qadevlibs$/JobExecutor.jar
- @echo =======================================================================
+.END
diff --git a/framework/source/classes/resource.src b/framework/source/classes/resource.src
index 0f45e683654f..d95e0d7213f0 100644
--- a/framework/source/classes/resource.src
+++ b/framework/source/classes/resource.src
@@ -124,7 +124,7 @@ String STR_TOOLBAR_TITLE_ADDON
String STR_STATUSBAR_LOGOTEXT
{
- Text [ en-US ] = "A %PRODUCTNAME product by Sun Microsystems, Inc.";
+ Text [ en-US ] = "A %PRODUCTNAME product by Oracle";
};
// ***********************************************************************
diff --git a/framework/source/interaction/quietinteraction.cxx b/framework/source/interaction/quietinteraction.cxx
index f00bee4ed432..d5d11ebc2097 100644
--- a/framework/source/interaction/quietinteraction.cxx
+++ b/framework/source/interaction/quietinteraction.cxx
@@ -44,7 +44,9 @@
#include <com/sun/star/task/XInteractionAbort.hpp>
#include <com/sun/star/task/XInteractionApprove.hpp>
#include <com/sun/star/document/XInteractionFilterSelect.hpp>
+#include <com/sun/star/document/XInteractionFilterOptions.hpp>
#include <com/sun/star/document/AmbigousFilterRequest.hpp>
+#include <com/sun/star/document/FilterOptionsRequest.hpp>
#include <com/sun/star/task/ErrorCodeRequest.hpp>
#ifndef _COM_SUN_STAR_DOCUMENT_LOCKEDDOCUMENTREQUEST_HPP_
@@ -111,6 +113,7 @@ void SAL_CALL QuietInteraction::handle( const css::uno::Reference< css::task::XI
css::uno::Reference< css::task::XInteractionAbort > xAbort ;
css::uno::Reference< css::task::XInteractionApprove > xApprove ;
css::uno::Reference< css::document::XInteractionFilterSelect > xFilter ;
+ css::uno::Reference< css::document::XInteractionFilterOptions > xFOptions ;
sal_Int32 nCount=lContinuations.getLength();
for (sal_Int32 i=0; i<nCount; ++i)
@@ -123,6 +126,9 @@ void SAL_CALL QuietInteraction::handle( const css::uno::Reference< css::task::XI
if ( ! xFilter.is() )
xFilter = css::uno::Reference< css::document::XInteractionFilterSelect >( lContinuations[i], css::uno::UNO_QUERY );
+
+ if ( ! xFOptions.is() )
+ xFOptions = css::uno::Reference< css::document::XInteractionFilterOptions >( lContinuations[i], css::uno::UNO_QUERY );
}
// differ between abortable interactions (error, unknown filter ...)
@@ -130,6 +136,7 @@ void SAL_CALL QuietInteraction::handle( const css::uno::Reference< css::task::XI
css::task::ErrorCodeRequest aErrorCodeRequest ;
css::document::AmbigousFilterRequest aAmbigousFilterRequest;
css::document::LockedDocumentRequest aLockedDocumentRequest;
+ css::document::FilterOptionsRequest aFilterOptionsRequest;
if (aRequest>>=aAmbigousFilterRequest)
{
@@ -163,6 +170,15 @@ void SAL_CALL QuietInteraction::handle( const css::uno::Reference< css::task::XI
xAbort->select();
}
else
+ if (aRequest>>=aFilterOptionsRequest)
+ {
+ if (xFOptions.is())
+ {
+ // let the default filter options be used
+ xFOptions->select();
+ }
+ }
+ else
if (xAbort.is())
xAbort->select();
}
diff --git a/framework/source/services/backingwindow.cxx b/framework/source/services/backingwindow.cxx
index bbbefdbdbda1..21c62fd89a54 100644
--- a/framework/source/services/backingwindow.cxx
+++ b/framework/source/services/backingwindow.cxx
@@ -116,21 +116,13 @@ BackingWindow::BackingWindow( Window* i_pParent ) :
Window( i_pParent, FwkResId( DLG_BACKING ) ),
maWelcome( this, WB_LEFT ),
maProduct( this, WB_LEFT ),
- maWriterText( this, WB_WORDBREAK | WB_VCENTER ),
maWriterButton( this, STC_BUTTON_STYLE ),
- maCalcText( this, WB_WORDBREAK | WB_VCENTER ),
maCalcButton( this, STC_BUTTON_STYLE ),
- maImpressText( this, WB_WORDBREAK | WB_VCENTER ),
maImpressButton( this, STC_BUTTON_STYLE ),
- maOpenText( this, WB_WORDBREAK | WB_VCENTER ),
maOpenButton( this, STC_BUTTON_STYLE ),
- maDrawText( this, WB_WORDBREAK | WB_VCENTER ),
maDrawButton( this, STC_BUTTON_STYLE ),
- maDBText( this, WB_WORDBREAK | WB_VCENTER ),
maDBButton( this, STC_BUTTON_STYLE ),
- maMathText( this, WB_WORDBREAK | WB_VCENTER ),
maMathButton( this, STC_BUTTON_STYLE ),
- maTemplateText( this, WB_WORDBREAK | WB_VCENTER ),
maTemplateButton( this, STC_BUTTON_STYLE ),
maToolbox( this, WB_DIALOGCONTROL ),
maWelcomeString( FwkResId( STR_BACKING_WELCOME ) ),
@@ -324,22 +316,6 @@ void BackingWindow::initBackground()
maWelcome.SetBackground();
maProduct.SetControlForeground( maWelcomeTextColor );
maProduct.SetBackground();
- maWriterText.SetControlForeground( maLabelTextColor );
- maWriterText.SetControlBackground( aTextBGColor );
- maCalcText.SetControlForeground( maLabelTextColor );
- maCalcText.SetControlBackground( aTextBGColor );
- maImpressText.SetControlForeground( maLabelTextColor );
- maImpressText.SetControlBackground( aTextBGColor );
- maDrawText.SetControlForeground( maLabelTextColor );
- maDrawText.SetControlBackground( aTextBGColor );
- maDBText.SetControlForeground( maLabelTextColor );
- maDBText.SetControlBackground( aTextBGColor );
- maMathText.SetControlForeground( maLabelTextColor );
- maMathText.SetControlBackground( aTextBGColor );
- maTemplateText.SetControlForeground( maLabelTextColor );
- maTemplateText.SetControlBackground( aTextBGColor );
- maOpenText.SetControlForeground( maLabelTextColor );
- maOpenText.SetControlBackground( aTextBGColor );
if( mnLayoutStyle == 1 )
{
@@ -456,35 +432,35 @@ void BackingWindow::initControls()
}
// layout the buttons
- layoutButtonAndText( WRITER_URL, 0, aFileNewAppsAvailable,
- aModuleOptions, SvtModuleOptions::E_SWRITER,
- maWriterButton, maWriterText, aMnemns );
- layoutButtonAndText( DRAW_URL, 1, aFileNewAppsAvailable,
- aModuleOptions, SvtModuleOptions::E_SDRAW,
- maDrawButton, maDrawText, aMnemns );
+ layoutButton( WRITER_URL, 0, aFileNewAppsAvailable,
+ aModuleOptions, SvtModuleOptions::E_SWRITER,
+ maWriterButton, aMnemns );
+ layoutButton( DRAW_URL, 1, aFileNewAppsAvailable,
+ aModuleOptions, SvtModuleOptions::E_SDRAW,
+ maDrawButton, aMnemns );
nYPos += maButtonImageSize.Height() + 10;
- layoutButtonAndText( CALC_URL, 0, aFileNewAppsAvailable,
- aModuleOptions, SvtModuleOptions::E_SCALC,
- maCalcButton, maCalcText, aMnemns );
- layoutButtonAndText( BASE_URL, 1, aFileNewAppsAvailable,
- aModuleOptions, SvtModuleOptions::E_SDATABASE,
- maDBButton, maDBText, aMnemns );
+ layoutButton( CALC_URL, 0, aFileNewAppsAvailable,
+ aModuleOptions, SvtModuleOptions::E_SCALC,
+ maCalcButton, aMnemns );
+ layoutButton( BASE_URL, 1, aFileNewAppsAvailable,
+ aModuleOptions, SvtModuleOptions::E_SDATABASE,
+ maDBButton, aMnemns );
nYPos += maButtonImageSize.Height() + 10;
- layoutButtonAndText( IMPRESS_WIZARD_URL, 0, aFileNewAppsAvailable,
- aModuleOptions, SvtModuleOptions::E_SIMPRESS,
- maImpressButton, maImpressText, aMnemns );
- layoutButtonAndText( MATH_URL, 1, aFileNewAppsAvailable,
- aModuleOptions, SvtModuleOptions::E_SMATH,
- maMathButton, maMathText, aMnemns );
+ layoutButton( IMPRESS_WIZARD_URL, 0, aFileNewAppsAvailable,
+ aModuleOptions, SvtModuleOptions::E_SIMPRESS,
+ maImpressButton, aMnemns );
+ layoutButton( MATH_URL, 1, aFileNewAppsAvailable,
+ aModuleOptions, SvtModuleOptions::E_SMATH,
+ maMathButton, aMnemns );
nYPos += 3*maButtonImageSize.Height() / 2;
- layoutButtonAndText( NULL, 0, aFileNewAppsAvailable,
- aModuleOptions, SvtModuleOptions::E_SWRITER,
- maOpenButton, maOpenText, aMnemns, maOpenString );
- layoutButtonAndText( NULL, 1, aFileNewAppsAvailable,
- aModuleOptions, SvtModuleOptions::E_SWRITER,
- maTemplateButton, maTemplateText, aMnemns, maTemplateString );
+ layoutButton( NULL, 0, aFileNewAppsAvailable,
+ aModuleOptions, SvtModuleOptions::E_SWRITER,
+ maOpenButton, aMnemns, maOpenString );
+ layoutButton( NULL, 1, aFileNewAppsAvailable,
+ aModuleOptions, SvtModuleOptions::E_SWRITER,
+ maTemplateButton, aMnemns, maTemplateString );
nYPos += 10;
DBG_ASSERT( nYPos < maControlRect.GetHeight(), "misformatting !" );
@@ -532,6 +508,8 @@ void BackingWindow::initControls()
maBackgroundMiddle = BitmapEx();
Resize();
+
+ maWriterButton.GrabFocus();
}
void BackingWindow::loadImage( const ResId& i_rId, ImageButton& i_rButton )
@@ -545,11 +523,11 @@ void BackingWindow::loadImage( const ResId& i_rId, ImageButton& i_rButton )
i_rButton.SetModeImage( aBmp );
}
-void BackingWindow::layoutButtonAndText(
+void BackingWindow::layoutButton(
const char* i_pURL, int nColumn,
const std::set<rtl::OUString>& i_rURLS,
SvtModuleOptions& i_rOpt, SvtModuleOptions::EModule i_eMod,
- ImageButton& i_rBtn, FixedText& i_rText,
+ ImageButton& i_rBtn,
MnemonicGenerator& i_rMnemns,
const String& i_rStr
)
@@ -582,12 +560,6 @@ void BackingWindow::layoutButtonAndText(
i_rBtn.SetImageAlign( IMAGEALIGN_LEFT );
// show the controls
i_rBtn.Show();
- i_rText.Show( FALSE );
-
-
- // FIXME: the only reason the FixedTexts are left are not to trigger
- // a translation change due to changed src files. For the next minor
- // the FixedTexts should be removed completely
}
void BackingWindow::Paint( const Rectangle& )
@@ -635,8 +607,73 @@ long BackingWindow::Notify( NotifyEvent& rNEvt )
}
const KeyEvent* pEvt = rNEvt.GetKeyEvent();
- if( pEvt && mpAccExec->execute(pEvt->GetKeyCode()) )
+ const KeyCode& rKeyCode(pEvt->GetKeyCode());
+ if( pEvt && mpAccExec->execute(rKeyCode) )
return 1;
+ // #i110344# extrawurst: specialized arrow key control
+ if( rKeyCode.GetModifier() == 0 )
+ {
+ if( rKeyCode.GetCode() == KEY_RIGHT )
+ {
+ if( maWriterButton.HasFocus() )
+ maDrawButton.GrabFocus();
+ else if( maCalcButton.HasFocus() )
+ maDBButton.GrabFocus();
+ else if( maImpressButton.HasFocus() )
+ maMathButton.GrabFocus();
+ else if( maOpenButton.HasFocus() )
+ maTemplateButton.GrabFocus();
+ return 1;
+ }
+ else if( rKeyCode.GetCode() == KEY_LEFT )
+ {
+ if( maDrawButton.HasFocus() )
+ maWriterButton.GrabFocus();
+ else if( maDBButton.HasFocus() )
+ maCalcButton.GrabFocus();
+ else if( maMathButton.HasFocus() )
+ maImpressButton.GrabFocus();
+ else if( maTemplateButton.HasFocus() )
+ maOpenButton.GrabFocus();
+ return 1;
+ }
+ else if( rKeyCode.GetCode() == KEY_UP )
+ {
+ // first column
+ if( maOpenButton.HasFocus() )
+ maImpressButton.GrabFocus();
+ else if( maImpressButton.HasFocus() )
+ maCalcButton.GrabFocus();
+ else if( maCalcButton.HasFocus() )
+ maWriterButton.GrabFocus();
+ // second column
+ else if( maTemplateButton.HasFocus() )
+ maMathButton.GrabFocus();
+ else if( maMathButton.HasFocus() )
+ maDBButton.GrabFocus();
+ else if( maDBButton.HasFocus() )
+ maDrawButton.GrabFocus();
+ return 1;
+ }
+ else if( rKeyCode.GetCode() == KEY_DOWN )
+ {
+ // first column
+ if( maWriterButton.HasFocus() )
+ maCalcButton.GrabFocus();
+ else if( maCalcButton.HasFocus() )
+ maImpressButton.GrabFocus();
+ else if( maImpressButton.HasFocus() )
+ maOpenButton.GrabFocus();
+ // second column
+ else if( maDrawButton.HasFocus() )
+ maDBButton.GrabFocus();
+ else if( maDBButton.HasFocus() )
+ maMathButton.GrabFocus();
+ else if( maMathButton.HasFocus() )
+ maTemplateButton.GrabFocus();
+ return 1;
+ }
+ }
}
return Window::Notify( rNEvt );
}
@@ -865,54 +902,6 @@ IMPL_LINK( BackingWindow, ClickHdl, Button*, pButton )
return 0;
}
-Window* BackingWindow::GetParentLabelFor( const Window* pLabel ) const
-{
- const Window* pRet = NULL;
-
- if( pLabel == &maWriterText )
- pRet = &maWriterButton;
- else if( pLabel == &maCalcText )
- pRet = &maCalcButton;
- else if( pLabel == &maImpressText )
- pRet = &maImpressButton;
- else if( pLabel == &maDrawText )
- pRet = &maDrawButton;
- else if( pLabel == &maDBText )
- pRet = &maDBButton;
- else if( pLabel == &maMathText )
- pRet = &maMathButton;
- else if( pLabel == &maTemplateText )
- pRet = &maTemplateButton;
- else if( pLabel == &maOpenText )
- pRet = &maOpenButton;
-
- return const_cast<Window*>(pRet);
-}
-
-Window* BackingWindow::GetParentLabeledBy( const Window* pLabeled ) const
-{
- const Window *pRet = NULL;
-
- if( pLabeled == &maWriterButton )
- pRet = &maWriterText;
- else if( pLabeled == &maCalcButton )
- pRet = &maCalcText;
- else if( pLabeled == &maImpressButton )
- pRet = &maImpressText;
- else if( pLabeled == &maDrawButton )
- pRet = &maDrawText;
- else if( pLabeled == &maDBButton )
- pRet = &maDBText;
- else if( pLabeled == &maMathButton )
- pRet = &maMathText;
- else if( pLabeled == &maTemplateButton )
- pRet = &maTemplateText;
- else if( pLabeled == &maOpenButton )
- pRet = &maOpenText;
-
- return const_cast<Window*>(pRet);
-}
-
struct ImplDelayedDispatch
{
Reference< XDispatch > xDispatch;
diff --git a/framework/source/services/backingwindow.hxx b/framework/source/services/backingwindow.hxx
index 7b7dfa34b110..76a12a48b816 100644
--- a/framework/source/services/backingwindow.hxx
+++ b/framework/source/services/backingwindow.hxx
@@ -86,21 +86,13 @@ namespace framework
Size maWelcomeSize;
FixedText maProduct;
Size maProductSize;
- FixedText maWriterText;
ImageButton maWriterButton;
- FixedText maCalcText;
ImageButton maCalcButton;
- FixedText maImpressText;
ImageButton maImpressButton;
- FixedText maOpenText;
ImageButton maOpenButton;
- FixedText maDrawText;
ImageButton maDrawButton;
- FixedText maDBText;
ImageButton maDBButton;
- FixedText maMathText;
ImageButton maMathButton;
- FixedText maTemplateText;
ImageButton maTemplateButton;
DecoToolBox maToolbox;
@@ -141,12 +133,12 @@ namespace framework
void loadImage( const ResId& i_rId, ImageButton& i_rButton );
- void layoutButtonAndText( const char* i_pURL, int nColumn, const std::set<rtl::OUString>& i_rURLS,
- SvtModuleOptions& i_rOpt, SvtModuleOptions::EModule i_eMod,
- ImageButton& i_rBtn, FixedText& i_rText,
- MnemonicGenerator& i_rMnemonicGen,
- const String& i_rStr = String()
- );
+ void layoutButton( const char* i_pURL, int nColumn, const std::set<rtl::OUString>& i_rURLS,
+ SvtModuleOptions& i_rOpt, SvtModuleOptions::EModule i_eMod,
+ ImageButton& i_rBtn,
+ MnemonicGenerator& i_rMnemonicGen,
+ const String& i_rStr = String()
+ );
void dispatchURL( const rtl::OUString& i_rURL,
const rtl::OUString& i_rTarget = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "_default" ) ),
@@ -167,8 +159,6 @@ namespace framework
virtual void Resize();
virtual long Notify( NotifyEvent& rNEvt );
virtual void DataChanged( const DataChangedEvent& rDCEvt );
- virtual Window* GetParentLabelFor( const Window* pLabel ) const;
- virtual Window* GetParentLabeledBy( const Window* pLabeled ) const;
virtual void GetFocus();
void setOwningFrame( const com::sun::star::uno::Reference< com::sun::star::frame::XFrame >& xFrame );
diff --git a/framework/util/exports.map b/framework/util/exports.map
deleted file mode 100644
index 85610ad80888..000000000000
--- a/framework/util/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/framework/util/makefile.mk b/framework/util/makefile.mk
index 3e390826bc53..65edaff42d35 100644
--- a/framework/util/makefile.mk
+++ b/framework/util/makefile.mk
@@ -219,7 +219,7 @@ SHL3DEPN= $(SHL1IMPLIBN) $(SHL1TARGETN) $(SHL2TARGETN)
DEF3NAME= $(SHL3TARGET)
-SHL3VERSIONMAP= exports.map
+SHL3VERSIONMAP= $(SOLARENV)/src/component.map
# --- services library ----------------------------------------------------
@@ -360,7 +360,7 @@ SHL4DEPN= $(SHL1IMPLIBN) $(SHL1TARGETN) $(SHL2IMPLIBN) $(SHL2TARGETN)
DEF4NAME= $(SHL4TARGET)
-SHL4VERSIONMAP= exports.map
+SHL4VERSIONMAP= $(SOLARENV)/src/component.map
# --- services library ----------------------------------------------------
@@ -391,7 +391,7 @@ SHL5DEPN= $(SHL1IMPLIBN) $(SHL1TARGETN)
DEF5NAME= $(SHL5TARGET)
-SHL5VERSIONMAP= exports.map
+SHL5VERSIONMAP= $(SOLARENV)/src/component.map
RESLIB1NAME= fwe
RESLIB1IMAGES= $(PRJ)$/res
diff --git a/graphite/makefile.mk b/graphite/makefile.mk
index 1f3d71748a4b..66100242bfe1 100644
--- a/graphite/makefile.mk
+++ b/graphite/makefile.mk
@@ -46,6 +46,7 @@ all:
# --- Files --------------------------------------------------------
.IF "$(ENABLE_GRAPHITE)"=="TRUE"
TARFILE_NAME=silgraphite-2.3.1
+TARFILE_MD5=d35724900f6a4105550293686688bbb3
PATCH_FILES=graphite-2.3.1.patch
# convert line-endings to avoid problems when patching
diff --git a/hsqldb/makefile.mk b/hsqldb/makefile.mk
index 0aea6c3e2b79..6b3166aad4c5 100755
--- a/hsqldb/makefile.mk
+++ b/hsqldb/makefile.mk
@@ -45,6 +45,7 @@ ANT_BUILDFILE=build$/build.xml
# --- Files --------------------------------------------------------
TARFILE_NAME=hsqldb_$(HSQLDB_VERSION)
+TARFILE_MD5=17410483b5b5f267aa18b7e00b65e6e0
TARFILE_ROOTDIR=hsqldb
diff --git a/hunspell/hunspell-1.2.8.patch b/hunspell/hunspell-1.2.8.patch
deleted file mode 100644
index e5198f23b706..000000000000
--- a/hunspell/hunspell-1.2.8.patch
+++ /dev/null
@@ -1,632 +0,0 @@
---- misc/hunspell-1.2.8/intl/localename.c 2007-04-06 10:05:34.000000000 +0200
-+++ misc/build/hunspell-1.2.8/intl/localename.c 2008-11-01 16:30:49.000000000 +0100
-@@ -140,6 +140,9 @@
- # ifndef LANG_SINDHI
- # define LANG_SINDHI 0x59
- # endif
-+# ifndef LANG_SORBIAN
-+# define LANG_SORBIAN 0x2e
-+# endif
- # ifndef LANG_SLOVAK
- # define LANG_SLOVAK 0x1b
- # endif
---- misc/hunspell-1.2.8/src/hunspell/affixmgr.cxx 2008-11-01 08:00:41.000000000 +0100
-+++ misc/build/hunspell-1.2.8/src/hunspell/affixmgr.cxx 2008-11-01 16:30:49.000000000 +0100
-@@ -25,6 +25,10 @@
- #endif
- #endif
-
-+#ifdef OS2
-+#undef DEBUG
-+#endif
-+
- AffixMgr::AffixMgr(const char * affpath, HashMgr** ptr, int * md, const char * key)
- {
- // register hash manager and load affix data from aff file
-@@ -2133,7 +2137,7 @@
- while ((rv) && ((needaffix && TESTAFF(rv->astr, needaffix, rv->alen)) ||
- !((compoundflag && !words && TESTAFF(rv->astr, compoundflag, rv->alen)) ||
- (compoundend && !words && TESTAFF(rv->astr, compoundend, rv->alen)) ||
-- (numdefcpd && defcpd_check(&words, wnum + 1, rv, NULL,1))))) {
-+ (numdefcpd && words && defcpd_check(&words, wnum + 1, rv, NULL,1))))) {
- rv = rv->next_homonym;
- }
-
---- misc/hunspell-1.2.8/src/hunspell/affixmgr.hxx 2008-10-30 21:28:59.000000000 +0100
-+++ misc/build/hunspell-1.2.8/src/hunspell/affixmgr.hxx 2008-11-01 16:30:49.000000000 +0100
-@@ -2,9 +2,6 @@
- #define _AFFIXMGR_HXX_
-
- #ifdef MOZILLA_CLIENT
--#ifdef __SUNPRO_CC // for SunONE Studio compiler
--using namespace std;
--#endif
- #include <stdio.h>
- #else
- #include <cstdio>
---- misc/hunspell-1.2.8/src/hunspell/atypes.hxx 2008-10-29 15:30:51.000000000 +0100
-+++ misc/build/hunspell-1.2.8/src/hunspell/atypes.hxx 2008-11-01 16:30:49.000000000 +0100
-@@ -1,6 +1,8 @@
- #ifndef _ATYPES_HXX_
- #define _ATYPES_HXX_
-
-+#include <stdio.h>
-+
- #ifndef HUNSPELL_WARNING
- #ifdef HUNSPELL_WARNING_ON
- #define HUNSPELL_WARNING fprintf
---- misc/hunspell-1.2.8/src/hunspell/csutil.cxx Wed Oct 22 12:15:28 2008
-+++ misc/build/hunspell-1.2.8/src/hunspell/csutil.cxx Thu Feb 19 18:13:34 2009
-@@ -18,13 +18,13 @@
- #include "langnum.hxx"
-
- #ifdef OPENOFFICEORG
--# include <unicode/uchar.h>
-+#include <unicode/uchar.h>
- #else
--# ifndef MOZILLA_CLIENT
--# include "utf_info.cxx"
--# define UTF_LST_LEN (sizeof(utf_lst) / (sizeof(unicode_info)))
--# endif
-+#ifndef MOZILLA_CLIENT
-+#include "utf_info.cxx"
-+#define UTF_LST_LEN (sizeof(utf_lst) / (sizeof(unicode_info)))
- #endif
-+#endif
-
- #ifdef MOZILLA_CLIENT
- #include "nsCOMPtr.h"
---- misc/hunspell-1.2.8/src/hunspell/filemgr.cxx Sat Nov 1 15:09:41 2008
-+++ misc/build/hunspell-1.2.8/src/hunspell/filemgr.cxx Thu Feb 19 17:28:35 2009
-@@ -11,6 +11,7 @@
- #include <stdio.h>
- #endif
-
-+using namespace std;
- #include "filemgr.hxx"
-
- int FileMgr::fail(const char * err, const char * par) {
---- misc/hunspell-1.2.8/src/hunspell/filemgr.hxx Mon Aug 11 11:32:02 2008
-+++ misc/build/hunspell-1.2.8/src/hunspell/filemgr.hxx Thu Feb 19 13:58:01 2009
-@@ -6,7 +6,7 @@
- class FileMgr
- {
- protected:
-- FILE * fin;
-+ std::FILE * fin;
- Hunzip * hin;
- char in[BUFSIZE + 50]; // input buffer
- int fail(const char * err, const char * par);
---- misc/hunspell-1.2.8/src/hunspell/hashmgr.cxx Thu Aug 14 16:49:33 2008
-+++ misc/build/hunspell-1.2.8/src/hunspell/hashmgr.cxx Thu Feb 19 17:25:33 2009
-@@ -6,6 +6,9 @@
- #include <cstring>
- #include <cstdio>
- #include <cctype>
-+//#ifdef __SUNPRO_CC // for SunONE Studio compiler
-+//using namespace std;
-+//#endif
- #else
- #include <stdlib.h>
- #include <string.h>
-@@ -13,10 +16,6 @@
- #include <ctype.h>
- #endif
-
--#include "hashmgr.hxx"
--#include "csutil.hxx"
--#include "atypes.hxx"
--
- #ifdef MOZILLA_CLIENT
- #ifdef __SUNPRO_CC // for SunONE Studio compiler
- using namespace std;
-@@ -27,6 +26,10 @@
- #endif
- #endif
-
-+#include "hashmgr.hxx"
-+#include "csutil.hxx"
-+#include "atypes.hxx"
-+
- // build a hash table from a munched word list
-
- HashMgr::HashMgr(const char * tpath, const char * apath, const char * key)
-@@ -459,6 +462,10 @@
- }
- } else {
- al = decode_flags(&flags, ap + 1, dict);
-+ if (al == -1) {
-+ HUNSPELL_WARNING(stderr, "Can't allocate memory.\n");
-+ return 6;
-+ }
- flag_qsort(flags, 0, al);
- }
- } else {
-@@ -499,6 +506,11 @@
-
- int HashMgr::decode_flags(unsigned short ** result, char * flags, FileMgr * af) {
- int len;
-+ if (*flags == '\0') {
-+ HUNSPELL_WARNING(stderr, "error: line %d: bad flagvector\n", af->getlinenum());
-+ *result = NULL;
-+ return 0;
-+ }
- switch (flag_mode) {
- case FLAG_LONG: { // two-character flags (1x2yZz -> 1x 2y Zz)
- len = strlen(flags);
---- misc/hunspell-1.2.8/src/hunspell/hashmgr.hxx 2008-08-12 12:22:54.000000000 +0200
-+++ misc/build/hunspell-1.2.8/src/hunspell/hashmgr.hxx 2009-02-19 12:57:11.780108100 +0100
-@@ -3,6 +3,7 @@
-
- #ifndef MOZILLA_CLIENT
- #include <cstdio>
-+/* using namespace std; */
- #else
- #include <stdio.h>
- #endif
---- misc/hunspell-1.2.8/src/hunspell/hunspell.cxx Thu Oct 30 20:15:53 2008
-+++ misc/build/hunspell-1.2.8/src/hunspell/hunspell.cxx Thu Feb 19 18:13:35 2009
-@@ -1,3 +1,7 @@
-+#ifdef _MSC_VER
-+#pragma setlocale("C")
-+#endif
-+
- #include "license.hunspell"
- #include "license.myspell"
-
-@@ -11,11 +15,6 @@
- #include <stdio.h>
- #endif
-
--#include "hunspell.hxx"
--#include "hunspell.h"
--#include "config.h"
--#include "csutil.hxx"
--
- #ifndef MOZILLA_CLIENT
- #ifndef WIN32
- using namespace std;
-@@ -22,6 +21,9 @@
- #endif
- #endif
-
-+#include "hunspell.hxx"
-+#include "csutil.hxx"
-+
- Hunspell::Hunspell(const char * affpath, const char * dpath, const char * key)
- {
- encoding = NULL;
-@@ -338,7 +340,11 @@
- char wspace[MAXWORDUTF8LEN];
- w_char unicw[MAXWORDLEN];
- // Hunspell supports XML input of the simplified API (see manual)
-- if (strcmp(word, SPELL_XML) == 0) return 1;
-+ if (strncmp(word, SPELL_XML, sizeof(SPELL_XML) - 3) == 0) {
-+ if (strcmp(word, SPELL_XML) == 0) return 1; // query XML interface support
-+ return 0;
-+ }
-+
- int nc = strlen(word);
- int wl2 = 0;
- if (utf8) {
-@@ -1854,89 +1860,3 @@
- }
-
- #endif // END OF HUNSPELL_EXPERIMENTAL CODE
--
--Hunhandle *Hunspell_create(const char * affpath, const char * dpath)
--{
-- return (Hunhandle*)(new Hunspell(affpath, dpath));
--}
--
--Hunhandle *Hunspell_create_key(const char * affpath, const char * dpath,
-- const char * key)
--{
-- return (Hunhandle*)(new Hunspell(affpath, dpath, key));
--}
--
--void Hunspell_destroy(Hunhandle *pHunspell)
--{
-- delete (Hunspell*)(pHunspell);
--}
--
--int Hunspell_spell(Hunhandle *pHunspell, const char *word)
--{
-- return ((Hunspell*)pHunspell)->spell(word);
--}
--
--char *Hunspell_get_dic_encoding(Hunhandle *pHunspell)
--{
-- return ((Hunspell*)pHunspell)->get_dic_encoding();
--}
--
--int Hunspell_suggest(Hunhandle *pHunspell, char*** slst, const char * word)
--{
-- return ((Hunspell*)pHunspell)->suggest(slst, word);
--}
--
--int Hunspell_analyze(Hunhandle *pHunspell, char*** slst, const char * word)
--{
-- return ((Hunspell*)pHunspell)->analyze(slst, word);
--}
--
--int Hunspell_stem(Hunhandle *pHunspell, char*** slst, const char * word)
--{
-- return ((Hunspell*)pHunspell)->stem(slst, word);
--}
--
--int Hunspell_stem(Hunhandle *pHunspell, char*** slst, char** desc, int n)
--{
-- return ((Hunspell*)pHunspell)->stem(slst, desc, n);
--}
--
--int Hunspell_generate(Hunhandle *pHunspell, char*** slst, const char * word,
-- const char * word2)
--{
-- return ((Hunspell*)pHunspell)->generate(slst, word, word2);
--}
--
--int Hunspell_generate(Hunhandle *pHunspell, char*** slst, const char * word,
-- char** desc, int n)
--{
-- return ((Hunspell*)pHunspell)->generate(slst, word, desc, n);
--}
--
-- /* functions for run-time modification of the dictionary */
--
-- /* add word to the run-time dictionary */
--
--int Hunspell_add(Hunhandle *pHunspell, const char * word) {
-- return ((Hunspell*)pHunspell)->add(word);
--}
--
-- /* add word to the run-time dictionary with affix flags of
-- * the example (a dictionary word): Hunspell will recognize
-- * affixed forms of the new word, too.
-- */
--
--int Hunspell_add_with_affix(Hunhandle *pHunspell, const char * word,
-- const char * example) {
-- return ((Hunspell*)pHunspell)->add_with_affix(word, example);
--}
--
-- /* remove word from the run-time dictionary */
--
--int Hunspell_remove(Hunhandle *pHunspell, const char * word) {
-- return ((Hunspell*)pHunspell)->remove(word);
--}
--
--void Hunspell_free_list(Hunhandle *pHunspell, char *** slst, int n) {
-- freelist(slst, n);
--}
---- misc/hunspell-1.2.8/src/hunspell/hunspell.hxx 2008-07-09 16:14:39.000000000 +0200
-+++ misc/build/hunspell-1.2.8/src/hunspell/hunspell.hxx 2008-11-26 18:32:58.765625000 +0100
-@@ -28,11 +28,7 @@
- #endif
- #endif
-
--#ifdef WIN32
--class DLLEXPORT Hunspell
--#else
- class Hunspell
--#endif
- {
- AffixMgr* pAMgr;
- HashMgr* pHMgr[MAXDIC];
---- misc/hunspell-1.2.8/src/hunspell/hunzip.cxx Tue Jun 17 10:57:55 2008
-+++ misc/build/hunspell-1.2.8/src/hunspell/hunzip.cxx Thu Feb 19 17:29:19 2009
-@@ -8,6 +8,7 @@
- #include <stdio.h>
- #endif
-
-+using namespace std;
- #include "hunzip.hxx"
-
- #define CODELEN 65536
---- misc/hunspell-1.2.8/src/hunspell/hunzip.hxx Thu Feb 19 15:59:42 2009
-+++ misc/build/hunspell-1.2.8/src/hunspell/hunzip.hxx Thu Feb 19 18:13:35 2009
-@@ -18,6 +18,8 @@
- #define MSG_MEMORY "error: %s: missing memory\n"
- #define MSG_KEY "error: %s: missing or bad password\n"
-
-+#include <stdlib.h>
-+
- struct bit {
- unsigned char c[2];
- int v[2];
---- misc/hunspell-1.2.8/src/hunspell/license.hunspell 2008-06-17 10:57:55.000000000 +0200
-+++ misc/build/hunspell-1.2.8/src/hunspell/license.hunspell 2008-11-01 16:30:49.000000000 +0100
-@@ -56,4 +56,3 @@
- *
- * ***** END LICENSE BLOCK ***** */
-
--#include "config.h"
---- misc/hunspell-1.2.8/src/hunspell/makefile.mk Tue Jun 17 10:57:55 2008
-+++ misc/build/hunspell-1.2.8/src/hunspell/makefile.mk Thu Feb 19 18:13:52 2009
-@@ -60,11 +60,13 @@
- #
- #*************************************************************************
-
--PRJ = ..
-+PRJ = ../../../../../..
-
- PRJNAME = hunspell
- TARGET = hunspell
--LIBTARGET=NO
-+LIBTARGET=YES
-+EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
-+UWINAPILIB=
-
- #----- Settings ---------------------------------------------------------
-
-@@ -73,7 +74,7 @@
- # --- Files --------------------------------------------------------
-
- # all_target: ALLTAR DICTIONARY
--all_target: ALLTAR
-+#all_target: ALLTAR
-
- ##CXXFLAGS += -I..$/..$/lingutil
- ##CFLAGSCXX += -I..$/..$/lingutil
-@@ -89,6 +90,10 @@
- $(SLO)$/utf_info.obj \
- $(SLO)$/hashmgr.obj \
- $(SLO)$/suggestmgr.obj \
-+ $(SLO)$/phonet.obj \
-+ $(SLO)$/hunzip.obj \
-+ $(SLO)$/filemgr.obj \
-+ $(SLO)$/replist.obj \
- $(SLO)$/hunspell.obj
-
- LIB1TARGET= $(SLB)$/lib$(TARGET).lib
---- misc/hunspell-1.2.8/src/hunspell/phonet.cxx 2008-08-13 15:29:08.000000000 +0200
-+++ misc/build/hunspell-1.2.8/src/hunspell/phonet.cxx 2008-11-01 16:30:49.000000000 +0100
-@@ -32,6 +32,7 @@
- #include <cstring>
- #include <cstdio>
- #include <cctype>
-+using namespace std;
- #else
- #include <stdlib.h>
- #include <string.h>
---- misc/hunspell-1.2.8/src/hunspell/replist.cxx Sat Nov 1 15:09:51 2008
-+++ misc/build/hunspell-1.2.8/src/hunspell/replist.cxx Thu Feb 19 14:02:51 2009
-@@ -13,6 +13,7 @@
-
- #include "replist.hxx"
- #include "csutil.hxx"
-+using namespace std;
-
- RepList::RepList(int n) {
- dat = (replentry **) malloc(sizeof(replentry *) * n);
---- misc/hunspell-1.2.8/src/tools/analyze.cxx Tue Jun 17 13:44:50 2008
-+++ misc/build/hunspell-1.2.8/src/tools/analyze.cxx Thu Feb 19 18:13:35 2009
-@@ -3,13 +3,13 @@
- #include <cstdlib>
- #include <cstdio>
-
--#include "hunspell.hxx"
--
- #ifndef WIN32
- using namespace std;
- #endif
-
-+#include "hunspell.hxx"
-
-+
-
- int main(int argc, char **argv)
- {
---- misc/hunspell-1.2.8/src/tools/chmorph.cxx Tue Jun 17 12:15:34 2008
-+++ misc/build/hunspell-1.2.8/src/tools/chmorph.cxx Thu Feb 19 17:36:46 2009
-@@ -2,13 +2,13 @@
- #include <cstdlib>
- #include <cstdio>
-
--#include "hunspell.hxx"
--#include "textparser.hxx"
--
- #ifndef W32
- using namespace std;
- #endif
-
-+#include "hunspell.hxx"
-+#include "textparser.hxx"
-+
- int
- main(int argc, char** argv)
- {
---- misc/hunspell-1.2.8/src/tools/example.cxx Tue Jun 17 13:07:24 2008
-+++ misc/build/hunspell-1.2.8/src/tools/example.cxx Thu Feb 19 17:38:12 2009
-@@ -2,12 +2,12 @@
- #include <cstdlib>
- #include <cstdio>
-
-+using namespace std;
-+
- #include "hunspell.hxx"
-
- extern char * mystrdup(const char * s);
-
--using namespace std;
--
- int
- main(int argc, char** argv)
- {
---- misc/hunspell-1.2.8/src/tools/hunspell.cxx 2008-09-04 15:44:19.000000000 +0200
-+++ misc/build/hunspell-1.2.8/src/tools/hunspell.cxx 2008-11-01 16:31:24.000000000 +0100
-@@ -7,10 +7,20 @@
-
- #include <cstdlib>
- #include <cstdio>
-+
-+#ifdef __SUNPRO_CC
-+using namespace std;
-+#include <string.h>
-+#include <malloc.h>
-+#endif
-+
- #include "config.h"
- #include "hunspell.hxx"
- #include "csutil.hxx"
-
-+// switch off iconv support for tests (fixing Solaris problems)
-+#undef HAVE_ICONV
-+
- #ifndef HUNSPELL_EXTRA
- #define suggest_auto suggest
- #endif
-@@ -28,7 +38,9 @@
-
- #ifdef WIN32
-
-+#ifndef __MINGW32__
- #define gettext
-+#endif
- #define LIBDIR "C:\\Hunspell\\"
- #define USEROOODIR "Application Data\\OpenOffice.org 2\\user\\wordbook"
- #define OOODIR \
-@@ -98,8 +110,10 @@
- #if ENABLE_NLS
- #ifdef HAVE_LOCALE_H
- #include <locale.h>
-+#ifdef HAVE_LANGINFO_CODESET
- #include <langinfo.h>
- #endif
-+#endif
-
- #ifdef HAVE_LIBINTL_H
- #include <libintl.h>
-@@ -1385,9 +1399,11 @@
- #ifdef HAVE_LOCALE_H
- ui_lang = setlocale(LC_ALL, "");
- textdomain("hunspell");
-+#ifdef HAVE_LANGINFO_CODESET
- ui_enc = nl_langinfo(CODESET);
- #endif
- #endif
-+#endif
-
- #ifdef HAVE_READLINE
- rl_set_key("", rl_escape, rl_get_keymap());
---- misc/hunspell-1.2.8/src/tools/hunzip.cxx Tue Jan 15 11:10:04 2008
-+++ misc/build/hunspell-1.2.8/src/tools/hunzip.cxx Thu Feb 19 17:38:12 2009
-@@ -2,6 +2,8 @@
- #include <stdlib.h>
- #include <string.h>
-
-+using namespace std;
-+
- #include "hunzip.hxx"
-
- #define DESC "hunzip - decompress a hzip file to the standard output\n" \
---- misc/hunspell-1.2.8/src/tools/hzip.c Fri Apr 4 15:20:10 2008
-+++ misc/build/hunspell-1.2.8/src/tools/hzip.c Thu Feb 19 18:13:35 2009
-@@ -44,7 +44,7 @@
- if (tree->type != code_NODE) {
- int i = tree->word;
- code[deep] = '\0';
-- if (tree->type == code_TERM) i = CODELEN; // terminal code
-+ if (tree->type == code_TERM) i = CODELEN;
- table[i] = malloc((deep + 1) * sizeof(char));
- strcpy(table[i], code);
- }
-@@ -63,7 +63,7 @@
- return ni;
- }
-
--// return length of the freq array
-+
- int get_freqdata(struct item *** dest, FILE * f, unsigned short * termword) {
- int freq[CODELEN];
- int i, j, k, n;
-@@ -88,7 +88,7 @@
- (*dest)[n]->word = i;
- n++;
- }
-- // terminal sequence (also contains the last odd byte of the file)
-+
- (*dest)[n] = newitem(1, NULL, NULL, code_TERM);
- *termword = *((unsigned short *) c);
- return n + 1;
-@@ -134,20 +134,20 @@
- char c[2];
- char * enc = key;
-
-- // header and codes
-- fprintf(f2, "%s", (key ? MAGIC_ENCRYPTED : MAGIC)); // 3-byte HEADER
-+
-+ fprintf(f2, "%s", (key ? MAGIC_ENCRYPTED : MAGIC));
- cl = (unsigned char) (n & 0x00ff);
- ch = (unsigned char) (n >> 8);
- if (key) {
- unsigned char cs;
- for (cs = 0; *enc; enc++) cs ^= *enc;
-- fprintf(f2, "%c", cs); // 1-byte check sum
-+ fprintf(f2, "%c", cs);
- enc = key;
- ch ^= *enc;
- if ((*(++enc)) == '\0') enc = key;
- cl ^= *enc;
- }
-- fprintf(f2, "%c%c", ch, cl); // upper and lower byte of record count
-+ fprintf(f2, "%c%c", ch, cl);
- for (i = 0; i < BUFSIZE; i++) bitbuf[i] = '\0';
- for (i = 0; i < CODELEN + 1; i++) if (table[i]) {
- unsigned short * d = (unsigned short *) &c;
-@@ -159,7 +159,7 @@
- if (*(++enc) == '\0') enc = key;
- c[1] ^= *enc;
- }
-- fprintf(f2, "%c%c", c[0], c[1]); // 2-character code id
-+ fprintf(f2, "%c%c", c[0], c[1]);
- bits = 0;
- write_bits(f2, bitbuf, &bits, table[i]);
- if (key) {
-@@ -169,11 +169,11 @@
- if (*(++enc) == '\0') enc = key;
- bitbuf[cl] ^= *enc;
- }
-- } else fprintf(f2, "%c", (unsigned char) bits); // 1-byte code length
-- fwrite(bitbuf, sizeof(char), bits/8 + 1, f2); // x-byte code
-+ } else fprintf(f2, "%c", (unsigned char) bits);
-+ fwrite(bitbuf, sizeof(char), bits/8 + 1, f2);
- }
-
-- // file encoding
-+
- bits = 0;
- while((cx[0] = getc(f)) != -1 && (cx[1] = getc(f)) != -1) {
- c[0] = cx[0];
-@@ -180,7 +180,7 @@
- c[1] = cx[1];
- write_bits(f2, bitbuf, &bits, table[*((unsigned short *) c)]);
- }
-- // terminal suffixes
-+
- write_bits(f2, bitbuf, &bits, table[CODELEN]);
- if (bits > 0) fwrite(bitbuf, sizeof(char), bits/8 + 1, f2);
- }
-@@ -201,11 +201,11 @@
- } else pfx = 0;
- }
- if (i > 0 && buf[i - 1] == '\n') {
-- if (j == i) j--; // line duplicate
-+ if (j == i) j--;
- if (j > 29) j = 29;
- c = j;
- if (c == '\t') c = 30;
-- // common suffix
-+
- for (; buf[i - m - 2] == prev[prevlen - m - 2] &&
- m < i - j - 1 && m < 15; m++);
- if (m == 1) m = 0;
-@@ -221,7 +221,7 @@
- *p = buf[k];
- }
- if (m > 0) {
-- *p = m + 31; // 33-46
-+ *p = m + 31;
- p++;
- }
- if (i > 0 && buf[i - 1] == '\n') {
diff --git a/hunspell/hunspell-consts-1.2.8.patch b/hunspell/hunspell-consts-1.2.8.patch
deleted file mode 100644
index 8f8c72796cb4..000000000000
--- a/hunspell/hunspell-consts-1.2.8.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- misc/hunspell-1.2.8/src/hunspell/affixmgr.cxx 2009-05-16 14:33:27.000000000 +0100
-+++ misc/build/hunspell-1.2.8/src/hunspell/affixmgr.cxx 2009-05-16 14:35:52.000000000 +0100
-@@ -3238,7 +3238,7 @@
- }
-
- // return the value of suffix
--const int AffixMgr::have_contclass()
-+int AffixMgr::have_contclass() const
- {
- return havecontclass;
- }
---- misc/hunspell-1.2.8.orig/src/hunspell/affixmgr.hxx 2009-05-16 14:33:27.000000000 +0100
-+++ misc/build/hunspell-1.2.8/src/hunspell/affixmgr.hxx 2009-05-16 14:35:38.000000000 +0100
-@@ -189,7 +189,7 @@
- const char * get_suffix();
- const char * get_derived();
- const char * get_version();
-- const int have_contclass();
-+ int have_contclass() const;
- int get_utf8();
- int get_complexprefixes();
- char * get_suffixed(char );
diff --git a/hunspell/hunspell-solaris.patch b/hunspell/hunspell-solaris.patch
new file mode 100644
index 000000000000..37c5101364b4
--- /dev/null
+++ b/hunspell/hunspell-solaris.patch
@@ -0,0 +1,12 @@
+--- misc/hunspell-1.2.9.orig/src/tools/hunspell.cxx 2010-02-27 23:42:05.000000000 +0000
++++ misc/build/hunspell-1.2.9/src/tools/hunspell.cxx 2010-02-27 23:43:02.000000000 +0000
+@@ -10,6 +10,9 @@
+ #include "hunspell.hxx"
+ #include "csutil.hxx"
+
++// switch off iconv support for tests (fixing Solaris problems)
++#undef HAVE_ICONV
++
+ #ifndef HUNSPELL_EXTRA
+ #define suggest_auto suggest
+ #endif
diff --git a/hunspell/hunspell-stacksmash.patch b/hunspell/hunspell-stacksmash.patch
new file mode 100644
index 000000000000..8765b6d784d3
--- /dev/null
+++ b/hunspell/hunspell-stacksmash.patch
@@ -0,0 +1,28 @@
+--- misc/hunspell-1.2.9/src/hunspell/hunspell.cxx 2010-03-04 10:25:06.000000000 +0000
++++ misc/build/hunspell-1.2.9/src/hunspell/hunspell.cxx 2010-03-04 10:25:38.000000000 +0000
+@@ -1665,7 +1665,7 @@
+ if (!q2) return 0; // bad XML input
+ if (check_xml_par(q, "type=", "analyze")) {
+ int n = 0, s = 0;
+- if (get_xml_par(cw, strchr(q2, '>'), MAXWORDUTF8LEN)) n = analyze(slst, cw);
++ if (get_xml_par(cw, strchr(q2, '>'), MAXWORDUTF8LEN - 1)) n = analyze(slst, cw);
+ if (n == 0) return 0;
+ // convert the result to <code><a>ana1</a><a>ana2</a></code> format
+ for (int i = 0; i < n; i++) s+= strlen((*slst)[i]);
+@@ -1686,13 +1686,13 @@
+ (*slst)[0] = r;
+ return 1;
+ } else if (check_xml_par(q, "type=", "stem")) {
+- if (get_xml_par(cw, strchr(q2, '>'), MAXWORDUTF8LEN)) return stem(slst, cw);
++ if (get_xml_par(cw, strchr(q2, '>'), MAXWORDUTF8LEN - 1)) return stem(slst, cw);
+ } else if (check_xml_par(q, "type=", "generate")) {
+- int n = get_xml_par(cw, strchr(q2, '>'), MAXWORDUTF8LEN);
++ int n = get_xml_par(cw, strchr(q2, '>'), MAXWORDUTF8LEN - 1);
+ if (n == 0) return 0;
+ char * q3 = strstr(q2 + 1, "<word");
+ if (q3) {
+- if (get_xml_par(cw2, strchr(q3, '>'), MAXWORDUTF8LEN)) {
++ if (get_xml_par(cw2, strchr(q3, '>'), MAXWORDUTF8LEN - 1)) {
+ return generate(slst, cw, cw2);
+ }
+ } else {
diff --git a/hunspell/hunspell-wntconfig.patch b/hunspell/hunspell-wntconfig.patch
new file mode 100644
index 000000000000..9b6bc9c3fbb2
--- /dev/null
+++ b/hunspell/hunspell-wntconfig.patch
@@ -0,0 +1,4 @@
+--- misc/hunspell-1.2.9/config.h 2010-02-25 14:38:38.000000000 +0000
++++ misc/build/hunspell-1.2.9/config.h 2010-02-25 14:38:42.000000000 +0000
+@@ -1 +0,0 @@
+-dummy
diff --git a/hunspell/makefile.mk b/hunspell/makefile.mk
index b20e8d135887..f58204a33bc5 100644
--- a/hunspell/makefile.mk
+++ b/hunspell/makefile.mk
@@ -36,17 +36,16 @@ TARGET=hunspell
# --- Files --------------------------------------------------------
-TARFILE_NAME=hunspell-1.2.8
-TARFILE_ROOTDIR=hunspell-1.2.8
-
-#ADDITIONAL_FILES += src/hunspell/makefile.mk
+TARFILE_NAME=hunspell-1.2.9
+TARFILE_MD5=68dd2e8253d9a7930e9fd50e2d7220d0
+ADDITIONAL_FILES+=config.h
PATCH_FILES=\
- hunspell-1.2.8.patch \
- hunspell-consts-1.2.8.patch # hunspell#2064983
+ hunspell-wntconfig.patch \
+ hunspell-solaris.patch \
+ hunspell-stacksmash.patch
.IF "$(GUI)"=="UNX"
-#CONFIGURE_DIR=$(BUILD_DIR)
#relative to CONFIGURE_DIR
CONFIGURE_ACTION=$(AUGMENT_LIBRARY_PATH) configure
diff --git a/hwpfilter/source/hwp.map b/hwpfilter/source/hwp.map
deleted file mode 100644
index ac2c3750bfe0..000000000000
--- a/hwpfilter/source/hwp.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/hwpfilter/source/makefile.mk b/hwpfilter/source/makefile.mk
index c059c1ae2ed4..98b00d0618d6 100644
--- a/hwpfilter/source/makefile.mk
+++ b/hwpfilter/source/makefile.mk
@@ -88,7 +88,7 @@ SHL1STDLIBS+= \
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
SHL1LIBS= $(SLB)$/$(TARGET).lib
-SHL1VERSIONMAP = hwp.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
diff --git a/hyphen/makefile.mk b/hyphen/makefile.mk
index dea814e50447..f1aa3806a17c 100644
--- a/hyphen/makefile.mk
+++ b/hyphen/makefile.mk
@@ -37,6 +37,7 @@ TARGET=hyphen
# --- Files --------------------------------------------------------
TARFILE_NAME=hyphen-2.4
+TARFILE_MD5=d0b5af6e408b8d2958f3d83b5244f5e8
ADDITIONAL_FILES += makefile.mk
@@ -73,7 +74,7 @@ BUILD_ACTION=make hyph_en_US.dic
@all:
echo "Nothing to do here."
.ELSE
-BUILD_ACTION=make
+BUILD_ACTION=make && make check
OUT2INC += hyphen.h
.ENDIF
diff --git a/i18npool/source/breakiterator/data/dict.map b/i18npool/source/breakiterator/data/dict.map
index 271ba8b2b83c..ebd4f9185d1f 100644
--- a/i18npool/source/breakiterator/data/dict.map
+++ b/i18npool/source/breakiterator/data/dict.map
@@ -1,4 +1,4 @@
-OOO_1.1 {
+UDK_3_0_0 {
global:
GetVersionInfo;
getDataArea;
diff --git a/i18npool/source/breakiterator/data/dict_word.txt b/i18npool/source/breakiterator/data/dict_word.txt
index 367a82db9e6f..f69f038e7f7e 100644
--- a/i18npool/source/breakiterator/data/dict_word.txt
+++ b/i18npool/source/breakiterator/data/dict_word.txt
@@ -35,7 +35,7 @@ $ALetter = [\u0002 [:Alphabetic:] [:name= COMMERCIAL AT:] [:name= HEBREW PUNCT
$MidLetter = [[:name = APOSTROPHE:] [:name = GRAVE ACCENT:] \u0084 [:name = SOFT HYPHEN:] [:name = MIDDLE DOT:] [:name = GREEK TONOS:] [:name= FULL STOP:]
[:name = HEBREW PUNCTUATION GERSHAYIM:] [:name = DOUBLE VERTICAL LINE:] [:name = LEFT SINGLE QUOTATION MARK:]
[:name = RIGHT SINGLE QUOTATION MARK:] [:name = HYPHENATION POINT:] [:name = PRIME:]
- [:name = HYPHEN-MINUS:] [:name = EN DASH:] [:name = EM DASH:] ];
+ [:name = HYPHEN-MINUS:] ];
$SufixLetter = [:name= FULL STOP:];
diff --git a/i18npool/source/breakiterator/data/dict_word_prepostdash.txt b/i18npool/source/breakiterator/data/dict_word_prepostdash.txt
index 1bf94451fae2..0a60cc5d4924 100644
--- a/i18npool/source/breakiterator/data/dict_word_prepostdash.txt
+++ b/i18npool/source/breakiterator/data/dict_word_prepostdash.txt
@@ -27,7 +27,7 @@ $Hangul = [:Script = HANGUL:];
# list of dashes or hyphens that should be accepted as part of the word if a single one of these
# pre- or postfixes a word. E.g. in German: "Arbeits-" or "-nehmer" where that hyphen needs to
# be part of the word in order to have it properly spell checked etc.
-$PrePostDashHyphen = [ [:name = HYPHEN-MINUS:] [:name = EN DASH:] [:name = EM DASH:] ];
+$PrePostDashHyphen = [ [:name = HYPHEN-MINUS:] ];
$ALetter = [\u0002 [:Alphabetic:] [:name= COMMERCIAL AT:] [:name= HEBREW PUNCTUATION GERESH:]
@@ -41,7 +41,7 @@ $ALetter = [\u0002 [:Alphabetic:] [:name= COMMERCIAL AT:] [:name= HEBREW PUNCT
$MidLetter = [[:name = APOSTROPHE:] [:name = GRAVE ACCENT:] \u0084 [:name = SOFT HYPHEN:] [:name = MIDDLE DOT:] [:name = GREEK TONOS:] [:name= FULL STOP:]
[:name = HEBREW PUNCTUATION GERSHAYIM:] [:name = DOUBLE VERTICAL LINE:] [:name = LEFT SINGLE QUOTATION MARK:]
[:name = RIGHT SINGLE QUOTATION MARK:] [:name = HYPHENATION POINT:] [:name = PRIME:]
- [:name = HYPHEN-MINUS:] [:name = EN DASH:] [:name = EM DASH:] ];
+ [:name = HYPHEN-MINUS:] ];
$SufixLetter = [:name= FULL STOP:];
diff --git a/i18npool/source/collator/data/collator_data.map b/i18npool/source/collator/data/collator_data.map
index 09f298912ee9..412635f19eed 100644
--- a/i18npool/source/collator/data/collator_data.map
+++ b/i18npool/source/collator/data/collator_data.map
@@ -1,4 +1,4 @@
-OOO_1.1 {
+UDK_3_0_0 {
global:
GetVersionInfo;
get_zh_charset;
diff --git a/i18npool/source/indexentry/data/index_data.map b/i18npool/source/indexentry/data/index_data.map
index b9add8b3a6f8..30d03853d6ad 100644
--- a/i18npool/source/indexentry/data/index_data.map
+++ b/i18npool/source/indexentry/data/index_data.map
@@ -1,4 +1,4 @@
-OOO_1.1 {
+UDK_3_0_0 {
global:
GetVersionInfo;
get_indexdata_ko_dict;
diff --git a/i18npool/source/localedata/data/localedata_en.map b/i18npool/source/localedata/data/localedata_en.map
index 10e5a998c932..ab13f033745c 100644
--- a/i18npool/source/localedata/data/localedata_en.map
+++ b/i18npool/source/localedata/data/localedata_en.map
@@ -1,4 +1,4 @@
-OOO_1.1 {
+UDK_3_0_0 {
global:
GetVersionInfo;
getAllCalendars_en_AU;
diff --git a/i18npool/source/localedata/data/localedata_es.map b/i18npool/source/localedata/data/localedata_es.map
index edcdd4e153e3..7743539232a6 100644
--- a/i18npool/source/localedata/data/localedata_es.map
+++ b/i18npool/source/localedata/data/localedata_es.map
@@ -1,4 +1,4 @@
-OOO_1.1 {
+UDK_3_0_0 {
global:
GetVersionInfo;
getAllCalendars_es_AR;
diff --git a/i18npool/source/localedata/data/localedata_euro.map b/i18npool/source/localedata/data/localedata_euro.map
index bc93cbfc5d89..130a3c5a249f 100644
--- a/i18npool/source/localedata/data/localedata_euro.map
+++ b/i18npool/source/localedata/data/localedata_euro.map
@@ -1,4 +1,4 @@
-OOO_1.1 {
+UDK_3_0_0 {
global:
GetVersionInfo;
getAllCalendars_ast_ES;
diff --git a/i18npool/source/localedata/data/localedata_others.map b/i18npool/source/localedata/data/localedata_others.map
index 6857e29ce5db..fd9e13cfb779 100644
--- a/i18npool/source/localedata/data/localedata_others.map
+++ b/i18npool/source/localedata/data/localedata_others.map
@@ -1,4 +1,4 @@
-OOO_1.1 {
+UDK_3_0_0 {
global:
getAllCalendars_af_NA;
getAllCalendars_af_ZA;
diff --git a/i18npool/source/search/i18nsearch.map b/i18npool/source/search/i18nsearch.map
deleted file mode 100644
index 02fe32ac5839..000000000000
--- a/i18npool/source/search/i18nsearch.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
-global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
-local:
- *;
-};
diff --git a/i18npool/source/search/makefile.mk b/i18npool/source/search/makefile.mk
index 0a0d804c5c06..aed976edd896 100644
--- a/i18npool/source/search/makefile.mk
+++ b/i18npool/source/search/makefile.mk
@@ -68,7 +68,7 @@ SHL1STDLIBS= \
$(I18NREGEXPLIB)
SHL1DEPN= makefile.mk
-SHL1VERSIONMAP= i18nsearch.map
+SHL1VERSIONMAP= $(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
diff --git a/i18npool/source/textconversion/data/textconv_dict.map b/i18npool/source/textconversion/data/textconv_dict.map
index 03f9073c5d86..afd873b6f38e 100644
--- a/i18npool/source/textconversion/data/textconv_dict.map
+++ b/i18npool/source/textconversion/data/textconv_dict.map
@@ -1,4 +1,4 @@
-OOO_1.1 {
+UDK_3_0_0 {
global:
GetVersionInfo;
getHangul2HanjaData;
diff --git a/i18npool/util/i18npool.map b/i18npool/util/i18npool.map
deleted file mode 100644
index 02fe32ac5839..000000000000
--- a/i18npool/util/i18npool.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
-global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
-local:
- *;
-};
diff --git a/i18npool/util/makefile.mk b/i18npool/util/makefile.mk
index 5bf520eaad4d..d9b87d19e6ca 100644
--- a/i18npool/util/makefile.mk
+++ b/i18npool/util/makefile.mk
@@ -60,7 +60,7 @@ SHL1IMPLIB= i$(SHL1TARGET)
SHL1DEPN= makefile.mk \
$(SLB)/i18nisolang$(ISOLANG_MAJOR)$(COMID).lib
-SHL1VERSIONMAP=$(PRJNAME).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/icc/makefile.mk b/icc/makefile.mk
index bdf9f1326085..87ebf3aeb577 100644
--- a/icc/makefile.mk
+++ b/icc/makefile.mk
@@ -37,6 +37,7 @@ TARGET=icc
# --- Files --------------------------------------------------------
TARFILE_NAME=SampleICC-1.3.2
+TARFILE_MD5=fdb27bfe2dbe2e7b57ae194d9bf36bab
PATCH_FILES=$(TARFILE_NAME).patch
CONVERTFILES= \
diff --git a/icu/createmak.cfg b/icu/createmak.cfg
index f2c7c050bdd3..19ef708cca40 100644
--- a/icu/createmak.cfg
+++ b/icu/createmak.cfg
@@ -1,455 +1,452 @@
-[Copy]
-SOURCE=<HEADER>
-InputPath=<INPUTPATH>
-"<TARGET>" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- <<tempfile.bat
- @echo off
- <TARGETPATH>
-<<
-
-[Deps]
-SOURCE=.\<SOURCEFILE>.<EXT>
-"$(INTDIR)\<SOURCEFILE>.obj": $(SOURCE) "$(INTDIR)" <HEADER_LIST>
-
-[Cpp]
-CPP=cl.exe
-[Link]
-LINK32=link.exe
-[CDefs_Common]
-
-[RSC_Template]
-RSC=rc.exe
-RSC_PROJ=/l 0x409 /fo"$(INTDIR)\<FILEOUT>.res" /i "..\common" /d "NDEBUG"
-SOURCE=<FILE>
-"$(INTDIR)\<FILEOUT>.res" : $(SOURCE) "$(INTDIR)"
- $(RSC) $(RSC_PROJ) $(SOURCE)
-
-[General_CFlags]
-CPP_PROJ_INCLUDES=<AddIncDirs>
-CDEFS=<PreProcDefs>
-COPT=-nologo -O2 -Ob2
-CPDBOBJ=-FD -Fo"$(INTDIR)\\" -Fd"$(INTDIR)\\"
-CTOOLSFLAGS=-nologo -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
-CDEF1FLAGS= -D "_WINDOWS" -D "_MBCS"
-
-[CFlags_common]
-CPP_PROJ=-nologo -MD -Za -Zi -W3 -GF -O2 -Ob2 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
-
-[CFlags_i18n]
-CPP_PROJ=-MD -W3 -Oi -Op -GF -FD -GS -Gy -Za -Zi $(EXCEPTIONSWITCH) $(COPT) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/i18n.pch" $(CPDBOBJ) -c
-
-[CFlags_extra_uconv]
-CPP_PROJ=-MD -W3 -Op -GF -Gy $(EXCEPTIONSWITCH) $(COPT) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/uconv.pch" $(CPDBOBJ) -c
-
-[CFlags_layout]
-CPP_PROJ=-Za -GF -Gy -W3 $(EXCEPTIONSWITCH) -O2 $(CPP_PROJ_INCLUDES) $(CDEFS) -D "LAYOUT_EXPORTS" -D "_WINDOWS" -D "_MBCS" -D "_USRDLL" $(CPDBOBJ) -c
-
-[CFlags_io]
-CPP_PROJ=-Za -GF -Gy -W3 $(EXCEPTIONSWITCH) -O2 $(CPP_PROJ_INCLUDES) $(CDEFS) -D "LAYOUT_EXPORTS" -D "_WINDOWS" -D "_MBCS" -D "_USRDLL" $(CPDBOBJ) -c
-
-[CFlags_layoutex]
-CPP_PROJ=-MT -W3 -Op -GF -Gy $(EXCEPTIONSWITCH) $(COPT) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/layoutex.pch" $(CPDBOBJ) -c
-
-[CFlags_stubdata]
-CPP_PROJ=-MD -W3 -Op -GF -Gy -Za $(EXCEPTIONSWITCH) $(COPT) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/stubdata.pch" $(CPDBOBJ) -c
-
-[CFlags_test_cintltst]
-CPP_PROJ=-MT -Za -O2 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
-
-[CFlags_test_intltest]
-CPP_PROJ=-nologo -MT -Za -Zi -Ox -Ob0 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
-
-[CFlags_test_iotest]
-CPP_PROJ=-nologo -MD -Za -Zi -Ox -Ob0 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
-
-[CFlags_test_letest]
-CPP_PROJ=-nologo -MD -Za -Zi -Ox -Ob0 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
-
-[CFlags_tools_ctestfw]
-CPP_PROJ=-nologo -MD -O2 -Op -FD -Za -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/icutest.pch" $(CPDBOBJ) -c
-
-[CFlags_tools_genbrk]
-CPP_PROJ=-nologo -MD -Za -O2 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
-
-[CFlags_tools_gencase]
-CPP_PROJ=-nologo -MD -GF -Za -Zi -W3 $(EXCEPTIONSWITCH) $(COPT) $(CPDBOBJ) -c
-
-[CFlags_tools_genccode]
-CPP_PROJ=-MD -O2 $(CTOOLSFLAGS)
-
-[CFlags_tools_gencmn]
-CPP_PROJ=-O2 -Za $(CTOOLSFLAGS)
-
-[CFlags_tools_genctd]
-CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
-
-[CFlags_tools_gencnval]
-CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
-
-[CFlags_tools_gennames]
-CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
-
-[CFlags_tools_gennorm]
-CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
-
-[CFlags_tools_genpname]
-CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
-
-[CFlags_tools_genprops]
-CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
-
-[CFlags_tools_genrb]
-CPP_PROJ=-Za $(CTOOLSFLAGS)
-
-[CFlags_tools_genrb.derb]
-CPP_PROJ=-Za -GX $(CTOOLSFLAGS)
-
-[CFlags_tools_gensprep]
-CPP_PROJ=-Za $(CTOOLSFLAGS)
-
-[CFlags_tools_gentest]
-CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
-
-[CFlags_tools_genuca]
-CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
-
-[CFlags_tools_gencase]
-CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
-
-[CFlags_tools_genbidi]
-CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
-
-[CFlags_tools_icupkg]
-CPP_PROJ=-O2 $(CTOOLSFLAGS)
-
-[CFlags_tools_icuswap]
-CPP_PROJ=-O2 $(CTOOLSFLAGS)
-
-[CFlags_tools_makeconv]
-CPP_PROJ=-Za $(CTOOLSFLAGS)
-
-[CFlags_tools_pkgdata]
-CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
-
-[CFlags_tools_toolutil]
-CPP_PROJ=-MD -O2 $(CTOOLSFLAGS)
-
-[CommonLinkFlags]
-PDBOUT=/pdb:"<PDBFILE>" /out:"<OUTFILE>"
-COMMONLINKFLAGS=/incremental:no /machine:I386 /nologo $(PDBOUT)
-COMMONLINKFLAGS_CONSOLE=$(COMMONLINKFLAGS) /subsystem:console
-COMMONLINKFLAGS_DLL=$(COMMONLINKFLAGS) /dll
-
-[LinkFlags_common]
-LINK32_FLAGS=icudata.lib kernel32.lib user32.lib advapi32.lib shell32.lib $(COMMONLINKFLAGS_DLL) /base:"0x4a800000" /implib:"$(OUTDIR)\icuuc.lib" /libpath:"..\..\lib"
-
-[LinkFlags_i18n]
-LINK32_FLAGS=icuuc.lib $(COMMONLINKFLAGS_DLL) /base:"0x4a900000" /implib:"$(OUTDIR)\icuin.lib" /libpath:"..\..\lib"
-
-[LinkFlags_extra_uconv]
-LINK32_FLAGS=icuuc.lib icuin.lib uconvmsg.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib" /libpath:"Release"
-
-[LinkFlags_layout]
-LINK32_FLAGS=..\..\lib\icuuc.lib $(COMMONLINKFLAGS_DLL) /implib:"$(OUTDIR)\icule.lib"
-
-[LinkFlags_io]
-LINK32_FLAGS=icuuc.lib icuin.lib $(COMMONLINKFLAGS_DLL) /libpath:"..\..\lib" /implib:"$(OUTDIR)\icuio.lib"
-
-[LinkFlags_layoutex]
-LINK32_FLAGS=..\..\lib\icuuc.lib ..\..\lib\icule.lib $(COMMONLINKFLAGS_DLL) /implib:"$(OUTDIR)\iculx.lib"
-
-[LinkFlags_stubdata]
-LINK32_FLAGS=kernel32.lib user32.lib /nologo /dll /incremental:yes /machine:I386 $(PDBOUT) /implib:"..\..\lib\icudata.lib"
-
-[LinkFlags_test_cintltst]
-LINK32_FLAGS=icuuc.lib icuin.lib icutest.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib\\"
-
-[LinkFlags_test_intltest]
-LINK32_FLAGS=$(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib"
-
-[LinkFlags_test_iotest]
-LINK32_FLAGS=icuuc.lib icuin.lib icutu.lib icuio.lib icutest.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib"
-
-[LinkFlags_test_letest]
-LINK32_FLAGS=icuuc.lib icuin.lib icutu.lib icule.lib iculx.lib icutest.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_ctestfw]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_DLL) /implib:"$(OUTDIR)\icutest.lib" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_genbrk]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_gencmn]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_genctd]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_gencnval]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_genccode]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_gennames]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_gennorm]
-LINK32_FLAGS=icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_genpname]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_genprops]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_genrb]
-LINK32_FLAGS=icuin.lib icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_genrb.derb]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_gensprep]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_gentest]
-LINK32_FLAGS=icuuc.lib icutu.lib icutest.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_genuca]
-LINK32_FLAGS=icuin.lib icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_gencase]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_genbidi]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_icupkg]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_icuswap]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_makeconv]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_pkgdata]
-LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"../toolutil/release" /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
-
-[LinkFlags_tools_toolutil]
-LINK32_FLAGS=kernel32.lib ..\..\..\lib\icuin.lib $(COMMONLINKFLAGS_DLL) /NODEFAULTLIB:libcmt /implib:"$(OUTDIR)\icutu.lib" /libpath:"..\..\..\lib"
-
-[LinkTemplate]
-<OUTFILE> : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
- if exist $@.manifest mt.exe -manifest $@.manifest -outputresource:$@;<MANIFEST>
-
-[AdditionalLinkObjects_common]
- $(OUTDIR)\icudata.lib
-
-[AdditionalLinkObjects_i18n]
- "$(OUTDIR)\icuuc.lib"
-
-[AdditionalLinkObjects_extra_uconv]
- "$(INTDIR)\uconvmsg.lib" \
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icuin.lib"
-
-[AdditionalLinkObjects_layout]
- "$(OUTDIR)\icuuc.lib"
-
-[AdditionalLinkObjects_io]
- "$(OUTDIR)\icuuc.lib"
-
-[AdditionalLinkObjects_layoutex]
- "$(OUTDIR)\icuuc.lib" \
- "$(OUTDIR)\icuin.lib" \
- "$(OUTDIR)\icule.lib"
-
-[AdditionalLinkObjects_test_cintltst]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutest.lib" \
- "..\..\..\lib\icuin.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_test_intltest]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutest.lib" \
- "..\..\..\lib\icuin.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_test_letest]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutest.lib" \
- "..\..\..\lib\icuin.lib" \
- "..\..\..\lib\icule.lib" \
- "..\..\..\lib\iculx.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_genbrk]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_genccode]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_gencmn]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_genctd]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_gencnval]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_gennames]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_gennorm]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_genpname]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_genprops]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_genrb]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icuin.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_genrb.derb]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icudata.lib"
-
-[AdditionalLinkObjects_tools_gensprep]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_gentest]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_genuca]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icuin.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_gencase]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_genbidi]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_icupkg]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_icuswap]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_makeconv]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_pkgdata]
- "..\..\..\lib\icuuc.lib" \
- "..\..\..\lib\icutu.lib"
-
-[AdditionalLinkObjects_tools_toolutil]
- "$(OUTDIR)\icuuc.lib"
-
-
-[Rules]
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-[AllTargetTools]
-ALL : "$(OUTDIR)\<MAKFILE>.exe" ".\<RELPATH>\bin\<MAKFILE>.exe"
-
-[AllInOnePrj]
-<PRJ> :
- cd "$(MAKEDIR)\<PRJDIR>"
- $(MAKE) /$(MAKEFLAGS) /F <PRJMAK> EXCEPTIONSWITCH="$(EXFLAGS)"
- cd "<ALLINONEDIR>"
-
-[HeadSectionCommon]
-NULL=
-!IF "$(CFG)" == "<MAKFILE> - Win32 Release"
-
-OUTDIR=<OUTDIR>
-INTDIR=<INTDIR>
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/\$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/\$(NULL)" mkdir "$(INTDIR)"
-
-!IF "$(CFG)" == "<MAKFILE> - Win32 Release"
-
-ALL : <ALLTARGETS>
-
-[Special_stubdata]
-<OUTFILE> : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- @if not exist "..\..\bin" mkdir "..\..\bin"
- @if not exist "..\..\lib" mkdir "..\..\lib"
- @if not exist "..\..\include" mkdir "..\..\include"
- @if not exist "..\..\include\unicode" mkdir "..\..\include\unicode"
- @if not exist "..\..\include\layout" mkdir "..\..\include\layout"
- echo "File with stubdata build time, used as a dependency to trigger fresh data build, since stubdata dll will overwrite the real one." > .\stubdatabuilt.txt
- $(LINK32) $(LINK32_FLAGS) $(LINK32_OBJS)
-
-[Special_extra_uconv]
-SOURCE=.\makedata.mak
-InputPath=.\makedata.mak
-
-"$(INTDIR)\uconvmsg.lib" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- <<tempfile.bat
- @echo off
- nmake /nologo /f makedata.mak icup=.\..\..\.. CFG=Release
-<<
-
-
-
-[End]
+[Copy]
+SOURCE=<HEADER>
+InputPath=<INPUTPATH>
+"<TARGET>" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ <TARGETPATH>
+
+[Deps]
+SOURCE=.\<SOURCEFILE>.<EXT>
+"$(INTDIR)\<SOURCEFILE>.obj": $(SOURCE) "$(INTDIR)" <HEADER_LIST>
+
+[Cpp]
+CPP=cl.exe
+[Link]
+LINK32=link.exe
+[CDefs_Common]
+
+[RSC_Template]
+RSC=rc.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\<FILEOUT>.res" /i "..\common" /d "NDEBUG"
+SOURCE=<FILE>
+"$(INTDIR)\<FILEOUT>.res" : $(SOURCE) "$(INTDIR)"
+ $(RSC) $(RSC_PROJ) $(SOURCE)
+
+[General_CFlags]
+CPP_PROJ_INCLUDES=<AddIncDirs>
+CDEFS=<PreProcDefs>
+COPT=-nologo -O2 -Ob2
+CPDBOBJ=-FD -Fo"$(INTDIR)\\" -Fd"$(INTDIR)\\"
+CTOOLSFLAGS=-nologo -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+CDEF1FLAGS= -D "_WINDOWS" -D "_MBCS"
+
+[CFlags_common]
+CPP_PROJ=-nologo -MD -Za -Zi -W3 -GF -O2 -Ob2 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+
+[CFlags_i18n]
+CPP_PROJ=-MD -W3 -Oi -Op -GF -FD -GS -Gy -Za -Zi $(EXCEPTIONSWITCH) $(COPT) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/i18n.pch" $(CPDBOBJ) -c
+
+[CFlags_extra_uconv]
+CPP_PROJ=-MD -W3 -Op -GF -Gy $(EXCEPTIONSWITCH) $(COPT) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/uconv.pch" $(CPDBOBJ) -c
+
+[CFlags_layout]
+CPP_PROJ=-Za -GF -Gy -W3 $(EXCEPTIONSWITCH) -O2 $(CPP_PROJ_INCLUDES) $(CDEFS) -D "LAYOUT_EXPORTS" -D "_WINDOWS" -D "_MBCS" -D "_USRDLL" $(CPDBOBJ) -c
+
+[CFlags_io]
+CPP_PROJ=-Za -GF -Gy -W3 $(EXCEPTIONSWITCH) -O2 $(CPP_PROJ_INCLUDES) $(CDEFS) -D "LAYOUT_EXPORTS" -D "_WINDOWS" -D "_MBCS" -D "_USRDLL" $(CPDBOBJ) -c
+
+[CFlags_layoutex]
+CPP_PROJ=-MT -W3 -Op -GF -Gy $(EXCEPTIONSWITCH) $(COPT) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/layoutex.pch" $(CPDBOBJ) -c
+
+[CFlags_stubdata]
+CPP_PROJ=-MD -W3 -Op -GF -Gy -Za $(EXCEPTIONSWITCH) $(COPT) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/stubdata.pch" $(CPDBOBJ) -c
+
+[CFlags_test_cintltst]
+CPP_PROJ=-MT -Za -O2 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+
+[CFlags_test_intltest]
+CPP_PROJ=-nologo -MT -Za -Zi -Ox -Ob0 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+
+[CFlags_test_iotest]
+CPP_PROJ=-nologo -MD -Za -Zi -Ox -Ob0 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+
+[CFlags_test_letest]
+CPP_PROJ=-nologo -MD -Za -Zi -Ox -Ob0 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+
+[CFlags_tools_ctestfw]
+CPP_PROJ=-nologo -MD -O2 -Op -FD -Za -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) -Fp".\Release/icutest.pch" $(CPDBOBJ) -c
+
+[CFlags_tools_genbrk]
+CPP_PROJ=-nologo -MD -Za -O2 -W3 $(EXCEPTIONSWITCH) $(CPP_PROJ_INCLUDES) $(CDEFS) $(CPDBOBJ) -c
+
+[CFlags_tools_gencase]
+CPP_PROJ=-nologo -MD -GF -Za -Zi -W3 $(EXCEPTIONSWITCH) $(COPT) $(CPDBOBJ) -c
+
+[CFlags_tools_genccode]
+CPP_PROJ=-MD -O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_gencmn]
+CPP_PROJ=-O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_genctd]
+CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_gencnval]
+CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_gennames]
+CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_gennorm]
+CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_genpname]
+CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_genprops]
+CPP_PROJ=-MD -O2 -Za $(CTOOLSFLAGS)
+
+[CFlags_tools_genrb]
+CPP_PROJ=-Za $(CTOOLSFLAGS)
+
+[CFlags_tools_genrb.derb]
+CPP_PROJ=-Za -GX $(CTOOLSFLAGS)
+
+[CFlags_tools_gensprep]
+CPP_PROJ=-Za $(CTOOLSFLAGS)
+
+[CFlags_tools_gentest]
+CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_genuca]
+CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_gencase]
+CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_genbidi]
+CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_icupkg]
+CPP_PROJ=-O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_icuswap]
+CPP_PROJ=-O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_makeconv]
+CPP_PROJ=-Za $(CTOOLSFLAGS)
+
+[CFlags_tools_pkgdata]
+CPP_PROJ=-Za -O2 $(CTOOLSFLAGS)
+
+[CFlags_tools_toolutil]
+CPP_PROJ=-MD -O2 $(CTOOLSFLAGS)
+
+[CommonLinkFlags]
+PDBOUT=/pdb:"<PDBFILE>" /out:"<OUTFILE>"
+COMMONLINKFLAGS=/incremental:no /machine:I386 /nologo $(PDBOUT)
+COMMONLINKFLAGS_CONSOLE=$(COMMONLINKFLAGS) /subsystem:console
+COMMONLINKFLAGS_DLL=$(COMMONLINKFLAGS) /dll
+
+[LinkFlags_common]
+LINK32_FLAGS=icudata.lib kernel32.lib user32.lib advapi32.lib shell32.lib $(COMMONLINKFLAGS_DLL) /base:"0x4a800000" /implib:"$(OUTDIR)\icuuc.lib" /libpath:"..\..\lib"
+
+[LinkFlags_i18n]
+LINK32_FLAGS=icuuc.lib $(COMMONLINKFLAGS_DLL) /base:"0x4a900000" /implib:"$(OUTDIR)\icuin.lib" /libpath:"..\..\lib"
+
+[LinkFlags_extra_uconv]
+LINK32_FLAGS=icuuc.lib icuin.lib uconvmsg.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib" /libpath:"Release"
+
+[LinkFlags_layout]
+LINK32_FLAGS=..\..\lib\icuuc.lib $(COMMONLINKFLAGS_DLL) /implib:"$(OUTDIR)\icule.lib"
+
+[LinkFlags_io]
+LINK32_FLAGS=icuuc.lib icuin.lib $(COMMONLINKFLAGS_DLL) /libpath:"..\..\lib" /implib:"$(OUTDIR)\icuio.lib"
+
+[LinkFlags_layoutex]
+LINK32_FLAGS=..\..\lib\icuuc.lib ..\..\lib\icule.lib $(COMMONLINKFLAGS_DLL) /implib:"$(OUTDIR)\iculx.lib"
+
+[LinkFlags_stubdata]
+LINK32_FLAGS=kernel32.lib user32.lib /nologo /dll /incremental:yes /machine:I386 $(PDBOUT) /implib:"..\..\lib\icudata.lib"
+
+[LinkFlags_test_cintltst]
+LINK32_FLAGS=icuuc.lib icuin.lib icutest.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib\\"
+
+[LinkFlags_test_intltest]
+LINK32_FLAGS=$(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib"
+
+[LinkFlags_test_iotest]
+LINK32_FLAGS=icuuc.lib icuin.lib icutu.lib icuio.lib icutest.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib"
+
+[LinkFlags_test_letest]
+LINK32_FLAGS=icuuc.lib icuin.lib icutu.lib icule.lib iculx.lib icutest.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_ctestfw]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_DLL) /implib:"$(OUTDIR)\icutest.lib" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genbrk]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gencmn]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genctd]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gencnval]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genccode]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gennames]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gennorm]
+LINK32_FLAGS=icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genpname]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genprops]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genrb]
+LINK32_FLAGS=icuin.lib icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genrb.derb]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gensprep]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gentest]
+LINK32_FLAGS=icuuc.lib icutu.lib icutest.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genuca]
+LINK32_FLAGS=icuin.lib icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_gencase]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_genbidi]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_icupkg]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_icuswap]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_makeconv]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_pkgdata]
+LINK32_FLAGS=icuuc.lib icutu.lib $(COMMONLINKFLAGS_CONSOLE) /libpath:"../toolutil/release" /libpath:"..\toolutil\Release" /libpath:"..\..\..\lib"
+
+[LinkFlags_tools_toolutil]
+LINK32_FLAGS=kernel32.lib ..\..\..\lib\icuin.lib $(COMMONLINKFLAGS_DLL) /NODEFAULTLIB:libcmt /implib:"$(OUTDIR)\icutu.lib" /libpath:"..\..\..\lib"
+
+[LinkTemplate]
+<OUTFILE> : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+ if exist $@.manifest mt.exe -manifest $@.manifest -outputresource:$@;<MANIFEST>
+
+[AdditionalLinkObjects_common]
+ $(OUTDIR)\icudata.lib
+
+[AdditionalLinkObjects_i18n]
+ "$(OUTDIR)\icuuc.lib"
+
+[AdditionalLinkObjects_extra_uconv]
+ "$(INTDIR)\uconvmsg.lib" \
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icuin.lib"
+
+[AdditionalLinkObjects_layout]
+ "$(OUTDIR)\icuuc.lib"
+
+[AdditionalLinkObjects_io]
+ "$(OUTDIR)\icuuc.lib"
+
+[AdditionalLinkObjects_layoutex]
+ "$(OUTDIR)\icuuc.lib" \
+ "$(OUTDIR)\icuin.lib" \
+ "$(OUTDIR)\icule.lib"
+
+[AdditionalLinkObjects_test_cintltst]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutest.lib" \
+ "..\..\..\lib\icuin.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_test_intltest]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutest.lib" \
+ "..\..\..\lib\icuin.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_test_letest]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutest.lib" \
+ "..\..\..\lib\icuin.lib" \
+ "..\..\..\lib\icule.lib" \
+ "..\..\..\lib\iculx.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genbrk]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genccode]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_gencmn]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genctd]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_gencnval]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_gennames]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_gennorm]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genpname]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genprops]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genrb]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icuin.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genrb.derb]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icudata.lib"
+
+[AdditionalLinkObjects_tools_gensprep]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_gentest]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genuca]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icuin.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_gencase]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_genbidi]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_icupkg]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_icuswap]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_makeconv]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_pkgdata]
+ "..\..\..\lib\icuuc.lib" \
+ "..\..\..\lib\icutu.lib"
+
+[AdditionalLinkObjects_tools_toolutil]
+ "$(OUTDIR)\icuuc.lib"
+
+
+[Rules]
+.c{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.c{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+[AllTargetTools]
+ALL : "$(OUTDIR)\<MAKFILE>.exe" ".\<RELPATH>\bin\<MAKFILE>.exe"
+
+[AllInOnePrj]
+<PRJ> :
+ cd "$(MAKEDIR)\<PRJDIR>"
+ $(MAKE) /$(MAKEFLAGS) /F <PRJMAK> EXCEPTIONSWITCH="$(EXFLAGS)"
+ cd "<ALLINONEDIR>"
+
+[HeadSectionCommon]
+NULL=
+!IF "$(CFG)" == "<MAKFILE> - Win32 Release"
+
+OUTDIR=<OUTDIR>
+INTDIR=<INTDIR>
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/\$(NULL)" mkdir "$(OUTDIR)"
+
+"$(INTDIR)" :
+ if not exist "$(INTDIR)/\$(NULL)" mkdir "$(INTDIR)"
+
+!IF "$(CFG)" == "<MAKFILE> - Win32 Release"
+
+ALL : <ALLTARGETS>
+
+[Special_stubdata]
+<OUTFILE> : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ @if not exist "..\..\bin" mkdir "..\..\bin"
+ @if not exist "..\..\lib" mkdir "..\..\lib"
+ @if not exist "..\..\include" mkdir "..\..\include"
+ @if not exist "..\..\include\unicode" mkdir "..\..\include\unicode"
+ @if not exist "..\..\include\layout" mkdir "..\..\include\layout"
+ echo "File with stubdata build time, used as a dependency to trigger fresh data build, since stubdata dll will overwrite the real one." > .\stubdatabuilt.txt
+ $(LINK32) $(LINK32_FLAGS) $(LINK32_OBJS)
+
+[Special_extra_uconv]
+SOURCE=.\makedata.mak
+InputPath=.\makedata.mak
+
+"$(INTDIR)\uconvmsg.lib" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ <<tempfile.bat
+ @echo off
+ nmake /nologo /f makedata.mak icup=.\..\..\.. CFG=Release
+<<
+
+
+
+[End]
diff --git a/icu/makefile.mk b/icu/makefile.mk
index 8776ada87979..70ff42c1a443 100644
--- a/icu/makefile.mk
+++ b/icu/makefile.mk
@@ -39,8 +39,10 @@ TARGET=so_icu
.IF "$(ICU_MICRO)"!="0"
TARFILE_NAME=icu4c-$(ICU_MAJOR)_$(ICU_MINOR)_$(ICU_MICRO)-src
+TARFILE_MD5=2f6ecca935948f7db92d925d88d0d078
.ELSE
TARFILE_NAME=icu4c-$(ICU_MAJOR)_$(ICU_MINOR)-src
+TARFILE_MD5=
.ENDIF
TARFILE_ROOTDIR=icu
@@ -85,9 +87,8 @@ icu_CFLAGS+=-O $(ARCH_FLAGS) $(EXTRA_CDEFS)
icu_LDFLAGS+=$(EXTRA_LINKFLAGS)
icu_CXXFLAGS+=-O $(ARCH_FLAGS) $(EXTRA_CDEFS)
-BUILD_ACTION_SEP=;
# remove conversion and transliteration data to reduce binary size.
-CONFIGURE_ACTION=rm data/mappings/ucm*.mk data/translit/trn*.mk $(BUILD_ACTION_SEP)
+CONFIGURE_ACTION=rm data/mappings/ucm*.mk data/translit/trn*.mk ;
# until someone introduces SOLARIS 64-bit builds
.IF "$(OS)"=="SOLARIS"
@@ -184,11 +185,6 @@ OUT2BIN= \
$(BUILD_DIR)$/bin$/gencmn.exe
.ELSE
-.IF "$(USE_SHELL)"=="4nt"
-BUILD_ACTION_SEP=^
-.ELSE
-BUILD_ACTION_SEP=;
-.ENDIF # "$(USE_SHELL)"=="4nt"
BUILD_DIR=source
.IF "full_debug" == ""
@@ -254,7 +250,7 @@ OUT2BIN= \
.IF "$(BINARY_PATCH_FILES)"!=""
$(PACKAGE_DIR)$/so_add_binary : $(PACKAGE_DIR)$/$(ADD_FILES_FLAG_FILE)
- cd $(PACKAGE_DIR) && gunzip -c $(BACK_PATH)$(BINARY_PATCH_FILES) | tar $(TAR_EXCLUDE_SWITCH) -xvf -
+ cd $(PACKAGE_DIR) && gunzip -c $(BACK_PATH)$(BINARY_PATCH_FILES) | tar -xvf -
$(TOUCH) $(PACKAGE_DIR)$/so_add_binary
$(PACKAGE_DIR)$/$(CONFIGURE_FLAG_FILE) : $(PACKAGE_DIR)$/so_add_binary
diff --git a/idl/util/svidl.hdb b/idl/util/svidl.hdb
deleted file mode 100644
index d57bedb45373..000000000000
--- a/idl/util/svidl.hdb
+++ /dev/null
@@ -1,25 +0,0 @@
-write "/*************************************************************************"
-write "* SV.HXX"
-write "* __DATE__"
-write "* (c) 1992-1994 STAR DIVISION"
-write "*************************************************************************/"
-write "#ifndef _SVIDL_HXX"
-write "#define _SVIDL_HXX"
-write "#ifndef _PSTREAM_HXX"
-write "#include <pstream.hxx>"
-write "#endif"
-write "#ifndef _SBX_HXX"
-write "#include <sbx.hxx>"
-write "#endif"
-write "#define IDL_COMPILER /*vorlaeufig immer */"
-file char.hxx
-file hash.hxx
-file lex.hxx
-file bastype.hxx
-file basobj.hxx
-file types.hxx
-file object.hxx
-file slot.hxx
-file module.hxx
-file database.hxx
-write "#endif"
diff --git a/idlc/source/makefile.mk b/idlc/source/makefile.mk
index 37da1509afee..879090d15b54 100644
--- a/idlc/source/makefile.mk
+++ b/idlc/source/makefile.mk
@@ -120,11 +120,7 @@ YACCFLAGS+=-v
.INCLUDE : target.mk
$(MISC)$/stripped_scanner.ll : scanner.ll
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)" != "4nt"
tr -d "\015" < scanner.ll > $(MISC)$/stripped_scanner.ll
-.ELSE
- cat scanner.ll > $(MISC)$/stripped_scanner.ll
-.ENDIF
$(MISC)$/scanner.cxx: $(MISC)$/stripped_scanner.ll
flex -o$(MISC)$/scanner.cxx $(MISC)$/stripped_scanner.ll
diff --git a/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf b/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf
index 5468076d22d4..7fcb566af0e3 100644
--- a/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf
+++ b/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf
@@ -284,7 +284,7 @@ en-US = "< &Back"
en-US = "Cancel"
[OOO_CONTROL_124]
-en-US = "Build contributed in collaboration with the community by Sun Microsystems, Inc. For credits, see: http://www.openoffice.org/welcome/credits.html"
+en-US = "Build contributed in collaboration with the community by Oracle. For credits, see: http://www.openoffice.org/welcome/credits.html"
[OOO_CONTROL_125]
en-US = "&Next >"
@@ -668,10 +668,10 @@ en-US = "Microsoft Po&werPoint Presentations"
en-US = "&[ProductName] Writer/Web"
[OOO_CONTROL_274]
-en-US = "Set [DEFINEDPRODUCT] to be the default application for these file types."
+en-US = "Set [DEFINEDPRODUCT] to be the default application for Microsoft Office file types."
[OOO_CONTROL_275]
-en-US = "[ProductName] can be set as the default application to open the following file types. This means, for instance, that if you double click on one of these files, [ProductName] will open it, not the progam that opens it now."
+en-US = "[ProductName] can be set as the default application to open Microsoft Office file types. This means, for instance, that if you double click on one of these files, [ProductName] will open it, not the program that opens it now."
[OOO_CONTROL_276]
en-US = "File types"
diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/ControlC.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/ControlC.idt
index d3b7a6027356..f335fb6828e1 100644
--- a/instsetoo_native/inc_openoffice/windows/msi_templates/ControlC.idt
+++ b/instsetoo_native/inc_openoffice/windows/msi_templates/ControlC.idt
@@ -12,6 +12,12 @@ CustomerInformation SerialNumber Show SERIALNUMSHOW
CustomSetup ChangeFolder Hide Installed
CustomSetup Details Hide Installed
CustomSetup InstallLabel Hide Installed
+FileTypeDialog CheckBox1 Enable &gm_p_Wrt=3 OR ( !gm_p_Wrt=3 AND &gm_p_Wrt=-1 )
+FileTypeDialog CheckBox1 Disable NOT ( &gm_p_Wrt=3 OR ( !gm_p_Wrt=3 AND &gm_p_Wrt=-1 ) )
+FileTypeDialog CheckBox2 Enable &gm_p_Calc=3 OR ( !gm_p_Calc=3 AND &gm_p_Calc=-1 )
+FileTypeDialog CheckBox2 Disable NOT ( &gm_p_Calc=3 OR ( !gm_p_Calc=3 AND &gm_p_Calc=-1 ) )
+FileTypeDialog CheckBox3 Enable &gm_p_Impress=3 OR ( !gm_p_Impress=3 AND &gm_p_Impress=-1 )
+FileTypeDialog CheckBox3 Disable NOT ( &gm_p_Impress=3 OR ( !gm_p_Impress=3 AND &gm_p_Impress=-1 ) )
InstallWelcome Copyright Hide SHOWCOPYRIGHT="No"
InstallWelcome Copyright Show SHOWCOPYRIGHT="Yes"
LicenseAgreement Next Disable AgreeToLicense <> "Yes"
diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt
index 9aff71e515d9..2200f4d28a3a 100644
--- a/instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt
+++ b/instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt
@@ -33,7 +33,7 @@ CustomSetup Details SelectionBrowse DiskSpaceRequirements 1 1
CustomSetup Help SpawnDialog CustomSetupTips 1 1
CustomSetup Next [_IsSetupTypeMin] Custom 1 0
CustomSetup Next NewDialog OutOfSpace OutOfNoRbDiskSpace = 1 0
-CustomSetup Next NewDialog ReadyToInstall OutOfNoRbDiskSpace <> 1 And (LANG_SELECTED = 1) And (APP_SELECTED = 1) 9
+CustomSetup Next NewDialog FileTypeDialog OutOfNoRbDiskSpace <> 1 And (LANG_SELECTED = 1) And (APP_SELECTED = 1) 9
CustomSetup Next DoAction ResetLanguageSelected 1 1
CustomSetup Next DoAction SetLanguageSelected (isMulti <> 1) Or Installed 3
CustomSetup Next DoAction SetLanguageSelected (isMulti = 1) And Not Installed And (LANGUAGECONDITIONINSTALL) 4
@@ -57,8 +57,7 @@ DiskSpaceRequirements OK EndDialog Return 1 0
FilesInUse Exit EndDialog Exit 1 0
FilesInUse Ignore EndDialog Ignore 1 0
FilesInUse Retry EndDialog Retry 1 0
-FileTypeDialog Back NewDialog CustomSetup Installed OR _IsSetupTypeMin = "Custom" 2
-FileTypeDialog Back NewDialog SetupType NOT Installed AND _IsSetupTypeMin <> "Custom" 1
+FileTypeDialog Back NewDialog CustomSetup 1 1
FileTypeDialog Cancel SpawnDialog CancelSetup 1 0
FileTypeDialog Next NewDialog ReadyToInstall 1 0
InstallChangeFolder Cancel EndDialog Return 1 2
@@ -102,7 +101,7 @@ PatchWelcome Cancel SpawnDialog CancelSetup 1 1
PatchWelcome Next EndDialog Return 1 3
PatchWelcome Next Reinstall ALL PATCH And REINSTALL="" 1
PatchWelcome Next ReinstallMode omus PATCH And REINSTALLMODE="" 2
-ReadyToInstall Back NewDialog CustomSetup Installed OR _IsSetupTypeMin = "Custom" 2
+ReadyToInstall Back NewDialog FileTypeDialog Installed OR _IsSetupTypeMin = "Custom" 2
ReadyToInstall Back NewDialog MaintenanceType Installed AND _IsMaintenance = "Reinstall" 3
ReadyToInstall Back NewDialog SetupType NOT Installed AND _IsSetupTypeMin <> "Custom" 1
ReadyToInstall Cancel SpawnDialog CancelSetup 1 0
@@ -148,6 +147,7 @@ SetupType Back NewDialog CustomerInformation 1 0
SetupType Cancel SpawnDialog CancelSetup 1 0
SetupType Next AddLocal ALL _IsSetupTypeMin = "Typical" 0
SetupType Next NewDialog CustomSetup _IsSetupTypeMin = "Custom" 0
-SetupType Next NewDialog ReadyToInstall _IsSetupTypeMin <> "Custom" 0
+SetupType Next [FILETYPEDIALOGUSED] 0 _IsSetupTypeMin <> "Custom" 5
+SetupType Next NewDialog ReadyToInstall _IsSetupTypeMin <> "Custom" 6
SplashBitmap Cancel SpawnDialog CancelSetup 1 0
SplashBitmap Next NewDialog InstallWelcome 1 0
diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt
index c53ccda8d736..3fe0c2062177 100644
--- a/instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt
+++ b/instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt
@@ -2,4 +2,4 @@ Condition Description
s255 l255
WINDOWSENCODINGTEMPLATE LaunchCondition Condition
Privileged OOO_LAUNCH_1
-SETUP_USED=1 Or Installed OOO_LAUNCH_2
+(VersionNT < 600) or (SETUP_USED=1) or Installed OOO_LAUNCH_2 \ No newline at end of file
diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt
index c9f672b2548e..6009edf00041 100644
--- a/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt
+++ b/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt
@@ -21,6 +21,7 @@ DisplayNameMinimal IDPROP_SETUPTYPE_COMPACT
DisplayNameTypical IDPROP_SETUPTYPE_TYPICAL
DWUSINTERVAL 30
ErrorDialog SetupError
+FILETYPEDIALOGUSED 0
InstallChoice AR
INSTALLLEVEL INSTALLLEVELTEMPLATE
ISCHECKFORPRODUCTUPDATES ISCHECKFORPRODUCTUPDATESTEMPLATE
@@ -45,6 +46,9 @@ ReinstallModeText omus
REMOVEOLDPRODUCTS 1
SecureCustomProperties NEWPRODUCTS;SAMEPRODUCTS;OLDPRODUCTS;OLDPRODUCTSSAMEMAJOR;OLDPRODUCTS2;BETAPRODUCTS;STUBPRODUCTS;O2LPENUS;O2LPPT;O2LPRU;O2LPEL;O2LPNL;O2LPFR;O2LPES;O2LPFI;O2LPHU;O2LPCA;O2LPIT;O2LPCS;O2LPSK;O2LPENGB;O2LPDA;O2LPSV;O2LPNO;O2LPPL;O2LPDE;O2LPPTBR;O2LPTH;O2LPET;O2LPJA;O2LPKO;O2LPZHCN;O2LPZHTW;O2LPTR;O2LPHI;O2LPAR;O2LPHE
SetupType Typical
+SELECT_WORD 0
+SELECT_EXCEL 0
+SELECT_POWERPOINT 0
STR_NEW_DISPLAY_NAME OOO_STR_NEW_DISPLAY_NAME
STR_EDIT OOO_STR_EDIT
STR_MS_WORD_DOCUMENT OOO_STR_MS_WORD_DOCUMENT
diff --git a/instsetoo_native/prj/d.lst b/instsetoo_native/prj/d.lst
index 2c5e38571b41..b417858098cc 100644
--- a/instsetoo_native/prj/d.lst
+++ b/instsetoo_native/prj/d.lst
@@ -1,4 +1,4 @@
-mkdir: %COMMON_DEST%\pus%_EXT%
+mkdir: %_DEST%\pus%_EXT%
..\%COMMON_OUTDIR%\bin\hid.lst %COMMON_DEST%\bin%_EXT%\hid.lst
..\%COMMON_OUTDIR%\bin\hid\userfeedback_VCL_names.csv %COMMON_DEST%\bin%_EXT%\userfeedback_VCL_names.csv
-..\%__SRC%\misc\*.update.xml %COMMON_DEST%\pus%_EXT%\*.update.xml \ No newline at end of file
+..\%__SRC%\misc\*.update.xml %_DEST%\pus%_EXT%\*.update.xml
diff --git a/instsetoo_native/util/makefile.mk b/instsetoo_native/util/makefile.mk
index 2ef67e564fd5..09334fdc98c0 100644
--- a/instsetoo_native/util/makefile.mk
+++ b/instsetoo_native/util/makefile.mk
@@ -76,21 +76,6 @@ LOCALPYFILES= \
$(BIN)$/officehelper.py \
$(BIN)$/mailmerge.py
-# PKGFORMAT taken from environment. See possible
-# values below.
-#
-# epm supports the following formats:
-# aix - AIX software distribution
-# bsd - FreeBSD, NetBSD, or OpenBSD software distribution
-# depot or swinstall - HP-UX software distribution
-# deb - Debian software distribution
-# inst or tardist - IRIX software distribution
-# osx - MacOS X software distribution
-# pkg - Solaris software distribution
-# rpm - RedHat software distribution
-# setld - Tru64 (setld) software distribution
-# native - "Native" software distribution for the platform
-# portable - Portable software distribution
xxxx:
echo $(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml
@@ -109,17 +94,18 @@ ALLTAR : updatepack
.ENDIF # "$(UPDATER)"=="" || "$(USE_PACKAGER)"==""
.ENDIF # "$(GUI)"!="WNT" && "$(EPM)"=="NO" && "$(USE_PACKAGER)"==""
+.IF "$(FORCE2ARCHIVE)" == "TRUE"
+PKGFORMAT = archive
+.END
+
.IF "$(MAKETARGETS:e)"!=""
PKGFORMAT+=$(MAKETARGETS:e:s/.//)
.ENDIF # "$(MAKETARGETS:e)"!=""
-.IF "$(PKGFORMAT)"!=""
-.IF "$(FORCE2ARCHIVE)"!=""
-PKGFORMATSWITCH=-format archive
-.ELSE # "$(FORCE2ARCHIVE)"!=""
-PKGFORMATSWITCH=-format xxx
-.ENDIF # "$(FORCE2ARCHIVE)"!=""
-.ENDIF # "$(PKGFORMAT)"!=""
+# Independent of PKGFORMAT, always build a default-language openoffice product
+# also in archive format, so that tests that require an OOo installation (like
+# smoketestoo_native) have one available:
+openoffice_$(defaultlangiso) : $$@.archive
.IF "$(VERBOSE)"=="TRUE"
VERBOSESWITCH=-verbose
@@ -217,124 +203,76 @@ DMGDEPS=$(BIN)$/{osxdndinstall.png DS_Store DS_Store_Langpack}
$(foreach,i,$(alllangiso) {openoffice openofficedev openofficewithjre ooolanguagepack broffice brofficedev brofficewithjre}_$i) : $(DMGDEPS)
.ENDIF # "$(OS)" == "MACOSX"
-.IF "$(PKGFORMAT)"!=""
$(foreach,i,$(alllangiso) openoffice_$i) : $$@{$(PKGFORMAT:^".")}
-.IF "$(MAKETARGETS)"!="" && "$(PKGFORMAT)"!=""
+.IF "$(MAKETARGETS)"!=""
.IF "$(MAKETARGETS:e)"=="" && "$(MAKETARGETS:s/_//)"!="$(MAKETARGETS)"
$(MAKETARGETS) : $$@{$(PKGFORMAT:^".")}
$(MAKETARGETS){$(PKGFORMAT:^".")} : $(ADDDEPS)
.ENDIF # "$(MAKETARGETS:e)"=="" && "$(MAKETARGETS:s/_//)"!="$(MAKETARGETS)"
-.ENDIF # "$(MAKETARGETS)"!="" && "$(PKGFORMAT)"!=""
-openoffice_%{$(PKGFORMAT:^".")} :
-.ELSE # "$(PKGFORMAT)"!=""
-openoffice_% :
-.ENDIF # "$(PKGFORMAT)"!=""
- $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH))
+.ENDIF # "$(MAKETARGETS)"!=""
+openoffice_%{$(PKGFORMAT:^".") .archive} :
+ $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -format $(@:e:s/.//) $(VERBOSESWITCH)
$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
-.IF "$(PKGFORMAT)"!=""
$(foreach,i,$(alllangiso) openofficewithjre_$i) : $$@{$(PKGFORMAT:^".")}
openofficewithjre_%{$(PKGFORMAT:^".")} :
-.ELSE # "$(PKGFORMAT)"!=""
-openofficewithjre_% :
-.ENDIF # "$(PKGFORMAT)"!=""
- $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_wJRE -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH))
+ $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_wJRE -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -format $(@:e:s/.//) $(VERBOSESWITCH)
-.IF "$(PKGFORMAT)"!=""
$(foreach,i,$(alllangiso) openofficedev_$i) : $$@{$(PKGFORMAT:^".")}
openofficedev_%{$(PKGFORMAT:^".")} :
-.ELSE # "$(PKGFORMAT)"!=""
-openofficedev_% :
-.ENDIF # "$(PKGFORMAT)"!=""
- $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_Dev -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH))
+ $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_Dev -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -format $(@:e:s/.//) $(VERBOSESWITCH)
$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product OpenOffice_Dev --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
-.IF "$(PKGFORMAT)"!=""
$(foreach,i,$(alllangiso) ooolanguagepack_$i) : $$@{$(PKGFORMAT:^".")}
ooolanguagepack_%{$(PKGFORMAT:^".")} :
-.ELSE # "$(PKGFORMAT)"!=""
-ooolanguagepack_% :
-.ENDIF # "$(PKGFORMAT)"!=""
- $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSILANGPACKTEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -languagepack $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH))
+ $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSILANGPACKTEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -languagepack -format $(@:e:s/.//) $(VERBOSESWITCH)
-.IF "$(PKGFORMAT)"!=""
$(foreach,i,$(alllangiso) ooodevlanguagepack_$i) : $$@{$(PKGFORMAT:^".")}
ooodevlanguagepack_%{$(PKGFORMAT:^".")} :
-.ELSE # "$(PKGFORMAT)"!=""
-ooodevlanguagepack_% :
-.ENDIF # "$(PKGFORMAT)"!=""
- $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_Dev -u $(OUT) -buildid $(BUILD) -msitemplate $(MSILANGPACKTEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -languagepack $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH))
+ $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_Dev -u $(OUT) -buildid $(BUILD) -msitemplate $(MSILANGPACKTEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -languagepack -format $(@:e:s/.//) $(VERBOSESWITCH)
-.IF "$(PKGFORMAT)"!=""
$(foreach,i,$(alllangiso) sdkoo_$i) : $$@{$(PKGFORMAT:^".")}
sdkoo_%{$(PKGFORMAT:^".")} :
-.ELSE # "$(PKGFORMAT)"!=""
-sdkoo_% :
-.ENDIF # "$(PKGFORMAT)"!=""
- $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_SDK -u $(OUT) -buildid $(BUILD) -msitemplate $(MSISDKOOTEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) -dontstrip $(PKGFORMATSWITCH) $(VERBOSESWITCH))
+ $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_SDK -u $(OUT) -buildid $(BUILD) -msitemplate $(MSISDKOOTEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -dontstrip -format $(@:e:s/.//) $(VERBOSESWITCH)
-.IF "$(PKGFORMAT)"!=""
$(foreach,i,$(alllangiso) sdkoodev_$i) : $$@{$(PKGFORMAT:^".")}
sdkoodev_%{$(PKGFORMAT:^".")} :
-.ELSE # "$(PKGFORMAT)"!=""
-sdkoodev_% :
-.ENDIF # "$(PKGFORMAT)"!=""
- $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_Dev_SDK -u $(OUT) -buildid $(BUILD) -msitemplate $(MSISDKOOTEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) -dontstrip $(PKGFORMATSWITCH) $(VERBOSESWITCH))
+ $(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p OpenOffice_Dev_SDK -u $(OUT) -buildid $(BUILD) -msitemplate $(MSISDKOOTEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -dontstrip -format $(@:e:s/.//) $(VERBOSESWITCH)
-.IF "$(PKGFORMAT)"!=""
$(foreach,i,$(alllangiso) ure_$i) : $$@{$(PKGFORMAT:^".")}
ure_%{$(PKGFORMAT:^".")} :
-.ELSE # "$(PKGFORMAT)"!=""
-ure_% :
-.ENDIF # "$(PKGFORMAT)"!=""
.IF "$(OS)" == "MACOSX"
@echo 'for now, there is no standalone URE for Mac OS X'
.ELSE
$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst \
- -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p URE -u $(OUT) -buildid $(BUILD) $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH)) \
+ -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p URE -u $(OUT) -buildid $(BUILD) -format $(@:e:s/.//) $(VERBOSESWITCH) \
-msitemplate $(MSIURETEMPLATEDIR) \
-msilanguage $(COMMONMISC)$/win_ulffiles
.ENDIF
-.IF "$(PKGFORMAT)"!=""
$(foreach,i,$(alllangiso) broffice_$i) : $$@{$(PKGFORMAT:^".")}
-.IF "$(MAKETARGETS)"!="" && "$(PKGFORMAT)"!=""
+.IF "$(MAKETARGETS)"!=""
.IF "$(MAKETARGETS:e)"=="" && "$(MAKETARGETS:s/_//)"!="$(MAKETARGETS)"
$(MAKETARGETS) : $$@{$(PKGFORMAT:^".")}
$(MAKETARGETS){$(PKGFORMAT:^".")} : $(ADDDEPS)
.ENDIF # "$(MAKETARGETS:e)"=="" && "$(MAKETARGETS:s/_//)"!="$(MAKETARGETS)"
-.ENDIF # "$(MAKETARGETS)"!="" && "$(PKGFORMAT)"!=""
+.ENDIF # "$(MAKETARGETS)"!=""
broffice_%{$(PKGFORMAT:^".")} :
-.ELSE # "$(PKGFORMAT)"!=""
-broffice_% :
-.ENDIF # "$(PKGFORMAT)"!=""
- +$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p BrOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH))
+ +$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p BrOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -format $(@:e:s/.//) $(VERBOSESWITCH)
$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product BrOffice --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
-.IF "$(PKGFORMAT)"!=""
$(foreach,i,$(alllangiso) brofficewithjre_$i) : $$@{$(PKGFORMAT:^".")}
brofficewithjre_%{$(PKGFORMAT:^".")} :
-.ELSE # "$(PKGFORMAT)"!=""
-brofficewithjre_% :
-.ENDIF # "$(PKGFORMAT)"!=""
- +$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p BrOffice_wJRE -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH))
+ +$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p BrOffice_wJRE -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -format $(@:e:s/.//) $(VERBOSESWITCH)
-.IF "$(PKGFORMAT)"!=""
$(foreach,i,$(alllangiso) brofficedev_$i) : $$@{$(PKGFORMAT:^".")}
brofficedev_%{$(PKGFORMAT:^".")} :
-.ELSE # "$(PKGFORMAT)"!=""
-brofficedev_% :
-.ENDIF # "$(PKGFORMAT)"!=""
- +$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p BrOffice_Dev -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH))
+ +$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p BrOffice_Dev -u $(OUT) -buildid $(BUILD) -msitemplate $(MSIOFFICETEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -format $(@:e:s/.//) $(VERBOSESWITCH)
$(PERL) -w $(SOLARENV)$/bin$/gen_update_info.pl --buildid $(BUILD) --arch "$(RTL_ARCH)" --os "$(RTL_OS)" --lstfile $(PRJ)$/util$/openoffice.lst --product BrOffice_Dev --languages $(subst,$(@:s/_/ /:1)_, $(@:b)) $(PRJ)$/util$/update.xml > $(MISC)/$(@:b)_$(RTL_OS)_$(RTL_ARCH)$(@:e).update.xml
-.IF "$(PKGFORMAT)"!=""
$(foreach,i,$(alllangiso) broolanguagepack_$i) : $$@{$(PKGFORMAT:^".")}
broolanguagepack_%{$(PKGFORMAT:^".")} :
-.ELSE # "$(PKGFORMAT)"!=""
-broolanguagepack_% :
-.ENDIF # "$(PKGFORMAT)"!=""
- +$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p BrOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSILANGPACKTEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -languagepack $(subst,xxx,$(@:e:s/.//) $(PKGFORMATSWITCH) $(VERBOSESWITCH))
+ +$(PERL) -w $(SOLARENV)$/bin$/make_installer.pl -f $(PRJ)$/util$/openoffice.lst -l $(subst,$(@:s/_/ /:1)_, $(@:b)) -p BrOffice -u $(OUT) -buildid $(BUILD) -msitemplate $(MSILANGPACKTEMPLATEDIR) -msilanguage $(COMMONMISC)$/win_ulffiles -languagepack -format $(@:e:s/.//) $(VERBOSESWITCH)
.ELSE # "$(alllangiso)"!=""
openoffice:
@@ -343,11 +281,7 @@ openoffice:
.ENDIF # "$(alllangiso)"!=""
.IF "$(LOCALPYFILES)"!=""
-.IF "$(PKGFORMAT)"==""
-$(foreach,i,$(alllangiso) openoffice_$i openofficewithjre_$i openofficedev_$i broffice_$i brofficewithjre_$i brofficedev_$i sdkoo_$i) updatepack : $(LOCALPYFILES) $(BIN)$/cp1251.py $(BIN)$/iso8859_1.py
-.ELSE # "$(PKGFORMAT)"==""
-$(foreach,i,$(alllangiso) openoffice_$i{$(PKGFORMAT:^".")} openofficewithjre_$i{$(PKGFORMAT:^".")} openofficedev_$i{$(PKGFORMAT:^".")} broffice_$i{$(PKGFORMAT:^".")} brofficewithjre_$i{$(PKGFORMAT:^".")} brofficedev_$i{$(PKGFORMAT:^".")} sdkoo_$i{$(PKGFORMAT:^".")}) updatepack : $(LOCALPYFILES) $(BIN)$/cp1251.py $(BIN)$/iso8859_1.py
-.ENDIF # "$(PKGFORMAT)"==""
+$(foreach,i,$(alllangiso) openoffice_$i{$(PKGFORMAT:^".") .archive} openofficewithjre_$i{$(PKGFORMAT:^".")} openofficedev_$i{$(PKGFORMAT:^".")} broffice_$i{$(PKGFORMAT:^".")} brofficewithjre_$i{$(PKGFORMAT:^".")} brofficedev_$i{$(PKGFORMAT:^".")} sdkoo_$i{$(PKGFORMAT:^".")}) updatepack : $(LOCALPYFILES) $(BIN)$/cp1251.py $(BIN)$/iso8859_1.py
.ENDIF # "$(LOCALPYFILES)"!=""
$(BIN)$/%.py : $(SOLARSHAREDBIN)$/pyuno$/%.py
diff --git a/instsetoo_native/util/openoffice.lst b/instsetoo_native/util/openoffice.lst
index abcc2e3f0b32..1dfdeb95321e 100644
--- a/instsetoo_native/util/openoffice.lst
+++ b/instsetoo_native/util/openoffice.lst
@@ -38,6 +38,8 @@ Globals
PACKAGEMAP package_names.txt,package_names_ext.txt
WINDOWSPATCHLEVEL 6
OPENSOURCE 1
+ OOODOWNLOADNAME 1
+ STARTCENTER_LAYOUT_STYLE 0
}
}
}
@@ -137,6 +139,7 @@ OpenOffice_wJRE
PACKAGEREVISION {milestone}
LICENSENAME LGPL
SERVICESPROJEKT 1
+ WITHJREPRODUCT 1
GLOBALFILEGID gid_File_Lib_Vcl
GLOBALPATCHFILEGID gid_File_Txt_Patchfiles
SPELLCHECKERFILE spellchecker_selection.txt
@@ -353,6 +356,7 @@ OpenOffice_Dev_SDK
UREPACKAGEPREFIX ooodev
SOLSUREPACKAGEPREFIX ooodev
REGISTRYLAYERNAME LayerDev
+ DEVELOPMENTPRODUCT 1
PACK_INSTALLED 1
POOLPRODUCT 0
DMG_VOLUMEEXTENSION SDK
@@ -483,6 +487,7 @@ BrOffice_wJRE
PACKAGEREVISION {milestone}
LICENSENAME LGPL
SERVICESPROJEKT 1
+ WITHJREPRODUCT 1
SETSTATICPATH 1
GLOBALFILEGID gid_File_Lib_Vcl
GLOBALPATCHFILEGID gid_File_Txt_Patchfiles
diff --git a/io/source/TextInputStream/makefile.mk b/io/source/TextInputStream/makefile.mk
index 6613c392d60a..3c0cd5c5702d 100644
--- a/io/source/TextInputStream/makefile.mk
+++ b/io/source/TextInputStream/makefile.mk
@@ -40,7 +40,7 @@ SLOFILES= \
$(SLO)$/TextInputStream.obj
SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = tinstrm.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1STDLIBS= \
$(SALLIB) \
diff --git a/io/source/TextInputStream/tinstrm.map b/io/source/TextInputStream/tinstrm.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/io/source/TextInputStream/tinstrm.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/io/source/TextOutputStream/makefile.mk b/io/source/TextOutputStream/makefile.mk
index cf3f09345e17..ad78178f8bfa 100644
--- a/io/source/TextOutputStream/makefile.mk
+++ b/io/source/TextOutputStream/makefile.mk
@@ -41,7 +41,7 @@ SLOFILES= \
$(SLO)$/TextOutputStream.obj
SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = toutstrm.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1STDLIBS= \
$(SALLIB) \
diff --git a/io/source/TextOutputStream/toutstrm.map b/io/source/TextOutputStream/toutstrm.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/io/source/TextOutputStream/toutstrm.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/io/source/acceptor/acceptor.map b/io/source/acceptor/acceptor.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/io/source/acceptor/acceptor.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/io/source/acceptor/makefile.mk b/io/source/acceptor/makefile.mk
index 5a33ca3f093d..3da3fbe18913 100644
--- a/io/source/acceptor/makefile.mk
+++ b/io/source/acceptor/makefile.mk
@@ -52,7 +52,7 @@ SLOFILES= \
$(SLO)$/acc_socket.obj
SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = acceptor.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1RPATH=URELIB
SHL1STDLIBS= \
diff --git a/io/source/connector/connectr.map b/io/source/connector/connectr.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/io/source/connector/connectr.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/io/source/connector/makefile.mk b/io/source/connector/makefile.mk
index de3e922846db..7f12b850f1e3 100644
--- a/io/source/connector/makefile.mk
+++ b/io/source/connector/makefile.mk
@@ -52,7 +52,7 @@ SLOFILES= \
$(SLO)$/ctr_socket.obj
SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = connectr.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1RPATH=URELIB
SHL1STDLIBS= \
diff --git a/io/source/stm/makefile.mk b/io/source/stm/makefile.mk
index ff16516bb4e1..a6a163eca4e2 100644
--- a/io/source/stm/makefile.mk
+++ b/io/source/stm/makefile.mk
@@ -53,7 +53,7 @@ SLOFILES = $(SLO)$/opipe.obj\
$(SLO)$/opump.obj
SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = stm.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1STDLIBS= \
$(SALLIB) \
diff --git a/io/source/stm/stm.map b/io/source/stm/stm.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/io/source/stm/stm.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java
index b9fa8f3af237..fa1ce919245c 100755
--- a/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java
+++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java
@@ -163,6 +163,7 @@ public class LinuxInstaller extends Installer {
File completePackage = new File(packagePath, packageName);
packageName = completePackage.getPath();
+ packageName = "\"" + packageName + "\""; // Quoting is necessary, if the path the the packages contains white spaces.
if ( completePackage.exists() ) {
String relocations = helper.getRelocationString(packageData, packageName);
diff --git a/javaunohelper/source/javaunohelper.map b/javaunohelper/source/javaunohelper.map
index a7bf6b0721af..dcbe0506ae77 100644
--- a/javaunohelper/source/javaunohelper.map
+++ b/javaunohelper/source/javaunohelper.map
@@ -1,4 +1,4 @@
-UDK_3.1 {
+UDK_3_0_0 {
global:
Java_com_sun_star_comp_helper_SharedLibraryLoader_component_1writeInfo;
Java_com_sun_star_comp_helper_SharedLibraryLoader_component_1getFactory;
diff --git a/jfreereport/download/core.zip b/jfreereport/download/core.zip
deleted file mode 100644
index 813d87d49573..000000000000
--- a/jfreereport/download/core.zip
+++ /dev/null
Binary files differ
diff --git a/jfreereport/download/flute.zip b/jfreereport/download/flute.zip
deleted file mode 100644
index ff1ade906ad4..000000000000
--- a/jfreereport/download/flute.zip
+++ /dev/null
Binary files differ
diff --git a/jfreereport/download/libbase.zip b/jfreereport/download/libbase.zip
deleted file mode 100644
index 88f555d9ef7c..000000000000
--- a/jfreereport/download/libbase.zip
+++ /dev/null
Binary files differ
diff --git a/jfreereport/download/libfonts.zip b/jfreereport/download/libfonts.zip
deleted file mode 100644
index 91fbac87b3a6..000000000000
--- a/jfreereport/download/libfonts.zip
+++ /dev/null
Binary files differ
diff --git a/jfreereport/download/libformula.zip b/jfreereport/download/libformula.zip
deleted file mode 100644
index c819c963767e..000000000000
--- a/jfreereport/download/libformula.zip
+++ /dev/null
Binary files differ
diff --git a/jfreereport/download/liblayout.zip b/jfreereport/download/liblayout.zip
deleted file mode 100644
index 1311fae496f5..000000000000
--- a/jfreereport/download/liblayout.zip
+++ /dev/null
Binary files differ
diff --git a/jfreereport/download/libloader.zip b/jfreereport/download/libloader.zip
deleted file mode 100644
index 505329e0b6ea..000000000000
--- a/jfreereport/download/libloader.zip
+++ /dev/null
Binary files differ
diff --git a/jfreereport/download/librepository.zip b/jfreereport/download/librepository.zip
deleted file mode 100644
index 9541579941cf..000000000000
--- a/jfreereport/download/librepository.zip
+++ /dev/null
Binary files differ
diff --git a/jfreereport/download/libserializer.zip b/jfreereport/download/libserializer.zip
deleted file mode 100644
index 94823b28e614..000000000000
--- a/jfreereport/download/libserializer.zip
+++ /dev/null
Binary files differ
diff --git a/jfreereport/download/libxml.zip b/jfreereport/download/libxml.zip
deleted file mode 100644
index be5cecb2490e..000000000000
--- a/jfreereport/download/libxml.zip
+++ /dev/null
Binary files differ
diff --git a/jfreereport/download/sacjava-1.3.zip b/jfreereport/download/sacjava-1.3.zip
deleted file mode 100644
index 20eb8012eb2a..000000000000
--- a/jfreereport/download/sacjava-1.3.zip
+++ /dev/null
Binary files differ
diff --git a/jfreereport/java/flute/makefile.mk b/jfreereport/java/flute/makefile.mk
index bd85abb96b84..9444d75fb692 100644
--- a/jfreereport/java/flute/makefile.mk
+++ b/jfreereport/java/flute/makefile.mk
@@ -40,6 +40,7 @@ VERSION=-1.3.0
# --- Files --------------------------------------------------------
.IF "$(L10N_framework)"==""
TARFILE_NAME=$(TARGET)
+TARFILE_MD5=f3e2febd267c8e4b13df00dac211dd6d
TARFILE_ROOTDIR=$(TARGET)
# PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch
# CONVERTFILES=build.xml
diff --git a/jfreereport/java/jfreereport/makefile.mk b/jfreereport/java/jfreereport/makefile.mk
index c8352e4f477a..b527d28973e9 100644
--- a/jfreereport/java/jfreereport/makefile.mk
+++ b/jfreereport/java/jfreereport/makefile.mk
@@ -40,6 +40,7 @@ VERSION=-0.9.2
# --- Files --------------------------------------------------------
.IF "$(L10N_framework)"==""
TARFILE_NAME=core
+TARFILE_MD5=d4c4d91ab3a8e52a2e69d48d34ef4df4
TARFILE_ROOTDIR=core
PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch
# ADDITIONAL_FILES=MANIFEST.MF
diff --git a/jfreereport/java/libbase/makefile.mk b/jfreereport/java/libbase/makefile.mk
index 047ca0ff012a..1cbfc11de0da 100644
--- a/jfreereport/java/libbase/makefile.mk
+++ b/jfreereport/java/libbase/makefile.mk
@@ -39,6 +39,7 @@ VERSION=-1.0.0
# --- Files --------------------------------------------------------
TARFILE_NAME=$(TARGET)
+TARFILE_MD5=8ea307d71d11140574bfb9fcc2487e33
TARFILE_ROOTDIR=$(TARGET)
# PATCH_FILES=$(PRJ)$/patches$/libbase.patch
diff --git a/jfreereport/java/libfonts/makefile.mk b/jfreereport/java/libfonts/makefile.mk
index 7db3570933dd..f59b3cc0963f 100644
--- a/jfreereport/java/libfonts/makefile.mk
+++ b/jfreereport/java/libfonts/makefile.mk
@@ -40,6 +40,7 @@ VERSION=-1.0.0
# --- Files --------------------------------------------------------
.IF "$(L10N_framework)"==""
TARFILE_NAME=$(TARGET)
+TARFILE_MD5=f7925ba8491fe570e5164d2c72791358
TARFILE_ROOTDIR=$(TARGET)
PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch
CONVERTFILES=build.xml
diff --git a/jfreereport/java/libformula/makefile.mk b/jfreereport/java/libformula/makefile.mk
index 78af09d38b7b..4372ce2b764d 100644
--- a/jfreereport/java/libformula/makefile.mk
+++ b/jfreereport/java/libformula/makefile.mk
@@ -40,6 +40,7 @@ VERSION=-0.2.0
# --- Files --------------------------------------------------------
.IF "$(L10N_framework)"==""
TARFILE_NAME=$(TARGET)
+TARFILE_MD5=d1a3205871c3c52e8a50c9f18510ae12
TARFILE_ROOTDIR=$(TARGET)
PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch
CONVERTFILES=build.xml \
diff --git a/jfreereport/java/liblayout/makefile.mk b/jfreereport/java/liblayout/makefile.mk
index 9413ad56e435..0340e43ccbd7 100644
--- a/jfreereport/java/liblayout/makefile.mk
+++ b/jfreereport/java/liblayout/makefile.mk
@@ -40,6 +40,7 @@ VERSION=-0.2.9
# --- Files --------------------------------------------------------
.IF "$(L10N_framework)"==""
TARFILE_NAME=$(TARGET)
+TARFILE_MD5=79600e696a98ff95c2eba976f7a8dfbb
TARFILE_ROOTDIR=$(TARGET)
PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch
CONVERTFILES=build.xml
diff --git a/jfreereport/java/libloader/makefile.mk b/jfreereport/java/libloader/makefile.mk
index 82a3b9afa6c4..ce97b402d1dd 100644
--- a/jfreereport/java/libloader/makefile.mk
+++ b/jfreereport/java/libloader/makefile.mk
@@ -40,6 +40,7 @@ VERSION=-1.0.0
# --- Files --------------------------------------------------------
TARFILE_NAME=$(TARGET)
+TARFILE_MD5=a06a496d7a43cbdc35e69dbe678efadb
TARFILE_ROOTDIR=$(TARGET)
PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch
CONVERTFILES=build.xml
diff --git a/jfreereport/java/librepository/makefile.mk b/jfreereport/java/librepository/makefile.mk
index 21df8971ce4d..e11639c7ae62 100644
--- a/jfreereport/java/librepository/makefile.mk
+++ b/jfreereport/java/librepository/makefile.mk
@@ -40,6 +40,7 @@ VERSION=-1.0.0
# --- Files --------------------------------------------------------
TARFILE_NAME=$(TARGET)
+TARFILE_MD5=dbb3757275dc5cc80820c0b4dd24ed95
TARFILE_ROOTDIR=$(TARGET)
PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch
CONVERTFILES=build.xml
diff --git a/jfreereport/java/libserializer/makefile.mk b/jfreereport/java/libserializer/makefile.mk
index f3d1810eda02..12a301edc9e6 100644
--- a/jfreereport/java/libserializer/makefile.mk
+++ b/jfreereport/java/libserializer/makefile.mk
@@ -40,6 +40,7 @@ VERSION=-1.0.0
# --- Files --------------------------------------------------------
.IF "$(L10N_framework)"==""
TARFILE_NAME=$(TARGET)
+TARFILE_MD5=5aba06ede2daa9f2c11892fbd7bc3057
TARFILE_ROOTDIR=$(TARGET)
PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch
CONVERTFILES=build.xml
diff --git a/jfreereport/java/libxml/makefile.mk b/jfreereport/java/libxml/makefile.mk
index 165d184760fd..d0c8bb427103 100644
--- a/jfreereport/java/libxml/makefile.mk
+++ b/jfreereport/java/libxml/makefile.mk
@@ -40,6 +40,7 @@ VERSION=-1.0.0
# --- Files --------------------------------------------------------
.IF "$(L10N_framework)"==""
TARFILE_NAME=$(TARGET)
+TARFILE_MD5=67b42915c8432abf0a922438f00860a2
TARFILE_ROOTDIR=$(TARGET)
PATCH_FILES=$(PRJ)$/patches$/$(TARGET).patch
CONVERTFILES=build.xml
diff --git a/jfreereport/java/sac/makefile.mk b/jfreereport/java/sac/makefile.mk
index 4a50ab0456a9..44cb28435142 100644
--- a/jfreereport/java/sac/makefile.mk
+++ b/jfreereport/java/sac/makefile.mk
@@ -45,6 +45,7 @@ ANT_BUILDFILE=build.xml
# --- Files --------------------------------------------------------
TARFILE_NAME=sacjava-1.3
+TARFILE_MD5=39bb3fcea1514f1369fcfc87542390fd
TARFILE_ROOTDIR=$(TARGET)
diff --git a/jpeg/makefile.mk b/jpeg/makefile.mk
index 0f5f5e0aba64..b2553dd1b4f2 100644
--- a/jpeg/makefile.mk
+++ b/jpeg/makefile.mk
@@ -43,6 +43,7 @@ all:
# --- Files --------------------------------------------------------
TARFILE_NAME=jpeg-6b
+TARFILE_MD5=dbd5f3b47ed13132f04c685d608a7547
PATCH_FILES=jpeg-6b.patch
ADDITIONAL_FILES=makefile.mk \
diff --git a/jvmaccess/util/cc5_solaris_sparc.map b/jvmaccess/util/cc5_solaris_sparc.map
index e2cb767dc65e..bb59a648f4c5 100644
--- a/jvmaccess/util/cc5_solaris_sparc.map
+++ b/jvmaccess/util/cc5_solaris_sparc.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-UDK_3.1 {
+UDK_3_0_0 {
global:
# jvmaccess/virtualmachine.hxx:
__1cJjvmaccessOVirtualMachineLAttachGuardRCreationException2t6M_v_; # jvmaccess::VirtualMachine::AttachGuard::CreationException::CreationException()
@@ -52,7 +52,7 @@ UDK_3.2 {
__1cJjvmaccesscQ__RTTI__1CpnJjvmaccessOVirtualMachineLAttachGuardRCreationException__; # RTTI for jvmaccess::VirtualMachine::AttachGuard::CreationException *
__1cJjvmaccesscR__RTTI__1CpknJjvmaccessOVirtualMachineLAttachGuardRCreationException__; # RTTI for jvmaccess::VirtualMachine::AttachGuard::CreationException const *
__1cJjvmaccessOVirtualMachine2t5B6MpnHJavaVM__ibpnHJNIEnv___v_; # jvmaccess::VirtualMachine::VirtualMachine(JavaVM *, int, bool, JNIEnv *) #Nvariant 1
-} UDK_3.1;
+} UDK_3_0_0;
UDK_3.3 {
global:
diff --git a/jvmaccess/util/gcc3.map b/jvmaccess/util/gcc3.map
index 330651a1cf6e..707645d2c829 100644
--- a/jvmaccess/util/gcc3.map
+++ b/jvmaccess/util/gcc3.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-UDK_3.1 {
+UDK_3_0_0 {
global:
# jvmaccess/virtualmachine.hxx:
_ZN9jvmaccess14VirtualMachine11AttachGuard17CreationExceptionC1Ev; # jvmaccess::VirtualMachine::AttachGuard::CreationException::CreationException()
@@ -59,7 +59,7 @@ UDK_3.2 {
# We put the '*' at the beginning because its unlikely that these symbols will ever be a postfix of another symbol.
_*ZN9jvmaccess14VirtualMachineC1EP10_Jv_JavaVMibP10_Jv_JNIEnv; # jvmaccess::VirtualMachine::VirtualMachine(JavaVM *, int, bool, JNIEnv *)
_*ZN9jvmaccess14VirtualMachineC2EP10_Jv_JavaVMibP10_Jv_JNIEnv; # jvmaccess::VirtualMachine::VirtualMachine(JavaVM *, int, bool, JNIEnv *)
-} UDK_3.1;
+} UDK_3_0_0;
UDK_3.3 {
global:
diff --git a/jvmaccess/util/msvc_win32_intel.map b/jvmaccess/util/msvc_win32_intel.map
index fd148b1892ba..4620b1caa940 100644
--- a/jvmaccess/util/msvc_win32_intel.map
+++ b/jvmaccess/util/msvc_win32_intel.map
@@ -1,4 +1,4 @@
-UDK_3.1 {
+UDK_3_0_0 {
global:
# jvmaccess/virtualmachine.hxx:
??0CreationException@AttachGuard@VirtualMachine@jvmaccess@@QAE@XZ; # jvmaccess::VirtualMachine::AttachGuard::CreationException::CreationException()
@@ -15,7 +15,7 @@ UDK_3.1 {
UDK_3.2 {
global:
-} UDK_3.1;
+} UDK_3_0_0;
UDK_3.3 {
global:
diff --git a/l10ntools/inc/wrdtrans.hxx b/l10ntools/inc/wrdtrans.hxx
deleted file mode 100644
index b0b65526a2a2..000000000000
--- a/l10ntools/inc/wrdtrans.hxx
+++ /dev/null
@@ -1,87 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-/*
-
-// OBSOLETE //
-
-#ifndef TX3_WRDTRANS_HXX
-#define TX3_WRDTRANS_HXX
-
-// USED
- // Base Classes
- // Components
-class WordTransTree;
-class WordTrans_ErrorList;
- // Parameters
-#include <tools/string.hxx>
-
-class WordTransformer
-{
- public:
- enum E_Error
- {
- OK = 0,
- ERROR_NO_WORDLIST,
- ERROR_HOTKEY,
- ERROR_OUTPUTSTRING_TOO_LONG,
- OTHER_ERROR
- };
-
- // LIFECYCLE
- WordTransformer();
- ~WordTransformer();
- BOOL LoadWordlist( /// @return False, if file could not be read, or there is already a wordlist loaded.
- const ByteString & i_sWordlist_Filepath,
- CharSet i_nWorkingCharSet = RTL_TEXTENCODING_MS_1252,
- CharSet i_nFileCharSet = RTL_TEXTENCODING_MS_1252 );
-
- // OPERATIONS
- USHORT Transform( /// @return The number of errors during transforming.
- ByteString & io_sText);
-
- // INQUIRY
- USHORT NrOfErrors() const;
- E_Error GetError(
- USHORT i_nNr, /// [0 .. NrOfErrors()-1], other values return an empty error.
- ByteString * o_pErrorText = 0) const; /// If o_pErrorText != 0, the String is filled with the description of the error.
-
- private:
- // SERVICE FUNCTION
- void CreateError();
-
- // DATA
- WordTransTree * dpTransformer;
- WordTrans_ErrorList *
- dpErrors;
-};
-
-
-
-#endif
-
-
-*/
diff --git a/l10ntools/java/receditor/java/transex3/model/SdfString.java b/l10ntools/java/receditor/java/transex3/model/SdfString.java
index 7419aeb5578b..7eec2151b7c3 100644
--- a/l10ntools/java/receditor/java/transex3/model/SdfString.java
+++ b/l10ntools/java/receditor/java/transex3/model/SdfString.java
@@ -97,32 +97,7 @@ public class SdfString {
public void setModuleName(String modulename) {
this.modulename = modulename;
}
- /*
- public String getRealFileName(){
- //String srcroot = "U:\\cws01\\l10ncleanup\\SRC680\\src.m213";//java.lang.System.getProperty( "SOLARSRC");
- //String isWindows = "4nt";//java.lang.System.getProperty( "USE_SHELL");
- String srcroot = java.lang.System.getProperty( "SOLARSRC" );
- String isWindows = java.lang.System.getProperty( "USE_SHELL" );
- //System.out.println("srcroot="+srcroot+" isWindows="+isWindows );
- //if( true ) return;
- //String relpath = sourceString.getFileId().substring( sourceString.getFileId().lastIndexOf("\\")
- // , sourceString.getFileId().length() );
- String filename;
- if( isWindows != null && isWindows.compareTo( "4nt") == 0 )
- {
- filename = srcroot + "\\" + //sourceString.getProject() + "\\" +
- sourceString.getFileId() +".recommand";
- }
- else
- {
- String filepart = sourceString.getFileId();
- filepart = filepart.replaceAll( "\\\\" , "/" );
- filename = srcroot + "/" + //sourceString.getProject() + "//" +
- filepart +".recommand";
- }
- return filename;
- }*/
public String getRealFileName(){
String filepart = sourceString.getFileId();
filepart = filepart.replaceAll( "\\\\" , "_" );
diff --git a/l10ntools/scripts/fast_merge.pl b/l10ntools/scripts/fast_merge.pl
index e2980fafddda..5dc63cf95d79 100644
--- a/l10ntools/scripts/fast_merge.pl
+++ b/l10ntools/scripts/fast_merge.pl
@@ -45,12 +45,8 @@ my $last_localize_file;
my $first_run = "1";
my $sdf_filename;
my $merge_dir;
-my $WIN;
my $state = "none";
-if ( defined $ENV{USE_SHELL} && $ENV{USE_SHELL} eq '4nt' ) { $WIN = 'TRUE'; }
-else { $WIN = ''; }
-
$SIG{INT} = 'inthandler';
$SIG{QUIT} = 'quithandler';
@@ -67,7 +63,6 @@ struct ( sdf_obj =>
parse_options();
my $lock_file = $merge_dir."/lock.mk";
-$lock_file =~ s/\//\\/g , if ( $WIN ) ;
acquire_lock();
read_sdf_file_names();
init();
@@ -247,10 +242,9 @@ sub make_paths
{
my $localizeFile = $merge_dir."\\".$current[ 0 ]->module."\\".$current[ 0 ]->file;
my $path = getDir( $localizeFile );
- if ( !$WIN ) { $path =~ s/\\/\//g; }
+ $path =~ s/\\/\//g;
- $localizeFile = $path."\\localize.sdf";
- if ( !$WIN ) { $localizeFile =~ s/\\/\//g; }
+ $localizeFile = $path."/localize.sdf";
return ( $path , $localizeFile );
}
diff --git a/l10ntools/scripts/localize.pl b/l10ntools/scripts/localize.pl
index 8b6a8231ebce..82ef331a63d5 100755
--- a/l10ntools/scripts/localize.pl
+++ b/l10ntools/scripts/localize.pl
@@ -70,14 +70,12 @@ my $no_gsicheck = '';
my $mode = '';
my $bVerbose = "0";
my $srcpath = '';
-my $WIN;
my $languages;
#my %sl_modules; # Contains all modules where en-US and de is source language
my $use_default_date = '0';
my $force_ooo_module = '0';
my %is_ooo_module;
my %is_so_module;
-my $DELIMITER;
# ( leftpart ) ( rightpart )
# prj file dummy type gid lid helpid pform width lang text helptext qhelptext title timestamp
@@ -91,23 +89,14 @@ my @sdfparticles;
parse_options();
check_modules_scm();
-if ( defined $ENV{USE_SHELL} && $ENV{USE_SHELL} eq '4nt' ) {
- $WIN = 'TRUE';
- $DELIMITER = "\\";
-}
- else {
- $WIN = '';
- $DELIMITER = "/";
-}
-
my $binpath = '';
if( defined $ENV{UPDMINOREXT} )
{
- $binpath = $ENV{SOLARVER}.$DELIMITER.$ENV{INPATH}.$DELIMITER."bin".$ENV{UPDMINOREXT}.$DELIMITER ;
+ $binpath = $ENV{SOLARVER}."/".$ENV{INPATH}."/bin".$ENV{UPDMINOREXT}."/" ;
}
else
{
- $binpath = $ENV{SOLARVER}.$DELIMITER.$ENV{INPATH}.$DELIMITER."bin".$DELIMITER ;
+ $binpath = $ENV{SOLARVER}."/".$ENV{INPATH}."/bin/" ;
}
#%sl_modules = fetch_sourcelanguage_dirlist();
@@ -187,9 +176,8 @@ sub splitfile{
exit( -1 );
}
my $src_root = $ENV{SRC_ROOT};
- #print $WIN eq "TRUE" ? $src_root."\\l10n_so\n" : $src_root."/l10n_so\n";
- my $so_l10n_path = $WIN eq "TRUE" ? $src_root."\\l10n_so\\source" : $src_root."/l10n_so/source";
- my $ooo_l10n_path = $WIN eq "TRUE" ? $src_root."\\l10n\\source" : $src_root."/l10n/source";
+ my $so_l10n_path = $src_root."/l10n_so/source";
+ my $ooo_l10n_path = $src_root."/l10n/source";
#print "$so_l10n_path\n";
#print "$ooo_l10n_path\n";
@@ -286,7 +274,7 @@ sub write_sdf
my @sdf_file;
# mkdir!!!!
- my $current_l10n_file = $WIN eq "TRUE" ? $l10n_file."\\$lang\\localize.sdf" : $l10n_file."/$lang/localize.sdf";
+ my $current_l10n_file = $l10n_file."/$lang/localize.sdf";
print "Writing '$current_l10n_file'\n";
if( open DESTFILE , "< $current_l10n_file" ){
@@ -430,17 +418,17 @@ sub add_paths
{
my $langhash_ref = shift;
my $root_dir = $ENV{ SRC_ROOT };
- my $ooo_l10n_dir = "$root_dir"."$DELIMITER"."l10n"."$DELIMITER"."source";
- my $so_l10n_dir = "$root_dir"."$DELIMITER"."l10n_so"."$DELIMITER"."source";
+ my $ooo_l10n_dir = "$root_dir/l10n/source";
+ my $so_l10n_dir = "$root_dir/l10n_so/source";
if( -e $ooo_l10n_dir )
{
foreach my $lang ( keys( %{ $langhash_ref } ) )
{
- my $loc_file = "$ooo_l10n_dir"."$DELIMITER"."$lang"."$DELIMITER"."localize.sdf";
+ my $loc_file = "$ooo_l10n_dir/$lang/localize.sdf";
if( -e $loc_file )
{
- push @sdfparticles , "$ooo_l10n_dir"."$DELIMITER"."$lang"."$DELIMITER"."localize.sdf";
+ push @sdfparticles , "$ooo_l10n_dir/$lang/localize.sdf";
}
else { print "WARNING: $loc_file not found ....\n"; }
}
@@ -450,10 +438,10 @@ sub add_paths
{
foreach my $lang ( keys( %{ $langhash_ref } ) )
{
- my $loc_file = "$so_l10n_dir"."$DELIMITER"."$lang"."$DELIMITER"."localize.sdf";
+ my $loc_file = "$so_l10n_dir/$lang/localize.sdf";
if( -e $loc_file )
{
- push @sdfparticles , "$ooo_l10n_dir"."$DELIMITER"."$lang"."$DELIMITER"."localize.sdf";
+ push @sdfparticles , "$ooo_l10n_dir/$lang/localize.sdf";
}
else { #print "WARNING: $loc_file not found ....\n";
}
@@ -530,10 +518,6 @@ sub collectfiles{
} #foreach
} # if
} # if
-# if ( !$bVerbose ){
-# if ( $WIN eq "TRUE" ) { $args .= " > $my_localize_log"; }
-# else { $args .= " >& $my_localize_log"; }
-# }
if ( $bVerbose ) { print STDOUT $command.$args."\n"; }
my $rc = system( $command.$args );
diff --git a/l10ntools/scripts/localize_old.pl b/l10ntools/scripts/localize_old.pl
index fe63ba9a93de..d6b66d6bb535 100755
--- a/l10ntools/scripts/localize_old.pl
+++ b/l10ntools/scripts/localize_old.pl
@@ -63,7 +63,6 @@ my $outputfile = '';
my $mode = '';
my $bVerbose="0";
my $srcpath = '';
-my $WIN;
my $languages;
#my %sl_modules; # Contains all modules where en-US and de is source language
my $use_default_date = '0';
@@ -78,13 +77,6 @@ my $default_date = "2002-02-02 02:02:02";
#### main ####
parse_options();
-if ( defined $ENV{USE_SHELL} && $ENV{USE_SHELL} eq '4nt' ) {
- $WIN = 'TRUE';
-}
- else {
- $WIN = '';
-}
-
#%sl_modules = fetch_sourcelanguage_dirlist();
@@ -136,13 +128,11 @@ sub splitfile{
next if( $prj eq "binfilter" ); # Don't merge strings into binfilter module
chomp( $line );
$currentFile = $srcpath . '\\' . $prj . '\\' . $file;
- if ( $WIN ) { $currentFile =~ s/\//\\/g; }
- else { $currentFile =~ s/\\/\//g; }
+ $currentFile =~ s/\\/\//g;
$cur_sdffile = $currentFile;
#if( $cur_sdffile =~ /\.$file_types[\s]*$/ ){
- if( $WIN ) { $cur_sdffile =~ s/\\[^\\]*\.$file_types[\s]*$/\\localize.sdf/; }
- else { $cur_sdffile =~ s/\/[^\/]*\.$file_types[\s]*$/\/localize.sdf/; }
+ $cur_sdffile =~ s/\/[^\/]*\.$file_types[\s]*$/\/localize.sdf/;
#}
# Set default date
@@ -182,41 +172,6 @@ sub splitfile{
}
#########################################################
-#sub fetch_sourcelanguage_dirlist
-#{
-#
-# my $working_path = getcwd();
-# my %sl_dirlist;
-#
-# chdir $srcpath;
-# my @all_dirs = csh_glob( "*" );
-#
-# foreach my $file ( @all_dirs )
-# {
-# if( -d $file )
-# {
-# my $module = $file;
-# $file .= "/prj/l10n";
-# $file =~ s/\//\\/ , if( $WIN ) ;
-#
-# if( -f $file ) # Test file <module>/prj/l10n
-# {
-# $sl_dirlist{ $module } = 1;
-# if( $bVerbose eq "1" ) { print STDOUT "$module: de and en-US source language detected\n"; }
-# }
-# }
-# }
-#
-# chdir $working_path;
-#
-# return %sl_dirlist;
-#}
-
-#sub has_two_sourcelanguages
-#{
-# my $module = shift;
-# return defined $sl_modules{ $module } ;
-#}
sub writesdf{
my $lastFile = shift;
@@ -225,8 +180,7 @@ sub writesdf{
my %index=();
if( $localizeFile =~ /\.$file_types[\s]*$/ ){
- if( $WIN ) { $localizeFile =~ s/\\[^\\]*\.$file_types[\s]*$/\\localize.sdf/; }
- else { $localizeFile =~ s/\/[^\/]*\.$file_types[\s]*$/\/localize.sdf/; }
+ $localizeFile =~ s/\/[^\/]*\.$file_types[\s]*$/\/localize.sdf/;
}else {
print STDERR "Strange filetype found '$localizeFile'\n";
return;
@@ -471,10 +425,6 @@ sub collectfiles{
} #foreach
} # if
} # if
-# if ( !$bVerbose ){
-# if ( $WIN eq "TRUE" ) { $args .= " > $my_localize_log"; }
-# else { $args .= " >& $my_localize_log"; }
-# }
if ( $bVerbose ) { print STDOUT $command.$args."\n"; }
my $rc = system( $command.$args );
diff --git a/l10ntools/source/help/makefile.mk b/l10ntools/source/help/makefile.mk
index 50351913fe55..b66077501a8d 100644
--- a/l10ntools/source/help/makefile.mk
+++ b/l10ntools/source/help/makefile.mk
@@ -101,7 +101,7 @@ JAVACLASSFILES = \
$(CLASSDIR)$/$(PACKAGE)$/HelpFileDocument.class
.IF "$(SYSTEM_LUCENE)" == "YES"
-CLASSPATH!:=$(CLASSPATH)$(PATH_SEPERATOR)$(LUCENE_CORE_JAR)$(PATH_SEPERATOR)$(LUCENE_ANALYZERS_JAR)
+EXTRAJARFILES += $(LUCENE_CORE_JAR) $(LUCENE_ANALYZERS_JAR)
.ELSE
JARFILES += lucene-core-2.3.jar lucene-analyzers-2.3.jar
.ENDIF
diff --git a/l10ntools/source/wrdtrans.cxx b/l10ntools/source/wrdtrans.cxx
deleted file mode 100644
index 10d6f472640f..000000000000
--- a/l10ntools/source/wrdtrans.cxx
+++ /dev/null
@@ -1,245 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_l10ntools.hxx"
-
-/*
-#include "wrdtrans.hxx"
-
-
-// NOT FULLY DECLARED SERVICES
-#include <vector>
-#include <vos/macros.hxx>
-
-
-#include <tools/stream.hxx>
-#include "wtratree.hxx"
-
-#include <tools/string.hxx>
-*/
-//************** Declaration WordTrans_ErrorList ******************//
-/*
-typedef NAMESPACE_STD(vector)<ByteString> Stl_ByteStringList;
-
-class WordTrans_ErrorList
-{
- public:
- // OPERATIONS
- void AddError(
- WordTransformer::E_Error
- i_eType,
- const char * i_sErrorDescription );
- void Clear(); /// Empties the list.
-
- // INQUIRY
- USHORT NrOfErrors() const;
- WordTransformer::E_Error
- GetError(
- USHORT i_nNr, /// [0 .. NrOfErrors()-1], other values return an empty error.
- ByteString * o_pErrorText ) const; /// If o_pErrorText != 0, the String is filled with the description of the error.
- private:
- // DATA
- Stl_ByteStringList aErrors;
-};
-
-*/
-
-//************** Implementation WordTransformer ******************//
-
-/*
-WordTransformer::WordTransformer()
- : dpTransformer(0),
- dpErrors(new WordTrans_ErrorList)
-{
-}
-
-WordTransformer::~WordTransformer()
-{
- if (dpTransformer != 0)
- delete dpTransformer;
- delete dpErrors;
-}
-
-BOOL
-WordTransformer::LoadWordlist( const ByteString & i_sWordlist_Filepath,
- CharSet i_nWorkingCharSet,
- CharSet i_nFileCharSet )
-{
- if (dpTransformer != 0)
- return FALSE;
-
- SvFileStream aFile(String(i_sWordlist_Filepath,RTL_TEXTENCODING_ASCII_US),STREAM_STD_READ);
- if (! aFile.IsOpen())
- return FALSE;
- aFile.SetStreamCharSet( i_nFileCharSet ) ;
-// aFile.SetTargetCharSet( i_nWorkingCharSet );
-
- dpTransformer = new WordTransTree;
-
- ByteString sTrans;
- while ( aFile.ReadLine(sTrans) )
- {
- dpTransformer->AddWordPair(sTrans.GetToken(0,';'),sTrans.GetToken(1,';'));
- }
-
- aFile.Close();
- return TRUE;
-}
-
-USHORT
-WordTransformer::Transform(ByteString & io_sText)
-{
- // Initialization and precondition testing:
- dpErrors->Clear();
- if (dpTransformer == 0)
- {
- dpErrors->AddError(ERROR_NO_WORDLIST,"Error: No wordlist was loaded.");
- return dpErrors->NrOfErrors();
- }
- else if (io_sText.Len() > 63 * 1024)
- {
- dpErrors->AddError(ERROR_OUTPUTSTRING_TOO_LONG,"Error: Inputstring was too long (bigger than 63 KB).");
- return dpErrors->NrOfErrors();
- }
- else if (io_sText.Len() == 0)
- {
- return 0;
- }
-
- // Transform:
- dpTransformer->InitTransformation(
- io_sText.GetBuffer(),
- io_sText.Len() );
-
- for ( ; !dpTransformer->TextEndReached(); )
- {
- if (dpTransformer->TransformNextToken() != WordTransTree::OK)
- {
- CreateError();
- }
- }
- io_sText = dpTransformer->Output();
- return dpErrors->NrOfErrors();
-}
-
-USHORT
-WordTransformer::NrOfErrors() const
-{
- return dpErrors->NrOfErrors();
-}
-
-WordTransformer::E_Error
-WordTransformer::GetError( USHORT i_nNr,
- ByteString * o_pErrorText) const
-{
- return dpErrors->GetError(i_nNr,o_pErrorText);
-}
-
-void
-WordTransformer::CreateError()
-{
- ByteString sErr;
-
- switch (dpTransformer->CurResult())
- {
- case WordTransTree::OK:
- break;
- case WordTransTree::HOTKEY_LOST:
- sErr = ByteString("Error: By replacement of string ");
- sErr += dpTransformer->CurReplacedString();
- sErr += " by ";
- sErr += dpTransformer->CurReplacingString();
- sErr += "the hotkey at char '";
- sErr += dpTransformer->CurHotkey();
- sErr += "' was lost.";
- dpErrors->AddError( ERROR_HOTKEY,sErr.GetBufferAccess());
- sErr.ReleaseBufferAccess();
- break;
- case WordTransTree::OUTPUT_OVERFLOW:
- dpErrors->AddError(ERROR_OUTPUTSTRING_TOO_LONG,"Error: Output buffer overflow.");
- break;
- default:
- dpErrors->AddError(OTHER_ERROR,"Error: Unknown error.");
- }
-}
-*/
-//************** Implementation WordTrans_ErrorList ******************//
-/*
-void
-WordTrans_ErrorList::AddError( WordTransformer::E_Error i_eType,
- const char * i_sErrorDescription )
-{
- ByteString sErrorType = "xxx";
- char * pErrorChars = sErrorType.GetBufferAccess();
- pErrorChars[0] = char(i_eType / 100 + '0');
- pErrorChars[1] = char( (i_eType % 100) / 10 + '0');
- pErrorChars[2] = char(i_eType % 10 + '0');
- sErrorType += i_sErrorDescription;
-
- aErrors.push_back(sErrorType);
- sErrorType.ReleaseBufferAccess();
-}
-
-void
-WordTrans_ErrorList::Clear()
-{
- aErrors.erase(aErrors.begin(),aErrors.end());
-}
-
-USHORT
-WordTrans_ErrorList::NrOfErrors() const
-{
- return aErrors.size();
-}
-
-WordTransformer::E_Error
-WordTrans_ErrorList::GetError( USHORT i_nNr,
- ByteString * o_pErrorText ) const
-{
- if ( i_nNr < aErrors.size() )
- {
- const ByteString & rError = aErrors[i_nNr];
- const char * pErrorChars = rError.GetBuffer();
-
- USHORT nError = USHORT( (pErrorChars[0] - '0') ) * 100
- + (pErrorChars[1] - '0') * 10
- + pErrorChars[2] - '0';
-
- if (o_pErrorText != 0)
- *o_pErrorText = pErrorChars+3;
-
- return WordTransformer::E_Error(nError);
- }
- else
- {
- if (o_pErrorText != 0)
- *o_pErrorText = "";
- return WordTransformer::OK;
- }
-}
-*/
diff --git a/libtextcat/makefile.mk b/libtextcat/makefile.mk
index 5ac18a9402c2..01a2a6eadc36 100644
--- a/libtextcat/makefile.mk
+++ b/libtextcat/makefile.mk
@@ -37,6 +37,7 @@ TARGET=libtextcat
# --- Files --------------------------------------------------------
TARFILE_NAME=libtextcat-2.2
+TARFILE_MD5=128cfc86ed5953e57fe0f5ae98b62c2e
TARFILE_ROOTDIR=libtextcat-2.2
PATCH_FILES=libtextcat-2.2.patch
diff --git a/libwpd/makefile.mk b/libwpd/makefile.mk
index a4f6b689e450..abca6ff60019 100644
--- a/libwpd/makefile.mk
+++ b/libwpd/makefile.mk
@@ -42,6 +42,7 @@ TARGET=wpd
.ENDIF
TARFILE_NAME=libwpd-0.8.8
+TARFILE_MD5=cd5997284f4ba1e8dde5d1e5869fc342
PATCH_FILES=$(TARFILE_NAME).diff
BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
BUILD_DIR=src$/lib
diff --git a/libxml2/makefile.mk b/libxml2/makefile.mk
index 0025df25dddc..9175391fbae8 100644
--- a/libxml2/makefile.mk
+++ b/libxml2/makefile.mk
@@ -45,6 +45,7 @@ all:
LIBXML2VERSION=2.6.31
TARFILE_NAME=$(PRJNAME)-$(LIBXML2VERSION)
+TARFILE_MD5=71ef7bcd3493a94395abccecbcf62dd7
#.IF "$(OS)$(COM)"=="WNTGCC"
#PATCH_FILES=$(TARFILE_NAME)-mingw.patch
#.ELSE
diff --git a/libxmlsec/makefile.mk b/libxmlsec/makefile.mk
index 0c9db0860ae3..2c41ce0dec1d 100644
--- a/libxmlsec/makefile.mk
+++ b/libxmlsec/makefile.mk
@@ -45,6 +45,7 @@ EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
XMLSEC1VERSION=1.2.12
TARFILE_NAME=$(PRJNAME)-$(XMLSEC1VERSION)
+TARFILE_MD5=195d042623bcc2e1668ab8370de6dc2a
#xmlsec1-configure.patch: Set up the build. Straightforward
#configuration
diff --git a/libxslt/makefile.mk b/libxslt/makefile.mk
index a0ec45f48be0..3cde964e53c4 100644
--- a/libxslt/makefile.mk
+++ b/libxslt/makefile.mk
@@ -49,6 +49,7 @@ all:
LIBXSLTVERSION=$(LIBXSLT_MAJOR).$(LIBXSLT_MINOR).$(LIBXSLT_MICRO)
TARFILE_NAME=$(PRJNAME)-$(LIBXSLTVERSION)
+TARFILE_MD5=e83ec5d27fc4c10c6f612879bea9a153
PATCH_FILES=$(TARFILE_NAME).patch $(TARFILE_NAME)_win_manifest.patch
# This is only for UNX environment now
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen.map b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen.map
deleted file mode 100644
index 1cc0ac1898a8..000000000000
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen.map
+++ /dev/null
@@ -1,8 +0,0 @@
-LTH_1_0 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
- local:
- *;
-};
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk
index 415e76792b47..f3626c70312b 100644
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk
+++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk
@@ -81,7 +81,7 @@ SHL1IMPLIB= i$(REALNAME)
SHL1DEPN= $(SHL1LIBS)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP= $(REALNAME).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# build DEF file
DEF1NAME =$(SHL1TARGET)
diff --git a/lingucomponent/source/languageguessing/guesslang.map b/lingucomponent/source/languageguessing/guesslang.map
deleted file mode 100644
index b34eff63c44f..000000000000
--- a/lingucomponent/source/languageguessing/guesslang.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
- local:
- *;
-};
diff --git a/lingucomponent/source/languageguessing/makefile.mk b/lingucomponent/source/languageguessing/makefile.mk
index f49e79060c4a..ebad4076b3ed 100644
--- a/lingucomponent/source/languageguessing/makefile.mk
+++ b/lingucomponent/source/languageguessing/makefile.mk
@@ -68,7 +68,7 @@ SHL1IMPLIB= i$(TARGET)
SHL1DEPN= $(SHL1LIBS)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
.IF "$(OS)"!="MACOSX"
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
.ENDIF
# build DEF file
diff --git a/lingucomponent/source/spellcheck/macosxspell/MacOSXSpell.map b/lingucomponent/source/spellcheck/macosxspell/MacOSXSpell.map
deleted file mode 100644
index bf1fbe0696c8..000000000000
--- a/lingucomponent/source/spellcheck/macosxspell/MacOSXSpell.map
+++ /dev/null
@@ -1,8 +0,0 @@
-LEXPS_1_0 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
- local:
- *;
-};
diff --git a/lingucomponent/source/spellcheck/macosxspell/makefile.mk b/lingucomponent/source/spellcheck/macosxspell/makefile.mk
index f91ab46e1553..6414560e0f4a 100644
--- a/lingucomponent/source/spellcheck/macosxspell/makefile.mk
+++ b/lingucomponent/source/spellcheck/macosxspell/makefile.mk
@@ -81,7 +81,7 @@ SHL1IMPLIB= i$(TARGET)
SHL1DEPN= $(SHL1LIBS)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Targets ------------------------------------------------------
diff --git a/lingucomponent/source/spellcheck/spell/makefile.mk b/lingucomponent/source/spellcheck/spell/makefile.mk
index efedb6ad1008..4173d4dbae22 100644
--- a/lingucomponent/source/spellcheck/spell/makefile.mk
+++ b/lingucomponent/source/spellcheck/spell/makefile.mk
@@ -75,7 +75,7 @@ SHL1IMPLIB= i$(TARGET)
SHL1DEPN= $(SHL1LIBS)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# build DEF file
DEF1NAME =$(SHL1TARGET)
diff --git a/lingucomponent/source/spellcheck/spell/spell.map b/lingucomponent/source/spellcheck/spell/spell.map
deleted file mode 100644
index bf1fbe0696c8..000000000000
--- a/lingucomponent/source/spellcheck/spell/spell.map
+++ /dev/null
@@ -1,8 +0,0 @@
-LEXPS_1_0 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
- local:
- *;
-};
diff --git a/lingucomponent/source/thesaurus/libnth/lnth.map b/lingucomponent/source/thesaurus/libnth/lnth.map
deleted file mode 100644
index 1cc0ac1898a8..000000000000
--- a/lingucomponent/source/thesaurus/libnth/lnth.map
+++ /dev/null
@@ -1,8 +0,0 @@
-LTH_1_0 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
- local:
- *;
-};
diff --git a/lingucomponent/source/thesaurus/libnth/makefile.mk b/lingucomponent/source/thesaurus/libnth/makefile.mk
index dea6942bbef2..58e4d97e5561 100644
--- a/lingucomponent/source/thesaurus/libnth/makefile.mk
+++ b/lingucomponent/source/thesaurus/libnth/makefile.mk
@@ -95,7 +95,7 @@ SHL1IMPLIB= i$(TARGET)
SHL1DEPN= $(SHL1LIBS)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# build DEF file
DEF1NAME =$(SHL1TARGET)
diff --git a/linguistic/prj/build.lst b/linguistic/prj/build.lst
index 8e09e3fd4226..57c332f6f3ea 100644
--- a/linguistic/prj/build.lst
+++ b/linguistic/prj/build.lst
@@ -3,3 +3,4 @@ lg linguistic usr1 - all lg_mkout NULL
lg linguistic\prj get - all lg_prj NULL
lg linguistic\inc nmake - all lg_inc NULL
lg linguistic\source nmake - all lg_src lg_inc NULL
+lg linguistic\qa\unoapi nmake - all lg_qa_unoapi NULL
diff --git a/linguistic/qa/unoapi/Test.java b/linguistic/qa/unoapi/Test.java
new file mode 100644
index 000000000000..4a96418255ff
--- /dev/null
+++ b/linguistic/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.linguistic.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "lng.sce", "-xcl", "knownissues.xcl", "-cs",
+ connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/linguistic/qa/unoapi/makefile.mk b/linguistic/qa/unoapi/makefile.mk
index d24be0361501..bd330c6fbaca 100644
--- a/linguistic/qa/unoapi/makefile.mk
+++ b/linguistic/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,19 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=linguistic
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = linguistic
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/linguistic/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce lng.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
+.END
diff --git a/linguistic/source/convdiclist.cxx b/linguistic/source/convdiclist.cxx
index c1280fc799b0..49ab2b485c13 100644
--- a/linguistic/source/convdiclist.cxx
+++ b/linguistic/source/convdiclist.cxx
@@ -397,41 +397,12 @@ void ConvDicNameContainer::AddConvDics(
namespace
{
-template<typename T, typename InitData,
- typename Unique = InitData, typename Data = T>
-class StaticWithInit_ {
-public:
- /** Gets the static. Mutual exclusion is performed using the
- osl global mutex.
-
- @return
- static variable
- */
- static T & get() {
- return *rtl_Instance<
- T, StaticInstanceWithInit,
- ::osl::MutexGuard, ::osl::GetGlobalMutex,
- Data, InitData >::create( StaticInstanceWithInit(),
- ::osl::GetGlobalMutex(),
- InitData() );
- }
-private:
- struct StaticInstanceWithInit {
- T * operator () ( Data d ) {
- static T instance(d);
- return &instance;
+ struct StaticConvDicList : public rtl::StaticWithInit<
+ uno::Reference<XInterface>, StaticConvDicList> {
+ uno::Reference<XInterface> operator () () {
+ return (cppu::OWeakObject *) new ConvDicList;
}
};
-};
-
-//after src680m62 you can replace StaticWithInit_ with rtl::StaticWithInit and remove the above definition of StaticWithInit_
-
-struct StaticConvDicList : public StaticWithInit_<
- uno::Reference<XInterface>, StaticConvDicList> {
- uno::Reference<XInterface> operator () () {
- return (cppu::OWeakObject *) new ConvDicList;
- }
-};
}
diff --git a/linguistic/source/staticmb.cxx b/linguistic/source/staticmb.cxx
deleted file mode 100644
index 8b2b6bc1a364..000000000000
--- a/linguistic/source/staticmb.cxx
+++ /dev/null
@@ -1,29 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_linguistic.hxx"
diff --git a/linguistic/workben/lex.map b/linguistic/workben/lex.map
deleted file mode 100644
index bd76ef3b85ce..000000000000
--- a/linguistic/workben/lex.map
+++ /dev/null
@@ -1,8 +0,0 @@
-LEX_1_0 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
- local:
- *;
-};
diff --git a/linguistic/workben/makefile.mk b/linguistic/workben/makefile.mk
index 5c8cc67e852c..26cbb7ec8d65 100644
--- a/linguistic/workben/makefile.mk
+++ b/linguistic/workben/makefile.mk
@@ -94,7 +94,7 @@ SHL1IMPLIB= i$(TARGET)
SHL1DEPN= $(SHL1LIBS)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
.IF "$(OS)"!="MACOSX"
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
.ENDIF
# build DEF file
diff --git a/lpsolve/makefile.mk b/lpsolve/makefile.mk
index 63738c127e79..3e66303b038a 100644
--- a/lpsolve/makefile.mk
+++ b/lpsolve/makefile.mk
@@ -37,6 +37,7 @@ TARGET=lpsolve
# --- Files --------------------------------------------------------
TARFILE_NAME=lp_solve_5.5
+TARFILE_MD5=26b3e95ddf3d9c077c480ea45874b3b8
.IF "$(GUI)"=="WNT"
PATCH_FILES=lp_solve_5.5-windows.patch
diff --git a/lucene/makefile.mk b/lucene/makefile.mk
index 23111eaee861..3ce8f058c942 100644
--- a/lucene/makefile.mk
+++ b/lucene/makefile.mk
@@ -49,6 +49,7 @@ LUCENE_CORE_JAR=lucene-core-$(LUCENE_MAJOR).$(LUCENE_MINOR).jar
LUCENE_ANALYZERS_JAR=lucene-analyzers-$(LUCENE_MAJOR).$(LUCENE_MINOR).jar
TARFILE_NAME=$(LUCENE_NAME)
+TARFILE_MD5=48d8169acc35f97e05d8dcdfd45be7f2
PATCH_FILES=lucene.patch
BUILD_DIR=.
diff --git a/moz/extractfiles.mk b/moz/extractfiles.mk
index c8d88c015411..dedfade257db 100644
--- a/moz/extractfiles.mk
+++ b/moz/extractfiles.mk
@@ -386,10 +386,6 @@ $(INCCOM)$/nsBuildID.h: $(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE)
$(MISC)$/build$/so_moz_include_files: $(INCCOM)$/nsBuildID.h
-.IF "$(USE_SHELL)"=="4nt"
- $(COPY) /QSZ $(INCLUDE_PATH)* $(INCLUDE_DIR)
- $(COPY) /QSZ $(PUBLIC_PATH)* $(INCLUDE_DIR)
-.ELSE
.IF "$(OS)"!="SOLARIS"
$(GNUCOPY) -pRL $(INCLUDE_PATH)* $(INCLUDE_DIR)
$(GNUCOPY) -pRL $(PUBLIC_PATH)* $(INCLUDE_DIR)
@@ -397,7 +393,6 @@ $(MISC)$/build$/so_moz_include_files: $(INCCOM)$/nsBuildID.h
$(COPY) -pr $(INCLUDE_PATH)* $(INCLUDE_DIR)
$(COPY) -pr $(PUBLIC_PATH)* $(INCLUDE_DIR)
.ENDIF # "$(OS)"!="SOLARIS"
-.ENDIF
.IF "$(GUI)"=="UNX"
chmod -R 775 $(INCCOM)
diff --git a/moz/makefile.mk b/moz/makefile.mk
index 2eeda8c08928..050d923c48e7 100644
--- a/moz/makefile.mk
+++ b/moz/makefile.mk
@@ -78,6 +78,7 @@ XLDOPTS:= -B$(SYSBASE)/usr/lib -B$(SYSBASE)/usr/lib/system -lmathCommon
MOZILLA_VERSION=1.1.14
TARFILE_NAME=seamonkey-$(MOZILLA_VERSION).source
+TARFILE_MD5=a169ab152209200a7bad29a275cb0333
TARFILE_ROOTDIR=mozilla
PATCH_FILES = \
@@ -168,13 +169,7 @@ MOZ_CROSSCOMPILE=CROSS_COMPILE=1 CC="$(CC) -arch $(MOZ_ARCH)" CXX="$(CXX) -arch
CONFIGURE_ACTION=$(null,$(MOZ_ARCH) $(NULL) $(MOZ_CROSSCOMPILE)) ../configure $(MOZILLA_CONFIGURE_FLAGS)
-.IF "$(USE_SHELL)"!="4nt"
BUILD_ACTION:=$(GNUMAKE) -j$(EXTMAXPROCESS)
-.ELSE
-# This construct is needed because unitools.mk defines GNUMAKE using $ENV_TOOLS.
-# $ENV_TOOLS doesn't exist for OOo builds and the cygwin make is needed.
-BUILD_ACTION:=make
-.ENDIF
.IF "$(GUI)"=="UNX"
.IF "$(COMNAME)"=="sunpro5"
@@ -244,7 +239,6 @@ MOZTOOLSINST:=$(MISC)$/build$/moztoolsinst
.ELSE
MOZTOOLS_EXTRACT:=$(MISC)$/build$/moztools
.ENDIF
-.IF "$(USE_SHELL)"!="4nt"
.IF "$(COM)"=="GCC"
MOZ_TOOLS_DOS:=$(shell @cygpath -ad "$(MISC)")\build\moztoolsinst
PATH!:=$(PATH):$(shell @cygpath $(MOZ_TOOLS_DOS))/bin:$(shell @cygpath $(MOZ_TOOLS_DOS))/vc71/bin
@@ -253,11 +247,6 @@ SET_MOZ_TOOLS_INSTALL_BAT:=export "MOZ_TOOLS=$(MOZ_TOOLS_DOS)"
MOZ_TOOLS_DOS:=$(shell @cygpath -ad "$(MISC)")\build\moztools\vc8-moztools
PATH!:=$(shell @cygpath $(MOZ_TOOLS_DOS))/bin:$(PATH)
.ENDIF
-.ELSE # "$(USE_SHELL)"!="4nt"
-# MOZ_TOOLS must contain an absolute path
-MOZ_TOOLS_DOS:=$(shell @echo %@SFN[$(MISC)])\build\moztools\vc8-moztools
-PATH!:=$(MOZ_TOOLS_DOS)\bin;$(PATH)
-.ENDIF # "$(USE_SHELL)"!="4nt"
MOZ_TOOLS:=$(subst,\,/ $(MOZ_TOOLS_DOS))
.IF "$(COM)"=="GCC"
diff --git a/mysqlc/images/sun_extension.png b/mysqlc/images/sun_extension.png
index a018f1710ea5..cf3fe5f0d598 100644
--- a/mysqlc/images/sun_extension.png
+++ b/mysqlc/images/sun_extension.png
Binary files differ
diff --git a/mysqlc/images/sun_extension_hc.png b/mysqlc/images/sun_extension_hc.png
index 418cd1479298..535a6bfdff4f 100644
--- a/mysqlc/images/sun_extension_hc.png
+++ b/mysqlc/images/sun_extension_hc.png
Binary files differ
diff --git a/mysqlc/source/description.xml b/mysqlc/source/description.xml
index dbd64aa1a7e1..0dc3284fa869 100644
--- a/mysqlc/source/description.xml
+++ b/mysqlc/source/description.xml
@@ -17,7 +17,7 @@
<OpenOffice.org-minimal-version value="3.1" d:name="OpenOffice.org 3.1"/>
</dependencies>
<publisher>
- <name xlink:href="http://www.sun.com/software/star/staroffice/extensions.jsp?cid=925095" lang="en">Oracle</name>
+ <name xlink:href="http://www.oracle.com/us/products/applications/open-office" lang="en">Oracle</name>
</publisher>
<icon>
<default xlink:href="images/sun_extension.png" />
diff --git a/mysqlc/source/makefile.mk b/mysqlc/source/makefile.mk
index bfe46afe05e0..516f10a7dc0a 100644
--- a/mysqlc/source/makefile.mk
+++ b/mysqlc/source/makefile.mk
@@ -116,6 +116,9 @@ CDEFS+=-DCPPDBC_EXPORTS -DCPPCONN_LIB_BUILD
CDEFS += -DCPPCONN_LIB=\"$(DLLPRE)mysqlcppconn$(DLLPOST)\"
.ELSE
CDEFS += -DCPPCONN_LIB=\"$(shell readlink /usr/lib/libmysqlcppconn.so)\"
+.IF "$(USE_SYSTEM_STL)"!="YES"
+CDEFS += -DADAPT_EXT_STL
+.ENDIF
.ENDIF
# --------------- MySQL settings ------------------
diff --git a/mysqlc/source/mysqlc_connection.cxx b/mysqlc/source/mysqlc_connection.cxx
index c839e235f369..267f16558233 100644
--- a/mysqlc/source/mysqlc_connection.cxx
+++ b/mysqlc/source/mysqlc_connection.cxx
@@ -26,12 +26,6 @@
* for a copy of the LGPLv3 License.
************************************************************************/
-#include <cppconn/driver.h>
-#include <cppconn/connection.h>
-#include <cppconn/statement.h>
-#include <cppconn/metadata.h>
-#include <cppconn/exception.h>
-
#include "mysqlc_connection.hxx"
#include "mysqlc_databasemetadata.hxx"
@@ -41,6 +35,14 @@
#include "mysqlc_preparedstatement.hxx"
#include "mysqlc_general.hxx"
+#include <tools/preextstl.h>
+#include <cppconn/driver.h>
+#include <cppconn/connection.h>
+#include <cppconn/statement.h>
+#include <cppconn/metadata.h>
+#include <cppconn/exception.h>
+#include <tools/postextstl.h>
+
#include <com/sun/star/sdbc/ColumnValue.hpp>
#include <com/sun/star/sdbc/XRow.hpp>
#include <com/sun/star/sdbc/TransactionIsolation.hpp>
@@ -186,10 +188,10 @@ void OConnection::construct(const OUString& url, const Sequence< PropertyValue >
if (bEmbedded == sal_False) {
try {
sql::ConnectOptionsMap connProps;
- std::string host_str = OUStringToOString(aHostName, m_settings.encoding).getStr();
- std::string user_str = OUStringToOString(aUser, m_settings.encoding).getStr();
- std::string pass_str = OUStringToOString(aPass, m_settings.encoding).getStr();
- std::string schema_str = OUStringToOString(aDbName, m_settings.encoding).getStr();
+ ext_std::string host_str = OUStringToOString(aHostName, m_settings.encoding).getStr();
+ ext_std::string user_str = OUStringToOString(aUser, m_settings.encoding).getStr();
+ ext_std::string pass_str = OUStringToOString(aPass, m_settings.encoding).getStr();
+ ext_std::string schema_str = OUStringToOString(aDbName, m_settings.encoding).getStr();
connProps["hostName"] = sql::ConnectPropertyVal(host_str);
connProps["userName"] = sql::ConnectPropertyVal(user_str);
connProps["password"] = sql::ConnectPropertyVal(pass_str);
diff --git a/mysqlc/source/mysqlc_connection.hxx b/mysqlc/source/mysqlc_connection.hxx
index 0b17a0a362e2..b59fb630ac37 100644
--- a/mysqlc/source/mysqlc_connection.hxx
+++ b/mysqlc/source/mysqlc_connection.hxx
@@ -46,7 +46,9 @@
#include <com/sun/star/sdbc/XWarningsSupplier.hpp>
#include <com/sun/star/util/XStringSubstitution.hpp>
+#include <tools/preextstl.h>
#include <cppconn/driver.h>
+#include <tools/postextstl.h>
#include <cppuhelper/compbase3.hxx>
#include <cppuhelper/weakref.hxx>
#include <rtl/string.hxx>
diff --git a/mysqlc/source/mysqlc_databasemetadata.cxx b/mysqlc/source/mysqlc_databasemetadata.cxx
index 30911dda97cf..076435c01d9b 100644
--- a/mysqlc/source/mysqlc_databasemetadata.cxx
+++ b/mysqlc/source/mysqlc_databasemetadata.cxx
@@ -54,13 +54,15 @@ using namespace com::sun::star::sdbc;
using ::rtl::OUString;
using mysqlc_sdbc_driver::getStringFromAny;
+#include <tools/preextstl.h>
#include <cppconn/connection.h>
#include <cppconn/resultset.h>
#include <cppconn/metadata.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>
+#include <tools/postextstl.h>
-static std::string wild("%");
+static ext_std::string wild("%");
using ::rtl::OUStringToOString;
@@ -114,7 +116,7 @@ ODatabaseMetaData::~ODatabaseMetaData()
/* {{{ ODatabaseMetaData::impl_getStringMetaData() -I- */
-OUString ODatabaseMetaData::impl_getStringMetaData(const sal_Char* _methodName, const std::string& (sql::DatabaseMetaData::*_Method)() )
+OUString ODatabaseMetaData::impl_getStringMetaData(const sal_Char* _methodName, const ext_std::string& (sql::DatabaseMetaData::*_Method)() )
{
OSL_TRACE( "mysqlc::ODatabaseMetaData::%s", _methodName);
OUString stringMetaData;
@@ -133,7 +135,7 @@ OUString ODatabaseMetaData::impl_getStringMetaData(const sal_Char* _methodName,
/* {{{ ODatabaseMetaData::impl_getStringMetaData() -I- */
-OUString ODatabaseMetaData::impl_getStringMetaData(const sal_Char* _methodName, std::string (sql::DatabaseMetaData::*_Method)() )
+OUString ODatabaseMetaData::impl_getStringMetaData(const sal_Char* _methodName, ext_std::string (sql::DatabaseMetaData::*_Method)() )
{
OSL_TRACE( "mysqlc::ODatabaseMetaData::%s", _methodName);
OUString stringMetaData;
@@ -1654,7 +1656,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumnPrivileges(
Reference< XResultSet > xResultSet(getOwnConnection().getDriver().getFactory()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.comp.helper.DatabaseMetaDataResultSet"))),UNO_QUERY);
std::vector< std::vector< Any > > rRows;
- std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
+ ext_std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
sch(OUStringToOString(schema, m_rConnection.getConnectionEncoding()).getStr()),
tab(OUStringToOString(table, m_rConnection.getConnectionEncoding()).getStr()),
cNamePattern(OUStringToOString(columnNamePattern, m_rConnection.getConnectionEncoding()).getStr());
@@ -1696,7 +1698,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumns(
OSL_TRACE("ODatabaseMetaData::getColumns");
Reference< XResultSet > xResultSet(getOwnConnection().getDriver().getFactory()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.comp.helper.DatabaseMetaDataResultSet"))),UNO_QUERY);
std::vector< std::vector< Any > > rRows;
- std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
+ ext_std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
sPattern(OUStringToOString(schemaPattern, m_rConnection.getConnectionEncoding()).getStr()),
tNamePattern(OUStringToOString(tableNamePattern, m_rConnection.getConnectionEncoding()).getStr()),
cNamePattern(OUStringToOString(columnNamePattern, m_rConnection.getConnectionEncoding()).getStr());
@@ -1750,11 +1752,11 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTables(
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.comp.helper.DatabaseMetaDataResultSet"))),UNO_QUERY);
std::vector< std::vector< Any > > rRows;
- std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
+ ext_std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
sPattern(OUStringToOString(schemaPattern, m_rConnection.getConnectionEncoding()).getStr()),
tNamePattern(OUStringToOString(tableNamePattern, m_rConnection.getConnectionEncoding()).getStr());
- std::list<sql::SQLString> tabTypes;
+ ext_std::list<sql::SQLString> tabTypes;
for (const OUString *pStart = types.getConstArray(), *p = pStart, *pEnd = pStart + nLength; p != pEnd; ++p) {
tabTypes.push_back(OUStringToOString(*p, m_rConnection.getConnectionEncoding()).getStr());
}
@@ -1822,7 +1824,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getProcedures(
Reference< XResultSet > xResultSet(getOwnConnection().getDriver().getFactory()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.comp.helper.DatabaseMetaDataResultSet"))),UNO_QUERY);
std::vector< std::vector< Any > > rRows;
- std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
+ ext_std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
sPattern(OUStringToOString(schemaPattern, m_rConnection.getConnectionEncoding()).getStr()),
pNamePattern(OUStringToOString(procedureNamePattern, m_rConnection.getConnectionEncoding()).getStr());
@@ -1882,7 +1884,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getExportedKeys(
OSL_TRACE("ODatabaseMetaData::getExportedKeys");
Reference< XResultSet > xResultSet(getOwnConnection().getDriver().getFactory()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.comp.helper.DatabaseMetaDataResultSet"))),UNO_QUERY);
std::vector< std::vector< Any > > rRows;
- std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
+ ext_std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
sch(OUStringToOString(schema, m_rConnection.getConnectionEncoding()).getStr()),
tab(OUStringToOString(table, m_rConnection.getConnectionEncoding()).getStr());
@@ -1924,7 +1926,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getImportedKeys(
Reference< XResultSet > xResultSet(getOwnConnection().getDriver().getFactory()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.comp.helper.DatabaseMetaDataResultSet"))),UNO_QUERY);
std::vector< std::vector< Any > > rRows;
- std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
+ ext_std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
sch(OUStringToOString(schema, m_rConnection.getConnectionEncoding()).getStr()),
tab(OUStringToOString(table, m_rConnection.getConnectionEncoding()).getStr());
@@ -1965,7 +1967,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getPrimaryKeys(
Reference< XResultSet > xResultSet(getOwnConnection().getDriver().getFactory()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.comp.helper.DatabaseMetaDataResultSet"))),UNO_QUERY);
std::vector< std::vector< Any > > rRows;
- std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
+ ext_std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
sch(OUStringToOString(schema, m_rConnection.getConnectionEncoding()).getStr()),
tab(OUStringToOString(table, m_rConnection.getConnectionEncoding()).getStr());
@@ -2008,7 +2010,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getIndexInfo(
Reference< XResultSet > xResultSet(getOwnConnection().getDriver().getFactory()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.comp.helper.DatabaseMetaDataResultSet"))),UNO_QUERY);
std::vector< std::vector< Any > > rRows;
- std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
+ ext_std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
sch(OUStringToOString(schema, m_rConnection.getConnectionEncoding()).getStr()),
tab(OUStringToOString(table, m_rConnection.getConnectionEncoding()).getStr());
@@ -2051,7 +2053,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getBestRowIdentifier(
Reference< XResultSet > xResultSet(getOwnConnection().getDriver().getFactory()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.comp.helper.DatabaseMetaDataResultSet"))),UNO_QUERY);
std::vector< std::vector< Any > > rRows;
- std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
+ ext_std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
sch(OUStringToOString(schema, m_rConnection.getConnectionEncoding()).getStr()),
tab(OUStringToOString(table, m_rConnection.getConnectionEncoding()).getStr());
@@ -2092,7 +2094,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTablePrivileges(
Reference< XResultSet > xResultSet(getOwnConnection().getDriver().getFactory()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.comp.helper.DatabaseMetaDataResultSet"))),UNO_QUERY);
std::vector< std::vector< Any > > rRows;
- std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
+ ext_std::string cat(catalog.hasValue()? OUStringToOString(getStringFromAny(catalog), m_rConnection.getConnectionEncoding()).getStr():""),
sPattern(OUStringToOString(schemaPattern, m_rConnection.getConnectionEncoding()).getStr()),
tPattern(OUStringToOString(tableNamePattern, m_rConnection.getConnectionEncoding()).getStr());
@@ -2157,7 +2159,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getCrossReference(
Reference< XResultSet > xResultSet(getOwnConnection().getDriver().getFactory()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("org.openoffice.comp.helper.DatabaseMetaDataResultSet"))),UNO_QUERY);
std::vector< std::vector< Any > > rRows;
- std::string primaryCat(primaryCatalog.hasValue()? OUStringToOString(getStringFromAny(primaryCatalog), m_rConnection.getConnectionEncoding()).getStr():""),
+ ext_std::string primaryCat(primaryCatalog.hasValue()? OUStringToOString(getStringFromAny(primaryCatalog), m_rConnection.getConnectionEncoding()).getStr():""),
foreignCat(foreignCatalog.hasValue()? OUStringToOString(getStringFromAny(foreignCatalog), m_rConnection.getConnectionEncoding()).getStr():""),
pSchema(OUStringToOString(primarySchema, m_rConnection.getConnectionEncoding()).getStr()),
pTable(OUStringToOString(primaryTable, m_rConnection.getConnectionEncoding()).getStr()),
diff --git a/mysqlc/source/mysqlc_databasemetadata.hxx b/mysqlc/source/mysqlc_databasemetadata.hxx
index 8e6680c3ac20..f7f659ce97b8 100644
--- a/mysqlc/source/mysqlc_databasemetadata.hxx
+++ b/mysqlc/source/mysqlc_databasemetadata.hxx
@@ -39,7 +39,9 @@
#include <cppuhelper/implbase1.hxx>
#endif
+#include <tools/preextstl.h>
#include <cppconn/metadata.h>
+#include <tools/postextstl.h>
namespace connectivity
{
@@ -67,8 +69,8 @@ namespace connectivity
bool identifier_quote_string_set;
private:
- OUString impl_getStringMetaData( const sal_Char* _methodName, const std::string& (sql::DatabaseMetaData::*_Method)() );
- OUString impl_getStringMetaData( const sal_Char* _methodName, std::string (sql::DatabaseMetaData::*_Method)() );
+ OUString impl_getStringMetaData( const sal_Char* _methodName, const ext_std::string& (sql::DatabaseMetaData::*_Method)() );
+ OUString impl_getStringMetaData( const sal_Char* _methodName, ext_std::string (sql::DatabaseMetaData::*_Method)() );
OUString impl_getStringMetaData( const sal_Char* _methodName, const sql::SQLString& (sql::DatabaseMetaData::*_Method)() );
OUString impl_getStringMetaData( const sal_Char* _methodName, sql::SQLString (sql::DatabaseMetaData::*_Method)() );
sal_Int32 impl_getInt32MetaData( const sal_Char* _methodName, unsigned int (sql::DatabaseMetaData::*_Method)() );
diff --git a/mysqlc/source/mysqlc_driver.cxx b/mysqlc/source/mysqlc_driver.cxx
index af312af89d00..3513b8072d60 100644
--- a/mysqlc/source/mysqlc_driver.cxx
+++ b/mysqlc/source/mysqlc_driver.cxx
@@ -38,11 +38,13 @@ using namespace connectivity::mysqlc;
using ::rtl::OUString;
#include <stdio.h>
+#include <tools/preextstl.h>
#include <cppconn/exception.h>
#ifdef SYSTEM_MYSQL_CPPCONN
#include <mysql_driver.h>
#endif
+#include <tools/postextstl.h>
/* {{{ MysqlCDriver::MysqlCDriver() -I- */
diff --git a/mysqlc/source/mysqlc_driver.hxx b/mysqlc/source/mysqlc_driver.hxx
index ede8eb9002f0..06e399ca6542 100644
--- a/mysqlc/source/mysqlc_driver.hxx
+++ b/mysqlc/source/mysqlc_driver.hxx
@@ -36,7 +36,9 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <cppuhelper/compbase2.hxx>
+#include <tools/preextstl.h>
#include <cppconn/driver.h>
+#include <tools/postextstl.h>
#include <osl/module.h>
namespace connectivity
diff --git a/mysqlc/source/mysqlc_general.cxx b/mysqlc/source/mysqlc_general.cxx
index 54058f0cef8c..ff37568aba64 100644
--- a/mysqlc/source/mysqlc_general.cxx
+++ b/mysqlc/source/mysqlc_general.cxx
@@ -162,14 +162,14 @@ int mysqlToOOOType(int cppConnType)
}
-::rtl::OUString convert(const ::std::string& _string, const rtl_TextEncoding encoding)
+::rtl::OUString convert(const ::ext_std::string& _string, const rtl_TextEncoding encoding)
{
return ::rtl::OUString( _string.c_str(), _string.size(), encoding );
}
-::std::string convert(const ::rtl::OUString& _string, const rtl_TextEncoding encoding)
+::ext_std::string convert(const ::rtl::OUString& _string, const rtl_TextEncoding encoding)
{
- return ::std::string( ::rtl::OUStringToOString( _string, encoding ).getStr() );
+ return ::ext_std::string( ::rtl::OUStringToOString( _string, encoding ).getStr() );
}
diff --git a/mysqlc/source/mysqlc_general.hxx b/mysqlc/source/mysqlc_general.hxx
index 43cf1c8ef86e..632fb75dd65f 100644
--- a/mysqlc/source/mysqlc_general.hxx
+++ b/mysqlc/source/mysqlc_general.hxx
@@ -30,11 +30,13 @@
#ifndef _MYSQLC_GENERAL_
#define _MYSQLC_GENERAL_
-#include <cppconn/exception.h>
-
#include <com/sun/star/uno/XInterface.hpp>
#include <com/sun/star/sdbc/SQLException.hpp>
+#include <tools/preextstl.h>
+#include <cppconn/exception.h>
+#include <tools/postextstl.h>
+
namespace mysqlc_sdbc_driver
{
rtl::OUString getStringFromAny(const ::com::sun::star::uno::Any& _rAny);
@@ -58,9 +60,9 @@ namespace mysqlc_sdbc_driver
int mysqlToOOOType(int mysqlType) throw ();
- ::rtl::OUString convert(const ::std::string& _string, const rtl_TextEncoding encoding);
+ ::rtl::OUString convert(const ::ext_std::string& _string, const rtl_TextEncoding encoding);
- ::std::string convert(const ::rtl::OUString& _string, const rtl_TextEncoding encoding);
+ ::ext_std::string convert(const ::rtl::OUString& _string, const rtl_TextEncoding encoding);
}
#endif
diff --git a/mysqlc/source/mysqlc_preparedstatement.cxx b/mysqlc/source/mysqlc_preparedstatement.cxx
index a6c1cedb2acb..0bf2f6fdab7a 100644
--- a/mysqlc/source/mysqlc_preparedstatement.cxx
+++ b/mysqlc/source/mysqlc_preparedstatement.cxx
@@ -234,7 +234,7 @@ void SAL_CALL OPreparedStatement::setString(sal_Int32 parameter, const OUString&
checkParameterIndex(parameter);
try {
- std::string stringie(::rtl::OUStringToOString(x, m_pConnection->getConnectionEncoding()).getStr());
+ ext_std::string stringie(::rtl::OUStringToOString(x, m_pConnection->getConnectionEncoding()).getStr());
((sql::PreparedStatement *)cppStatement)->setString(parameter, stringie);
} catch (sql::MethodNotImplementedException) {
mysqlc_sdbc_driver::throwFeatureNotImplementedException("OPreparedStatement::clearParameters", *this);
@@ -344,7 +344,7 @@ void SAL_CALL OPreparedStatement::setDate(sal_Int32 parameter, const Date& aData
checkDisposed(OPreparedStatement::rBHelper.bDisposed);
checkParameterIndex(parameter);
- std::string dateStr;
+ ext_std::string dateStr;
char buf[20];
dateStr.append(my_i_to_a(buf, sizeof(buf)-1, aData.Year));
dateStr.append("-", 1);
@@ -372,7 +372,7 @@ void SAL_CALL OPreparedStatement::setTime(sal_Int32 parameter, const Time& aVal)
checkDisposed(OPreparedStatement::rBHelper.bDisposed);
checkParameterIndex(parameter);
- std::string timeStr;
+ ext_std::string timeStr;
char buf[20];
timeStr.append(my_i_to_a(buf, sizeof(buf)-1, aVal.Hours));
timeStr.append(":", 1);
@@ -400,7 +400,7 @@ void SAL_CALL OPreparedStatement::setTimestamp(sal_Int32 parameter, const DateTi
checkDisposed(OPreparedStatement::rBHelper.bDisposed);
checkParameterIndex(parameter);
- std::string timeStr;
+ ext_std::string timeStr;
char buf[20];
timeStr.append(my_i_to_a(buf, sizeof(buf)-1, aVal.Year));
timeStr.append("-", 1);
@@ -805,7 +805,7 @@ void SAL_CALL OPreparedStatement::setBytes(sal_Int32 parameter, const Sequence<
checkDisposed(OPreparedStatement::rBHelper.bDisposed);
checkParameterIndex(parameter);
- std::string blobby((char *)x.getConstArray(), x.getLength());
+ ext_std::string blobby((char *)x.getConstArray(), x.getLength());
try {
((sql::PreparedStatement *)cppStatement)->setString(parameter, blobby);
} catch (sql::MethodNotImplementedException) {
diff --git a/mysqlc/source/mysqlc_preparedstatement.hxx b/mysqlc/source/mysqlc_preparedstatement.hxx
index f58e59982aaa..eb53bdcbd839 100644
--- a/mysqlc/source/mysqlc_preparedstatement.hxx
+++ b/mysqlc/source/mysqlc_preparedstatement.hxx
@@ -48,7 +48,9 @@
#include <com/sun/star/io/XInputStream.hpp>
#endif
+#include <tools/preextstl.h>
#include <cppconn/prepared_statement.h>
+#include <tools/postextstl.h>
namespace connectivity
{
diff --git a/mysqlc/source/mysqlc_resultsetmetadata.hxx b/mysqlc/source/mysqlc_resultsetmetadata.hxx
index 7793179a0844..ca3844d63351 100644
--- a/mysqlc/source/mysqlc_resultsetmetadata.hxx
+++ b/mysqlc/source/mysqlc_resultsetmetadata.hxx
@@ -35,7 +35,9 @@
#include <com/sun/star/sdbc/XResultSetMetaData.hpp>
#include <cppuhelper/implbase1.hxx>
+#include <tools/preextstl.h>
#include <cppconn/resultset_metadata.h>
+#include <tools/postextstl.h>
namespace connectivity
{
@@ -62,7 +64,7 @@ namespace connectivity
{
}
- inline ::rtl::OUString convert( const ::std::string& _string ) const
+ inline ::rtl::OUString convert( const ::ext_std::string& _string ) const
{
return ::rtl::OUString( _string.c_str(), _string.size(), m_encoding );
}
diff --git a/mysqlc/source/mysqlc_statement.hxx b/mysqlc/source/mysqlc_statement.hxx
index e33244e987fd..34273f617d58 100644
--- a/mysqlc/source/mysqlc_statement.hxx
+++ b/mysqlc/source/mysqlc_statement.hxx
@@ -13,7 +13,9 @@
#include <com/sun/star/sdbc/XWarningsSupplier.hpp>
#include <com/sun/star/util/XCancellable.hpp>
+#include <tools/preextstl.h>
#include <cppconn/statement.h>
+#include <tools/postextstl.h>
#include <cppuhelper/compbase5.hxx>
#include <list>
diff --git a/mysqlcppconn/makefile.mk b/mysqlcppconn/makefile.mk
index b8ae91492e2e..9fe9c646ab7a 100644
--- a/mysqlcppconn/makefile.mk
+++ b/mysqlcppconn/makefile.mk
@@ -43,6 +43,7 @@ EXT_PROJECT_NAME=mysql-connector-cpp
# --- Files --------------------------------------------------------
TARFILE_NAME=$(EXT_PROJECT_NAME)
+TARFILE_MD5=831126a1ee5af269923cfab6050769fe
ADDITIONAL_FILES=\
driver$/makefile.mk \
driver$/nativeapi$/makefile.mk \
diff --git a/neon/makefile.mk b/neon/makefile.mk
index e545a534d50a..d296db7a3f98 100644
--- a/neon/makefile.mk
+++ b/neon/makefile.mk
@@ -1,7 +1,7 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -49,6 +49,7 @@ TARGET=so_neon
NEON_NAME=neon-0.29.3
TARFILE_NAME=$(NEON_NAME)
+TARFILE_MD5=ba1015b59c112d44d7797b62fe7bee51
PATCH_FILES=neon.patch
.IF "$(GUI)"=="WNT"
diff --git a/neon/neon.patch b/neon/neon.patch
index b990411fd729..3d4e5019e0b7 100644
--- a/neon/neon.patch
+++ b/neon/neon.patch
@@ -1,5 +1,5 @@
---- misc/neon-0.29.3/src/config.h 2010-01-27 12:46:23.000000000 +0100
-+++ misc/build/neon-0.29.3/src/config.h 2010-01-27 12:44:10.000000000 +0100
+--- misc/neon-0.29.3/src/config.h 2010-03-23 14:47:43.000000000 +0100
++++ misc/build/neon-0.29.3/src/config.h 2010-03-23 12:19:50.000000000 +0100
@@ -1 +1,488 @@
-dummy
+
@@ -490,9 +490,9 @@
+#else
+#define HAVE_NTLM 1
+#endif
---- misc/neon-0.29.3/src/makefile.mk 2010-01-27 12:46:23.000000000 +0100
-+++ misc/build/neon-0.29.3/src/makefile.mk 2010-01-27 12:44:10.000000000 +0100
-@@ -1 +1,101 @@
+--- misc/neon-0.29.3/src/makefile.mk 2010-03-23 14:47:43.000000000 +0100
++++ misc/build/neon-0.29.3/src/makefile.mk 2010-03-23 14:45:21.000000000 +0100
+@@ -1 +1,102 @@
-dummy
+PRJ=..$/..$/..$/..$/..
+
@@ -500,6 +500,7 @@
+TARGET=neon
+LIBTARGET=NO
+USE_DEFFILE=TRUE
++NO_DEFAULT_STL=TRUE
+EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
+UWINAPILIB=
+
@@ -596,7 +597,7 @@
+DEF1NAME=$(SHL1TARGET)
+.INCLUDE : target.mk
--- misc/neon-0.29.3/src/ne_auth.c 2009-12-30 22:29:30.000000000 +0100
-+++ misc/build/neon-0.29.3/src/ne_auth.c 2010-01-27 12:45:34.000000000 +0100
++++ misc/build/neon-0.29.3/src/ne_auth.c 2010-03-23 12:19:50.000000000 +0100
@@ -367,7 +367,7 @@
static int get_credentials(auth_session *sess, ne_buffer **errmsg, int attempt,
struct auth_challenge *chall, char *pwbuf)
@@ -634,7 +635,7 @@
return status;
}
--- misc/neon-0.29.3/src/ne_auth.h 2009-09-01 22:13:12.000000000 +0200
-+++ misc/build/neon-0.29.3/src/ne_auth.h 2010-01-27 12:44:10.000000000 +0100
++++ misc/build/neon-0.29.3/src/ne_auth.h 2010-03-23 12:19:50.000000000 +0100
@@ -47,8 +47,8 @@
* Hint: if you just wish to attempt authentication just once (even if
* the user gets the username/password wrong), have the callback
@@ -647,7 +648,7 @@
/* Set callbacks to provide credentials for server and proxy
* authentication, using the default set of authentication protocols.
--- misc/neon-0.29.3/src/ne_defs.h 2009-09-02 16:04:43.000000000 +0200
-+++ misc/build/neon-0.29.3/src/ne_defs.h 2010-01-27 12:44:10.000000000 +0100
++++ misc/build/neon-0.29.3/src/ne_defs.h 2010-03-23 12:19:50.000000000 +0100
@@ -41,7 +41,7 @@
#endif
@@ -658,7 +659,7 @@
#endif
--- misc/neon-0.29.3/src/ne_locks.c 2007-02-05 11:09:27.000000000 +0100
-+++ misc/build/neon-0.29.3/src/ne_locks.c 2010-01-27 12:44:10.000000000 +0100
++++ misc/build/neon-0.29.3/src/ne_locks.c 2010-03-23 12:19:50.000000000 +0100
@@ -579,6 +579,23 @@
const char *token = ne_get_response_header(ctx->req, "Lock-Token");
/* at the root element; retrieve the Lock-Token header,
@@ -726,7 +727,7 @@
}
}
--- misc/neon-0.29.3/src/ne_locks.h 2006-01-02 12:43:19.000000000 +0100
-+++ misc/build/neon-0.29.3/src/ne_locks.h 2010-01-27 12:44:10.000000000 +0100
++++ misc/build/neon-0.29.3/src/ne_locks.h 2010-03-23 12:19:50.000000000 +0100
@@ -22,6 +22,10 @@
#ifndef NE_LOCKS_H
#define NE_LOCKS_H
@@ -739,7 +740,7 @@
#include "ne_uri.h" /* for ne_uri */
--- misc/neon-0.29.3/src/ne_sspi.c 2007-08-10 17:26:08.000000000 +0200
-+++ misc/build/neon-0.29.3/src/ne_sspi.c 2010-01-27 12:44:10.000000000 +0100
++++ misc/build/neon-0.29.3/src/ne_sspi.c 2010-03-23 12:19:50.000000000 +0100
@@ -206,6 +206,45 @@
}
@@ -826,7 +827,7 @@
securityStatus =
initializeSecurityContext(&sspiContext->credentials, NULL,
--- misc/neon-0.29.3/src/ne_sspi.h 2006-02-12 13:05:14.000000000 +0100
-+++ misc/build/neon-0.29.3/src/ne_sspi.h 2010-01-27 12:44:10.000000000 +0100
++++ misc/build/neon-0.29.3/src/ne_sspi.h 2010-03-23 12:19:50.000000000 +0100
@@ -41,7 +41,7 @@
int ne_sspi_clear_context(void *context);
@@ -837,7 +838,7 @@
#endif /* HAVE_SSPI */
--- misc/neon-0.29.3/src/ne_uri.c 2007-12-05 12:04:47.000000000 +0100
-+++ misc/build/neon-0.29.3/src/ne_uri.c 2010-01-27 12:44:10.000000000 +0100
++++ misc/build/neon-0.29.3/src/ne_uri.c 2010-03-23 12:19:50.000000000 +0100
@@ -42,7 +42,7 @@
#include "ne_alloc.h"
#include "ne_uri.h"
@@ -884,7 +885,7 @@
/* 4x */ AT, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
/* 5x */ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, GD, OT, GD, OT, US,
--- misc/neon-0.29.3/src/ne_utils.c 2006-03-07 10:36:43.000000000 +0100
-+++ misc/build/neon-0.29.3/src/ne_utils.c 2010-01-27 12:44:10.000000000 +0100
++++ misc/build/neon-0.29.3/src/ne_utils.c 2010-03-23 12:19:50.000000000 +0100
@@ -118,6 +118,9 @@
#ifdef HAVE_GNUTLS
", GNU TLS " LIBGNUTLS_VERSION
@@ -915,7 +916,7 @@
#endif /* NE_HAVE_* */
default:
--- misc/neon-0.29.3/src/ne_utils.h 2007-07-16 08:54:57.000000000 +0200
-+++ misc/build/neon-0.29.3/src/ne_utils.h 2010-01-27 12:44:10.000000000 +0100
++++ misc/build/neon-0.29.3/src/ne_utils.h 2010-03-23 12:19:50.000000000 +0100
@@ -54,6 +54,7 @@
#define NE_FEATURE_SOCKS (5) /* SOCKSv5 support */
#define NE_FEATURE_TS_SSL (6) /* Thread-safe SSL/TLS support */
diff --git a/neon/neon_exports_unix.patch b/neon/neon_exports_unix.patch
index 55bdaac7adc4..f5c2ce8afea3 100644
--- a/neon/neon_exports_unix.patch
+++ b/neon/neon_exports_unix.patch
@@ -1,7 +1,7 @@
--- misc/neon-0.29.3/src/exports.map 2009-09-29 10:28:13.531250000 +0200
+++ misc/build/neon-0.29.3/src/exports.map 2009-09-21 12:16:53.453125000 +0200
@@ -0,0 +1,288 @@
-+NEON_0_29_3 {
++UDK_3_0_0 {
+ global:
+ ne__negotiate_ssl;
+ ne__ssl_exit;
diff --git a/neon/neon_exports_win.patch b/neon/neon_exports_win.patch
index 09bc86eebce4..85d73da2b41d 100644
--- a/neon/neon_exports_win.patch
+++ b/neon/neon_exports_win.patch
@@ -1,7 +1,7 @@
--- misc/neon-0.29.3/src/exports.map 2009-09-29 10:28:13.531250000 +0200
+++ misc/build/neon-0.29.3/src/exports.map 2009-09-21 12:16:53.453125000 +0200
@@ -0,0 +1,294 @@
-+NEON_0_29_3 {
++UDK_3_0_0 {
+ global:
+ ne_sspi_authenticate;
+ ne_sspi_clear_context;
diff --git a/neon/prj/build.lst b/neon/prj/build.lst
index 2a133605b11e..a9786c796bd2 100755
--- a/neon/prj/build.lst
+++ b/neon/prj/build.lst
@@ -1,3 +1,3 @@
-xh neon : OPENSSL:openssl soltools external EXPAT:expat LIBXML2:libxml2 NULL
+xh neon : OPENSSL:openssl ZLIB:zlib stlport soltools external EXPAT:expat LIBXML2:libxml2 NULL
xh neon usr1 - all xh_mkout NULL
xh neon nmake - all xh_neon NULL
diff --git a/nss/makefile.mk b/nss/makefile.mk
index 55b3e7d118f2..78de2a9afbf3 100644
--- a/nss/makefile.mk
+++ b/nss/makefile.mk
@@ -42,6 +42,7 @@ all:
.ENDIF
TARFILE_NAME=nss_3_12_5
+TARFILE_MD5=6244eb0b6e2647ee50470951fa6efb47
TARFILE_ROOTDIR=mozilla
PATCH_FILES=nss.patch
@@ -134,12 +135,8 @@ OUT2LIB= \
.ELSE # "$(COM)"=="GCC"
MOZ_MSVCVERSION= 9
.EXPORT : MOZ_MSVCVERSION
-.IF "$(USE_SHELL)"=="4nt"
-PATH!:=$(MOZILLABUILD)/msys/bin;$(MOZILLABUILD)/moztools/bin;$(PATH)
-.ELSE # $(USE_SHELL)"=="4nt"
moz_build:=$(shell cygpath -p $(MOZILLABUILD))
PATH!:=$(moz_build)/msys/bin:$(moz_build)/moztools/bin:$(PATH)
-.ENDIF # $(USE_SHELL)"=="4nt"
.EXPORT : PATH
#Using WINNT will cause at least that nspr4.dll, plc4.dll, plds4.dll
diff --git a/o3tl/inc/o3tl/vector_pool.hxx b/o3tl/inc/o3tl/vector_pool.hxx
new file mode 100644
index 000000000000..19fc3d6d74c4
--- /dev/null
+++ b/o3tl/inc/o3tl/vector_pool.hxx
@@ -0,0 +1,132 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: lazy_update.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_O3TL_VECTOR_POOL_HXX
+#define INCLUDED_O3TL_VECTOR_POOL_HXX
+
+#include <sal/types.h>
+#include <vector>
+
+namespace o3tl
+{
+ namespace detail
+ {
+ template<typename ValueType, class Container> class simple_pool_impl :
+ public Container
+ {
+ typedef typename Container::value_type value_type;
+ std::ptrdiff_t mnFirstFreeIndex;
+
+ public:
+ simple_pool_impl() :
+ mnFirstFreeIndex(-1)
+ {}
+
+ std::ptrdiff_t alloc()
+ {
+ return store(ValueType());
+ }
+
+ std::ptrdiff_t store(const ValueType& rCopy)
+ {
+ if( mnFirstFreeIndex != -1 )
+ {
+ std::ptrdiff_t nIdx=mnFirstFreeIndex;
+ mnFirstFreeIndex = this->at(mnFirstFreeIndex).nextFree;
+ this->at(nIdx).value = rCopy;
+ this->at(nIdx).nextFree = -1;
+
+ return nIdx;
+ }
+ else
+ {
+ push_back(value_type(rCopy));
+ return this->size()-1;
+ }
+ }
+
+ void free( std::ptrdiff_t nIdx )
+ {
+ this->at(nIdx).nextFree = mnFirstFreeIndex;
+ mnFirstFreeIndex = nIdx;
+ }
+
+ const ValueType& get( std::ptrdiff_t nIdx ) const
+ {
+ return this->operator[](nIdx).value;
+ }
+ ValueType& get( std::ptrdiff_t nIdx )
+ {
+ return this->operator[](nIdx).value;
+ }
+ };
+
+ template< typename ValueType > struct struct_from_value
+ {
+ struct type
+ {
+ type() :
+ value(),
+ nextFree(-1)
+ {}
+ explicit type( const ValueType& val ) :
+ value(val),
+ nextFree(-1)
+ {}
+
+ ValueType value;
+ std::ptrdiff_t nextFree;
+ };
+ };
+ }
+
+ /** Simple vector-based memory pool allocator
+
+ This template can be used to provide simple pooled memory
+ allocation from a container class that adheres to the stl
+ random access container concept. Note that alloc/free works
+ with _indices_ into the container!
+
+ @example
+ <pre>
+vector_pool<type> myPool;
+int nIdx=myPool.alloc();
+myPool[nIdx] = myVal;
+ ... do stuff ...
+myPool.free(nIdx);
+ </pre>
+ */
+ template<typename ValueType> struct vector_pool :
+ public detail::simple_pool_impl<ValueType,
+ std::vector<typename detail::struct_from_value<ValueType>::type > >
+ {};
+}
+
+#endif /* INCLUDED_O3TL_VECTOR_POOL_HXX */
diff --git a/o3tl/prj/build.lst b/o3tl/prj/build.lst
index 98293257e4bd..2606d1df8586 100644
--- a/o3tl/prj/build.lst
+++ b/o3tl/prj/build.lst
@@ -1,4 +1,4 @@
-ot o3tl : sal testshl2 BOOST:boost NULL
+ot o3tl : sal CPPUNIT:cppunit BOOST:boost NULL
ot o3tl usr1 - all ot_mkout NULL
ot o3tl\inc get - all ot_inc NULL
ot o3tl\prj get - all ot_prj NULL
diff --git a/o3tl/qa/export.map b/o3tl/qa/export.map
index 709047ae63e5..3308588ef6f8 100644
--- a/o3tl/qa/export.map
+++ b/o3tl/qa/export.map
@@ -25,9 +25,9 @@
#
#*************************************************************************
-UDK_3.1 {
+UDK_3_0_0 {
global:
- registerAllTestFunction;
+ cppunitTestPlugIn;
local:
*;
diff --git a/o3tl/qa/makefile.mk b/o3tl/qa/makefile.mk
index 7effe534bbee..3475aeeca9bb 100644
--- a/o3tl/qa/makefile.mk
+++ b/o3tl/qa/makefile.mk
@@ -35,6 +35,9 @@ ENABLE_EXCEPTIONS=TRUE
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
+
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
.IF "$(L10N_framework)"==""
# --- Common ----------------------------------------------------------
@@ -42,18 +45,19 @@ ENABLE_EXCEPTIONS=TRUE
SHL1OBJS= \
$(SLO)$/cow_wrapper_clients.obj \
$(SLO)$/test-cow_wrapper.obj \
+ $(SLO)$/test-vector_pool.obj \
$(SLO)$/test-heap_ptr.obj \
$(SLO)$/test-range.obj
SHL1TARGET= tests
SHL1STDLIBS= $(SALLIB) \
- $(TESTSHL2LIB)\
$(CPPUNITLIB)
SHL1IMPLIB= i$(SHL1TARGET)
DEF1NAME =$(SHL1TARGET)
SHL1VERSIONMAP = export.map
+SHL1RPATH = NONE
# END ------------------------------------------------------------------
@@ -65,16 +69,9 @@ SLOFILES=$(SHL1OBJS)
.ENDIF # L10N_framework
.INCLUDE : target.mk
-.INCLUDE : _cppunit.mk
# --- Enable test execution in normal build ------------------------
.IF "$(L10N_framework)"==""
-unittest : $(SHL1TARGETN)
- @echo ----------------------------------------------------------
- @echo - start unit test on library $(SHL1TARGETN)
- @echo ----------------------------------------------------------
- $(TESTSHL2) -sf $(mktmp ) $(SHL1TARGETN)
-
-ALLTAR : unittest
+.INCLUDE : _cppunit.mk
.ENDIF # L10N_framework
diff --git a/o3tl/qa/test-cow_wrapper.cxx b/o3tl/qa/test-cow_wrapper.cxx
index eebbb633f82b..84d615fca3db 100644
--- a/o3tl/qa/test-cow_wrapper.cxx
+++ b/o3tl/qa/test-cow_wrapper.cxx
@@ -1,6 +1,9 @@
// autogenerated file with codegen.pl
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
#include "cow_wrapper_clients.hxx"
@@ -119,15 +122,6 @@ public:
};
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(cow_wrapper_test, "cow_wrapper_test");
-
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-void RegisterAdditionalFunctions(FktRegFuncPtr )
-{
-}
-// NOADDITIONAL;
+CPPUNIT_TEST_SUITE_REGISTRATION(cow_wrapper_test);
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/o3tl/qa/test-heap_ptr.cxx b/o3tl/qa/test-heap_ptr.cxx
index 44dc2083947a..fe2f78eec8af 100644
--- a/o3tl/qa/test-heap_ptr.cxx
+++ b/o3tl/qa/test-heap_ptr.cxx
@@ -25,7 +25,9 @@
*
************************************************************************/
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
#include <o3tl/heap_ptr.hxx>
@@ -160,4 +162,4 @@ class heap_ptr_test : public CppUnit::TestFixture
}; // class heap_ptr_test
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(heap_ptr_test, "o3tltests");
+CPPUNIT_TEST_SUITE_REGISTRATION(heap_ptr_test);
diff --git a/o3tl/qa/test-range.cxx b/o3tl/qa/test-range.cxx
index 9ead908675b9..31cf2aec7c10 100644
--- a/o3tl/qa/test-range.cxx
+++ b/o3tl/qa/test-range.cxx
@@ -25,8 +25,9 @@
*
************************************************************************/
-
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
#include <o3tl/range.hxx>
#include <vector>
@@ -230,4 +231,4 @@ public:
}; // class range_test
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(range_test, "o3tltests");
+CPPUNIT_TEST_SUITE_REGISTRATION(range_test);
diff --git a/o3tl/qa/test-vector_pool.cxx b/o3tl/qa/test-vector_pool.cxx
new file mode 100644
index 000000000000..4efaebdd3414
--- /dev/null
+++ b/o3tl/qa/test-vector_pool.cxx
@@ -0,0 +1,69 @@
+// autogenerated file with codegen.pl
+
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+
+#include <o3tl/vector_pool.hxx>
+
+using namespace ::o3tl;
+
+class vector_pool_test : public CppUnit::TestFixture
+{
+public:
+ void testPoolBasics()
+ {
+ vector_pool<int> aPool;
+
+ std::ptrdiff_t nIdx1 = aPool.alloc();
+ std::ptrdiff_t nIdx2 = aPool.alloc();
+ std::ptrdiff_t nIdx3 = aPool.alloc();
+
+ CPPUNIT_ASSERT_MESSAGE("allocator idx order 1", nIdx1 < nIdx2 );
+ CPPUNIT_ASSERT_MESSAGE("allocator idx order 2", nIdx2 < nIdx3 );
+
+ aPool.free(nIdx2);
+ aPool.free(nIdx3);
+
+ nIdx2 = aPool.alloc();
+ nIdx3 = aPool.alloc();
+
+ CPPUNIT_ASSERT_MESSAGE("allocator idx order 1 after fragmentation", nIdx1 < nIdx3 );
+ CPPUNIT_ASSERT_MESSAGE("allocator idx order 2 after fragmentation", nIdx3 < nIdx2 );
+ }
+
+ void testPoolValueSemantics()
+ {
+ vector_pool<int> aPool;
+
+ std::ptrdiff_t nIdx1 = aPool.store(0);
+ CPPUNIT_ASSERT_MESSAGE("allocator value semantics 1", aPool.get(nIdx1) == 0 );
+
+ std::ptrdiff_t nIdx2 = aPool.store(1);
+ CPPUNIT_ASSERT_MESSAGE("allocator value semantics 2", aPool.get(nIdx2) == 1 );
+
+ std::ptrdiff_t nIdx3 = aPool.store(2);
+ CPPUNIT_ASSERT_MESSAGE("allocator value semantics 3", aPool.get(nIdx3) == 2 );
+
+ aPool.free(nIdx2);
+ aPool.free(nIdx3);
+
+ nIdx2 = aPool.store(1);
+ CPPUNIT_ASSERT_MESSAGE("allocator value semantics 2 after fragmentation", aPool.get(nIdx2) == 1 );
+
+ nIdx3 = aPool.store(2);
+ CPPUNIT_ASSERT_MESSAGE("allocator value semantics 3 after fragmentation", aPool.get(nIdx3) == 2 );
+ }
+
+ // Change the following lines only, if you add, remove or rename
+ // member functions of the current class,
+ // because these macros are need by auto register mechanism.
+
+ CPPUNIT_TEST_SUITE(vector_pool_test);
+ CPPUNIT_TEST(testPoolBasics);
+ CPPUNIT_TEST(testPoolValueSemantics);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+// -----------------------------------------------------------------------------
+CPPUNIT_TEST_SUITE_REGISTRATION(vector_pool_test);
diff --git a/odk/docs/common/ref/idl.css b/odk/docs/common/ref/idl.css
index 3fdb1a07a00c..6327b9243f80 100644
--- a/odk/docs/common/ref/idl.css
+++ b/odk/docs/common/ref/idl.css
@@ -6,9 +6,9 @@
body { background-color:#ffffff; }
#adc-idlref a { text-decoration: none; }
-#adc-idlref a:link { color: #C44B01; }
+#adc-idlref a:link { color: #0e85cd; }
#adc-idlref a:visited { color: #638093; }
-#adc-idlref a:active { color: #9DCA12; }
+#adc-idlref a:active { color: #4dadea; }
#adc-idlref h3
{ font-size:13pt; font-weight:bold;
@@ -26,13 +26,13 @@ body { background-color:#ffffff; }
#adc-idlref td.title
{ font-family: Arial; font-size:19pt; font-weight:bold;
line-height:30pt;
- background-image:url(../../images/bg_table.gif);
+ background-image:url(../../images/bg_table.png);
text-align:center; }
#adc-idlref td.subtitle
{ font-family: Arial; font-size:13pt;
line-height:20pt;
- background-image:url(../../images/bg_table.gif); }
+ background-image:url(../../images/bg_table.png); }
#adc-idlref td.crosstitle
{ font-size:12pt; font-weight:bold;
@@ -40,15 +40,15 @@ body { background-color:#ffffff; }
#adc-idlref td.imdetail
{ width:100%;
- background-image:url(../../images/bg_table3.gif); }
+ background-image:url(../../images/bg_table3.png); }
#adc-idlref td.imsum_left { width:30%; }
#adc-idlref td.imsum_right { width:70%; }
-#adc-idlref table.navimain { background-image:url(../../images/bg_table2.gif); }
+#adc-idlref table.navimain { background-image:url(../../images/bg_table2.png); }
#adc-idlref td.navimain
- { background-image:url(../../images/bg_table2.gif);
+ { background-image:url(../../images/bg_table2.png);
text-align:center;
font-family: Arial; font-size:12pt; font-weight:bold;
padding-left:7pt; padding-right:7pt; }
@@ -79,13 +79,12 @@ body { background-color:#ffffff; }
#adc-idlref a.membertitle { font-size:12pt; font-weight:bold; line-height:18pt; }
-#adc-idlref a:link.navimain, #adc-idlref a:link.navisub { color:#C44B01; }
+#adc-idlref a:link.navimain, #adc-idlref a:link.navisub { color:#0e85cd; }
#adc-idlref a:visited.navimain, #adc-idlref a:visited.navisub { color: #638093; }
-#adc-idlref a:active.navimain, #adc-idlref a:active.navisub { color: #9DCA12; }
+#adc-idlref a:active.navimain, #adc-idlref a:active.navisub { color: #4dadea; }
#adc-idlref .dt { font-weight:bold; }
-#adc-idlref .namechain { font-size:13pt; font-weight:bold;
- margin-top:3pt; margin-bottom:6pt; }
+#adc-idlref .namechain { font-size:13pt; font-weight:bold; margin-top:3pt; margin-bottom:6pt; }
#adc-idlref .title2 { font-size:13pt; font-style:italic; font-weight:bold; text-align:left; }
#adc-idlref table { empty-cells:show; }
diff --git a/odk/docs/cpp/ref/cpp.css b/odk/docs/cpp/ref/cpp.css
index d657b2b17244..b8286999bf19 100755..100644
--- a/odk/docs/cpp/ref/cpp.css
+++ b/odk/docs/cpp/ref/cpp.css
@@ -4,9 +4,9 @@
body { background-color:#ffffff; }
#adc-cppref a { text-decoration: none; }
-#adc-cppref a:link { color: #C44B01; }
+#adc-cppref a:link { color: #0e85cd; }
#adc-cppref a:visited { color: #638093; }
-#adc-cppref a:active { color: #9DCA12; }
+#adc-cppref a:active { color: #4dadea; }
#adc-cppref h1 { font-size:20pt; margin-top:3pt; margin-bottom:7pt; }
#adc-cppref h2 { font-family:Arial; font-size:16pt; margin-top:3pt; margin-bottom:5pt; }
@@ -14,7 +14,7 @@ body { background-color:#ffffff; }
#adc-cppref h4 { font-size:10pt; font-weight:bold; margin-top:2pt; margin-bottom:1pt; }
#adc-cppref dl { margin-top:1pt; margin-bottom:1pt; }
#adc-cppref dl.member { margin-top:1pt; margin-bottom:1pt;
- background-image:url(../../images/bg_table3.gif); }
+ background-image:url(../../images/bg_table3.png); }
#adc-cppref dt { font-size:10pt; font-weight:bold; margin-top:2pt; margin-bottom:1pt; }
#adc-cppref dt.member { font-size:13pt; font-weight:bold; margin-top:2pt; margin-bottom:1pt; }
#adc-cppref dt.simple { font-size:10pt; font-weight:normal; margin-top:2pt; margin-bottom:1pt; }
@@ -25,43 +25,43 @@ body { background-color:#ffffff; }
#adc-cppref tr { font-size:10pt; }
#adc-cppref td { font-size:10pt; }
-#adc-cppref dt.attention { color:#dd0000; }
+#adc-cppref dt.attention { color:#ff0000; }
#adc-cppref div.title { text-align:center; line-height:26pt;
- background-image:url(../../images/bg_table.gif); }
-#adc-cppref .subtitle { background-image:url(../../images/bg_table.gif); }
+ background-image:url(../../images/bg_table.png); }
+#adc-cppref .subtitle { background-image:url(../../images/bg_table.png); }
-#adc-cppref td.flagname { background-image:url(../../images/bg_table2.gif);
+#adc-cppref td.flagname { background-image:url(../../images/bg_table2.png);
font-family:Arial; font-size:8pt; font-weight:bold; }
#adc-cppref td.flagyes { font-family:Arial; font-size:8pt; font-weight:bold; }
#adc-cppref td.flagno { font-family:Arial; font-size:8pt; }
#adc-cppref td.flagtext { font-family:Arial; font-size:8pt; font-weight:bold; }
#adc-cppref td.navimain, td.navimain a
- { background-image:url(../../images/bg_table2.gif);
+ { background-image:url(../../images/bg_table2.png);
font-family:Arial; font-size:12pt; font-weight:bold; }
/* background-color:#eeeeff; color:#000000; */
#adc-cppref td.navimainself
- { background-color:#2222ad; color:#ffffff;
+ { background-color:#226bb0; color:#ffffff;
font-family:Arial; font-size:12pt; font-weight:bold; }
#adc-cppref td.navimainnone
- { background-image:url(../../images/bg_table2.gif);
+ { background-image:url(../../images/bg_table2.png);
font-family:Arial; font-size:12pt; }
-#adc-cppref div.define { font-family:Arial; background-color:#ccccff; }
+#adc-cppref div.define { font-family:Arial; background-color:#87c2e6; }
#adc-cppref .nqclass { color:#008800; }
-#adc-cppref h3.help { background-color:#eeeeff; margin-top:12pt; }
+#adc-cppref h3.help { background-color:#cfe7f5; margin-top:12pt; }
-#adc-cppref .btpubl { color:#33ff33; }
-#adc-cppref .btprot { color:#cc9933; }
-#adc-cppref .btpriv { color:#ff6666; }
-#adc-cppref .btvpubl { color:#33ff33; font-style:italic; }
-#adc-cppref .btvprot { color:#cc9933; font-style:italic; }
-#adc-cppref .btvpriv { color:#ff6666; font-style:italic; }
+#adc-cppref .btpubl { color:#87c2e6; }
+#adc-cppref .btprot { color:#226bb0; }
+#adc-cppref .btpriv { color:#06348c; }
+#adc-cppref .btvpubl { color:#87c2e6; font-style:italic; }
+#adc-cppref .btvprot { color:#226bb0; font-style:italic; }
+#adc-cppref .btvpriv { color:#06348c; font-style:italic; }
#adc-cppref .btself { font-weight:bold; }
#adc-cppref table { empty-cells:show; }
diff --git a/odk/docs/images/arrow-1.gif b/odk/docs/images/arrow-1.gif
index e58046ae9d5a..99da8a7d5b0f 100644
--- a/odk/docs/images/arrow-1.gif
+++ b/odk/docs/images/arrow-1.gif
Binary files differ
diff --git a/odk/docs/images/arrow-2.gif b/odk/docs/images/arrow-2.gif
index 94e7a2673e9e..2e2b20d7d325 100644
--- a/odk/docs/images/arrow-2.gif
+++ b/odk/docs/images/arrow-2.gif
Binary files differ
diff --git a/odk/docs/images/arrow-3.gif b/odk/docs/images/arrow-3.gif
index e58046ae9d5a..99da8a7d5b0f 100644
--- a/odk/docs/images/arrow-3.gif
+++ b/odk/docs/images/arrow-3.gif
Binary files differ
diff --git a/odk/docs/images/bg_table.png b/odk/docs/images/bg_table.png
new file mode 100644
index 000000000000..eb5d4f2f7381
--- /dev/null
+++ b/odk/docs/images/bg_table.png
Binary files differ
diff --git a/odk/docs/images/bg_table2.png b/odk/docs/images/bg_table2.png
new file mode 100644
index 000000000000..d0cafddfecaa
--- /dev/null
+++ b/odk/docs/images/bg_table2.png
Binary files differ
diff --git a/odk/docs/images/bg_table3.png b/odk/docs/images/bg_table3.png
new file mode 100644
index 000000000000..2759066df928
--- /dev/null
+++ b/odk/docs/images/bg_table3.png
Binary files differ
diff --git a/odk/docs/images/nav_down.png b/odk/docs/images/nav_down.png
index 4f2cf361a3dd..fee3fbf30bea 100644
--- a/odk/docs/images/nav_down.png
+++ b/odk/docs/images/nav_down.png
Binary files differ
diff --git a/odk/docs/images/nav_left.png b/odk/docs/images/nav_left.png
index 605501566a97..b2f5da725fb0 100644
--- a/odk/docs/images/nav_left.png
+++ b/odk/docs/images/nav_left.png
Binary files differ
diff --git a/odk/docs/images/nav_right.png b/odk/docs/images/nav_right.png
index 6b8c2185b2c3..87310372a2f6 100644
--- a/odk/docs/images/nav_right.png
+++ b/odk/docs/images/nav_right.png
Binary files differ
diff --git a/odk/docs/images/nav_up.png b/odk/docs/images/nav_up.png
index 5576317aa47d..8267ada19789 100644
--- a/odk/docs/images/nav_up.png
+++ b/odk/docs/images/nav_up.png
Binary files differ
diff --git a/odk/docs/images/odk-footer-logo.gif b/odk/docs/images/odk-footer-logo.gif
new file mode 100644
index 000000000000..e79cd7143ac3
--- /dev/null
+++ b/odk/docs/images/odk-footer-logo.gif
Binary files differ
diff --git a/odk/docs/images/ooo-main-app_32.png b/odk/docs/images/ooo-main-app_32.png
index f2e6e9e4d451..296c6f4c58b1 100644
--- a/odk/docs/images/ooo-main-app_32.png
+++ b/odk/docs/images/ooo-main-app_32.png
Binary files differ
diff --git a/odk/docs/images/orc-main-app_32.png b/odk/docs/images/orc-main-app_32.png
new file mode 100644
index 000000000000..b596295abba1
--- /dev/null
+++ b/odk/docs/images/orc-main-app_32.png
Binary files differ
diff --git a/odk/docs/images/sdk_head-1.gif b/odk/docs/images/sdk_head-1.gif
deleted file mode 100644
index 53bf8a54685a..000000000000
--- a/odk/docs/images/sdk_head-1.gif
+++ /dev/null
Binary files differ
diff --git a/odk/docs/images/sdk_head-1.png b/odk/docs/images/sdk_head-1.png
new file mode 100644
index 000000000000..1c13f7e7f072
--- /dev/null
+++ b/odk/docs/images/sdk_head-1.png
Binary files differ
diff --git a/odk/docs/images/sdk_head-2.gif b/odk/docs/images/sdk_head-2.gif
deleted file mode 100644
index 7fe80c4e48ce..000000000000
--- a/odk/docs/images/sdk_head-2.gif
+++ /dev/null
Binary files differ
diff --git a/odk/docs/images/sdk_head-2.png b/odk/docs/images/sdk_head-2.png
new file mode 100644
index 000000000000..61adc6f7c974
--- /dev/null
+++ b/odk/docs/images/sdk_head-2.png
Binary files differ
diff --git a/odk/docs/images/sdk_head-3.gif b/odk/docs/images/sdk_head-3.gif
deleted file mode 100644
index 053e5ec60a17..000000000000
--- a/odk/docs/images/sdk_head-3.gif
+++ /dev/null
Binary files differ
diff --git a/odk/docs/images/sdk_line-1.gif b/odk/docs/images/sdk_line-1.gif
index cf04e12891cd..199d3a80bc88 100644
--- a/odk/docs/images/sdk_line-1.gif
+++ b/odk/docs/images/sdk_line-1.gif
Binary files differ
diff --git a/odk/docs/images/sdk_line-2.gif b/odk/docs/images/sdk_line-2.gif
index 18c48453f0a1..44ef0146a5ad 100644
--- a/odk/docs/images/sdk_line-2.gif
+++ b/odk/docs/images/sdk_line-2.gif
Binary files differ
diff --git a/odk/docs/images/so-main-app_32.png b/odk/docs/images/so-main-app_32.png
deleted file mode 100644
index e79033ffe1ea..000000000000
--- a/odk/docs/images/so-main-app_32.png
+++ /dev/null
Binary files differ
diff --git a/odk/docs/install.html b/odk/docs/install.html
index e11440538bb5..21611d2abdf7 100644
--- a/odk/docs/install.html
+++ b/odk/docs/install.html
@@ -1,6 +1,6 @@
<html>
<head>
- <title>[TITLE] - Installation Guide</title>
+ <title>OpenOffice.org 3.2 SDK - Installation Guide</title>
<link rel="stylesheet" type="text/css" href="sdk_styles.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="author" content="J&uuml;rgen Schmidt">
@@ -8,9 +8,8 @@
</head>
<body class="sdkbody"><a name="install"/>
<table class="table1" cellpadding=0>
- <tr style="background-image:url(images/sdk_head-2.gif); backgorund-position: bottom; ">
- <td class="background" colspan="2" align="left"><img src="images/sdk_head-1.gif" width="335" height="109" usemap="#Map" border="0"></td>
- <td class="background" align=right><img src="images/sdk_head-3.gif" width="32" height="109"></td>
+ <tr style="background-image:url(images/sdk_head-2.png)">
+ <td colspan="3" align="left"><img src="images/sdk_head-1.png" width="800" height="120" usemap="#Map" border="0"></td>
</tr>
<tr>
<td colspan="3"><img class="nothing10" src="images/nada.gif"></td>
@@ -37,16 +36,16 @@
<table class="table3">
<tr>
<td colspan="2">
- <p>The [PRODUCTNAME] SDK comes with a set of development tools, base
+ <p>The OpenOffice.org 3.2 SDK comes with a set of development tools, base
libraries, header files and helper class files that can be used to
- develop Java/C++ components, to embed the [PRODUCTNAME] application in
+ develop Java/C++ components, to embed the OpenOffice.org 3.2 application in
your own programs, or to use the API (scripting or remote control the
office). For a complete working environment, we have some additional
requirements:</p>
</td>
</tr>
<tr valign="top">
- <td><b>[PRODUCTNAME] installation</td>
+ <td><b>OpenOffice.org 3.2 installation</td>
<td class="content80">The SDK works on top of an existing office
installation and uses the same libraries as the office installation.</td>
</tr>
@@ -116,7 +115,7 @@
the 4NT shell. You have to use the native w32 version.</td>
</tr>
<tr valign="middle">
- <td colspan="2"><img class="line" src="images/sdk_line-2.gif"></td>
+ <td colspan="2"><img class="line" src="images/sdk_line-1.gif"></td>
</tr>
<tr>
<td><img class="nothing10" src="images/nada.gif"></td>
@@ -219,7 +218,7 @@
the output is generated in the SDK directory itself. If an output
directory is specified, the output is generated in a SDK dependent
subdirectory in this directory (e.g. &lt;OO_SDK_OUTPUT_DIR&gt;
- /[PRODUCTNAME]/LINUXExample.out)</td>
+ /OpenOffice.org 3.2/LINUXExample.out)</td>
</tr>
<tr>
<td class="cell20"><b>SDK_AUTO_DEPLOYMENT</b></td>
@@ -238,7 +237,7 @@
</td>
</tr>
<tr valign="middle">
- <td colspan="2"><img class="line" src="images/sdk_line-2.gif"></td>
+ <td colspan="2"><img class="line" src="images/sdk_line-1.gif"></td>
</tr>
<tr>
<td><img class="nothing10" src="images/nada.gif"></td>
@@ -407,7 +406,10 @@
</tr>
<tr>
<td colspan="3">
- <div align="center"><p>Copyright &copy; 1995, 2010, Oracle and/or its affiliates. All rights reserved.</p></div>
+ <div class="centertext">
+ <p><img class="oraclelogo" src="images/odk-footer-logo.gif" title="Sponsored by Oracle" alt="Oracle Logo" />
+ Copyright &copy; 2010, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.<p>
+ </div>
</td>
</tr>
</table>
diff --git a/odk/docs/notsupported.html b/odk/docs/notsupported.html
index ce02acedb3c0..446e83200762 100644
--- a/odk/docs/notsupported.html
+++ b/odk/docs/notsupported.html
@@ -1 +1,4 @@
-<html> <head> <title>[TITLE] - Not supported page</title> <link rel="stylesheet" type="text/css" href="sdk_styles.css"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="author" content="J&uuml;rgen Schmidt"> <meta name="created" content="2004-12-14"> </head> <body class="sdkbody"> <table class="table1" cellpadding=0> <tr style="background-image:url(images/sdk_head-2.gif); backgorund-position: bottom; "> <td colspan="2" align="left"><img src="images/sdk_head-1.gif" width="335" height="109" usemap="#Map" border="0"></td> <td align=right><img src="images/sdk_head-3.gif" width="32" height="109"></td> </tr> <tr> <td colspan="3"><img class="nothing10" src="images/nada.gif"></td> </tr> <tr> <td colspan="3"> <table class="table2"> <tr> <td> <p align="center"><a href="../index.html" title="link to the SDK start page"><img class="navigate" src="images/nav_home.png"></a></p> </td> </tr> <tr> <td><img class="nothing8" src="images/nada.gif"></td> </tr> <tr> <td> <p class="note">This page is currently not supported!</p> </td> </tr> </table> </td> </tr> <tr> <td colspan="3"><img class="nothing30" src="images/nada.gif"></td> </tr> <tr> <td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td> </tr> <tr> <td colspan="3"> <div align="center"><p>Copyright &copy; 1995, 2010, Oracle and/or its affiliates. All rights reserved.</p></div> </td> </tr> </table> <map name="Map"> <area shape="rect" coords="10,68,93,105" href="http://www.oracle.com"> </map> </body> </html> \ No newline at end of file
+<html><head> <title>OpenOffice.org 3.2 SDK - Not supported page</title> <link rel="stylesheet" type="text/css" href="sdk_styles.css"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="author" content="J&uuml;rgen Schmidt"> <meta name="created" content="2004-12-14"></head><body class="sdkbody"><table class="table1" cellpadding=0> <tr style="background-image:url(images/sdk_head-2.gif); backgorund-position: bottom; "> <td colspan="2" align="left"><img src="images/sdk_head-1.gif" width="335" height="109" usemap="#Map" border="0"></td> <td align=right><img src="images/sdk_head-3.gif" width="32" height="109"></td> </tr> <tr> <td colspan="3"><img class="nothing10" src="images/nada.gif"></td> </tr> <tr> <td colspan="3"> <table class="table2"> <tr> <td> <p align="center"><a href="../index.html" title="link to the SDK start page"><img class="navigate" src="images/nav_home.png"></a></p> </td> </tr> <tr> <td><img class="nothing8" src="images/nada.gif"></td> </tr> <tr> <td> <p class="note">This page is currently not supported!</p> </td> </tr> </table> </td> </tr> <tr> <td colspan="3"><img class="nothing30" src="images/nada.gif"></td> </tr> <tr> <td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td> </tr> <tr> <td colspan="3"> <div class="centertext">
+ <p><img class="oraclelogo" src="images/odk-footer-logo.gif" title="Sponsored by Oracle" alt="Oracle Logo" />
+ Copyright &copy; 2010, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.<p>
+ </div> </td> </tr></table><map name="Map"> <area shape="rect" coords="10,68,93,105" href="http://www.sun.com"></map></body></html>
diff --git a/odk/docs/sdk_styles.css b/odk/docs/sdk_styles.css
index a3fdd7b199ef..9a02576bc130 100644
--- a/odk/docs/sdk_styles.css
+++ b/odk/docs/sdk_styles.css
@@ -1,7 +1,7 @@
a { text-decoration: none; }
-a:link { color: #C44B01; }
+a:link { color: #0e85cd; }
a:visited { color: #638093; }
-a:active { color: #9DCA12; }
+a:active { color: #4dadea; }
.sdkbody { background-color: #FFFFFF;
color: #000000;
@@ -109,7 +109,7 @@ a:active { color: #9DCA12; }
font-weight: bold; }
.thead { font-weight: bold;
- background-image:url(../docs/images/bg_table.gif);
+ background-image:url(../docs/images/bg_table.png);
backgorund-position: middle; }
.navigate { border: 0; }
@@ -124,4 +124,7 @@ a:active { color: #9DCA12; }
.content80 { width: 80%; }
.content87 { width: 87%; }
+.centertext {align:center; text-align:center; font-size: 12;}
+.oraclelogo {vertical-align:middle;}
+
diff --git a/odk/docs/tools.html b/odk/docs/tools.html
index b02265dfb488..8b9d604e7143 100644
--- a/odk/docs/tools.html
+++ b/odk/docs/tools.html
@@ -1,6 +1,6 @@
<html>
<head>
- <title>[TITLE] SDK - Development Tools</title>
+ <title>OpenOffice.org 3.2 SDK SDK - Development Tools</title>
<link rel="stylesheet" type="text/css" href="sdk_styles.css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="author" content="J&uuml;rgen Schmidt">
@@ -8,9 +8,8 @@
<body class="sdkbody"><a name="tools"/>
<table class="table1" cellpadding=0>
- <tr style="background-image:url(images/sdk_head-2.gif); backgorund-position: bottom; ">
- <td colspan="2" align="left"><img src="images/sdk_head-1.gif" width="335" height="109" usemap="#Map" border="0"></td>
- <td align=right><img src="images/sdk_head-3.gif" width="32" height="109"></td>
+ <tr style="background-image:url(images/sdk_head-2.png)">
+ <td colspan="3" align="left"><img src="images/sdk_head-1.png" width="800" height="120" usemap="#Map" border="0"></td>
</tr>
<tr>
<td colspan="3"><img class="nothing10" src="images/nada.gif"></td>
@@ -128,7 +127,7 @@
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
@@ -146,7 +145,7 @@
office installation. UNO packages are UNO components (single libraries or
Jar files or more complex zip files that contains one or more libraries|
Jar files, type libraries and configuration items), scripts and
- [PRODUCTNAME] Basic libraries as zip package. 'unopkg' is not part of the
+ OpenOffice.org 3.2 Basic libraries as zip package. 'unopkg' is not part of the
SDK but comes with the office directly and is a development tool as well
as an end user tool to deploy extension into an office installation.</p>
<p>More details concerning deployment and this tool can be find in the
@@ -237,7 +236,7 @@
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
@@ -339,7 +338,7 @@
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
@@ -414,7 +413,7 @@
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
@@ -504,7 +503,7 @@
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
@@ -582,7 +581,7 @@ types the specified types depend on.</p>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
@@ -676,7 +675,7 @@ types the specified types depend on.</p>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
@@ -803,7 +802,7 @@ types the specified types depend on.</p>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
@@ -866,7 +865,7 @@ types the specified types depend on.</p>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
@@ -920,7 +919,7 @@ types the specified types depend on.</p>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
@@ -967,7 +966,7 @@ types the specified types depend on.</p>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
@@ -1081,7 +1080,10 @@ types the specified types depend on.</p>
</tr>
<tr>
<td colspan="3">
- <div align="center"><p>Copyright &copy; 1995, 2010, Oracle and/or its affiliates. All rights reserved.</p></div>
+ <div class="centertext">
+ <p><img class="oraclelogo" src="images/odk-footer-logo.gif" title="Sponsored by Oracle" alt="Oracle Logo" />
+ Copyright &copy; 2010, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.<p>
+ </div>
</td>
</tr>
</table>
diff --git a/odk/examples/DevelopersGuide/examples.html b/odk/examples/DevelopersGuide/examples.html
index da1453107f49..1a48788f0991 100644
--- a/odk/examples/DevelopersGuide/examples.html
+++ b/odk/examples/DevelopersGuide/examples.html
@@ -1,6 +1,6 @@
<html>
<head>
- <title>[TITLE] - Developer's Guide Examples</title>
+ <title>OpenOffice.org 3.2 SDK - Developer's Guide Examples</title>
<link rel="stylesheet" type="text/css"
href="../../docs/sdk_styles.css">
<meta http-equiv="Content-Type"
@@ -12,13 +12,9 @@
<a name="examples"></a>
<table class="table1" cellpadding="0">
<tbody>
- <tr style="background-image: url(../../docs/images/sdk_head-2.gif);">
- <td class="background" colspan="2" align="left"><img
- src="../../docs/images/sdk_head-1.gif" usemap="#Map" border="0"
- height="109" width="335"></td>
- <td class="background" align="right"><img
- src="../../docs/images/sdk_head-3.gif" height="109" width="32"></td>
- </tr>
+ <tr style="background-image:url(../../docs/images/sdk_head-2.png); backgorund-position: bottom; ">
+ <td class="background" colspan="3" align="left"><img src="../../docs/images/sdk_head-1.png" width="800" height="120" usemap="#Map" border="0"></td>
+ </tr>
<tr>
<td colspan="3"><img class="nothing10"
src="../../docs/images/nada.gif"></td>
@@ -138,7 +134,7 @@ Presentation Documents</a></td>
<td class="content3"><img
src="../../docs/images/arrow-1.gif"></td>
<td><a href="#BasicandDialogs"
- title="link to the Basic And Dialogs examples">[PRODUCTNAME] Basic and
+ title="link to the Basic And Dialogs examples">OpenOffice.org 3.2 Basic and
Dialogs</a></td>
</tr>
<tr valign="top">
@@ -198,7 +194,7 @@ Content Broker (UCB)</a></td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -237,7 +233,7 @@ examples</a></td>
href="./FirstSteps/FirstUnoContact.java"
title="link to FirstSteps/FirstUnoContact.java">FirstUnoContact</a></td>
<td class="cell80">Shows how to initialize UNO and
-get a remote office service manager from a running [PRODUCTNAME] in a
+get a remote office service manager from a running OpenOffice.org 3.2 in a
different process space.</td>
</tr>
<tr>
@@ -246,7 +242,7 @@ different process space.</td>
href="./FirstSteps/FirstLoadComponent.java"
title="link to FirstSteps/FirstLoadComponent.java">FirstLoadComponent</a></td>
<td class="cell80">Demonstrates how to load a
-component into [PRODUCTNAME] by a Java application.</td>
+component into OpenOffice.org 3.2 by a Java application.</td>
</tr>
<tr>
<td class="cell20"><img
@@ -269,7 +265,7 @@ drawing document.</td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -337,7 +333,7 @@ mechanism in C++.</td>
href="./ProfUNO/InterprocessConn/ConnectionAwareClient.java"
title="link to ProfUNO/InterprocessConn/ConnectionAwareClient/.java">ConnectionAwareClient</a></td>
<td class="cell80">Implements a client which is aware
-of losing connection to [PRODUCTNAME].</td>
+of losing connection to OpenOffice.org 3.2.</td>
</tr>
<tr>
<td class="cell20"><img
@@ -345,7 +341,7 @@ of losing connection to [PRODUCTNAME].</td>
href="./ProfUNO/InterprocessConn/UrlResolver.java"
title="link to ProfUNO/InterProcessConn/UrlResolver.java">UrlResolver</a></td>
<td class="cell80">Builds a connection to
-[PRODUCTNAME] using the URL given on the command line. This example
+OpenOffice.org 3.2 using the URL given on the command line. This example
shows the usage of <a
href="../../docs/common/ref/com/sun/star/bridge/XUnoUrlResolver.html"
title="link to the reference documentation of com.sun.star.bridge.XUnoResolver"><code>XUnoUrlResolver</code></a>.</td>
@@ -368,7 +364,7 @@ shows the usage of <a
href="./ProfUNO/CppBinding/office_connect.cxx"
title="link to ProfUNO/CppBinding/office_connect.java">office_connect.cxx</a></td>
<td class="cell80">Builds a connection to
-[PRODUCTNAME] using C++.</td>
+OpenOffice.org 3.2 using C++.</td>
</tr>
<tr>
<td class="cell20"><img
@@ -729,7 +725,7 @@ for the image shrink component and instantiates it.</td>
href="./Components/DialogComponent/DialogComponent.java"
title="link to Components/DialogComponent/DialogComponent.java">DialogComponent.java</a></td>
<td class="cell80">Implements a component accessing a dialog created
- with the [PRODUCTNAME] Basic IDE. The component provides methods that
+ with the OpenOffice.org 3.2 Basic IDE. The component provides methods that
can be bound to dialog respectively control events .</td>
</tr>
<tr>
@@ -770,7 +766,7 @@ for the image shrink component and instantiates it.</td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -946,7 +942,7 @@ document component.</td>
<td class="cell80">This is the main part of a demo
application based on the framework APIs. It mainly shows the mechanisms
to load, store and convert documents, as well as dispatch and dispatch
-interception. It integrates windows from [PRODUCTNAME] via system
+interception. It integrates windows from OpenOffice.org 3.2 via system
window handle. This is the same mechanism as used by the OOoBean, but
the OOoBean itself is not used here, just the JNI window handle access.</td>
</tr>
@@ -962,7 +958,7 @@ and it's actions.</td>
href="./OfficeDev/DesktopEnvironment/FunctionHelper.java"
title="link to OfficeDev/DesktopEnvironment/FunctionHelper.java">FunctionHelper</a></td>
<td class="cell80">This helper comprises all
-[PRODUCTNAME] API calls. Thus it is possible to learn about these
+OpenOffice.org 3.2 API calls. Thus it is possible to learn about these
aspects separately from the rest of the application example.</td>
</tr>
<tr>
@@ -977,7 +973,7 @@ asynchronous events from UNO oneway calls.</td>
href="./OfficeDev/DesktopEnvironment/IShutdownListener.java"
title="link to OfficeDev/DesktopEnvironment/IShutdownListener.java">IShutdownListener</a></td>
<td class="cell80">This is a listener interface to
-clean up on shutdown of [PRODUCTNAME].</td>
+clean up on shutdown of OpenOffice.org 3.2.</td>
</tr>
<tr>
<td class="cell20"><a
@@ -1008,7 +1004,7 @@ get the window handle of the Java window.</td>
href="./OfficeDev/DesktopEnvironment/OfficeConnect.java"
title=" link to OfficeDev/DesktopEnvironment/OfficeConnect.java">OfficeConnect</a></td>
<td class="cell80">Builds the remote bridge to
-[PRODUCTNAME] and exports its UNO service manager for the Java side of
+OpenOffice.org 3.2 and exports its UNO service manager for the Java side of
the application.</td>
</tr>
<tr>
@@ -1039,7 +1035,7 @@ the application is registered as an event listener.</td>
href="./OfficeDev/DesktopEnvironment/ViewContainer.java"
title="link to OfficeDev/DesktopEnvironment/ViewContainer.java">ViewContainer</a></td>
<td class="cell80">Performs a clean up on the Java
-side on [PRODUCTNAME] shutdown.</td>
+side on OpenOffice.org 3.2 shutdown.</td>
</tr>
</tbody>
</table>
@@ -1058,7 +1054,7 @@ side on [PRODUCTNAME] shutdown.</td>
href="./OfficeDev/OfficeConnect.java"
title="link to OfficeDev/OfficeConnect.java">OfficeConnect</a></td>
<td class="cell80">Builds the remote bridge to
-[PRODUCTNAME] and exports its UNO service manager to the Java side.</td>
+OpenOffice.org 3.2 and exports its UNO service manager to the Java side.</td>
</tr>
<tr>
<td class="cell20"><img
@@ -1114,7 +1110,7 @@ TerminateListener and shows the use of them in a running program.</td>
href="../../docs/common/ref/com/sun/star/frame/XTerminateListener.html"
title="link to the reference documentation of com.sun.star.frame.XTerminationListener">
<code>XTerminateListener</code></a>. It is called
-when [PRODUCTNAME] terminates.</td>
+when OpenOffice.org 3.2 terminates.</td>
</tr>
</tbody>
</table>
@@ -1180,7 +1176,7 @@ of formats.</td>
href="./OfficeDev/Linguistic/LinguisticExamples.java"
title="link to OfficeDev/Linguistic/LinguisticExamples.java">LinguisticExamples</a></td>
<td class="cell80">A short example that uses most of
-the functionality from the [PRODUCTNAME] linguistic API.</td>
+the functionality from the OpenOffice.org 3.2 linguistic API.</td>
</tr>
<tr>
<td class="cell20"><a
@@ -1381,7 +1377,7 @@ runtime.</td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -1454,7 +1450,7 @@ definition to match your installation!</p>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -1557,7 +1553,7 @@ settings like splitting sheeting sheets and selecting cells.</td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -1661,7 +1657,7 @@ URLs.</td>
<td class="cell20"><a href="./Drawing/Helper.java"
title="link to Drawing/Helper.java">Helper</a></td>
<td class="cell80">Contains a helper class for the
-other examples to connect to [PRODUCTNAME] and open or create a drawing
+other examples to connect to OpenOffice.org 3.2 and open or create a drawing
document.</td>
</tr>
<tr>
@@ -1735,7 +1731,7 @@ text styles in shapes.</td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -1812,7 +1808,7 @@ is not implemented. To be more precise.</td>
<td class="cell20"><a href="./Charts/Helper.java"
title="link to Charts/Helper.java">Helper</a></td>
<td class="cell80">Shows how to connect to
-[PRODUCTNAME] and create text, drawing or spreadsheet document. This
+OpenOffice.org 3.2 and create text, drawing or spreadsheet document. This
class is used as a helper class for the other examples.</td>
</tr>
<tr>
@@ -1853,7 +1849,7 @@ changes.</td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -1867,7 +1863,7 @@ changes.</td>
<tbody>
<tr>
<td colspan="2" class="head1"><a
- name="BasicandDialogs">[PRODUCTNAME] Basic and Dialogs examples</a></td>
+ name="BasicandDialogs">OpenOffice.org 3.2 Basic and Dialogs examples</a></td>
<td align="right"> <a href="#examples"
title="link to the Developer's Guide examples overview"><img
class="navigate" src="../../docs/images/nav_up.png"></a> <a
@@ -1944,7 +1940,7 @@ bar </li>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -1989,7 +1985,7 @@ the example. </td>
href="./Database/CodeSamples.java"
title="link to Database/CodeSamples.java">CodeSamples</a></td>
<td class="cell80">Creates the connection to
-[PRODUCTNAME] and executes the code SalesMan samples for database API.</td>
+OpenOffice.org 3.2 and executes the code SalesMan samples for database API.</td>
</tr>
<tr>
<td class="cell20"><img
@@ -2191,7 +2187,7 @@ class.</td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -2510,7 +2506,7 @@ pressed key on the console.</td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -2633,7 +2629,7 @@ resources.</td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -2672,7 +2668,7 @@ Management examples</a></td>
href="./Config/ConfigExamples.java"
title="link to Config/ConfigExamples.java">ConfigExamples</a></td>
<td class="cell80">This example connects to a
-[PRODUCTNAME], gets the configuration manager and accesses the
+OpenOffice.org 3.2, gets the configuration manager and accesses the
configuration in various ways.</td>
</tr>
</tbody>
@@ -2687,7 +2683,7 @@ configuration in various ways.</td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -2741,7 +2737,7 @@ documents as well as how to control toolbar visibility.</td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -2877,7 +2873,7 @@ about the currently focused object like its name, description, and role.</td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -2935,7 +2931,7 @@ for the Office application.</td>
</tr>
<tr>
<td colspan="3"><img class="line"
- src="../../docs/images/sdk_line-2.gif"></td>
+ src="../../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8"
@@ -3021,8 +3017,9 @@ for the Office application.</td>
</tr>
<tr>
<td colspan="3">
- <div align="center">
- <p>Copyright &copy; 1995, 2010, Oracle and/or its affiliates. All rights reserved.</p>
+ <div class="centertext">
+ <p><img class="oraclelogo" src="../../docs/images/odk-footer-logo.gif" title="Sponsored by Oracle" alt="Oracle Logo" />
+ Copyright &copy; 2010, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.<p>
</div>
</td>
</tr>
diff --git a/odk/examples/examples.html b/odk/examples/examples.html
index 395c59682b2a..12758ea3100d 100644
--- a/odk/examples/examples.html
+++ b/odk/examples/examples.html
@@ -1,6 +1,6 @@
<html>
<head>
- <title>[TITLE] - Examples</title>
+ <title>OpenOffice.org 3.2 SDK - Examples</title>
<link rel="stylesheet" type="text/css" href="../docs/sdk_styles.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="author" content="J&uuml;rgen Schmidt">
@@ -9,9 +9,8 @@
<body class="sdkbody"><a name="examples"/>
<table class="table1" cellpadding=0>
- <tr style="background-image:url(../docs/images/sdk_head-2.gif); backgorund-position: bottom; ">
- <td class="background" colspan="2" align="left"><img src="../docs/images/sdk_head-1.gif" width="335" height="109" usemap="#Map" border="0"></td>
- <td class="background" align=right><img src="../docs/images/sdk_head-3.gif" width="32" height="109"></td>
+ <tr style="background-image:url(../docs/images/sdk_head-2.png); backgorund-position: bottom; ">
+ <td class="background" colspan="3" align="left"><img src="../docs/images/sdk_head-1.png" width="800" height="120" usemap="#Map" border="0"></td>
</tr>
<tr>
<td colspan="3"><img class="nothing10" src="../docs/images/nada.gif"></td>
@@ -39,10 +38,10 @@
<tr>
<td colspan="3">
<p>The SDK provides a rich set of examples in different programming
- languages (Java, C++, [PRODUCTNAME] Basic, OLE) to illustrate the use
+ languages (Java, C++, OpenOffice.org 3.2 Basic, OLE) to illustrate the use
of the API and demonstrate how to benefit from the included word
processor, spreadsheet, presentation software, graphics program and
- database of [PRODUCTNAME].<br>
+ database of OpenOffice.org 3.2.<br>
Some fo the examples need a running office instance listening on a
port. If this is necessary you will get further information in the
makefiles.</p>
@@ -84,9 +83,9 @@
</tr>
<tr valign="top">
<td class="content3"><img src="../docs/images/arrow-1.gif"></td>
- <td><a href="#Basic_examples" title="link to the [PRODUCTNAME] Basic examples section">[PRODUCTNAME] Basic examples</a></td>
+ <td><a href="#Basic_examples" title="link to the OpenOffice.org 3.2 Basic examples section">OpenOffice.org 3.2 Basic examples</a></td>
<td class="content75">Small set of examples which shows the use of
- the API from [PRODUCTNAME] Basic.</td>
+ the API from OpenOffice.org 3.2 Basic.</td>
</tr>
<tr valign="top">
<td class="content3"><img src="../docs/images/arrow-1.gif"></td>
@@ -107,7 +106,7 @@
<td class="content1"><img class="nothing8" src="../docs/images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="../docs/images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="../docs/images/nada.gif"></td>
@@ -215,7 +214,7 @@
</tr>
<tr>
<td class="cell20"><a href="java/Spreadsheet/" title="link to the source directory of the Java Spreadsheet examples">ChartTypeChange</a></td>
- <td class="cell80">This class loads an [PRODUCTNAME] Calc document and
+ <td class="cell80">This class loads an OpenOffice.org 3.2 Calc document and
changes the type of the embedded chart.</td>
</tr>
<tr>
@@ -299,7 +298,7 @@
<td class="cell20"><a href="http://wiki.services.openoffice.org/wiki/Object_Inspector" title="link to the Object Inspector project page in the wiki">Object Inspector</a></td>
<td class="cell80">The Object Inspector is primarily an auxiliary tool
for the developer, which can present information about an object of the
- [PRODUCTNAME] API at run-time. Depending on the object to be inspected,
+ OpenOffice.org 3.2 API at run-time. Depending on the object to be inspected,
appropriate methods, interfaces, services, and attributes can be displayed
to the developer. The methods, interfaces, services and attributes are
represented in a predictable tree. If the attributes contained in an
@@ -363,7 +362,7 @@
<td class="content1"><img class="nothing8" src="../docs/images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="../docs/images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="../docs/images/nada.gif"></td>
@@ -451,7 +450,7 @@
<td class="content1"><img class="nothing8" src="../docs/images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="../docs/images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="../docs/images/nada.gif"></td>
@@ -461,7 +460,7 @@
<td>
<table class="table3">
<tr>
- <td colspan="2" class="head1"><a name="Basic_examples">[PRODUCTNAME] Basic examples</td>
+ <td colspan="2" class="head1"><a name="Basic_examples">OpenOffice.org 3.2 Basic examples</td>
<td align="right">
<a href="#examples" title="link to the examples overview"><img class="navigate" src="../docs/images/nav_up.png"></a>
<a href="../index.html" title="link to the SDK start page"><img class="navigate" src="../docs/images/nav_home.png"></a>
@@ -469,8 +468,8 @@
</tr>
<tr>
<td colspan="3">
- <p>The example programs are embedded in [PRODUCTNAME] documents in the
- samples directory. To view or edit the [PRODUCTNAME] Basic source,
+ <p>The example programs are embedded in OpenOffice.org 3.2 documents in the
+ samples directory. To view or edit the OpenOffice.org 3.2 Basic source,
select the appropriate document and then select Tools-&gt;Macro.</p>
<p>Most of the examples are stand-alone, but two of them (Creating an
Index and Import/Export of ASCII Files) have an associated data file
@@ -492,7 +491,7 @@
<td class="cell80">Description</td>
</tr>
<tr>
- <td class="cell20"><a href="basic/text/modifying_text_automatically/" title="link to the source directory of the [PRODUCTNAME] Basic text/modifying_text_automatically examples">Changing Appearance</a></td>
+ <td class="cell20"><a href="basic/text/modifying_text_automatically/" title="link to the source directory of the OpenOffice.org 3.2 Basic text/modifying_text_automatically examples">Changing Appearance</a></td>
<td class="cell80"> To change the style used for certain words, you can
start with the following example. This code searches for the regular
expression <code>the[a-z]</code>, which stands for the text portion the
@@ -503,7 +502,7 @@
must execute it from an open text document.</td>
</tr>
<tr>
- <td class="cell20"><a href="basic/text/modifying_text_automatically/" title="link to the source directory of the [PRODUCTNAME] Basic text/modifying_text_automatically examples">Replacing Text</a></td>
+ <td class="cell20"><a href="basic/text/modifying_text_automatically/" title="link to the source directory of the OpenOffice.org 3.2 Basic text/modifying_text_automatically examples">Replacing Text</a></td>
<td class="cell80">If you regularly receive documents from other people
for editing, you might want to make sure that certain words are always
written the same. The next example illustrates this by forcing certain
@@ -513,7 +512,7 @@
words from an external file.</td>
</tr>
<tr>
- <td class="cell20"><a href="basic/text/modifying_text_automatically/" title="link to the source directory of the [PRODUCTNAME] Basic text/modifying_text_automatically examples">Using Regular Expressions</a></td>
+ <td class="cell20"><a href="basic/text/modifying_text_automatically/" title="link to the source directory of the OpenOffice.org 3.2 Basic text/modifying_text_automatically examples">Using Regular Expressions</a></td>
<td class="cell80">Another application of automatic text modification is
related to stylistic questions. Suppose your company&#146;s policy is to
avoid the use of certain words. You want to replace these words, but you
@@ -530,7 +529,7 @@
(plural, adjective etc.).</td>
</tr>
<tr>
- <td class="cell20"><a href="basic/text/modifying_text_automatically/" title="link to the source directory of the [PRODUCTNAME] Basic text/modifying_text_automatically examples">Inserting Bookmarks</a></td>
+ <td class="cell20"><a href="basic/text/modifying_text_automatically/" title="link to the source directory of the OpenOffice.org 3.2 Basic text/modifying_text_automatically examples">Inserting Bookmarks</a></td>
<td class="cell80">
<p>The next example does something very similar. This time, however, we
do not change the color of the words but insert a bookmark at each of
@@ -545,14 +544,14 @@
word.</td>
</tr>
<tr>
- <td class="cell20"><a href="basic/text/creating_an_index/" title="link to the source directory of the [PRODUCTNAME] Basic text/create_index example">Creating an Index</a></td>
+ <td class="cell20"><a href="basic/text/creating_an_index/" title="link to the source directory of the OpenOffice.org 3.2 Basic text/create_index example">Creating an Index</a></td>
<td class="cell80">Indices for text documents can be created manually in
- [PRODUCTNAME] Writer by clicking on the words that should appear in the
+ OpenOffice.org 3.2 Writer by clicking on the words that should appear in the
index. If the document is large, or if you have to generate indices for
several documents, this task should be automated.</td>
</tr>
<tr>
- <td class="cell20"><a href="basic/sheet/" title="link to the source directory of the [PRODUCTNAME] Basic sheet example">Adapting to Euroland</a></td>
+ <td class="cell20"><a href="basic/sheet/" title="link to the source directory of the OpenOffice.org 3.2 Basic sheet example">Adapting to Euroland</a></td>
<td class="cell80">Most of the members of the European Union will abandon
their old currency in favor of the new Euro in 2001. This requires
modifications to all programs using the old currencies. Since the exchange
@@ -561,14 +560,14 @@
in a table that are formatted with the currency string DM.</td>
</tr>
<tr>
- <td class="cell20"><a href="basic/drawing/" title="link to the source directory of the [PRODUCTNAME] Basic drawing example">Import/Export of ASCII Files</a></td>
+ <td class="cell20"><a href="basic/drawing/" title="link to the source directory of the OpenOffice.org 3.2 Basic drawing example">Import/Export of ASCII Files</a></td>
<td class="cell80">You can use the drawing facilities of StarOffice API
to generate a picture from ASCII input. One application would be a
hierarchical representation of a directory listing, based on textual
data.</td>
</tr>
<tr>
- <td class="cell20"><a href="basic/stock_quotes_updater/" title="link to the source directory of the [PRODUCTNAME] Basic stock_quotes_updater example">Stock Quotes Updater</a></td>
+ <td class="cell20"><a href="basic/stock_quotes_updater/" title="link to the source directory of the OpenOffice.org 3.2 Basic stock_quotes_updater example">Stock Quotes Updater</a></td>
<td class="cell80">If you want to display stock charts for certain
companies, you can open up your browser every day, go to a search engine,
look up the quote and copy it by hand into a table. Or you can use a
@@ -580,7 +579,7 @@
<code>UpdateValue()</code>, and <code>UpdateChart()</code>.</td>
</tr>
<tr>
- <td class="cell20"><a href="basic/forms_and_controls/" title="link to the source directory of the [PRODUCTNAME] Basic forms_and_controls example">Forms and Controls</a></td>
+ <td class="cell20"><a href="basic/forms_and_controls/" title="link to the source directory of the OpenOffice.org 3.2 Basic forms_and_controls example">Forms and Controls</a></td>
<td class="cell80">The example document Burger Factory offers some forms
and controls, which you can use to order your desired burger type,
beverage, topping, and sauce. By hitting the button
@@ -595,7 +594,7 @@
<table class="table3">
<tr>
<td colspan="3">
- Additional information: <a href="http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Basic/OpenOffice.org_Basic" title="link to the &quot;[PRODUCTNAME] Basic language binding&quot; chapter in the Developer's Guide">[PRODUCTNAME] Basic language binding</a>
+ Additional information: <a href="http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Basic/OpenOffice.org_Basic" title="link to the &quot;OpenOffice.org 3.2 Basic language binding&quot; chapter in the Developer's Guide">OpenOffice.org 3.2 Basic language binding</a>
</td>
</tr>
</table>
@@ -606,7 +605,7 @@
<td class="content1"><img class="nothing8" src="../docs/images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="../docs/images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="../docs/images/nada.gif"></td>
@@ -671,7 +670,7 @@
<td class="content1"><img class="nothing8" src="../docs/images/nada.gif"></td>
</tr>
<tr>
- <td colspan="3"><img class="line" src="../docs/images/sdk_line-2.gif"></td>
+ <td colspan="3"><img class="line" src="../docs/images/sdk_line-1.gif"></td>
</tr>
<tr>
<td class="content1"><img class="nothing8" src="../docs/images/nada.gif"></td>
@@ -737,7 +736,10 @@
</tr>
<tr>
<td colspan="3">
- <div align="center"><p>Copyright &copy; 1995, 2010, Oracle and/or its affiliates. All rights reserved.</p></div>
+ <div class="centertext">
+ <p><img class="oraclelogo" src="../docs/images/odk-footer-logo.gif" title="Sponsored by Oracle" alt="Oracle Logo" />
+ Copyright &copy; 2010, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.<p>
+ </div>
</td>
</tr>
</table>
diff --git a/odk/index.html b/odk/index.html
index ace6cbeb65a0..f926fdc0d7b5 100644
--- a/odk/index.html
+++ b/odk/index.html
@@ -1,18 +1,16 @@
<html>
<head>
- <title>[TITLE] - SDK</title>
+ <title>OpenOffice.org 3.2 SDK - SDK</title>
<link rel="stylesheet" type="text/css" href="docs/sdk_styles.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="author" content="J&uuml;rgen Schmidt">
<meta name="created" content="2004-12-14">
</head>
-
<body class="sdkbody">
<table class="table1" cellpadding=0>
- <tr style="background-image:url(docs/images/sdk_head-2.gif)">
- <td colspan="2" align="left"><img src="docs/images/sdk_head-1.gif" width="335" height="109" usemap="#Map" border="0"></td>
- <td align=right><img src="docs/images/sdk_head-3.gif" width="32" height="109"></td>
+ <tr style="background-image:url(docs/images/sdk_head-2.png)">
+ <td colspan="3" align="left"><img src="docs/images/sdk_head-1.png" width="800" height="120" usemap="#Map" border="0"></td>
</tr>
<tr>
<td colspan="3"><img class="nothing30" src="docs/images/nada.gif"></td>
@@ -23,12 +21,12 @@
<tr>
<td><img class="nothing8" src="docs/images/nada.gif"></td>
<td>
- <p>[PRODUCTNAME] software is a complete, feature-rich
+ <p>OpenOffice.org 3.2 software is a complete, feature-rich
office productivity suite that provides, in combination with this
SDK, all the essential tools for building and deploying custom
- solutions that build on, or integrate with, the [PRODUCTNAME] suite
+ solutions that build on, or integrate with, the OpenOffice.org 3.2 suite
of products.</p>
- <p>The SDK is a development kit for [PRODUCTNAME], which
+ <p>The SDK is a development kit for OpenOffice.org 3.2, which
eases the development of office components. It provides a set of
libraries, binaries, header, and IDL files which have final API's
and can only be extended with new functionality. This set of libraries
@@ -43,8 +41,8 @@
with new functions.</p>
<p>The SDK provides the basic building blocks for external developers
to develop components in any language for which a binding exists.
- Currently, there are language bindings for [PRODUCTNAME] Basic, Java,
- and different C++ compilers on different platforms, for [PRODUCTNAME],
+ Currently, there are language bindings for OpenOffice.org 3.2 Basic, Java,
+ and different C++ compilers on different platforms, for OpenOffice.org 3.2,
thus covering the two most commonly used programming languages. There
will be no limit for office automation in heterogeneous environments.
Currently supported platforms of the SDK are Linux, Solaris (sparc,
@@ -85,7 +83,7 @@
<tr valign="top">
<td class="content4"><img src="docs/images/arrow-1.gif"></td>
<td colspan="2"><a href="http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_Guide" title="link to the Developer's Guide in the Wiki">Developer's Guide</a></td>
- <td class="content70">Detailed documentation, explaining the [PRODUCTNAME]
+ <td class="content70">Detailed documentation, explaining the OpenOffice.org 3.2
API and the concepts behind it, with a rich set of examples,
implemented mainly in Java. This documentation is online in the
OpenOffice.org Wiki.</td>
@@ -93,7 +91,7 @@
<tr valign="top">
<td class="content4"><img src="docs/images/arrow-1.gif"></td>
<td colspan="2"><a href="docs/common/ref/com/sun/star/module-ix.html" title="link to the IDL reference documentation">IDL Reference</a></td>
- <td class="content70">Complete [PRODUCTNAME] API reference.</td>
+ <td class="content70">Complete OpenOffice.org 3.2 API reference.</td>
</tr>
<tr valign="top">
<td class="content4"><img src="docs/images/arrow-1.gif"></td>
@@ -134,7 +132,7 @@
Office Applications (OpenDocument) Technical Committee where you
can find the latest information about the OASIS Open Document XML
file format which is the default document format
- for [PRODUCTNAME].</td>
+ for OpenOffice.org 3.2.</td>
</tr>
<tr valign="top">
<td class="content4"><img src="docs/images/arrow-1.gif"></td>
@@ -149,7 +147,7 @@
<tr valign="top">
<td class="content4"><img src="docs/images/arrow-1.gif"></td>
<td colspan="2"><a href="share/readme/LICENSE_en-US.html" title="link to the SDK license file">License</a></td>
- <td class="content70">The license for the [PRODUCTNAME] SDK.</td>
+ <td class="content70">The license for the OpenOffice.org 3.2 SDK.</td>
</tr>
<tr valign="middle">
<td><img class="nothing10" src="docs/images/nada.gif"></td>
@@ -164,28 +162,17 @@
<tr valign="top">
<td colspan="4"><img class="nothing8" src="docs/images/nada.gif"></td>
</tr>
- <tr valign="top">
- <td class="content4"><img src="docs/images/arrow-1.gif"></td>
- <td colspan="2"><a target="_blank" href="http://www.sun.com/developers/" title="link to the Sun Developer Resources (online)">Oracle Developer Network</a></td>
- <td class="content70">A Community for Developers</td>
- </tr>
- <tr valign="middle">
- <td><img class="nothing10" src="docs/images/nada.gif"></td>
- <td colspan="3"><img class="line" src="docs/images/sdk_line-1.gif"></td>
- </tr>
<tr valign="middle">
- <td class="content4"><img class="arrow" src="docs/images/arrow-2.gif"</td>
- <td width="5%"><a target="_blank" href="http://www.sun.com/staroffice/" title="link to the StarOffice homepage (online)"><img class="appicon" src="docs/images/so-main-app_32.png"></a></td>
- <td width="21%"><a target="_blank" href="http://www.sun.com/staroffice/" title="link to the StarOffice homepage (online)">StarOffice&#153</a></td>
- <td class="content70">Full-featured suite of office productivity
- tools.</td>
+ <td class="content4"><img class="arrow" src="docs/images/arrow-1.gif"</td>
+ <td width="5%"><a target="_blank" href="http://www.oracle.com/us/products/applications/open-office" title="link to the Oracle Open Office homepage (online)"><img class="appicon" src="docs/images/orc-main-app_32.png"></a></td>
+ <td width="21%"><a target="_blank" href="http://www.oracle.com/us/products/applications/open-office" title="link to the Oracle Open Office homepage (online)">Oracle Open Office&#153</a></td>
+ <td class="content70">Full-featured suite of office productivity tools.</td>
</tr>
<tr valign="middle">
- <td class="content4"><img class="arrow" src="docs/images/arrow-3.gif"</td>
+ <td class="content4"><img class="arrow" src="docs/images/arrow-1.gif"</td>
<td width="5%"><a target="_blank" href="http://www.openoffice.org/" title="link to the OpenOffice.org homepage (online)"><img class="appicon" src="docs/images/ooo-main-app_32.png"></a></td>
- <td width="21%"><a target="_blank" href="http://www.openoffice.org/" title="link to the OpenOffice.org homepage (online)">OpenOffice.org</a></td>
- <td class="content70">Open Source community project of
- office-productivity software.</td>
+ <td width="21%"><a target="_blank" href="http://www.openoffice.org/" title="link to the OpenOffice.org homepage (online)">OpenOffice.org&#153</a></td>
+ <td class="content70">Open Source community project of office-productivity software.</td>
</tr>
</table>
</td>
@@ -202,7 +189,10 @@
</tr>
<tr>
<td colspan="3">
- <div align="center"><p>Copyright &copy; 1995, 2010, Oracle and/or its affiliates. All rights reserved.</p></div>
+ <div class="centertext">
+ <p><img class="oraclelogo" src="docs/images/odk-footer-logo.gif" title="Sponsored by Oracle" alt="Oracle Logo" />
+ Copyright &copy; 2010, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.<p>
+ </div>
</td>
</tr>
</table>
diff --git a/odk/pack/copying/makefile.mk b/odk/pack/copying/makefile.mk
index 5396496e1a3a..b8a7b9a6cd48 100644
--- a/odk/pack/copying/makefile.mk
+++ b/odk/pack/copying/makefile.mk
@@ -25,149 +25,149 @@
#
#*************************************************************************
-PRJ=..$/..
+PRJ=../..
PRJNAME=odk
TARGET=copying
#----------------------------------------------------------------
.INCLUDE: settings.mk
-.INCLUDE: $(PRJ)$/util$/makefile.pmk
+.INCLUDE: $(PRJ)/util/makefile.pmk
#----------------------------------------------------------------
-IDLLIST:={$(subst,/,$/ $(shell @$(FIND) $(IDLOUT) -type f | sed -e '/star.portal/d' -e'/star.webservices/d'))}
+IDLLIST:={$(subst,/,/ $(shell @$(FIND) $(IDLOUT) -type f | sed -e '/star.portal/d' -e'/star.webservices/d'))}
DESTIDLLIST={$(subst,$(IDLOUT),$(DESTDIRIDL) $(IDLLIST))}
DESTINCLUDELIST={$(subst,$(SOLARINCDIR),$(DESTDIRINC) $(INCLUDELIST))}
-DESTINCLUDELIST+=$(DESTDIRINC)$/udkversion.mk
+DESTINCLUDELIST+=$(DESTDIRINC)/udkversion.mk
DESTINCDIRLIST={$(subst,$(INCOUT),$(DESTDIRINC) $(INCLUDEDIRLIST))}
-IDL_DOCU_INDEX_FILE = $(DESTDIRGENIDLREF)$/module-ix.html
-IDL_DOCU_CLEANUP_FLAG = $(MISC)$/idl_docu_cleanup.flag
+IDL_DOCU_INDEX_FILE = $(DESTDIRGENIDLREF)/module-ix.html
+IDL_DOCU_CLEANUP_FLAG = $(MISC)/idl_docu_cleanup.flag
IDL_CHAPTER_REFS=idl_chapter_refs.txt
EXELIST = \
- $(DESTDIRBIN)$/cppumaker$(EXEPOSTFIX) \
- $(DESTDIRBIN)$/regcompare$(EXEPOSTFIX) \
- $(DESTDIRBIN)$/idlcpp$(EXEPOSTFIX) \
- $(DESTDIRBIN)$/idlc$(EXEPOSTFIX) \
- $(DESTDIRBIN)$/javamaker$(EXEPOSTFIX) \
- $(DESTDIRBIN)$/autodoc$(EXEPOSTFIX) \
- $(DESTDIRBIN)$/unoapploader$(EXEPOSTFIX) \
- $(DESTDIRBIN)$/uno-skeletonmaker$(EXEPOSTFIX)
+ $(DESTDIRBIN)/cppumaker$(EXEPOSTFIX) \
+ $(DESTDIRBIN)/regcompare$(EXEPOSTFIX) \
+ $(DESTDIRBIN)/idlcpp$(EXEPOSTFIX) \
+ $(DESTDIRBIN)/idlc$(EXEPOSTFIX) \
+ $(DESTDIRBIN)/javamaker$(EXEPOSTFIX) \
+ $(DESTDIRBIN)/autodoc$(EXEPOSTFIX) \
+ $(DESTDIRBIN)/unoapploader$(EXEPOSTFIX) \
+ $(DESTDIRBIN)/uno-skeletonmaker$(EXEPOSTFIX)
.IF "$(GUI)"=="WNT"
EXELIST += \
- $(DESTDIRBIN)$/climaker$(EXEPOSTFIX)
+ $(DESTDIRBIN)/climaker$(EXEPOSTFIX)
.ENDIF
.IF "$(GUI)"=="WNT"
CLILIST = \
- $(DESTDIRCLI)$/cli_basetypes.dll \
- $(DESTDIRCLI)$/cli_uretypes.dll \
- $(DESTDIRCLI)$/cli_oootypes.dll \
- $(DESTDIRCLI)$/cli_ure.dll \
- $(DESTDIRCLI)$/cli_cppuhelper.dll
+ $(DESTDIRCLI)/cli_basetypes.dll \
+ $(DESTDIRCLI)/cli_uretypes.dll \
+ $(DESTDIRCLI)/cli_oootypes.dll \
+ $(DESTDIRCLI)/cli_ure.dll \
+ $(DESTDIRCLI)/cli_cppuhelper.dll
.ENDIF
.IF "$(GUI)"=="WNT"
LIBLIST = \
- $(DESTDIRLIB)$/istore.lib \
- $(DESTDIRLIB)$/ireg.lib \
- $(DESTDIRLIB)$/isal.lib \
- $(DESTDIRLIB)$/isalhelper.lib \
- $(DESTDIRLIB)$/icppu.lib \
- $(DESTDIRLIB)$/icppuhelper.lib \
- $(DESTDIRLIB)$/irmcxt.lib \
- $(DESTDIRLIB)$/ipurpenvhelper3MSC.lib
+ $(DESTDIRLIB)/istore.lib \
+ $(DESTDIRLIB)/ireg.lib \
+ $(DESTDIRLIB)/isal.lib \
+ $(DESTDIRLIB)/isalhelper.lib \
+ $(DESTDIRLIB)/icppu.lib \
+ $(DESTDIRLIB)/icppuhelper.lib \
+ $(DESTDIRLIB)/irmcxt.lib \
+ $(DESTDIRLIB)/ipurpenvhelper3MSC.lib
.IF "$(COMEX)"=="8"
- LIBLIST += $(DESTDIRLIB)$/stlport_vc7.lib
+ LIBLIST += $(DESTDIRLIB)/stlport_vc7.lib
.ELIF "$(COMEX)"=="10" || "$(COMEX)"=="11" || "$(COMEX)"=="12"
- LIBLIST += $(DESTDIRLIB)$/stlport_vc71.lib
+ LIBLIST += $(DESTDIRLIB)/stlport_vc71.lib
.ELSE
- LIBLIST += $(DESTDIRLIB)$/stlport_vc6.lib
+ LIBLIST += $(DESTDIRLIB)/stlport_vc6.lib
.ENDIF
.ENDIF
.IF "$(OS)"=="LINUX"
- LIBLIST = $(DESTDIRLIB)$/libsalcpprt.a
+ LIBLIST = $(DESTDIRLIB)/libsalcpprt.a
.ENDIF
# note, that inner class files are copied implicitly
DESTCLASSESLIST= \
- $(DESTDIRJAR)$/com$/sun$/star$/lib$/loader$/Loader.class \
- $(DESTDIRJAR)$/com$/sun$/star$/lib$/loader$/InstallationFinder.class \
- $(DESTDIRJAR)$/com$/sun$/star$/lib$/loader$/WinRegKey.class \
- $(DESTDIRJAR)$/com$/sun$/star$/lib$/loader$/WinRegKeyException.class
-# $(DESTDIRJAR)$/com$/sun$/star$/lib$/loader$/Loader$$CustomURLClassLoader.class \
-# $(DESTDIRJAR)$/com$/sun$/star$/lib$/loader$/InstallationFinder$$StreamGobbler.class \
+ $(DESTDIRJAR)/com/sun/star/lib/loader/Loader.class \
+ $(DESTDIRJAR)/com/sun/star/lib/loader/InstallationFinder.class \
+ $(DESTDIRJAR)/com/sun/star/lib/loader/WinRegKey.class \
+ $(DESTDIRJAR)/com/sun/star/lib/loader/WinRegKeyException.class
+# $(DESTDIRJAR)/com/sun/star/lib/loader/Loader$$CustomURLClassLoader.class \
+# $(DESTDIRJAR)/com/sun/star/lib/loader/InstallationFinder$$StreamGobbler.class \
SETTINGSLIST= \
- $(DESTDIRSETTINGS)$/settings.mk \
- $(DESTDIRSETTINGS)$/std.mk \
- $(DESTDIRSETTINGS)$/stdtarget.mk \
- $(DESTDIRSETTINGS)$/dk.mk
+ $(DESTDIRSETTINGS)/settings.mk \
+ $(DESTDIRSETTINGS)/std.mk \
+ $(DESTDIRSETTINGS)/stdtarget.mk \
+ $(DESTDIRSETTINGS)/dk.mk
.IF "$(GUI)"=="WNT"
-SETTINGSLIST+=$(DESTDIRSETTINGS)$/component.uno.def
+SETTINGSLIST+=$(DESTDIRSETTINGS)/component.uno.def
.ENDIF
.IF "$(GUI)"=="UNX"
-SETTINGSLIST+=$(DESTDIRSETTINGS)$/component.uno.map
+SETTINGSLIST+=$(DESTDIRSETTINGS)/component.uno.map
.ENDIF
DOCUHTMLFILES+= \
- $(DESTDIR)$/index.html \
- $(DESTDIRDOCU)$/tools.html \
- $(DESTDIRDOCU)$/notsupported.html \
- $(DESTDIRDOCU)$/install.html \
- $(DESTDIREXAMPLES)$/examples.html \
- $(DESTDIREXAMPLES)$/DevelopersGuide$/examples.html
+ $(DESTDIR)/index.html \
+ $(DESTDIRDOCU)/tools.html \
+ $(DESTDIRDOCU)/notsupported.html \
+ $(DESTDIRDOCU)/install.html \
+ $(DESTDIREXAMPLES)/examples.html \
+ $(DESTDIREXAMPLES)/DevelopersGuide/examples.html
DOCUFILES= \
$(DOCUHTMLFILES) \
- $(DESTDIRDOCU)$/sdk_styles.css \
- $(DESTDIRGENIDLREF)$/idl.css \
- $(DESTDIRDOCUIMAGES)$/nada.gif \
- $(DESTDIRDOCUIMAGES)$/arrow-2.gif \
- $(DESTDIRDOCUIMAGES)$/bluball.gif \
- $(DESTDIRDOCUIMAGES)$/so-main-app_32.png \
- $(DESTDIRDOCUIMAGES)$/ooo-main-app_32.png \
- $(DESTDIRDOCUIMAGES)$/arrow-1.gif \
- $(DESTDIRDOCUIMAGES)$/arrow-3.gif \
- $(DESTDIRDOCUIMAGES)$/bg_table.gif \
- $(DESTDIRDOCUIMAGES)$/bg_table2.gif \
- $(DESTDIRDOCUIMAGES)$/bg_table3.gif \
- $(DESTDIRDOCUIMAGES)$/nav_down.png \
- $(DESTDIRDOCUIMAGES)$/nav_home.png \
- $(DESTDIRDOCUIMAGES)$/nav_left.png \
- $(DESTDIRDOCUIMAGES)$/nav_right.png \
- $(DESTDIRDOCUIMAGES)$/nav_up.png \
- $(DESTDIRDOCUIMAGES)$/sdk_head-1.gif \
- $(DESTDIRDOCUIMAGES)$/sdk_head-2.gif \
- $(DESTDIRDOCUIMAGES)$/sdk_head-3.gif \
- $(DESTDIRDOCUIMAGES)$/sdk_line-1.gif \
- $(DESTDIRDOCUIMAGES)$/sdk_line-2.gif
+ $(DESTDIRDOCU)/sdk_styles.css \
+ $(DESTDIRGENIDLREF)/idl.css \
+ $(DESTDIRDOCUIMAGES)/nada.gif \
+ $(DESTDIRDOCUIMAGES)/arrow-2.gif \
+ $(DESTDIRDOCUIMAGES)/bluball.gif \
+ $(DESTDIRDOCUIMAGES)/orc-main-app_32.png \
+ $(DESTDIRDOCUIMAGES)/ooo-main-app_32.png \
+ $(DESTDIRDOCUIMAGES)/odk-footer-logo.gif \
+ $(DESTDIRDOCUIMAGES)/arrow-1.gif \
+ $(DESTDIRDOCUIMAGES)/arrow-3.gif \
+ $(DESTDIRDOCUIMAGES)/bg_table.png \
+ $(DESTDIRDOCUIMAGES)/bg_table2.png \
+ $(DESTDIRDOCUIMAGES)/bg_table3.png \
+ $(DESTDIRDOCUIMAGES)/nav_down.png \
+ $(DESTDIRDOCUIMAGES)/nav_home.png \
+ $(DESTDIRDOCUIMAGES)/nav_left.png \
+ $(DESTDIRDOCUIMAGES)/nav_right.png \
+ $(DESTDIRDOCUIMAGES)/nav_up.png \
+ $(DESTDIRDOCUIMAGES)/sdk_head-1.png \
+ $(DESTDIRDOCUIMAGES)/sdk_head-2.png \
+ $(DESTDIRDOCUIMAGES)/sdk_line-1.gif \
+ $(DESTDIRDOCUIMAGES)/sdk_line-2.gif
.IF "$(GUI)"=="UNX"
INSTALLSCRIPT= \
- $(DESTDIR)$/config.guess \
- $(DESTDIR)$/config.sub \
- $(DESTDIR)$/configure.pl \
- $(DESTDIR)$/setsdkenv_unix \
- $(DESTDIR)$/setsdkenv_unix.sh.in \
- $(DESTDIR)$/setsdkenv_unix.csh.in
+ $(DESTDIR)/config.guess \
+ $(DESTDIR)/config.sub \
+ $(DESTDIR)/configure.pl \
+ $(DESTDIR)/setsdkenv_unix \
+ $(DESTDIR)/setsdkenv_unix.sh.in \
+ $(DESTDIR)/setsdkenv_unix.csh.in
.ELSE
INSTALLSCRIPT= \
- $(DESTDIR)$/setsdkenv_windows.bat \
- $(DESTDIR)$/setsdkenv_windows.template \
- $(DESTDIR)$/setsdkname.bat \
- $(DESTDIR)$/cfgWin.js
+ $(DESTDIR)/setsdkenv_windows.bat \
+ $(DESTDIR)/setsdkenv_windows.template \
+ $(DESTDIR)/setsdkname.bat \
+ $(DESTDIR)/cfgWin.js
.ENDIF
DIR_FILE_LIST=\
@@ -184,25 +184,25 @@ DIR_FILE_LIST=\
$(CONVERTTAGFLAG)
.IF "$(OS)"=="MACOSX"
-DIR_FILE_LIST += $(DESTDIRBIN)$/addsym-macosx.sh
+DIR_FILE_LIST += $(DESTDIRBIN)/addsym-macosx.sh
.ENDIF
.IF "$(SOLAR_JAVA)" != ""
-DIR_FILE_LIST += $(DESTDIRJAR)$/win$/unowinreg.dll
+DIR_FILE_LIST += $(DESTDIRJAR)/win/unowinreg.dll
.ENDIF
DIR_DIRECTORY_LIST:=$(uniq $(DIR_FILE_LIST:d))
-DIR_CREATE_FLAG:=$(MISC)$/copying_dirs_created.txt
-DIR_FILE_FLAG:=$(MISC)$/copying_files.txt
+DIR_CREATE_FLAG:=$(MISC)/copying_dirs_created.txt
+DIR_FILE_FLAG:=$(MISC)/copying_files.txt
.IF "$(SOLAR_JAVA)" != ""
# Special work for simple uno bootstrap mechanism
# zip uno loader class files and winreg helper library for later
# use in the build process (e.g. helper tools)
-MYZIPTARGET=$(BIN)$/uno_loader_classes.zip
+MYZIPTARGET=$(BIN)/uno_loader_classes.zip
MYZIPFLAGS=-u -r
MYZIPDIR=$(DESTDIRJAR)
-MYZIPLIST=com$/* win$/*
+MYZIPLIST=com/* win/*
.ENDIF
@@ -221,21 +221,21 @@ all : CLEAN_DKVERSION_CHECK \
#--------------------------------------------------
# use global rules
#--------------------------------------------------
-.INCLUDE: $(PRJ)$/util$/odk_rules.pmk
+.INCLUDE: $(PRJ)/util/odk_rules.pmk
-CLEANUP_DKVERSION_FILE=$(DESTDIRSETTINGS)$/dk.mk
+CLEANUP_DKVERSION_FILE=$(DESTDIRSETTINGS)/dk.mk
CLEAN_DKVERSION_CHECK:
@@-rm -f $(CLEANUP_DKVERSION_FILE)
-$(DESTDIRBIN)$/addsym-macosx.sh : addsym-macosx.sh
+$(DESTDIRBIN)/addsym-macosx.sh : addsym-macosx.sh
@@-rm -f $@
$(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
-chmod 755 $@
-$(DESTDIRSETTINGS)$/dk.mk : dk.mk
+$(DESTDIRSETTINGS)/dk.mk : dk.mk
@@-rm -f $@
-$(MKDIRHIER) $(@:d)
tr -d "\015" < dk.mk | sed -e 's/@@RELEASE@@/$(PRODUCT_RELEASE)/' -e 's/@@BUILDID@@/$(RSCREVISION)/'> $@
@@ -244,7 +244,7 @@ $(CONVERTTAGFLAG) : $(DOCUHTMLFILES)
$(PERL) $(CONVERTTAGSCRIPT) 1 "$(TITLE)" "$(OFFICEPRODUCTNAME)" $(DOCUHTMLFILES)
@echo "tags converted" > $@
-$(IDL_DOCU_CLEANUP_FLAG) : $(IDL_CHAPTER_REFS) $(PRJ)$/docs$/common$/ref$/idl.css
+$(IDL_DOCU_CLEANUP_FLAG) : $(IDL_CHAPTER_REFS) $(PRJ)/docs/common/ref/idl.css $(DESTIDLLIST)
@@-$(MY_DELETE_RECURSIVE) $(DESTDIRGENIDLREF)
$(TOUCH) $@
@@ -252,11 +252,11 @@ $(IDL_DOCU_INDEX_FILE) : $(IDL_DOCU_CLEANUP_FLAG)
-$(MKDIRHIER) $(@:d)
$(MY_AUTODOC) -html $(DESTDIRGENIDLREF) -dvgroot "http://wiki.services.openoffice.org/wiki" \
-name $(IDLDOCREFNAME) -lg idl -dvgfile $(IDL_CHAPTER_REFS) -t $(DESTDIRIDL)
- -rm $(@:d)$/idl.css
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $(PRJ)$/docs$/common$/ref$/idl.css $(MY_TEXTCOPY_TARGETPRE) $(@:d:d)$/idl.css
+ -rm $(@:d)/idl.css
+ $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $(PRJ)/docs/common/ref/idl.css $(MY_TEXTCOPY_TARGETPRE) $(@:d:d)/idl.css
.IF "$(SOLAR_JAVA)" != ""
-$(MYZIPTARGET) : $(BIN)$/unowinreg.dll $(DESTCLASSESLIST)
- cd $(MYZIPDIR) && zip $(MYZIPFLAGS) ..$/..$/..$/bin$/$(MYZIPTARGET:b) $(MYZIPLIST)
+$(MYZIPTARGET) : $(BIN)/unowinreg.dll $(DESTCLASSESLIST)
+ cd $(MYZIPDIR) && zip $(MYZIPFLAGS) ../../../bin/$(MYZIPTARGET:b) $(MYZIPLIST)
.ENDIF
diff --git a/odk/util/check.pl b/odk/util/check.pl
index 43732adfaa08..0ba7f05a6ed2 100644
--- a/odk/util/check.pl
+++ b/odk/util/check.pl
@@ -84,16 +84,16 @@ if (-d "$StartDir") {
my @filelist = ( "install.html",
"notsupported.html","sdk_styles.css","tools.html",
"images/arrow-1.gif", "images/arrow-3.gif",
- "images/bg_table.gif","images/bg_table2.gif",
- "images/bg_table3.gif", "images/nav_down.png",
+ "images/odk-footer-logo.gif",
+ "images/bg_table.png","images/bg_table2.png",
+ "images/bg_table3.png", "images/nav_down.png",
"images/nav_home.png","images/nav_left.png",
"images/nav_right.png","images/nav_up.png",
- "images/sdk_head-1.gif", "images/sdk_head-2.gif",
- "images/sdk_head-3.gif", "images/sdk_line-1.gif",
- "images/sdk_line-2.gif", "common/ref/idl.css",
- "images/nada.gif","images/arrow-2.gif",
- "images/bluball.gif","images/so-main-app_32.png",
- "images/ooo-main-app_32.png");
+ "images/sdk_head-1.png", "images/sdk_head-2.png",
+ "images/sdk_line-1.gif", "images/sdk_line-2.gif",
+ "common/ref/idl.css", "images/nada.gif",
+ "images/arrow-2.gif", "images/bluball.gif",
+ "images/orc-main-app_32.png", "images/ooo-main-app_32.png");
foreach $i (@filelist)
{
diff --git a/odk/util/makefile.mk b/odk/util/makefile.mk
index ed836730a165..7f6517ed42a8 100644
--- a/odk/util/makefile.mk
+++ b/odk/util/makefile.mk
@@ -24,9 +24,7 @@ ALLTAR:\
$(BIN)$/$(PRODUCTZIPFILE) : $(SDK_CONTENT_CHECK_FILES) $(SDK_CHECK_FLAGS)
cd $(BIN)$/$(PRODUCT_NAME) && zip -urq ..$/$(PRODUCTZIPFILE) . $(CHECKZIPRESULT)
-.IF "$(USE_SHELL)"!="4nt"
$(PERL) -w $(SOLARENV)$/bin$/cleanzip.pl $@
-.ENDIF # "$(USE_SHELL)"!="4nt"
# cd $(BIN)$/$(PRODUCT_NAME) && zip -urq ..$/$(PRODUCTZIPFILE) . -x "idl/*" $(CHECKZIPRESULT)
# cd $(BIN)$/$(PRODUCT_NAME) && zip -urq ..$/odkidl.zip idl/* $(CHECKZIPRESULT)
diff --git a/odk/util/makefile.pmk b/odk/util/makefile.pmk
index 0eb4c76b625d..aa0f10ed035e 100644
--- a/odk/util/makefile.pmk
+++ b/odk/util/makefile.pmk
@@ -37,26 +37,26 @@ IDLDOCREFNAME="$(OFFICENAME) $(PRODUCT_RELEASE) API"
PRODUCT_NAME=odkcommon
PRODUCTZIPFILE=$(PRODUCT_NAME).zip
-DESTDIR=$(OUT)$/bin$/$(PRODUCT_NAME)
-DESTDIRBIN=$(DESTDIR)$/bin
-DESTDIRLIB=$(DESTDIR)$/lib
+DESTDIR=$(OUT)/bin/$(PRODUCT_NAME)
+DESTDIRBIN=$(DESTDIR)/bin
+DESTDIRLIB=$(DESTDIR)/lib
DESTDIRDLL=$(DESTDIRLIB)
-DESTDIRIDL=$(DESTDIR)$/idl
-DESTDIRINC=$(DESTDIR)$/include
-DESTDIRJAR=$(DESTDIR)$/classes
-DESTDIRXML=$(DESTDIR)$/xml
-DESTDIRSETTINGS=$(DESTDIR)$/settings
-DESTDIREXAMPLES=$(DESTDIR)$/examples
-DESTDIRINC=$(DESTDIR)$/include
-DESTDIRCLASSES=$(DESTDIR)$/classes
-DESTDIRDOCU=$(DESTDIR)$/docs
-DESTDIRCOMMONDOCU=$(DESTDIRDOCU)$/common
-DESTDIRGENIDLREF=$(DESTDIRCOMMONDOCU)$/ref
-DESTDIRDOCUIMAGES=$(DESTDIRDOCU)$/images
-DESTDIRCPPDOCU=$(DESTDIRDOCU)$/cpp
-DESTDIRGENCPPREF=$(DESTDIRDOCU)$/cpp$/ref
-DESTDIRJAVADOCU=$(DESTDIRDOCU)$/java
-DESTDIRGENJAVAREF=$(DESTDIRDOCU)$/java$/ref
+DESTDIRIDL=$(DESTDIR)/idl
+DESTDIRINC=$(DESTDIR)/include
+DESTDIRJAR=$(DESTDIR)/classes
+DESTDIRXML=$(DESTDIR)/xml
+DESTDIRSETTINGS=$(DESTDIR)/settings
+DESTDIREXAMPLES=$(DESTDIR)/examples
+DESTDIRINC=$(DESTDIR)/include
+DESTDIRCLASSES=$(DESTDIR)/classes
+DESTDIRDOCU=$(DESTDIR)/docs
+DESTDIRCOMMONDOCU=$(DESTDIRDOCU)/common
+DESTDIRGENIDLREF=$(DESTDIRCOMMONDOCU)/ref
+DESTDIRDOCUIMAGES=$(DESTDIRDOCU)/images
+DESTDIRCPPDOCU=$(DESTDIRDOCU)/cpp
+DESTDIRGENCPPREF=$(DESTDIRDOCU)/cpp/ref
+DESTDIRJAVADOCU=$(DESTDIRDOCU)/java
+DESTDIRGENJAVAREF=$(DESTDIRDOCU)/java/ref
BINOUT=$(SOLARBINDIR)
INCOUT=$(SOLARINCDIR)
@@ -64,11 +64,11 @@ IDLOUT=$(SOLARIDLDIR)
XMLOUT=$(SOLARXMLDIR)
LIBOUT=$(SOLARLIBDIR)
-CONVERTTAGSCRIPT=$(SOLARENV)$/bin$/converttags.pl
+CONVERTTAGSCRIPT=$(SOLARENV)/bin/converttags.pl
CONVERTTAGFLAGNAME=converttags_html_files.flag
-CONVERTTAGFLAG = $(MISC)$/$(CONVERTTAGFLAGNAME)
+CONVERTTAGFLAG = $(MISC)/$(CONVERTTAGFLAGNAME)
-MY_AUTODOC=$(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(SOLARBINDIR)$/autodoc
+MY_AUTODOC=$(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(SOLARBINDIR)/autodoc
.IF "$(OS)"=="FREEBSD" || "$(OS)"=="NETBSD"
MY_COPY=$(GNUCOPY)
@@ -83,19 +83,22 @@ MY_COPY_RECURSIVE=$(GNUCOPY) -urf
.ENDIF
.ENDIF
+MY_DELETE_RECURSIVE=rm -rf
+MY_TEXTCOPY=@cp
+
.IF "$(GUI)"=="WNT"
#--------------------
# WNT ONLY
#--------------------
-MY_DELETE_RECURSIVE=+del /sxyf
-MY_TEXTCOPY=cat
+#MY_DELETE_RECURSIVE=+del /sxyf
+#MY_TEXTCOPY=cat
MY_DLLPREFIX=
MY_DLLPOSTFIX=.dll
-MY_DLLOUT=$(OUT)$/bin
+MY_DLLOUT=$(OUT)/bin
EXEPOSTFIX=.exe
DLLOUT=$(SOLARBINDIR)
-DESTDIRCPPEXAMPLES=$(DESTDIR)$/examples$/cpp
+DESTDIRCPPEXAMPLES=$(DESTDIR)/examples/cpp
.IF "$(COM)"=="GCC"
DESTPLATFROM=mingw
@@ -103,15 +106,15 @@ DESTPLATFROM=mingw
DESTPLATFROM=windows
.ENDIF
DESTDIRDLL=$(DESTDIRBIN)
-DESTDIRCLI=$(DESTDIR)$/cli
+DESTDIRCLI=$(DESTDIR)/cli
.ELSE
#--------------------
-# UNX ONLYDESTDIRCPPEXAMPLES=$(DESTDIR)$/examples$/cpp
+# UNX ONLYDESTDIRCPPEXAMPLES=$(DESTDIR)/examples/cpp
#--------------------
-MY_DELETE_RECURSIVE=rm -rf
-MY_TEXTCOPY= tr -d "\015"
+#MY_DELETE_RECURSIVE=rm -rf
+#MY_TEXTCOPY= tr -d "\015"
MY_DLLPREFIX=lib
.IF "$(OS)"=="MACOSX"
@@ -119,7 +122,7 @@ MY_DLLPOSTFIX=.dylib
.ELSE
MY_DLLPOSTFIX=.so
.ENDIF
-MY_DLLOUT=$(OUT)$/lib
+MY_DLLOUT=$(OUT)/lib
DLLOUT=$(SOLARLIBDIR)
.IF "$(OS)$(CPU)"=="SOLARISS"
@@ -165,67 +168,57 @@ DESTPLATFROM=freebsd
DESTPLATFROM=macosx
.ENDIF
-#DESTDIRBIN=$(DESTDIR)$/$(DESTPLATFROM)$/bin
-#DESTDIRLIB=$(DESTDIR)$/$(DESTPLATFROM)$/lib
+#DESTDIRBIN=$(DESTDIR)/$(DESTPLATFROM)/bin
+#DESTDIRLIB=$(DESTDIR)/$(DESTPLATFROM)/lib
#DESTDIRDLL=$(DESTDIRLIB)
.ENDIF
-MY_TEXTCOPY_SOURCEPRE=<
-MY_TEXTCOPY_TARGETPRE=>
+#MY_TEXTCOPY_SOURCEPRE=<
+#MY_TEXTCOPY_TARGETPRE=>
INCLUDETOPDIRLIST= \
- $(INCOUT)$/sal \
- $(INCOUT)$/salhelper \
- $(INCOUT)$/rtl \
- $(INCOUT)$/osl \
- $(INCOUT)$/store \
- $(INCOUT)$/typelib \
- $(INCOUT)$/uno \
- $(INCOUT)$/cppu \
- $(INCOUT)$/cppuhelper \
- $(INCOUT)$/bridges \
- $(INCOUT)$/registry \
- $(INCOUT)$/stl
+ $(INCOUT)/sal \
+ $(INCOUT)/salhelper \
+ $(INCOUT)/rtl \
+ $(INCOUT)/osl \
+ $(INCOUT)/store \
+ $(INCOUT)/typelib \
+ $(INCOUT)/uno \
+ $(INCOUT)/cppu \
+ $(INCOUT)/cppuhelper \
+ $(INCOUT)/bridges \
+ $(INCOUT)/registry \
+ $(INCOUT)/stl
.IF "$(GUI)"=="WNT"
-INCLUDETOPDIRLIST += $(INCOUT)$/systools
+INCLUDETOPDIRLIST += $(INCOUT)/systools
.ENDIF
-INCLUDEDIRLIST:={$(subst,/,$/ $(shell @$(FIND) $(INCLUDETOPDIRLIST) -type d -print))}
+INCLUDEDIRLIST:={$(subst,/,/ $(shell @$(FIND) $(INCLUDETOPDIRLIST) -type d -print))}
INCLUDEFILELIST=\
- $(INCOUT)$/com$/sun$/star$/uno$/Any.h \
- $(INCOUT)$/com$/sun$/star$/uno$/Any.hxx \
- $(INCOUT)$/com$/sun$/star$/uno$/genfunc.h \
- $(INCOUT)$/com$/sun$/star$/uno$/genfunc.hxx \
- $(INCOUT)$/com$/sun$/star$/uno$/Reference.h \
- $(INCOUT)$/com$/sun$/star$/uno$/Reference.hxx \
- $(INCOUT)$/com$/sun$/star$/uno$/Sequence.h \
- $(INCOUT)$/com$/sun$/star$/uno$/Sequence.hxx \
- $(INCOUT)$/com$/sun$/star$/uno$/Type.h \
- $(INCOUT)$/com$/sun$/star$/uno$/Type.hxx
-
-.IF "$(USE_SHELL)"=="4nt"
-# Quoted Open Bracket -QOB
-# Quoted Close Bracket -QCB
-QOB=(
-QCB=)
-.ELSE
-QOB=\(
-QCB=\)
-.ENDIF
+ $(INCOUT)/com/sun/star/uno/Any.h \
+ $(INCOUT)/com/sun/star/uno/Any.hxx \
+ $(INCOUT)/com/sun/star/uno/genfunc.h \
+ $(INCOUT)/com/sun/star/uno/genfunc.hxx \
+ $(INCOUT)/com/sun/star/uno/Reference.h \
+ $(INCOUT)/com/sun/star/uno/Reference.hxx \
+ $(INCOUT)/com/sun/star/uno/Sequence.h \
+ $(INCOUT)/com/sun/star/uno/Sequence.hxx \
+ $(INCOUT)/com/sun/star/uno/Type.h \
+ $(INCOUT)/com/sun/star/uno/Type.hxx
INCLUDELIST:=\
- {$(subst,/,$/ $(shell @$(FIND) $(INCLUDETOPDIRLIST) -type f ! $(QOB) -name "*~" -o -name "*build.lst" -o -name "*deliver.log" $(QCB) -print))} \
+ {$(shell @$(FIND) $(INCLUDETOPDIRLIST) -type f ! \( -name "*~" -o -name "*build.lst" -o -name "*deliver.log" \) -print)} \
$(INCLUDEFILELIST)
SDK_CONTENT_CHECK_FILES= \
- $(MISC)$/copying_files.txt
+ $(MISC)/copying_files.txt
SDK_CHECK_FLAGS= \
- $(MISC)$/checkbin.txt \
- $(MISC)$/checkidl.txt \
- $(MISC)$/checkinc.txt \
- $(MISC)$/checkinc2.txt
+ $(MISC)/checkbin.txt \
+ $(MISC)/checkidl.txt \
+ $(MISC)/checkinc.txt \
+ $(MISC)/checkinc2.txt
diff --git a/odk/util/odk_rules.pmk b/odk/util/odk_rules.pmk
index cc80078de4a4..6c2fa72600a1 100644
--- a/odk/util/odk_rules.pmk
+++ b/odk/util/odk_rules.pmk
@@ -26,155 +26,124 @@
#*************************************************************************
-$(DESTDIRDOCU)$/%.html : $(PRJ)$/docs$/%.html
+$(DESTDIRDOCU)/%.html : $(PRJ)/docs/%.html
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
+ $(MY_TEXTCOPY) $< $@
-$(DESTDIREXAMPLES)$/%.html : $(PRJ)$/examples$/%.html
+$(DESTDIREXAMPLES)/%.html : $(PRJ)/examples/%.html
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
+ $(MY_TEXTCOPY) $< $@
-$(DESTDIR)$/index.html : $(PRJ)$/index.html
+$(DESTDIR)/index.html : $(PRJ)/index.html
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
+ $(MY_TEXTCOPY) $< $@
-$(DESTDIRDOCU)$/%.css : $(PRJ)$/docs$/%.css
+$(DESTDIRDOCU)/%.css : $(PRJ)/docs/%.css
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
+ $(MY_TEXTCOPY) $< $@
-$(DESTDIRDOCUIMAGES)$/% : $(PRJ)$/docs$/images$/%
+$(DESTDIRDOCUIMAGES)/% : $(PRJ)/docs/images/%
@@-rm -f $@
$(MY_COPY) $< $@
-$(DESTDIR)$/configure : $(PRJ)$/configure
+$(DESTDIR)/configure : $(PRJ)/configure
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $(PRJ)$/configure $(MY_TEXTCOPY_TARGETPRE) $@
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
- -chmod 755 $@
-.ENDIF
+ $(MY_TEXTCOPY) $(PRJ)/configure $@
-$(DESTDIR)$/configure.pl : $(PRJ)$/configure.pl
+$(DESTDIR)/configure.pl : $(PRJ)/configure.pl
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $(PRJ)$/configure.pl $(MY_TEXTCOPY_TARGETPRE) $@
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
- -chmod 755 $@
-.ENDIF
+ $(MY_TEXTCOPY) $(PRJ)/configure.pl $@
-$(DESTDIR)$/config.guess : $(SRC_ROOT)$/config.guess
+$(DESTDIR)/config.guess : $(SRC_ROOT)/config.guess
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $(SRC_ROOT)$/config.guess $(MY_TEXTCOPY_TARGETPRE) $@
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
- -chmod 755 $@
-.ENDIF
+ $(MY_TEXTCOPY) $(SRC_ROOT)/config.guess $@
-$(DESTDIR)$/config.sub : $(SRC_ROOT)$/config.sub
+$(DESTDIR)/config.sub : $(SRC_ROOT)/config.sub
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $(SRC_ROOT)$/config.sub $(MY_TEXTCOPY_TARGETPRE) $@
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
- -chmod 755 $@
-.ENDIF
+ $(MY_TEXTCOPY) $(SRC_ROOT)/config.sub $@
-$(DESTDIR)$/setsdkenv_unix : $(PRJ)$/setsdkenv_unix
+$(DESTDIR)/setsdkenv_unix : $(PRJ)/setsdkenv_unix
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
- -chmod 755 $@
-.ENDIF
-
-#.IF "$(USE_SHELL)"=="4nt"
-# $(TYPE) $< | $(SED) "s/__SDKNAME__/$(SDKDIRNAME)/" > $@
-#.ELSE
-# $(TYPE) $< | $(SED) 's#__SDKNAME__#$(SDKDIRNAME)#' > $@
-#.ENDIF
+ $(MY_TEXTCOPY) $< $@
-$(DESTDIR)$/setsdkenv_unix.%.in : $(PRJ)$/setsdkenv_unix.%.in
+$(DESTDIR)/setsdkenv_unix.%.in : $(PRJ)/setsdkenv_unix.%.in
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
- -chmod 644 $@
-.ENDIF
+ $(MY_TEXTCOPY) $< $@
-$(DESTDIR)$/setsdkenv_windows.bat : $(PRJ)$/setsdkenv_windows.bat
+$(DESTDIR)/setsdkenv_windows.bat : $(PRJ)/setsdkenv_windows.bat
@@-rm -f $@
-.IF "$(USE_SHELL)"=="4nt"
- $(TYPE) $< | $(SED) "s/__SDKNAME__/$(SDKDIRNAME)/" > $@
-.ELSE
$(TYPE) $< | $(SED) 's#__SDKNAME__#$(SDKDIRNAME)#' > $@
-.ENDIF
-$(DESTDIR)$/%.bat : $(PRJ)$/%.bat
+$(DESTDIR)/%.bat : $(PRJ)/%.bat
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
+ $(MY_TEXTCOPY) $< $@
-$(DESTDIR)$/setsdkenv_windows.template : $(PRJ)$/setsdkenv_windows.template
+$(DESTDIR)/setsdkenv_windows.template : $(PRJ)/setsdkenv_windows.template
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
+ $(MY_TEXTCOPY) $< $@
-$(DESTDIR)$/cfgWin.js : $(PRJ)$/cfgWin.js
+$(DESTDIR)/cfgWin.js : $(PRJ)/cfgWin.js
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $(PRJ)$/cfgWin.js $(MY_TEXTCOPY_TARGETPRE) $@
+ $(MY_TEXTCOPY) $(PRJ)/cfgWin.js $@
-$(DESTDIRSETTINGS)$/%.mk : $(PRJ)$/settings$/%.mk
+$(DESTDIRSETTINGS)/%.mk : $(PRJ)/settings/%.mk
@@-rm -f $@
.IF "$(COMEX)"=="7"
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< | $(SED) -e 's/stlport_vc7/stlport_vc6/' $(MY_TEXTCOPY_TARGETPRE) $@
+ $(MY_TEXTCOPY) $< | $(SED) -e 's/stlport_vc7/stlport_vc6/' $@
.ELSE
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
+ $(MY_TEXTCOPY) $< $@
.ENDIF
-$(DESTDIRXML)$/module-description.dtd : $(XMLOUT)$/module-description.dtd
+$(DESTDIRXML)/module-description.dtd : $(XMLOUT)/module-description.dtd
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $(XMLOUT)$/module-description.dtd $(MY_TEXTCOPY_TARGETPRE) $@
-$(DESTDIRXML)$/%.xml : $(XMLOUT)$/%.xml
+ $(MY_TEXTCOPY) $(XMLOUT)/module-description.dtd $@
+$(DESTDIRXML)/%.xml : $(XMLOUT)/%.xml
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
+ $(MY_TEXTCOPY) $< $@
-$(DESTDIRBIN)$/%$(EXEPOSTFIX) : $(BINOUT)$/%$(EXEPOSTFIX)
+$(DESTDIRBIN)/%$(EXEPOSTFIX) : $(BINOUT)/%$(EXEPOSTFIX)
@@-rm -f $@
- $(GNUCOPY) $(BINOUT)$/$(@:f) $@
+ $(GNUCOPY) $(BINOUT)/$(@:f) $@
-$(DESTDIRBIN)$/%.bin : $(BINOUT)$/%.bin
+$(DESTDIRBIN)/%.bin : $(BINOUT)/%.bin
@@-rm -f $@
- $(GNUCOPY) $(BINOUT)$/$(@:f) $@
+ $(GNUCOPY) $(BINOUT)/$(@:f) $@
-$(DESTDIRBIN)$/regcomp : $(BINOUT)$/regcomp
+$(DESTDIRBIN)/regcomp : $(BINOUT)/regcomp
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
- -chmod 755 $@
-.ENDIF
+ $(MY_TEXTCOPY) $< $@
-$(DESTDIRBIN)$/unoapploader$(EXEPOSTFIX) : $(BIN)$/unoapploader$(EXEPOSTFIX)
+$(DESTDIRBIN)/unoapploader$(EXEPOSTFIX) : $(BIN)/unoapploader$(EXEPOSTFIX)
@@-rm -f $@
- $(GNUCOPY) $(BIN)$/$(@:f) $@
+ $(GNUCOPY) $(BIN)/$(@:f) $@
# special rule for special Java UNO native library
# (used for all platforms but built only under windows;
# otherwise provided in external)
-$(DESTDIRJAR)$/win$/unowinreg.dll : $(BIN)$/unowinreg.dll
+$(DESTDIRJAR)/win/unowinreg.dll : $(BIN)/unowinreg.dll
@@-rm -f $@
$(GNUCOPY) $< $@
-$(DESTDIRCLI)$/%.dll : $(BINOUT)$/%.dll
+$(DESTDIRCLI)/%.dll : $(BINOUT)/%.dll
@@-rm -f $@
$(GNUCOPY) $< $@
-$(DESTDIRDLL)$/%$(MY_DLLPOSTFIX) : $(DLLOUT)$/%$(MY_DLLPOSTFIX)
+$(DESTDIRDLL)/%$(MY_DLLPOSTFIX) : $(DLLOUT)/%$(MY_DLLPOSTFIX)
@@-rm -f $@
- $(GNUCOPY) $(DLLOUT)$/$(@:f) $@
+ $(GNUCOPY) $(DLLOUT)/$(@:f) $@
-$(DESTDIRJAR)$/com$/sun$/star$/lib$/loader$/%.class : $(CLASSDIR)$/com$/sun$/star$/lib$/loader$/%.class
+$(DESTDIRJAR)/com/sun/star/lib/loader/%.class : $(CLASSDIR)/com/sun/star/lib/loader/%.class
@@-$(RM) $(@:db).class
$(COPY) $(<:db).class $(@:d)
# deal with subclasses
@@-$(RM) $(@:db)$(EMQ)$$*.class
-$(COPY) $(<:db)$(EMQ)$$*.class $(@:d)
-$(DESTDIRIDL)$/% : $(IDLOUT)$/%
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
- @touch $(IDL_DOCU_CLEANUP_FLAG)
+$(DESTDIRIDL)/% : $(IDLOUT)/%
+ $(MY_TEXTCOPY) $< $@
+# @touch $(IDL_DOCU_CLEANUP_FLAG)
-$(DESTDIRINC)$/udkversion.mk :
+$(DESTDIRINC)/udkversion.mk :
@@-rm -f $@
@echo #UDK version number > $@
@echo #major >> $@
@@ -184,38 +153,34 @@ $(DESTDIRINC)$/udkversion.mk :
@echo #micro >> $@
@echo UDK_MICRO=$(UDK_MICRO) >> $@
-$(DESTDIRINC)$/% : $(INCOUT)$/%
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
+$(DESTDIRINC)/% : $(INCOUT)/%
+ $(MY_TEXTCOPY) $< $@
-$(DESTDIRLIB)$/%.lib : $(LIBOUT)$/%.lib
+$(DESTDIRLIB)/%.lib : $(LIBOUT)/%.lib
@@-rm -f $@
- $(GNUCOPY) $(LIBOUT)$/$(@:f) $@
+ $(GNUCOPY) $(LIBOUT)/$(@:f) $@
-$(DESTDIRLIB)$/%.a : $(LIBOUT)$/%.a
+$(DESTDIRLIB)/%.a : $(LIBOUT)/%.a
@@-rm -f $@
- $(GNUCOPY) $(LIBOUT)$/$(@:f) $@
+ $(GNUCOPY) $(LIBOUT)/$(@:f) $@
$(DIR_CREATE_FLAG) :
-.IF "$(USE_SHELL)" != "4nt"
$(TYPE) $(mktmp $(DIR_DIRECTORY_LIST)) | xargs -n 20 $(MKDIRHIER) && echo "dirs created" > $@ && touch $@
-.ELSE
- $(TYPE) $(mktmp $(DIR_DIRECTORY_LIST:s#\#/#)) | $(XARGS) mkdir.exe -p && echo "dirs created" > $@ && touch $@
-.ENDIF
$(DELAY) 2
-$(DESTDIRSETTINGS)$/component.uno.def : $(PRJ)$/settings$/component.uno.def
+$(DESTDIRSETTINGS)/component.uno.def : $(PRJ)/settings/component.uno.def
@@-rm -f $@
- $(MY_TEXTCOPY) $(MY_TEXTCOPY_SOURCEPRE) $< $(MY_TEXTCOPY_TARGETPRE) $@
+ $(MY_TEXTCOPY) $< $@
-$(DESTDIRSETTINGS)$/component.uno.map : $(SOLARENV)$/bin$/addsym.awk $(SOLARENV)$/src$/component.map
+$(DESTDIRSETTINGS)/component.uno.map : $(SOLARENV)/bin/addsym.awk $(SOLARENV)/src/component.map
@@-$(RM) -f $@
.IF "$(COMID)"=="gcc3"
- tr -d "\015" < $(SOLARENV)$/src$/component.map | $(AWK) -f $(SOLARENV)$/bin$/addsym.awk > $@
+ tr -d "\015" < $(SOLARENV)/src/component.map | $(AWK) -f $(SOLARENV)/bin/addsym.awk > $@
.IF "$(OS)"=="MACOSX"
- tr -d "\015" < $(SOLARENV)$/src$/component.map | tail -n +3 | head -3 | sed -e 's/.*component/_component/g' -e 's/;[ ]*$//' > $@
+ tr -d "\015" < $(SOLARENV)/src/component.map | tail -n +3 | head -3 | sed -e 's/.*component/_component/g' -e 's/;[ ]*//' > $@
.ENDIF
.ELSE # "$(COMID)"=="gcc3"
- tr -d "\015" < $(SOLARENV)$/src$/component.map > $@
+ tr -d "\015" < $(SOLARENV)/src/component.map > $@
.ENDIF # "$(COMID)"=="gcc3"
@chmod 664 $@
diff --git a/offapi/com/sun/star/rendering/TexturingMode.idl b/offapi/com/sun/star/rendering/TexturingMode.idl
index 9d54940b9dcf..b44a78eae6ce 100644
--- a/offapi/com/sun/star/rendering/TexturingMode.idl
+++ b/offapi/com/sun/star/rendering/TexturingMode.idl
@@ -36,13 +36,24 @@ module com { module sun { module star { module rendering {
*/
constants TexturingMode
{
+ /** Pixel outside the texture area are fully transparent.<p>
+
+ This completely switches off pixel generation outside the
+ texture coordinate range [0,1]. This results in only one
+ instance of the texture generated per textured primitive.<p>
+ */
+ const byte NONE=0;
+
+ //-------------------------------------------------------------------------
+
/** Clamp texture coordinate.<p>
- This value clamps the texture coordinate to the range
+ This value clamps the texture coordinates to the range
[0,1]. This results in only one instance of the texture
- generated per textured primitive.<p>
+ generated per textured primitive, with the remaining area
+ filled with the color of the outermost texels<p>
*/
- const byte CLAMP=0;
+ const byte CLAMP=1;
//-------------------------------------------------------------------------
@@ -51,7 +62,7 @@ constants TexturingMode
This value repeats the texture over the textured primitive,
for the given texture coordinate.<p>
*/
- const byte REPEAT=1;
+ const byte REPEAT=2;
};
}; }; }; };
diff --git a/offapi/com/sun/star/rendering/XGraphicDevice.idl b/offapi/com/sun/star/rendering/XGraphicDevice.idl
index c48f7e3e184d..a9caaefede7e 100644
--- a/offapi/com/sun/star/rendering/XGraphicDevice.idl
+++ b/offapi/com/sun/star/rendering/XGraphicDevice.idl
@@ -45,12 +45,12 @@
#ifndef __com_sun_star_rendering_XBezierPolyPolygon2D_idl__
#include <com/sun/star/rendering/XBezierPolyPolygon2D.idl>
#endif
-#ifndef __com_sun_star_rendering_XParametricPolyPolygon2DFactory_idl__
-#include <com/sun/star/rendering/XParametricPolyPolygon2DFactory.idl>
-#endif
#ifndef __com_sun_star_rendering_XColorSpace_idl__
#include <com/sun/star/rendering/XColorSpace.idl>
#endif
+#ifndef __com_sun_star_lang_XMultiServiceFactory_idl__
+#include <com/sun/star/lang/XMultiServiceFactory.idl>
+#endif
module com { module sun { module star { module rendering {
@@ -217,8 +217,67 @@ interface XGraphicDevice : ::com::sun::star::uno::XInterface
this is not advisable: each canvas implementation is free to
internally generate optimized parametric polygons, which can
be used more directly for e.g. texturing operations.
+
+ <pre>
+ Available services (all canvas implementations should provide
+ this minimal set, though are free to add more; just check the
+ getAvailableServiceNames() on the returned interface):
+
+ - Gradients - all gradients need to support two construction
+ parameters, "Colors" being a <type>sequence<Color></type>
+ and "Stops" being a <type>sequence<double></type>. Both must
+ have the same length, and at least two elements. See
+ http://www.w3.org/TR/SVG11/pservers.html#GradientStops for
+ the semantics of gradient stops and colors.
+ Required gradient services:
+
+ * "LinearGradient" - the gradient varies linearly between
+ the given colors. without coordinate system
+ transformation, the color interpolation happens in
+ increasing x direction, and is constant in y
+ direction. Equivalent to svg linear gradient
+ http://www.w3.org/TR/SVG11/pservers.html#LinearGradients
+
+ * "EllipticalGradient" - this gradient has zeroth color
+ index in the middle, and varies linearly between center
+ and final color. The services takes an additional
+ parameter named "AspectRatio" of <type>double</type>
+ (width divided by height), if this aspect ratio is 1, the
+ gradient is circular. If it's not 1, the gradient is
+ elliptical, with the special twist that the aspect ratio
+ is maintained also for the center color: the gradient will
+ not collapse into a single point, but become a line of
+ center color. If "AspectRatio" is missing, or equal to 1,
+ this gradient yields similar results as the svg radial
+ gradient
+ http://www.w3.org/TR/SVG11/pservers.html#RadialGradients
+
+ * "RectangularGradient" - this gradient has zeroth color
+ index in the middle, and varies linearly between center
+ and final color via rectangular boxes
+ around the center point. The services takes an additional
+ parameter named "AspectRatio" of <type>double</type>
+ (width divided by height), if this aspect ratio is 1, the
+ gradient is quadratic. If it's not 1, the gradient is
+ rectangular, with the special twist that the aspect ratio
+ is maintained also for the center color: the gradient will
+ not collapse into a single point, but become a line of
+ center color.
+
+ - Hatch patterns - Required hatch services:
+
+ * "VerticalLineHatch" - this hatching consists of vertical lines
+ * "OrthogonalLinesHatch" - this hatching consists of
+ crossing vertical and horizontal lines
+ * "ThreeCrossingLinesHatch" - this hatching consists of
+ vertical and horizontal lines plus diagonal lines from
+ left, top to bottom, right.
+ * "FourCrossingLinesHatch" - this hatching consists of
+ vertical and horizontal lines plus diagonal lines in both
+ directions.
+ </pre>
*/
- XParametricPolyPolygon2DFactory getParametricPolyPolygonFactory();
+ com::sun::star::lang::XMultiServiceFactory getParametricPolyPolygonFactory();
//-------------------------------------------------------------------------
diff --git a/offapi/com/sun/star/rendering/XParametricPolyPolygon2DFactory.idl b/offapi/com/sun/star/rendering/XParametricPolyPolygon2DFactory.idl
deleted file mode 100644
index 2471849864a1..000000000000
--- a/offapi/com/sun/star/rendering/XParametricPolyPolygon2DFactory.idl
+++ /dev/null
@@ -1,152 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 __com_sun_star_rendering_XParametricPolyPolygon2DFactory_idl__
-#define __com_sun_star_rendering_XParametricPolyPolygon2DFactory_idl__
-
-#ifndef __com_sun_star_uno_XInterface_idl__
-#include <com/sun/star/uno/XInterface.idl>
-#endif
-#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
-#include <com/sun/star/lang/IllegalArgumentException.idl>
-#endif
-#ifndef __com_sun_star_geometry_RealRectangle2D_idl__
-#include <com/sun/star/geometry/RealRectangle2D.idl>
-#endif
-#ifndef __com_sun_star_rendering_XColorSpace_idl__
-#include <com/sun/star/rendering/XColorSpace.idl>
-#endif
-
-
-module com { module sun { module star { module rendering {
-
-interface XParametricPolyPolygon2D;
-
-/** This interface provides factory methods to generate various
- ready-made XParametricPolyPolygon2Ds
- */
-interface XParametricPolyPolygon2DFactory : ::com::sun::star::uno::XInterface
-{
- /** Create a linear gradient.
-
- The gradient varies linearly between colors. the color positions on <0, 1> interval are given by stops values
- in the x direction, and has constant color for fixed x
- coordinate value in y direction
- */
- XParametricPolyPolygon2D createLinearHorizontalGradient( [in] sequence<Color> colors, [in] sequence<double> stops )
- raises (com::sun::star::lang::IllegalArgumentException);
-
- /** Create an axial gradient.
-
- The gradient has middleColor in the middle, and varies
- linearly between middleColor and endColor to both sides in the
- x direction. For fixed x coordinate, the gradient has constant
- color value in y direction.
- */
- XParametricPolyPolygon2D createAxialHorizontalGradient( [in] sequence<Color> colors, [in] sequence<double> stops )
- raises (com::sun::star::lang::IllegalArgumentException);
-
- /** Create an elliptical gradient.
-
- The gradient has centerColor in the middle, and varies
- linearly between center and endColor via concentric ellipses
- around the center point. Note that the absolute size of the
- rectangle given at this method does not matter, only it's
- aspect ratio: if this aspect ratio is 1, the gradient is
- circular. If it's not 1, the gradient is elliptical, with the
- special twist that the aspect ratio is maintained also for the
- center color: the gradient will not collapse into a single
- point, but become a line of center color.
- */
- XParametricPolyPolygon2D createEllipticalGradient( [in] sequence<Color> colors, [in] sequence<double> stops, [in] ::com::sun::star::geometry::RealRectangle2D boundRect )
- raises (com::sun::star::lang::IllegalArgumentException);
-
- /** Create a rectangular gradient.
-
- The gradient has centerColor in the middle, and varies
- linearly between center and endColor via rectangular boxes
- around the center point. Note that the absolute size of the
- rectangle given at this method does not matter, only it's
- aspect ratio: if this aspect ratio is 1, the gradient is
- quadratic. If it's not 1, the gradient is rectangular, with
- the special twist that the aspect ratio is maintained also for
- the center color: the gradient will not collapse into a single
- point, but become a line of center color.
- */
- XParametricPolyPolygon2D createRectangularGradient( [in] sequence<Color> colors, [in] sequence<double> stops, [in] ::com::sun::star::geometry::RealRectangle2D boundRect )
- raises (com::sun::star::lang::IllegalArgumentException);
-
- /** Create a line hash of vertical lines.
-
- The hashing consists of vertical lines, with colors varying
- linearly between leftColor and rightColor, when going from
- left to right
- */
- XParametricPolyPolygon2D createVerticalLinesHatch( [in] sequence<ColorComponent> leftColor, [in] sequence<ColorComponent> rightColor )
- raises (com::sun::star::lang::IllegalArgumentException);
-
- /** Create a line hash of orthogonally crossing lines.
-
- The hashing consists of vertical and horizontal lines, with
- colors varying linearly between leftTopColor and
- rightBottomColor, when going from left to right (for the
- vertical lines) and from top tzo bottom (for the horizontal
- lines).
- */
- XParametricPolyPolygon2D createOrthogonalLinesHatch( [in] sequence<ColorComponent> leftTopColor, [in] sequence<ColorComponent> rightBottomColor )
- raises (com::sun::star::lang::IllegalArgumentException);
-
- /** Create a repeating line hash pattern of three crossing lines.
-
- The hashing consists of vertical and horizontal lines plus
- diagonal lines from left, top to bottom, right. Each of the
- three groups of lines varies the line color of distinct lines
- linearly from startColor to endColor, starting at the leftmost
- or topmost position.
- */
- XParametricPolyPolygon2D createThreeCrossingLinesHatch( [in] sequence<ColorComponent> startColor, [in] sequence<ColorComponent> endColor )
- raises (com::sun::star::lang::IllegalArgumentException);
-
- /** Create a repeating line hash pattern of four crossing lines.
-
- The hashing consists of vertical and horizontal lines plus
- diagonal lines in both directions. Each of the four groups of
- lines varies the line color of distinct lines linearly from
- startColor to endColor, starting at the leftmost or topmost
- position.
- */
- XParametricPolyPolygon2D createFourCrossingLinesHatch( [in] sequence<ColorComponent> startColor, [in] sequence<ColorComponent> endColor )
- raises (com::sun::star::lang::IllegalArgumentException);
-};
-
-//=============================================================================
-
-/// Service providing a <type>XParametricPolyPolygon2DFactory</type> service
-service ParametricPolyPolygon2DFactory: XParametricPolyPolygon2DFactory;
-
-}; }; }; };
-
-#endif
diff --git a/offapi/com/sun/star/rendering/makefile.mk b/offapi/com/sun/star/rendering/makefile.mk
index 3ed9cf9c27e7..6b59d156d35e 100644
--- a/offapi/com/sun/star/rendering/makefile.mk
+++ b/offapi/com/sun/star/rendering/makefile.mk
@@ -104,7 +104,6 @@ IDLFILES=\
XIntegerReadOnlyBitmap.idl \
XLinePolyPolygon2D.idl \
XParametricPolyPolygon2D.idl \
- XParametricPolyPolygon2DFactory.idl \
XPolyPolygon2D.idl \
XSimpleCanvas.idl \
XSprite.idl \
diff --git a/officecfg/prj/build.lst b/officecfg/prj/build.lst
index dba837c643a7..04d2cfd87aef 100644
--- a/officecfg/prj/build.lst
+++ b/officecfg/prj/build.lst
@@ -1,5 +1,4 @@
oc officecfg : l10n soltools solenv LIBXSLT:libxslt NULL
-oc officecfg usr30073 - none NULL
oc officecfg usr1 - all oc_mkout NULL
oc officecfg\registry\schema nmake - all oc_reg_schema NULL
oc officecfg\registry nmake - all oc_reg NULL
diff --git a/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu b/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu
index bf08c7b5da6a..243079c3abf1 100755
--- a/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/Accelerators.xcu
@@ -394,6 +394,7 @@
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="de">.uno:AlignBlock</value>
<value xml:lang="en-US">.uno:Bold</value>
+ <value xml:lang="es">.uno:SearchDialog</value>
</prop>
</node>
<node oor:name="B_SHIFT_MOD1" oor:op="replace">
@@ -459,6 +460,7 @@
<node oor:name="E_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:AlignHorizontalCenter</value>
+ <value xml:lang="es">.uno:SelectAll</value>
</prop>
</node>
<node oor:name="F11" oor:op="replace">
@@ -828,6 +830,7 @@
<node oor:name="U_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:Underline</value>
+ <value xml:lang="es">.uno:AddDirect</value>
</prop>
</node>
<node oor:name="U_SHIFT_MOD1" oor:op="replace">
@@ -988,6 +991,7 @@
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="de">.uno:JustifyPara</value>
<value xml:lang="en-US">.uno:Bold</value>
+ <value xml:lang="es">.uno:SearchDialog</value>
</prop>
</node>
<node oor:name="B_SHIFT_MOD1" oor:op="replace">
@@ -1023,6 +1027,7 @@
<node oor:name="E_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:CenterPara</value>
+ <value xml:lang="es">.uno:SelectAll</value>
</prop>
</node>
<node oor:name="F11" oor:op="replace">
@@ -1228,6 +1233,7 @@
<node oor:name="U_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:Underline</value>
+ <value xml:lang="es">.uno:AddDirect</value>
</prop>
</node>
<node oor:name="U_SHIFT_MOD1" oor:op="replace">
@@ -1336,6 +1342,7 @@
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="de">.uno:JustifyPara</value>
<value xml:lang="en-US">.uno:Bold</value>
+ <value xml:lang="es">.uno:SearchDialog</value>
</prop>
</node>
<node oor:name="B_SHIFT_MOD1" oor:op="replace">
@@ -1421,6 +1428,7 @@
<node oor:name="E_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:CenterPara</value>
+ <value xml:lang="es">.uno:SelectAll</value>
</prop>
</node>
<node oor:name="F10_MOD1" oor:op="replace">
@@ -1835,6 +1843,7 @@
<node oor:name="U_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:Underline</value>
+ <value xml:lang="es">.uno:AddDirect</value>
</prop>
</node>
<node oor:name="U_SHIFT_MOD1" oor:op="replace">
@@ -1931,6 +1940,7 @@
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="de">.uno:JustifyPara</value>
<value xml:lang="en-US">.uno:Bold</value>
+ <value xml:lang="es">.uno:SearchDialog</value>
</prop>
</node>
<node oor:name="B_SHIFT_MOD1" oor:op="replace">
@@ -1971,6 +1981,7 @@
<node oor:name="E_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:CenterPara</value>
+ <value xml:lang="es">.uno:SelectAll</value>
</prop>
</node>
<node oor:name="F11" oor:op="replace">
@@ -2201,6 +2212,7 @@
<node oor:name="U_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:Underline</value>
+ <value xml:lang="es">.uno:AddDirect</value>
</prop>
</node>
<node oor:name="U_SHIFT_MOD1" oor:op="replace">
@@ -2361,6 +2373,7 @@
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="de">.uno:JustifyPara</value>
<value xml:lang="en-US">.uno:Bold</value>
+ <value xml:lang="es">.uno:SearchDialog</value>
</prop>
</node>
<node oor:name="B_SHIFT_MOD1" oor:op="replace">
@@ -2446,6 +2459,7 @@
<node oor:name="E_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:CenterPara</value>
+ <value xml:lang="es">.uno:SelectAll</value>
</prop>
</node>
<node oor:name="F10_MOD1" oor:op="replace">
@@ -2860,6 +2874,7 @@
<node oor:name="U_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:Underline</value>
+ <value xml:lang="es">.uno:AddDirect</value>
</prop>
</node>
<node oor:name="U_SHIFT_MOD1" oor:op="replace">
@@ -2973,6 +2988,7 @@
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="de">.uno:JustifyPara</value>
<value xml:lang="en-US">.uno:Bold</value>
+ <value xml:lang="es">.uno:SearchDialog</value>
</prop>
</node>
<node oor:name="B_SHIFT_MOD1" oor:op="replace">
@@ -3063,6 +3079,7 @@
<node oor:name="E_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:CenterPara</value>
+ <value xml:lang="es">.uno:SelectAll</value>
</prop>
</node>
<node oor:name="F10_MOD1" oor:op="replace">
@@ -3497,6 +3514,7 @@
<node oor:name="U_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:Underline</value>
+ <value xml:lang="es">.uno:AddDirect</value>
</prop>
</node>
<node oor:name="U_SHIFT_MOD1" oor:op="replace">
@@ -3595,6 +3613,7 @@
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="de">.uno:JustifyPara</value>
<value xml:lang="en-US">.uno:Bold</value>
+ <value xml:lang="es">.uno:SearchDialog</value>
</prop>
</node>
<node oor:name="B_SHIFT_MOD1" oor:op="replace">
@@ -3680,6 +3699,7 @@
<node oor:name="E_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:CenterPara</value>
+ <value xml:lang="es">.uno:SelectAll</value>
</prop>
</node>
<node oor:name="F10_MOD1" oor:op="replace">
@@ -4094,6 +4114,7 @@
<node oor:name="U_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:Underline</value>
+ <value xml:lang="es">.uno:AddDirect</value>
</prop>
</node>
<node oor:name="U_SHIFT_MOD1" oor:op="replace">
@@ -4197,6 +4218,7 @@
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="de">.uno:JustifyPara</value>
<value xml:lang="en-US">.uno:Bold</value>
+ <value xml:lang="es">.uno:SearchDialog</value>
</prop>
</node>
<node oor:name="B_SHIFT_MOD1" oor:op="replace">
@@ -4254,7 +4276,7 @@
<value xml:lang="en-US">.uno:ParaRightToLeft</value>
</prop>
</node>
- <node oor:name="END" oor:op="replace">
+ <node oor:name="END" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:GoToEndOfLine</value>
</prop>
@@ -4282,6 +4304,7 @@
<node oor:name="E_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:CenterPara</value>
+ <value xml:lang="es">.uno:SelectAll</value>
</prop>
</node>
<node oor:name="F10_MOD1" oor:op="replace">
@@ -4696,6 +4719,7 @@
<node oor:name="U_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:Underline</value>
+ <value xml:lang="es">.uno:AddDirect</value>
</prop>
</node>
<node oor:name="U_SHIFT_MOD1" oor:op="replace">
@@ -4804,6 +4828,7 @@
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="de">.uno:JustifyPara</value>
<value xml:lang="en-US">.uno:Bold</value>
+ <value xml:lang="es">.uno:SearchDialog</value>
</prop>
</node>
<node oor:name="B_SHIFT_MOD1" oor:op="replace">
@@ -4889,6 +4914,7 @@
<node oor:name="E_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:CenterPara</value>
+ <value xml:lang="es">.uno:SelectAll</value>
</prop>
</node>
<node oor:name="F10_MOD1" oor:op="replace">
@@ -5303,6 +5329,7 @@
<node oor:name="U_MOD1" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:Underline</value>
+ <value xml:lang="es">.uno:AddDirect</value>
</prop>
</node>
<node oor:name="U_SHIFT_MOD1" oor:op="replace">
@@ -5541,7 +5568,19 @@
<value xml:lang="en-US">.uno:Paste</value>
</prop>
</node>
- <node oor:name="OPEN" oor:op="replace">
+ <node oor:name="K_MOD1" oor:op="replace">
+ <prop oor:name="Command">
+ <value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
+ <value xml:lang="es">.uno:Italic</value>
+ </prop>
+ </node>
+ <node oor:name="N_MOD1" oor:op="replace">
+ <prop oor:name="Command">
+ <value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
+ <value xml:lang="es">.uno:Bold</value>
+ </prop>
+ </node>
+ <node oor:name="OPEN" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:Open</value>
</prop>
@@ -5615,7 +5654,19 @@
<value xml:lang="en-US">.uno:Paste</value>
</prop>
</node>
- <node oor:name="OPEN" oor:op="replace">
+ <node oor:name="K_MOD1" oor:op="replace">
+ <prop oor:name="Command">
+ <value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
+ <value xml:lang="es">.uno:Italic</value>
+ </prop>
+ </node>
+ <node oor:name="N_MOD1" oor:op="replace">
+ <prop oor:name="Command">
+ <value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
+ <value xml:lang="es">.uno:Bold</value>
+ </prop>
+ </node>
+ <node oor:name="OPEN" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:Open</value>
</prop>
@@ -5625,6 +5676,20 @@
<value xml:lang="en-US">.uno:Paste</value>
</prop>
</node>
+ <node oor:name="S_MOD1" oor:op="replace">
+ <prop oor:name="Command">
+ <value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
+ <value xml:lang="es">.uno:Underline</value>
+ </prop>
+ </node>
+ <node oor:name="T_MOD1" oor:op="replace">
+ <prop oor:name="Command">
+ <value xml:lang="x-no-translate" install:module="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
+ <value xml:lang="de" install:module="unxwnt">.uno:SubScript</value>
+ <value xml:lang="es" install:module="unxwnt">.uno:AlignHorizontalCenter</value>
+ <value xml:lang="en-US" install:module="macosx">.uno:DesignerDialog</value>
+ </prop>
+ </node>
<node oor:name="UNDO" oor:op="replace">
<prop oor:name="Command"><value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:Undo</value>
diff --git a/officecfg/util/makefile.mk b/officecfg/util/makefile.mk
index d6c6ddf16f5c..332ac90fe2ea 100644
--- a/officecfg/util/makefile.mk
+++ b/officecfg/util/makefile.mk
@@ -41,9 +41,7 @@ $(MISC)$/$(TARGET)_delzip :
$(BIN)$/registry_{$(alllangiso)}.zip : $(MISC)$/$(TARGET)_delzip
cd $(MISC)$/registry$/res$/$(@:b:s/registry_//) && zip -ru ..$/..$/..$/..$/bin$/registry_$(@:b:s/registry_//).zip org/*
-.IF "$(USE_SHELL)"!="4nt"
$(PERL) -w $(SOLARENV)$/bin$/cleanzip.pl $@
-.ENDIF # "$(USE_SHELL)"!="4nt"
ALLTAR: \
$(MISC)$/$(TARGET)_delzip \
diff --git a/oox/inc/oox/drawingml/shape.hxx b/oox/inc/oox/drawingml/shape.hxx
index 7dad1be76635..94fb6a4f29fc 100644
--- a/oox/inc/oox/drawingml/shape.hxx
+++ b/oox/inc/oox/drawingml/shape.hxx
@@ -125,7 +125,8 @@ public:
void setId( const rtl::OUString& rId ) { msId = rId; }
void setSubType( sal_uInt32 nSubType ) { mnSubType = nSubType; }
sal_Int32 getSubType() const { return mnSubType; }
- void setIndex( sal_uInt32 nIndex ) { mnIndex = nIndex; }
+ void setSubTypeIndex( sal_uInt32 nSubTypeIndex ) { mnSubTypeIndex = nSubTypeIndex; }
+ sal_Int32 getSubTypeIndex() const { return mnSubTypeIndex; }
// setDefaults has to be called if styles are imported (OfficeXML is not storing properties having the default value)
void setDefaults();
@@ -186,11 +187,11 @@ protected:
TextListStylePtr mpMasterTextListStyle;
::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mxShape;
- rtl::OUString msServiceName;
- rtl::OUString msName;
- rtl::OUString msId;
- sal_uInt32 mnSubType; // if this type is not zero, then the shape is a placeholder
- sal_uInt32 mnIndex;
+ rtl::OUString msServiceName;
+ rtl::OUString msName;
+ rtl::OUString msId;
+ sal_uInt32 mnSubType; // if this type is not zero, then the shape is a placeholder
+ sal_uInt32 mnSubTypeIndex;
ShapeStyleRefMap maShapeStyleRefs;
diff --git a/oox/inc/oox/drawingml/textbodyproperties.hxx b/oox/inc/oox/drawingml/textbodyproperties.hxx
index 7b17c561e286..6688eea7746c 100644
--- a/oox/inc/oox/drawingml/textbodyproperties.hxx
+++ b/oox/inc/oox/drawingml/textbodyproperties.hxx
@@ -41,6 +41,10 @@ struct TextBodyProperties
PropertyMap maPropertyMap;
OptValue< sal_Int32 > moRotation;
OptValue< sal_Int32 > moVert;
+
+ explicit TextBodyProperties();
+
+ void pushToPropMap( PropertyMap& rPropMap ) const;
};
// ============================================================================
diff --git a/oox/inc/oox/drawingml/textparagraph.hxx b/oox/inc/oox/drawingml/textparagraph.hxx
index e98232477f3b..d8c97cbfa114 100644
--- a/oox/inc/oox/drawingml/textparagraph.hxx
+++ b/oox/inc/oox/drawingml/textparagraph.hxx
@@ -54,8 +54,8 @@ public:
inline TextParagraphProperties& getProperties() { return maProperties; }
inline const TextParagraphProperties& getProperties() const { return maProperties; }
- inline TextParagraphProperties& getEndProperties() { return maEndProperties; }
- inline const TextParagraphProperties& getEndProperties() const { return maEndProperties; }
+ inline TextCharacterProperties& getEndProperties() { return maEndProperties; }
+ inline const TextCharacterProperties& getEndProperties() const { return maEndProperties; }
//inline void setProperties( TextParagraphPropertiesPtr pProps ) { mpProperties = pProps; }
@@ -69,7 +69,7 @@ public:
private:
TextParagraphProperties maProperties;
- TextParagraphProperties maEndProperties;
+ TextCharacterProperties maEndProperties;
TextRunVector maRuns;
};
diff --git a/oox/inc/oox/xls/stylesbuffer.hxx b/oox/inc/oox/xls/stylesbuffer.hxx
index 8af5127143de..7eb00d4bd57d 100644
--- a/oox/inc/oox/xls/stylesbuffer.hxx
+++ b/oox/inc/oox/xls/stylesbuffer.hxx
@@ -509,8 +509,13 @@ struct ApiBorderData
bool mbDiagUsed; /// True = diagonal line format used.
explicit ApiBorderData();
+
+ /** Returns true, if any of the outer border lines is visible. */
+ bool hasAnyOuterBorder() const;
};
+bool operator==( const ApiBorderData& rLeft, const ApiBorderData& rRight );
+
// ============================================================================
class Border : public WorkbookHelper
@@ -544,6 +549,11 @@ public:
/** Final processing after import of all style settings. */
void finalizeImport();
+ /** Returns the border model structure. */
+ inline const BorderModel& getModel() const { return maModel; }
+ /** Returns the converted API border data struct. */
+ inline const ApiBorderData& getApiData() const { return maApiData; }
+
/** Writes all border attributes to the passed property map. */
void writeToPropertyMap( PropertyMap& rPropMap ) const;
@@ -619,6 +629,8 @@ struct ApiSolidFillData
explicit ApiSolidFillData();
};
+bool operator==( const ApiSolidFillData& rLeft, const ApiSolidFillData& rRight );
+
// ============================================================================
/** Contains cell fill attributes, either a pattern fill or a gradient fill. */
@@ -665,6 +677,13 @@ public:
/** Final processing after import of all style settings. */
void finalizeImport();
+ /** Returns the fill pattern model structure, if extant. */
+ inline const PatternFillModel* getPatternModel() const { return mxPatternModel.get(); }
+ /** Returns the fill gradient model structure, if extant. */
+ inline const GradientFillModel* getGradientModel() const { return mxGradientModel.get(); }
+ /** Returns the converted API fill data struct. */
+ inline const ApiSolidFillData& getApiData() const { return maApiData; }
+
/** Writes all fill attributes to the passed property map. */
void writeToPropertyMap( PropertyMap& rPropMap ) const;
@@ -734,6 +753,9 @@ public:
/** Final processing after import of all style settings. */
void finalizeImport();
+ /** Returns true, if the XF is a cell XF, and false, if it is a style XF. */
+ inline bool isCellXf() const { return maModel.mbCellXf; }
+
/** Returns the referred font object. */
FontRef getFont() const;
/** Returns the alignment data of this style. */
@@ -751,13 +773,13 @@ public:
private:
/** Sets 'attribute used' flags from the passed BIFF bit field. */
void setBiffUsedFlags( sal_uInt8 nUsedFlags );
- /** Updates own used flags from the passed cell style XF. */
- void updateUsedFlags( const Xf& rStyleXf );
private:
XfModel maModel; /// Cell XF or style XF model data.
Alignment maAlignment; /// Cell alignment data.
Protection maProtection; /// Cell protection data.
+ ::com::sun::star::table::CellVertJustify
+ meRotationRef; /// Rotation reference dependent on border.
};
typedef ::boost::shared_ptr< Xf > XfRef;
@@ -964,6 +986,8 @@ public:
sal_Int32 getPaletteColor( sal_Int32 nIndex ) const;
/** Returns the specified font object. */
FontRef getFont( sal_Int32 nFontId ) const;
+ /** Returns the specified border object. */
+ BorderRef getBorder( sal_Int32 nBorderId ) const;
/** Returns the specified cell format object. */
XfRef getCellXf( sal_Int32 nXfId ) const;
/** Returns the specified style format object. */
@@ -978,6 +1002,11 @@ public:
/** Returns the model of the default application font (used in the "Normal" cell style). */
const FontModel& getDefaultFontModel() const;
+ /** Returns true, if the specified borders are equal. */
+ bool equalBorders( sal_Int32 nBorderId1, sal_Int32 nBorderId2 ) const;
+ /** Returns true, if the specified fills are equal. */
+ bool equalFills( sal_Int32 nFillId1, sal_Int32 nFillId2 ) const;
+
/** Returns the default style sheet for unused cells. */
::rtl::OUString getDefaultStyleName() const;
/** Creates the style sheet described by the style XF with the passed identifier. */
diff --git a/oox/source/core/filterbase.cxx b/oox/source/core/filterbase.cxx
index 07c31736e9e7..07c31736e9e7 100644..100755
--- a/oox/source/core/filterbase.cxx
+++ b/oox/source/core/filterbase.cxx
diff --git a/oox/source/core/xmlfilterbase.cxx b/oox/source/core/xmlfilterbase.cxx
index ded047f2436b..87faadd7a9ce 100644
--- a/oox/source/core/xmlfilterbase.cxx
+++ b/oox/source/core/xmlfilterbase.cxx
@@ -85,13 +85,25 @@ namespace core {
// ============================================================================
+namespace {
+
+bool lclHasSuffix( const OUString& rFragmentPath, const OUString& rSuffix )
+{
+ sal_Int32 nSuffixPos = rFragmentPath.getLength() - rSuffix.getLength();
+ return (nSuffixPos >= 0) && rFragmentPath.match( rSuffix, nSuffixPos );
+}
+
+} // namespace
+
+// ============================================================================
+
struct XmlFilterBaseImpl
{
typedef RefMap< OUString, Relations > RelationsMap;
+ Reference< XFastParser > mxFastParser;
OUString maBinSuffix;
- Reference< XFastTokenHandler >
- mxTokenHandler;
+ OUString maVmlSuffix;
RelationsMap maRelationsMap;
TextFieldStack maTextFieldStack;
explicit XmlFilterBaseImpl();
@@ -101,7 +113,7 @@ struct XmlFilterBaseImpl
XmlFilterBaseImpl::XmlFilterBaseImpl() :
maBinSuffix( CREATE_OUSTRING( ".bin" ) ),
- mxTokenHandler( new FastTokenHandler )
+ maVmlSuffix( CREATE_OUSTRING( ".vml" ) )
{
}
@@ -113,6 +125,38 @@ XmlFilterBase::XmlFilterBase( const Reference< XMultiServiceFactory >& rxGlobalF
mnRelId( 1 ),
mnMaxDocId( 0 )
{
+ try
+ {
+ // create the fast parser
+ mxImpl->mxFastParser.set( rxGlobalFactory->createInstance( CREATE_OUSTRING( "com.sun.star.xml.sax.FastParser" ) ), UNO_QUERY_THROW );
+ mxImpl->mxFastParser->setTokenHandler( new FastTokenHandler );
+
+ // register XML namespaces
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://www.w3.org/XML/1998/namespace" ), NMSP_XML );
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/package/2006/relationships" ), NMSP_PACKAGE_RELATIONSHIPS );
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/officeDocument/2006/relationships" ), NMSP_RELATIONSHIPS );
+
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/main" ), NMSP_DRAWINGML );
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/diagram" ), NMSP_DIAGRAM );
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/chart" ), NMSP_CHART );
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/chartDrawing" ), NMSP_CDR );
+
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:vml" ), NMSP_VML );
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:office:office" ), NMSP_OFFICE );
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:office:word" ), NMSP_VML_DOC );
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:office:excel" ), NMSP_VML_XLS );
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:office:powerpoint" ), NMSP_VML_PPT );
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.microsoft.com/office/2006/activeX" ), NMSP_AX );
+
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/spreadsheetml/2006/main"), NMSP_XLS );
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing" ), NMSP_XDR );
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.microsoft.com/office/excel/2006/main" ), NMSP_XM );
+
+ mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/presentationml/2006/main"), NMSP_PPT );
+ }
+ catch( Exception& )
+ {
+ }
}
XmlFilterBase::~XmlFilterBase()
@@ -140,8 +184,7 @@ bool XmlFilterBase::importFragment( const ::rtl::Reference< FragmentHandler >& r
return false;
// try to import binary streams (fragment extension must be '.bin')
- sal_Int32 nBinSuffixPos = aFragmentPath.getLength() - mxImpl->maBinSuffix.getLength();
- if( (nBinSuffixPos >= 0) && aFragmentPath.match( mxImpl->maBinSuffix, nBinSuffixPos ) )
+ if( lclHasSuffix( aFragmentPath, mxImpl->maBinSuffix ) )
{
try
{
@@ -170,41 +213,16 @@ bool XmlFilterBase::importFragment( const ::rtl::Reference< FragmentHandler >& r
if( !xDocHandler.is() )
return false;
+ // check that the fast parser exists
+ if( !mxImpl->mxFastParser.is() )
+ return false;
+
// try to import XML stream
try
{
// try to open the fragment stream (this may fail - do not assert)
Reference< XInputStream > xInStrm( rxHandler->openFragmentStream(), UNO_SET_THROW );
- // create the fast parser
- Reference< XFastParser > xParser( getGlobalFactory()->createInstance(
- CREATE_OUSTRING( "com.sun.star.xml.sax.FastParser" ) ), UNO_QUERY_THROW );
- xParser->setFastDocumentHandler( xDocHandler );
- xParser->setTokenHandler( mxImpl->mxTokenHandler );
-
- // register XML namespaces
- xParser->registerNamespace( CREATE_OUSTRING( "http://www.w3.org/XML/1998/namespace" ), NMSP_XML );
- xParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/package/2006/relationships" ), NMSP_PACKAGE_RELATIONSHIPS );
- xParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/officeDocument/2006/relationships" ), NMSP_RELATIONSHIPS );
-
- xParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/main" ), NMSP_DRAWINGML );
- xParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/diagram" ), NMSP_DIAGRAM );
- xParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/chart" ), NMSP_CHART );
- xParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/chartDrawing" ), NMSP_CDR );
-
- xParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:vml" ), NMSP_VML );
- xParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:office:office" ), NMSP_OFFICE );
- xParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:office:word" ), NMSP_VML_DOC );
- xParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:office:excel" ), NMSP_VML_XLS );
- xParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:office:powerpoint" ), NMSP_VML_PPT );
- xParser->registerNamespace( CREATE_OUSTRING( "http://schemas.microsoft.com/office/2006/activeX" ), NMSP_AX );
-
- xParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/spreadsheetml/2006/main"), NMSP_XLS );
- xParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing" ), NMSP_XDR );
- xParser->registerNamespace( CREATE_OUSTRING( "http://schemas.microsoft.com/office/excel/2006/main" ), NMSP_XM );
-
- xParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/presentationml/2006/main"), NMSP_PPT );
-
// create the input source and parse the stream
InputSource aSource;
aSource.aInputStream = xInStrm;
@@ -212,7 +230,8 @@ bool XmlFilterBase::importFragment( const ::rtl::Reference< FragmentHandler >& r
// own try/catch block for showing parser failure assertion with fragment path
try
{
- xParser->parseStream( aSource );
+ mxImpl->mxFastParser->setFastDocumentHandler( xDocHandler );
+ mxImpl->mxFastParser->parseStream( aSource );
return true;
}
catch( Exception& )
diff --git a/oox/source/drawingml/makefile.mk b/oox/source/drawingml/makefile.mk
index 443c30bb16a9..e2d4ea6b8f3d 100644
--- a/oox/source/drawingml/makefile.mk
+++ b/oox/source/drawingml/makefile.mk
@@ -66,6 +66,7 @@ SLOFILES = \
$(SLO)$/spdefcontext.obj\
$(SLO)$/textbody.obj\
$(SLO)$/textbodycontext.obj\
+ $(SLO)$/textbodyproperties.obj\
$(SLO)$/textbodypropertiescontext.obj\
$(SLO)$/textcharacterproperties.obj\
$(SLO)$/textcharacterpropertiescontext.obj\
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index cab64f11c166..dea4a6a51206 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -47,6 +47,7 @@
#include <basegfx/point/b2dpoint.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
+#include <com/sun/star/document/XActionLockable.hpp>
using rtl::OUString;
using namespace ::oox::core;
@@ -89,7 +90,7 @@ Shape::Shape( const sal_Char* pServiceName )
, mpCustomShapePropertiesPtr( new CustomShapeProperties )
, mpMasterTextListStyle( new TextListStyle )
, mnSubType( 0 )
-, mnIndex( 0 )
+, mnSubTypeIndex( -1 )
, mnRotation( 0 )
, mbFlipH( false )
, mbFlipV( false )
@@ -365,6 +366,10 @@ Reference< XShape > Shape::createAndInsert(
}
rxShapes->add( mxShape );
+ Reference< document::XActionLockable > xLockable( mxShape, UNO_QUERY );
+ if( xLockable.is() )
+ xLockable->addActionLock();
+
// sj: removing default text of placeholder objects such as SlideNumberShape or HeaderShape
if ( bClearText )
{
@@ -409,13 +414,23 @@ Reference< XShape > Shape::createAndInsert(
aFillProperties.assignUsed( getFillProperties() );
PropertyMap aShapeProperties;
+ PropertyMap::const_iterator aShapePropIter;
+
aShapeProperties.insert( getShapeProperties().begin(), getShapeProperties().end() );
if( mxCreateCallback.get() )
- aShapeProperties.insert( mxCreateCallback->getShapeProperties().begin(), mxCreateCallback->getShapeProperties().end() );
+ {
+ for ( aShapePropIter = mxCreateCallback->getShapeProperties().begin();
+ aShapePropIter != mxCreateCallback->getShapeProperties().end(); aShapePropIter++ )
+ aShapeProperties[ (*aShapePropIter).first ] = (*aShapePropIter).second;
+ }
// add properties from textbody to shape properties
if( mpTextBody.get() )
- aShapeProperties.insert( mpTextBody->getTextProperties().maPropertyMap.begin(), mpTextBody->getTextProperties().maPropertyMap.end() );
+ {
+ for ( aShapePropIter = mpTextBody->getTextProperties().maPropertyMap.begin();
+ aShapePropIter != mpTextBody->getTextProperties().maPropertyMap.end(); aShapePropIter++ )
+ aShapeProperties[ (*aShapePropIter).first ] = (*aShapePropIter).second;
+ }
// applying properties
PropertySet aPropSet( xSet );
@@ -461,6 +476,8 @@ Reference< XShape > Shape::createAndInsert(
getTextBody()->insertAt( rFilterBase, xText, xAt, aCharStyleProperties, mpMasterTextListStyle );
}
}
+ if( xLockable.is() )
+ xLockable->removeActionLock();
}
// use a callback for further processing on the XShape (e.g. charts)
diff --git a/oox/source/drawingml/shapecontext.cxx b/oox/source/drawingml/shapecontext.cxx
index 4ee664b1c66c..a5a1f16f5935 100644
--- a/oox/source/drawingml/shapecontext.cxx
+++ b/oox/source/drawingml/shapecontext.cxx
@@ -90,7 +90,7 @@ Reference< XFastContextHandler > ShapeContext::createFastChildContext( sal_Int32
break;
case XML_ph:
mpShapePtr->setSubType( xAttribs->getOptionalValueToken( XML_type, XML_obj ) );
- mpShapePtr->setIndex( xAttribs->getOptionalValue( XML_idx ).toInt32() );
+ mpShapePtr->setSubTypeIndex( xAttribs->getOptionalValue( XML_idx ).toInt32() );
break;
// nvSpPr CT_ShapeNonVisual end
diff --git a/oox/source/drawingml/shapegroupcontext.cxx b/oox/source/drawingml/shapegroupcontext.cxx
index 1b90be3952ab..56ce53767641 100644
--- a/oox/source/drawingml/shapegroupcontext.cxx
+++ b/oox/source/drawingml/shapegroupcontext.cxx
@@ -75,7 +75,7 @@ Reference< XFastContextHandler > ShapeGroupContext::createFastChildContext( sal_
break;
case XML_ph:
mpGroupShapePtr->setSubType( xAttribs->getOptionalValueToken( XML_type, FastToken::DONTKNOW ) );
- mpGroupShapePtr->setIndex( xAttribs->getOptionalValue( XML_idx ).toInt32() );
+ mpGroupShapePtr->setSubTypeIndex( xAttribs->getOptionalValue( XML_idx ).toInt32() );
break;
// nvSpPr CT_ShapeNonVisual end
diff --git a/oox/source/drawingml/textbodycontext.cxx b/oox/source/drawingml/textbodycontext.cxx
index 9a197ee691bf..8de730849b24 100644
--- a/oox/source/drawingml/textbodycontext.cxx
+++ b/oox/source/drawingml/textbodycontext.cxx
@@ -109,7 +109,7 @@ Reference< XFastContextHandler > TextParagraphContext::createFastChildContext( s
xRet.set( new TextParagraphPropertiesContext( *this, xAttribs, mrParagraph.getProperties() ) );
break;
case NMSP_DRAWINGML|XML_endParaRPr:
- xRet.set( new TextParagraphPropertiesContext( *this, xAttribs, mrParagraph.getEndProperties() ) );
+ xRet.set( new TextCharacterPropertiesContext( *this, xAttribs, mrParagraph.getEndProperties() ) );
break;
}
diff --git a/testshl2/workben/test_printf.cxx b/oox/source/drawingml/textbodyproperties.cxx
index a6fd7d86f618..afd4766b0106 100644
--- a/testshl2/workben/test_printf.cxx
+++ b/oox/source/drawingml/textbodyproperties.cxx
@@ -2,10 +2,13 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2000, 2010 Oracle and/or its affiliates.
+ * Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
+ * $RCSfile: textbodyproperties.cxx,v $
+ * $Revision: 1.1 $
+ *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -25,36 +28,31 @@
*
************************************************************************/
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_testshl2.hxx"
+#include "oox/drawingml/textbodyproperties.hxx"
+#include <com/sun/star/text/WritingMode.hpp>
+#include "properties.hxx"
+#include "tokens.hxx"
+
+namespace oox {
+namespace drawingml {
-#include <string>
-#include <stdarg.h>
-#include <stdio.h>
+// ============================================================================
-void t_print(const char* _pFormatStr, va_list &args)
+TextBodyProperties::TextBodyProperties()
{
- vprintf(_pFormatStr, args);
}
-void t_print(const char* _pFormatStr, ...)
+void TextBodyProperties::pushToPropMap( PropertyMap& rPropMap ) const
{
- va_list args;
- va_start( args, _pFormatStr );
- t_print(_pFormatStr, args);
- va_end( args );
+ rPropMap.insert( maPropertyMap.begin(), maPropertyMap.end() );
+
+ // #160799# fake different vertical text modes by top-bottom writing mode
+ if( moVert.get( XML_horz ) != XML_horz )
+ rPropMap[ PROP_TextWritingMode ] <<= ::com::sun::star::text::WritingMode_TB_RL;
}
+// ============================================================================
+
+} // namespace drawingml
+} // namespace oox
-// ----------------------------------- Main -----------------------------------
-#if (defined UNX) || (defined OS2)
-int main( int /* argc */ , char* /* argv */ [] )
-#else
- int _cdecl main( int /* argc */ , char* /* argv */ [] )
-#endif
-{
- std::string sStr("TestString.");
- printf("Test %s\n", sStr.c_str() );
- t_print("Test %s\n", sStr.c_str() );
- return 0;
-}
diff --git a/oox/source/drawingml/textbodypropertiescontext.cxx b/oox/source/drawingml/textbodypropertiescontext.cxx
index 291af2687149..ec605a3adadd 100644
--- a/oox/source/drawingml/textbodypropertiescontext.cxx
+++ b/oox/source/drawingml/textbodypropertiescontext.cxx
@@ -28,6 +28,8 @@
#include "oox/drawingml/textbodypropertiescontext.hxx"
#include <com/sun/star/text/ControlCharacter.hpp>
+#include <com/sun/star/drawing/TextVerticalAdjust.hpp>
+#include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
#include "oox/drawingml/textbodyproperties.hxx"
#include "oox/drawingml/drawingmltypes.hxx"
#include "oox/helper/attributelist.hxx"
@@ -38,6 +40,7 @@
using ::rtl::OUString;
using namespace ::oox::core;
+using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::text;
using namespace ::com::sun::star::xml::sax;
@@ -56,7 +59,7 @@ TextBodyPropertiesContext::TextBodyPropertiesContext( ContextHandler& rParent,
// ST_TextWrappingType
sal_Int32 nWrappingType = aAttribs.getToken( XML_wrap, XML_square );
- mrTextBodyProp.maPropertyMap[ PROP_TextWordWrap ] <<= (nWrappingType == XML_square);
+ mrTextBodyProp.maPropertyMap[ PROP_TextWordWrap ] <<= static_cast< sal_Bool >( nWrappingType == XML_square );
// ST_Coordinate
OUString sValue;
@@ -78,7 +81,17 @@ TextBodyPropertiesContext::TextBodyPropertiesContext( ContextHandler& rParent,
// ST_TextAnchoringType
-// sal_Int32 nAnchoringType = xAttributes->getOptionalValueToken( XML_anchor, XML_t );
+ drawing::TextVerticalAdjust eVA( drawing::TextVerticalAdjust_TOP );
+ switch( xAttributes->getOptionalValueToken( XML_anchor, XML_t ) )
+ {
+ case XML_b : eVA = drawing::TextVerticalAdjust_BOTTOM; break;
+ case XML_dist :
+ case XML_just :
+ case XML_ctr : eVA = drawing::TextVerticalAdjust_CENTER; break;
+ default:
+ case XML_t : eVA = drawing::TextVerticalAdjust_TOP; break;
+ }
+ mrTextBodyProp.maPropertyMap[ PROP_TextVerticalAdjust ] <<= eVA;
// bool bAnchorCenter = aAttribs.getBool( XML_anchorCtr, false );
diff --git a/oox/source/drawingml/textcharacterpropertiescontext.cxx b/oox/source/drawingml/textcharacterpropertiescontext.cxx
index 6797b8336c02..cfba04a7b44b 100644
--- a/oox/source/drawingml/textcharacterpropertiescontext.cxx
+++ b/oox/source/drawingml/textcharacterpropertiescontext.cxx
@@ -56,13 +56,20 @@ TextCharacterPropertiesContext::TextCharacterPropertiesContext(
, mrTextCharacterProperties( rTextCharacterProperties )
{
AttributeList aAttribs( rXAttributes );
- mrTextCharacterProperties.moLang = aAttribs.getString( XML_lang );
- mrTextCharacterProperties.moHeight = aAttribs.getInteger( XML_sz );
- mrTextCharacterProperties.moUnderline = aAttribs.getToken( XML_u );
- mrTextCharacterProperties.moStrikeout = aAttribs.getToken( XML_strike );
-// mrTextCharacterProperties.moCaseMap = aAttribs.getToken( XML_cap );
- mrTextCharacterProperties.moBold = aAttribs.getBool( XML_b );
- mrTextCharacterProperties.moItalic = aAttribs.getBool( XML_i );
+ if ( aAttribs.hasAttribute( XML_lang ) )
+ mrTextCharacterProperties.moLang = aAttribs.getString( XML_lang );
+ if ( aAttribs.hasAttribute( XML_sz ) )
+ mrTextCharacterProperties.moHeight = aAttribs.getInteger( XML_sz );
+ if ( aAttribs.hasAttribute( XML_u ) )
+ mrTextCharacterProperties.moUnderline = aAttribs.getToken( XML_u );
+ if ( aAttribs.hasAttribute( XML_strike ) )
+ mrTextCharacterProperties.moStrikeout = aAttribs.getToken( XML_strike );
+
+// mrTextCharacterProperties.moCaseMap = aAttribs.getToken( XML_cap );
+ if ( aAttribs.hasAttribute( XML_b ) )
+ mrTextCharacterProperties.moBold = aAttribs.getBool( XML_b );
+ if ( aAttribs.hasAttribute( XML_i ) )
+ mrTextCharacterProperties.moItalic = aAttribs.getBool( XML_i );
// TODO
/* todo: we need to be able to iterate over the XFastAttributes
diff --git a/oox/source/drawingml/textparagraph.cxx b/oox/source/drawingml/textparagraph.cxx
index 1ff78541243e..a4bef1a5013c 100644
--- a/oox/source/drawingml/textparagraph.cxx
+++ b/oox/source/drawingml/textparagraph.cxx
@@ -29,6 +29,7 @@
#include "oox/drawingml/drawingmltypes.hxx"
#include <rtl/ustring.hxx>
+#include "oox/helper/propertyset.hxx"
#include <com/sun/star/text/XText.hpp>
#include <com/sun/star/text/XTextCursor.hpp>
#include <com/sun/star/text/ControlCharacter.hpp>
@@ -78,11 +79,21 @@ void TextParagraph::insertAt(
xText->insertControlCharacter( xStart, ControlCharacter::APPEND_PARAGRAPH, sal_False );
xAt->gotoEnd( sal_True );
}
+ if ( maRuns.begin() == maRuns.end() )
+ {
+ PropertySet aPropSet( xStart );
- for( TextRunVector::const_iterator aIt = maRuns.begin(), aEnd = maRuns.end(); aIt != aEnd; ++aIt )
+ TextCharacterProperties aTextCharacterProps( aTextCharacterStyle );
+ aTextCharacterProps.assignUsed( maEndProperties );
+ aTextCharacterProps.pushToPropSet( aPropSet, rFilterBase );
+ }
+ else
{
- (*aIt)->insertAt( rFilterBase, xText, xAt, aTextCharacterStyle );
- nParagraphSize += (*aIt)->getText().getLength();
+ for( TextRunVector::const_iterator aIt = maRuns.begin(), aEnd = maRuns.end(); aIt != aEnd; ++aIt )
+ {
+ (*aIt)->insertAt( rFilterBase, xText, xAt, aTextCharacterStyle );
+ nParagraphSize += (*aIt)->getText().getLength();
+ }
}
xAt->gotoEnd( sal_True );
@@ -94,7 +105,6 @@ void TextParagraph::insertAt(
pTextParagraphStyle->pushToPropSet( rFilterBase, xProps, aioBulletList, NULL, sal_False, fCharacterSize );
fCharacterSize = pTextParagraphStyle->getCharHeightPoints( 18 );
}
-
maProperties.pushToPropSet( rFilterBase, xProps, aioBulletList, &pTextParagraphStyle->getBulletList(), sal_True, fCharacterSize );
// empty paragraphs do not have bullets in ppt
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index a49d41ef4759..5aeb56883d2d 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -1339,15 +1339,10 @@ void DrawingML::WriteConnectorConnections( EscherConnectorListEntry& rConnectorE
// from sw/source/filter/ww8/wrtw8num.cxx for default bullets to export to MS intact
static void lcl_SubstituteBullet(String& rNumStr, rtl_TextEncoding& rChrSet, String& rFontName)
{
- StarSymbolToMSMultiFont *pConvert = 0;
- FontFamily eFamily = FAMILY_DECORATIVE;
-
- if (!pConvert)
- {
- pConvert = CreateStarSymbolToMSMultiFont();
- }
sal_Unicode cChar = rNumStr.GetChar(0);
+ StarSymbolToMSMultiFont *pConvert = CreateStarSymbolToMSMultiFont();
String sFont = pConvert->ConvertChar(cChar);
+ delete pConvert;
if (sFont.Len())
{
rNumStr = static_cast< sal_Unicode >(cChar | 0xF000);
@@ -1363,7 +1358,6 @@ static void lcl_SubstituteBullet(String& rNumStr, rtl_TextEncoding& rChrSet, Str
let words own font substitution kick in
*/
rChrSet = RTL_TEXTENCODING_UNICODE;
- eFamily = FAMILY_SWISS;
rFontName = ::GetFontToken(rFontName, 0);
}
else
@@ -1376,7 +1370,6 @@ static void lcl_SubstituteBullet(String& rNumStr, rtl_TextEncoding& rChrSet, Str
rFontName.AssignAscii(RTL_CONSTASCII_STRINGPARAM("Wingdings"));
rNumStr = static_cast< sal_Unicode >(0x6C);
}
- delete pConvert;
}
sal_Unicode DrawingML::SubstituteBullet( sal_Unicode cBulletId, ::com::sun::star::awt::FontDescriptor& rFontDesc )
diff --git a/oox/source/ole/axcontrol.cxx b/oox/source/ole/axcontrol.cxx
index 9f99bf625333..96baaab4bb36 100644
--- a/oox/source/ole/axcontrol.cxx
+++ b/oox/source/ole/axcontrol.cxx
@@ -208,6 +208,16 @@ enum ApiTransparencyMode
// ----------------------------------------------------------------------------
+/** Specifies how a form control supports the DefaultState property. */
+enum ApiDefaultStateMode
+{
+ API_DEFAULTSTATE_BOOLEAN, /// Control does not support tri-state, state is given as boolean.
+ API_DEFAULTSTATE_SHORT, /// Control does not support tri-state, state is given as short.
+ API_DEFAULTSTATE_TRISTATE /// Control supports tri-state, state is given as short.
+};
+
+// ----------------------------------------------------------------------------
+
/** Converts the AX background formatting to UNO properties. */
void lclConvertBackground( AxControlHelper& rHelper, PropertyMap& rPropMap, sal_uInt32 nBackColor, sal_uInt32 nFlags, ApiTransparencyMode eTranspMode )
{
@@ -318,8 +328,11 @@ void lclConvertPicture( AxControlHelper& rHelper, PropertyMap& rPropMap, const S
// ----------------------------------------------------------------------------
/** Converts the AX value for checked/unchecked/dontknow to UNO properties. */
-void lclConvertState( AxControlHelper& /*rHelper*/, PropertyMap& rPropMap, const OUString& rValue, sal_Int32 nMultiSelect, bool bSupportsTriState )
+void lclConvertState( AxControlHelper& /*rHelper*/, PropertyMap& rPropMap, const OUString& rValue, sal_Int32 nMultiSelect, ApiDefaultStateMode eDefStateMode )
{
+ bool bBooleanState = eDefStateMode == API_DEFAULTSTATE_BOOLEAN;
+ bool bSupportsTriState = eDefStateMode == API_DEFAULTSTATE_TRISTATE;
+
// state
sal_Int16 nState = bSupportsTriState ? API_STATE_DONTKNOW : API_STATE_UNCHECKED;
if( rValue.getLength() == 1 ) switch( rValue[ 0 ] )
@@ -328,7 +341,10 @@ void lclConvertState( AxControlHelper& /*rHelper*/, PropertyMap& rPropMap, const
case '1': nState = API_STATE_CHECKED; break;
// any other string (also empty) means 'dontknow'
}
- rPropMap.setProperty( PROP_DefaultState, nState );
+ if( bBooleanState )
+ rPropMap.setProperty( PROP_DefaultState, nState != API_STATE_UNCHECKED );
+ else
+ rPropMap.setProperty( PROP_DefaultState, nState );
// tristate
if( bSupportsTriState )
@@ -808,6 +824,7 @@ void AxToggleButtonModel::convertProperties( AxControlHelper& rHelper, PropertyM
rPropMap.setProperty( PROP_Toggle, true );
lclConvertBackground( rHelper, rPropMap, mnBackColor, mnFlags, API_TRANSPARENCY_NOTSUPPORTED );
lclConvertPicture( rHelper, rPropMap, maPictureData, mnPicturePos );
+ lclConvertState( rHelper, rPropMap, maValue, mnMultiSelect, API_DEFAULTSTATE_BOOLEAN );
AxMorphDataModel::convertProperties( rHelper, rPropMap );
}
@@ -831,7 +848,7 @@ void AxCheckBoxModel::convertProperties( AxControlHelper& rHelper, PropertyMap&
lclConvertBackground( rHelper, rPropMap, mnBackColor, mnFlags, API_TRANSPARENCY_VOID );
lclConvertVisualEffect( rHelper, rPropMap, mnSpecialEffect );
lclConvertPicture( rHelper, rPropMap, maPictureData, mnPicturePos );
- lclConvertState( rHelper, rPropMap, maValue, mnMultiSelect, true );
+ lclConvertState( rHelper, rPropMap, maValue, mnMultiSelect, API_DEFAULTSTATE_TRISTATE );
AxMorphDataModel::convertProperties( rHelper, rPropMap );
}
@@ -855,7 +872,7 @@ void AxOptionButtonModel::convertProperties( AxControlHelper& rHelper, PropertyM
lclConvertBackground( rHelper, rPropMap, mnBackColor, mnFlags, API_TRANSPARENCY_VOID );
lclConvertVisualEffect( rHelper, rPropMap, mnSpecialEffect );
lclConvertPicture( rHelper, rPropMap, maPictureData, mnPicturePos );
- lclConvertState( rHelper, rPropMap, maValue, mnMultiSelect, false );
+ lclConvertState( rHelper, rPropMap, maValue, mnMultiSelect, API_DEFAULTSTATE_SHORT );
AxMorphDataModel::convertProperties( rHelper, rPropMap );
}
diff --git a/oox/source/ppt/pptshape.cxx b/oox/source/ppt/pptshape.cxx
index 016857161696..7b8c1ca95d35 100644
--- a/oox/source/ppt/pptshape.cxx
+++ b/oox/source/ppt/pptshape.cxx
@@ -93,6 +93,12 @@ void PPTShape::addShape(
aMasterTextListStyle = rSlidePersist.getMasterPersist().get() ? rSlidePersist.getMasterPersist()->getTitleTextStyle() : rSlidePersist.getTitleTextStyle();
}
break;
+ case XML_subTitle :
+ {
+ if ( ( meShapeLocation == Master ) || ( meShapeLocation == Layout ) )
+ sServiceName = rtl::OUString();
+ }
+ break;
case XML_obj :
{
const rtl::OUString sOutlinerShapeService( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.presentation.OutlinerShape" ) );
@@ -155,37 +161,42 @@ void PPTShape::addShape(
break;
}
}
- if ( !aMasterTextListStyle.get() )
- aMasterTextListStyle = rSlidePersist.getMasterPersist().get() ? rSlidePersist.getMasterPersist()->getOtherTextStyle() : rSlidePersist.getOtherTextStyle();
- setMasterTextListStyle( aMasterTextListStyle );
- Reference< XShape > xShape( createAndInsert( rFilterBase, sServiceName, pTheme, rxShapes, pShapeRect, bClearText ) );
- if ( !rSlidePersist.isMasterPage() && rSlidePersist.getPage().is() && ( (sal_Int32)mnSubType == XML_title ) )
+ if ( sServiceName.getLength() )
{
- try
- {
- rtl::OUString aTitleText;
- Reference< XTextRange > xText( xShape, UNO_QUERY_THROW );
- aTitleText = xText->getString();
- if ( aTitleText.getLength() && ( aTitleText.getLength() < 64 ) ) // just a magic value, but we don't want to set slide names which are too long
+ if ( !aMasterTextListStyle.get() )
+ aMasterTextListStyle = rSlidePersist.getMasterPersist().get() ? rSlidePersist.getMasterPersist()->getOtherTextStyle() : rSlidePersist.getOtherTextStyle();
+ setMasterTextListStyle( aMasterTextListStyle );
+
+ Reference< XShape > xShape( createAndInsert( rFilterBase, sServiceName, pTheme, rxShapes, pShapeRect, bClearText ) );
+ if ( !rSlidePersist.isMasterPage() && rSlidePersist.getPage().is() && ( (sal_Int32)mnSubType == XML_title ) )
+ {
+ try
+ {
+ rtl::OUString aTitleText;
+ Reference< XTextRange > xText( xShape, UNO_QUERY_THROW );
+ aTitleText = xText->getString();
+ if ( aTitleText.getLength() && ( aTitleText.getLength() < 64 ) ) // just a magic value, but we don't want to set slide names which are too long
+ {
+ Reference< container::XNamed > xName( rSlidePersist.getPage(), UNO_QUERY_THROW );
+ xName->setName( aTitleText );
+ }
+ }
+ catch( uno::Exception& )
{
- Reference< container::XNamed > xName( rSlidePersist.getPage(), UNO_QUERY_THROW );
- xName->setName( aTitleText );
+
}
}
- catch( uno::Exception& )
+ if( pShapeMap && msId.getLength() )
{
+ (*pShapeMap)[ msId ] = shared_from_this();
}
- }
- if( pShapeMap && msId.getLength() )
- {
- (*pShapeMap)[ msId ] = shared_from_this();
- }
- // if this is a group shape, we have to add also each child shape
- Reference< XShapes > xShapes( xShape, UNO_QUERY );
- if ( xShapes.is() )
- addChildren( rFilterBase, *this, pTheme, xShapes, pShapeRect ? *pShapeRect : awt::Rectangle( maPosition.X, maPosition.Y, maSize.Width, maSize.Height ), pShapeMap );
+ // if this is a group shape, we have to add also each child shape
+ Reference< XShapes > xShapes( xShape, UNO_QUERY );
+ if ( xShapes.is() )
+ addChildren( rFilterBase, *this, pTheme, xShapes, pShapeRect ? *pShapeRect : awt::Rectangle( maPosition.X, maPosition.Y, maSize.Width, maSize.Height ), pShapeMap );
+ }
}
}
catch( const Exception& )
diff --git a/oox/source/ppt/pptshapecontext.cxx b/oox/source/ppt/pptshapecontext.cxx
index 472f5292770e..8379a6e95735 100644
--- a/oox/source/ppt/pptshapecontext.cxx
+++ b/oox/source/ppt/pptshapecontext.cxx
@@ -63,7 +63,7 @@ PPTShapeContext::PPTShapeContext( ContextHandler& rParent, const SlidePersistPtr
{
}
-oox::drawingml::ShapePtr findPlaceholder( const sal_Int32 nMasterPlaceholder, std::vector< oox::drawingml::ShapePtr >& rShapes )
+oox::drawingml::ShapePtr findPlaceholder( const sal_Int32 nMasterPlaceholder, sal_Int32 nSubTypeIndex, std::vector< oox::drawingml::ShapePtr >& rShapes )
{
oox::drawingml::ShapePtr aShapePtr;
std::vector< oox::drawingml::ShapePtr >::reverse_iterator aRevIter( rShapes.rbegin() );
@@ -71,11 +71,14 @@ oox::drawingml::ShapePtr findPlaceholder( const sal_Int32 nMasterPlaceholder, st
{
if ( (*aRevIter)->getSubType() == nMasterPlaceholder )
{
- aShapePtr = *aRevIter;
- break;
+ if ( ( nSubTypeIndex == -1 ) || ( nSubTypeIndex == (*aRevIter)->getSubTypeIndex() ) )
+ {
+ aShapePtr = *aRevIter;
+ break;
+ }
}
std::vector< oox::drawingml::ShapePtr >& rChildren = (*aRevIter)->getChildren();
- aShapePtr = findPlaceholder( nMasterPlaceholder, rChildren );
+ aShapePtr = findPlaceholder( nMasterPlaceholder, nSubTypeIndex, rChildren );
if ( aShapePtr.get() )
break;
aRevIter++;
@@ -84,10 +87,11 @@ oox::drawingml::ShapePtr findPlaceholder( const sal_Int32 nMasterPlaceholder, st
}
// if nFirstPlaceholder can't be found, it will be searched for nSecondPlaceholder
-oox::drawingml::ShapePtr findPlaceholder( sal_Int32 nFirstPlaceholder, sal_Int32 nSecondPlaceholder, std::vector< oox::drawingml::ShapePtr >& rShapes )
+oox::drawingml::ShapePtr findPlaceholder( sal_Int32 nFirstPlaceholder, sal_Int32 nSecondPlaceholder,
+ sal_Int32 nSubTypeIndex, std::vector< oox::drawingml::ShapePtr >& rShapes )
{
- oox::drawingml::ShapePtr pPlaceholder = findPlaceholder( nFirstPlaceholder, rShapes );
- return !nSecondPlaceholder || pPlaceholder.get() ? pPlaceholder : findPlaceholder( nSecondPlaceholder, rShapes );
+ oox::drawingml::ShapePtr pPlaceholder = findPlaceholder( nFirstPlaceholder, nSubTypeIndex, rShapes );
+ return !nSecondPlaceholder || pPlaceholder.get() ? pPlaceholder : findPlaceholder( nSecondPlaceholder, nSubTypeIndex, rShapes );
}
Reference< XFastContextHandler > PPTShapeContext::createFastChildContext( sal_Int32 aElementToken, const Reference< XFastAttributeList >& xAttribs ) throw (SAXException, RuntimeException)
@@ -107,7 +111,7 @@ Reference< XFastContextHandler > PPTShapeContext::createFastChildContext( sal_In
{
sal_Int32 nSubType( xAttribs->getOptionalValueToken( XML_type, XML_obj ) );
mpShapePtr->setSubType( nSubType );
- mpShapePtr->setIndex( xAttribs->getOptionalValue( XML_idx ).toInt32() );
+ mpShapePtr->setSubTypeIndex( xAttribs->getOptionalValue( XML_idx ).toInt32() );
if ( nSubType )
{
PPTShape* pPPTShapePtr = dynamic_cast< PPTShape* >( mpShapePtr.get() );
@@ -131,7 +135,8 @@ Reference< XFastContextHandler > PPTShapeContext::createFastChildContext( sal_In
nSecondPlaceholder = XML_title;
break;
case XML_obj : // slide/layout
- nFirstPlaceholder = XML_body;
+ nFirstPlaceholder = XML_obj;
+ nSecondPlaceholder = XML_body;
break;
case XML_dt : // slide/layout/master/notes/notesmaster/handoutmaster
case XML_sldNum : // slide/layout/master/notes/notesmaster/handoutmaster
@@ -154,12 +159,13 @@ Reference< XFastContextHandler > PPTShapeContext::createFastChildContext( sal_In
{
oox::drawingml::ShapePtr pPlaceholder;
if ( eShapeLocation == Layout ) // for layout objects the referenced object can be found within the same shape tree
- pPlaceholder = findPlaceholder( nFirstPlaceholder, nSecondPlaceholder, mpSlidePersistPtr->getShapes()->getChildren() );
+ pPlaceholder = findPlaceholder( nFirstPlaceholder, nSecondPlaceholder, -1, mpSlidePersistPtr->getShapes()->getChildren() );
else if ( eShapeLocation == Slide ) // normal slide shapes have to search within the corresponding master tree for referenced objects
{
SlidePersistPtr pMasterPersist( mpSlidePersistPtr->getMasterPersist() );
if ( pMasterPersist.get() )
- pPlaceholder = findPlaceholder( nFirstPlaceholder, nSecondPlaceholder, pMasterPersist->getShapes()->getChildren() );
+ pPlaceholder = findPlaceholder( nFirstPlaceholder, nSecondPlaceholder,
+ pPPTShapePtr->getSubTypeIndex(), pMasterPersist->getShapes()->getChildren() );
}
if ( pPlaceholder.get() )
{
diff --git a/oox/source/ppt/pptshapegroupcontext.cxx b/oox/source/ppt/pptshapegroupcontext.cxx
index 4113b399e6eb..ef8dbeedcd6c 100644
--- a/oox/source/ppt/pptshapegroupcontext.cxx
+++ b/oox/source/ppt/pptshapegroupcontext.cxx
@@ -76,7 +76,7 @@ Reference< XFastContextHandler > PPTShapeGroupContext::createFastChildContext( s
break;
case NMSP_PPT|XML_ph:
mpGroupShapePtr->setSubType( xAttribs->getOptionalValueToken( XML_type, FastToken::DONTKNOW ) );
- mpGroupShapePtr->setIndex( xAttribs->getOptionalValue( XML_idx ).toInt32() );
+ mpGroupShapePtr->setSubTypeIndex( xAttribs->getOptionalValue( XML_idx ).toInt32() );
break;
// nvSpPr CT_ShapeNonVisual end
diff --git a/oox/source/ppt/slidepersist.cxx b/oox/source/ppt/slidepersist.cxx
index c91a1bd1fd79..d5b3b13c762a 100644
--- a/oox/source/ppt/slidepersist.cxx
+++ b/oox/source/ppt/slidepersist.cxx
@@ -67,9 +67,11 @@ SlidePersist::SlidePersist( XmlFilterBase& rFilter, sal_Bool bMaster, sal_Bool b
{
if ( pDefaultTextStyle )
{
+ /*
maTitleTextStylePtr->apply( *pDefaultTextStyle.get() );
maBodyTextStylePtr->apply( *pDefaultTextStyle.get() );
maNotesTextStylePtr->apply( *pDefaultTextStyle.get() );
+ */
maOtherTextStylePtr->apply( *pDefaultTextStyle.get() );
}
}
diff --git a/oox/source/token/properties.txt b/oox/source/token/properties.txt
index 0ecd40ee6595..4d20b8f1c255 100644
--- a/oox/source/token/properties.txt
+++ b/oox/source/token/properties.txt
@@ -369,6 +369,7 @@ TextOverlap
TextRightDistance
TextRotation
TextUpperDistance
+TextVerticalAdjust
TextWordWrap
TextWritingMode
Toggle
diff --git a/oox/source/token/tokenmap.cxx b/oox/source/token/tokenmap.cxx
index 339ff5c40b44..b5ed8e9a9323 100644
--- a/oox/source/token/tokenmap.cxx
+++ b/oox/source/token/tokenmap.cxx
@@ -32,6 +32,8 @@
#include "tokens.hxx"
#include "oox/helper/containerhelper.hxx"
+#include <string.h>
+
using ::rtl::OString;
using ::rtl::OUString;
using ::com::sun::star::uno::Sequence;
diff --git a/oox/source/xls/biffhelper.cxx b/oox/source/xls/biffhelper.cxx
index f69cac731ee7..8ecea303183e 100644
--- a/oox/source/xls/biffhelper.cxx
+++ b/oox/source/xls/biffhelper.cxx
@@ -119,19 +119,27 @@ struct CodePageEntry_TEPred
// ----------------------------------------------------------------------------
-bool lclCalcRkFromDouble( sal_Int32& ornRkValue, double fValue )
+union DecodedDouble
+{
+ double mfValue;
+ sal_math_Double maStruct;
+
+ inline explicit DecodedDouble() {}
+ inline explicit DecodedDouble( double fValue ) : mfValue( fValue ) {}
+};
+
+bool lclCalcRkFromDouble( sal_Int32& ornRkValue, const DecodedDouble& rDecDbl )
{
// double
- const sal_math_Double* pValue = reinterpret_cast< const sal_math_Double* >( &fValue );
- if( (pValue->w32_parts.lsw == 0) && ((pValue->w32_parts.msw & 0x3) == 0) )
+ if( (rDecDbl.maStruct.w32_parts.lsw == 0) && ((rDecDbl.maStruct.w32_parts.msw & 0x3) == 0) )
{
- ornRkValue = static_cast< sal_Int32 >( pValue->w32_parts.msw );
+ ornRkValue = static_cast< sal_Int32 >( rDecDbl.maStruct.w32_parts.msw );
return true;
}
// integer
double fInt = 0.0;
- double fFrac = modf( fValue, &fInt );
+ double fFrac = modf( rDecDbl.mfValue, &fInt );
if( (fFrac == 0.0) && (-536870912.0 <= fInt) && (fInt <= 536870911.0) ) // 2^29
{
ornRkValue = static_cast< sal_Int32 >( fInt );
@@ -143,6 +151,22 @@ bool lclCalcRkFromDouble( sal_Int32& ornRkValue, double fValue )
return false;
}
+bool lclCalcRkFromDouble( sal_Int32& ornRkValue, double fValue )
+{
+ DecodedDouble aDecDbl( fValue );
+ if( lclCalcRkFromDouble( ornRkValue, aDecDbl ) )
+ return true;
+
+ aDecDbl.mfValue *= 100.0;
+ if( lclCalcRkFromDouble( ornRkValue, aDecDbl ) )
+ {
+ ornRkValue |= BIFF_RK_100FLAG;
+ return true;
+ }
+
+ return false;
+}
+
// ----------------------------------------------------------------------------
void lclImportImgDataDib( StreamDataSequence& orDataSeq, BiffInputStream& rStrm, sal_Int32 nBytes, BiffType eBiff )
@@ -229,23 +253,22 @@ void lclImportImgDataDib( StreamDataSequence& orDataSeq, BiffInputStream& rStrm,
/*static*/ double BiffHelper::calcDoubleFromRk( sal_Int32 nRkValue )
{
- double fValue = 0.0;
+ DecodedDouble aDecDbl( 0.0 );
if( getFlag( nRkValue, BIFF_RK_INTFLAG ) )
{
sal_Int32 nTemp = nRkValue >> 2;
setFlag< sal_Int32 >( nTemp, 0xE0000000, nRkValue < 0 );
- fValue = nTemp;
+ aDecDbl.mfValue = nTemp;
}
else
{
- sal_math_Double* pDouble = reinterpret_cast< sal_math_Double* >( &fValue );
- pDouble->w32_parts.msw = static_cast< sal_uInt32 >( nRkValue & BIFF_RK_VALUEMASK );
+ aDecDbl.maStruct.w32_parts.msw = static_cast< sal_uInt32 >( nRkValue & BIFF_RK_VALUEMASK );
}
if( getFlag( nRkValue, BIFF_RK_100FLAG ) )
- fValue /= 100.0;
+ aDecDbl.mfValue /= 100.0;
- return fValue;
+ return aDecDbl.mfValue;
}
/*static*/ bool BiffHelper::calcRkFromDouble( sal_Int32& ornRkValue, double fValue )
@@ -276,10 +299,10 @@ void lclImportImgDataDib( StreamDataSequence& orDataSeq, BiffInputStream& rStrm,
case BIFF_ERR_NA: nApiError = 0x7FFF; break;
default: OSL_ENSURE( false, "BiffHelper::calcDoubleFromError - unknown error code" );
}
- double fValue;
- ::rtl::math::setNan( &fValue );
- reinterpret_cast< sal_math_Double* >( &fValue )->nan_parts.fraction_lo = nApiError;
- return fValue;
+ DecodedDouble aDecDbl;
+ ::rtl::math::setNan( &aDecDbl.mfValue );
+ aDecDbl.maStruct.nan_parts.fraction_lo = nApiError;
+ return aDecDbl.mfValue;
}
/*static*/ rtl_TextEncoding BiffHelper::calcTextEncodingFromCodePage( sal_uInt16 nCodePage )
@@ -309,15 +332,14 @@ void lclImportImgDataDib( StreamDataSequence& orDataSeq, BiffInputStream& rStrm,
sal_uInt16 nFormat, nEnv;
sal_Int32 nBytes;
rStrm >> nFormat >> nEnv >> nBytes;
- OSL_ENSURE( (nFormat == BIFF_IMGDATA_WMF) || (nFormat == BIFF_IMGDATA_DIB) || (nFormat == BIFF_IMGDATA_NATIVE), "BiffHelper::importImgData - unknown format" );
OSL_ENSURE( nBytes > 0, "BiffHelper::importImgData - invalid data size" );
if( (0 < nBytes) && (nBytes <= rStrm.getRemaining()) )
{
switch( nFormat )
{
- case BIFF_IMGDATA_WMF: /* TODO */ break;
+// case BIFF_IMGDATA_WMF: /* TODO */ break;
case BIFF_IMGDATA_DIB: lclImportImgDataDib( orDataSeq, rStrm, nBytes, eBiff ); break;
- case BIFF_IMGDATA_NATIVE: /* TODO */ break;
+// case BIFF_IMGDATA_NATIVE: /* TODO */ break;
default: OSL_ENSURE( false, "BiffHelper::importImgData - unknown image format" );
}
}
diff --git a/oox/source/xls/formulabase.cxx b/oox/source/xls/formulabase.cxx
index b9b9c3d57dcc..b2e5ba0ee931 100644
--- a/oox/source/xls/formulabase.cxx
+++ b/oox/source/xls/formulabase.cxx
@@ -229,12 +229,13 @@ const size_t FUNCINFO_PARAMINFOCOUNT = 5; /// Number of parameter
const sal_uInt16 FUNCFLAG_VOLATILE = 0x0001; /// Result is volatile (e.g. NOW() function).
const sal_uInt16 FUNCFLAG_IMPORTONLY = 0x0002; /// Only used in import filter.
const sal_uInt16 FUNCFLAG_EXPORTONLY = 0x0004; /// Only used in export filter.
-const sal_uInt16 FUNCFLAG_MACROCALL = 0x0008; /// Function is simulated by macro call in Excel.
-const sal_uInt16 FUNCFLAG_EXTERNAL = 0x0010; /// Function is external in Calc.
-const sal_uInt16 FUNCFLAG_MACROFUNC = 0x0020; /// Function is a macro-sheet function.
-const sal_uInt16 FUNCFLAG_MACROCMD = 0x0040; /// Function is a macro-sheet command.
-const sal_uInt16 FUNCFLAG_ALWAYSVAR = 0x0080; /// Function is always represented by a tFuncVar token.
-const sal_uInt16 FUNCFLAG_PARAMPAIRS = 0x0100; /// Optional parameters are expected to appear in pairs.
+const sal_uInt16 FUNCFLAG_MACROCALL = 0x0008; /// Function is stored as macro call in Excel (_xlfn. prefix). OOXML name MUST exist.
+const sal_uInt16 FUNCFLAG_MACROCALLODF = 0x0010; /// ODF-only function stored as macro call in Excel (_xlfnodf. prefix). ODF name MUST exist.
+const sal_uInt16 FUNCFLAG_EXTERNAL = 0x0020; /// Function is external in Calc.
+const sal_uInt16 FUNCFLAG_MACROFUNC = 0x0040; /// Function is a macro-sheet function.
+const sal_uInt16 FUNCFLAG_MACROCMD = 0x0080; /// Function is a macro-sheet command.
+const sal_uInt16 FUNCFLAG_ALWAYSVAR = 0x0100; /// Function is always represented by a tFuncVar token.
+const sal_uInt16 FUNCFLAG_PARAMPAIRS = 0x0200; /// Optional parameters are expected to appear in pairs.
const sal_uInt16 FUNCFLAG_FUNCLIBMASK = 0xF000; /// Mask for function library bits.
const sal_uInt16 FUNCFLAG_EUROTOOL = 0x1000; /// Function is part of the EuroTool add-in.
@@ -346,7 +347,6 @@ static const FunctionData saFuncTableBiff2[] =
{ "TREND", "TREND", 50, 50, 1, 3, A, { RA, RA, RA, C }, 0 },
{ "LOGEST", "LOGEST", 51, 51, 1, 2, A, { RA, RA, C, C }, 0 },
{ "GROWTH", "GROWTH", 52, 52, 1, 3, A, { RA, RA, RA, C }, 0 },
- { 0, "RETURN", 55, 55, 0, 1, R, { RO }, FUNCFLAG_MACROFUNC },
{ "PV", "PV", 56, 56, 3, 5, V, { VR }, 0 },
{ "FV", "FV", 57, 57, 3, 5, V, { VR }, 0 },
{ "NPER", "NPER", 58, 58, 3, 5, V, { VR }, 0 },
@@ -370,11 +370,9 @@ static const FunctionData saFuncTableBiff2[] =
{ "ROWS", "ROWS", 76, 76, 1, 1, V, { RO }, 0 },
{ "COLUMNS", "COLUMNS", 77, 77, 1, 1, V, { RO }, 0 },
{ "OFFSET", "OFFSET", 78, 78, 3, 5, R, { RO, VR }, FUNCFLAG_VOLATILE },
- { 0, "ABSREF", 79, 79, 2, 2, R, { VR, RO }, FUNCFLAG_MACROFUNC },
{ "SEARCH", "SEARCH", 82, 82, 2, 3, V, { VR }, 0 },
{ "TRANSPOSE", "TRANSPOSE", 83, 83, 1, 1, A, { VO }, 0 },
{ "TYPE", "TYPE", 86, 86, 1, 1, V, { VX }, 0 },
- { 0, "ACTIVE.CELL", 94, 94, 0, 0, R, {}, FUNCFLAG_MACROFUNC },
{ "ATAN2", "ATAN2", 97, 97, 2, 2, V, { VR }, 0 },
{ "ASIN", "ASIN", 98, 98, 1, 1, V, { VR }, 0 },
{ "ACOS", "ACOS", 99, 99, 1, 1, V, { VR }, 0 },
@@ -408,9 +406,6 @@ static const FunctionData saFuncTableBiff2[] =
{ "SYD", "SYD", 143, 143, 4, 4, V, { VR }, 0 },
{ "DDB", "DDB", 144, 144, 4, 5, V, { VR }, 0 },
{ "INDIRECT", "INDIRECT", 148, 148, 1, 2, R, { VR }, FUNCFLAG_VOLATILE },
- { 0, "ADD.BAR", 151, 151, 0, 0, V, {}, FUNCFLAG_MACROFUNC | FUNCFLAG_ALWAYSVAR },
- { 0, "ADD.MENU", 152, 152, 2, 2, V, { VR, RO }, FUNCFLAG_MACROFUNC | FUNCFLAG_ALWAYSVAR },
- { 0, "ADD.COMMAND", 153, 153, 3, 3, V, { VR, RO }, FUNCFLAG_MACROFUNC | FUNCFLAG_ALWAYSVAR },
{ "CLEAN", "CLEAN", 162, 162, 1, 1, V, { VR }, 0 },
{ "MDETERM", "MDETERM", 163, 163, 1, 1, V, { VA }, 0 },
{ "MINVERSE", "MINVERSE", 164, 164, 1, 1, A, { VA }, 0 },
@@ -434,10 +429,16 @@ static const FunctionData saFuncTableBiff2[] =
// *** macro sheet commands ***
{ 0, "A1.R1C1", 30, 30, 0, 1, V, { VR }, FUNCFLAG_MACROCMD },
+ { 0, "RETURN", 55, 55, 0, 1, R, { RO }, FUNCFLAG_MACROFUNC },
+ { 0, "ABSREF", 79, 79, 2, 2, R, { VR, RO }, FUNCFLAG_MACROFUNC },
{ 0, "ADD.ARROW", 81, 81, 0, 0, V, {}, FUNCFLAG_MACROCMD },
+ { 0, "ACTIVE.CELL", 94, 94, 0, 0, R, {}, FUNCFLAG_MACROFUNC },
{ 0, "ACTIVATE", 103, 103, 0, 2, V, { VR }, FUNCFLAG_MACROCMD },
{ 0, "ACTIVATE.NEXT", 104, 104, 0, 0, V, {}, FUNCFLAG_MACROCMD },
- { 0, "ACTIVATE.PREV", 105, 105, 0, 0, V, {}, FUNCFLAG_MACROCMD }
+ { 0, "ACTIVATE.PREV", 105, 105, 0, 0, V, {}, FUNCFLAG_MACROCMD },
+ { 0, "ADD.BAR", 151, 151, 0, 0, V, {}, FUNCFLAG_MACROFUNC | FUNCFLAG_ALWAYSVAR },
+ { 0, "ADD.MENU", 152, 152, 2, 2, V, { VR, RO }, FUNCFLAG_MACROFUNC | FUNCFLAG_ALWAYSVAR },
+ { 0, "ADD.COMMAND", 153, 153, 3, 3, V, { VR, RO }, FUNCFLAG_MACROFUNC | FUNCFLAG_ALWAYSVAR }
};
/** Functions new in BIFF3. */
@@ -447,9 +448,6 @@ static const FunctionData saFuncTableBiff3[] =
{ "TREND", "TREND", 50, 50, 1, 4, A, { RA, RA, RA, VV }, 0 }, // BIFF2: 1-3, BIFF3: 1-4
{ "LOGEST", "LOGEST", 51, 51, 1, 4, A, { RA, RA, VV }, 0 }, // BIFF2: 1-2, BIFF3: 1-4
{ "GROWTH", "GROWTH", 52, 52, 1, 4, A, { RA, RA, RA, VV }, 0 }, // BIFF2: 1-3, BIFF3: 1-4
- { 0, "ADD.BAR", 151, 151, 0, 1, V, { VR }, FUNCFLAG_MACROFUNC }, // BIFF2: 0, BIFF3: 0-1
- { 0, "ADD.MENU", 152, 152, 2, 3, V, { VR, RO }, FUNCFLAG_MACROFUNC }, // BIFF2: 2, BIFF3: 2-3
- { 0, "ADD.COMMAND", 153, 153, 3, 4, V, { VR, RO }, FUNCFLAG_MACROFUNC }, // BIFF2: 3, BIFF3: 3-4
{ "TRUNC", "TRUNC", 197, 197, 1, 2, V, { VR }, 0 }, // BIFF2: 1, BIFF3: 1-2
{ "DOLLAR", "USDOLLAR", 204, 204, 1, 2, V, { VR }, FUNCFLAG_IMPORTONLY },
{ 0/*"FIND"*/, "FINDB", 205, 205, 2, 3, V, { VR }, 0 },
@@ -478,7 +476,13 @@ static const FunctionData saFuncTableBiff3[] =
{ "ATANH", "ATANH", 234, 234, 1, 1, V, { VR }, 0 },
{ "ACOTH", "ATANH", 234, 234, 1, 1, V, { VR }, FUNCFLAG_EXPORTONLY },
{ "DGET", "DGET", 235, 235, 3, 3, V, { RO, RR }, 0 },
- { "INFO", "INFO", 244, 244, 1, 1, V, { VR }, FUNCFLAG_VOLATILE }
+ { "INFO", "INFO", 244, 244, 1, 1, V, { VR }, FUNCFLAG_VOLATILE },
+
+ // *** macro sheet commands ***
+
+ { 0, "ADD.BAR", 151, 151, 0, 1, V, { VR }, FUNCFLAG_MACROFUNC }, // BIFF2: 0, BIFF3: 0-1
+ { 0, "ADD.MENU", 152, 152, 2, 3, V, { VR, RO }, FUNCFLAG_MACROFUNC }, // BIFF2: 2, BIFF3: 2-3
+ { 0, "ADD.COMMAND", 153, 153, 3, 4, V, { VR, RO }, FUNCFLAG_MACROFUNC } // BIFF2: 3, BIFF3: 3-4
};
/** Functions new in BIFF4. */
@@ -662,8 +666,6 @@ static const FunctionData saFuncTableBiff5[] =
{ "WEEKDAY", "WEEKDAY", 70, 70, 1, 2, V, { VR }, 0 }, // BIFF2-4: 1, BIFF5: 1-2
{ "HLOOKUP", "HLOOKUP", 101, 101, 3, 4, V, { VV, RO, RO, VV }, 0 }, // BIFF2-4: 3, BIFF5: 3-4
{ "VLOOKUP", "VLOOKUP", 102, 102, 3, 4, V, { VV, RO, RO, VV }, 0 }, // BIFF2-4: 3, BIFF5: 3-4
- { 0, "ADD.MENU", 152, 152, 2, 4, V, { VR, RO, RO, VR }, FUNCFLAG_MACROFUNC }, // BIFF3-4: 2-3, BIFF5: 2-4
- { 0, "ADD.COMMAND", 153, 153, 3, 5, V, { VR, RO, RO, RO, VR }, FUNCFLAG_MACROFUNC }, // BIFF3-4: 3-4, BIFF5: 3-5
{ "DAYS360", "DAYS360", 220, 220, 2, 3, V, { VR }, 0 }, // BIFF3-4: 2, BIFF5: 2-3
{ 0, "EXTERN.CALL", 255, 255, 1, MX, R, { RO_E, RO }, FUNCFLAG_EXPORTONLY }, // MACRO or EXTERNAL
{ "CONCATENATE", "CONCATENATE", 336, 336, 0, MX, V, { VR }, 0 },
@@ -686,6 +688,8 @@ static const FunctionData saFuncTableBiff5[] =
// *** macro sheet commands ***
+ { 0, "ADD.MENU", 152, 152, 2, 4, V, { VR, RO, RO, VR }, FUNCFLAG_MACROFUNC }, // BIFF3-4: 2-3, BIFF5: 2-4
+ { 0, "ADD.COMMAND", 153, 153, 3, 5, V, { VR, RO, RO, RO, VR }, FUNCFLAG_MACROFUNC }, // BIFF3-4: 3-4, BIFF5: 3-5
{ 0, "ADD.CHART.AUTOFORMAT", 390, 390, 0, 2, V, { VR }, FUNCFLAG_MACROCMD },
{ 0, "ADD.LIST.ITEM", 451, 451, 0, 2, V, { VR }, FUNCFLAG_MACROCMD },
{ 0, "ACTIVE.CELL.FONT", 476, 476, 0, 14, V, { VR }, FUNCFLAG_MACROCMD }
@@ -738,41 +742,39 @@ static const FunctionData saFuncTableOox[] =
/** Functions defined by OpenFormula, but not supported by Calc or by Excel. */
static const FunctionData saFuncTableOdf[] =
{
- { "ARABIC", 0, NOID, NOID, 1, 1, V, { VR }, 0 },
- { "B", 0, NOID, NOID, 3, 4, V, { VR }, 0 },
- { "BASE", 0, NOID, NOID, 2, 3, V, { VR }, 0 },
- { "BITAND", 0, NOID, NOID, 2, 2, V, { VR }, 0 },
- { "BITLSHIFT", 0, NOID, NOID, 2, 2, V, { VR }, 0 },
- { "BITOR", 0, NOID, NOID, 2, 2, V, { VR }, 0 },
- { "BITRSHIFT", 0, NOID, NOID, 2, 2, V, { VR }, 0 },
- { "BITXOR", 0, NOID, NOID, 2, 2, V, { VR }, 0 },
- { "CHISQDIST", 0, NOID, NOID, 2, 3, V, { VR }, 0 },
- { "CHISQINV", 0, NOID, NOID, 2, 2, V, { VR }, 0 },
- { "COMBINA", 0, NOID, NOID, 2, 2, V, { VR }, 0 },
- { "DAYS", 0, NOID, NOID, 2, 2, V, { VR }, 0 },
- { "DDE", 0, NOID, NOID, 3, 4, V, { VR }, 0 },
- { "DECIMAL", 0, NOID, NOID, 2, 2, V, { VR }, 0 },
- { "FDIST", 0, NOID, NOID, 3, 4, V, { VR }, 0 },
- { "FINV", 0, NOID, NOID, 3, 3, V, { VR }, 0 },
- { "FORMULA", 0, NOID, NOID, 1, 1, V, { RO }, 0 },
- { "GAMMA", 0, NOID, NOID, 1, 1, V, { VR }, 0 },
- { "GAUSS", 0, NOID, NOID, 1, 1, V, { VR }, 0 },
- { "IFNA", 0, NOID, NOID, 2, 2, V, { VR, RO }, 0 },
- { "ISFORMULA", 0, NOID, NOID, 1, 1, V, { RO }, 0 },
- { "ISOWEEKNUM", 0, NOID, NOID, 1, 2, V, { VR }, 0 },
- { "MULTIPLE.OPERATIONS", 0, NOID, NOID, 3, 5, V, { RO }, 0 },
- { "MUNIT", 0, NOID, NOID, 1, 1, A, { VR }, 0 },
- { "NUMBERVALUE", 0, NOID, NOID, 2, 2, V, { VR }, 0 },
- { "PDURATION", 0, NOID, NOID, 3, 3, V, { VR }, 0 },
- { "PERMUTATIONA", 0, NOID, NOID, 2, 2, V, { VR }, 0 },
- { "PHI", 0, NOID, NOID, 1, 1, V, { VR }, 0 },
- { "RRI", 0, NOID, NOID, 3, 3, V, { VR }, 0 },
- { "SHEET", 0, NOID, NOID, 1, 1, V, { RO }, 0 },
- { "SHEETS", 0, NOID, NOID, 0, 1, V, { RO }, 0 },
- { "SKEWP", 0, NOID, NOID, 1, MX, V, { RX }, 0 },
- { "UNICHAR", 0, NOID, NOID, 1, 1, V, { VR }, 0 },
- { "UNICODE", 0, NOID, NOID, 1, 1, V, { VR }, 0 },
- { "XOR", 0, NOID, NOID, 1, MX, V, { RX }, 0 }
+ { "ARABIC", 0, NOID, NOID, 1, 1, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "B", 0, NOID, NOID, 3, 4, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "BASE", 0, NOID, NOID, 2, 3, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "BITAND", 0, NOID, NOID, 2, 2, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "BITLSHIFT", 0, NOID, NOID, 2, 2, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "BITOR", 0, NOID, NOID, 2, 2, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "BITRSHIFT", 0, NOID, NOID, 2, 2, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "BITXOR", 0, NOID, NOID, 2, 2, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "CHISQDIST", 0, NOID, NOID, 2, 3, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "CHISQINV", 0, NOID, NOID, 2, 2, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "COMBINA", 0, NOID, NOID, 2, 2, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "DAYS", 0, NOID, NOID, 2, 2, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "DECIMAL", 0, NOID, NOID, 2, 2, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "FDIST", 0, NOID, NOID, 3, 4, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "FINV", 0, NOID, NOID, 3, 3, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "FORMULA", 0, NOID, NOID, 1, 1, V, { RO }, FUNCFLAG_MACROCALLODF },
+ { "GAMMA", 0, NOID, NOID, 1, 1, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "GAUSS", 0, NOID, NOID, 1, 1, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "IFNA", 0, NOID, NOID, 2, 2, V, { VR, RO }, FUNCFLAG_MACROCALLODF },
+ { "ISFORMULA", 0, NOID, NOID, 1, 1, V, { RO }, FUNCFLAG_MACROCALLODF },
+ { "ISOWEEKNUM", 0, NOID, NOID, 1, 2, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "MUNIT", 0, NOID, NOID, 1, 1, A, { VR }, FUNCFLAG_MACROCALLODF },
+ { "NUMBERVALUE", 0, NOID, NOID, 2, 2, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "PDURATION", 0, NOID, NOID, 3, 3, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "PERMUTATIONA", 0, NOID, NOID, 2, 2, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "PHI", 0, NOID, NOID, 1, 1, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "RRI", 0, NOID, NOID, 3, 3, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "SHEET", 0, NOID, NOID, 1, 1, V, { RO }, FUNCFLAG_MACROCALLODF },
+ { "SHEETS", 0, NOID, NOID, 0, 1, V, { RO }, FUNCFLAG_MACROCALLODF },
+ { "SKEWP", 0, NOID, NOID, 1, MX, V, { RX }, FUNCFLAG_MACROCALLODF },
+ { "UNICHAR", 0, NOID, NOID, 1, 1, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "UNICODE", 0, NOID, NOID, 1, 1, V, { VR }, FUNCFLAG_MACROCALLODF },
+ { "XOR", 0, NOID, NOID, 1, MX, V, { RX }, FUNCFLAG_MACROCALLODF }
};
// ----------------------------------------------------------------------------
@@ -895,6 +897,7 @@ FunctionProviderImpl::FunctionProviderImpl( FilterType eFilter, BiffType eBiff,
initFuncs( saFuncTableBiff8, STATIC_ARRAY_END( saFuncTableBiff8 ), nMaxParam, bImportFilter );
if( eFilter == FILTER_OOX )
initFuncs( saFuncTableOox, STATIC_ARRAY_END( saFuncTableOox ), nMaxParam, bImportFilter );
+ initFuncs( saFuncTableOdf, STATIC_ARRAY_END( saFuncTableOdf ), nMaxParam, bImportFilter );
}
void FunctionProviderImpl::initFunc( const FunctionData& rFuncData, sal_uInt8 nMaxParam )
@@ -905,13 +908,25 @@ void FunctionProviderImpl::initFunc( const FunctionData& rFuncData, sal_uInt8 nM
xFuncInfo->maOdfFuncName = OUString::createFromAscii( rFuncData.mpcOdfFuncName );
if( rFuncData.mpcOoxFuncName )
xFuncInfo->maOoxFuncName = OUString::createFromAscii( rFuncData.mpcOoxFuncName );
+
if( getFlag( rFuncData.mnFlags, FUNCFLAG_MACROCALL ) )
+ {
+ OSL_ENSURE( xFuncInfo->maOoxFuncName.getLength() > 0, "FunctionProviderImpl::initFunc - missing OOXML function name" );
+ OSL_ENSURE( !getFlag( rFuncData.mnFlags, FUNCFLAG_MACROCALLODF ), "FunctionProviderImpl::initFunc - unexpected flag FUNCFLAG_MACROCALLODF" );
xFuncInfo->maBiffMacroName = CREATE_OUSTRING( "_xlfn." ) + xFuncInfo->maOoxFuncName;
+ }
+ else if( getFlag( rFuncData.mnFlags, FUNCFLAG_MACROCALLODF ) )
+ {
+ OSL_ENSURE( xFuncInfo->maOdfFuncName.getLength() > 0, "FunctionProviderImpl::initFunc - missing ODF function name" );
+ xFuncInfo->maBiffMacroName = CREATE_OUSTRING( "_xlfnodf." ) + xFuncInfo->maOdfFuncName;
+ }
+
switch( rFuncData.mnFlags & FUNCFLAG_FUNCLIBMASK )
{
case FUNCFLAG_EUROTOOL: xFuncInfo->meFuncLibType = FUNCLIB_EUROTOOL; break;
default: xFuncInfo->meFuncLibType = FUNCLIB_UNKNOWN;
}
+
xFuncInfo->mnApiOpCode = -1;
xFuncInfo->mnOobFuncId = rFuncData.mnOobFuncId;
xFuncInfo->mnBiffFuncId = rFuncData.mnBiffFuncId;
diff --git a/oox/source/xls/stylesbuffer.cxx b/oox/source/xls/stylesbuffer.cxx
index 3eac90040667..cd914ceae196 100644
--- a/oox/source/xls/stylesbuffer.cxx
+++ b/oox/source/xls/stylesbuffer.cxx
@@ -69,6 +69,7 @@ using ::com::sun::star::awt::FontDescriptor;
using ::com::sun::star::awt::XDevice;
using ::com::sun::star::awt::XFont2;
using ::com::sun::star::table::BorderLine;
+using ::com::sun::star::table::TableBorder;
using ::com::sun::star::text::XText;
using ::com::sun::star::style::XStyle;
using ::oox::core::FilterBase;
@@ -1398,7 +1399,6 @@ void Alignment::writeToPropertyMap( PropertyMap& rPropMap ) const
rPropMap[ PROP_VertJustify ] <<= maApiData.meVerJustify;
rPropMap[ PROP_WritingMode ] <<= maApiData.mnWritingMode;
rPropMap[ PROP_RotateAngle ] <<= maApiData.mnRotation;
- rPropMap[ PROP_RotateReference ] <<= ::com::sun::star::table::CellVertJustify_STANDARD; // rotation reference
rPropMap[ PROP_Orientation ] <<= maApiData.meOrientation;
rPropMap[ PROP_ParaIndent ] <<= maApiData.mnIndent;
rPropMap[ PROP_IsTextWrapped ] <<= maApiData.mbWrapText;
@@ -1517,6 +1517,57 @@ ApiBorderData::ApiBorderData() :
{
}
+bool ApiBorderData::hasAnyOuterBorder() const
+{
+ return
+ (maBorder.IsTopLineValid && (maBorder.TopLine.OuterLineWidth > 0)) ||
+ (maBorder.IsBottomLineValid && (maBorder.BottomLine.OuterLineWidth > 0)) ||
+ (maBorder.IsLeftLineValid && (maBorder.LeftLine.OuterLineWidth > 0)) ||
+ (maBorder.IsRightLineValid && (maBorder.RightLine.OuterLineWidth > 0));
+}
+
+namespace {
+
+bool operator==( const BorderLine& rLeft, const BorderLine& rRight )
+{
+ return
+ (rLeft.Color == rRight.Color) &&
+ (rLeft.InnerLineWidth == rRight.InnerLineWidth) &&
+ (rLeft.OuterLineWidth == rRight.OuterLineWidth) &&
+ (rLeft.LineDistance == rRight.LineDistance);
+}
+
+bool operator==( const TableBorder& rLeft, const TableBorder& rRight )
+{
+ return
+ (rLeft.TopLine == rRight.TopLine) &&
+ (rLeft.IsTopLineValid == rRight.IsTopLineValid) &&
+ (rLeft.BottomLine == rRight.BottomLine) &&
+ (rLeft.IsBottomLineValid == rRight.IsBottomLineValid) &&
+ (rLeft.LeftLine == rRight.LeftLine) &&
+ (rLeft.IsLeftLineValid == rRight.IsLeftLineValid) &&
+ (rLeft.RightLine == rRight.RightLine) &&
+ (rLeft.IsRightLineValid == rRight.IsRightLineValid) &&
+ (rLeft.HorizontalLine == rRight.HorizontalLine) &&
+ (rLeft.IsHorizontalLineValid == rRight.IsHorizontalLineValid) &&
+ (rLeft.VerticalLine == rRight.VerticalLine) &&
+ (rLeft.IsVerticalLineValid == rRight.IsVerticalLineValid) &&
+ (rLeft.Distance == rRight.Distance) &&
+ (rLeft.IsDistanceValid == rRight.IsDistanceValid);
+}
+
+} // namespace
+
+bool operator==( const ApiBorderData& rLeft, const ApiBorderData& rRight )
+{
+ return
+ (rLeft.maBorder == rRight.maBorder) &&
+ (rLeft.maTLtoBR == rRight.maTLtoBR) &&
+ (rLeft.maBLtoTR == rRight.maBLtoTR) &&
+ (rLeft.mbBorderUsed == rRight.mbBorderUsed) &&
+ (rLeft.mbDiagUsed == rRight.mbDiagUsed);
+}
+
// ============================================================================
namespace {
@@ -1820,6 +1871,14 @@ ApiSolidFillData::ApiSolidFillData() :
{
}
+bool operator==( const ApiSolidFillData& rLeft, const ApiSolidFillData& rRight )
+{
+ return
+ (rLeft.mnColor == rRight.mnColor) &&
+ (rLeft.mbTransparent == rRight.mbTransparent) &&
+ (rLeft.mbUsed == rRight.mbUsed);
+}
+
// ============================================================================
namespace {
@@ -2132,7 +2191,8 @@ XfModel::XfModel() :
Xf::Xf( const WorkbookHelper& rHelper ) :
WorkbookHelper( rHelper ),
maAlignment( rHelper ),
- maProtection( rHelper )
+ maProtection( rHelper ),
+ meRotationRef( ::com::sun::star::table::CellVertJustify_STANDARD )
{
}
@@ -2315,13 +2375,46 @@ void Xf::importXf( BiffInputStream& rStrm )
void Xf::finalizeImport()
{
+ StylesBuffer& rStyles = getStyles();
+
// alignment and protection
maAlignment.finalizeImport();
maProtection.finalizeImport();
- // update used flags from cell style
- if( maModel.mbCellXf )
- if( const Xf* pStyleXf = getStyles().getStyleXf( maModel.mnStyleXfId ).get() )
- updateUsedFlags( *pStyleXf );
+
+ /* Enables the used flags, if the formatting attributes differ from the
+ style XF. In cell XFs Excel uses the cell attributes, if they differ
+ from the parent style XF (even if the used flag is switched off).
+ #109899# ...or if the respective flag is not set in parent style XF.
+ */
+ const Xf* pStyleXf = isCellXf() ? rStyles.getStyleXf( maModel.mnStyleXfId ).get() : 0;
+ if( pStyleXf )
+ {
+ const XfModel& rStyleData = pStyleXf->maModel;
+ if( !maModel.mbFontUsed )
+ maModel.mbFontUsed = !rStyleData.mbFontUsed || (maModel.mnFontId != rStyleData.mnFontId);
+ if( !maModel.mbNumFmtUsed )
+ maModel.mbNumFmtUsed = !rStyleData.mbNumFmtUsed || (maModel.mnNumFmtId != rStyleData.mnNumFmtId);
+ if( !maModel.mbAlignUsed )
+ maModel.mbAlignUsed = !rStyleData.mbAlignUsed || !(maAlignment.getApiData() == pStyleXf->maAlignment.getApiData());
+ if( !maModel.mbProtUsed )
+ maModel.mbProtUsed = !rStyleData.mbProtUsed || !(maProtection.getApiData() == pStyleXf->maProtection.getApiData());
+ if( !maModel.mbBorderUsed )
+ maModel.mbBorderUsed = !rStyleData.mbBorderUsed || !rStyles.equalBorders( maModel.mnBorderId, rStyleData.mnBorderId );
+ if( !maModel.mbAreaUsed )
+ maModel.mbAreaUsed = !rStyleData.mbAreaUsed || !rStyles.equalFills( maModel.mnFillId, rStyleData.mnFillId );
+ }
+
+ /* #i38709# Decide which rotation reference mode to use. If any outer
+ border line of the cell is set (either explicitly or via cell style),
+ and the cell contents are rotated, set rotation reference to bottom of
+ cell. This causes the borders to be painted rotated with the text. */
+ if( const Alignment* pAlignment = maModel.mbAlignUsed ? &maAlignment : (pStyleXf ? &pStyleXf->maAlignment : 0) )
+ {
+ sal_Int32 nBorderId = maModel.mbBorderUsed ? maModel.mnBorderId : (pStyleXf ? pStyleXf->maModel.mnBorderId : -1);
+ if( const Border* pBorder = rStyles.getBorder( nBorderId ).get() )
+ if( (pAlignment->getApiData().mnRotation != 0) && pBorder->getApiData().hasAnyOuterBorder() )
+ meRotationRef = ::com::sun::star::table::CellVertJustify_BOTTOM;
+ }
}
FontRef Xf::getFont() const
@@ -2341,7 +2434,7 @@ void Xf::writeToPropertyMap( PropertyMap& rPropMap ) const
StylesBuffer& rStyles = getStyles();
// create and set cell style
- if( maModel.mbCellXf )
+ if( isCellXf() )
rPropMap[ PROP_CellStyle ] <<= rStyles.createCellStyle( maModel.mnStyleXfId );
if( maModel.mbFontUsed )
@@ -2356,6 +2449,8 @@ void Xf::writeToPropertyMap( PropertyMap& rPropMap ) const
rStyles.writeBorderToPropertyMap( rPropMap, maModel.mnBorderId );
if( maModel.mbAreaUsed )
rStyles.writeFillToPropertyMap( rPropMap, maModel.mnFillId );
+ if( maModel.mbAlignUsed || maModel.mbBorderUsed )
+ rPropMap[ PROP_RotateReference ] <<= meRotationRef;
}
void Xf::writeToPropertySet( PropertySet& rPropSet ) const
@@ -2371,37 +2466,15 @@ void Xf::setBiffUsedFlags( sal_uInt8 nUsedFlags )
- In cell XFs a *set* bit means a used attribute.
- In style XFs a *cleared* bit means a used attribute.
The boolean flags always store true, if the attribute is used.
- The "maModel.mbCellXf == getFlag(...)" construct evaluates to true in
- both mentioned cases: cell XF and set bit; or style XF and cleared bit.
- */
- maModel.mbFontUsed = maModel.mbCellXf == getFlag( nUsedFlags, BIFF_XF_FONT_USED );
- maModel.mbNumFmtUsed = maModel.mbCellXf == getFlag( nUsedFlags, BIFF_XF_NUMFMT_USED );
- maModel.mbAlignUsed = maModel.mbCellXf == getFlag( nUsedFlags, BIFF_XF_ALIGN_USED );
- maModel.mbProtUsed = maModel.mbCellXf == getFlag( nUsedFlags, BIFF_XF_PROT_USED );
- maModel.mbBorderUsed = maModel.mbCellXf == getFlag( nUsedFlags, BIFF_XF_BORDER_USED );
- maModel.mbAreaUsed = maModel.mbCellXf == getFlag( nUsedFlags, BIFF_XF_AREA_USED );
-}
-
-void Xf::updateUsedFlags( const Xf& rStyleXf )
-{
- /* Enables the used flags, if the formatting attributes differ from the
- passed style XF. In cell XFs Excel uses the cell attributes, if they
- differ from the parent style XF.
- #109899# ...or if the respective flag is not set in parent style XF.
+ The "isCellXf() == getFlag(...)" construct evaluates to true in both
+ mentioned cases: cell XF and set bit; or style XF and cleared bit.
*/
- const XfModel& rStyleData = rStyleXf.maModel;
- if( !maModel.mbFontUsed )
- maModel.mbFontUsed = !rStyleData.mbFontUsed || (maModel.mnFontId != rStyleData.mnFontId);
- if( !maModel.mbNumFmtUsed )
- maModel.mbNumFmtUsed = !rStyleData.mbNumFmtUsed || (maModel.mnNumFmtId != rStyleData.mnNumFmtId);
- if( !maModel.mbAlignUsed )
- maModel.mbAlignUsed = !rStyleData.mbAlignUsed || !(maAlignment.getApiData() == rStyleXf.maAlignment.getApiData());
- if( !maModel.mbProtUsed )
- maModel.mbProtUsed = !rStyleData.mbProtUsed || !(maProtection.getApiData() == rStyleXf.maProtection.getApiData());
- if( !maModel.mbBorderUsed )
- maModel.mbBorderUsed = !rStyleData.mbBorderUsed || (maModel.mnBorderId != rStyleData.mnBorderId);
- if( !maModel.mbAreaUsed )
- maModel.mbAreaUsed = !rStyleData.mbAreaUsed || (maModel.mnFillId != rStyleData.mnFillId);
+ maModel.mbFontUsed = isCellXf() == getFlag( nUsedFlags, BIFF_XF_FONT_USED );
+ maModel.mbNumFmtUsed = isCellXf() == getFlag( nUsedFlags, BIFF_XF_NUMFMT_USED );
+ maModel.mbAlignUsed = isCellXf() == getFlag( nUsedFlags, BIFF_XF_ALIGN_USED );
+ maModel.mbProtUsed = isCellXf() == getFlag( nUsedFlags, BIFF_XF_PROT_USED );
+ maModel.mbBorderUsed = isCellXf() == getFlag( nUsedFlags, BIFF_XF_BORDER_USED );
+ maModel.mbAreaUsed = isCellXf() == getFlag( nUsedFlags, BIFF_XF_AREA_USED );
}
// ============================================================================
@@ -3133,11 +3206,12 @@ void StylesBuffer::importFormat( BiffInputStream& rStrm )
void StylesBuffer::importXf( BiffInputStream& rStrm )
{
XfRef xXf( new Xf( *this ) );
- // store XF in both lists (except BIFF2 which does not support cell styles)
- maCellXfs.push_back( xXf );
- if( getBiff() != BIFF2 )
- maStyleXfs.push_back( xXf );
xXf->importXf( rStrm );
+
+ XfRef xCellXf, xStyleXf;
+ (xXf->isCellXf() ? xCellXf : xStyleXf) = xXf;
+ maCellXfs.push_back( xCellXf );
+ maStyleXfs.push_back( xStyleXf );
}
void StylesBuffer::importStyle( BiffInputStream& rStrm )
@@ -3156,20 +3230,11 @@ void StylesBuffer::finalizeImport()
// borders and fills
maBorders.forEachMem( &Border::finalizeImport );
maFills.forEachMem( &Fill::finalizeImport );
-
- /* Style XFs and cell XFs. The BIFF format stores cell XFs and style XFs
- mixed in a single list. The import filter has stored the XFs in both
- lists to make the getStyleXf() function working correctly (e.g. for
- retrieving the default font, see getDefaultFont() function), except for
- BIFF2 which does not support cell styles at all. Therefore, if in BIFF
- filter mode, we do not need to finalize the cell styles list. */
- if( getFilterType() == FILTER_OOX )
- maStyleXfs.forEachMem( &Xf::finalizeImport );
+ // style XFs and cell XFs
+ maStyleXfs.forEachMem( &Xf::finalizeImport );
maCellXfs.forEachMem( &Xf::finalizeImport );
-
// built-in and user defined cell styles
maCellStyles.finalizeImport();
-
// differential formatting (for conditional formatting)
maDxfs.forEachMem( &Dxf::finalizeImport );
}
@@ -3184,6 +3249,11 @@ FontRef StylesBuffer::getFont( sal_Int32 nFontId ) const
return maFonts.get( nFontId );
}
+BorderRef StylesBuffer::getBorder( sal_Int32 nBorderId ) const
+{
+ return maBorders.get( nBorderId );
+}
+
XfRef StylesBuffer::getCellXf( sal_Int32 nXfId ) const
{
return maCellXfs.get( nXfId );
@@ -3225,6 +3295,56 @@ const FontModel& StylesBuffer::getDefaultFontModel() const
return xDefFont.get() ? xDefFont->getModel() : getTheme().getDefaultFontModel();
}
+bool StylesBuffer::equalBorders( sal_Int32 nBorderId1, sal_Int32 nBorderId2 ) const
+{
+ if( nBorderId1 == nBorderId2 )
+ return true;
+
+ switch( getFilterType() )
+ {
+ case FILTER_OOX:
+ // in OOXML, borders are assumed to be unique
+ return false;
+
+ case FILTER_BIFF:
+ {
+ // in BIFF, a new border entry has been created for every XF
+ const Border* pBorder1 = maBorders.get( nBorderId1 ).get();
+ const Border* pBorder2 = maBorders.get( nBorderId2 ).get();
+ return pBorder1 && pBorder2 && (pBorder1->getApiData() == pBorder2->getApiData());
+ }
+
+ case FILTER_UNKNOWN:
+ break;
+ }
+ return false;
+}
+
+bool StylesBuffer::equalFills( sal_Int32 nFillId1, sal_Int32 nFillId2 ) const
+{
+ if( nFillId1 == nFillId2 )
+ return true;
+
+ switch( getFilterType() )
+ {
+ case FILTER_OOX:
+ // in OOXML, fills are assumed to be unique
+ return false;
+
+ case FILTER_BIFF:
+ {
+ // in BIFF, a new fill entry has been created for every XF
+ const Fill* pFill1 = maFills.get( nFillId1 ).get();
+ const Fill* pFill2 = maFills.get( nFillId2 ).get();
+ return pFill1 && pFill2 && (pFill1->getApiData() == pFill2->getApiData());
+ }
+
+ case FILTER_UNKNOWN:
+ break;
+ }
+ return false;
+}
+
OUString StylesBuffer::getDefaultStyleName() const
{
return maCellStyles.getDefaultStyleName();
diff --git a/openssl/makefile.mk b/openssl/makefile.mk
index 66bfa31a145e..bfbff09d80fa 100644
--- a/openssl/makefile.mk
+++ b/openssl/makefile.mk
@@ -49,6 +49,7 @@ TARGET=openssl
OPENSSL_NAME=openssl-0.9.8l
TARFILE_NAME=$(OPENSSL_NAME)
+TARFILE_MD5=05a0ece1372392a2cf310ebb96333025
CONFIGURE_DIR=.
CONFIGURE_ACTION=config
diff --git a/package/util/exports.map b/package/util/exports.map
deleted file mode 100644
index 7e12f34d1b86..000000000000
--- a/package/util/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-PKG_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/packimages/pack/makefile.mk b/packimages/pack/makefile.mk
index b9b574cec1c8..c8feef308e2b 100644
--- a/packimages/pack/makefile.mk
+++ b/packimages/pack/makefile.mk
@@ -57,11 +57,7 @@ $(SORTED_LIST) : image-sort.lst
$(RES)$/img$/commandimagelist.ilst .PHONY : $(SORTED_LIST)
@@-$(MKDIR) $(RES)$/img
#+-$(RM) $@ $@.$(INPATH)
-.IF "$(use_shell)"!="4nt"
$(FIND) $(SOLARSRC)$/$(RSCDEFIMG)/res/commandimagelist -name "*.png" | sed "s#$(SOLARSRC)$/$(RSCDEFIMG)/res#%GLOBALRES%#" | $(PERL) $(SOLARENV)$/bin$/sort.pl > $@.$(INPATH)
-.ELSE # "$(use_shell)"!="4nt"
- $(FIND) $(SOLARSRC)$/$(RSCDEFIMG)/res/commandimagelist -name "*.png" | sed "s/$(SOLARSRC:s/\/./).$(RSCDEFIMG)\/res/%%GLOBALRES%%/" | $(PERL) $(SOLARENV)$/bin$/sort.pl > $@.$(INPATH)
-.ENDIF # "$(use_shell)"!="4nt"
$(PERL) $(SOLARENV)$/bin$/diffmv.pl $@.$(INPATH) $@
$(COMMONBIN)$/images.zip .PHONY: $(RES)$/img$/commandimagelist.ilst
diff --git a/postprocess/checkdeliver/checkdeliver.pl b/postprocess/checkdeliver/checkdeliver.pl
index 44c46ac7ebf9..d72aeb41e8c9 100644
--- a/postprocess/checkdeliver/checkdeliver.pl
+++ b/postprocess/checkdeliver/checkdeliver.pl
@@ -124,12 +124,6 @@ sub get_deliver_lists
$pattern .= "$milestoneext" if ( $milestoneext );
$pattern .= "/*/deliver.log";
- if ( $^O =~ /cygwin/i && $ENV{'USE_SHELL'} eq "4nt" )
- { # glob from cygwin's perl needs $pattern to use only slashes.
- # (DOS style path are OK as long as slashes are used.)
- $pattern =~ s/\\/\//g;
- }
-
@files = glob( $pattern );
# do not check modules not yet built
foreach my $exceptionpattern ( @exceptionmodlist ) {
diff --git a/postprocess/checkdeliver/makefile.mk b/postprocess/checkdeliver/makefile.mk
index a98a84fc8398..7f5665e7585b 100644
--- a/postprocess/checkdeliver/makefile.mk
+++ b/postprocess/checkdeliver/makefile.mk
@@ -38,5 +38,5 @@ TARGET=checkdeliver
ALLTAR : $(MISC)$/checkdeliver.done
$(MISC)$/checkdeliver.done .PHONY:
- $(PERL) checkdeliver.pl > $@ || cat $@
+ $(PERL) checkdeliver.pl && $(TOUCH) $@
diff --git a/postprocess/packregistry/makefile.mk b/postprocess/packregistry/makefile.mk
index fe550fd1b1f3..1f33001ae73a 100644
--- a/postprocess/packregistry/makefile.mk
+++ b/postprocess/packregistry/makefile.mk
@@ -470,7 +470,7 @@ MY_FILES_ogltrans = \
.END
.IF "$(GUIBASE)" == "WIN"
-MX_XCDS += $(MISC)/forcedefaultlanguage.xcd
+MY_XCDS += $(MISC)/forcedefaultlanguage.xcd
MY_DEPS_forcedefaultlanguage = main
MY_FILES_forcedefaultlanguage = \
$(MY_MOD)/org/openoffice/Office/Linguistic-ForceDefaultLanguage.xcu
diff --git a/postprocess/prj/build.lst b/postprocess/prj/build.lst
index 4c30df96f2c6..28b3dcd659d9 100644
--- a/postprocess/prj/build.lst
+++ b/postprocess/prj/build.lst
@@ -1,4 +1,4 @@
-po postprocess :: accessibility automation basctl bean fondu BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep cui dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker helpcontent2 hwpfilter io JAVAINSTALLER2:javainstaller2 lingucomponent MATHMLDTD:MathMLDTD ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins sccomp scp2 scripting sd setup_native slideshow starmath sw sysui testshl2 testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools JFREEREPORT:jfreereport REPORTBUILDER:reportbuilder reportdesign SDEXT:sdext SWEXT:swext uui writerfilter oox MYSQLC:mysqlc NULL
+po postprocess :: accessibility automation basctl bean fondu BINFILTER:binfilter chart2 configmgr CRASHREP:crashrep cui dbaccess desktop dtrans embeddedobj embedserv EPM:epm eventattacher extensions extras fileaccess filter forms fpicker helpcontent2 hwpfilter io JAVAINSTALLER2:javainstaller2 lingucomponent MATHMLDTD:MathMLDTD ODK:odk officecfg package padmin psprint_config remotebridges sc scaddins sccomp scp2 scripting sd setup_native slideshow starmath sw sysui testtools ucb UnoControls unoxml ure wizards xmerge xmlsecurity BITSTREAM_VERA_FONTS:bitstream_vera_fonts DICTIONARIES:dictionaries OOo:pyuno OOo:readlicense_oo SO:top unodevtools JFREEREPORT:jfreereport REPORTBUILDER:reportbuilder reportdesign SDEXT:sdext SWEXT:swext uui writerfilter oox MYSQLC:mysqlc NULL
po postprocess usr1 - all po_mkout NULL
po postprocess\checkxml nmake - all po_checkxml NULL
po postprocess\checkdeliver nmake - all po_checkdlv NULL
diff --git a/postprocess/rebase/rebase.pl b/postprocess/rebase/rebase.pl
index 01b6e361bfdf..5d40668dec73 100755
--- a/postprocess/rebase/rebase.pl
+++ b/postprocess/rebase/rebase.pl
@@ -204,8 +204,6 @@ sub rebase_again
my $fname = $misc_dir . "rebase_again.txt";
open ( FILES, "> $fname") or die "Error: cannot open file $fname";
my $filesstring = join " ", @$oldfiles_ref;
- # For W32-4nt-cygwin-perl: rebase_again.txt needs \.
- if ( "$ENV{USE_SHELL}" eq "4nt" ) { $filesstring =~ s/\//\\/g; }
print FILES "$filesstring\n";
close FILES;
$command .= "\@$fname";
@@ -269,8 +267,6 @@ sub rebase_initially
my $fname = $misc_dir . "rebase_new.txt";
open ( FILES, "> $fname") or die "Error: cannot open file $fname";
my $filesstring = join " ", @$files_ref;
- # For W32-4nt-cygwin-perl: rebase_new.txt needs \.
- if ( "$ENV{USE_SHELL}" eq "4nt" ) { $filesstring =~ s/\//\\/g; }
print FILES "$filesstring\n";
close FILES;
$command .= "\@$fname";
diff --git a/python/makefile.mk b/python/makefile.mk
index 93fdaa448a75..86d9835e8604 100644
--- a/python/makefile.mk
+++ b/python/makefile.mk
@@ -46,6 +46,7 @@ all:
TARFILE_NAME=Python-$(PYVERSION)
+TARFILE_MD5=e81c2f0953aa60f8062c05a4673f2be0
PATCH_FILES=\
Python-$(PYVERSION).patch \
Python-ssl.patch
@@ -78,7 +79,7 @@ CONFIGURE_ACTION=$(AUGMENT_LIBRARY_PATH) ./configure --prefix=$(MYCWD)/python-in
.IF "$(OS)$(CPU)" == "SOLARISI"
CONFIGURE_ACTION += --disable-ipv6
.ENDIF
-BUILD_ACTION=$(ENV_BUILD) $(GNUMAKE) -j$(EXTMAXPROCESS) ; $(GNUMAKE) install ; chmod -R ug+w $(MYCWD)/python-inst
+BUILD_ACTION=$(ENV_BUILD) $(GNUMAKE) -j$(EXTMAXPROCESS) && $(GNUMAKE) install && chmod -R ug+w $(MYCWD)/python-inst && chmod g+w Include
.ELSE
# ----------------------------------
# WINDOWS
@@ -93,7 +94,7 @@ python_LDFLAGS=-mno-cygwin -mthreads
python_LDFLAGS+=-shared-libgcc
.ENDIF
CONFIGURE_ACTION=./configure --prefix=$(MYCWD)/python-inst --enable-shared CC="$(CC:s/guw.exe //)" CXX="$(CXX:s/guw.exe //)" MACHDEP=MINGW32 LN="cp -p" CFLAGS="$(python_CFLAGS)" LDFLAGS="$(python_LDFLAGS)"
-BUILD_ACTION=$(ENV_BUILD) make ; make install
+BUILD_ACTION=$(ENV_BUILD) make && make install
.ELSE
#PYTHONPATH:=..$/Lib
#.EXPORT : PYTHONPATH
diff --git a/qadevOOo/prj/build.lst b/qadevOOo/prj/build.lst
index 73092cae2a5f..1594d5c59f57 100644
--- a/qadevOOo/prj/build.lst
+++ b/qadevOOo/prj/build.lst
@@ -2,3 +2,4 @@ qa qadevOOo : javaunohelper jurt ridljar unoil NULL
qa qadevOOo usr1 - all qa_mkout NULL
qa qadevOOo nmake - all qa_runner_ant_build NULL
qa qadevOOo\runner nmake - all qa_make_package qa_runner_ant_build NULL
+qa qadevOOo\qa\unoapi nmake - all qa_qa_unoapi NULL
diff --git a/qadevOOo/qa/unoapi/Test.java b/qadevOOo/qa/unoapi/Test.java
new file mode 100644
index 000000000000..e7921911d937
--- /dev/null
+++ b/qadevOOo/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.qadevOOo.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "qadevOOo.sce", "-xcl", "knownissues.xcl", "-cs",
+ connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/qadevOOo/qa/unoapi/makefile.mk b/qadevOOo/qa/unoapi/makefile.mk
index 61a2b81d60bf..d8d308c47d3b 100755
--- a/qadevOOo/qa/unoapi/makefile.mk
+++ b/qadevOOo/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,19 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=qadevOOo
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = qadevOOo
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/qadevOOo/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce qadevOOo.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
+.END
diff --git a/qadevOOo/runner/base/java_fat.java b/qadevOOo/runner/base/java_fat.java
index 1d75c48ed43e..4dd3ad51a817 100644
--- a/qadevOOo/runner/base/java_fat.java
+++ b/qadevOOo/runner/base/java_fat.java
@@ -219,6 +219,7 @@ public class java_fat implements TestBase
{
closeExistingOffice();
tEnv = getEnv(entry, m_aParams);
+ tCase = tEnv.getTestCase();
}
// MultiMethodTest ifc = null;
@@ -251,6 +252,7 @@ public class java_fat implements TestBase
{
closeExistingOffice();
tEnv = getEnv(entry, m_aParams);
+ tCase = tEnv.getTestCase();
if (countInterfaceTestRun < 2)
{
finished = false;
@@ -313,6 +315,9 @@ public class java_fat implements TestBase
}
System.out.println(counter + " of " + entries.length + " tests failed");
+ if (counter != 0) {
+ retValue = false;
+ }
}
closeExistingOffice();
@@ -455,17 +460,16 @@ public class java_fat implements TestBase
log.initialize(entry, logging);
tCase.setLogWriter((PrintWriter) log);
- TestEnvironment tEnv = null;
-
try
{
tCase.initializeTestCase(param);
- tEnv = tCase.getTestEnvironment(param);
+ return tCase.getTestEnvironment(param);
}
catch (com.sun.star.lang.DisposedException de)
{
System.out.println("Office disposed");
closeExistingOffice();
+ throw de;
}
catch (lib.StatusException e)
{
@@ -475,9 +479,8 @@ public class java_fat implements TestBase
entry.ErrorMsg = e.getMessage();
entry.hasErrorMsg = true;
+ throw e;
}
-
- return tEnv;
}
private void closeExistingOffice()
diff --git a/qadevOOo/runner/basicrunner/BasicTestCase.java b/qadevOOo/runner/basicrunner/BasicTestCase.java
index a84e996cc09e..1356badc12d7 100644
--- a/qadevOOo/runner/basicrunner/BasicTestCase.java
+++ b/qadevOOo/runner/basicrunner/BasicTestCase.java
@@ -159,11 +159,6 @@ public class BasicTestCase extends TestCase {
return tEnv;
}
-
- protected void cleanupTestEnvironment(TestParameters tParam,
- TestEnvironment tEnv, LogWriter log) {
- }
-
/**
* BASIC is told to dispose the test object.
* @param tParam The test parameters.
diff --git a/qadevOOo/runner/helper/ClParser.java b/qadevOOo/runner/helper/ClParser.java
index 7e54bccb174e..583aea56f977 100644
--- a/qadevOOo/runner/helper/ClParser.java
+++ b/qadevOOo/runner/helper/ClParser.java
@@ -26,6 +26,7 @@
************************************************************************/
package helper;
+import java.io.File;
import java.util.Properties;
import lib.TestParameters;
@@ -94,7 +95,8 @@ public class ClParser
if (pName.equals("TestDocumentPath"))
{
- System.setProperty("DOCPTH", pValue);
+ System.setProperty(
+ "DOCPTH", new File(pValue).getAbsolutePath());
}
else if (pName.equals(PropertyName.SRC_ROOT))
{
diff --git a/qadevOOo/runner/lib/TestCase.java b/qadevOOo/runner/lib/TestCase.java
index e5214f2edb40..6b8b960c3014 100644
--- a/qadevOOo/runner/lib/TestCase.java
+++ b/qadevOOo/runner/lib/TestCase.java
@@ -140,18 +140,16 @@ public abstract class TestCase {
message = e.toString();
System.out.println("Exception while getting Environment "+message);
e.printStackTrace();
+ cleanup(tParam, log);
}
return tEnv;
}
/**
* Disposes the <code>TestEnvironment</code> when it is not needed anymore.
- * The method calls <code>cleanupTestEnvironment()</code>.
*
* @param tEnv the environment to dispose
* @param tParam test parameters
- *
- * @see #cleanupTestEnvironment()
*/
public synchronized void disposeTestEnvironment( TestEnvironment tEnv,
TestParameters tParam ) {
@@ -174,22 +172,6 @@ public abstract class TestCase {
TestParameters tParam, PrintWriter log );
/**
- * Called while disposing a <code>TestEnvironment</code>. In the
- * implementation does nothing. Subclasses can override to clean up
- * the environments created by them.
- *
- * @param tParam test parameters
- * @param tEnv the environment to cleanup
- * @param log writer to log information while testing
- *
- * @see TestEnvironment
- * @see #disposeTestEnvironment()
- */
- protected void cleanupTestEnvironment( TestParameters Param,
- TestEnvironment tEnv, PrintWriter log ) {
- }
-
- /**
* @return the name of the object
*/
public String getObjectName() {
diff --git a/qadevOOo/runner/lib/TestEnvironment.java b/qadevOOo/runner/lib/TestEnvironment.java
index 877f681e3b3c..9848a5b2b633 100644
--- a/qadevOOo/runner/lib/TestEnvironment.java
+++ b/qadevOOo/runner/lib/TestEnvironment.java
@@ -38,23 +38,23 @@ import java.util.Hashtable;
* @see TestCase
*/
-public class TestEnvironment {
+public final class TestEnvironment {
/**
* Contains object relations - auxiliary objects associated with the
* tested object and required for testing.
*/
- protected Hashtable relations = new Hashtable(10);
+ private final Hashtable relations = new Hashtable(10);
/**
* An instance of the tested implementation object.
*/
- protected XInterface testObject;
+ private final XInterface testObject;
/**
* Indicates that the testObject is in invalid state and should notbe
* used for testing anymore.
*/
- protected boolean disposed = false;
+ private boolean disposed = false;
/**
* A reference to TestCase which has created the test environment.
diff --git a/qadevOOo/runner/org/openoffice/Runner.java b/qadevOOo/runner/org/openoffice/Runner.java
index 979fc527f775..63486ca9d3f3 100644
--- a/qadevOOo/runner/org/openoffice/Runner.java
+++ b/qadevOOo/runner/org/openoffice/Runner.java
@@ -182,8 +182,7 @@ public class Runner
}
}
- public static void main(String[] args)
- {
+ public static boolean run(String... args) {
System.out.println("OOoRunner Main() version from 20100125 (yyyymmdd)");
setStartTime(getTime());
@@ -246,12 +245,16 @@ public class Runner
if (!worked)
{
System.out.println("Job " + param.get("TestJob") + " failed");
- System.exit(-1);
}
else
{
System.out.println("Job " + param.get("TestJob") + " done");
- System.exit(0);
}
+ return worked;
+ }
+
+ public static void main(String[] args)
+ {
+ System.exit(run(args) ? 0 : -1);
}
}
diff --git a/qadevOOo/runner/util/AccessibilityTools.java b/qadevOOo/runner/util/AccessibilityTools.java
index c698839f3149..3fb964a2362b 100644
--- a/qadevOOo/runner/util/AccessibilityTools.java
+++ b/qadevOOo/runner/util/AccessibilityTools.java
@@ -51,18 +51,7 @@ public class AccessibilityTools {
}
public static XAccessible getAccessibleObject(XInterface xObject) {
- XAccessible xAccessible = null;
-
- try {
- xAccessible = (XAccessible) UnoRuntime.queryInterface(
- XAccessible.class, xObject);
- } catch (Exception e) {
- System.out.println(
- "caught exception while getting accessible object" + e);
- e.printStackTrace();
- }
-
- return xAccessible;
+ return UnoRuntime.queryInterface(XAccessible.class, xObject);
}
public static XWindow getCurrentContainerWindow(XMultiServiceFactory msf,
diff --git a/qadevOOo/runner/util/UITools.java b/qadevOOo/runner/util/UITools.java
index 1a639d18b252..c9562949632f 100644
--- a/qadevOOo/runner/util/UITools.java
+++ b/qadevOOo/runner/util/UITools.java
@@ -674,26 +674,6 @@ public class UITools {
}
}
-
- /**
- * fetch the active window which is on the top of the X-desktop
- * @return the active window
- * @throws java.lang.Exception if something fail
- */
- public XWindow getActiveTopWindow() throws java.lang.Exception
- {
- XInterface xToolKit = null;
- try {
- xToolKit = (XInterface) mMSF.createInstance("com.sun.star.awt.Toolkit") ;
- } catch (com.sun.star.uno.Exception e) {
- throw new Exception("Could not toolkit: " + e.toString());
- }
- XExtendedToolkit tk = (XExtendedToolkit)
- UnoRuntime.queryInterface(XExtendedToolkit.class, xToolKit);
- Object atw = tk.getActiveTopWindow();
- return (XWindow) UnoRuntime.queryInterface(XWindow.class, atw);
- }
-
/**
* fetch the window which is equal to the given <CODE>WindowName</CODE>
* @return the named window
diff --git a/qadevOOo/runner/util/utils.java b/qadevOOo/runner/util/utils.java
index 1467edf05375..1091824480a6 100644
--- a/qadevOOo/runner/util/utils.java
+++ b/qadevOOo/runner/util/utils.java
@@ -38,6 +38,8 @@ import java.util.ArrayList;
import java.io.RandomAccessFile;
import java.net.Socket;
import java.net.ServerSocket;
+import java.net.URI;
+import java.net.URISyntaxException;
import com.sun.star.beans.XPropertySet;
import com.sun.star.beans.Property;
@@ -364,18 +366,13 @@ public class utils {
*
*/
public static String getOfficeTemp(XMultiServiceFactory msf) {
- String tmpDir = util.utils.getUsersTempDir();
+ String url = getOfficeUserPath(msf) + "/test-temp/";
try {
- String tmp = (String) getOfficeSettingsValue(msf, "Temp");
- if (!tmp.endsWith(System.getProperty("file.separator"))) {
- tmp += System.getProperty("file.separator");
- }
- tmpDir = getFullURL(tmp);
- } catch (Exception e) {
- System.out.println("Couldn't get Office TEMP");
- e.printStackTrace();
+ new File(new URI(url)).mkdir();
+ } catch (URISyntaxException e) {
+ throw new RuntimeException(e);
}
- return tmpDir;
+ return url;
}
/**
diff --git a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java
index 5279ed5b79d9..c5e302451c21 100644
--- a/qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java
+++ b/qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java
@@ -167,34 +167,53 @@ public class _XAccessibleComponent extends MultiMethodTest {
boolean locRes = true;
for (int x = -1; x <= bounds.Width; x++) {
- locRes &= !oObj.containsPoint(new Point(x, -1));
- locRes &= !oObj.containsPoint(
- new Point(x, bounds.Height + bounds.Y));
+ if (oObj.containsPoint(new Point(x, -1))) {
+ log.println(
+ "Outer upper and lower bounds CONTAIN some component point"
+ + " (" + x + ", -1) - FAILED");
+ locRes = false;
+ break;
+ }
+ if (oObj.containsPoint(new Point(x, bounds.Height + bounds.Y))) {
+ log.println(
+ "Outer upper and lower bounds CONTAIN some component point"
+ + " (" + x + ", " + bounds.Height + bounds.Y
+ + ") - FAILED");
+ locRes = false;
+ break;
+ }
}
if (locRes) {
log.println("Outer upper and lower bounds contain no component " +
"points - OK");
} else {
- log.println("Outer upper and lower bounds CONTAIN some component " +
- "points - FAILED");
result = false;
}
locRes = true;
for (int y = -1; y <= bounds.Height; y++) {
- locRes &= !oObj.containsPoint(new Point(-1, y));
- locRes &= !oObj.containsPoint(
- new Point(bounds.X + bounds.Width, y));
+ if (oObj.containsPoint(new Point(-1, y))) {
+ log.println(
+ "Outer left and right bounds CONTAIN some component point"
+ + " (-1, " + y + ") - FAILED");
+ locRes = false;
+ break;
+ }
+ if (oObj.containsPoint(new Point(bounds.X + bounds.Width, y))) {
+ log.println(
+ "Outer left and right bounds CONTAIN some component point"
+ + " (" + bounds.X + bounds.Width + ", " + y + ") - FAILED");
+ locRes = false;
+ break;
+ }
}
if (locRes) {
log.println("Outer left and right bounds contain no component " +
"points - OK");
} else {
- log.println("Outer left and right bounds CONTAIN some component " +
- "points - FAILED");
result = false;
}
diff --git a/qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java b/qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java
index c96d42e91215..c4e80ee8a1d7 100644
--- a/qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java
+++ b/qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java
@@ -27,17 +27,18 @@
package ifc.awt;
+import com.sun.star.awt.AsyncCallback;
import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XCallback;
+import com.sun.star.awt.XMessageBox;
+import com.sun.star.awt.XMessageBoxFactory;
+import com.sun.star.awt.XRequestCallback;
+import com.sun.star.awt.XWindow;
import com.sun.star.awt.XWindowPeer;
import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.UnoRuntime;
import lib.MultiMethodTest;
-
-import com.sun.star.awt.XMessageBoxFactory;
-import com.sun.star.awt.XWindow;
-import com.sun.star.frame.XModel;
-import java.io.PrintWriter;
-import lib.Status;
-import lib.StatusException;
import util.UITools;
/**
@@ -50,81 +51,58 @@ import util.UITools;
* @see com.sun.star.awt.XMessageBoxFactory
*/
public class _XMessageBoxFactory extends MultiMethodTest {
-
public XMessageBoxFactory oObj = null;
- private XWindowPeer the_win = null;
- private XModel xModel = null;
-
- /**
- * Retrieves object relation.
- * @throws StatusException If the relation not found.
- */
- public void before() {
- the_win = (XWindowPeer) tEnv.getObjRelation("WINPEER");
- if (the_win == null)
- throw new StatusException(Status.failed("Relation 'WINPEER' not found")) ;
- xModel = (XModel) tEnv.getObjRelation("XModel");
- if (xModel == null)
- throw new StatusException(Status.failed("Relation 'xModel' not found")) ;
-
- }
-
-
- /**
- * As <code>execute()</code> method is a blocking call,
- * then it must be executed in a separate thread. This
- * thread class just call <code>execute</code> method
- * of tested object.
- */
- protected Thread execThread = new Thread(
- new Runnable() {
- public void run() {
- Rectangle rect = new Rectangle(0,0,100,100);
- oObj.createMessageBox(the_win, rect, "errorbox", 1, "The Title", "The Message") ;
- }
- }) ;
-
- /**
- * Starts the execution of MessageBox in a separate thread.
- * As this call is blocking then the thread execution
- * must not be finished. <p>
- * Has <b>OK</b> status if thread wasn't finished and
- * no exceptions occured.
- */
public void _createMessageBox() {
- boolean result = true ;
-
- log.println("Starting createMessageBox() thread ...") ;
- execThread.start() ;
-
- try {
- execThread.join(200) ;
- } catch (InterruptedException e) {
- log.println("createMessageBox() thread was interrupted") ;
- result = false ;
- }
- result &= execThread.isAlive() ;
-
- UITools oUITools = new UITools((XMultiServiceFactory) tParam.getMSF(), xModel);
-
- XWindow xWindow = null;
- try{
- xWindow = oUITools.getActiveTopWindow();
-
- oUITools.printAccessibleTree(log, tParam.getBool("DebugIsActive"));
-
- oUITools.clickButton("OK");
-
- } catch (java.lang.Exception e) {
- e.printStackTrace((PrintWriter) log);
- log.println("Could not cklick 'OK' on messagebox: " + e.toString());
- result = false;
+ final XMessageBox mb = oObj.createMessageBox(
+ (XWindowPeer) tEnv.getObjRelation("WINPEER"),
+ new Rectangle(0, 0, 100, 100), "errorbox", 1, "The Title",
+ "The Message");
+ final UITools tools = new UITools(
+ (XMultiServiceFactory) tParam.getMSF(),
+ UnoRuntime.queryInterface(XWindow.class, mb));
+ final State[] state = new State[] { State.NONE };
+ XRequestCallback async = AsyncCallback.create(
+ tParam.getComponentContext());
+ async.addCallback(
+ new XCallback() {
+ public void notify(Object aData) {
+ mb.execute();
+ }
+ },
+ Any.VOID);
+ async.addCallback(
+ new XCallback() {
+ public void notify(Object aData) {
+ boolean ok = true;
+ try {
+ tools.clickButton("OK");
+ } catch (RuntimeException e) {
+ throw e;
+ } catch (Exception e) {
+ e.printStackTrace();
+ ok = false;
+ }
+ synchronized (state) {
+ state[0] = ok ? State.GOOD : State.BAD;
+ state.notifyAll();
+ }
+ }
+ },
+ Any.VOID);
+ boolean ok;
+ synchronized (state) {
+ while (state[0] == State.NONE) {
+ try {
+ state.wait();
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ ok = state[0] == State.GOOD;
}
-
- tRes.tested("createMessageBox()", result) ;
+ tRes.tested("createMessageBox()", ok);
}
+ private enum State { NONE, GOOD, BAD };
}
-
-
diff --git a/qadevOOo/tests/java/ifc/awt/_XSystemChildFactory.java b/qadevOOo/tests/java/ifc/awt/_XSystemChildFactory.java
new file mode 100644
index 000000000000..fec9281871eb
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/awt/_XSystemChildFactory.java
@@ -0,0 +1,40 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 ifc.awt;
+
+import com.sun.star.awt.XSystemChildFactory;
+import lib.MultiMethodTest;
+
+public final class _XSystemChildFactory extends MultiMethodTest {
+ public XSystemChildFactory oObj;
+
+ public void _createSystemChild() {
+ //TODO
+ tRes.tested("createSystemChild()", true);
+ }
+}
diff --git a/qadevOOo/tests/java/ifc/awt/_XToolkit.java b/qadevOOo/tests/java/ifc/awt/_XToolkit.java
index 20b89b88ace5..8824c3bba9ac 100644
--- a/qadevOOo/tests/java/ifc/awt/_XToolkit.java
+++ b/qadevOOo/tests/java/ifc/awt/_XToolkit.java
@@ -35,6 +35,8 @@ import com.sun.star.awt.XDevice;
import com.sun.star.awt.XRegion;
import com.sun.star.awt.XToolkit;
import com.sun.star.awt.XWindowPeer;
+import com.sun.star.lang.XComponent;
+import com.sun.star.uno.UnoRuntime;
/**
* Testing <code>com.sun.star.awt.XToolkit</code>
@@ -87,6 +89,7 @@ public class _XToolkit extends MultiMethodTest {
if (cWin == null) {
log.println("createWindow() create a NULL Object");
} else {
+ UnoRuntime.queryInterface(XComponent.class, cWin).dispose();
res = true;
}
} catch (com.sun.star.lang.IllegalArgumentException ex) {
@@ -111,6 +114,8 @@ public class _XToolkit extends MultiMethodTest {
if ( (cWins[0] == null) || (cWins[1] == null) ) {
log.println("createWindows() creates NULL Windows");
} else {
+ UnoRuntime.queryInterface(XComponent.class, cWins[0]).dispose();
+ UnoRuntime.queryInterface(XComponent.class, cWins[1]).dispose();
res = true;
}
} catch (com.sun.star.lang.IllegalArgumentException ex) {
diff --git a/qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java b/qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java
index 0d1f43b8e0c5..552a012f1161 100644
--- a/qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java
+++ b/qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java
@@ -55,9 +55,8 @@ public class _XMultiPropertyStates extends MultiMethodTest {
public XMultiPropertyStates oObj = null;
- Object[] defaults = null;
- PropertyState[] states = null;
- String[] names = null;
+ private PropertyState[] states = null;
+ private String[] names = null;
public void before() {
names = (String[]) tEnv.getObjRelation("PropertyNames");
@@ -83,7 +82,7 @@ public class _XMultiPropertyStates extends MultiMethodTest {
public void _getPropertyDefaults() {
boolean result = false;
try {
- defaults = oObj.getPropertyDefaults(names);
+ Object[] defaults = oObj.getPropertyDefaults(names);
result = (defaults != null) && defaults.length == names.length;
log.println("Number of default values: " + defaults.length);
} catch (com.sun.star.beans.UnknownPropertyException e) {
diff --git a/qadevOOo/tests/java/ifc/beans/_XPropertySet.java b/qadevOOo/tests/java/ifc/beans/_XPropertySet.java
index 0690dd3713cc..54c1f3431bbf 100644
--- a/qadevOOo/tests/java/ifc/beans/_XPropertySet.java
+++ b/qadevOOo/tests/java/ifc/beans/_XPropertySet.java
@@ -64,7 +64,7 @@ public class _XPropertySet extends MultiMethodTest {
/**
* Flag that indicates change listener was called.
*/
- boolean propertyChanged = false;
+ private boolean propertyChanged = false;
/**
* Listener that must be called on bound property changing.
@@ -79,12 +79,12 @@ public class _XPropertySet extends MultiMethodTest {
public void disposing (EventObject obj) {}
};
- XPropertyChangeListener PClistener = new MyChangeListener();
+ private final XPropertyChangeListener PClistener = new MyChangeListener();
/**
* Flag that indicates veto listener was called.
*/
- boolean vetoableChanged = false;
+ private boolean vetoableChanged = false;
/**
* Listener that must be called on constrained property changing.
@@ -99,19 +99,19 @@ public class _XPropertySet extends MultiMethodTest {
public void disposing (EventObject obj) {}
};
- XVetoableChangeListener VClistener = new MyVetoListener();
+ private final XVetoableChangeListener VClistener = new MyVetoListener();
/**
* Structure that collects three properties of each type to test :
* Constrained, Bound and Normal.
*/
- public class PropsToTest {
+ private final class PropsToTest {
String constrained = null;
String bound = null;
String normal = null;
}
- PropsToTest PTT = new PropsToTest();
+ private final PropsToTest PTT = new PropsToTest();
/**
* Tests method <code>getPropertySetInfo</code>. After test completed
@@ -470,7 +470,7 @@ public class _XPropertySet extends MultiMethodTest {
* Gets the properties being tested. Searches and stores by one
* property of each kind (Bound, Vetoable, Normal).
*/
- public PropsToTest getPropsToTest(XPropertySetInfo xPSI) {
+ public void getPropsToTest(XPropertySetInfo xPSI) {
Property[] properties = xPSI.getProperties();
String bound = "";
@@ -544,9 +544,6 @@ public class _XPropertySet extends MultiMethodTest {
//get a random normal property
PTT.normal=getRandomString(normal);
-
- return PTT;
-
}
/**
diff --git a/qadevOOo/tests/java/ifc/sheet/_XRangeSelection.java b/qadevOOo/tests/java/ifc/sheet/_XRangeSelection.java
index 8df7366842fd..bb61dbe55049 100644
--- a/qadevOOo/tests/java/ifc/sheet/_XRangeSelection.java
+++ b/qadevOOo/tests/java/ifc/sheet/_XRangeSelection.java
@@ -250,10 +250,6 @@ public class _XRangeSelection extends MultiMethodTest {
throw new StatusException("Could not create 'com.sun.star.awt.Toolkit'.", e);
}
XExtendedToolkit xExtendedToolkit = (XExtendedToolkit)UnoRuntime.queryInterface(XExtendedToolkit.class, aToolkit);
- AccessibilityTools accTools = new AccessibilityTools();
- XWindow xWindow = (XWindow)UnoRuntime.queryInterface(XWindow.class, xExtendedToolkit.getActiveTopWindow());
- XAccessible xRoot = accTools.getAccessibleObject(xWindow);
-
XTopWindow tw = null;
XAccessibleComponent xAccessibleComponent = null;
@@ -286,7 +282,7 @@ public class _XRangeSelection extends MultiMethodTest {
return null;
}
- xWindow = (XWindow)UnoRuntime.queryInterface(XWindow.class, tw);
+ XWindow xWindow = (XWindow)UnoRuntime.queryInterface(XWindow.class, tw);
Rectangle posSize = xWindow.getPosSize();
// compare the center point with the dimensions of the current top window
diff --git a/qadevOOo/tests/java/mod/_basctl/AccessibleShape.java b/qadevOOo/tests/java/mod/_basctl/AccessibleShape.java
index 39833520920f..1dd3feb3e4ec 100644
--- a/qadevOOo/tests/java/mod/_basctl/AccessibleShape.java
+++ b/qadevOOo/tests/java/mod/_basctl/AccessibleShape.java
@@ -32,7 +32,6 @@ import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
import com.sun.star.awt.PosSize;
import com.sun.star.awt.Rectangle;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
import com.sun.star.beans.PropertyValue;
import com.sun.star.frame.XDesktop;
@@ -58,7 +57,6 @@ public class AccessibleShape extends TestCase {
XTextDocument xTextDoc = null;
XInterface oObj = null;
- XWindow basicIDE = null;
protected void cleanup(TestParameters Param, PrintWriter log) {
log.println("Cleaning up");
@@ -115,15 +113,9 @@ public class AccessibleShape extends TestCase {
throw new StatusException("Couldn't get toolkit", e );
}
-
- XExtendedToolkit tk = (XExtendedToolkit)
- UnoRuntime.queryInterface(XExtendedToolkit.class,oObj);
-
-
AccessibilityTools at = new AccessibilityTools();
- basicIDE = (XWindow)
- UnoRuntime.queryInterface(XWindow.class,tk.getActiveTopWindow());
+ final XWindow basicIDE = xFrame.getContainerWindow();
XAccessible xRoot = at.getAccessibleObject(basicIDE);
@@ -138,23 +130,19 @@ public class AccessibleShape extends TestCase {
tEnv.addObjRelation("Destroy", Boolean.TRUE);
- final XExtendedToolkit subtk = tk;
-
tEnv.addObjRelation("EventProducer",
new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
public void fireEvent() {
- XWindow xWin = (XWindow) UnoRuntime.queryInterface(
- XWindow.class, subtk.getActiveTopWindow());
- Rectangle oldPosSize = xWin.getPosSize();
+ Rectangle oldPosSize = basicIDE.getPosSize();
Rectangle newPosSize = new Rectangle();
newPosSize.Width = oldPosSize.Width/2;
newPosSize.Height = oldPosSize.Height/2;
newPosSize.X = oldPosSize.X + 20;
newPosSize.Y = oldPosSize.Y + 20;
- xWin.setPosSize(newPosSize.X, newPosSize.Y, newPosSize.Width,
+ basicIDE.setPosSize(newPosSize.X, newPosSize.Y, newPosSize.Width,
newPosSize.Height, PosSize.POSSIZE);
utils.shortWait(1000);
- xWin.setPosSize(oldPosSize.X, oldPosSize.Y, oldPosSize.Width,
+ basicIDE.setPosSize(oldPosSize.X, oldPosSize.Y, oldPosSize.Width,
oldPosSize.Height, PosSize.POSSIZE);
}
});
diff --git a/qadevOOo/tests/java/mod/_dbaccess/ConnectionLineAccessibility.java b/qadevOOo/tests/java/mod/_dbaccess/ConnectionLineAccessibility.java
index 27efe8cf0447..c515ffaf8c01 100644
--- a/qadevOOo/tests/java/mod/_dbaccess/ConnectionLineAccessibility.java
+++ b/qadevOOo/tests/java/mod/_dbaccess/ConnectionLineAccessibility.java
@@ -39,12 +39,12 @@ import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
import com.sun.star.awt.PosSize;
import com.sun.star.awt.Rectangle;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
import com.sun.star.beans.PropertyValue;
import com.sun.star.beans.XPropertySet;
import com.sun.star.container.XNameAccess;
import com.sun.star.container.XNameContainer;
+import com.sun.star.frame.XModel;
import com.sun.star.frame.XStorable;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiServiceFactory;
@@ -347,12 +347,8 @@ public class ConnectionLineAccessibility extends TestCase
util.utils.shortWait(1000);
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface(
- XExtendedToolkit.class, toolkit);
-
- Object atw = tk.getActiveTopWindow();
-
- xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class, atw);
+ xWindow = UnoRuntime.queryInterface(XModel.class, QueryComponent).
+ getCurrentController().getFrame().getContainerWindow();
XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
diff --git a/qadevOOo/tests/java/mod/_dbaccess/JoinViewAccessibility.java b/qadevOOo/tests/java/mod/_dbaccess/JoinViewAccessibility.java
index 5644fd3e995e..8ec0c0db1bfa 100644
--- a/qadevOOo/tests/java/mod/_dbaccess/JoinViewAccessibility.java
+++ b/qadevOOo/tests/java/mod/_dbaccess/JoinViewAccessibility.java
@@ -39,12 +39,12 @@ import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
import com.sun.star.awt.PosSize;
import com.sun.star.awt.Rectangle;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
import com.sun.star.beans.PropertyValue;
import com.sun.star.beans.XPropertySet;
import com.sun.star.container.XNameAccess;
import com.sun.star.container.XNameContainer;
+import com.sun.star.frame.XModel;
import com.sun.star.frame.XStorable;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiServiceFactory;
@@ -326,12 +326,8 @@ public class JoinViewAccessibility extends TestCase {
QueryComponent = DesktopTools.loadDoc ((XMultiServiceFactory) Param.getMSF (),".component:DB/QueryDesign",loadProps);
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface (
- XExtendedToolkit.class, toolkit);
-
- Object atw = tk.getActiveTopWindow ();
-
- xWindow = (XWindow) UnoRuntime.queryInterface (XWindow.class, atw);
+ xWindow = UnoRuntime.queryInterface(XModel.class, QueryComponent).
+ getCurrentController().getFrame().getContainerWindow();
XAccessible xRoot = AccessibilityTools.getAccessibleObject (xWindow);
diff --git a/qadevOOo/tests/java/mod/_dbaccess/TableWindowAccessibility.java b/qadevOOo/tests/java/mod/_dbaccess/TableWindowAccessibility.java
index 1617f34cbbef..4c39c1590890 100644
--- a/qadevOOo/tests/java/mod/_dbaccess/TableWindowAccessibility.java
+++ b/qadevOOo/tests/java/mod/_dbaccess/TableWindowAccessibility.java
@@ -39,12 +39,12 @@ import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
import com.sun.star.accessibility.XAccessibleComponent;
import com.sun.star.awt.Point;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
import com.sun.star.beans.PropertyValue;
import com.sun.star.beans.XPropertySet;
import com.sun.star.container.XNameAccess;
import com.sun.star.container.XNameContainer;
+import com.sun.star.frame.XModel;
import com.sun.star.frame.XStorable;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiServiceFactory;
@@ -300,12 +300,8 @@ public class TableWindowAccessibility extends TestCase {
QueryComponent = DesktopTools.loadDoc((XMultiServiceFactory) Param.getMSF (),".component:DB/QueryDesign",loadProps);
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface(
- XExtendedToolkit.class, toolkit);
-
- Object atw = tk.getActiveTopWindow();
-
- xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class, atw);
+ xWindow = UnoRuntime.queryInterface(XModel.class, QueryComponent).
+ getCurrentController().getFrame().getContainerWindow();
XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
diff --git a/qadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManager.java b/qadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManager.java
index c4a81bb06d8d..7b30a94b3293 100755
--- a/qadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManager.java
+++ b/qadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManager.java
@@ -70,18 +70,21 @@ public class ModuleUIConfigurationManager extends TestCase {
*/
protected void cleanup(TestParameters tParam, PrintWriter log) {
log.println(" disposing xTextDoc ");
-
- try {
- XCloseable closer = (XCloseable) UnoRuntime.queryInterface(
- XCloseable.class, xTextDoc);
- closer.close(true);
- } catch (com.sun.star.util.CloseVetoException e) {
- log.println("couldn't close document");
- } catch (com.sun.star.lang.DisposedException e) {
- log.println("couldn't close document");
+ if (xTextDoc != null) {
+ try {
+ XCloseable closer = (XCloseable) UnoRuntime.queryInterface(
+ XCloseable.class, xTextDoc);
+ closer.close(true);
+ } catch (com.sun.star.util.CloseVetoException e) {
+ log.println("couldn't close document");
+ } catch (com.sun.star.lang.DisposedException e) {
+ log.println("couldn't close document");
+ }
}
log.println(" disposing storage");
- xStore.dispose();
+ if (xStore != null) {
+ xStore.dispose();
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_sd/DrawController_DrawView.java b/qadevOOo/tests/java/mod/_sd/DrawController_DrawView.java
index 3243ec48e3c5..be510ff1f98c 100644
--- a/qadevOOo/tests/java/mod/_sd/DrawController_DrawView.java
+++ b/qadevOOo/tests/java/mod/_sd/DrawController_DrawView.java
@@ -47,7 +47,6 @@ import com.sun.star.drawing.XDrawPagesSupplier;
import com.sun.star.drawing.XShape;
import com.sun.star.drawing.XShapes;
import com.sun.star.frame.XController;
-import com.sun.star.frame.XDesktop;
import com.sun.star.frame.XFrame;
import com.sun.star.frame.XModel;
import com.sun.star.lang.XComponent;
@@ -87,23 +86,10 @@ import com.sun.star.util.XModifiable;
* @see ifc.drawing._XDrawView
*/
public class DrawController_DrawView extends TestCase {
- static XDesktop the_Desk;
static XComponent xDrawDoc;
static XComponent xSecondDrawDoc;
/**
- * Creates the instance of the service
- * <code>com.sun.star.frame.Desktop</code>.
- * @see com.sun.star.frame.Desktop
- */
- protected void initialize(TestParameters Param, PrintWriter log) {
- the_Desk = (XDesktop)
- UnoRuntime.queryInterface(
- XDesktop.class, DesktopTools.createDesktop(
- (XMultiServiceFactory)Param.getMSF()) );
- }
-
- /**
* Called while disposing a <code>TestEnvironment</code>.
* Disposes Impress documents.
* @param tParam test parameters
@@ -216,9 +202,10 @@ public class DrawController_DrawView extends TestCase {
XModel aModel2 = (XModel)
UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
+ XController aController2 = aModel2.getCurrentController();
XWindow anotherWindow = (XWindow) UnoRuntime.queryInterface(
- XWindow.class,aModel2.getCurrentController());
+ XWindow.class, aController2);
log.println( "creating a new environment for impress view object" );
TestEnvironment tEnv = new TestEnvironment( oObj );
@@ -276,16 +263,13 @@ public class DrawController_DrawView extends TestCase {
tEnv.addObjRelation("XUserInputInterception.XModel", aModel);
- XFrame the_frame = the_Desk.getCurrentFrame();
+ XFrame the_frame = aController2.getFrame();
tEnv.addObjRelation("Frame", the_frame);
- aModel = (XModel)
- UnoRuntime.queryInterface(XModel.class, xSecondDrawDoc);
//Adding ObjRelations for XController
- tEnv.addObjRelation("SecondModel", aModel);
+ tEnv.addObjRelation("SecondModel", aModel2);
- XController secondController = aModel.getCurrentController();
- tEnv.addObjRelation("SecondController", secondController);
+ tEnv.addObjRelation("SecondController", aController2);
tEnv.addObjRelation("XDispatchProvider.URL",
"slot:27009");
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBox.java b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBox.java
index 4f6d849844d4..358819ee733d 100644
--- a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBox.java
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBox.java
@@ -38,7 +38,6 @@ import util.SOfficeFactory;
import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
import com.sun.star.beans.PropertyValue;
import com.sun.star.frame.XController;
@@ -158,21 +157,9 @@ public class AccessibleBrowseBox extends TestCase {
shortWait();
- try {
- oObj = (XInterface) ((XMultiServiceFactory) tParam.getMSF()).createInstance("com.sun.star.awt.Toolkit");
- } catch (com.sun.star.uno.Exception e) {
- log.println("Couldn't get toolkit");
- e.printStackTrace(log);
- throw new StatusException("Couldn't get toolkit", e);
- }
-
-
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface(XExtendedToolkit.class, oObj);
-
-
AccessibilityTools at = new AccessibilityTools();
- XWindow xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class, tk.getActiveTopWindow());
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
XAccessible xRoot = at.getAccessibleObject(xWindow);
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderBar.java b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderBar.java
index 45b9d3ed19d3..b953abde994e 100644
--- a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderBar.java
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderBar.java
@@ -43,7 +43,6 @@ import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
import com.sun.star.accessibility.XAccessibleComponent;
import com.sun.star.awt.Point;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
import com.sun.star.beans.PropertyValue;
import com.sun.star.frame.XController;
@@ -204,20 +203,9 @@ public class AccessibleBrowseBoxHeaderBar extends TestCase {
XInterface oObj = null;
- try {
- oObj = (XInterface) ( (XMultiServiceFactory) tParam.getMSF())
- .createInstance("com.sun.star.awt.Toolkit");
- } catch (com.sun.star.uno.Exception e) {
- throw new StatusException("Couldn't get toolkit", e);
- }
-
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface(
- XExtendedToolkit.class, oObj);
-
AccessibilityTools at = new AccessibilityTools();
- XWindow xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class,
- tk.getActiveTopWindow());
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
XAccessible xRoot = at.getAccessibleObject(xWindow);
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderCell.java b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderCell.java
index be46f92503ee..2e7cb013e2ee 100644
--- a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderCell.java
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderCell.java
@@ -40,7 +40,6 @@ import util.SOfficeFactory;
import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
import com.sun.star.beans.PropertyValue;
import com.sun.star.frame.XController;
@@ -202,21 +201,9 @@ public class AccessibleBrowseBoxHeaderCell extends TestCase {
throw new StatusException("Could not select Biblio-Database", ex);
}
-
- try {
- oObj = (XInterface) ((XMultiServiceFactory)tParam.getMSF()).createInstance
- ("com.sun.star.awt.Toolkit");
- } catch (com.sun.star.uno.Exception e) {
- throw new StatusException("Couldn't get toolkit", e );
- }
-
- XExtendedToolkit tk = (XExtendedToolkit)
- UnoRuntime.queryInterface(XExtendedToolkit.class, oObj);
-
AccessibilityTools at = new AccessibilityTools();
- XWindow xWindow = (XWindow)
- UnoRuntime.queryInterface(XWindow.class, tk.getActiveTopWindow());
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
XAccessible xRoot = at.getAccessibleObject(xWindow);
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTable.java b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTable.java
index 5c0b40a2c944..6842fd6da8e2 100644
--- a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTable.java
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTable.java
@@ -39,7 +39,6 @@ import util.SOfficeFactory;
import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
import com.sun.star.beans.PropertyValue;
import com.sun.star.frame.XController;
@@ -199,22 +198,9 @@ public class AccessibleBrowseBoxTable extends TestCase {
XInterface oObj = null;
- try {
- oObj = (XInterface)((XMultiServiceFactory)tParam.getMSF())
- .createInstance("com.sun.star.awt.Toolkit");
- } catch (com.sun.star.uno.Exception e) {
- log.println("Couldn't get toolkit");
- e.printStackTrace(log);
- throw new StatusException("Couldn't get toolkit", e);
- }
-
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface(
- XExtendedToolkit.class, oObj);
-
AccessibilityTools at = new AccessibilityTools();
- XWindow xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class,
- tk.getActiveTopWindow());
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
XAccessible xRoot = at.getAccessibleObject(xWindow);
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTableCell.java b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTableCell.java
index 83d74f295f4c..973f0bf9c324 100644
--- a/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTableCell.java
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTableCell.java
@@ -39,7 +39,6 @@ import util.SOfficeFactory;
import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
import com.sun.star.beans.PropertyValue;
import com.sun.star.frame.XController;
@@ -191,26 +190,9 @@ public class AccessibleBrowseBoxTableCell extends TestCase {
shortWait();
- try {
- oObj = (XInterface) ((XMultiServiceFactory)tParam.getMSF()).createInstance
- ("com.sun.star.awt.Toolkit") ;
- xInit.initialize(params);
- } catch (com.sun.star.uno.Exception e) {
- log.println("Couldn't get toolkit");
- e.printStackTrace(log);
- throw new StatusException("Couldn't get toolkit", e );
- }
-
- shortWait();
-
- XExtendedToolkit tk = (XExtendedToolkit)
- UnoRuntime.queryInterface(XExtendedToolkit.class,oObj);
-
-
AccessibilityTools at = new AccessibilityTools();
- XWindow xWindow = (XWindow)
- UnoRuntime.queryInterface(XWindow.class,tk.getActiveTopWindow());
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
XAccessible xRoot = at.getAccessibleObject(xWindow);
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleTabBar.java b/qadevOOo/tests/java/mod/_svtools/AccessibleTabBar.java
index 903b9341eb2a..c646aa1eaf25 100644
--- a/qadevOOo/tests/java/mod/_svtools/AccessibleTabBar.java
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleTabBar.java
@@ -38,8 +38,8 @@ import util.SOfficeFactory;
import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
import com.sun.star.awt.PosSize;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.uno.UnoRuntime;
@@ -108,23 +108,12 @@ public class AccessibleTabBar extends TestCase {
XInterface oObj = null;
- try {
- oObj = (XInterface) msf.createInstance("com.sun.star.awt.Toolkit");
- } catch (com.sun.star.uno.Exception e) {
- log.println("Couldn't get toolkit");
- e.printStackTrace(log);
- throw new StatusException("Couldn't get toolkit", e);
- }
-
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface(
- XExtendedToolkit.class, oObj);
-
AccessibilityTools at = new AccessibilityTools();
shortWait();
- XWindow xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class,
- tk.getActiveTopWindow());
+ XWindow xWindow = UnoRuntime.queryInterface(XModel.class, xDoc).
+ getCurrentController().getFrame().getContainerWindow();
XAccessible xRoot = at.getAccessibleObject(xWindow);
at.printAccessibleTree(log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBox.java b/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBox.java
index 2dfaa15448ad..6134bd1a3aef 100644
--- a/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBox.java
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBox.java
@@ -39,7 +39,6 @@ import util.SOfficeFactory;
import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
import com.sun.star.beans.PropertyValue;
import com.sun.star.frame.XController;
@@ -179,22 +178,9 @@ public class AccessibleTreeListBox extends TestCase {
XInterface oObj = null;
- try {
- oObj = (XInterface) ((XMultiServiceFactory)tParam.getMSF()).createInstance
- ("com.sun.star.awt.Toolkit") ;
- } catch (com.sun.star.uno.Exception e) {
- log.println("Couldn't get toolkit");
- e.printStackTrace(log);
- throw new StatusException("Couldn't get toolkit", e );
- }
-
- XExtendedToolkit tk = (XExtendedToolkit)
- UnoRuntime.queryInterface(XExtendedToolkit.class, oObj);
-
AccessibilityTools at = new AccessibilityTools();
- XWindow xWindow = (XWindow)
- UnoRuntime.queryInterface(XWindow.class, tk.getActiveTopWindow());
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
XAccessible xRoot = at.getAccessibleObject(xWindow);
diff --git a/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBoxEntry.java b/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBoxEntry.java
index 7d1014d7ec4d..c4ee3562d720 100644
--- a/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBoxEntry.java
+++ b/qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBoxEntry.java
@@ -39,7 +39,6 @@ import util.SOfficeFactory;
import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
import com.sun.star.beans.PropertyValue;
import com.sun.star.frame.XController;
@@ -231,24 +230,11 @@ public class AccessibleTreeListBoxEntry extends TestCase {
throw new StatusException("Could not select Biblio-Database", ex);
}
-
- try {
- shortWait();
- oObj = (XInterface) ( (XMultiServiceFactory) tParam.getMSF())
- .createInstance("com.sun.star.awt.Toolkit");
- } catch (com.sun.star.uno.Exception e) {
- throw new StatusException("Couldn't get toolkit", e);
- }
-
shortWait();
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface(
- XExtendedToolkit.class, oObj);
-
AccessibilityTools at = new AccessibilityTools();
- XWindow xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class,
- tk.getActiveTopWindow());
+ XWindow xWindow = secondController.getFrame().getContainerWindow();
XAccessible xRoot = at.getAccessibleObject(xWindow);
diff --git a/qadevOOo/tests/java/mod/_sw/CharacterStyle.java b/qadevOOo/tests/java/mod/_sw/CharacterStyle.java
index d1f9c6018436..4c91540d52c2 100755
--- a/qadevOOo/tests/java/mod/_sw/CharacterStyle.java
+++ b/qadevOOo/tests/java/mod/_sw/CharacterStyle.java
@@ -55,15 +55,13 @@ import util.utils;
* @see com.sun.star.style.CharacterStyle
*/
public class CharacterStyle extends TestCase {
-
- XTextDocument xTextDoc;
- SOfficeFactory SOF = null;
+ private XTextDocument xTextDoc;
/**
* Creates text document.
*/
protected void initialize( TestParameters tParam, PrintWriter log ) {
- SOF = SOfficeFactory.getFactory( (XMultiServiceFactory)tParam.getMSF() );
+ SOfficeFactory SOF = SOfficeFactory.getFactory( (XMultiServiceFactory)tParam.getMSF() );
try {
log.println( "creating a textdocument" );
xTextDoc = SOF.createTextDoc( null );
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java
index e0ad77dfa753..3bc7e81885c3 100644
--- a/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java
@@ -34,7 +34,6 @@ import com.sun.star.awt.PosSize;
import com.sun.star.awt.XControl;
import com.sun.star.awt.XControlContainer;
import com.sun.star.awt.XControlModel;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XFixedText;
import com.sun.star.awt.XWindow;
import com.sun.star.lang.XMultiServiceFactory;
@@ -150,17 +149,11 @@ public class AccessibleFixedText extends TestCase {
throw new StatusException("Couldn't get toolkit", e);
}
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface(
- XExtendedToolkit.class, oObj);
-
shortWait();
AccessibilityTools at = new AccessibilityTools();
- XWindow xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class,
- tk.getActiveTopWindow());
-
- XAccessible xRoot = at.getAccessibleObject(xWindow);
+ XAccessible xRoot = at.getAccessibleObject(xWinDlg);
at.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleMenu.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenu.java
index d309f8cd969d..4eaec80dcd81 100644
--- a/qadevOOo/tests/java/mod/_toolkit/AccessibleMenu.java
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenu.java
@@ -31,8 +31,8 @@ import com.sun.star.accessibility.XAccessible;
import com.sun.star.accessibility.XAccessibleAction;
import com.sun.star.accessibility.XAccessibleContext;
import com.sun.star.accessibility.XAccessibleText;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.text.XTextDocument;
import com.sun.star.uno.UnoRuntime;
@@ -102,23 +102,10 @@ public class AccessibleMenu extends TestCase {
throw new StatusException("Can't create document", e);
}
- XInterface oObj = null;
-
- try {
- oObj = (XInterface) msf.createInstance("com.sun.star.awt.Toolkit");
- } catch (com.sun.star.uno.Exception e) {
- log.println("Couldn't get toolkit");
- e.printStackTrace(log);
- throw new StatusException("Couldn't get toolkit", e);
- }
-
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface(
- XExtendedToolkit.class, oObj);
-
shortWait();
- XWindow xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class,
- tk.getActiveTopWindow());
+ XWindow xWindow = UnoRuntime.queryInterface(XModel.class, xTextDoc).
+ getCurrentController().getFrame().getContainerWindow();
AccessibilityTools at = new AccessibilityTools();
@@ -127,6 +114,7 @@ public class AccessibleMenu extends TestCase {
at.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
XAccessibleContext menubar = at.getAccessibleObjectForRole(xRoot,
AccessibleRole.MENU_BAR);
+ XInterface oObj = null;
Object menu2 = null;
try {
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuBar.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuBar.java
index 86929c463167..2441bdaa7075 100644
--- a/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuBar.java
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuBar.java
@@ -30,8 +30,8 @@ import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
import com.sun.star.accessibility.XAccessibleAction;
import com.sun.star.accessibility.XAccessibleComponent;
-import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.text.XTextDocument;
import com.sun.star.uno.UnoRuntime;
@@ -83,34 +83,18 @@ public class AccessibleMenuBar extends TestCase {
*/
protected TestEnvironment createTestEnvironment(TestParameters Param,
PrintWriter log) {
- XInterface oObj = null;
-
- try {
- oObj = (XInterface) ((XMultiServiceFactory) Param.getMSF()).createInstance(
- "com.sun.star.awt.Toolkit");
- } catch (com.sun.star.uno.Exception e) {
- log.println("Couldn't get toolkit");
- e.printStackTrace(log);
- throw new StatusException("Couldn't get toolkit", e);
- }
-
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface(
- XExtendedToolkit.class, oObj);
-
shortWait();
AccessibilityTools at = new AccessibilityTools();
- Object atw = tk.getActiveTopWindow();
-
- XWindow xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class,
- atw);
+ XWindow xWindow = UnoRuntime.queryInterface(XModel.class, xTextDoc).
+ getCurrentController().getFrame().getContainerWindow();
XAccessible xRoot = at.getAccessibleObject(xWindow);
at.printAccessibleTree(log, xRoot, Param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
- oObj = at.getAccessibleObjectForRole(xRoot, AccessibleRole.MENU_BAR);
+ XInterface oObj = at.getAccessibleObjectForRole(xRoot, AccessibleRole.MENU_BAR);
log.println("ImplementationName " + utils.getImplName(oObj));
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuSeparator.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuSeparator.java
index 4c68b532b4b2..f05bcb025803 100644
--- a/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuSeparator.java
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleMenuSeparator.java
@@ -32,6 +32,7 @@ import com.sun.star.accessibility.XAccessibleAction;
import com.sun.star.accessibility.XAccessibleContext;
import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XModel;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.text.XTextDocument;
import com.sun.star.uno.UnoRuntime;
@@ -82,27 +83,12 @@ public class AccessibleMenuSeparator extends TestCase {
*/
protected TestEnvironment createTestEnvironment(TestParameters Param,
PrintWriter log) {
- XInterface oObj = null;
-
- try {
- oObj = (XInterface) msf.createInstance("com.sun.star.awt.Toolkit");
- } catch (com.sun.star.uno.Exception e) {
- log.println("Couldn't get toolkit");
- e.printStackTrace(log);
- throw new StatusException("Couldn't get toolkit", e);
- }
-
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface(
- XExtendedToolkit.class, oObj);
-
shortWait();
AccessibilityTools at = new AccessibilityTools();
- Object atw = tk.getActiveTopWindow();
-
- XWindow xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class,
- atw);
+ XWindow xWindow = UnoRuntime.queryInterface(XModel.class, xTextDoc).
+ getCurrentController().getFrame().getContainerWindow();
XAccessible xRoot = at.getAccessibleObject(xWindow);
@@ -110,6 +96,7 @@ public class AccessibleMenuSeparator extends TestCase {
XAccessibleContext MenuBar = at.getAccessibleObjectForRole(xRoot,
AccessibleRole.MENU_BAR);
XAccessibleAction act = null;
+ XInterface oObj = null;
try {
//activate Edit-Menu
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBar.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBar.java
index 432493d9d134..32dd630370a3 100644
--- a/qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBar.java
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBar.java
@@ -32,7 +32,6 @@ import com.sun.star.awt.PosSize;
import com.sun.star.awt.Rectangle;
import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
-import com.sun.star.frame.XDesktop;
import com.sun.star.frame.XModel;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.text.XTextDocument;
@@ -84,19 +83,9 @@ import util.SOfficeFactory;
* @see ifc.accessibility.XAccessibleAction
*/
public class AccessibleStatusBar extends TestCase {
- private static XDesktop the_Desk;
private static XTextDocument xTextDoc;
/**
- * Creates the Desktop service (<code>com.sun.star.frame.Desktop</code>).
- */
- protected void initialize(TestParameters Param, PrintWriter log) {
- the_Desk = (XDesktop) UnoRuntime.queryInterface(XDesktop.class,
- DesktopTools.createDesktop(
- (XMultiServiceFactory) Param.getMSF()));
- }
-
- /**
* Disposes the document, if exists, created in
* <code>createTestEnvironment</code> method.
*/
@@ -155,16 +144,13 @@ public class AccessibleStatusBar extends TestCase {
throw new StatusException("Couldn't create document", e);
}
- XModel aModel = (XModel) UnoRuntime.queryInterface(XModel.class,
- xTextDoc);
-
XInterface oObj = null;
AccessibilityTools at = new AccessibilityTools();
- XWindow xWindow = at.getCurrentContainerWindow(
- (XMultiServiceFactory) tParam.getMSF(),
- aModel);
+ final XWindow xWindow =
+ UnoRuntime.queryInterface(XModel.class, xTextDoc).
+ getCurrentController().getFrame().getContainerWindow();
XAccessible xRoot = at.getAccessibleObject(xWindow);
@@ -180,15 +166,14 @@ public class AccessibleStatusBar extends TestCase {
tEnv.addObjRelation("EventProducer",
new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() {
public void fireEvent() {
- XWindow xWin = (XWindow) UnoRuntime.queryInterface(
- XWindow.class, tk.getActiveTopWindow());
- Rectangle newPosSize = xWin.getPosSize();
+ Rectangle newPosSize = xWindow.getPosSize();
newPosSize.Width = newPosSize.Width - 20;
newPosSize.Height = newPosSize.Height - 20;
newPosSize.X = newPosSize.X + 20;
newPosSize.Y = newPosSize.Y + 20;
- xWin.setPosSize(newPosSize.X, newPosSize.Y, newPosSize.Width,
- newPosSize.Height, PosSize.POSSIZE);
+ xWindow.setPosSize(
+ newPosSize.X, newPosSize.Y, newPosSize.Width,
+ newPosSize.Height, PosSize.POSSIZE);
}
});
diff --git a/qadevOOo/tests/java/mod/_toolkit/AccessibleToolBox.java b/qadevOOo/tests/java/mod/_toolkit/AccessibleToolBox.java
index 381ef7571b9f..c02017508695 100644
--- a/qadevOOo/tests/java/mod/_toolkit/AccessibleToolBox.java
+++ b/qadevOOo/tests/java/mod/_toolkit/AccessibleToolBox.java
@@ -47,8 +47,6 @@ import lib.TestParameters;
import util.AccessibilityTools;
import util.DesktopTools;
import util.SOfficeFactory;
-import util.UITools;
-
/**
* Test for object that implements the following interfaces :
@@ -141,20 +139,10 @@ public class AccessibleToolBox extends TestCase {
throw new StatusException("Couldn't create document", e);
}
- XModel aModel = (XModel) UnoRuntime.queryInterface(XModel.class,
- xTextDoc);
-
XInterface oObj = null;
- UITools oUI = new UITools(msf, aModel);
-
- XWindow xWindow = null;
- try {
- xWindow = oUI.getActiveTopWindow();
- } catch (Exception ex) {
- ex.printStackTrace(log);
- throw new StatusException("Couldn't get active top window", ex);
- }
+ XWindow xWindow = UnoRuntime.queryInterface(XModel.class, xTextDoc).
+ getCurrentController().getFrame().getContainerWindow();
AccessibilityTools at = new AccessibilityTools();
diff --git a/qadevOOo/tests/java/mod/_toolkit/UnoTreeControl.java b/qadevOOo/tests/java/mod/_toolkit/UnoTreeControl.java
index 8b6aacee0734..5be41be69f27 100644
--- a/qadevOOo/tests/java/mod/_toolkit/UnoTreeControl.java
+++ b/qadevOOo/tests/java/mod/_toolkit/UnoTreeControl.java
@@ -220,8 +220,6 @@ public class UnoTreeControl extends TestCase {
});
System.out.println("ImplementationName: " + utils.getImplName(oObj));
- //this.getAccessibleContext(xNode);
-
return tEnv;
} // finish method getTestEnvironment
@@ -289,26 +287,6 @@ public class UnoTreeControl extends TestCase {
}
}
- private XAccessibleContext getAccessibleContext(XMutableTreeNode xNode ){
-
- UITools oDocUITools = new UITools(this.mxMSF, this.xTextDoc);
-
- XWindow xDialogWindow = null;
- try {
-
- xDialogWindow = oDocUITools.getActiveTopWindow();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
-
- UITools oDialog = new UITools(mxMSF, xDialogWindow);
-
- oDialog.printAccessibleTree(log, debug);
-
- return null;
-
- }
-
private class execurteDialog extends Thread{
private XDialog mXDialog;
diff --git a/readlicense_oo/source/license/license_en-US.html b/readlicense_oo/source/license/license_en-US.html
index 58ff87790434..d11c348ee9a9 100644
--- a/readlicense_oo/source/license/license_en-US.html
+++ b/readlicense_oo/source/license/license_en-US.html
@@ -19,10 +19,10 @@ in the THIRDPARTYLICENSEREADME.html file.</p>
<p>All trademarks and registered trademarks mentioned herein are the
property of their respective owners.</p>
<hr>
-<p>Copyright 2002-2008 Sun Microsystems, Inc.</p>
+<p>Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.</p>
<p>This product has been created with contributions from the
-OpenOffice.org community, of which Sun Microsystems Inc. is the
-founding member. OpenOffice.org acknowledges all community members,
+OpenOffice.org community, of which Oracle is a
+principal member. OpenOffice.org acknowledges all community members,
especially those mentioned at
http://www.openoffice.org/welcome/credits.html.</p>
<hr>
diff --git a/readlicense_oo/source/license/license_en-US.rtf b/readlicense_oo/source/license/license_en-US.rtf
index 1a8ef275f9d8..56792a79cd5f 100644
--- a/readlicense_oo/source/license/license_en-US.rtf
+++ b/readlicense_oo/source/license/license_en-US.rtf
@@ -1,271 +1,374 @@
-{\rtf1\ansi\ansicpg1252\deff0\deftab709{\fonttbl{\f0\fswiss\fprq2\fcharset0 Tahoma;}{\f1\froman\fprq2\fcharset0 Thorndale;}}
-{\colortbl ;\red0\green0\blue255;\red0\green0\blue0;\red0\green0\blue128;\red128\green128\blue128;}
-{\*\generator Msftedit 5.41.15.1507;}\viewkind4\uc1\pard\lang1033\b\i\f0\fs24 License\par
-\pard\sa283\b0\i0\f1 This product is made available subject to the terms of GNU Lesser General Public License Version 3. A copy of the LGPL license can be found at http://www.openoffice.org/license.html\par
-\pard\brdrb\brdrdb\brdrw15\brdrcf4 \sa283\fs12\par
-\pard\sa283\fs24 Third Party Code. Additional copyright notices and license terms applicable to portions of the Software are set forth in the THIRDPARTYLICENSEREADME.html file.\par
-\pard\brdrb\brdrdb\brdrw15\brdrcf4 \sa283\fs12\par
-\pard\sa283\fs24 All trademarks and registered trademarks mentioned herein are the property of their respective owners.\par
-\pard\brdrb\brdrdb\brdrw15\brdrcf4 \sa283\fs12\par
-\pard\sa283\fs24 Copyright 2002,2008 Sun Microsystems, Inc.\par
-\cf2 This product has been created with contributions from the OpenOffice.org community, of which Sun Microsystems Inc. is the founding member. OpenOffice.org acknowledges all community members, especially those mentioned at\cf3\ul \cf0\ulnone http://www.openoffice.org/welcome/credits.html\par
-\par
-GNU LESSER GENERAL PUBLIC LICENSE\par
-\par
-Version 3, 29 June 2007\par
-\par
-Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\par
-\par
-Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.\par
-\par
-This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below.\par
-0. Additional Definitions.\par
-\par
-As used herein, \ldblquote this License\rdblquote refers to version 3 of the GNU Lesser General Public License, and the \ldblquote GNU GPL\rdblquote refers to version 3 of the GNU General Public License.\par
-\par
-\ldblquote The Library\rdblquote refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.\par
-\par
-An \ldblquote Application\rdblquote is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.\par
-\par
-A \ldblquote Combined Work\rdblquote is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the \ldblquote Linked Version\rdblquote .\par
-\par
-The \ldblquote Minimal Corresponding Source\rdblquote for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version.\par
-\par
-The \ldblquote Corresponding Application Code\rdblquote for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work.\par
-1. Exception to Section 3 of the GNU GPL.\par
-\par
-You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL.\par
-2. Conveying Modified Versions.\par
-\par
-If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version:\par
-\par
- * a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or\par
- * b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy.\par
-\par
-3. Object Code Incorporating Material from Library Header Files.\par
-\par
-The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following:\par
-\par
- * a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.\par
- * b) Accompany the object code with a copy of the GNU GPL and this license document.\par
-\par
-4. Combined Works.\par
-\par
-You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following:\par
-\par
- * a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License.\par
- * b) Accompany the Combined Work with a copy of the GNU GPL and this license document.\par
- * c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document.\par
- * d) Do one of the following:\par
- o 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.\par
- o 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.\par
- * e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.)\par
-\par
-5. Combined Libraries.\par
-\par
-You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following:\par
-\par
- * a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License.\par
- * b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.\par
-\par
-6. Revised Versions of the GNU Lesser General Public License.\par
-\par
-The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.\par
-\par
-Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License \ldblquote or any later version\rdblquote applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation.\par
-\par
-If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library.\par
-\par
-GNU GENERAL PUBLIC LICENSE\par
-\par
-Version 3, 29 June 2007\par
-\par
-Copyright \'a9 2007 Free Software Foundation, Inc. <http://fsf.org/>\par
-\par
-Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.\par
-Preamble\par
-\par
-The GNU General Public License is a free, copyleft license for software and other kinds of works.\par
-\par
-The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.\par
-\par
-When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.\par
-\par
-To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.\par
-\par
-For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.\par
-\par
-Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.\par
-\par
-For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.\par
-\par
-Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.\par
-\par
-Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.\par
-\par
-The precise terms and conditions for copying, distribution and modification follow.\par
-TERMS AND CONDITIONS\par
-0. Definitions.\par
-\par
-\ldblquote This License\rdblquote refers to version 3 of the GNU General Public License.\par
-\par
-\ldblquote Copyright\rdblquote also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.\par
-\par
-\ldblquote The Program\rdblquote refers to any copyrightable work licensed under this License. Each licensee is addressed as \ldblquote you\rdblquote . \ldblquote Licensees\rdblquote and \ldblquote recipients\rdblquote may be individuals or organizations.\par
-\par
-To \ldblquote modify\rdblquote a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a \ldblquote modified version\rdblquote of the earlier work or a work \ldblquote based on\rdblquote the earlier work.\par
-\par
-A \ldblquote covered work\rdblquote means either the unmodified Program or a work based on the Program.\par
-\par
-To \ldblquote propagate\rdblquote a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.\par
-\par
-To \ldblquote convey\rdblquote a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.\par
-\par
-An interactive user interface displays \ldblquote Appropriate Legal Notices\rdblquote to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.\par
-1. Source Code.\par
-\par
-The \ldblquote source code\rdblquote for a work means the preferred form of the work for making modifications to it. \ldblquote Object code\rdblquote means any non-source form of a work.\par
-\par
-A \ldblquote Standard Interface\rdblquote means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.\par
-\par
-The \ldblquote System Libraries\rdblquote of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A \ldblquote Major Component\rdblquote , in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.\par
-\par
-The \ldblquote Corresponding Source\rdblquote for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.\par
-\par
-The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.\par
-\par
-The Corresponding Source for a work in source code form is that same work.\par
-2. Basic Permissions.\par
-\par
-All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.\par
-\par
-You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.\par
-\par
-Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.\par
-3. Protecting Users' Legal Rights From Anti-Circumvention Law.\par
-\par
-No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.\par
-\par
-When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.\par
-4. Conveying Verbatim Copies.\par
-\par
-You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.\par
-\par
-You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.\par
-5. Conveying Modified Source Versions.\par
-\par
-You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:\par
-\par
- * a) The work must carry prominent notices stating that you modified it, and giving a relevant date.\par
- * b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to \ldblquote keep intact all notices\rdblquote .\par
- * c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.\par
- * d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.\par
-\par
-A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an \ldblquote aggregate\rdblquote if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.\par
-6. Conveying Non-Source Forms.\par
-\par
-You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:\par
-\par
- * a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.\par
- * b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.\par
- * c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.\par
- * d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.\par
- * e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.\par
-\par
-A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.\par
-\par
-A \ldblquote User Product\rdblquote is either (1) a \ldblquote consumer product\rdblquote , which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, \ldblquote normally used\rdblquote refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.\par
-\par
-\ldblquote Installation Information\rdblquote for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.\par
-\par
-If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).\par
-\par
-The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.\par
-\par
-Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.\par
-7. Additional Terms.\par
-\par
-\ldblquote Additional permissions\rdblquote are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.\par
-\par
-When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.\par
-\par
-Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:\par
-\par
- * a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or\par
- * b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or\par
- * c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or\par
- * d) Limiting the use for publicity purposes of names of licensors or authors of the material; or\par
- * e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or\par
- * f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.\par
-\par
-All other non-permissive additional terms are considered \ldblquote further restrictions\rdblquote within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.\par
-\par
-If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.\par
-\par
-Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.\par
-8. Termination.\par
-\par
-You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).\par
-\par
-However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.\par
-\par
-Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.\par
-\par
-Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.\par
-9. Acceptance Not Required for Having Copies.\par
-\par
-You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.\par
-10. Automatic Licensing of Downstream Recipients.\par
-\par
-Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.\par
-\par
-An \ldblquote entity transaction\rdblquote is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.\par
-\par
-You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.\par
-11. Patents.\par
-\par
-A \ldblquote contributor\rdblquote is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's \ldblquote contributor version\rdblquote .\par
-\par
-A contributor's \ldblquote essential patent claims\rdblquote are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, \ldblquote control\rdblquote includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.\par
-\par
-Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.\par
-\par
-In the following three paragraphs, a \ldblquote patent license\rdblquote is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To \ldblquote grant\rdblquote such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.\par
-\par
-If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. \ldblquote Knowingly relying\rdblquote means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.\par
-\par
-If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.\par
-\par
-A patent license is \ldblquote discriminatory\rdblquote if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.\par
-\par
-Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.\par
-12. No Surrender of Others' Freedom.\par
-\par
-If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.\par
-13. Use with the GNU Affero General Public License.\par
-\par
-Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.\par
-14. Revised Versions of this License.\par
-\par
-The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.\par
-\par
-Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License \ldblquote or any later version\rdblquote applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.\par
-\par
-If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.\par
-\par
-Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.\par
-15. Disclaimer of Warranty.\par
-\par
-THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \ldblquote AS IS\rdblquote WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\par
-16. Limitation of Liability.\par
-\par
-IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\par
-17. Interpretation of Sections 15 and 16.\par
-\par
-If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.\par
-\par
-END OF TERMS AND CONDITIONS\par
-\pard\brdrb\brdrdb\brdrw15\brdrcf4 \sa283\fs12\par
-\par
-}
-
+{\rtf1\ansi\deff1\adeflang1025
+{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\fswiss\fprq2\fcharset0 Tahoma;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\fswiss\fprq2\fcharset0 Tahoma;}{\f4\froman\fprq2\fcharset0 Thorndale{\*\falt Times New Roman};}{\f5\fnil\fprq2\fcharset0 HG Mincho Light J{\*\falt msmincho};}{\f6\fnil\fprq2\fcharset0 LucidaSans;}{\f7\fnil\fprq0\fcharset0 LucidaSans;}}
+{\colortbl;\red0\green0\blue0;\red0\green0\blue128;\red128\green128\blue128;}
+{\stylesheet{\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033\snext1 Normal;}
+{\s2\sb240\sa120\keepn\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af6\afs28\lang255\ltrch\dbch\af5\langfe255\hich\f2\fs28\lang1033\loch\f2\fs28\lang1033\sbasedon1\snext3 Heading;}
+{\s3\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033\sbasedon1\snext3 Body Text;}
+{\s4\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af7\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033\sbasedon3\snext4 List;}
+{\s5\sb120\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af7\afs24\lang255\ai\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\i\loch\f1\fs24\lang1033\i\sbasedon1\snext5 caption;}
+{\s6\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af7\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033\sbasedon1\snext6 Index;}
+}
+{\info{\creatim\yr0\mo0\dy0\hr0\min0}{\revtim\yr0\mo0\dy0\hr0\min0}{\printim\yr0\mo0\dy0\hr0\min0}{\comment StarWriter}{\vern3100}}\deftab709
+{\*\pgdsctbl
+{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\pgdscnxt0 Standard;}}
+{\*\pgdscno0}\paperh15840\paperw12240\margl1800\margr1800\margt1440\margb1440\sectd\sbknone\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
+\pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ai\ab\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\i\b\loch\f1\fs24\lang1033\i\b {\rtlch \ltrch\loch\f1\fs24\lang1033\i\b License}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af4\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f4\fs24\lang1033\loch\f4\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 This product is made available subject to the terms of GNU Lesser General Public License Version 3. A copy of the LGPL license can be found at http://www.openoffice.org/license.html}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\brdrb\brdrdb\brdrw15\brdrcf3\brsp0{\*\brdrb\brdlncol3\brdlnin1\brdlnout1\brdlndist20}\brsp0\rtlch\af4\afs12\lang255\ltrch\dbch\af4\langfe255\hich\f4\fs12\lang1033\loch\f4\fs12\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af4\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f4\fs24\lang1033\loch\f4\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Third Party Code. Additional copyright notices and license terms applicable to portions of the Software are set forth in the THIRDPARTYLICENSEREADME.html file.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\brdrb\brdrdb\brdrw15\brdrcf3\brsp0{\*\brdrb\brdlncol3\brdlnin1\brdlnout1\brdlndist20}\brsp0\rtlch\af4\afs12\lang255\ltrch\dbch\af4\langfe255\hich\f4\fs12\lang1033\loch\f4\fs12\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af4\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f4\fs24\lang1033\loch\f4\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 All trademarks and registered trademarks mentioned herein are the property of their respective owners.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\brdrb\brdrdb\brdrw15\brdrcf3\brsp0{\*\brdrb\brdlncol3\brdlnin1\brdlnout1\brdlndist20}\brsp0\rtlch\af4\afs12\lang255\ltrch\dbch\af4\langfe255\hich\f4\fs12\lang1033\loch\f4\fs12\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af4\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f4\fs24\lang1033\loch\f4\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Copyright \'a9 2000,2010 Oracle and/or its affiliates.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033{\rtlch \ltrch\loch\f1\fs24\lang1033\i0\b0{\cf1\rtlch\ltrch\dbch\hich\f4\loch\f4 This product has been created with contributions from the OpenOffice.org community, of which Oracle is a principal member. OpenOffice.org acknowledges all community members, especially those mentioned at}}{\rtlch \ltrch\loch\f1\fs24\lang1033\i0\b0{\cf2\ul\ulc0\rtlch\ltrch\dbch\hich\f4\loch\f4 }{\rtlch\ltrch\dbch\hich\f4\loch\f4 http://www.openoffice.org/welcome/credits.html}}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af4\afs24\lang255\ltrch\dbch\af4\langfe255\hich\f4\fs24\lang1033\loch\f4\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 GNU LESSER GENERAL PUBLIC LICENSE}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Version 3, 29 June 2007}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 0. Additional Definitions.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 As used herein, \'93this License\'94 refers to version 3 of the GNU Lesser General Public License, and the \'93GNU GPL\'94 refers to version 3 of the GNU General Public License.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch \'93}{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The Library\'94 refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 An \'93Application\'94 is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 A \'93Combined Work\'94 is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the \'93Linked Version\'94.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The \'93Minimal Corresponding Source\'94 for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Vers
+ion.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The \'93Corresponding Application Code\'94 for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries
+ of the Combined Work.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 1. Exception to Section 3 of the GNU GPL.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 2. Conveying Modified Versions.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of
+the modified version:}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 3. Object Code Incorporating Material from Library Header Files.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters,
+data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following:}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * b) Accompany the object code with a copy of the GNU GPL and this license document.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 4. Combined Works.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do
+each of the following:}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * b) Accompany the Combined Work with a copy of the GNU GPL and this license document.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * d) Do one of the following:}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 o 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of t
+he Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 o 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified ve
+rsion of the Library that is interface-compatible with the Linked Version.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Co
+mbined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you
+use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.)}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 5. Combined Libraries.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of y
+our choice, if you do both of the following:}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 6. Revised Versions of the GNU Lesser General Public License.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concern
+s.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License \'93or any later version\'94 applies to it, you have the option of following the terms and
+ conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the
+GNU Lesser General Public License ever published by the Free Software Foundation.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that v
+ersion for the Library.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 GNU GENERAL PUBLIC LICENSE}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Version 3, 29 June 2007}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Copyright \'a9 2007 Free Software Foundation, Inc. <http://fsf.org/>}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Preamble}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The GNU General Public License is a free, copyleft license for software and other kinds of works.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--
+to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, t
+oo.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or
+ can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect t
+he freedom of others.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them thes
+e terms so they know their rights.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attr
+ibuted erroneously to authors of previous versions.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The sy
+stematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise
+substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to
+ a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The precise terms and conditions for copying, distribution and modification follow.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 TERMS AND CONDITIONS}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 0. Definitions.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch \'93}{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 This License\'94 refers to version 3 of the GNU General Public License.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch \'93}{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Copyright\'94 also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch \'93}{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The Program\'94 refers to any copyrightable work licensed under this License. Each licensee is addressed as \'93you\'94. \'93Licensees\'94 and \'93recipients\'94 may be individuals or organizations.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 To \'93modify\'94 a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a \'93modified version\'94 of the earlier work or a work \'93based on\'94 the earli
+er work.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 A \'93covered work\'94 means either the unmodified Program or a work based on the Program.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 To \'93propagate\'94 a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes
+copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 To \'93convey\'94 a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 An interactive user interface displays \'93Appropriate Legal Notices\'94 to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work
+(except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list m
+eets this criterion.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 1. Source Code.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The \'93source code\'94 for a work means the preferred form of the work for making modifications to it. \'93Object code\'94 means any non-source form of a work.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 A \'93Standard Interface\'94 means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that la
+nguage.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The \'93System Libraries\'94 of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the w
+ork with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A \'93Major Component\'94, in this context, means a major essential component (kernel, window system, and so on) of th
+e specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The \'93Corresponding Source\'94 for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not in
+clude the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition fi
+les associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms a
+nd other parts of the work.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The Corresponding Source for a work in source code form is that same work.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 2. Basic Permissions.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from
+ running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you,
+or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively
+on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 3. Protecting Users' Legal Rights From Anti-Circumvention Law.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention o
+f such measures.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intentio
+n to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 4. Conveying Verbatim Copies.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 5. Conveying Modified Source Versions.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * a) The work must carry prominent notices stating that you modified it, and giving a relevant date.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to \'93keep intact all notices\'94.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, r
+egardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution med
+ium, is called an \'93aggregate\'94 if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause thi
+s License to apply to the other parts of the aggregate.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 6. Conveying Non-Source Forms.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that pr
+oduct model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price
+ no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in ac
+cord with subsection 6b.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to cop
+y the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided
+you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requir
+ements.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 A \'93User Product\'94 is either (1) a \'93consumer product\'94, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a
+ product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, \'93normally used\'94 refers to a typical or common use of that class of product, regardless of the status of the parti
+cular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such u
+ses represent the only significant mode of use of the product.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch \'93}{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Installation Information\'94 for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Sour
+ce. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in
+perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third
+party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been mo
+dified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password
+ or key for unpacking, reading or copying.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 7. Additional Terms.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch \'93}{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Additional permissions\'94 are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this Lic
+ense, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to t
+he additional permissions.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You m
+ay place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * d) Limiting the use for publicity purposes of names of licensors or authors of the material; or}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 * f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions di
+rectly impose on those licensors and authors.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 All other non-permissive additional terms are considered \'93further restrictions\'94 within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is
+a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided t
+hat the further restriction does not survive such relicensing or conveying.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 8. Termination.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted
+under the third paragraph of section 11).}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the cop
+yright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work)
+from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new l
+icenses for the same material under section 10.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 9. Acceptance Not Required for Having Copies.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptanc
+e. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptan
+ce of this License to do so.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 10. Automatic Licensing of Downstream Recipients.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this Li
+cense.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 An \'93entity transaction\'94 is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party
+to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the
+predecessor in interest, if the predecessor has it or can get it with reasonable efforts.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not ini
+tiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 11. Patents.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 A \'93contributor\'94 is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's \'93contributor version\'94.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 A contributor's \'93essential patent claims\'94 are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its cont
+ributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, \'93control\'94 includes the right to grant patent sublicenses in a manner consistent wi
+th the requirements of this License.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
+}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 In the following three paragraphs, a \'93patent license\'94 is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To \'93grant\'94 such
+a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other read
+ily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements
+ of this License, to extend the patent license to downstream recipients. \'93Knowingly relying\'94 means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a co
+untry, would infringe one or more identifiable patents in that country that you have reason to believe are valid.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate,
+ modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 A patent license is \'93discriminatory\'94 if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey
+ a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third
+party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection wi
+th specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 12. No Surrender of Others' Freedom.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneousl
+y your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the
+ Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 13. Use with the GNU Affero General Public License.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The te
+rms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 14. Revised Versions of this License.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License \'93or any later version\'94 applies to it, you have the option of following the terms and conditions either of that
+ numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 15. Disclaimer of Warranty.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \'93AS IS\'94 WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLU
+DING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
+ SERVICING, REPAIR OR CORRECTION.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 16. Limitation of Liability.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONS
+EQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS
+), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 17. Interpretation of Sections 15 and 16.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connect
+ion with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033 {\rtlch \ltrch\loch\f4\fs24\lang1033\i0\b0 END OF TERMS AND CONDITIONS}
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\brdrb\brdrdb\brdrw15\brdrcf3\brsp0{\*\brdrb\brdlncol3\brdlnin1\brdlnout1\brdlndist20}\brsp0\rtlch\af4\afs12\lang255\ltrch\dbch\af4\langfe255\hich\f4\fs12\lang1033\loch\f4\fs12\lang1033
+\par \pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af1\afs24\lang255\ltrch\dbch\af1\langfe255\hich\f1\fs24\lang1033\loch\f1\fs24\lang1033
+\par } \ No newline at end of file
diff --git a/readlicense_oo/source/license/license_en-US.txt b/readlicense_oo/source/license/license_en-US.txt
index 6e806102600c..52fd9d1cfc16 100644
--- a/readlicense_oo/source/license/license_en-US.txt
+++ b/readlicense_oo/source/license/license_en-US.txt
@@ -7,9 +7,9 @@ Third Party Code. Additional copyright notices and license terms applicable to p
All trademarks and registered trademarks mentioned herein are the property of their respective owners.
------------------------------------
-Copyright 2002,2008 Sun Microsystems, Inc.
+Copyright (c) 2000,2010 Oracle and/or it affiliates. All rights reserved.
-This product has been created with contributions from the OpenOffice.org community, of which Sun Microsystems Inc. is the founding member. OpenOffice.org acknowledges all community members, especially those mentioned at http://www.openoffice.org/welcome/credits.html.
+This product has been created with contributions from the OpenOffice.org community, of which Oracle is a principal member. OpenOffice.org acknowledges all community members, especially those mentioned at http://www.openoffice.org/welcome/credits.html.
------------------------------------
diff --git a/readlicense_oo/util/makefile.pmk b/readlicense_oo/util/makefile.pmk
index 88974113e612..8aee1ce3b69a 100755
--- a/readlicense_oo/util/makefile.pmk
+++ b/readlicense_oo/util/makefile.pmk
@@ -53,11 +53,7 @@ $(COMMONMISC)$/readme.dtd : ..$/readme.dtd
virtual : $(MERGEDXRM) $(COMMONMISC)$/readme.dtd $(PRJ)$/docs/readme.xsl
$(MISC)$/readme_text.xsl : virtual
-.IF "$(USE_SHELL)"!="4nt"
$(SED) 's#method="html".*>#method="text"/>#' < ..$/readme.xsl > $@
-.ELSE # "$(USE_SHELL)"!="4nt"
- $(SED) "s/method=\"html\".*>/method=\"text\"\/>/" < ..$/readme.xsl > $@
-.ENDIF # "$(USE_SHELL)"!="4nt"
$(MISC)$/$(GUI)$/$(eq,$(GUI),WNT readme README)_%.html : 'virtual'
@@-$(MKDIRHIER) $(@:d)
diff --git a/redland/raptor/makefile.mk b/redland/raptor/makefile.mk
index 4980063203ad..1375ae878497 100644
--- a/redland/raptor/makefile.mk
+++ b/redland/raptor/makefile.mk
@@ -47,6 +47,7 @@ all:
RAPTORVERSION=$(RAPTOR_MAJOR).4.18
TARFILE_NAME=raptor-$(RAPTORVERSION)
+TARFILE_MD5=284e768eeda0e2898b0d5bf7e26a016e
ADDITIONAL_FILES=src/makefile.mk src/raptor_config.h
diff --git a/redland/raptor/raptor2.map b/redland/raptor/raptor2.map
index 8c0cb819f9ff..109a74b632bb 100644
--- a/redland/raptor/raptor2.map
+++ b/redland/raptor/raptor2.map
@@ -1,4 +1,4 @@
-RAPTOR2 {
+UDK_3_0_0 {
global:
GetVersionInfo;
raptor_ntriples_string_as_utf8_string;
diff --git a/redland/rasqal/makefile.mk b/redland/rasqal/makefile.mk
index fc9e93baaa6d..d48b7af39cb4 100644
--- a/redland/rasqal/makefile.mk
+++ b/redland/rasqal/makefile.mk
@@ -47,6 +47,7 @@ all:
RASQALVERSION=0.9.16
TARFILE_NAME=rasqal-$(RASQALVERSION)
+TARFILE_MD5=fca8706f2c4619e2fa3f8f42f8fc1e9d
ADDITIONAL_FILES=src/makefile.mk src/rasqal_config.h
diff --git a/redland/rasqal/rasqal2.map b/redland/rasqal/rasqal2.map
index b36d25c9664b..622043ac984c 100644
--- a/redland/rasqal/rasqal2.map
+++ b/redland/rasqal/rasqal2.map
@@ -1,4 +1,4 @@
-RASQAL2 {
+UDK_3_0_0 {
global:
GetVersionInfo;
rasqal_xsd_decimal_set_string;
diff --git a/redland/redland/makefile.mk b/redland/redland/makefile.mk
index c89724087dc9..9d516aa5e88b 100644
--- a/redland/redland/makefile.mk
+++ b/redland/redland/makefile.mk
@@ -47,6 +47,7 @@ all:
REDLANDVERSION=1.0.8
TARFILE_NAME=redland-$(REDLANDVERSION)
+TARFILE_MD5=ca66e26082cab8bb817185a116db809b
ADDITIONAL_FILES=librdf/makefile.mk librdf/rdf_config.h
diff --git a/redland/redland/redland2.map b/redland/redland/redland2.map
index 660f80a0b8a4..5798f461684b 100644
--- a/redland/redland/redland2.map
+++ b/redland/redland/redland2.map
@@ -1,4 +1,4 @@
-REDLAND2 {
+UDK_3_0_0 {
global:
GetVersionInfo;
librdf_get_concept_resource_by_index;
diff --git a/remotebridges/source/bridge/makefile.mk b/remotebridges/source/bridge/makefile.mk
index 6c217b273372..1b712bef1913 100644
--- a/remotebridges/source/bridge/makefile.mk
+++ b/remotebridges/source/bridge/makefile.mk
@@ -43,7 +43,7 @@ SLOFILES= \
$(SLO)$/bridge_connection.obj\
$(SLO)$/bridge_provider.obj
SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = remotebridge.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1STDLIBS= \
$(SALLIB) \
diff --git a/remotebridges/source/bridge/remotebridge.map b/remotebridges/source/bridge/remotebridge.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/remotebridges/source/bridge/remotebridge.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/remotebridges/source/factory/brdgfctr.map b/remotebridges/source/factory/brdgfctr.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/remotebridges/source/factory/brdgfctr.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/remotebridges/source/factory/makefile.mk b/remotebridges/source/factory/makefile.mk
index 4f0a6d04437b..7cd3875bcfb3 100644
--- a/remotebridges/source/factory/makefile.mk
+++ b/remotebridges/source/factory/makefile.mk
@@ -43,7 +43,7 @@ SLOFILES= \
$(SLO)$/bridgeimpl.obj
SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = brdgfctr.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1STDLIBS= \
$(SALLIB) \
diff --git a/remotebridges/source/unourl_resolver/makefile.mk b/remotebridges/source/unourl_resolver/makefile.mk
index 7eea4e7cf239..a3e4af7f0d91 100644
--- a/remotebridges/source/unourl_resolver/makefile.mk
+++ b/remotebridges/source/unourl_resolver/makefile.mk
@@ -43,7 +43,7 @@ SLOFILES= \
$(SLO)$/unourl_resolver.obj
SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = uuresolver.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1STDLIBS= \
$(SALLIB) \
diff --git a/remotebridges/source/unourl_resolver/uuresolver.map b/remotebridges/source/unourl_resolver/uuresolver.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/remotebridges/source/unourl_resolver/uuresolver.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/reportbuilder/images/em47.png b/reportbuilder/images/em47.png
index a018f1710ea5..cf3fe5f0d598 100644
--- a/reportbuilder/images/em47.png
+++ b/reportbuilder/images/em47.png
Binary files differ
diff --git a/reportbuilder/images/em47_hc.png b/reportbuilder/images/em47_hc.png
index 418cd1479298..535a6bfdff4f 100644
--- a/reportbuilder/images/em47_hc.png
+++ b/reportbuilder/images/em47_hc.png
Binary files differ
diff --git a/reportbuilder/java/com/sun/star/report/function/metadata/makefile.mk b/reportbuilder/java/com/sun/star/report/function/metadata/makefile.mk
index 99c80bd919b7..d68a2f8cedc8 100644
--- a/reportbuilder/java/com/sun/star/report/function/metadata/makefile.mk
+++ b/reportbuilder/java/com/sun/star/report/function/metadata/makefile.mk
@@ -35,9 +35,9 @@ PACKAGE = com$/sun$/star$/report$/function$/metadata
#----- compile .java files -----------------------------------------
.IF "$(SYSTEM_JFREEREPORT)" == "YES"
-CLASSPATH!:==$(CLASSPATH)$(PATH_SEPERATOR)$(LIBBASE_JAR)$(PATH_SEPERATOR)$(LIBFORMULA_JAR)
+EXTRAJARFILES = $(LIBBASE_JAR) $(LIBFORMULA_JAR)
.ELSE
-JARFILES += libbase-1.0.0.jar libformula-0.2.0.jar
+JARFILES = libbase-1.0.0.jar libformula-0.2.0.jar
.ENDIF
JAVAFILES := AuthorFunction.java \
diff --git a/reportbuilder/java/com/sun/star/report/makefile.mk b/reportbuilder/java/com/sun/star/report/makefile.mk
index f72daadb2f57..1b96e9904ea0 100644
--- a/reportbuilder/java/com/sun/star/report/makefile.mk
+++ b/reportbuilder/java/com/sun/star/report/makefile.mk
@@ -36,7 +36,7 @@ PACKAGE = com$/sun$/star$/report
JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar
.IF "$(SYSTEM_APACHE_COMMONS)" == "YES"
-XCLASSPATH!:==$(XCLASSPATH)$(PATH_SEPERATOR)$(COMMONS_LOGGING_JAR)
+EXTRAJARFILES = $(COMMONS_LOGGING_JAR)
.ELSE
JARFILES += commons-logging-1.1.1.jar
.ENDIF
diff --git a/reportbuilder/java/com/sun/star/report/pentaho/makefile.mk b/reportbuilder/java/com/sun/star/report/pentaho/makefile.mk
index 2927967886a6..9280fcd71b70 100644
--- a/reportbuilder/java/com/sun/star/report/pentaho/makefile.mk
+++ b/reportbuilder/java/com/sun/star/report/pentaho/makefile.mk
@@ -37,13 +37,13 @@ nodep=true
#----- compile .java files -----------------------------------------
JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar
.IF "$(SYSTEM_JFREEREPORT)" == "YES"
-XCLASSPATH!:=$(XCLASSPATH)$(FLUTE_JAR)$(PATH_SEPERATOR)$(LIBBASE_JAR)$(PATH_SEPERATOR)$(LIBXML_JAR)$(PATH_SEPERATOR)$(JFREEREPORT_JAR)$(PATH_SEPERATOR)$(LIBLOADER_JAR)$(PATH_SEPERATOR)$(SAC_JAR)$(PATH_SEPERATOR)$(LIBLAYOUT_JAR)$(PATH_SEPERATOR)$(LIBSERIALIZER_JAR)$(PATH_SEPERATOR)$(LIBFONTS_JAR)$(PATH_SEPERATOR)$(LIBFORMULA_JAR)$(PATH_SEPERATOR)$(LIBREPOSITORY_JAR)
+EXTRAJARFILES += $(FLUTE_JAR) $(LIBBASE_JAR) $(LIBXML_JAR) $(JFREEREPORT_JAR) $(LIBLOADER_JAR) $(SAC_JAR) $(LIBLAYOUT_JAR) $(LIBSERIALIZER_JAR) $(LIBFONTS_JAR) $(LIBFORMULA_JAR) $(LIBREPOSITORY_JAR)
.ELSE
JARFILES += flute-1.3.0.jar libbase-1.0.0.jar libfonts-1.0.0.jar libformula-0.2.0.jar liblayout-0.2.9.jar libloader-1.0.0.jar librepository-1.0.0.jar libxml-1.0.0.jar flow-engine-0.9.2.jar sac.jar
.ENDIF
.IF "$(SYSTEM_APACHE_COMMONS)" == "YES"
-XCLASSPATH!:=$(XCLASSPATH)$(PATH_SEPERATOR)$(COMMONS_LOGGING_JAR)
+EXTRAJARFILES += $(COMMONS_LOGGING_JAR)
.ELSE
JARFILES += commons-logging-1.1.1.jar
.ENDIF
diff --git a/reportbuilder/java/com/sun/star/report/util/makefile.mk b/reportbuilder/java/com/sun/star/report/util/makefile.mk
index d7c84fcbaca3..8361ee6bfbf7 100644
--- a/reportbuilder/java/com/sun/star/report/util/makefile.mk
+++ b/reportbuilder/java/com/sun/star/report/util/makefile.mk
@@ -35,7 +35,7 @@ PACKAGE = com$/sun$/star$/report$/util
#----- compile .java files -----------------------------------------
.IF "$(SYSTEM_JFREEREPORT)" == "YES"
-CLASSPATH!:=$(CLASSPATH)$(PATH_SEPERATOR)$(LIBBASE_JAR)$(PATH_SEPERATOR)$(LIBXML_JAR)$(PATH_SEPERATOR)$(JFREEREPORT_JAR)
+EXTRAJARFILES = $(LIBBASE_JAR) $(LIBXML_JAR) $(JFREEREPORT_JAR)
.ELSE
JARFILES = libbase-1.0.0.jar libxml-1.0.0.jar flow-engine-0.9.2.jar
.ENDIF
diff --git a/reportbuilder/util/description.xml b/reportbuilder/util/description.xml
index 82ae8544b48b..a4031236bd2b 100644
--- a/reportbuilder/util/description.xml
+++ b/reportbuilder/util/description.xml
@@ -17,7 +17,7 @@
<OpenOffice.org-minimal-version value="3.2" d:name="OpenOffice.org 3.2"/>
</dependencies>
<publisher>
- <name xlink:href="http://www.sun.com/software/star/staroffice/extensions.jsp?cid=925095" lang="en">Oracle</name>
+ <name xlink:href="http://www.oracle.com/us/products/applications/open-office" lang="en">Oracle</name>
</publisher>
<icon>
<default xlink:href="images/em47.png" />
diff --git a/reportdesign/util/makefile.mk b/reportdesign/util/makefile.mk
index 3a0e89134ddf..32fe4eb2a5d6 100644
--- a/reportdesign/util/makefile.mk
+++ b/reportdesign/util/makefile.mk
@@ -164,7 +164,7 @@ SHL2DEPN=$(SHL1TARGETN)
SHL2LIBS=$(LIB2TARGET)
SHL2DEF=$(MISC)$/$(SHL2TARGET).def
DEF2NAME=$(SHL2TARGET)
-SHL2VERSIONMAP=$(TARGET2).map
+SHL2VERSIONMAP=$(SOLARENV)/src/component.map
.ENDIF
# --- .res file ----------------------------------------------------------
RES2FILELIST=\
@@ -219,7 +219,7 @@ SHL3STDLIBS+= \
SHL3DEPN=$(SHL1TARGETN)
SHL3LIBS=$(LIB3TARGET)
SHL3IMPLIB= i$(SHL3TARGET)
-SHL3VERSIONMAP=rptui.map
+SHL3VERSIONMAP=$(SOLARENV)/src/component.map
SHL3DEF= $(MISC)$/$(SHL3TARGET).def
DEF3NAME=$(SHL3TARGET)
diff --git a/reportdesign/util/rpt.map b/reportdesign/util/rpt.map
deleted file mode 100644
index 82864090dff7..000000000000
--- a/reportdesign/util/rpt.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/reportdesign/util/rptui.map b/reportdesign/util/rptui.map
deleted file mode 100644
index b34eff63c44f..000000000000
--- a/reportdesign/util/rptui.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
- local:
- *;
-};
diff --git a/rhino/makefile.mk b/rhino/makefile.mk
index 2facbe2dea00..008fb0caef2d 100755
--- a/rhino/makefile.mk
+++ b/rhino/makefile.mk
@@ -39,6 +39,7 @@ TARGET=ooo_rhino
# --- Files --------------------------------------------------------
TARFILE_NAME=rhino1_5R5
+TARFILE_MD5=798b2ffdc8bcfe7bca2cf92b62caf685
TARFILE_ROOTDIR=rhino1_5R5
ADDITIONAL_FILES= \
diff --git a/rhino/rhino1_5R5-find_swing.patch b/rhino/rhino1_5R5-find_swing.patch
index e94974a41574..220c4f4e668a 100644
--- a/rhino/rhino1_5R5-find_swing.patch
+++ b/rhino/rhino1_5R5-find_swing.patch
@@ -1,13 +1,11 @@
--- misc/rhino1_5R5/toolsrc/build.xml 2009-10-29 18:29:46.605524507 +0100
+++ misc/build/rhino1_5R5/toolsrc/build.xml 2009-10-29 18:29:26.536908810 +0100
-@@ -12,6 +12,10 @@
+@@ -12,6 +12,8 @@
<os family="unix"/>
</and>
</condition>
+ <property environment="solenv"/>
-+ <condition property="swing_zip" value="${solenv.TARFILE_LOCATION}/swingExSrc.zip" else="../../../../../download/swingExSrc.zip">
-+ <isset property="solenv.TARFILE_LOCATION" />
-+ </condition>
++ <property name="swing_zip" value="${solenv.TARFILE_LOCATION}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip"/>
<path id="macPath" location="${java.home}/../Classes/classes.jar"/>
<!-- rhino.jar from OpenJDK breaks build -->
<path id="nonMacPath">
diff --git a/rsc/source/parser/erscerr.cxx b/rsc/source/parser/erscerr.cxx
index 11aaf9cce85f..158aea21b6e3 100644
--- a/rsc/source/parser/erscerr.cxx
+++ b/rsc/source/parser/erscerr.cxx
@@ -200,7 +200,7 @@ void RscError::WriteError( const ERRTYPE& rError, const char * pMessage )
case ERR_NOINPUT:
StdLstErr( "Input file was not specified.\n");
case ERR_USAGE:
- StdLstOut( "Copyright (C) 1990-92 STAR DIVISION GmbH\n" );
+ StdLstOut( "Copyright (C) 2000, 2010 Oracle and/or its affiliates.\n" );
{
char buf[40];
diff --git a/rsc/source/prj/gui.cxx b/rsc/source/prj/gui.cxx
index 0ff0549d161f..67d86a8b35cf 100644
--- a/rsc/source/prj/gui.cxx
+++ b/rsc/source/prj/gui.cxx
@@ -30,6 +30,7 @@
#include <stdlib.h>
#include <stdio.h>
+#include <sal/main.h>
#include <rscrsc.hxx>
#include <rscdb.hxx>
@@ -68,15 +69,7 @@ RscVerbosity lcl_determineVerbosity( int argc, char ** argv )
return RscVerbosityNormal;
}
-#if defined( UNX ) || ( defined( OS2 ) && ( defined( CSET ) || defined ( GCC ))) || defined (WTC) || defined(ICC) || defined(__MINGW32__)
-int main ( int argc, char ** argv) {
-#else
-#if defined( MTW )
-int main ( int argc, char const ** argv) {
-#else
-int cdecl main ( int argc, char ** argv) {
-#endif
-#endif
+SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) {
#ifndef UNX
#ifdef CSET
atexit( ExitProgram );
diff --git a/rsc/source/prj/start.cxx b/rsc/source/prj/start.cxx
index 8b952acb75f9..a2841dd9765b 100644
--- a/rsc/source/prj/start.cxx
+++ b/rsc/source/prj/start.cxx
@@ -54,6 +54,7 @@
#endif // UNX
#include <rsctools.hxx>
#include <rscerror.h>
+#include <sal/main.h>
#include <tools/fsys.hxx>
/*************** C O D E ************************************************/
@@ -322,14 +323,8 @@ static BOOL CallRsc2( ByteString aRsc2Name,
|* Letzte Aenderung MM 05.09.91
|*
*************************************************************************/
-#if defined UNX || (defined OS2 && (defined CSET || defined GCC )) || defined WTC || defined MTW || defined ICC || defined(__MINGW32__)
-int main ( int argc, char ** argv)
+SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
{
-#else
-int cdecl main ( int argc, char ** argv)
-{
-#endif
-
BOOL bPrePro = TRUE;
BOOL bResFile = TRUE;
BOOL bHelp = FALSE;
diff --git a/sal/cppunittester/cppunittester.cxx b/sal/cppunittester/cppunittester.cxx
new file mode 100644
index 000000000000..1082e6ff9844
--- /dev/null
+++ b/sal/cppunittester/cppunittester.cxx
@@ -0,0 +1,65 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 "precompiled_sal.hxx"
+#include "sal/config.h"
+
+#include <cstdlib>
+#include <iostream>
+
+#include "cppunit/CompilerOutputter.h"
+#include "cppunit/TestResult.h"
+#include "cppunit/TestResultCollector.h"
+#include "cppunit/TestRunner.h"
+#include "cppunit/extensions/TestFactoryRegistry.h"
+#include "cppunit/plugin/PlugInManager.h"
+#include "cppunit/portability/Stream.h"
+#include "osl/thread.h"
+#include "rtl/process.h"
+#include "rtl/string.hxx"
+#include "rtl/ustring.hxx"
+#include "sal/main.h"
+
+SAL_IMPLEMENT_MAIN() {
+ if (rtl_getAppCommandArgCount() != 1) {
+ std::cerr << "Usage: cppunittester <shared-library-path>" << std::endl;
+ return EXIT_FAILURE;
+ }
+ rtl::OUString path;
+ rtl_getAppCommandArg(0, &path.pData);
+ CppUnit::PlugInManager manager;
+ manager.load(
+ rtl::OUStringToOString(path, osl_getThreadTextEncoding()).getStr());
+ CppUnit::TestRunner runner;
+ runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
+ CppUnit::TestResult result;
+ CppUnit::TestResultCollector collector;
+ result.addListener(&collector);
+ runner.run(result);
+ CppUnit::CompilerOutputter(&collector, CppUnit::stdCErr()).write();
+ return collector.wasSuccessful() ? EXIT_SUCCESS : EXIT_FAILURE;
+}
diff --git a/testshl2/util/makefile.mk b/sal/cppunittester/makefile.mk
index 57eb9d546beb..938b63d90ae9 100644
--- a/testshl2/util/makefile.mk
+++ b/sal/cppunittester/makefile.mk
@@ -1,7 +1,7 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -23,16 +23,23 @@
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
-#*************************************************************************
-PRJ=..
+#***********************************************************************/
+
+PRJ = ..
+PRJNAME = sal
+TARGET = cppunittester
+
+ENABLE_EXCEPTIONS = TRUE
-PRJNAME=testshl2
-TARGET=testshl2
+.INCLUDE: settings.mk
-# --- Settings -----------------------------------------------------
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
-.INCLUDE : settings.mk
+OBJFILES = $(APP1OBJS)
-# --- Targets ------------------------------------------------------
+APP1OBJS = $(OBJ)/cppunittester.obj
+APP1RPATH = NONE
+APP1STDLIBS = $(CPPUNITLIB) $(SALLIB)
+APP1TARGET = cppunittester
-.INCLUDE : target.mk
+.INCLUDE: target.mk
diff --git a/sal/inc/osl/semaphor.h b/sal/inc/osl/semaphor.h
index 2986ae4bec6c..c0c74515404a 100644
--- a/sal/inc/osl/semaphor.h
+++ b/sal/inc/osl/semaphor.h
@@ -37,6 +37,10 @@ extern "C" {
typedef void* oslSemaphore;
/** Creates a semaphore.<BR>
+
+ @deprecated
+ Must not be used, as unnamed semaphores are not supported on Mac OS X.
+
@param InitialCount denotes the starting value the semaphore. If you set it to
zero, the first acquire() blocks. Otherwise InitialCount acquire()s are
immedeatly successfull.
@@ -45,12 +49,20 @@ typedef void* oslSemaphore;
oslSemaphore SAL_CALL osl_createSemaphore(sal_uInt32 initialCount);
/** Release the OS-structures and free semaphore data-structure
+
+ @deprecated
+ Must not be used, as unnamed semaphores are not supported on Mac OS X.
+
@return fbbb
*/
void SAL_CALL osl_destroySemaphore(oslSemaphore Semaphore);
/** acquire() decreases the count. It will block if it tries to
decrease below zero.
+
+ @deprecated
+ Must not be used, as unnamed semaphores are not supported on Mac OS X.
+
@return False if the system-call failed.
*/
sal_Bool SAL_CALL osl_acquireSemaphore(oslSemaphore Semaphore);
@@ -59,10 +71,17 @@ sal_Bool SAL_CALL osl_acquireSemaphore(oslSemaphore Semaphore);
return with False if it would decrease the count below zero.
(When acquire() would block.) If it could successfully
decrease the count, it will return True.
+
+ @deprecated
+ Must not be used, as unnamed semaphores are not supported on Mac OS X.
*/
sal_Bool SAL_CALL osl_tryToAcquireSemaphore(oslSemaphore Semaphore);
/** release() increases the count.
+
+ @deprecated
+ Must not be used, as unnamed semaphores are not supported on Mac OS X.
+
@return False if the system-call failed.
*/
sal_Bool SAL_CALL osl_releaseSemaphore(oslSemaphore Semaphore);
diff --git a/sal/inc/osl/semaphor.hxx b/sal/inc/osl/semaphor.hxx
index 6209aa9970a8..a45737d27524 100644
--- a/sal/inc/osl/semaphor.hxx
+++ b/sal/inc/osl/semaphor.hxx
@@ -35,7 +35,11 @@
namespace osl
{
+ /** C++ wrapper class around C semaphore functions.
+ @deprecated
+ Must not be used, as unnamed semaphores are not supported on Mac OS X.
+ */
class Semaphore {
public:
diff --git a/sal/osl/os2/process_impl.cxx b/sal/osl/os2/process_impl.cxx
index d27bd72190e5..27b12bbe0f6a 100644
--- a/sal/osl/os2/process_impl.cxx
+++ b/sal/osl/os2/process_impl.cxx
@@ -141,6 +141,7 @@ oslProcessError SAL_CALL osl_getExecutableFile (rtl_uString ** ppustrFile)
oslProcessError result = osl_Process_E_NotFound;
osl_acquireMutex(g_command_args.m_mutex);
+ OSL_ASSERT(g_command_args.m_nCount > 0);
if (g_command_args.m_nCount > 0)
{
/* CommandArgs set. Obtain argv[0]. */
@@ -160,6 +161,7 @@ sal_uInt32 SAL_CALL osl_getCommandArgCount (void)
sal_uInt32 result = 0;
osl_acquireMutex(g_command_args.m_mutex);
+ OSL_ASSERT(g_command_args.m_nCount > 0);
if (g_command_args.m_nCount > 0)
result = g_command_args.m_nCount - 1;
osl_releaseMutex(g_command_args.m_mutex);
@@ -175,6 +177,7 @@ oslProcessError SAL_CALL osl_getCommandArg (sal_uInt32 nArg, rtl_uString ** strC
oslProcessError result = osl_Process_E_NotFound;
osl_acquireMutex(g_command_args.m_mutex);
+ OSL_ASSERT(g_command_args.m_nCount > 0);
if (g_command_args.m_nCount > (nArg + 1))
{
rtl_uString_assign (strCommandArg, g_command_args.m_ppArgs[nArg + 1]);
@@ -190,7 +193,7 @@ oslProcessError SAL_CALL osl_getCommandArg (sal_uInt32 nArg, rtl_uString ** strC
**************************************/
void SAL_CALL osl_setCommandArgs (int argc, char ** argv)
{
-
+ OSL_ASSERT(argc > 0);
osl_acquireMutex(g_command_args.m_mutex);
OSL_ENSURE (g_command_args.m_nCount == 0, "osl_setCommandArgs(): CommandArgs already set.");
if (g_command_args.m_nCount == 0)
diff --git a/sal/osl/unx/process.c b/sal/osl/unx/process.c
index 5262fef5cd38..300a1446e81a 100644
--- a/sal/osl/unx/process.c
+++ b/sal/osl/unx/process.c
@@ -489,7 +489,16 @@ static void ChildStatusProc(void *pData)
{
int i;
for (i = 0; data.m_pszEnv[i] != NULL; i++)
- putenv(data.m_pszEnv[i]);
+ {
+ if (strchr(data.m_pszEnv[i], '=') == NULL)
+ {
+ unsetenv(data.m_pszEnv[i]); /*TODO: check error return*/
+ }
+ else
+ {
+ putenv(data.m_pszEnv[i]); /*TODO: check error return*/
+ }
+ }
OSL_TRACE("ChildStatusProc : starting '%s'",data.m_pszArgs[0]);
diff --git a/sal/osl/unx/process_impl.cxx b/sal/osl/unx/process_impl.cxx
index adfc59e9c8af..e712b6748e7f 100644
--- a/sal/osl/unx/process_impl.cxx
+++ b/sal/osl/unx/process_impl.cxx
@@ -184,6 +184,7 @@ oslProcessError SAL_CALL osl_getExecutableFile (rtl_uString ** ppustrFile)
oslProcessError result = osl_Process_E_NotFound;
pthread_mutex_lock (&(g_command_args.m_mutex));
+ OSL_ASSERT(g_command_args.m_nCount > 0);
if (g_command_args.m_nCount > 0)
{
/* CommandArgs set. Obtain argv[0]. */
@@ -203,6 +204,7 @@ sal_uInt32 SAL_CALL osl_getCommandArgCount (void)
sal_uInt32 result = 0;
pthread_mutex_lock (&(g_command_args.m_mutex));
+ OSL_ASSERT(g_command_args.m_nCount > 0);
if (g_command_args.m_nCount > 0)
result = g_command_args.m_nCount - 1;
pthread_mutex_unlock (&(g_command_args.m_mutex));
@@ -218,6 +220,7 @@ oslProcessError SAL_CALL osl_getCommandArg (sal_uInt32 nArg, rtl_uString ** strC
oslProcessError result = osl_Process_E_NotFound;
pthread_mutex_lock (&(g_command_args.m_mutex));
+ OSL_ASSERT(g_command_args.m_nCount > 0);
if (g_command_args.m_nCount > (nArg + 1))
{
rtl_uString_assign (strCommandArg, g_command_args.m_ppArgs[nArg + 1]);
@@ -233,6 +236,7 @@ oslProcessError SAL_CALL osl_getCommandArg (sal_uInt32 nArg, rtl_uString ** strC
**************************************/
void SAL_CALL osl_setCommandArgs (int argc, char ** argv)
{
+ OSL_ASSERT(argc > 0);
pthread_mutex_lock (&(g_command_args.m_mutex));
OSL_ENSURE (g_command_args.m_nCount == 0, "osl_setCommandArgs(): CommandArgs already set.");
if (g_command_args.m_nCount == 0)
diff --git a/sal/osl/w32/pipe.c b/sal/osl/w32/pipe.c
index 8f9da54dd52d..bd5185a2ba2b 100644
--- a/sal/osl/w32/pipe.c
+++ b/sal/osl/w32/pipe.c
@@ -629,7 +629,7 @@ oslPipeError SAL_CALL osl_getLastPipeError(oslPipe pPipe)
pPipe->m_Error = osl_Pipe_E_None;
}
else
- Error = osl_Pipe_E_None;
+ Error = osl_Pipe_E_NotFound;
return (Error);
}
diff --git a/sal/osl/w32/process.cxx b/sal/osl/w32/process.cxx
index b8b2d3893345..96187be7e203 100644
--- a/sal/osl/w32/process.cxx
+++ b/sal/osl/w32/process.cxx
@@ -322,6 +322,7 @@ oslProcessError SAL_CALL osl_getExecutableFile( rtl_uString **ppustrFile )
oslProcessError result = osl_Process_E_NotFound;
osl_acquireMutex (*osl_getGlobalMutex());
+ OSL_ASSERT(g_command_args.m_nCount > 0);
if (g_command_args.m_nCount > 0)
{
/* CommandArgs set. Obtain arv[0]. */
@@ -340,6 +341,7 @@ sal_uInt32 SAL_CALL osl_getCommandArgCount(void)
sal_uInt32 result = 0;
osl_acquireMutex (*osl_getGlobalMutex());
+ OSL_ASSERT(g_command_args.m_nCount > 0);
if (g_command_args.m_nCount > 0)
{
/* We're not counting argv[0] here. */
@@ -357,6 +359,7 @@ oslProcessError SAL_CALL osl_getCommandArg( sal_uInt32 nArg, rtl_uString **strCo
oslProcessError result = osl_Process_E_NotFound;
osl_acquireMutex (*osl_getGlobalMutex());
+ OSL_ASSERT(g_command_args.m_nCount > 0);
if (g_command_args.m_nCount > (nArg + 1))
{
/* We're not counting argv[0] here. */
@@ -372,6 +375,7 @@ oslProcessError SAL_CALL osl_getCommandArg( sal_uInt32 nArg, rtl_uString **strCo
void SAL_CALL osl_setCommandArgs (int argc, char ** argv)
{
+ OSL_ASSERT(argc > 0);
osl_acquireMutex (*osl_getGlobalMutex());
if (g_command_args.m_nCount == 0)
{
diff --git a/sal/osl/w32/procimpl.cxx b/sal/osl/w32/procimpl.cxx
index f46c233ee932..fc04d5b84a8f 100644
--- a/sal/osl/w32/procimpl.cxx
+++ b/sal/osl/w32/procimpl.cxx
@@ -169,8 +169,7 @@ namespace /* private */
{
rtl::OUString env_var = rtl::OUString(env_vars[i]);
- if ((env_var.getLength() == 0) ||
- (env_var.indexOf(NAME_VALUE_SEPARATOR) == -1))
+ if (env_var.getLength() == 0)
return false;
iterator_pair_t iter_pair = std::equal_range(
@@ -179,10 +178,17 @@ namespace /* private */
env_var,
less_environment_variable());
- if (iter_pair.first != iter_pair.second) // found
- *iter_pair.first = env_var;
- else // not found
- merged_env->insert(iter_pair.first, env_var);
+ if (env_var.indexOf(NAME_VALUE_SEPARATOR) == -1)
+ {
+ merged_env->erase(iter_pair.first, iter_pair.second);
+ }
+ else
+ {
+ if (iter_pair.first != iter_pair.second) // found
+ *iter_pair.first = env_var;
+ else // not found
+ merged_env->insert(iter_pair.first, env_var);
+ }
}
return true;
}
@@ -198,9 +204,9 @@ namespace /* private */
if (!create_merged_environment(environment_vars, n_environment_vars, &merged_env))
return false;
- // reserve enough space for the '\0'-separated environment strings and
+ // allocate enough space for the '\0'-separated environment strings and
// a final '\0'
- environment.reserve(calc_sum_of_string_lengths(merged_env) + 1);
+ environment.resize(calc_sum_of_string_lengths(merged_env) + 1);
string_container_const_iterator_t iter = merged_env.begin();
string_container_const_iterator_t iter_end = merged_env.end();
diff --git a/sal/prj/build.lst b/sal/prj/build.lst
index 5622d80edeef..c96c3977f725 100644
--- a/sal/prj/build.lst
+++ b/sal/prj/build.lst
@@ -1,4 +1,4 @@
-sa sal : xml2cmp stlport external BOOST:boost NULL
+sa sal : xml2cmp stlport external BOOST:boost CPPUNIT:cppunit NULL
sa sal usr1 - all sa_mkout NULL
sa sal\inc nmake - all sa_inc NULL
sa sal\typesconfig nmake - u sa_tc sa_inc NULL
@@ -14,3 +14,9 @@ sa sal\qa nmake - all sa_qa sa_util NULL
sa sal\osl\unx nmake - u sa_oslu sa_tc.u sa_inc NULL
sa sal\osl\all nmake - all sa_oslall sa_tc.u sa_inc NULL
sa sal\util nmake - all sa_util sa_tc.u sa_oslall sa_uwinapi.n sa_kill.n sa_onlineupdate.n sa_osln.n sa_oslp.p sa_oslu.u sa_rtl sa_textenc NULL
+sa sal\cppunittester nmake - all sa_cppunittester sa_cpprt.u sa_util NULL
+sa sal\qa\ByteSequence nmake - all sa_qa_ByteSequence sa_cppunittester sa_util NULL
+sa sal\qa\OStringBuffer nmake - all sa_qa_OStringBuffer sa_cppunittester sa_util NULL
+sa sal\qa\osl\mutex nmake - all sa_qa_osl_mutex sa_cppunittester sa_util NULL
+sa sal\qa\osl\pipe nmake - all sa_qa_osl_pipe sa_cppunittester sa_util NULL
+sa sal\qa\osl\profile nmake - all sa_qa_osl_profile sa_cppunittester sa_util NULL
diff --git a/sal/prj/d.lst b/sal/prj/d.lst
index bcd9c0e2c95a..3ce270bbbfc4 100644
--- a/sal/prj/d.lst
+++ b/sal/prj/d.lst
@@ -34,3 +34,5 @@ symlink: %_DEST%\lib%_EXT%\libuno_sal.dylib.3 %_DEST%\lib%_EXT%\libuno_sal.dylib
..\%__SRC%\inc\udkversion.h %_DEST%\inc%_EXT%\sal\udkversion.h
+..\%__SRC%\bin\cppunittester %_DEST%\bin%_EXT%\cppunittester
+..\%__SRC%\bin\cppunittester.exe %_DEST%\bin%_EXT%\cppunittester.exe
diff --git a/sal/qa/ByteSequence/ByteSequence.cxx b/sal/qa/ByteSequence/ByteSequence.cxx
index 8c1bebf934c7..3a408edb3ef0 100644
--- a/sal/qa/ByteSequence/ByteSequence.cxx
+++ b/sal/qa/ByteSequence/ByteSequence.cxx
@@ -33,7 +33,10 @@
#include <rtl/byteseq.hxx>
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
using namespace rtl;
@@ -590,18 +593,13 @@ public:
}; // class getData
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ByteSequence::ctor, "rtl_ByteSequence");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ByteSequence::assign, "rtl_ByteSequence");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ByteSequence::equal, "rtl_ByteSequence");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ByteSequence::notequal, "rtl_ByteSequence");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ByteSequence::getArray, "rtl_ByteSequence");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ByteSequence::realloc, "rtl_ByteSequence");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ByteSequence::getData, "rtl_ByteSequence");
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::ctor);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::assign);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::equal);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::notequal);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::getArray);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::realloc);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::getData);
} // namespace ByteSequence
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-NOADDITIONAL;
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sal/qa/ByteSequence/export.exp b/sal/qa/ByteSequence/export.exp
deleted file mode 100644
index a13529da5876..000000000000
--- a/sal/qa/ByteSequence/export.exp
+++ /dev/null
@@ -1 +0,0 @@
-registerAllTestFunction
diff --git a/sal/qa/ByteSequence/makefile.mk b/sal/qa/ByteSequence/makefile.mk
index 4727a0cc51b1..972444ca8b57 100644
--- a/sal/qa/ByteSequence/makefile.mk
+++ b/sal/qa/ByteSequence/makefile.mk
@@ -24,6 +24,11 @@
# for a copy of the LGPLv3 License.
#
#*************************************************************************
+
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
+
PRJ=..$/..
PRJNAME=sal
@@ -40,31 +45,34 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
#----------------------------------- OStringBuffer -----------------------------------
SHL1OBJS= \
$(SLO)$/ByteSequence.obj
SHL1TARGET= rtl_ByteSequence
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB)
+SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
SHL1IMPLIB= i$(SHL1TARGET)
# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME =$(SHL1TARGET)
-# DEF1EXPORTFILE= export.exp
SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
+SHL1RPATH = NONE
# --- BEGIN --------------------------------------------------------
SHL2OBJS= \
$(SLO)$/rtl_old_testbyteseq.obj
SHL2TARGET= rtl_old_testbyteseq
-SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB)
+SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB)
SHL2IMPLIB= i$(SHL2TARGET)
DEF2NAME =$(SHL2TARGET)
SHL2VERSIONMAP = $(PRJ)$/qa$/export.map
+SHL2RPATH = NONE
# END --------------------------------------------------------------
#------------------------------- All object files -------------------------------
@@ -76,3 +84,4 @@ SLOFILES=$(SHL1OBJS)
.INCLUDE : target.mk
.INCLUDE : _cppunit.mk
+.END
diff --git a/sal/qa/ByteSequence/rtl_old_testbyteseq.cxx b/sal/qa/ByteSequence/rtl_old_testbyteseq.cxx
index 0c5e7126ce2e..61c312162c78 100644
--- a/sal/qa/ByteSequence/rtl_old_testbyteseq.cxx
+++ b/sal/qa/ByteSequence/rtl_old_testbyteseq.cxx
@@ -34,13 +34,15 @@
#include <stdio.h>
-// #include <osl/diagnose.h>
+#include <osl/diagnose.h>
#include <rtl/byteseq.hxx>
using namespace ::rtl;
-#include <testshl/simpleheader.hxx>
-
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
namespace rtl_testbyteseq
{
@@ -126,7 +128,7 @@ void oldbyteseq::test_bytesequence_001()
} // namespace osl_test_file
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( rtl_testbyteseq::oldbyteseq, "rtl_ByteSequence" );
+CPPUNIT_TEST_SUITE_REGISTRATION( rtl_testbyteseq::oldbyteseq );
// -----------------------------------------------------------------------------
-NOADDITIONAL;
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sal/qa/OStringBuffer/export.exp b/sal/qa/OStringBuffer/export.exp
deleted file mode 100644
index a13529da5876..000000000000
--- a/sal/qa/OStringBuffer/export.exp
+++ /dev/null
@@ -1 +0,0 @@
-registerAllTestFunction
diff --git a/sal/qa/OStringBuffer/makefile.mk b/sal/qa/OStringBuffer/makefile.mk
index c7e3a2a37657..d46168dc4d0e 100644
--- a/sal/qa/OStringBuffer/makefile.mk
+++ b/sal/qa/OStringBuffer/makefile.mk
@@ -24,6 +24,11 @@
# for a copy of the LGPLv3 License.
#
#*************************************************************************
+
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
+
PRJ=..$/..
PRJNAME=sal
@@ -40,6 +45,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
#------------------------------- All object files -------------------------------
# do this here, so we get right dependencies
# SLOFILES= \
@@ -52,15 +59,14 @@ SHL1OBJS= \
$(SLO)$/rtl_String_Utils.obj
SHL1TARGET= rtl_OStringBuffer
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB)
+SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
SHL1IMPLIB= i$(SHL1TARGET)
# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME =$(SHL1TARGET)
-# DEF1EXPORTFILE= export.exp
SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-
+SHL1RPATH = NONE
#------------------------------- All object files -------------------------------
# do this here, so we get right dependencies
@@ -71,3 +77,4 @@ SLOFILES=$(SHL1OBJS)
.INCLUDE : target.mk
.INCLUDE : _cppunit.mk
+.END
diff --git a/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx b/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
index c2221aa68682..01a620e8a238 100644
--- a/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
+++ b/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx
@@ -35,7 +35,12 @@
#include <rtl/strbuf.hxx>
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
+
+#include <string.h>
using namespace rtl;
@@ -18404,67 +18409,34 @@ t_print("\n");
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::ctors,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::makeStringAndClear,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::getLength,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::getCapacity,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::ensureCapacity,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::setLength,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::charAt,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::csuc,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::getStr,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::setCharAt,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_001,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_002,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_003,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_004,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_005,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_006_Int32,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_006_Int32_Bounderies,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_006_Int32_Negative,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_006_Int32_WrongRadix,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_006_Int32_defaultParam,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_007_Int64,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_007_Int64_Bounderies,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_007_Int64_Negative,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_007_Int64_WrongRadix,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_007_Int64_defaultParam,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_008_float,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_008_Float_Negative,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_009_double,
- "rtl_OStringBuffer");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OStringBuffer::append_009_Double_Negative,
- "rtl_OStringBuffer");
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-NOADDITIONAL;
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::ctors);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::makeStringAndClear);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::getLength);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::getCapacity);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::ensureCapacity);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::setLength);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::charAt);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::csuc);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::getStr);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::setCharAt);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_001);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_002);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_003);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_004);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_005);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_006_Int32);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_006_Int32_Bounderies);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_006_Int32_Negative);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_006_Int32_WrongRadix);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_006_Int32_defaultParam);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_007_Int64);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_007_Int64_Bounderies);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_007_Int64_Negative);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_007_Int64_WrongRadix);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_007_Int64_defaultParam);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_008_float);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_008_Float_Negative);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_009_double);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OStringBuffer::append_009_Double_Negative);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sal/qa/OStringBuffer/rtl_String_Const.h b/sal/qa/OStringBuffer/rtl_String_Const.h
index 8e5a2977b27a..fb0f9409dded 100644
--- a/sal/qa/OStringBuffer/rtl_String_Const.h
+++ b/sal/qa/OStringBuffer/rtl_String_Const.h
@@ -542,7 +542,6 @@ static const sal_Int32 expValStrLastNormal[nStrLastNormalCount] =
0,-1,0,4,-1,-1,-1,-1,-1,3,15,11
};
//------------------------------------------------------------------------
-static const sal_Int32 kNonSInt64Max = LONG_MIN;
static const sal_Int32 kNonSInt32Max = INT_MIN;
static const sal_Int32 kNonSInt16Max = SHRT_MIN;
//------------------------------------------------------------------------
diff --git a/sal/qa/OStringBuffer/rtl_String_Utils.cxx b/sal/qa/OStringBuffer/rtl_String_Utils.cxx
index 0dc2caaf83be..74b3e80e47c1 100644
--- a/sal/qa/OStringBuffer/rtl_String_Utils.cxx
+++ b/sal/qa/OStringBuffer/rtl_String_Utils.cxx
@@ -88,7 +88,7 @@ sal_Char* cpystr( sal_Char* dst, const sal_Char* src )
const sal_Char* psrc = src;
sal_Char* pdst = dst;
- while( *pdst++ = *psrc++ );
+ while( (*pdst++ = *psrc++) );
return ( dst );
}
diff --git a/sal/qa/export.map b/sal/qa/export.map
index 0e4fe0c88ff2..3308588ef6f8 100755
--- a/sal/qa/export.map
+++ b/sal/qa/export.map
@@ -25,9 +25,9 @@
#
#*************************************************************************
-UDK_3.0 {
+UDK_3_0_0 {
global:
- registerAllTestFunction;
+ cppunitTestPlugIn;
local:
*;
diff --git a/sal/qa/osl/module/export_dll.map b/sal/qa/osl/module/export_dll.map
index 9527d66debdc..87c701f21d91 100644
--- a/sal/qa/osl/module/export_dll.map
+++ b/sal/qa/osl/module/export_dll.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-UDK_3.0 {
+UDK_3_0_0 {
global:
firstfunc;
diff --git a/sal/qa/osl/mutex/makefile.mk b/sal/qa/osl/mutex/makefile.mk
index 4ec1e56c8a17..de4121e3a0b9 100755
--- a/sal/qa/osl/mutex/makefile.mk
+++ b/sal/qa/osl/mutex/makefile.mk
@@ -25,6 +25,10 @@
#
#*************************************************************************
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
+
PRJ=..$/..$/..
PRJNAME=sal
@@ -39,25 +43,24 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:Socket by codegen.pl
SHL1OBJS= \
$(SLO)$/osl_Mutex.obj
SHL1TARGET= osl_Mutex
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB)
+SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
.IF "$(GUI)" == "WNT"
SHL1STDLIBS += $(WS2_32LIB)
.ENDIF
-.IF "$(GUI)" == "UNX"
-SHL1STDLIBS += -ldl -lnsl
-.ENDIF
-
SHL1IMPLIB= i$(SHL1TARGET)
DEF1NAME =$(SHL1TARGET)
SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
+SHL1RPATH = NONE
# auto generated Target:Socket
# END ------------------------------------------------------------------
@@ -66,3 +69,5 @@ SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
.INCLUDE : target.mk
.INCLUDE : _cppunit.mk
+
+.END
diff --git a/sal/qa/osl/mutex/osl_Mutex.cxx b/sal/qa/osl/mutex/osl_Mutex.cxx
index 45292da9718a..df0d2fe8ef6b 100755
--- a/sal/qa/osl/mutex/osl_Mutex.cxx
+++ b/sal/qa/osl/mutex/osl_Mutex.cxx
@@ -31,6 +31,10 @@
//------------------------------------------------------------------------
// include files
//------------------------------------------------------------------------
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
#include <osl_Mutex_Const.h>
using namespace osl;
@@ -46,17 +50,17 @@ inline void printUString( const ::rtl::OUString & str )
{
rtl::OString aString;
- t_print("#printUString_u# " );
+ printf("#printUString_u# " );
aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- t_print("%s\n", aString.getStr( ) );
+ printf("%s\n", aString.getStr( ) );
}
/** print Boolean value.
*/
inline void printBool( sal_Bool bOk )
{
- t_print("#printBool# " );
- ( sal_True == bOk ) ? t_print("YES!\n" ): t_print("NO!\n" );
+ printf("#printBool# " );
+ ( sal_True == bOk ) ? printf("YES!\n" ): printf("NO!\n" );
}
/** pause nSec seconds helper function.
@@ -75,7 +79,7 @@ namespace ThreadHelper
#if ( defined UNX ) || ( defined OS2 ) //Unix
sleep( _nSec );
#endif
- // t_print("# done\n" );
+ // printf("# done\n" );
}
void thread_sleep_tenth_sec(sal_Int32 _nTenthSec)
{
@@ -227,7 +231,7 @@ protected:
{
// block here if the mutex has been acquired
pMyMutex->acquire( );
- t_print("# Mutex acquired. \n" );
+ printf("# Mutex acquired. \n" );
pMyMutex->release( );
}
};
@@ -273,7 +277,7 @@ protected:
Mutex* pGlobalMutex;
pGlobalMutex = pGlobalMutex->getGlobalMutex( );
pGlobalMutex->acquire( );
- t_print("# Global Mutex acquired. \n" );
+ printf("# Global Mutex acquired. \n" );
pGlobalMutex->release( );
}
};
@@ -338,7 +342,7 @@ namespace osl_Mutex
bRes = sal_True;
/*for (sal_Int8 i=0; i<BUFFER_SIZE; i++)
- t_print("#data in buffer is %d\n", m_Data.buffer[i]);
+ printf("#data in buffer is %d\n", m_Data.buffer[i]);
*/
CPPUNIT_ASSERT_MESSAGE("Mutex ctor", bRes == sal_True);
@@ -692,7 +696,7 @@ protected:
void SAL_CALL run( )
{
// acquire the mutex
- // t_print("# ClearGuardThread" );
+ // printf("# ClearGuardThread" );
ClearableMutexGuard aGuard( pMyMutex );
ThreadHelper::thread_sleep( 5 );
@@ -768,7 +772,7 @@ namespace osl_ClearableGuard
TimeValue aTimeVal_after;
osl_getSystemTime( &aTimeVal_after );
sal_Int32 nSec = aTimeVal_after.Seconds - aTimeVal_befor.Seconds;
- t_print("nSec is %d\n", nSec);
+ printf("nSec is %"SAL_PRIdINT32"\n", nSec);
myThread.join();
@@ -834,7 +838,7 @@ protected:
void SAL_CALL run( )
{
// acquire the mutex
- t_print("# ResettableGuard" );
+ printf("# ResettableGuard" );
ResettableMutexGuard aGuard( pMyMutex );
// release the mutex
aGuard.clear( );
@@ -933,13 +937,11 @@ namespace osl_ResettableGuard
}; // class reset
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_ResettableGuard::ctor, "osl_ResettableGuard");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_ResettableGuard::reset, "osl_ResettableGuard");
+CPPUNIT_TEST_SUITE_REGISTRATION(osl_ResettableGuard::ctor);
+CPPUNIT_TEST_SUITE_REGISTRATION(osl_ResettableGuard::reset);
} // namespace osl_ResettableGuard
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-NOADDITIONAL;
+CPPUNIT_PLUGIN_IMPLEMENT();
// The following sets variables for GNU EMACS
// Local Variables:
diff --git a/sal/qa/osl/mutex/osl_Mutex_Const.h b/sal/qa/osl/mutex/osl_Mutex_Const.h
index 7ae2de6fba63..30d321775f01 100755
--- a/sal/qa/osl/mutex/osl_Mutex_Const.h
+++ b/sal/qa/osl/mutex/osl_Mutex_Const.h
@@ -1,5 +1,5 @@
/*************************************************************************
-*
+ *
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
@@ -46,8 +46,6 @@
#endif
#include <osl/time.h>
-#include <testshl/simpleheader.hxx>
-
#ifdef UNX
#include <unistd.h>
#endif
diff --git a/sal/qa/osl/pipe/export.exp b/sal/qa/osl/pipe/export.exp
deleted file mode 100644
index a13529da5876..000000000000
--- a/sal/qa/osl/pipe/export.exp
+++ /dev/null
@@ -1 +0,0 @@
-registerAllTestFunction
diff --git a/sal/qa/osl/pipe/makefile.mk b/sal/qa/osl/pipe/makefile.mk
index 23ae77d2bbcc..6350cdba0233 100644
--- a/sal/qa/osl/pipe/makefile.mk
+++ b/sal/qa/osl/pipe/makefile.mk
@@ -25,6 +25,10 @@
#
#*************************************************************************
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
+
PRJ=..$/..$/..
PRJNAME=sal
@@ -39,20 +43,22 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:Pipe by codegen.pl
SHL1OBJS= \
$(SLO)$/osl_Pipe.obj
SHL1TARGET= osl_Pipe
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB)
+SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
SHL1IMPLIB= i$(SHL1TARGET)
# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME =$(SHL1TARGET)
SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-# DEF1EXPORTFILE= export.exp
+SHL1RPATH = NONE
# auto generated Target:Pipe
# END ------------------------------------------------------------------
@@ -60,3 +66,5 @@ SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
.INCLUDE : target.mk
.INCLUDE : _cppunit.mk
+
+.END
diff --git a/sal/qa/osl/pipe/osl_Pipe.cxx b/sal/qa/osl/pipe/osl_Pipe.cxx
index 89c6ac4927f5..6371ad3b5250 100644
--- a/sal/qa/osl/pipe/osl_Pipe.cxx
+++ b/sal/qa/osl/pipe/osl_Pipe.cxx
@@ -32,7 +32,10 @@
// include files
//------------------------------------------------------------------------
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
#include <sal/types.h>
#include <rtl/ustring.hxx>
@@ -52,6 +55,7 @@
#ifdef UNX
#include <unistd.h>
#endif
+#include <string.h>
using namespace osl;
using namespace rtl;
@@ -64,8 +68,8 @@ using namespace rtl;
*/
inline void printBool( sal_Bool bOk )
{
- t_print("#printBool# " );
- ( sal_True == bOk ) ? t_print("YES!\n" ): t_print("NO!\n" );
+ printf("#printBool# " );
+ ( sal_True == bOk ) ? printf("YES!\n" ): printf("NO!\n" );
}
/** print a UNI_CODE String.
@@ -74,9 +78,9 @@ inline void printUString( const ::rtl::OUString & str )
{
rtl::OString aString;
- t_print("#printUString_u# " );
+ printf("#printUString_u# " );
aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- t_print("%s\n", aString.getStr( ) );
+ printf("%s\n", aString.getStr( ) );
}
/** print last error of pipe system.
@@ -84,43 +88,43 @@ inline void printUString( const ::rtl::OUString & str )
inline void printPipeError( ::osl::Pipe aPipe )
{
oslPipeError nError = aPipe.getError( );
- t_print("#printPipeError# " );
+ printf("#printPipeError# " );
switch ( nError ) {
case osl_Pipe_E_None:
- t_print("Success!\n" );
+ printf("Success!\n" );
break;
case osl_Pipe_E_NotFound:
- t_print("The returned error is: Not found!\n" );
+ printf("The returned error is: Not found!\n" );
break;
case osl_Pipe_E_AlreadyExists:
- t_print("The returned error is: Already exist!\n" );
+ printf("The returned error is: Already exist!\n" );
break;
case osl_Pipe_E_NoProtocol:
- t_print("The returned error is: No protocol!\n" );
+ printf("The returned error is: No protocol!\n" );
break;
case osl_Pipe_E_NetworkReset:
- t_print("The returned error is: Network reset!\n" );
+ printf("The returned error is: Network reset!\n" );
break;
case osl_Pipe_E_ConnectionAbort:
- t_print("The returned error is: Connection aborted!\n" );
+ printf("The returned error is: Connection aborted!\n" );
break;
case osl_Pipe_E_ConnectionReset:
- t_print("The returned error is: Connection reset!\n" );
+ printf("The returned error is: Connection reset!\n" );
break;
case osl_Pipe_E_NoBufferSpace:
- t_print("The returned error is: No buffer space!\n" );
+ printf("The returned error is: No buffer space!\n" );
break;
case osl_Pipe_E_TimedOut:
- t_print("The returned error is: Timeout!\n" );
+ printf("The returned error is: Timeout!\n" );
break;
case osl_Pipe_E_ConnectionRefused:
- t_print("The returned error is: Connection refused!\n" );
+ printf("The returned error is: Connection refused!\n" );
break;
case osl_Pipe_E_invalidError:
- t_print("The returned error is: Invalid error!\n" );
+ printf("The returned error is: Invalid error!\n" );
break;
default:
- t_print("The returned error is: Number %d, Unknown Error\n", nError );
+ printf("The returned error is: Number %d, Unknown Error\n", nError );
break;
}
}
@@ -625,8 +629,8 @@ namespace osl_Pipe
printPipeError( aPipe );
aPipe.clear( );
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: open a non-exist pipe. not passed in (W32)(LINUX)(UNX).",
- osl_Pipe_E_invalidError == nError );
+ CPPUNIT_ASSERT_MESSAGE( "#test comment#: open a non-exist pipe.",
+ nError != osl_Pipe_E_None );
}
void getError_002( )
@@ -638,8 +642,8 @@ namespace osl_Pipe
aPipe.clear( );
aPipe1.clear( );
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: create an already exist pipe.not passed in (W32)(LINUX)(UNX).",
- osl_Pipe_E_invalidError == nError );
+ CPPUNIT_ASSERT_MESSAGE( "#test comment#: create an already exist pipe.",
+ nError != osl_Pipe_E_None );
}
CPPUNIT_TEST_SUITE( getError );
@@ -687,17 +691,17 @@ namespace osl_Pipe
// -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Pipe::ctors, "osl_Pipe");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Pipe::is, "osl_Pipe");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Pipe::create, "osl_Pipe");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Pipe::clear, "osl_Pipe");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Pipe::assign, "osl_Pipe");
-//CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Pipe::isValid, "osl_Pipe");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Pipe::isEqual, "osl_Pipe");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Pipe::close, "osl_Pipe");
- //CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Pipe::accept, "osl_Pipe");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Pipe::getError, "osl_Pipe");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Pipe::getHandle, "osl_Pipe");
+ CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::ctors);
+ CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::is);
+ CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::create);
+ CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::clear);
+ CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::assign);
+//CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::isValid);
+ CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::isEqual);
+ CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::close);
+ //CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::accept);
+ CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::getError);
+ CPPUNIT_TEST_SUITE_REGISTRATION(osl_Pipe::getHandle);
// -----------------------------------------------------------------------------
} // namespace osl_Pipe
@@ -881,7 +885,7 @@ namespace osl_StreamPipe
void thread_sleep( sal_Int32 _nSec )
{
/// print statement in thread process must use fflush() to force display.
- // t_print("wait %d seconds. ", _nSec );
+ // printf("wait %d seconds. ", _nSec );
fflush(stdout);
#ifdef WNT //Windows
@@ -890,7 +894,7 @@ namespace osl_StreamPipe
#if ( defined UNX ) || ( defined OS2 ) //Unix
sleep( _nSec );
#endif
- // t_print("done\n" );
+ // printf("done\n" );
}
// test read/write & send/recv data to pipe
// -----------------------------------------------------------------------------
@@ -909,27 +913,27 @@ namespace osl_StreamPipe
{
sal_Int32 nChars = 0;
- t_print("open pipe\n");
+ printf("open pipe\n");
::osl::StreamPipe aSenderPipe( aTestPipeName, osl_Pipe_OPEN ); // aTestPipeName is a string = "TestPipe"
if ( aSenderPipe.is() == sal_False )
{
- t_print("pipe open failed! \n");
+ printf("pipe open failed! \n");
}
else
{
- t_print("read\n");
+ printf("read\n");
nChars = aSenderPipe.read( buf, m_pTestString1.getLength() + 1 );
if ( nChars < 0 )
{
- t_print("read failed! \n");
+ printf("read failed! \n");
return;
}
- t_print("buffer is %s \n", buf);
- t_print("send\n");
+ printf("buffer is %s \n", buf);
+ printf("send\n");
nChars = aSenderPipe.send( m_pTestString2.getStr(), m_pTestString2.getLength() + 1 );
if ( nChars < 0 )
{
- t_print("client send failed! \n");
+ printf("client send failed! \n");
return;
}
}
@@ -948,7 +952,7 @@ namespace osl_StreamPipe
::osl::StreamPipe aConnectionPipe;
Pipe_DataSource_Thread( )
{
- t_print("create pipe\n");
+ printf("create pipe\n");
aListenPipe.create( aTestPipeName, osl_Pipe_CREATE );
}
~Pipe_DataSource_Thread( )
@@ -961,40 +965,40 @@ namespace osl_StreamPipe
//create pipe.
sal_Int32 nChars;
//::osl::StreamPipe aListenPipe( aTestPipeName, osl_Pipe_CREATE );
- t_print("listen\n");
+ printf("listen\n");
if ( aListenPipe.is() == sal_False )
{
- t_print("pipe create failed! \n");
+ printf("pipe create failed! \n");
}
else
{
//::osl::StreamPipe aConnectionPipe;
//start server and wait for connection.
- t_print("accept\n");
+ printf("accept\n");
if ( osl_Pipe_E_None != aListenPipe.accept( aConnectionPipe ) )
{
- t_print("pipe accept failed!");
+ printf("pipe accept failed!");
return;
}
- t_print("write\n");
+ printf("write\n");
// write to pipe
nChars = aConnectionPipe.write( m_pTestString1.getStr(), m_pTestString1.getLength() + 1 );
if ( nChars < 0)
{
- t_print("server write failed! \n");
+ printf("server write failed! \n");
return;
}
- t_print("recv\n");
+ printf("recv\n");
nChars = aConnectionPipe.recv( buf, 256 );
if ( nChars < 0)
{
- t_print("server receive failed! \n");
+ printf("server receive failed! \n");
return;
}
//thread_sleep( 2 );
- t_print("received message is: %s\n", buf );
+ printf("received message is: %s\n", buf );
//aConnectionPipe.close();
}
}
@@ -1045,16 +1049,11 @@ namespace osl_StreamPipe
}; // class recv
// -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_StreamPipe::ctors, "osl_StreamPipe");
-//CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_StreamPipe::assign, "osl_StreamPipe");
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_StreamPipe::recv, "osl_StreamPipe");
+ CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamPipe::ctors);
+//CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamPipe::assign);
+ CPPUNIT_TEST_SUITE_REGISTRATION(osl_StreamPipe::recv);
// -----------------------------------------------------------------------------
} // namespace osl_StreamPipe
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-NOADDITIONAL;
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sal/qa/osl/pipe/osl_Pipe.xsce b/sal/qa/osl/pipe/osl_Pipe.xsce
deleted file mode 100644
index d96a915d8ab9..000000000000
--- a/sal/qa/osl/pipe/osl_Pipe.xsce
+++ /dev/null
@@ -1,9 +0,0 @@
-#i23307#
-osl_Pipe.getError.getError_001 wntmsci
-osl_Pipe.getError.getError_002 wntmsci
-
-osl_StreamPipe.recv.recv_002 wntmsci unxsols
-# osl_Pipe.ctors.ctors_acquire wntmsci
-
-#i27889#
-osl_Pipe.ctors.ctors_no_acquire wntmsci
diff --git a/sal/qa/osl/pipe/osl_Pipe_Const.h b/sal/qa/osl/pipe/osl_Pipe_Const.h
deleted file mode 100644
index 0b70655eabc0..000000000000
--- a/sal/qa/osl/pipe/osl_Pipe_Const.h
+++ /dev/null
@@ -1 +0,0 @@
-// no longer used
diff --git a/sal/qa/osl/profile/makefile.mk b/sal/qa/osl/profile/makefile.mk
index aa99e25f7c3b..a95db211c2a6 100644
--- a/sal/qa/osl/profile/makefile.mk
+++ b/sal/qa/osl/profile/makefile.mk
@@ -24,6 +24,11 @@
# for a copy of the LGPLv3 License.
#
#*************************************************************************
+
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
+
PRJ=..$/..$/..
PRJNAME=sal
@@ -39,16 +44,19 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
SHL1OBJS= \
$(SLO)$/osl_old_testprofile.obj
SHL1TARGET= osl_old_testprofile
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB)
+SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
SHL1IMPLIB= i$(SHL1TARGET)
DEF1NAME =$(SHL1TARGET)
SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
+SHL1RPATH = NONE
# END ------------------------------------------------------------------
@@ -62,4 +70,4 @@ SLOFILES=\
.INCLUDE : target.mk
.INCLUDE : _cppunit.mk
-
+.END
diff --git a/sal/qa/osl/profile/osl_old_testprofile.cxx b/sal/qa/osl/profile/osl_old_testprofile.cxx
index d85e80203cb3..966a453dc79f 100644
--- a/sal/qa/osl/profile/osl_old_testprofile.cxx
+++ b/sal/qa/osl/profile/osl_old_testprofile.cxx
@@ -37,7 +37,10 @@
#include <stdio.h>
#include <osl/profile.h>
-#include <testshl/simpleheader.hxx>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
//==================================================================================================
// -----------------------------------------------------------------------------
@@ -64,7 +67,8 @@ void oldtests::test_profile(void)
// successful write
- if (hProfile = osl_openProfile( ustrProfileName, 0 ))
+ hProfile = osl_openProfile( ustrProfileName, 0 );
+ if (hProfile != 0)
{
if (! osl_writeProfileBool( hProfile, "testsection", "testbool", 1 ))
printf( "### cannot write into init file!\n" );
@@ -73,7 +77,8 @@ void oldtests::test_profile(void)
}
// unsuccessful write
- if (hProfile = osl_openProfile( ustrProfileName2, 0 ))
+ hProfile = osl_openProfile( ustrProfileName2, 0 );
+ if (hProfile != 0)
{
if (osl_writeProfileBool( hProfile, "testsection", "testbool", 1 ))
printf( "### unexpected success writing into test2.ini!\n" );
@@ -88,7 +93,7 @@ void oldtests::test_profile(void)
} // namespace osl_Profile
// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_Profile::oldtests, "osl_Profile" );
+CPPUNIT_TEST_SUITE_REGISTRATION( osl_Profile::oldtests );
// -----------------------------------------------------------------------------
-NOADDITIONAL;
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sal/qa/osl/semaphore/makefile.mk b/sal/qa/osl/semaphore/makefile.mk
deleted file mode 100644
index 3cab9d650477..000000000000
--- a/sal/qa/osl/semaphore/makefile.mk
+++ /dev/null
@@ -1,61 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=sal
-TARGET=qa_osl_semaphore
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-CFLAGS+= $(LFS_CFLAGS)
-CXXFLAGS+= $(LFS_CFLAGS)
-
-# BEGIN ----------------------------------------------------------------
-# auto generated Target:Semaphore by codegen.pl
-SHL1OBJS= \
- $(SLO)$/osl_Semaphore.obj
-
-SHL1TARGET= osl_Semaphore
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-
-# auto generated Target:Semaphore
-# END ------------------------------------------------------------------
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : _cppunit.mk
diff --git a/sal/qa/osl/semaphore/osl_Semaphore.cxx b/sal/qa/osl/semaphore/osl_Semaphore.cxx
deleted file mode 100644
index 4a02e284a89b..000000000000
--- a/sal/qa/osl/semaphore/osl_Semaphore.cxx
+++ /dev/null
@@ -1,525 +0,0 @@
- /*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_sal.hxx"
-
-//------------------------------------------------------------------------
-// include files
-//------------------------------------------------------------------------
-#include <osl_Semaphore_Const.h>
-
-using namespace osl;
-using namespace rtl;
-
-
-//------------------------------------------------------------------------
-// helper functions and classes
-//------------------------------------------------------------------------
-
-/** print Boolean value.
-*/
-inline void printBool( sal_Bool bOk )
-{
- t_print("#printBool# " );
- ( sal_True == bOk ) ? t_print("YES!\n" ): t_print("NO!\n" );
-}
-
-/** print a UNI_CODE String.
-*/
-inline void printUString( const ::rtl::OUString & str )
-{
- rtl::OString aString;
-
- t_print("#printUString_u# " );
- aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US );
- t_print("%s\n", aString.getStr( ) );
-}
-
-/** wait _nSec seconds.
-*/
-void thread_sleep( sal_Int32 _nSec )
-{
- /// print statement in thread process must use fflush() to force display.
- // t_print("wait %d seconds. ", _nSec );
- // fflush( stdout );
-
-#ifdef WNT //Windows
- Sleep( _nSec * 1000 );
-#endif
-#if ( defined UNX ) || ( defined OS2 ) //Unix
- sleep( _nSec );
-#endif
-}
-
- void thread_sleep_tenth_sec(sal_Int32 _nTenthSec)
- {
-#ifdef WNT //Windows
- Sleep(_nTenthSec * 100 );
-#endif
-#if ( defined UNX ) || ( defined OS2 ) //Unix
- TimeValue nTV;
- nTV.Seconds = static_cast<sal_uInt32>( _nTenthSec/10 );
- nTV.Nanosec = ( (_nTenthSec%10 ) * 100000000 );
- osl_waitThread(&nTV);
-#endif
-}
-
-/** thread for testing Semaphore acquire.
- */
-class HoldThread : public Thread
-{
-public:
- //get the Semaphores to operate
- HoldThread( ::osl::Semaphore& Sem ): MySem( Sem ) { }
-
- ~HoldThread( )
- {
- CPPUNIT_ASSERT_MESSAGE( "#HoldThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-protected:
- ::osl::Semaphore& MySem;
-
- void SAL_CALL run()
- {
- // block here if it tries to decrease below zero.
- MySem.acquire( );
- t_print("Semaphore acquired. \n" );
- MySem.release( );
- }
-};
-
-/** thread for testing Semaphore release and tryToAcquire.
- */
-class WaitThread : public Thread
-{
-public:
- //get the Semaphore pointer to operate
- WaitThread( ::osl::Semaphore& Sem ): MySem( Sem ) { }
-
- ~WaitThread( )
- {
- CPPUNIT_ASSERT_MESSAGE( "WaitThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-protected:
- Semaphore& MySem;
-
- void SAL_CALL run( )
- {
- // block here if the semaphore has been acquired
- MySem.acquire( );
- thread_sleep_tenth_sec( 2 );
- MySem.release( );
- }
-};
-
-/** thread for producer-consumer model.
- */
-#define BSIZE 50
-class SemBuffer
-{
-public:
- sal_Int32 Buf[BSIZE];
- ::osl::Semaphore& aSemOccupied;
- ::osl::Semaphore& aSemEmpty;
- ::osl::Mutex& aMutex;
-
- SemBuffer( ::osl::Semaphore& Sem, ::osl::Semaphore& Sem1, ::osl::Mutex& Mut )
- :aSemOccupied( Sem ), aSemEmpty( Sem1 ), aMutex( Mut )
- {
- for ( sal_Int8 iCount=0; iCount < BSIZE; iCount++ )
- Buf[iCount] = 0;
- }
-};
-
-class WriterThread : public Thread
-{
-public:
- //get the Semaphores to operate
- WriterThread( SemBuffer& aSemBuffer ): MySemBuffer( aSemBuffer ){ }
-
- ~WriterThread( )
- {
- CPPUNIT_ASSERT_MESSAGE( "WriterThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-protected:
- SemBuffer& MySemBuffer;
-
- void SAL_CALL run( )
- {
- for ( sal_Int32 iCount = 0; iCount < BSIZE; iCount++ )
- {
- MySemBuffer.aSemEmpty.acquire( ) ;
- MySemBuffer.aMutex.acquire( ) ;
- MySemBuffer.Buf[iCount] = iCount;
- MySemBuffer.aMutex.release( ) ;
- MySemBuffer.aSemOccupied.release( ) ;
- }
- }
-};
-
-class ReaderThread : public Thread
-{
-public:
- //get the Semaphores to operate
- ReaderThread( SemBuffer& aSemBuffer ): MySemBuffer( aSemBuffer ){ }
-
- ~ReaderThread( )
- {
- CPPUNIT_ASSERT_MESSAGE( "ReaderThread does not shutdown properly.\n", sal_False == this -> isRunning( ) );
- }
-
-protected:
- SemBuffer& MySemBuffer;
-
- void SAL_CALL run( )
- {
- for ( sal_Int32 iCount = 0; iCount < BSIZE; iCount++ )
- {
- MySemBuffer.aSemOccupied.acquire( ) ;
- MySemBuffer.aMutex.acquire( ) ;
- MySemBuffer.Buf[iCount] *= MySemBuffer.Buf[iCount];
- MySemBuffer.aMutex.release( ) ;
- MySemBuffer.aSemEmpty.release( ) ;
- }
- }
-};
-
-
-
-//------------------------------------------------------------------------
-// test code start here
-//------------------------------------------------------------------------
-
-namespace osl_Semaphore
-{
-
- /** testing the method:
- Semaphore(sal_uInt32 initialCount);
- */
- class ctors : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1;
-
- void ctors_001( )
- {
- ::osl::Semaphore aSem(sal_uInt32(0));
- bRes = aSem.tryToAcquire( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: create semaphore with initialCount = 0. the first acquire will block.",
- sal_False == bRes );
- }
-
- void ctors_002( )
- {
- ::osl::Semaphore aSem(sal_uInt32(1));
- bRes = aSem.tryToAcquire( );
- if ( sal_True == bRes )
- aSem.release( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: create semaphore with initialCount = 1. the first acquire will not block.",
- sal_True == bRes );
- }
-
- void ctors_003( )
- {
- ::osl::Semaphore aSem(sal_uInt32(1));
- bRes = aSem.tryToAcquire( );
- bRes1 = aSem.tryToAcquire( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: create semaphore with initialCount = 1. acquire twice will cause block.",
- sal_True == bRes && sal_False == bRes1);
- }
-
- void ctors_004( )
- {
- oslSemaphore hSem = new ::osl::Semaphore(sal_uInt32(1));
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test return value of the constructor, it should not be NULL.",
- NULL != hSem );
- }
-
- void ctors_005( )
- {
- ::osl::Semaphore aSemaphore(sal_uInt32(2));
- bRes = aSemaphore.tryToAcquire( )&&
- aSemaphore.tryToAcquire( )&&
- !aSemaphore.tryToAcquire( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: create semaphore with initialCount = 2. guess what behaviour will the semaphore act like.",
- sal_True == bRes );
- }
-
- CPPUNIT_TEST_SUITE( ctors );
- CPPUNIT_TEST( ctors_001 );
- CPPUNIT_TEST( ctors_002 );
- CPPUNIT_TEST( ctors_003 );
- CPPUNIT_TEST( ctors_004 );
- CPPUNIT_TEST( ctors_005 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class ctors
-
-
- /** testing the method:
- sal_Bool acquire();
- */
- class acquire : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1, bRes2;
-
- /** tester comment:
- acquire semaphore in main thread, and then call acquire again in myThread,
- the child thread should block, wait 2 secs, it still block. Then release
- semaphore in main thread, the child thread could return from acquire, and
- go to exec next statement, so could terminate quickly.
- */
-
- void acquire_001( )
- {
- // launch the child thread
- ::osl::Semaphore aSemaphore(1);
- bRes = aSemaphore.acquire( );
- HoldThread myThread( aSemaphore );
- myThread.create( );
-
- // if acquire in myThread does not work, 2 secs is long enough,
- // myThread should terminate now, and bRes1 should be sal_False
- thread_sleep_tenth_sec( 2 );
- bRes1 = myThread.isRunning( );
-
- // after release semaphore, myThread stops blocking and will terminate immediately
- aSemaphore.release( );
- thread_sleep_tenth_sec( 1 );
- bRes2 = myThread.isRunning( );
- myThread.join( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test acquire of Semaphore.",
- bRes == sal_True && bRes1 == sal_True && bRes2 == sal_False );
- }
-
- /** tester comment:
- launch 3 thread for testing acquirement inter-process.
- */
-
- void acquire_002( )
- {
- // launch three child threads
- ::osl::Semaphore aSemaphore(1);
- bRes = aSemaphore.acquire( );
- HoldThread myThread1( aSemaphore );
- myThread1.create( );
- HoldThread myThread2( aSemaphore );
- myThread2.create( );
- HoldThread myThread3( aSemaphore );
- myThread3.create( );
-
- // if acquire in myThread does not work, 2 secs is long enough,
- thread_sleep_tenth_sec( 2 );
- bRes1 = myThread1.isRunning( ) && myThread2.isRunning( ) && myThread3.isRunning( );
-
- // after release semaphore, myThread stops blocking and will terminate immediately
- aSemaphore.release( );
- thread_sleep_tenth_sec( 1 );
- bRes2 = myThread1.isRunning( ) || myThread2.isRunning( ) || myThread3.isRunning( );
- myThread1.join( );
- myThread2.join( );
- myThread3.join( );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test acquire of Semaphore in multithreaded environment.",
- bRes == sal_True && bRes1 == sal_True && bRes2 == sal_False );
- }
-
-
-
- /** tester comment:
- launch 3 thread for testing acquirement inter-process. in this test,
- we use two threads as producer and consumer, operate together on an
- array which is initialized to 0 for every item. producer takes action
- as follow:
- p(A), p(M), Buf[i]=i, v(M), v(B).
- consumer's action is like:
- p(B), p(M), Buf[i]=Buf[i]*Buf[i], v(M), v(A).
- consumer must operate on the array after producer does sequetially,
- otherwise, the array will contain items remain zero after all threads
- terminate. array will be filled with index^2 in the end.
- */
-
- void acquire_003( )
- {
- // initialization.
- ::osl::Semaphore aSemOccupied( sal_uInt32(0) );
- ::osl::Semaphore aSemEmpty( BSIZE );
- ::osl::Mutex aMutex;
-
- // launch two threads.
- SemBuffer aBuffer( aSemOccupied, aSemEmpty, aMutex );
- WriterThread myThread1( aBuffer );
- ReaderThread myThread2( aBuffer );
- myThread1.create( );
- myThread2.create( );
-
- myThread1.join( );
- myThread2.join( );
-
- bRes = sal_True;
- for ( sal_Int32 iCount = 0; iCount < BSIZE; iCount++ )
- bRes = bRes && ( aBuffer.Buf[iCount] == iCount*iCount );
-
- CPPUNIT_ASSERT_MESSAGE( "#test comment#: test acquire of Semaphore using Producer-Consumer model.",
- sal_True == bRes );
- }
-
- CPPUNIT_TEST_SUITE( acquire );
- CPPUNIT_TEST( acquire_001 );
- CPPUNIT_TEST( acquire_002 );
- CPPUNIT_TEST( acquire_003 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class acquire
-
-
- /** testing the method:
- sal_Bool tryToAcquire();
- */
- class tryToAcquire : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1, bRes2;
- /** tester comment:
- First let child thread acquire the semaphore, and wait 2 secs, during the 2 secs,
- in main thread, tryToAcquire semaphore should return False, then after the
- child thread terminated, tryToAcquire should return True
- */
- void tryToAcquire_001()
- {
- ::osl::Semaphore aSemaphore(1);
- WaitThread myThread( aSemaphore );
- myThread.create();
-
- // ensure the child thread acquire the semaphore
- thread_sleep_tenth_sec(1);
- bRes1 = aSemaphore.tryToAcquire();
-
- if (bRes1 == sal_True)
- aSemaphore.release();
- // wait the child thread terminate
- myThread.join();
-
- bRes2 = aSemaphore.tryToAcquire();
- if (bRes2 == sal_True)
- aSemaphore.release();
-
- CPPUNIT_ASSERT_MESSAGE("#test comment#: Try to acquire Semaphore",
- bRes1 == sal_False && bRes2 == sal_True);
- }
-
- void tryToAcquire_002()
- {
- ::osl::Semaphore aSem(1);
- bRes = aSem.tryToAcquire( );
- bRes1 = aSem.tryToAcquire( );
-
-
- CPPUNIT_ASSERT_MESSAGE("#test comment#: Try to acquire Semaphore twice should block.",
- sal_True == bRes && sal_False == bRes1);
- }
-
- CPPUNIT_TEST_SUITE( tryToAcquire );
- CPPUNIT_TEST( tryToAcquire_001 );
- CPPUNIT_TEST( tryToAcquire_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class tryToAcquire
-
-
- /** testing the method:
- sal_Bool release();
- */
- class release : public CppUnit::TestFixture
- {
- public:
- sal_Bool bRes, bRes1, bRes2, bRunning;
- sal_Int32 nCount;
- /** acquire/release are not used in pairs: after child thread acquired semaphore,
- the main thread release it, then any thread could acquire it.
- */
- void release_001()
- {
- Semaphore aSemaphore(1);
- WaitThread myThread( aSemaphore );
- myThread.create( );
-
- // ensure the child thread acquire the mutex
- thread_sleep_tenth_sec( 1 );
-
- bRunning = myThread.isRunning( );
- bRes1 = aSemaphore.tryToAcquire( );
- // wait the child thread terminate
- myThread.join( );
-
- bRes2 = aSemaphore.tryToAcquire( );
- if ( bRes2 == sal_True )
- aSemaphore.release( );
-
- CPPUNIT_ASSERT_MESSAGE( "release Semaphore: try to aquire before and after the semaphore has been released",
- bRes1 == sal_False && bRes2 == sal_True && bRunning == sal_True );
-
- }
-
- void release_002()
- {
- Semaphore aSemaphore(sal_uInt32(0));
- bRes1 = sal_True;
- for ( nCount = 0; nCount < 10; nCount++, aSemaphore.release( ) ) { }
- for ( nCount = 0; nCount < 10; nCount++, bRes1 = bRes1 && aSemaphore.tryToAcquire( ) ) { }
- bRes = aSemaphore.tryToAcquire( );
-
- CPPUNIT_ASSERT_MESSAGE( "release Semaphore: release ten times and acquire eleven times.",
- sal_False == bRes && sal_True == bRes1);
- }
-
- CPPUNIT_TEST_SUITE( release );
- CPPUNIT_TEST( release_001 );
- CPPUNIT_TEST( release_002 );
- CPPUNIT_TEST_SUITE_END( );
- }; // class release
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Semaphore::ctors, "osl_Semaphore");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Semaphore::acquire, "osl_Semaphore");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Semaphore::tryToAcquire, "osl_Semaphore");
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(osl_Semaphore::release, "osl_Semaphore");
-// -----------------------------------------------------------------------------
-
-} // namespace osl_Semaphore
-
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-NOADDITIONAL;
diff --git a/sal/qa/osl/semaphore/osl_Semaphore_Const.h b/sal/qa/osl/semaphore/osl_Semaphore_Const.h
deleted file mode 100644
index 457d27e42865..000000000000
--- a/sal/qa/osl/semaphore/osl_Semaphore_Const.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 _OSL_SEMAPHORE_CONST_H_
-#define _OSL_SEMAPHORE_CONST_H_
-
-//------------------------------------------------------------------------
-//------------------------------------------------------------------------
-
-#include <sal/types.h>
-#include <rtl/ustring.hxx>
-
-#ifndef _OSL_THREAD_HXX_
-#include <osl/thread.hxx>
-#endif
-#include <osl/mutex.hxx>
-#include <osl/pipe.hxx>
-
-#ifndef _OSL_SEMAPHOR_HXX_
-#include <osl/semaphor.hxx>
-#endif
-#include <osl/time.h>
-
-#include <testshl/simpleheader.hxx>
-
-#ifdef UNX
-#include <unistd.h>
-#endif
-
-//------------------------------------------------------------------------
-// most return value -1 denote a fail of operation.
-//------------------------------------------------------------------------
-#define OSL_PIPE_FAIL -1
-
-#define OSLTEST_DECLARE_USTRING( str_name, str_value ) \
- ::rtl::OUString a##str_name = rtl::OUString::createFromAscii( str_value )
-
-//------------------------------------------------------------------------
-// semaphre names
-//------------------------------------------------------------------------
-OSLTEST_DECLARE_USTRING( TestSem, "testsem" );
-
-const char pTestString[17] = "Sun Microsystems";
-
-
-#endif /* _OSL_SEMAPHORE_CONST_H_ */
diff --git a/sal/qa/rtl/alloc/makefile.mk b/sal/qa/rtl/alloc/makefile.mk
index ea22fbc2720a..37ae3718b40d 100755
--- a/sal/qa/rtl/alloc/makefile.mk
+++ b/sal/qa/rtl/alloc/makefile.mk
@@ -40,6 +40,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:jobfile by codegen.pl
SHL1OBJS= \
diff --git a/sal/qa/rtl/bootstrap/makefile.mk b/sal/qa/rtl/bootstrap/makefile.mk
index e17f3c410e94..d32f9db35383 100644
--- a/sal/qa/rtl/bootstrap/makefile.mk
+++ b/sal/qa/rtl/bootstrap/makefile.mk
@@ -50,6 +50,8 @@ MY_SCRIPTCAT=tr -d "\015" <
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:joblist by codegen.pl
SHL1OBJS= \
diff --git a/sal/qa/rtl/cipher/makefile.mk b/sal/qa/rtl/cipher/makefile.mk
index 73bf673f6c3d..b89e392d71d6 100644
--- a/sal/qa/rtl/cipher/makefile.mk
+++ b/sal/qa/rtl/cipher/makefile.mk
@@ -40,6 +40,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:joblist by codegen.pl
SHL1OBJS= \
diff --git a/sal/qa/rtl/crc32/makefile.mk b/sal/qa/rtl/crc32/makefile.mk
index c936b51a32d3..6bd3bd89d5a6 100755
--- a/sal/qa/rtl/crc32/makefile.mk
+++ b/sal/qa/rtl/crc32/makefile.mk
@@ -40,6 +40,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:jobfile by codegen.pl
SHL1OBJS= \
diff --git a/sal/qa/rtl/digest/makefile.mk b/sal/qa/rtl/digest/makefile.mk
index fceb9eac8de8..415183b7e9a0 100644
--- a/sal/qa/rtl/digest/makefile.mk
+++ b/sal/qa/rtl/digest/makefile.mk
@@ -41,6 +41,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
#----------------------------------- OStringBuffer -----------------------------------
SHL1OBJS= \
diff --git a/sal/qa/rtl/doublelock/makefile.mk b/sal/qa/rtl/doublelock/makefile.mk
index a914dfa86f22..b13ccf420c06 100644
--- a/sal/qa/rtl/doublelock/makefile.mk
+++ b/sal/qa/rtl/doublelock/makefile.mk
@@ -40,6 +40,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:testjob by codegen.pl
diff --git a/sal/qa/rtl/locale/makefile.mk b/sal/qa/rtl/locale/makefile.mk
index 490ee7b22364..329769b5d3ec 100644
--- a/sal/qa/rtl/locale/makefile.mk
+++ b/sal/qa/rtl/locale/makefile.mk
@@ -40,6 +40,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:locale by codegen.pl
SHL1OBJS= \
diff --git a/sal/qa/rtl/logfile/makefile.mk b/sal/qa/rtl/logfile/makefile.mk
index 92e3d30dd7a5..9b52e0a45b37 100644
--- a/sal/qa/rtl/logfile/makefile.mk
+++ b/sal/qa/rtl/logfile/makefile.mk
@@ -39,6 +39,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# --- BEGIN --------------------------------------------------------
SHL1OBJS= \
$(SLO)$/rtl_logfile.obj
diff --git a/sal/qa/rtl/math/makefile.mk b/sal/qa/rtl/math/makefile.mk
index a5cd21da67ce..3b35e52ab1f4 100644
--- a/sal/qa/rtl/math/makefile.mk
+++ b/sal/qa/rtl/math/makefile.mk
@@ -41,6 +41,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
#----------------------------------- OStringBuffer -----------------------------------
SHL1OBJS= \
diff --git a/sal/qa/rtl/ostring/makefile.mk b/sal/qa/rtl/ostring/makefile.mk
index bfb6c74c3482..06469b38a407 100644
--- a/sal/qa/rtl/ostring/makefile.mk
+++ b/sal/qa/rtl/ostring/makefile.mk
@@ -40,6 +40,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:joblist by codegen.pl
SHL1OBJS= \
diff --git a/sal/qa/rtl/oustring/makefile.mk b/sal/qa/rtl/oustring/makefile.mk
index e65611410003..6f15637651c6 100644
--- a/sal/qa/rtl/oustring/makefile.mk
+++ b/sal/qa/rtl/oustring/makefile.mk
@@ -40,6 +40,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:joblist by codegen.pl
SHL1OBJS= \
diff --git a/sal/qa/rtl/oustringbuffer/makefile.mk b/sal/qa/rtl/oustringbuffer/makefile.mk
index 7ba01bcebd72..544f7b7df170 100644
--- a/sal/qa/rtl/oustringbuffer/makefile.mk
+++ b/sal/qa/rtl/oustringbuffer/makefile.mk
@@ -40,6 +40,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:joblist by codegen.pl
SHL1OBJS= \
diff --git a/sal/qa/rtl/process/makefile.mk b/sal/qa/rtl/process/makefile.mk
index ef79fc46ca3a..5df9dc01504e 100644
--- a/sal/qa/rtl/process/makefile.mk
+++ b/sal/qa/rtl/process/makefile.mk
@@ -40,6 +40,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:joblist by codegen.pl
SHL1OBJS= \
diff --git a/sal/qa/rtl/random/makefile.mk b/sal/qa/rtl/random/makefile.mk
index b97599240a37..cd57ec9bcc13 100644
--- a/sal/qa/rtl/random/makefile.mk
+++ b/sal/qa/rtl/random/makefile.mk
@@ -40,6 +40,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:job by codegen.pl
SHL1OBJS= \
diff --git a/sal/qa/rtl/strings/makefile.mk b/sal/qa/rtl/strings/makefile.mk
index e1a5dd3af99a..3c1b9219642f 100644
--- a/sal/qa/rtl/strings/makefile.mk
+++ b/sal/qa/rtl/strings/makefile.mk
@@ -37,6 +37,8 @@ ENABLE_EXCEPTIONS := TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
SHL1TARGET := $(TARGET)
SHL1OBJS := \
$(SLO)$/test_oustringbuffer_utf32.obj \
diff --git a/sal/qa/rtl/textenc/makefile.mk b/sal/qa/rtl/textenc/makefile.mk
index 1126c0facaba..597309d9bfe6 100644
--- a/sal/qa/rtl/textenc/makefile.mk
+++ b/sal/qa/rtl/textenc/makefile.mk
@@ -39,6 +39,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# --- BEGIN --------------------------------------------------------
SHL1OBJS= \
$(SLO)$/rtl_textcvt.obj
@@ -47,11 +49,7 @@ SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB)
SHL1IMPLIB= i$(SHL1TARGET)
DEF1NAME =$(SHL1TARGET)
-.IF "$(COMNAME)" == "gcc3"
-SHL1VERSIONMAP = gcc3_export.map
-.ELSE
SHL1VERSIONMAP = $(PRJ)$/qa$/export.map
-.ENDIF
# END --------------------------------------------------------------
@@ -63,11 +61,7 @@ SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTSHL2LIB)
SHL2IMPLIB= i$(SHL2TARGET)
DEF2NAME =$(SHL2TARGET)
-.IF "$(COMNAME)" == "gcc3"
-SHL2VERSIONMAP = gcc3_export.map
-.ELSE
SHL2VERSIONMAP = $(PRJ)$/qa$/export.map
-.ENDIF
# END --------------------------------------------------------------
diff --git a/sal/qa/rtl/uri/makefile.mk b/sal/qa/rtl/uri/makefile.mk
index 1858f586401a..d4a8814cc649 100644
--- a/sal/qa/rtl/uri/makefile.mk
+++ b/sal/qa/rtl/uri/makefile.mk
@@ -39,6 +39,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# --- BEGIN --------------------------------------------------------
SHL1OBJS= \
$(SLO)$/rtl_Uri.obj
diff --git a/sal/qa/rtl/uuid/makefile.mk b/sal/qa/rtl/uuid/makefile.mk
index 93890f0da819..40e583f8b019 100644
--- a/sal/qa/rtl/uuid/makefile.mk
+++ b/sal/qa/rtl/uuid/makefile.mk
@@ -40,6 +40,8 @@ ENABLE_EXCEPTIONS=TRUE
CFLAGS+= $(LFS_CFLAGS)
CXXFLAGS+= $(LFS_CFLAGS)
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:joblist by codegen.pl
SHL1OBJS= \
diff --git a/sal/util/makefile.mk b/sal/util/makefile.mk
index 6de6cc25c7ce..82ebbc811c8d 100644
--- a/sal/util/makefile.mk
+++ b/sal/util/makefile.mk
@@ -230,8 +230,6 @@ SHL1STDLIBS+=-lgcc
$(SHL1TARGETN) : $(OUT)$/inc$/udkversion.h
.ENDIF # "$(SHL1TARGETN)" != ""
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
-
$(OUT)$/inc$/udkversion.h:
echo '#ifndef _SAL_UDKVERSION_H_' > $@
echo '#define _SAL_UDKVERSION_H_' >> $@
@@ -241,17 +239,3 @@ $(OUT)$/inc$/udkversion.h:
echo '#define SAL_UDK_MICRO "$(UDK_MICRO)"' >> $@
echo '' >> $@
echo '#endif' >> $@
-
-.ELSE
-
-$(OUT)$/inc$/udkversion.h:
- echo #ifndef _SAL_UDKVERSION_H_ > $@
- echo #define _SAL_UDKVERSION_H_ >> $@
- echo. >> $@
- echo #define SAL_UDK_MAJOR "$(UDK_MAJOR)" >> $@
- echo #define SAL_UDK_MINOR "$(UDK_MINOR)" >> $@
- echo #define SAL_UDK_MICRO "$(UDK_MICRO)" >> $@
- echo. >> $@
- echo #endif >> $@
-
-.ENDIF
diff --git a/salhelper/inc/salhelper/queue.hxx b/salhelper/inc/salhelper/queue.hxx
index f0daa8e9a904..445cc5f32da1 100644
--- a/salhelper/inc/salhelper/queue.hxx
+++ b/salhelper/inc/salhelper/queue.hxx
@@ -93,6 +93,12 @@ public:
//----------------------------------------------------------------------------
+/** Queue.
+
+ @deprecated
+ Must not be used, as it internally uses unnamed semaphores, which are not
+ supported on Mac OS X.
+*/
template<class element_type>
class Queue : protected QueueBase<element_type>
{
@@ -130,6 +136,12 @@ public:
//----------------------------------------------------------------------------
+/** Bounded queue.
+
+ @deprecated
+ Must not be used, as it internally uses unnamed semaphores, which are not
+ supported on Mac OS X.
+*/
template<class element_type>
class BoundedQueue : protected Queue<element_type>
{
diff --git a/salhelper/qa/makefile.mk b/salhelper/qa/makefile.mk
index 1ce9ccb6f4ca..fe2aff7453be 100644
--- a/salhelper/qa/makefile.mk
+++ b/salhelper/qa/makefile.mk
@@ -33,6 +33,8 @@ ENABLE_EXCEPTIONS := TRUE
.INCLUDE: settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
SHL1TARGET = $(TARGET)
SHL1OBJS = $(SLO)$/test_api.obj
SHL1STDLIBS = $(CPPUNITLIB) $(SALLIB) $(SALHELPERLIB) $(TESTSHL2LIB)
diff --git a/salhelper/source/makefile.mk b/salhelper/source/makefile.mk
index 4eb278f42fbd..a6b83cb5e090 100644
--- a/salhelper/source/makefile.mk
+++ b/salhelper/source/makefile.mk
@@ -48,11 +48,6 @@ SLOFILES= \
$(SLO)$/dynload.obj \
$(SLO)$/simplereferenceobject.obj
-# SCO: the linker does know about weak symbols, but we can't ignore multiple defined symbols
-.IF "$(OS)"=="SCO"
-SLOFILES+=$(SLO)$/staticmb.obj
-.ENDIF
-
.IF "$(GUI)" == "WNT"
SHL1TARGET= $(TARGET)$(UDK_MAJOR)$(COMID)
.ELIF "$(GUI)" == "OS2"
diff --git a/salhelper/source/staticmb.cxx b/salhelper/source/staticmb.cxx
deleted file mode 100644
index 274b720b1e2d..000000000000
--- a/salhelper/source/staticmb.cxx
+++ /dev/null
@@ -1,26 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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/salhelper/test/rtti/sols.map b/salhelper/test/rtti/sols.map
index 962d648475f4..babf2c901585 100644
--- a/salhelper/test/rtti/sols.map
+++ b/salhelper/test/rtti/sols.map
@@ -1,4 +1,4 @@
-SAMPLELIB {
+UDK_3_0_0 {
global:
GetVersionInfo;
_fini;
diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx
index 84941bee8e37..a43c7e52a353 100644
--- a/sax/source/fastparser/fastparser.cxx
+++ b/sax/source/fastparser/fastparser.cxx
@@ -31,6 +31,7 @@
#include <boost/scoped_ptr.hpp>
#include <osl/diagnose.h>
+#include <rtl/ustrbuf.hxx>
#include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/xml/sax/XFastContextHandler.hpp>
@@ -41,8 +42,9 @@
#include <string.h>
-using ::rtl::OUString;
using ::rtl::OString;
+using ::rtl::OUString;
+using ::rtl::OUStringBuffer;
using namespace ::std;
using namespace ::osl;
using namespace ::cppu;
@@ -51,8 +53,8 @@ using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::xml::sax;
//using namespace ::com::sun::star::util;
using namespace ::com::sun::star::io;
-namespace sax_fastparser
-{
+
+namespace sax_fastparser {
// --------------------------------------------------------------------
@@ -111,30 +113,35 @@ private:
// the implementation part
//---------------------------------------------
-extern "C"
+extern "C" {
+
+static void call_callbackStartElement(void *userData, const XML_Char *name , const XML_Char **atts)
{
- static void call_callbackStartElement(void *userData, const XML_Char *name , const XML_Char **atts)
- {
- FastSaxParser::callbackStartElement(userData,name,atts);
- }
- static void call_callbackEndElement(void *userData, const XML_Char *name)
- {
- FastSaxParser::callbackEndElement(userData,name);
- }
- static void call_callbackCharacters( void *userData , const XML_Char *s , int nLen )
- {
- FastSaxParser::callbackCharacters(userData,s,nLen);
- }
- static int call_callbackExternalEntityRef(XML_Parser parser,
- const XML_Char *openEntityNames,
- const XML_Char *base,
- const XML_Char *systemId,
- const XML_Char *publicId)
- {
- return FastSaxParser::callbackExternalEntityRef(parser,openEntityNames,base,systemId,publicId);
- }
+ FastSaxParser* pFastParser = reinterpret_cast< FastSaxParser* >( userData );
+ pFastParser->callbackStartElement( name, atts );
+}
+
+static void call_callbackEndElement(void *userData, const XML_Char *name)
+{
+ FastSaxParser* pFastParser = reinterpret_cast< FastSaxParser* >( userData );
+ pFastParser->callbackEndElement( name );
+}
+
+static void call_callbackCharacters( void *userData , const XML_Char *s , int nLen )
+{
+ FastSaxParser* pFastParser = reinterpret_cast< FastSaxParser* >( userData );
+ pFastParser->callbackCharacters( s, nLen );
}
+static int call_callbackExternalEntityRef( XML_Parser parser,
+ const XML_Char *openEntityNames, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId )
+{
+ FastSaxParser* pFastParser = reinterpret_cast< FastSaxParser* >( XML_GetUserData( parser ) );
+ return pFastParser->callbackExternalEntityRef( parser, openEntityNames, base, systemId, publicId );
+}
+
+} // extern "C"
+
// --------------------------------------------------------------------
// FastLocatorImpl implementation
// --------------------------------------------------------------------
@@ -172,15 +179,13 @@ OUString SAL_CALL FastLocatorImpl::getSystemId(void) throw (RuntimeException)
// FastSaxParser implementation
// --------------------------------------------------------------------
-FastSaxParser::FastSaxParser( )
+FastSaxParser::FastSaxParser()
{
mxDocumentLocator.set( new FastLocatorImpl( this ) );
// performance-Improvment. Reference is needed when calling the startTag callback.
// Handing out the same object with every call is allowed (see sax-specification)
mxAttributes.set( new FastAttributeList( mxTokenHandler ) );
-
- mbExceptionWasThrown = sal_False;
}
// --------------------------------------------------------------------
@@ -419,34 +424,27 @@ void FastSaxParser::parseStream( const InputSource& maStructSource) throw (SAXEx
struct Entity entity;
entity.maStructSource = maStructSource;
- if( ! entity.maStructSource.aInputStream.is() )
- {
- throw SAXException( OUString::createFromAscii( "No input source" ), Reference< XInterface > () , Any() );
- }
+ if( !entity.maStructSource.aInputStream.is() )
+ throw SAXException( OUString( RTL_CONSTASCII_USTRINGPARAM( "No input source" ) ), Reference< XInterface >(), Any() );
entity.maConverter.setInputStream( entity.maStructSource.aInputStream );
if( entity.maStructSource.sEncoding.getLength() )
- {
- entity.maConverter.setEncoding( OUStringToOString( entity.maStructSource.sEncoding , RTL_TEXTENCODING_ASCII_US ) );
- }
+ entity.maConverter.setEncoding( OUStringToOString( entity.maStructSource.sEncoding, RTL_TEXTENCODING_ASCII_US ) );
// create parser with proper encoding
entity.mpParser = XML_ParserCreate( 0 );
- if( ! entity.mpParser )
- {
- throw SAXException( OUString::createFromAscii( "Couldn't create parser" ), Reference< XInterface > (), Any() );
- }
+ if( !entity.mpParser )
+ throw SAXException( OUString( RTL_CONSTASCII_USTRINGPARAM( "Couldn't create parser" ) ), Reference< XInterface >(), Any() );
// set all necessary C-Callbacks
- XML_SetUserData( entity.mpParser , this );
- XML_SetElementHandler( entity.mpParser ,
- call_callbackStartElement ,
- call_callbackEndElement );
- XML_SetCharacterDataHandler( entity.mpParser , call_callbackCharacters );
- XML_SetExternalEntityRefHandler( entity.mpParser,
- call_callbackExternalEntityRef);
+ XML_SetUserData( entity.mpParser, this );
+ XML_SetElementHandler( entity.mpParser, call_callbackStartElement, call_callbackEndElement );
+ XML_SetCharacterDataHandler( entity.mpParser, call_callbackCharacters );
+ XML_SetExternalEntityRefHandler( entity.mpParser, call_callbackExternalEntityRef );
+ // maSavedException used to transport exceptions through C callbacks
maSavedException.clear();
+
pushEntity( entity );
try
{
@@ -569,112 +567,71 @@ Sequence< OUString > FastSaxParser::getSupportedServiceNames(void) throw (Runtim
* Helper functions and classes
*
*-------------------------------------------*/
-OUString getErrorMessage( XML_Error xmlE, OUString sSystemId , sal_Int32 nLine )
-{
- OUString Message;
- if( XML_ERROR_NONE == xmlE ) {
- Message = OUString::createFromAscii( "No" );
- }
- else if( XML_ERROR_NO_MEMORY == xmlE ) {
- Message = OUString::createFromAscii( "no memory" );
- }
- else if( XML_ERROR_SYNTAX == xmlE ) {
- Message = OUString::createFromAscii( "syntax" );
- }
- else if( XML_ERROR_NO_ELEMENTS == xmlE ) {
- Message = OUString::createFromAscii( "no elements" );
- }
- else if( XML_ERROR_INVALID_TOKEN == xmlE ) {
- Message = OUString::createFromAscii( "invalid token" );
- }
- else if( XML_ERROR_UNCLOSED_TOKEN == xmlE ) {
- Message = OUString::createFromAscii( "unclosed token" );
- }
- else if( XML_ERROR_PARTIAL_CHAR == xmlE ) {
- Message = OUString::createFromAscii( "partial char" );
- }
- else if( XML_ERROR_TAG_MISMATCH == xmlE ) {
- Message = OUString::createFromAscii( "tag mismatch" );
- }
- else if( XML_ERROR_DUPLICATE_ATTRIBUTE == xmlE ) {
- Message = OUString::createFromAscii( "duplicate attribute" );
- }
- else if( XML_ERROR_JUNK_AFTER_DOC_ELEMENT == xmlE ) {
- Message = OUString::createFromAscii( "junk after doc element" );
- }
- else if( XML_ERROR_PARAM_ENTITY_REF == xmlE ) {
- Message = OUString::createFromAscii( "parameter entity reference" );
- }
- else if( XML_ERROR_UNDEFINED_ENTITY == xmlE ) {
- Message = OUString::createFromAscii( "undefined entity" );
- }
- else if( XML_ERROR_RECURSIVE_ENTITY_REF == xmlE ) {
- Message = OUString::createFromAscii( "recursive entity reference" );
- }
- else if( XML_ERROR_ASYNC_ENTITY == xmlE ) {
- Message = OUString::createFromAscii( "async entity" );
- }
- else if( XML_ERROR_BAD_CHAR_REF == xmlE ) {
- Message = OUString::createFromAscii( "bad char reference" );
- }
- else if( XML_ERROR_BINARY_ENTITY_REF == xmlE ) {
- Message = OUString::createFromAscii( "binary entity reference" );
- }
- else if( XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF == xmlE ) {
- Message = OUString::createFromAscii( "attribute external entity reference" );
- }
- else if( XML_ERROR_MISPLACED_XML_PI == xmlE ) {
- Message = OUString::createFromAscii( "misplaced xml processing instruction" );
- }
- else if( XML_ERROR_UNKNOWN_ENCODING == xmlE ) {
- Message = OUString::createFromAscii( "unknown encoding" );
- }
- else if( XML_ERROR_INCORRECT_ENCODING == xmlE ) {
- Message = OUString::createFromAscii( "incorrect encoding" );
- }
- else if( XML_ERROR_UNCLOSED_CDATA_SECTION == xmlE ) {
- Message = OUString::createFromAscii( "unclosed cdata section" );
- }
- else if( XML_ERROR_EXTERNAL_ENTITY_HANDLING == xmlE ) {
- Message = OUString::createFromAscii( "external entity reference" );
- }
- else if( XML_ERROR_NOT_STANDALONE == xmlE ) {
- Message = OUString::createFromAscii( "not standalone" );
- }
- OUString str = OUString::createFromAscii( "[" );
- str += sSystemId;
- str += OUString::createFromAscii( " line " );
- str += OUString::valueOf( nLine );
- str += OUString::createFromAscii( "]: " );
- str += Message;
- str += OUString::createFromAscii( "error" );
+namespace {
- return str;
+OUString lclGetErrorMessage( XML_Error xmlE, const OUString& sSystemId, sal_Int32 nLine )
+{
+ const sal_Char* pMessage = "";
+ switch( xmlE )
+ {
+ case XML_ERROR_NONE: pMessage = "No"; break;
+ case XML_ERROR_NO_MEMORY: pMessage = "no memory"; break;
+ case XML_ERROR_SYNTAX: pMessage = "syntax"; break;
+ case XML_ERROR_NO_ELEMENTS: pMessage = "no elements"; break;
+ case XML_ERROR_INVALID_TOKEN: pMessage = "invalid token"; break;
+ case XML_ERROR_UNCLOSED_TOKEN: pMessage = "unclosed token"; break;
+ case XML_ERROR_PARTIAL_CHAR: pMessage = "partial char"; break;
+ case XML_ERROR_TAG_MISMATCH: pMessage = "tag mismatch"; break;
+ case XML_ERROR_DUPLICATE_ATTRIBUTE: pMessage = "duplicate attribute"; break;
+ case XML_ERROR_JUNK_AFTER_DOC_ELEMENT: pMessage = "junk after doc element"; break;
+ case XML_ERROR_PARAM_ENTITY_REF: pMessage = "parameter entity reference"; break;
+ case XML_ERROR_UNDEFINED_ENTITY: pMessage = "undefined entity"; break;
+ case XML_ERROR_RECURSIVE_ENTITY_REF: pMessage = "recursive entity reference"; break;
+ case XML_ERROR_ASYNC_ENTITY: pMessage = "async entity"; break;
+ case XML_ERROR_BAD_CHAR_REF: pMessage = "bad char reference"; break;
+ case XML_ERROR_BINARY_ENTITY_REF: pMessage = "binary entity reference"; break;
+ case XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF: pMessage = "attribute external entity reference"; break;
+ case XML_ERROR_MISPLACED_XML_PI: pMessage = "misplaced xml processing instruction"; break;
+ case XML_ERROR_UNKNOWN_ENCODING: pMessage = "unknown encoding"; break;
+ case XML_ERROR_INCORRECT_ENCODING: pMessage = "incorrect encoding"; break;
+ case XML_ERROR_UNCLOSED_CDATA_SECTION: pMessage = "unclosed cdata section"; break;
+ case XML_ERROR_EXTERNAL_ENTITY_HANDLING: pMessage = "external entity reference"; break;
+ case XML_ERROR_NOT_STANDALONE: pMessage = "not standalone"; break;
+ default:;
+ }
+
+ OUStringBuffer aBuffer( sal_Unicode( '[' ) );
+ aBuffer.append( sSystemId );
+ aBuffer.appendAscii( RTL_CONSTASCII_STRINGPARAM( " line " ) );
+ aBuffer.append( nLine );
+ aBuffer.appendAscii( RTL_CONSTASCII_STRINGPARAM( "]: " ) );
+ aBuffer.appendAscii( pMessage );
+ aBuffer.appendAscii( RTL_CONSTASCII_STRINGPARAM( " error" ) );
+ return aBuffer.makeStringAndClear();
}
+} // namespace
// starts parsing with actual parser !
-void FastSaxParser::parse( )
+void FastSaxParser::parse()
{
- const int nBufSize = 16*1024;
+ const int BUFFER_SIZE = 16 * 1024;
+ Sequence< sal_Int8 > seqOut( BUFFER_SIZE );
- int nRead = nBufSize;
- Sequence< sal_Int8 > seqOut(nBufSize);
-
- while( nRead )
+ int nRead = 0;
+ do
{
- nRead = getEntity().maConverter.readAndConvert( seqOut, nBufSize );
-
- if( ! nRead )
+ nRead = getEntity().maConverter.readAndConvert( seqOut, BUFFER_SIZE );
+ if( nRead <= 0 )
{
- XML_Parse( getEntity().mpParser, ( const char * ) seqOut.getArray(), 0 , 1 );
+ XML_Parse( getEntity().mpParser, (const char*) seqOut.getConstArray(), 0, 1 );
break;
}
- sal_Bool bContinue = ( XML_Parse( getEntity().mpParser, (const char *) seqOut.getArray(), nRead, 0 ) != 0 );
-
- if( !bContinue || mbExceptionWasThrown )
+ bool bContinue = XML_Parse( getEntity().mpParser, (const char*) seqOut.getConstArray(), nRead, 0 ) != 0;
+ // callbacks used inside XML_Parse may have caught an exception
+ if( !bContinue || maSavedException.hasValue() )
{
// Error during parsing !
XML_Error xmlE = XML_GetErrorCode( getEntity().mpParser );
@@ -682,26 +639,25 @@ void FastSaxParser::parse( )
sal_Int32 nLine = mxDocumentLocator->getLineNumber();
SAXParseException aExcept(
- getErrorMessage(xmlE , sSystemId, nLine) ,
+ lclGetErrorMessage( xmlE, sSystemId, nLine ),
Reference< XInterface >(),
- Any( &maSavedException , getCppuType( &maSavedException) ),
+ Any( &maSavedException, getCppuType( &maSavedException ) ),
mxDocumentLocator->getPublicId(),
mxDocumentLocator->getSystemId(),
mxDocumentLocator->getLineNumber(),
mxDocumentLocator->getColumnNumber()
- );
+ );
+ // error handler is set, it may throw the exception
if( mxErrorHandler.is() )
- {
- // error handler is set, so the handler may throw the maSavedException
mxErrorHandler->fatalError( Any( aExcept ) );
- }
- // Error handler has not thrown an maSavedException, but parsing cannot go on,
- // so an maSavedException MUST be thrown.
+ // error handler has not thrown, but parsing cannot go on, the
+ // exception MUST be thrown
throw aExcept;
}
}
+ while( nRead > 0 );
}
//------------------------------------------
@@ -721,25 +677,23 @@ struct AttributeData
} // namespace
-void FastSaxParser::callbackStartElement( void *pvThis, const XML_Char *pwName, const XML_Char **awAttributes )
+void FastSaxParser::callbackStartElement( const XML_Char* pwName, const XML_Char** awAttributes )
{
- FastSaxParser *pThis = (FastSaxParser*)pvThis;
-
Reference< XFastContextHandler > xParentContext;
- if( !pThis->maContextStack.empty() )
+ if( !maContextStack.empty() )
{
- xParentContext = pThis->maContextStack.top()->mxContext;
+ xParentContext = maContextStack.top()->mxContext;
if( !xParentContext.is() )
{
// we ignore current elements, so no processing needed
- pThis->pushContext();
+ pushContext();
return;
}
}
- pThis->pushContext();
+ pushContext();
- pThis->mxAttributes->clear();
+ mxAttributes->clear();
// create attribute map and process namespace instructions
int i = 0;
@@ -747,108 +701,100 @@ void FastSaxParser::callbackStartElement( void *pvThis, const XML_Char *pwName,
const XML_Char *pName;
const XML_Char *pPrefix;
- /* #158414# Each element may define new namespaces, also for attribues.
- First, process all namespace attributes and cache other attributes in a
- vector. Second, process the attributes after namespaces have been
- initialized. */
- ::std::vector< AttributeData > aAttribs;
-
- // #158414# first: get namespaces
- for( ; awAttributes[i]; i += 2 )
+ try
{
- OSL_ASSERT( awAttributes[i+1] );
+ /* #158414# Each element may define new namespaces, also for attribues.
+ First, process all namespace attributes and cache other attributes in a
+ vector. Second, process the attributes after namespaces have been
+ initialized. */
+ ::std::vector< AttributeData > aAttribs;
- pThis->splitName( awAttributes[i], pPrefix, nPrefixLen, pName, nNameLen );
- if( nPrefixLen )
+ // #158414# first: get namespaces
+ for( ; awAttributes[i]; i += 2 )
{
- if( (nPrefixLen == 5) && (strncmp( pPrefix, "xmlns", 5 ) == 0) )
+ OSL_ASSERT( awAttributes[i+1] );
+
+ splitName( awAttributes[i], pPrefix, nPrefixLen, pName, nNameLen );
+ if( nPrefixLen )
{
- pThis->DefineNamespace( OString( pName, nNameLen ), awAttributes[i+1] );
+ if( (nPrefixLen == 5) && (strncmp( pPrefix, "xmlns", 5 ) == 0) )
+ {
+ DefineNamespace( OString( pName, nNameLen ), awAttributes[i+1] );
+ }
+ else
+ {
+ aAttribs.resize( aAttribs.size() + 1 );
+ aAttribs.back().maPrefix = OString( pPrefix, nPrefixLen );
+ aAttribs.back().maName = OString( pName, nNameLen );
+ aAttribs.back().maValue = OString( awAttributes[i+1] );
+ }
}
else
{
- aAttribs.resize( aAttribs.size() + 1 );
- aAttribs.back().maPrefix = OString( pPrefix, nPrefixLen );
- aAttribs.back().maName = OString( pName, nNameLen );
- aAttribs.back().maValue = OString( awAttributes[i+1] );
+ if( (nNameLen == 5) && (strcmp( pName, "xmlns" ) == 0) )
+ {
+ // namespace of the element found
+ maContextStack.top()->maNamespace = OUString( awAttributes[i+1], strlen( awAttributes[i+1] ), RTL_TEXTENCODING_UTF8 );
+ }
+ else
+ {
+ aAttribs.resize( aAttribs.size() + 1 );
+ aAttribs.back().maName = OString( pName, nNameLen );
+ aAttribs.back().maValue = OString( awAttributes[i+1] );
+ }
}
}
- else
+
+ // #158414# second: fill attribute list with other attributes
+ for( ::std::vector< AttributeData >::const_iterator aIt = aAttribs.begin(), aEnd = aAttribs.end(); aIt != aEnd; ++aIt )
{
- if( (nNameLen == 5) && (strcmp( pName, "xmlns" ) == 0) )
+ if( aIt->maPrefix.getLength() > 0 )
{
- // namespace of the element found
- pThis->maContextStack.top()->maNamespace = OUString( awAttributes[i+1], strlen( awAttributes[i+1] ), RTL_TEXTENCODING_UTF8 );
+ sal_Int32 nAttributeToken = GetTokenWithPrefix( aIt->maPrefix, aIt->maName );
+ if( nAttributeToken != FastToken::DONTKNOW )
+ mxAttributes->add( nAttributeToken, aIt->maValue );
+ else
+ mxAttributes->addUnknown( GetNamespaceURL( aIt->maPrefix ), aIt->maName, aIt->maValue );
}
else
{
- aAttribs.resize( aAttribs.size() + 1 );
- aAttribs.back().maName = OString( pName, nNameLen );
- aAttribs.back().maValue = OString( awAttributes[i+1] );
+ sal_Int32 nAttributeToken = GetToken( aIt->maName );
+ if( nAttributeToken != FastToken::DONTKNOW )
+ mxAttributes->add( nAttributeToken, aIt->maValue );
+ else
+ mxAttributes->addUnknown( aIt->maName, aIt->maValue );
}
}
- }
- // #158414# second: fill attribute list with other attributes
- for( ::std::vector< AttributeData >::const_iterator aIt = aAttribs.begin(), aEnd = aAttribs.end(); aIt != aEnd; ++aIt )
- {
- if( aIt->maPrefix.getLength() )
- {
- const sal_Int32 nAttributeToken = pThis->GetTokenWithPrefix( aIt->maPrefix, aIt->maName );
- if( nAttributeToken != FastToken::DONTKNOW )
- pThis->mxAttributes->add( nAttributeToken, aIt->maValue );
- else
- pThis->mxAttributes->addUnknown( pThis->GetNamespaceURL( aIt->maPrefix ), aIt->maName, aIt->maValue );
- }
+ sal_Int32 nElementToken;
+ splitName( pwName, pPrefix, nPrefixLen, pName, nNameLen );
+ if( nPrefixLen > 0 )
+ nElementToken = GetTokenWithPrefix( pPrefix, nPrefixLen, pName, nNameLen );
+ else if( maContextStack.top()->maNamespace.getLength() > 0 )
+ nElementToken = GetTokenWithNamespaceURL( maContextStack.top()->maNamespace, pName, nNameLen );
else
- {
- const sal_Int32 nAttributeToken = pThis->GetToken( aIt->maName );
- if( nAttributeToken != FastToken::DONTKNOW )
- pThis->mxAttributes->add( nAttributeToken, aIt->maValue );
- else
- pThis->mxAttributes->addUnknown( aIt->maName, aIt->maValue );
- }
- }
+ nElementToken = GetToken( pName );
+ maContextStack.top()->mnElementToken = nElementToken;
- sal_Int32 nElementToken;
- pThis->splitName( pwName, pPrefix, nPrefixLen, pName, nNameLen );
- if( nPrefixLen )
- {
- nElementToken = pThis->GetTokenWithPrefix( pPrefix, nPrefixLen, pName, nNameLen );
- }
- else if( pThis->maContextStack.top()->maNamespace.getLength() )
- {
- nElementToken = pThis->GetTokenWithNamespaceURL( pThis->maContextStack.top()->maNamespace, pName, nNameLen );
- }
- else
- {
- nElementToken = pThis->GetToken( pName );
- }
- pThis->maContextStack.top()->mnElementToken = nElementToken;
-
- try
- {
- Reference< XFastAttributeList > xAttr( pThis->mxAttributes.get() );
+ Reference< XFastAttributeList > xAttr( mxAttributes.get() );
Reference< XFastContextHandler > xContext;
if( nElementToken == FastToken::DONTKNOW )
{
- if( nPrefixLen )
- {
- pThis->maContextStack.top()->maNamespace = pThis->GetNamespaceURL( pPrefix, nPrefixLen );
- }
+ if( nPrefixLen > 0 )
+ maContextStack.top()->maNamespace = GetNamespaceURL( pPrefix, nPrefixLen );
- const OUString aNamespace( pThis->maContextStack.top()->maNamespace );
+ const OUString aNamespace( maContextStack.top()->maNamespace );
const OUString aElementName( pPrefix, nPrefixLen, RTL_TEXTENCODING_UTF8 );
- pThis->maContextStack.top()->maElementName = aElementName;
+ maContextStack.top()->maElementName = aElementName;
if( xParentContext.is() )
xContext = xParentContext->createUnknownChildContext( aNamespace, aElementName, xAttr );
else
- xContext = pThis->mxDocumentHandler->createUnknownChildContext( aNamespace, aElementName, xAttr );
+ xContext = mxDocumentHandler->createUnknownChildContext( aNamespace, aElementName, xAttr );
if( xContext.is() )
{
- pThis->maContextStack.top()->mxContext = xContext;
+ maContextStack.top()->mxContext = xContext;
xContext->startUnknownElement( aNamespace, aElementName, xAttr );
}
}
@@ -857,142 +803,125 @@ void FastSaxParser::callbackStartElement( void *pvThis, const XML_Char *pwName,
if( xParentContext.is() )
xContext = xParentContext->createFastChildContext( nElementToken, xAttr );
else
- xContext = pThis->mxDocumentHandler->createFastChildContext( nElementToken, xAttr );
+ xContext = mxDocumentHandler->createFastChildContext( nElementToken, xAttr );
if( xContext.is() )
{
- pThis->maContextStack.top()->mxContext = xContext;
+ maContextStack.top()->mxContext = xContext;
xContext->startFastElement( nElementToken, xAttr );
}
}
}
catch( Exception& e )
{
- pThis->maSavedException <<= e;
+ maSavedException <<= e;
}
}
-void FastSaxParser::callbackEndElement( void *pvThis , const XML_Char * )
+void FastSaxParser::callbackEndElement( const XML_Char* )
{
- FastSaxParser *pThis = (FastSaxParser*)pvThis;
-
- if( !pThis->maContextStack.empty() )
+ OSL_ENSURE( !maContextStack.empty(), "FastSaxParser::callbackEndElement - no context" );
+ if( !maContextStack.empty() )
{
- SaxContextImplPtr pContext( pThis->maContextStack.top() );
+ SaxContextImplPtr pContext( maContextStack.top() );
const Reference< XFastContextHandler >& xContext( pContext->mxContext );
if( xContext.is() ) try
{
sal_Int32 nElementToken = pContext->mnElementToken;
if( nElementToken != FastToken::DONTKNOW )
- {
xContext->endFastElement( nElementToken );
- }
else
- {
xContext->endUnknownElement( pContext->maNamespace, pContext->maElementName );
- }
}
catch( Exception& e )
{
- pThis->maSavedException <<= e;
+ maSavedException <<= e;
}
- pThis->popContext();
- }
- else
- {
- OSL_ENSURE( false, "no context on sax::FastSaxParser::callbackEndElement() ??? ");
+ popContext();
}
}
-void FastSaxParser::callbackCharacters( void *pvThis , const XML_Char *s , int nLen )
+void FastSaxParser::callbackCharacters( const XML_Char* s, int nLen )
{
- FastSaxParser *pThis = (FastSaxParser*)pvThis;
-
- const Reference< XFastContextHandler >& xContext( pThis->maContextStack.top()->mxContext );
+ const Reference< XFastContextHandler >& xContext( maContextStack.top()->mxContext );
if( xContext.is() ) try
{
xContext->characters( OUString( s, nLen, RTL_TEXTENCODING_UTF8 ) );
}
catch( Exception& e )
{
- pThis->maSavedException <<= e;
+ maSavedException <<= e;
}
}
int FastSaxParser::callbackExternalEntityRef( XML_Parser parser,
- const XML_Char *context,
- const XML_Char * /*base*/,
- const XML_Char *systemId,
- const XML_Char *publicId)
+ const XML_Char *context, const XML_Char * /*base*/, const XML_Char *systemId, const XML_Char *publicId )
{
bool bOK = true;
InputSource source;
- FastSaxParser *pImpl = ((FastSaxParser*)XML_GetUserData( parser ));
struct Entity entity;
- if( pImpl->mxEntityResolver.is() ) {
- try
- {
- entity.maStructSource = pImpl->mxEntityResolver->resolveEntity(
- OUString( publicId, strlen( publicId ), RTL_TEXTENCODING_UTF8 ) ,
- OUString( systemId, strlen( systemId ), RTL_TEXTENCODING_UTF8 ) );
- }
- catch( SAXParseException & e )
- {
- pImpl->maSavedException <<= e;
- bOK = false;
- }
- catch( SAXException & e )
- {
- pImpl->maSavedException <<= SAXParseException(
- e.Message , e.Context , e.WrappedException ,
- pImpl->mxDocumentLocator->getPublicId(),
- pImpl->mxDocumentLocator->getSystemId(),
- pImpl->mxDocumentLocator->getLineNumber(),
- pImpl->mxDocumentLocator->getColumnNumber() );
- bOK = false;
- }
+ if( mxEntityResolver.is() ) try
+ {
+ entity.maStructSource = mxEntityResolver->resolveEntity(
+ OUString( publicId, strlen( publicId ), RTL_TEXTENCODING_UTF8 ) ,
+ OUString( systemId, strlen( systemId ), RTL_TEXTENCODING_UTF8 ) );
+ }
+ catch( SAXParseException & e )
+ {
+ maSavedException <<= e;
+ bOK = false;
+ }
+ catch( SAXException & e )
+ {
+ maSavedException <<= SAXParseException(
+ e.Message, e.Context, e.WrappedException,
+ mxDocumentLocator->getPublicId(),
+ mxDocumentLocator->getSystemId(),
+ mxDocumentLocator->getLineNumber(),
+ mxDocumentLocator->getColumnNumber() );
+ bOK = false;
}
if( entity.maStructSource.aInputStream.is() )
{
- entity.mpParser = XML_ExternalEntityParserCreate( parser , context, 0 );
+ entity.mpParser = XML_ExternalEntityParserCreate( parser, context, 0 );
if( ! entity.mpParser )
{
return false;
}
entity.maConverter.setInputStream( entity.maStructSource.aInputStream );
- pImpl->pushEntity( entity );
+ pushEntity( entity );
try
{
- pImpl->parse();
+ parse();
}
catch( SAXParseException & e )
{
- pImpl->maSavedException <<= e;
+ maSavedException <<= e;
bOK = false;
}
catch( IOException &e )
{
SAXException aEx;
aEx.WrappedException <<= e;
- pImpl->maSavedException <<= aEx;
+ maSavedException <<= aEx;
bOK = false;
}
catch( RuntimeException &e )
{
SAXException aEx;
aEx.WrappedException <<= e;
- pImpl->maSavedException <<= aEx;
+ maSavedException <<= aEx;
bOK = false;
}
- pImpl->popEntity();
+ popEntity();
XML_ParserFree( entity.mpParser );
}
@@ -1000,4 +929,4 @@ int FastSaxParser::callbackExternalEntityRef( XML_Parser parser,
return bOK;
}
-}
+} // namespace sax_fastparser
diff --git a/sax/source/fastparser/fastparser.hxx b/sax/source/fastparser/fastparser.hxx
index 236db124c99e..3d494a6d3c81 100644
--- a/sax/source/fastparser/fastparser.hxx
+++ b/sax/source/fastparser/fastparser.hxx
@@ -94,14 +94,12 @@ public:
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);
-public:
- // the C-Callbacks for the expat parser
- void static callbackStartElement(void *userData, const XML_Char *name , const XML_Char **atts);
- void static callbackEndElement(void *userData, const XML_Char *name);
- void static callbackCharacters( void *userData , const XML_Char *s , int nLen );
- int static callbackExternalEntityRef( XML_Parser parser, const XML_Char *openEntityNames, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId);
+ // called by the C callbacks of the expat parser
+ void callbackStartElement( const XML_Char* name, const XML_Char** atts );
+ void callbackEndElement( const XML_Char* name );
+ void callbackCharacters( const XML_Char* s, int nLen );
+ int callbackExternalEntityRef( XML_Parser parser, const XML_Char *openEntityNames, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId);
-public:
void pushEntity( const struct Entity &entity ) { vecEntity.push_back( entity ); }
void popEntity() { vecEntity.pop_back( ); }
struct Entity &getEntity() { return vecEntity.back(); }
@@ -139,10 +137,9 @@ private:
// External entity stack
std::vector< struct Entity > vecEntity;
- // Exception cannot be thrown through the C-XmlParser (possible resource leaks),
- // therefor the maSavedException must be saved somewhere.
+ // Exceptions cannot be thrown through the C-XmlParser (possible resource leaks),
+ // therefore the exception must be saved somewhere.
::com::sun::star::uno::Any maSavedException;
- sal_Bool mbExceptionWasThrown;
::com::sun::star::lang::Locale maLocale;
diff --git a/saxon/makefile.mk b/saxon/makefile.mk
index e1f887f1263a..e73eced80288 100644
--- a/saxon/makefile.mk
+++ b/saxon/makefile.mk
@@ -45,6 +45,7 @@ all:
# --- Files --------------------------------------------------------
TARFILE_NAME=source-9.0.0.7-bj
+TARFILE_MD5=ada24d37d8d638b3d8a9985e80bc2978
ADDITIONAL_FILES=build.xml
TARFILE_ROOTDIR=src
diff --git a/sc/addin/datefunc/makefile.mk b/sc/addin/datefunc/makefile.mk
index 4e4966720261..f781b3835833 100644
--- a/sc/addin/datefunc/makefile.mk
+++ b/sc/addin/datefunc/makefile.mk
@@ -86,11 +86,7 @@ $(MISC)$/$(TARGET).lst : \
$(INCCOM)$/xlang.h \
..$/inc$/$(TARGET).hrc \
..$/inc$/addin.h
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
echo $< > $@
-.ELSE
- echo $(<:+"\n":s/ //) > $@
-.ENDIF
# --- Def-File ---
diff --git a/sc/addin/makefile.mk b/sc/addin/makefile.mk
index c9505e29d4d4..e716a8d8477a 100644
--- a/sc/addin/makefile.mk
+++ b/sc/addin/makefile.mk
@@ -41,10 +41,5 @@ TARGET=addin
ALLTAR: $(MISC)$/cl2c.pl
$(MISC)$/cl2c.pl: util/cl2c.pl
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
tr -d "\015" < util$/cl2c.pl > $@
chmod +rw $@
-.ELSE
- @$(COPY) util$/cl2c.pl $@
-.ENDIF
-
diff --git a/sc/addin/rot13/exports.map b/sc/addin/rot13/exports.map
index fa447824beda..c662c9148aba 100644
--- a/sc/addin/rot13/exports.map
+++ b/sc/addin/rot13/exports.map
@@ -1,4 +1,4 @@
-SC_1_0 {
+UDK_3_0_0 {
global:
GetFunctionCount;
GetFunctionData;
diff --git a/sc/addin/rot13/makefile.mk b/sc/addin/rot13/makefile.mk
index 128d8f10b6f8..a33c50d2a725 100644
--- a/sc/addin/rot13/makefile.mk
+++ b/sc/addin/rot13/makefile.mk
@@ -85,9 +85,4 @@ $(MISC)$/rot.lst : \
$(INCCOM)$/xlang.h \
..$/inc$/rot13.hrc \
..$/inc$/addin.h
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
@echo $< > $@
-.ELSE
- @echo $(<:+"\n":s/ //) > $@
-.ENDIF
-
diff --git a/sc/addin/util/makefile.mk b/sc/addin/util/makefile.mk
index e415cf7631d7..2bd75148f80a 100644
--- a/sc/addin/util/makefile.mk
+++ b/sc/addin/util/makefile.mk
@@ -37,13 +37,9 @@ TARGET=autil
$(BIN)$/addin.zip : \
$(MISC)$/rot.lst \
$(MISC)$/dfa.lst
-.IF "$(GUI)"=="UNX" || "$(USE_SHELL)"!="4nt"
$(TYPE) $(MISC)$/rot.lst | tr -s " " "\n" | zip -@ -u -j -ll $(BIN)$/addin.zip $(CHECKZIPRESULT)
$(TYPE) $(MISC)$/dfa.lst | tr -s " " "\n" | zip -@ -u -j -ll $(BIN)$/addin.zip $(CHECKZIPRESULT)
chmod +rw $(BIN)$/addin.zip
-.ELSE
- $(TYPE) $< | zip -@ -u -j $(BIN)$/addin.zip $(CHECKZIPRESULT)
-.ENDIF
.INCLUDE: target.mk
diff --git a/sc/inc/chgtrack.hxx b/sc/inc/chgtrack.hxx
index ffe248bb3f65..6cf3d59314ef 100644
--- a/sc/inc/chgtrack.hxx
+++ b/sc/inc/chgtrack.hxx
@@ -308,7 +308,6 @@ protected:
GetDeletedInAddress(), p );
}
BOOL RemoveDeletedIn( const ScChangeAction* );
- void RemoveAllDeletedIn();
void SetDeletedIn( ScChangeAction* );
ScChangeActionLinkEntry* AddDeleted( ScChangeAction* p )
@@ -414,6 +413,7 @@ public:
{ return IsDeleteType() || IsDeletedIn(); }
BOOL IsDeletedIn( const ScChangeAction* ) const;
BOOL IsDeletedInDelType( ScChangeActionType ) const;
+ void RemoveAllDeletedIn();
const ScChangeActionLinkEntry* GetFirstDeletedEntry() const
{ return pLinkDeleted; }
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 1d92962a56db..17ec77b0f9a7 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -896,10 +896,17 @@ public:
USHORT GetErrCode( const ScAddress& ) const;
- bool ShrinkToDataArea(SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow) const;
+ /** Shrink a range to only include data area.
+ This is not the actually used area within the
+ selection, but the bounds of the sheet's data area
+ instead. */
+ bool ShrinkToDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow ) const;
+
+ /** Shrink a range to only include used data area. */
+ bool ShrinkToUsedDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly ) const;
void GetDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow,
- SCCOL& rEndCol, SCROW& rEndRow, BOOL bIncludeOld );
+ SCCOL& rEndCol, SCROW& rEndRow, BOOL bIncludeOld, bool bOnlyDown );
SC_DLLPUBLIC BOOL GetCellArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
SC_DLLPUBLIC BOOL GetTableArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
SC_DLLPUBLIC BOOL GetPrintArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow,
@@ -1095,7 +1102,8 @@ public:
void UpdateReference( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
SCsCOL nDx, SCsROW nDy, SCsTAB nDz,
- ScDocument* pUndoDoc = NULL, BOOL bIncludeDraw = TRUE );
+ ScDocument* pUndoDoc = NULL, BOOL bIncludeDraw = TRUE,
+ bool bUpdateNoteCaptionPos = true );
SC_DLLPUBLIC void UpdateTranspose( const ScAddress& rDestPos, ScDocument* pClipDoc,
const ScMarkData& rMark, ScDocument* pUndoDoc = NULL );
@@ -1651,7 +1659,7 @@ public:
BOOL IsExpandRefs() { return bExpandRefs; }
SC_DLLPUBLIC void IncSizeRecalcLevel( SCTAB nTab );
- SC_DLLPUBLIC void DecSizeRecalcLevel( SCTAB nTab );
+ SC_DLLPUBLIC void DecSizeRecalcLevel( SCTAB nTab, bool bUpdateNoteCaptionPos = true );
ULONG GetXMLImportedFormulaCount() const { return nXMLImportedFormulaCount; }
void IncXMLImportedFormulaCount( ULONG nVal )
diff --git a/sc/inc/drwlayer.hxx b/sc/inc/drwlayer.hxx
index 563cf768b5ae..7dd9903f82a1 100644
--- a/sc/inc/drwlayer.hxx
+++ b/sc/inc/drwlayer.hxx
@@ -110,9 +110,9 @@ private:
void MoveAreaTwips( SCTAB nTab, const Rectangle& rArea, const Point& rMove,
const Point& rTopLeft );
void MoveCells( SCTAB nTab, SCCOL nCol1,SCROW nRow1, SCCOL nCol2,SCROW nRow2,
- SCsCOL nDx,SCsROW nDy );
+ SCsCOL nDx,SCsROW nDy, bool bUpdateNoteCaptionPos );
- void RecalcPos( SdrObject* pObj, const ScDrawObjData& rData, bool bNegativePage );
+ void RecalcPos( SdrObject* pObj, const ScDrawObjData& rData, bool bNegativePage, bool bUpdateNoteCaptionPos );
public:
ScDrawLayer( ScDocument* pDocument, const String& rName );
@@ -155,7 +155,7 @@ public:
void AddCalcUndo( SdrUndoAction* pUndo );
void MoveArea( SCTAB nTab, SCCOL nCol1,SCROW nRow1, SCCOL nCol2,SCROW nRow2,
- SCsCOL nDx,SCsROW nDy, BOOL bInsDel );
+ SCsCOL nDx,SCsROW nDy, BOOL bInsDel, bool bUpdateNoteCaptionPos = true );
void WidthChanged( SCTAB nTab, SCCOL nCol, long nDifTwips );
void HeightChanged( SCTAB nTab, SCROW nRow, long nDifTwips );
@@ -173,7 +173,7 @@ public:
SCTAB nSourceTab, const Rectangle& rSourceRange,
const ScAddress& rDestPos, const Rectangle& rDestRange );
- void SetPageSize( USHORT nPageNo, const Size& rSize );
+ void SetPageSize( USHORT nPageNo, const Size& rSize, bool bUpdateNoteCaptionPos = true );
// mirror or move between positive and negative positions for RTL
void MirrorRTL( SdrObject* pObj );
diff --git a/sc/inc/externalrefmgr.hxx b/sc/inc/externalrefmgr.hxx
index ae37b710a074..f47d99097b39 100644
--- a/sc/inc/externalrefmgr.hxx
+++ b/sc/inc/externalrefmgr.hxx
@@ -141,7 +141,7 @@ public:
~Table();
SC_DLLPUBLIC void setCell(SCCOL nCol, SCROW nRow, TokenRef pToken, sal_uInt32 nFmtIndex = 0);
- TokenRef getCell(SCCOL nCol, SCROW nRow, sal_uInt32* pnFmtIndex = NULL) const;
+ SC_DLLPUBLIC TokenRef getCell(SCCOL nCol, SCROW nRow, sal_uInt32* pnFmtIndex = NULL) const;
bool hasRow( SCROW nRow ) const;
/** Set/clear referenced status flag only if current status is not
REFERENCED_PERMANENT. */
@@ -152,8 +152,12 @@ public:
bool isReferenced() const;
/// Obtain a sorted vector of rows.
void getAllRows(::std::vector<SCROW>& rRows) const;
+ /// Returns the half-open range of used rows in this table. Returns [0,0) if table is empty.
+ SC_DLLPUBLIC ::std::pair< SCROW, SCROW > getRowRange() const;
/// Obtain a sorted vector of columns.
void getAllCols(SCROW nRow, ::std::vector<SCCOL>& rCols) const;
+ /// Returns the half-open range of used columns in the specified row. Returns [0,0) if row is empty.
+ SC_DLLPUBLIC ::std::pair< SCCOL, SCCOL > getColRange( SCROW nRow ) const;
void getAllNumberFormats(::std::vector<sal_uInt32>& rNumFmts) const;
private:
@@ -467,6 +471,13 @@ public:
* @return shared_ptr to the cache table instance
*/
ScExternalRefCache::TableTypeRef getCacheTable(sal_uInt16 nFileId, const String& rTabName, bool bCreateNew, size_t* pnIndex = 0);
+
+ /** Returns a vector containing all (real) table names and cache tables of
+ the specified file.
+
+ The index in the returned vector corresponds to the table index used to
+ access the cache table, e.g. in getCacheTable().
+ */
void getAllCachedTableNames(sal_uInt16 nFileId, ::std::vector<String>& rTabNames) const;
/**
diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx
index 185113e77389..b85205741334 100644
--- a/sc/inc/global.hxx
+++ b/sc/inc/global.hxx
@@ -414,6 +414,29 @@ enum ScGetDBMode
SC_DB_OLD // nicht neu anlegen
};
+/// For ScDBFunc::GetDBData()
+enum ScGetDBSelection
+{
+ /** Keep selection as is, expand to used data area if no selection. */
+ SC_DBSEL_KEEP,
+
+ /** Shrink selection to sheet's data area. */
+ SC_DBSEL_SHRINK_TO_SHEET_DATA,
+
+ /** Shrink selection to actually used data area within the selection. */
+ SC_DBSEL_SHRINK_TO_USED_DATA,
+
+ /** If only one row or portion thereof is selected, shrink row to used data
+ columns and select further rows down until end of data. If an area is
+ selected, shrink rows to actually used columns. Else, no selection,
+ expand to used data area. */
+ SC_DBSEL_ROW_DOWN,
+
+ /** Behave as if the range corresponding to a ScDBData area was selected,
+ for API use. */
+ SC_DBSEL_FORCE_MARK
+};
+
enum ScLkUpdMode
{ //Verknuepfungen
LM_ALWAYS, //immer aktualisieren
diff --git a/sc/inc/rangelst.hxx b/sc/inc/rangelst.hxx
index 51555decaa5b..e00fce10da1c 100644
--- a/sc/inc/rangelst.hxx
+++ b/sc/inc/rangelst.hxx
@@ -40,6 +40,7 @@ class SC_DLLPUBLIC ScRangeList : public ScRangeListBase, public SvRefBase
{
private:
using ScRangeListBase::operator==;
+ using ScRangeListBase::operator!=;
public:
ScRangeList() {}
@@ -65,6 +66,7 @@ public:
SCsCOL nDx, SCsROW nDy, SCsTAB nDz );
ScRange* Find( const ScAddress& ) const;
BOOL operator==( const ScRangeList& ) const;
+ BOOL operator!=( const ScRangeList& r ) const;
BOOL Intersects( const ScRange& ) const;
BOOL In( const ScRange& ) const;
ULONG GetCellCount() const;
diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc
index 1b6d18e21dbb..a7d05925957a 100644
--- a/sc/inc/sc.hrc
+++ b/sc/inc/sc.hrc
@@ -262,6 +262,8 @@
#define HID_SC_RENAME_OBJECT ( HID_SC_TOOLBOX_START + 9 )
+#define HID_SC_REN_AFMT_DLG ( HID_SC_TOOLBOX_START + 10 )
+
// Hilfe IDs fuer Submenus (max.50) ------------------------------------------
#define HID_SCMENU_EDIT ( HID_SC_MENU_START )
#define HID_SCMENU_FILL ( HID_SC_MENU_START + 1 )
diff --git a/sc/inc/scimpexpmsg.hxx b/sc/inc/scimpexpmsg.hxx
deleted file mode 100644
index 5574edd12083..000000000000
--- a/sc/inc/scimpexpmsg.hxx
+++ /dev/null
@@ -1,105 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 SC_SCIMPEXPMSG_HXX
-#define SC_SCIMPEXPMSG_HXX
-
-
-#include <tools/string.hxx>
-#include <tools/solar.h>
-
-//UNUSED2008-05 enum ScImpExpMsg
-//UNUSED2008-05 {
-//UNUSED2008-05 SC_IMPEXPMSG_UNKNOWN
-//UNUSED2008-05 };
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 class String;
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 class ScImpExpLogMsg
-//UNUSED2008-05 {
-//UNUSED2008-05 private:
-//UNUSED2008-05 ScImpExpMsg eId;
-//UNUSED2008-05 String* pPos;
-//UNUSED2008-05 String* pHint;
-//UNUSED2008-05 protected:
-//UNUSED2008-05 public:
-//UNUSED2008-05 ScImpExpLogMsg( ScImpExpMsg eId );
-//UNUSED2008-05 ScImpExpLogMsg( ScImpExpMsg eId, const String& rPosition );
-//UNUSED2008-05 ScImpExpLogMsg( ScImpExpMsg eId, const String& rPosition, const String& rAdditionalHint );
-//UNUSED2008-05 ScImpExpLogMsg( const ScImpExpLogMsg& rCpy );
-//UNUSED2008-05 virtual ~ScImpExpLogMsg();
-//UNUSED2008-05
-//UNUSED2008-05 ScImpExpLogMsg& operator =( const ScImpExpLogMsg& rCpy );
-//UNUSED2008-05
-//UNUSED2008-05 void Set( ScImpExpMsg eId, const String* pPos = NULL, const String* pHint = NULL );
-//UNUSED2008-05
-//UNUSED2008-05 inline ScImpExpMsg GetId( void ) const;
-//UNUSED2008-05 inline const String* GetPos( void ) const;
-//UNUSED2008-05 inline const String* GetHint( void ) const;
-//UNUSED2008-05
-//UNUSED2008-05 static String GetMsg( ScImpExpMsg eId );
-//UNUSED2008-05 inline String GetMsg( void ) const;
-//UNUSED2008-05 };
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 inline ScImpExpLogMsg& ScImpExpLogMsg::operator =( const ScImpExpLogMsg& r )
-//UNUSED2008-05 {
-//UNUSED2008-05 Set( r.eId, r.pPos, r.pHint );
-//UNUSED2008-05 return *this;
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 inline ScImpExpMsg ScImpExpLogMsg::GetId( void ) const
-//UNUSED2008-05 {
-//UNUSED2008-05 return eId;
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 inline const String* ScImpExpLogMsg::GetPos( void ) const
-//UNUSED2008-05 {
-//UNUSED2008-05 return pPos;
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 inline const String* ScImpExpLogMsg::GetHint( void ) const
-//UNUSED2008-05 {
-//UNUSED2008-05 return pHint;
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 inline String ScImpExpLogMsg::GetMsg( void ) const
-//UNUSED2008-05 {
-//UNUSED2008-05 return GetMsg( eId );
-//UNUSED2008-05 }
-
-#endif
-
-
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx
index 0311c5093c4c..442e908542f3 100644
--- a/sc/inc/table.hxx
+++ b/sc/inc/table.hxx
@@ -380,7 +380,9 @@ public:
SCCOL nStartCol, SCROW nStartRow, SCCOL& rEndCol, SCROW nEndRow );
void GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow,
- BOOL bIncludeOld );
+ BOOL bIncludeOld, bool bOnlyDown ) const;
+
+ bool ShrinkToUsedDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly ) const;
SCSIZE GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow, ScDirection eDir );
@@ -422,11 +424,11 @@ public:
void UpdateReference( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
SCsCOL nDx, SCsROW nDy, SCsTAB nDz,
- ScDocument* pUndoDoc = NULL, BOOL bIncludeDraw = TRUE );
+ ScDocument* pUndoDoc = NULL, BOOL bIncludeDraw = TRUE, bool bUpdateNoteCaptionPos = true );
void UpdateDrawRef( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
- SCsCOL nDx, SCsROW nDy, SCsTAB nDz );
+ SCsCOL nDx, SCsROW nDy, SCsTAB nDz, bool bUpdateNoteCaptionPos = true );
void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest,
ScDocument* pUndoDoc );
@@ -660,8 +662,8 @@ public:
void FindConditionalFormat( ULONG nKey, ScRangeList& rRanges );
- void IncRecalcLevel() { ++nRecalcLvl; }
- void DecRecalcLevel() { if (!--nRecalcLvl) SetDrawPageSize(); }
+ void IncRecalcLevel() { ++nRecalcLvl; }
+ void DecRecalcLevel( bool bUpdateNoteCaptionPos = true ) { if (!--nRecalcLvl) SetDrawPageSize(true, bUpdateNoteCaptionPos); }
BOOL IsSortCollatorGlobal() const;
void InitSortCollator( const ScSortParam& rPar );
@@ -735,7 +737,7 @@ private:
BOOL GetNextSpellingCell(SCCOL& rCol, SCROW& rRow, BOOL bInSel,
const ScMarkData& rMark) const;
BOOL GetNextMarkedCell( SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark );
- void SetDrawPageSize(bool bResetStreamValid = true);
+ void SetDrawPageSize( bool bResetStreamValid = true, bool bUpdateNoteCaptionPos = true );
BOOL TestTabRefAbs(SCTAB nTable);
void CompileDBFormula();
void CompileDBFormula( BOOL bCreateFormulaString );
diff --git a/sc/prj/build.lst b/sc/prj/build.lst
index 115e92990f3c..e32d8938afc4 100755
--- a/sc/prj/build.lst
+++ b/sc/prj/build.lst
@@ -48,3 +48,4 @@ sc sc\addin\datefunc nmake - all sc_addfu sc_add sc_sdi sc_inc NULL
sc sc\addin\rot13 nmake - all sc_adrot sc_add sc_sdi sc_inc NULL
sc sc\addin\util nmake - all sc_adutil sc_addfu sc_adrot sc_sdi sc_inc NULL
sc sc\util nmake - all sc_util sc_addfu sc_adrot sc_adutil sc_app sc_attr sc_cctrl sc_cosrc sc_data sc_dbgui sc_dif sc_docsh sc_drfnc sc_excel sc_form sc_html sc_lotus sc_qpro sc_misc sc_name sc_nvipi sc_opt sc_page sc_rtf sc_scalc sc_style sc_tool sc_uisrc sc_undo sc_unobj sc_view sc_xcl97 sc_xml sc_acc sc_ftools sc_inc sc_vba NULL
+sc sc\qa\unoapi nmake - all sc_qa_unoapi NULL
diff --git a/sc/qa/unoapi/Test.java b/sc/qa/unoapi/Test.java
new file mode 100644
index 000000000000..27d048b8bf51
--- /dev/null
+++ b/sc/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.sc.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "sc.sce", "-xcl", "knownissues.xcl", "-tdoc",
+ "testdocuments", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/sc/qa/unoapi/knownissues.xcl b/sc/qa/unoapi/knownissues.xcl
index d84379c1ac5b..e6863cd75cab 100644
--- a/sc/qa/unoapi/knownissues.xcl
+++ b/sc/qa/unoapi/knownissues.xcl
@@ -164,4 +164,30 @@ sc.ScAccessibleCsvGrid
### i91045 ###
sc.ScAccessibleDocumentPagePreview
-#-> disabled in sc.sce \ No newline at end of file
+#-> disabled in sc.sce
+
+### i109517 ###
+sc.AccessibleEditableTextPara_PreviewCell::com::sun::star::accessibility::XAccessibleComponent
+sc.ScAccessiblePageHeaderArea::com::sun::star::accessibility::XAccessibleEventBroadcaster
+sc.ScAnnotationObj::com::sun::star::sheet::XSheetAnnotation
+sc.ScAnnotationObj::com::sun::star::text::XSimpleText
+sc.ScAnnotationObj::com::sun::star::text::XTextRange
+sc.ScAnnotationShapeObj::com::sun::star::beans::XPropertySet
+sc.ScAnnotationShapeObj::com::sun::star::drawing::CaptionShape
+sc.ScAnnotationShapeObj::com::sun::star::drawing::LineProperties
+sc.ScAnnotationShapeObj::com::sun::star::drawing::RotationDescriptor
+sc.ScAnnotationShapeObj::com::sun::star::drawing::ShadowProperties
+sc.ScAnnotationShapeObj::com::sun::star::drawing::Shape
+sc.ScAnnotationShapeObj::com::sun::star::drawing::XShape
+sc.ScAnnotationShapeObj::com::sun::star::drawing::XShapeDescriptor
+sc.ScAnnotationShapeObj::com::sun::star::lang::XComponent
+sc.ScAnnotationShapeObj::com::sun::star::style::CharacterProperties
+sc.ScAnnotationShapeObj::com::sun::star::style::CharacterPropertiesAsian
+sc.ScAnnotationShapeObj::com::sun::star::style::CharacterPropertiesComplex
+sc.ScAnnotationShapeObj::com::sun::star::style::ParagraphPropertiesAsian
+sc.ScAnnotationShapeObj::com::sun::star::style::ParagraphPropertiesComplex
+sc.ScAnnotationShapeObj::com::sun::star::text::XSimpleText
+sc.ScAnnotationShapeObj::com::sun::star::text::XTextRange
+sc.ScAnnotationsObj::com::sun::star::container::XElementAccess
+sc.ScCellObj::com::sun::star::sheet::XSheetAnnotationAnchor
+sc.ScDataPilotFieldObj::com::sun::star::sheet::XDataPilotFieldGrouping
diff --git a/sc/qa/unoapi/makefile.mk b/sc/qa/unoapi/makefile.mk
index b5506881fb2a..a4781282a0b3 100644
--- a/sc/qa/unoapi/makefile.mk
+++ b/sc/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,19 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=sc
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = sc
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/sc/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce sc.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
+.END
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
index 1bd5b101f691..fd2b2f1fd309 100644
--- a/sc/source/core/data/documen3.cxx
+++ b/sc/source/core/data/documen3.cxx
@@ -785,7 +785,8 @@ void ScDocument::UpdateReference( UpdateRefMode eUpdateRefMode,
SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
SCsCOL nDx, SCsROW nDy, SCsTAB nDz,
- ScDocument* pUndoDoc, BOOL bIncludeDraw )
+ ScDocument* pUndoDoc, BOOL bIncludeDraw,
+ bool bUpdateNoteCaptionPos )
{
PutInOrder( nCol1, nCol2 );
PutInOrder( nRow1, nRow2 );
@@ -829,7 +830,7 @@ void ScDocument::UpdateReference( UpdateRefMode eUpdateRefMode,
if (pTab[i])
pTab[i]->UpdateReference(
eUpdateRefMode, nCol1, nRow1, nTab1, nCol2, nRow2, nTab2,
- nDx, nDy, nDz, pUndoDoc, bIncludeDraw );
+ nDx, nDy, nDz, pUndoDoc, bIncludeDraw, bUpdateNoteCaptionPos );
if ( bIsEmbedded )
{
@@ -1900,10 +1901,10 @@ void ScDocument::IncSizeRecalcLevel( SCTAB nTab )
pTab[nTab]->IncRecalcLevel();
}
-void ScDocument::DecSizeRecalcLevel( SCTAB nTab )
+void ScDocument::DecSizeRecalcLevel( SCTAB nTab, bool bUpdateNoteCaptionPos )
{
if ( ValidTab(nTab) && pTab[nTab] )
- pTab[nTab]->DecRecalcLevel();
+ pTab[nTab]->DecRecalcLevel( bUpdateNoteCaptionPos );
}
// Wang Xu Ming -- 2009-8-17
diff --git a/sc/source/core/data/documen9.cxx b/sc/source/core/data/documen9.cxx
index ec6bba8cc33d..9da788fca01c 100644
--- a/sc/source/core/data/documen9.cxx
+++ b/sc/source/core/data/documen9.cxx
@@ -168,7 +168,7 @@ void ScDocument::InitDrawLayer( SfxObjectShell* pDocShell )
pTab[nTab]->GetName(aTabName);
pDrawLayer->ScRenamePage( nTab, aTabName );
- pTab[nTab]->SetDrawPageSize(false); // #54782# set the right size immediately
+ pTab[nTab]->SetDrawPageSize(false,false); // #54782# set the right size immediately
#if 0
ULONG nx = (ULONG) ((double) (MAXCOL+1) * STD_COL_WIDTH * HMM_PER_TWIPS );
ULONG ny = (ULONG) ((double) (MAXROW+1) * ScGlobal::nStdRowHeight * HMM_PER_TWIPS );
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 9cf68e3e309d..3f25ad5a310e 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -696,14 +696,22 @@ bool ScDocument::ShrinkToDataArea(SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow
return true; // success!
}
+bool ScDocument::ShrinkToUsedDataArea( SCTAB nTab, SCCOL& rStartCol,
+ SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly ) const
+{
+ if (!ValidTab(nTab) || !pTab[nTab])
+ return false;
+ return pTab[nTab]->ShrinkToUsedDataArea( rStartCol, rStartRow, rEndCol, rEndRow, bColumnsOnly);
+}
+
// zusammenhaengender Bereich
void ScDocument::GetDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow,
- SCCOL& rEndCol, SCROW& rEndRow, BOOL bIncludeOld )
+ SCCOL& rEndCol, SCROW& rEndRow, BOOL bIncludeOld, bool bOnlyDown )
{
if (VALIDTAB(nTab))
if (pTab[nTab])
- pTab[nTab]->GetDataArea( rStartCol, rStartRow, rEndCol, rEndRow, bIncludeOld );
+ pTab[nTab]->GetDataArea( rStartCol, rStartRow, rEndCol, rEndRow, bIncludeOld, bOnlyDown );
}
@@ -953,7 +961,7 @@ void ScDocument::DeleteRow( SCCOL nStartCol, SCTAB nStartTab,
{
UpdateReference( URM_INSDEL, nStartCol, nStartRow+nSize, nTabRangeStart,
nEndCol, MAXROW, nTabRangeEnd,
- 0, -(static_cast<SCsROW>(nSize)), 0, pRefUndoDoc );
+ 0, -(static_cast<SCsROW>(nSize)), 0, pRefUndoDoc, TRUE, false );
}
while ( lcl_GetNextTabRange( nTabRangeStart, nTabRangeEnd, pTabMark ) );
}
@@ -1054,7 +1062,7 @@ BOOL ScDocument::InsertCol( SCROW nStartRow, SCTAB nStartTab,
{
UpdateReference( URM_INSDEL, nStartCol, nStartRow, nTabRangeStart,
MAXCOL, nEndRow, nTabRangeEnd,
- static_cast<SCsCOL>(nSize), 0, 0, pRefUndoDoc );
+ static_cast<SCsCOL>(nSize), 0, 0, pRefUndoDoc, TRUE, false );
}
while ( lcl_GetNextTabRange( nTabRangeStart, nTabRangeEnd, pTabMark ) );
@@ -1143,7 +1151,7 @@ void ScDocument::DeleteCol(SCROW nStartRow, SCTAB nStartTab, SCROW nEndRow, SCTA
{
UpdateReference( URM_INSDEL, sal::static_int_cast<SCCOL>(nStartCol+nSize), nStartRow, nTabRangeStart,
MAXCOL, nEndRow, nTabRangeEnd,
- -static_cast<SCsCOL>(nSize), 0, 0, pRefUndoDoc );
+ -static_cast<SCsCOL>(nSize), 0, 0, pRefUndoDoc, TRUE, false );
}
while ( lcl_GetNextTabRange( nTabRangeStart, nTabRangeEnd, pTabMark ) );
}
diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx
index 69dee934ce66..3d7fc007818b 100755
--- a/sc/source/core/data/drwlayer.cxx
+++ b/sc/source/core/data/drwlayer.cxx
@@ -456,7 +456,7 @@ inline BOOL IsInBlock( const ScAddress& rPos, SCCOL nCol1,SCROW nRow1, SCCOL nCo
}
void ScDrawLayer::MoveCells( SCTAB nTab, SCCOL nCol1,SCROW nRow1, SCCOL nCol2,SCROW nRow2,
- SCsCOL nDx,SCsROW nDy )
+ SCsCOL nDx,SCsROW nDy, bool bUpdateNoteCaptionPos )
{
SdrPage* pPage = GetPage(static_cast<sal_uInt16>(nTab));
DBG_ASSERT(pPage,"Page nicht gefunden");
@@ -492,13 +492,13 @@ void ScDrawLayer::MoveCells( SCTAB nTab, SCCOL nCol1,SCROW nRow1, SCCOL nCol2,SC
if ( pObj->ISA( SdrRectObj ) && pData->maStart.IsValid() && pData->maEnd.IsValid() )
pData->maStart.PutInOrder( pData->maEnd );
AddCalcUndo( new ScUndoObjData( pObj, aOldStt, aOldEnd, pData->maStart, pData->maEnd ) );
- RecalcPos( pObj, *pData, bNegativePage );
+ RecalcPos( pObj, *pData, bNegativePage, bUpdateNoteCaptionPos );
}
}
}
}
-void ScDrawLayer::SetPageSize( USHORT nPageNo, const Size& rSize )
+void ScDrawLayer::SetPageSize( USHORT nPageNo, const Size& rSize, bool bUpdateNoteCaptionPos )
{
SdrPage* pPage = GetPage(nPageNo);
if (pPage)
@@ -521,34 +521,31 @@ void ScDrawLayer::SetPageSize( USHORT nPageNo, const Size& rSize )
SdrObject* pObj = pPage->GetObj( i );
ScDrawObjData* pData = GetObjDataTab( pObj, static_cast<SCTAB>(nPageNo) );
if( pData )
- RecalcPos( pObj, *pData, bNegativePage );
+ RecalcPos( pObj, *pData, bNegativePage, bUpdateNoteCaptionPos );
}
}
}
-void ScDrawLayer::RecalcPos( SdrObject* pObj, const ScDrawObjData& rData, bool bNegativePage )
+void ScDrawLayer::RecalcPos( SdrObject* pObj, const ScDrawObjData& rData, bool bNegativePage, bool bUpdateNoteCaptionPos )
{
DBG_ASSERT( pDoc, "ScDrawLayer::RecalcPos - missing document" );
if( !pDoc )
return;
- /* TODO CleanUp: Updating note position works just by chance currently...
- When inserting rows/columns, this function is called after the
- insertion, and the note is located at the new position contained in the
- passed ScDrawObjData already. But when deleting rows/columns, this
- function is called *before* the deletion, so the note is still at the
- old cell position, and ScDocument::GetNote() will fail to get the note
- or will get another note. But after the rows/columns are deleted, a
- call to ScDrawLayer::SetPageSize() will call this function again, and
- now the note is at the expected position in the document. */
if( rData.mbNote )
{
DBG_ASSERT( rData.maStart.IsValid(), "ScDrawLayer::RecalcPos - invalid position for cell note" );
- /* When inside an undo action, there may be pending note captions
- where cell note is already deleted. The caption will be deleted
- later with drawing undo. */
- if( ScPostIt* pNote = pDoc->GetNote( rData.maStart ) )
- pNote->UpdateCaptionPos( rData.maStart );
+ /* #i109372# On insert/remove rows/columns/cells: Updating the caption
+ position must not be done, if the cell containing the note has not
+ been moved yet in the document. The calling code now passes an
+ additional boolean stating if the cells are already moved. */
+ if( bUpdateNoteCaptionPos )
+ /* When inside an undo action, there may be pending note captions
+ where cell note is already deleted (thus document cannot find
+ the note object anymore). The caption will be deleted later
+ with drawing undo. */
+ if( ScPostIt* pNote = pDoc->GetNote( rData.maStart ) )
+ pNote->UpdateCaptionPos( rData.maStart );
return;
}
@@ -1020,7 +1017,7 @@ void ScDrawLayer::MoveAreaTwips( SCTAB nTab, const Rectangle& rArea,
}
void ScDrawLayer::MoveArea( SCTAB nTab, SCCOL nCol1,SCROW nRow1, SCCOL nCol2,SCROW nRow2,
- SCsCOL nDx,SCsROW nDy, BOOL bInsDel )
+ SCsCOL nDx,SCsROW nDy, BOOL bInsDel, bool bUpdateNoteCaptionPos )
{
DBG_ASSERT( pDoc, "ScDrawLayer::MoveArea without document" );
if ( !pDoc )
@@ -1069,7 +1066,7 @@ void ScDrawLayer::MoveArea( SCTAB nTab, SCCOL nCol1,SCROW nRow1, SCCOL nCol2,SCR
// Detektiv-Pfeile: Zellpositionen anpassen
//
- MoveCells( nTab, nCol1,nRow1, nCol2,nRow2, nDx,nDy );
+ MoveCells( nTab, nCol1,nRow1, nCol2,nRow2, nDx,nDy, bUpdateNoteCaptionPos );
}
void ScDrawLayer::WidthChanged( SCTAB nTab, SCCOL nCol, long nDifTwips )
diff --git a/sc/source/core/data/makefile.mk b/sc/source/core/data/makefile.mk
index ab2160a93219..cf51e1e543a4 100755
--- a/sc/source/core/data/makefile.mk
+++ b/sc/source/core/data/makefile.mk
@@ -96,10 +96,8 @@ SLOFILES = \
$(SLO)$/olinetab.obj \
$(SLO)$/pagepar.obj \
$(SLO)$/patattr.obj \
- $(SLO)$/pivot.obj \
$(SLO)$/pivot2.obj \
$(SLO)$/poolhelp.obj \
- $(SLO)$/scimpexpmsg.obj \
$(SLO)$/sortparam.obj \
$(SLO)$/stlpool.obj \
$(SLO)$/stlsheet.obj \
diff --git a/sc/source/core/data/pivot.cxx b/sc/source/core/data/pivot.cxx
deleted file mode 100644
index e63b228de703..000000000000
--- a/sc/source/core/data/pivot.cxx
+++ /dev/null
@@ -1,34 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_sc.hxx"
-
-
-
-// -----------------------------------------------------------------------
-
diff --git a/sc/source/core/data/scimpexpmsg.cxx b/sc/source/core/data/scimpexpmsg.cxx
deleted file mode 100644
index 0d883fe5535a..000000000000
--- a/sc/source/core/data/scimpexpmsg.cxx
+++ /dev/null
@@ -1,113 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_sc.hxx"
-
-
-
-// INCLUDE ---------------------------------------------------------------
-
-#include "document.hxx"
-#include "scimpexpmsg.hxx"
-
-#include <tools/string.hxx>
-
-//UNUSED2008-05 ScImpExpLogMsg::ScImpExpLogMsg( ScImpExpMsg e ) : eId( e ), pPos( NULL ), pHint( NULL )
-//UNUSED2008-05 {
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 ScImpExpLogMsg::ScImpExpLogMsg( ScImpExpMsg e, const String& r ) : eId( e ), pHint( NULL )
-//UNUSED2008-05 {
-//UNUSED2008-05 pPos = new String( r );
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 ScImpExpLogMsg::ScImpExpLogMsg( ScImpExpMsg e, const String& rP, const String& rH ) : eId( e )
-//UNUSED2008-05 {
-//UNUSED2008-05 pPos = new String( rP );
-//UNUSED2008-05 pHint = new String( rH );
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05 ScImpExpLogMsg::ScImpExpLogMsg( const ScImpExpLogMsg& r ) : eId( r.eId )
-//UNUSED2008-05 {
-//UNUSED2008-05 if( r.pPos )
-//UNUSED2008-05 pPos = new String( *r.pPos );
-//UNUSED2008-05 else
-//UNUSED2008-05 pPos = NULL;
-//UNUSED2008-05
-//UNUSED2008-05 if( r.pHint )
-//UNUSED2008-05 pHint = new String( *r.pHint );
-//UNUSED2008-05 else
-//UNUSED2008-05 pHint = NULL;
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 ScImpExpLogMsg::~ScImpExpLogMsg()
-//UNUSED2008-05 {
-//UNUSED2008-05 if( pPos )
-//UNUSED2008-05 delete pPos;
-//UNUSED2008-05
-//UNUSED2008-05 if( pHint )
-//UNUSED2008-05 delete pHint;
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 void ScImpExpLogMsg::Set( ScImpExpMsg e, const String* pP, const String* pH )
-//UNUSED2008-05 {
-//UNUSED2008-05 eId = e;
-//UNUSED2008-05 if( pPos )
-//UNUSED2008-05 delete pPos;
-//UNUSED2008-05
-//UNUSED2008-05 if( pHint )
-//UNUSED2008-05 delete pHint;
-//UNUSED2008-05
-//UNUSED2008-05 if( pP )
-//UNUSED2008-05 pPos = new String( *pP );
-//UNUSED2008-05 else
-//UNUSED2008-05 pPos = NULL;
-//UNUSED2008-05
-//UNUSED2008-05 if( pH )
-//UNUSED2008-05 pHint = new String( *pH );
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05
-//UNUSED2008-05 String ScImpExpLogMsg::GetMsg( ScImpExpMsg e )
-//UNUSED2008-05 {
-//UNUSED2008-05 const sal_Char* p;
-//UNUSED2008-05 switch( e )
-//UNUSED2008-05 {
-//UNUSED2008-05 case SC_IMPEXPMSG_UNKNOWN: p = "unknown log message"; break;
-//UNUSED2008-05 default: p = "Not specified type of log message";
-//UNUSED2008-05 }
-//UNUSED2008-05
-//UNUSED2008-05 String aRet;
-//UNUSED2008-05 aRet.AssignAscii( p );
-//UNUSED2008-05 return aRet;
-//UNUSED2008-05 }
-
diff --git a/sc/source/core/data/table1.cxx b/sc/source/core/data/table1.cxx
index 76656accdf46..f8cf1489f3aa 100644
--- a/sc/source/core/data/table1.cxx
+++ b/sc/source/core/data/table1.cxx
@@ -190,7 +190,7 @@ ScTable::ScTable( ScDocument* pDoc, SCTAB nNewTab, const String& rNewName,
pDrawLayer->ScRenamePage( nTab, aName );
ULONG nx = (ULONG) ((double) (MAXCOL+1) * STD_COL_WIDTH * HMM_PER_TWIPS );
ULONG ny = (ULONG) ((double) (MAXROW+1) * ScGlobal::nStdRowHeight * HMM_PER_TWIPS );
- pDrawLayer->SetPageSize( static_cast<sal_uInt16>(nTab), Size( nx, ny ) );
+ pDrawLayer->SetPageSize( static_cast<sal_uInt16>(nTab), Size( nx, ny ), false );
}
}
@@ -683,7 +683,7 @@ BOOL ScTable::GetDataStart( SCCOL& rStartCol, SCROW& rStartRow ) const
}
void ScTable::GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow,
- BOOL bIncludeOld )
+ BOOL bIncludeOld, bool bOnlyDown ) const
{
BOOL bLeft = FALSE;
BOOL bRight = FALSE;
@@ -698,26 +698,44 @@ void ScTable::GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, S
{
bChanged = FALSE;
- SCROW nStart = rStartRow;
- SCROW nEnd = rEndRow;
- if (nStart>0) --nStart;
- if (nEnd<MAXROW) ++nEnd;
+ if (!bOnlyDown)
+ {
+ SCROW nStart = rStartRow;
+ SCROW nEnd = rEndRow;
+ if (nStart>0) --nStart;
+ if (nEnd<MAXROW) ++nEnd;
- if (rEndCol < MAXCOL)
- if (!aCol[rEndCol+1].IsEmptyBlock(nStart,nEnd))
- {
- ++rEndCol;
- bChanged = TRUE;
- bRight = TRUE;
- }
+ if (rEndCol < MAXCOL)
+ if (!aCol[rEndCol+1].IsEmptyBlock(nStart,nEnd))
+ {
+ ++rEndCol;
+ bChanged = TRUE;
+ bRight = TRUE;
+ }
- if (rStartCol > 0)
- if (!aCol[rStartCol-1].IsEmptyBlock(nStart,nEnd))
+ if (rStartCol > 0)
+ if (!aCol[rStartCol-1].IsEmptyBlock(nStart,nEnd))
+ {
+ --rStartCol;
+ bChanged = TRUE;
+ bLeft = TRUE;
+ }
+
+ if (rStartRow > 0)
{
- --rStartCol;
- bChanged = TRUE;
- bLeft = TRUE;
+ nTest = rStartRow-1;
+ bFound = FALSE;
+ for (i=rStartCol; i<=rEndCol && !bFound; i++)
+ if (aCol[i].HasDataAt(nTest))
+ bFound = TRUE;
+ if (bFound)
+ {
+ --rStartRow;
+ bChanged = TRUE;
+ bTop = TRUE;
+ }
}
+ }
if (rEndRow < MAXROW)
{
@@ -733,21 +751,6 @@ void ScTable::GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, S
bBottom = TRUE;
}
}
-
- if (rStartRow > 0)
- {
- nTest = rStartRow-1;
- bFound = FALSE;
- for (i=rStartCol; i<=rEndCol && !bFound; i++)
- if (aCol[i].HasDataAt(nTest))
- bFound = TRUE;
- if (bFound)
- {
- --rStartRow;
- bChanged = TRUE;
- bTop = TRUE;
- }
- }
}
while( bChanged );
@@ -780,6 +783,77 @@ void ScTable::GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, S
}
}
+
+bool ScTable::ShrinkToUsedDataArea( SCCOL& rStartCol, SCROW& rStartRow,
+ SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly ) const
+{
+ bool bRet = false;
+ bool bChanged;
+
+ do
+ {
+ bChanged = false;
+
+ bool bCont = true;
+ while (rEndCol > 0 && bCont && rStartCol < rEndCol)
+ {
+ if (aCol[rEndCol].IsEmptyBlock( rStartRow, rEndRow))
+ {
+ --rEndCol;
+ bChanged = true;
+ }
+ else
+ bCont = false;
+ }
+
+ bCont = true;
+ while (rStartCol < MAXCOL && bCont && rStartCol < rEndCol)
+ {
+ if (aCol[rStartCol].IsEmptyBlock( rStartRow, rEndRow))
+ {
+ ++rStartCol;
+ bChanged = true;
+ }
+ else
+ bCont = false;
+ }
+
+ if (!bColumnsOnly)
+ {
+ if (rStartRow < MAXROW && rStartRow < rEndRow)
+ {
+ bool bFound = false;
+ for (SCCOL i=rStartCol; i<=rEndCol && !bFound; i++)
+ if (aCol[i].HasDataAt( rStartRow))
+ bFound = true;
+ if (!bFound)
+ {
+ ++rStartRow;
+ bChanged = true;
+ }
+ }
+
+ if (rEndRow > 0 && rStartRow < rEndRow)
+ {
+ bool bFound = false;
+ for (SCCOL i=rStartCol; i<=rEndCol && !bFound; i++)
+ if (aCol[i].HasDataAt( rEndRow))
+ bFound = true;
+ if (!bFound)
+ {
+ --rEndRow;
+ bChanged = true;
+ }
+ }
+ }
+
+ if (bChanged)
+ bRet = true;
+ } while( bChanged );
+ return bRet;
+}
+
+
SCSIZE ScTable::GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow, ScDirection eDir )
{
@@ -1117,7 +1191,7 @@ BOOL ScTable::GetNextMarkedCell( SCCOL& rCol, SCROW& rRow, const ScMarkData& rMa
void ScTable::UpdateDrawRef( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
- SCsCOL nDx, SCsROW nDy, SCsTAB nDz )
+ SCsCOL nDx, SCsROW nDy, SCsTAB nDz, bool bUpdateNoteCaptionPos )
{
if ( nTab >= nTab1 && nTab <= nTab2 && nDz == 0 ) // only within the table
{
@@ -1133,14 +1207,14 @@ void ScTable::UpdateDrawRef( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nR
nRow2 = sal::static_int_cast<SCROW>( nRow2 - nDy );
}
pDrawLayer->MoveArea( nTab, nCol1,nRow1, nCol2,nRow2, nDx,nDy,
- (eUpdateRefMode == URM_INSDEL) );
+ (eUpdateRefMode == URM_INSDEL), bUpdateNoteCaptionPos );
}
}
}
void ScTable::UpdateReference( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
SCCOL nCol2, SCROW nRow2, SCTAB nTab2, SCsCOL nDx, SCsROW nDy, SCsTAB nDz,
- ScDocument* pUndoDoc, BOOL bIncludeDraw )
+ ScDocument* pUndoDoc, BOOL bIncludeDraw, bool bUpdateNoteCaptionPos )
{
SCCOL i;
SCCOL iMax;
@@ -1159,7 +1233,7 @@ void ScTable::UpdateReference( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW
nDx, nDy, nDz, pUndoDoc );
if ( bIncludeDraw )
- UpdateDrawRef( eUpdateRefMode, nCol1, nRow1, nTab1, nCol2, nRow2, nTab2, nDx, nDy, nDz );
+ UpdateDrawRef( eUpdateRefMode, nCol1, nRow1, nTab1, nCol2, nRow2, nTab2, nDx, nDy, nDz, bUpdateNoteCaptionPos );
if ( nTab >= nTab1 && nTab <= nTab2 && nDz == 0 ) // print ranges: only within the table
{
diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx
index 2163c3154d6a..4dc7dddcaba1 100644
--- a/sc/source/core/data/table2.cxx
+++ b/sc/source/core/data/table2.cxx
@@ -113,7 +113,7 @@ BOOL ScTable::TestInsertRow( SCCOL nStartCol, SCCOL nEndCol, SCSIZE nSize )
void ScTable::InsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize )
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
if (nStartCol==0 && nEndCol==MAXCOL)
{
@@ -132,15 +132,14 @@ void ScTable::InsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE
for (SCCOL j=nStartCol; j<=nEndCol; j++)
aCol[j].InsertRow( nStartRow, nSize );
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel( false );
}
void ScTable::DeleteRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize,
BOOL* pUndoOutline )
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
if (nStartCol==0 && nEndCol==MAXCOL)
{
@@ -160,8 +159,7 @@ void ScTable::DeleteRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE
for (SCCOL j=nStartCol; j<=nEndCol; j++)
aCol[j].DeleteRow( nStartRow, nSize );
}
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
@@ -184,7 +182,7 @@ BOOL ScTable::TestInsertCol( SCROW nStartRow, SCROW nEndRow, SCSIZE nSize )
void ScTable::InsertCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize )
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
if (nStartRow==0 && nEndRow==MAXROW)
{
@@ -227,15 +225,14 @@ void ScTable::InsertCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE
aCol[nStartCol+i].ClearItems( nStartRow, nEndRow, nWhichArray );
}
}
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
void ScTable::DeleteCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize,
BOOL* pUndoOutline )
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
if (nStartRow==0 && nEndRow==MAXROW)
{
@@ -270,8 +267,7 @@ void ScTable::DeleteCol( SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE
for (SCSIZE i=0; static_cast<SCCOL>(i+nSize)+nStartCol <= MAXCOL; i++)
aCol[nStartCol + nSize + i].MoveTo(nStartRow, nEndRow, aCol[nStartCol + i]);
}
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
@@ -281,7 +277,7 @@ void ScTable::DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, USH
if (nRow2 > MAXROW) nRow2 = MAXROW;
if (ValidColRow(nCol1, nRow1) && ValidColRow(nCol2, nRow2))
{
-// nRecalcLvl++;
+// IncRecalcLevel();
{ // scope for bulk broadcast
ScBulkBroadcast aBulkBroadcast( pDocument->GetBASM());
@@ -300,9 +296,7 @@ void ScTable::DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, USH
ApplyPatternArea( nCol1, nRow1, nCol2, nRow2, aPattern );
}
-/* if( !--nRecalcLvl )
- SetDrawPageSize();
-*/
+// DecRecalcLevel();
}
}
@@ -389,7 +383,7 @@ void ScTable::CopyFromClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
if (nRow2 > MAXROW) nRow2 = MAXROW;
if (ValidColRow(nCol1, nRow1) && ValidColRow(nCol2, nRow2))
{
- nRecalcLvl++;
+ IncRecalcLevel();
for ( i = nCol1; i <= nCol2; i++)
aCol[i].CopyFromClip(nRow1, nRow2, nDy, nInsFlag, bAsLink, bSkipAttrForEmpty, pTable->aCol[i - nDx]);
@@ -424,8 +418,7 @@ void ScTable::CopyFromClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
ApplyPatternArea( nCol1, nRow1, nCol2, nRow2, aPattern );
}
}
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
}
@@ -691,7 +684,7 @@ void ScTable::UndoToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
BOOL bHeight = (nCol1==0 && nCol2==MAXCOL && pRowHeight && pDestTab->pRowHeight);
if (bWidth||bHeight)
- nRecalcLvl++;
+ IncRecalcLevel();
for ( SCCOL i = 0; i <= MAXCOL; i++)
{
@@ -709,8 +702,7 @@ void ScTable::UndoToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
pDestTab->pColWidth[i] = pColWidth[i];
if (bHeight)
pDestTab->pRowHeight->CopyFrom( *pRowHeight, nRow1, nRow2);
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
}
}
@@ -1960,14 +1952,13 @@ void ScTable::SetColWidth( SCCOL nCol, USHORT nNewWidth )
if ( nNewWidth != pColWidth[nCol] )
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
ScDrawLayer* pDrawLayer = pDocument->GetDrawLayer();
if (pDrawLayer)
pDrawLayer->WidthChanged( nTab, nCol, ((long) nNewWidth) - (long) pColWidth[nCol] );
pColWidth[nCol] = nNewWidth;
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
}
else
@@ -1990,14 +1981,13 @@ void ScTable::SetRowHeight( SCROW nRow, USHORT nNewHeight )
USHORT nOldHeight = pRowHeight->GetValue(nRow);
if ( nNewHeight != nOldHeight )
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
ScDrawLayer* pDrawLayer = pDocument->GetDrawLayer();
if (pDrawLayer)
pDrawLayer->HeightChanged( nTab, nRow, ((long) nNewHeight) - (long) nOldHeight );
pRowHeight->SetValue( nRow, nNewHeight);
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
}
else
@@ -2013,7 +2003,7 @@ BOOL ScTable::SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, USHORT nNewHeig
BOOL bChanged = FALSE;
if (VALIDROW(nStartRow) && VALIDROW(nEndRow) && pRowHeight)
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
if (!nNewHeight)
{
@@ -2096,8 +2086,7 @@ BOOL ScTable::SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, USHORT nNewHeig
} while (!bChanged && aIter.NextRange());
pRowHeight->SetValue( nStartRow, nEndRow, nNewHeight);
}
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
else
{
@@ -2280,7 +2269,7 @@ void ScTable::ShowCol(SCCOL nCol, BOOL bShow)
BOOL bWasVis = ( pColFlags[nCol] & CR_HIDDEN ) == 0;
if (bWasVis != bShow)
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
ScDrawLayer* pDrawLayer = pDocument->GetDrawLayer();
if (pDrawLayer)
@@ -2295,8 +2284,7 @@ void ScTable::ShowCol(SCCOL nCol, BOOL bShow)
pColFlags[nCol] &= ~CR_HIDDEN;
else
pColFlags[nCol] |= CR_HIDDEN;
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
ScChartListenerCollection* pCharts = pDocument->GetChartListenerCollection();
if ( pCharts )
@@ -2318,7 +2306,7 @@ void ScTable::ShowRow(SCROW nRow, BOOL bShow)
BOOL bWasVis = ( nFlags & CR_HIDDEN ) == 0;
if (bWasVis != bShow)
{
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
ScDrawLayer* pDrawLayer = pDocument->GetDrawLayer();
if (pDrawLayer)
@@ -2333,8 +2321,7 @@ void ScTable::ShowRow(SCROW nRow, BOOL bShow)
pRowFlags->SetValue( nRow, nFlags & ~(CR_HIDDEN | CR_FILTERED));
else
pRowFlags->SetValue( nRow, nFlags | CR_HIDDEN);
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
ScChartListenerCollection* pCharts = pDocument->GetChartListenerCollection();
if ( pCharts )
@@ -2354,7 +2341,7 @@ void ScTable::DBShowRow(SCROW nRow, BOOL bShow)
{
BYTE nFlags = pRowFlags->GetValue(nRow);
BOOL bWasVis = ( nFlags & CR_HIDDEN ) == 0;
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
if (bWasVis != bShow)
{
@@ -2373,8 +2360,7 @@ void ScTable::DBShowRow(SCROW nRow, BOOL bShow)
pRowFlags->SetValue( nRow, nFlags & ~(CR_HIDDEN | CR_FILTERED));
else
pRowFlags->SetValue( nRow, nFlags | (CR_HIDDEN | CR_FILTERED));
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
if (bWasVis != bShow)
{
@@ -2396,7 +2382,7 @@ void ScTable::DBShowRow(SCROW nRow, BOOL bShow)
void ScTable::DBShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
{
SCROW nStartRow = nRow1;
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
while (nStartRow <= nRow2)
{
@@ -2441,15 +2427,14 @@ void ScTable::DBShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
if (pOutlineTable)
UpdateOutlineRow( nRow1, nRow2, bShow );
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
void ScTable::ShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
{
SCROW nStartRow = nRow1;
- nRecalcLvl++;
+ IncRecalcLevel();
InitializeNoteCaptions();
while (nStartRow <= nRow2)
{
@@ -2487,8 +2472,7 @@ void ScTable::ShowRows(SCROW nRow1, SCROW nRow2, BOOL bShow)
nStartRow = nEndRow + 1;
}
- if( !--nRecalcLvl )
- SetDrawPageSize();
+ DecRecalcLevel();
}
@@ -2854,7 +2838,7 @@ void ScTable::GetUpperCellString(SCCOL nCol, SCROW nRow, String& rStr)
// Berechnen der Groesse der Tabelle und setzen der Groesse an der DrawPage
-void ScTable::SetDrawPageSize(bool bResetStreamValid)
+void ScTable::SetDrawPageSize(bool bResetStreamValid, bool bUpdateNoteCaptionPos)
{
ScDrawLayer* pDrawLayer = pDocument->GetDrawLayer();
if( pDrawLayer )
@@ -2867,7 +2851,7 @@ void ScTable::SetDrawPageSize(bool bResetStreamValid)
if ( IsLayoutRTL() ) // IsNegativePage
x = -x;
- pDrawLayer->SetPageSize( static_cast<sal_uInt16>(nTab), Size( x, y ) );
+ pDrawLayer->SetPageSize( static_cast<sal_uInt16>(nTab), Size( x, y ), bUpdateNoteCaptionPos );
}
// #i102616# actions that modify the draw page size count as sheet modification
diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index 8a6c0df0db16..ffba9aafc511 100755..100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -3115,7 +3115,7 @@ void ScInterpreter::ScColRowNameAuto()
(SCROW&) aRefData.Ref1.nRow,
(SCCOL&) aRefData.Ref2.nCol,
(SCROW&) aRefData.Ref2.nRow,
- TRUE );
+ TRUE, false );
// DataArea im Ursprung begrenzen
aRefData.Ref1.nCol = nStartCol;
aRefData.Ref1.nRow = nStartRow;
diff --git a/sc/source/core/tool/rangelst.cxx b/sc/source/core/tool/rangelst.cxx
index a631ff3c3fbb..1ab978866c67 100644
--- a/sc/source/core/tool/rangelst.cxx
+++ b/sc/source/core/tool/rangelst.cxx
@@ -229,6 +229,11 @@ BOOL ScRangeList::operator==( const ScRangeList& r ) const
return TRUE;
}
+BOOL ScRangeList::operator!=( const ScRangeList& r ) const
+{
+ return !operator==( r );
+}
+
BOOL ScRangeList::UpdateReference( UpdateRefMode eUpdateRefMode,
ScDocument* pDoc, const ScRange& rWhere,
SCsCOL nDx, SCsROW nDy, SCsTAB nDz )
diff --git a/sc/source/filter/excel/xelink.cxx b/sc/source/filter/excel/xelink.cxx
index 421a15b6da95..fcf738527025 100644
--- a/sc/source/filter/excel/xelink.cxx
+++ b/sc/source/filter/excel/xelink.cxx
@@ -43,7 +43,8 @@
using ::std::auto_ptr;
using ::std::find_if;
using ::std::vector;
-using namespace formula;
+using ::rtl::OUString;
+using ::com::sun::star::uno::Any;
// ============================================================================
// *** Helper classes ***
@@ -166,105 +167,59 @@ private:
// Cached external cells ======================================================
-/** Base class to store the contents of one external cell (record CRN). */
+/** Stores the contents of a consecutive row of external cells (record CRN). */
class XclExpCrn : public XclExpRecord
{
-protected:
- /** @param nAddSize The size of additional data derived classes will write. */
- explicit XclExpCrn( SCCOL nScCol, SCROW nScRow, sal_uInt8 nId, sal_uInt32 nAddLen = 0 );
-
-private:
- /** Writes the start of the record that is equal in all CRN records and calls WriteAddData(). */
- virtual void WriteBody( XclExpStream& rStrm );
-
- /** Called to write additional data following the common record contents.
- @descr Derived classes should overwrite this function to write their data. */
- virtual void WriteAddData( XclExpStream& rStrm ) = 0;
-
-private:
- sal_uInt16 mnXclCol; /// Column index of the external cell.
- sal_uInt16 mnXclRow; /// Row index of the external cell.
- sal_uInt8 mnId; /// Identifier for data type (EXC_CACHEDVAL_***).
-};
-
-// ----------------------------------------------------------------------------
-
-/** Cached data of an external value cell. */
-class XclExpCrnDouble : public XclExpCrn
-{
public:
- explicit XclExpCrnDouble( SCCOL nScCol, SCROW nScRow, double fVal );
+ explicit XclExpCrn( SCCOL nScCol, SCROW nScRow, const Any& rValue );
-private:
- /** Writes the double value following the common record contents. */
- virtual void WriteAddData( XclExpStream& rStrm );
+ /** Returns true, if the passed value could be appended to this record. */
+ bool InsertValue( SCCOL nScCol, SCROW nScRow, const Any& rValue );
private:
- double mfVal; /// Value of the cached cell.
-};
-
-// ----------------------------------------------------------------------------
+ virtual void WriteBody( XclExpStream& rStrm );
-/** Cached data of an external text cell. */
-class XclExpCrnString : public XclExpCrn
-{
-public:
- explicit XclExpCrnString( SCCOL nScCol, SCROW nScRow, const String& rText );
+ void WriteBool( XclExpStream& rStrm, bool bValue );
+ void WriteDouble( XclExpStream& rStrm, double fValue );
+ void WriteString( XclExpStream& rStrm, const OUString& rValue );
+ void WriteError( XclExpStream& rStrm, sal_uInt8 nErrCode );
+ void WriteEmpty( XclExpStream& rStrm );
private:
- /** Writes the string following the common record contents. */
- virtual void WriteAddData( XclExpStream& rStrm );
+ typedef ::std::vector< Any > CachedValues;
-private:
- XclExpString maText; /// Text of the cached cell.
+ CachedValues maValues; /// All cached values.
+ SCCOL mnScCol; /// Column index of the first external cell.
+ SCROW mnScRow; /// Row index of the external cells.
};
// ----------------------------------------------------------------------------
-/// Cached data of an external Boolean cell. */
-class XclExpCrnBool : public XclExpCrn
-{
-public:
- explicit XclExpCrnBool( SCCOL nScCol, SCROW nScRow, bool bBoolVal );
-
-private:
- /** Writes the Boolean value following the common record contents. */
- virtual void WriteAddData( XclExpStream& rStrm );
-
-private:
- sal_uInt16 mnBool; /// Boolean value of the cached cell.
-};
-
-// Cached cells of a sheet ====================================================
-
-/// Represents the record XCT which is the header record of a CRN record list. */
-class XclExpXct : public XclExpRecord
+/** Represents the record XCT which is the header record of a CRN record list.
+ */
+class XclExpXct : public XclExpRecordBase, protected XclExpRoot
{
public:
- explicit XclExpXct( const String& rTabName, sal_uInt16 nSBTab );
+ explicit XclExpXct( const XclExpRoot& rRoot,
+ const String& rTabName, sal_uInt16 nSBTab,
+ ScExternalRefCache::TableTypeRef xCacheTable );
/** Returns the external sheet name. */
inline const XclExpString& GetTabName() const { return maTabName; }
/** Stores all cells in the given range in the CRN list. */
- void StoreCellRange( const XclExpRoot& rRoot, const ScRange& rRange );
+ void StoreCellRange( const ScRange& rRange );
- void StoreCell( const XclExpRoot& rRoot, const ScAddress& rCell, const formula::FormulaToken& rToken );
- void StoreCellRange( const XclExpRoot& rRoot, const ScRange& rRange, const formula::FormulaToken& rToken );
+ void StoreCell( const ScAddress& rCell, const ::formula::FormulaToken& rToken );
+ void StoreCellRange( const ScRange& rRange, const ::formula::FormulaToken& rToken );
/** Writes the XCT and all CRN records. */
virtual void Save( XclExpStream& rStrm );
private:
- /** Writes the XCT record contents. */
- virtual void WriteBody( XclExpStream& rStrm );
-
-private:
- typedef XclExpRecordList< XclExpCrn > XclExpCrnList;
- typedef XclExpCrnList::RecordRefType XclExpCrnRef;
-
- XclExpCrnList maCrnList; /// CRN records that follow this record.
+ ScExternalRefCache::TableTypeRef mxCacheTable;
ScMarkData maUsedCells; /// Contains addresses of all stored cells.
+ ScRange maBoundRange; /// Bounding box of maUsedCells.
XclExpString maTabName; /// Sheet name of the external sheet.
sal_uInt16 mnSBTab; /// Referred sheet index in SUPBOOK record.
};
@@ -353,14 +308,14 @@ public:
/** Stores all cells in the given range in the CRN list of the specified SUPBOOK sheet. */
void StoreCellRange( const ScRange& rRange, sal_uInt16 nSBTab );
- void StoreCell( sal_uInt16 nSBTab, const ScAddress& rCell, const formula::FormulaToken& rToken );
- void StoreCellRange( sal_uInt16 nSBTab, const ScRange& rRange, const formula::FormulaToken& rToken );
+ void StoreCell( sal_uInt16 nSBTab, const ScAddress& rCell, const ::formula::FormulaToken& rToken );
+ void StoreCellRange( sal_uInt16 nSBTab, const ScRange& rRange, const ::formula::FormulaToken& rToken );
sal_uInt16 GetTabIndex( const String& rTabName ) const;
sal_uInt16 GetTabCount() const;
/** Inserts a new sheet name into the SUPBOOK and returns the SUPBOOK internal sheet index. */
- sal_uInt16 InsertTabName( const String& rTabName );
+ sal_uInt16 InsertTabName( const String& rTabName, ScExternalRefCache::TableTypeRef xCacheTable );
/** Finds or inserts an EXTERNNAME record for add-ins.
@return The 1-based EXTERNNAME record index; or 0, if the record list is full. */
sal_uInt16 InsertAddIn( const String& rName );
@@ -1006,6 +961,7 @@ void XclExpExtName::WriteAddData( XclExpStream& rStrm )
// range address. Excel just writes '02 00 1C 17' for all the other types
// of external names.
+ using namespace ::formula;
do
{
if (mpArray->GetLen() != 1)
@@ -1162,209 +1118,200 @@ sal_uInt16 XclExpExtNameBuffer::AppendNew( XclExpExtNameBase* pExtName )
// Cached external cells ======================================================
-XclExpCrn::XclExpCrn( SCCOL nScCol, SCROW nScRow, sal_uInt8 nId, sal_uInt32 nAddLen ) :
- XclExpRecord( EXC_ID_CRN, 5 + nAddLen ),
- mnXclCol( static_cast< sal_uInt16 >( nScCol ) ),
- mnXclRow( static_cast< sal_uInt16 >( nScRow ) ),
- mnId( nId )
+XclExpCrn::XclExpCrn( SCCOL nScCol, SCROW nScRow, const Any& rValue ) :
+ XclExpRecord( EXC_ID_CRN, 4 ),
+ mnScCol( nScCol ),
+ mnScRow( nScRow )
{
+ maValues.push_back( rValue );
}
-void XclExpCrn::WriteBody( XclExpStream& rStrm )
+bool XclExpCrn::InsertValue( SCCOL nScCol, SCROW nScRow, const Any& rValue )
{
- rStrm << static_cast< sal_uInt8 >( mnXclCol )
- << static_cast< sal_uInt8 >( mnXclCol )
- << mnXclRow
- << mnId;
- WriteAddData( rStrm );
+ if( (nScRow != mnScRow) || (nScCol != static_cast< SCCOL >( mnScCol + maValues.size() )) )
+ return false;
+ maValues.push_back( rValue );
+ return true;
}
-// ----------------------------------------------------------------------------
-
-XclExpCrnDouble::XclExpCrnDouble( SCCOL nScCol, SCROW nScRow, double fVal ) :
- XclExpCrn( nScCol, nScRow, EXC_CACHEDVAL_DOUBLE, 8 ),
- mfVal( fVal )
+void XclExpCrn::WriteBody( XclExpStream& rStrm )
{
+ rStrm << static_cast< sal_uInt8 >( mnScCol + maValues.size() - 1 )
+ << static_cast< sal_uInt8 >( mnScCol )
+ << static_cast< sal_uInt16 >( mnScRow );
+ for( CachedValues::iterator aIt = maValues.begin(), aEnd = maValues.end(); aIt != aEnd; ++aIt )
+ {
+ if( aIt->has< bool >() )
+ WriteBool( rStrm, aIt->get< bool >() );
+ else if( aIt->has< double >() )
+ WriteDouble( rStrm, aIt->get< double >() );
+ else if( aIt->has< OUString >() )
+ WriteString( rStrm, aIt->get< OUString >() );
+ else
+ WriteEmpty( rStrm );
+ }
}
-void XclExpCrnDouble::WriteAddData( XclExpStream& rStrm )
+void XclExpCrn::WriteBool( XclExpStream& rStrm, bool bValue )
{
- rStrm << mfVal;
+ rStrm << EXC_CACHEDVAL_BOOL << sal_uInt8( bValue ? 1 : 0);
+ rStrm.WriteZeroBytes( 7 );
}
-// ----------------------------------------------------------------------------
-
-XclExpCrnString::XclExpCrnString( SCCOL nScCol, SCROW nScRow, const String& rText ) :
- XclExpCrn( nScCol, nScRow, EXC_CACHEDVAL_STRING ),
- maText( rText )
+void XclExpCrn::WriteDouble( XclExpStream& rStrm, double fValue )
{
- // set correct size after maText is initialized
- AddRecSize( maText.GetSize() );
+ if( ::rtl::math::isNan( fValue ) )
+ {
+ USHORT nScError = static_cast< USHORT >( reinterpret_cast< const sal_math_Double* >( &fValue )->nan_parts.fraction_lo );
+ WriteError( rStrm, XclTools::GetXclErrorCode( nScError ) );
+ }
+ else
+ {
+ rStrm << EXC_CACHEDVAL_DOUBLE << fValue;
+ }
}
-void XclExpCrnString::WriteAddData( XclExpStream& rStrm )
+void XclExpCrn::WriteString( XclExpStream& rStrm, const OUString& rValue )
{
- rStrm << maText;
+ rStrm << EXC_CACHEDVAL_STRING << XclExpString( rValue );
}
-// ----------------------------------------------------------------------------
-
-XclExpCrnBool::XclExpCrnBool( SCCOL nScCol, SCROW nScRow, bool bBoolVal ) :
- XclExpCrn( nScCol, nScRow, EXC_CACHEDVAL_BOOL, 8 ),
- mnBool( bBoolVal ? 1 : 0 )
+void XclExpCrn::WriteError( XclExpStream& rStrm, sal_uInt8 nErrCode )
{
+ rStrm << EXC_CACHEDVAL_ERROR << nErrCode;
+ rStrm.WriteZeroBytes( 7 );
}
-void XclExpCrnBool::WriteAddData( XclExpStream& rStrm )
+void XclExpCrn::WriteEmpty( XclExpStream& rStrm )
{
- rStrm << mnBool;
- rStrm.WriteZeroBytes( 6 );
+ rStrm << EXC_CACHEDVAL_EMPTY;
+ rStrm.WriteZeroBytes( 8 );
}
// Cached cells of a sheet ====================================================
-XclExpXct::XclExpXct( const String& rTabName, sal_uInt16 nSBTab ) :
- XclExpRecord( EXC_ID_XCT, 4 ),
+XclExpXct::XclExpXct( const XclExpRoot& rRoot, const String& rTabName,
+ sal_uInt16 nSBTab, ScExternalRefCache::TableTypeRef xCacheTable ) :
+ XclExpRoot( rRoot ),
+ mxCacheTable( xCacheTable ),
+ maBoundRange( ScAddress::INITIALIZE_INVALID ),
maTabName( rTabName ),
mnSBTab( nSBTab )
{
}
-void XclExpXct::StoreCellRange( const XclExpRoot& rRoot, const ScRange& rRange )
+void XclExpXct::StoreCellRange( const ScRange& rRange )
{
// #i70418# restrict size of external range to prevent memory overflow
if( (rRange.aEnd.Col() - rRange.aStart.Col()) * (rRange.aEnd.Row() - rRange.aStart.Row()) > 1024 )
return;
- ScDocument& rDoc = rRoot.GetDoc();
- SvNumberFormatter& rFormatter = rRoot.GetFormatter();
- SCTAB nScTab = rRange.aStart.Tab();
- SCCOL nScLastCol = rRange.aEnd.Col();
- SCROW nScLastRow = rRange.aEnd.Row();
+ maUsedCells.SetMultiMarkArea( rRange );
+ maBoundRange.ExtendTo( rRange );
+}
- for( SCROW nScRow = rRange.aStart.Row(); nScRow <= nScLastRow; ++nScRow )
- {
- for( SCCOL nScCol = rRange.aStart.Col(); nScCol <= nScLastCol; ++nScCol )
- {
- if( !maUsedCells.IsCellMarked( nScCol, nScRow, TRUE ) )
- {
- XclExpCrnRef xCrn;
- if( rDoc.HasValueData( nScCol, nScRow, nScTab ) )
- {
- ScAddress aAddr( nScCol, nScRow, nScTab );
- double fVal = rDoc.GetValue( aAddr );
- ULONG nFormat = rDoc.GetNumberFormat( aAddr );
- short nType = rFormatter.GetType( nFormat );
- bool bIsBool = (nType == NUMBERFORMAT_LOGICAL);
-
- if( !bIsBool && ((nFormat % SV_COUNTRY_LANGUAGE_OFFSET) == 0) &&
- (rDoc.GetCellType( aAddr ) == CELLTYPE_FORMULA) )
- if( ScFormulaCell* pCell = static_cast< ScFormulaCell* >( rDoc.GetCell( aAddr ) ) )
- bIsBool = (pCell->GetFormatType() == NUMBERFORMAT_LOGICAL);
-
- if( bIsBool && ((fVal == 0.0) || (fVal == 1.0)) )
- xCrn.reset( new XclExpCrnBool( nScCol, nScRow, (fVal == 1.0) ) );
- else
- xCrn.reset( new XclExpCrnDouble( nScCol, nScRow, fVal ) );
- }
- else
- {
- String aText;
- rDoc.GetString( nScCol, nScRow, nScTab, aText );
- xCrn.reset( new XclExpCrnString( nScCol, nScRow, aText ) );
- }
- maCrnList.AppendRecord( xCrn );
- }
- }
- }
+void XclExpXct::StoreCell( const ScAddress& rCell, const ::formula::FormulaToken& rToken )
+{
+ maUsedCells.SetMultiMarkArea( ScRange( rCell ) );
+ maBoundRange.ExtendTo( ScRange( rCell ) );
+ (void)rToken;
+}
+void XclExpXct::StoreCellRange( const ScRange& rRange, const ::formula::FormulaToken& rToken )
+{
maUsedCells.SetMultiMarkArea( rRange );
+ maBoundRange.ExtendTo( rRange );
+ (void)rToken;
}
-void XclExpXct::StoreCell( const XclExpRoot& /*rRoot*/, const ScAddress& rCell, const formula::FormulaToken& rToken )
+namespace {
+
+class XclExpCrnList : public XclExpRecordList< XclExpCrn >
{
- switch (rToken.GetType())
- {
- case svString:
- {
- XclExpCrnRef xCrn(
- new XclExpCrnString(rCell.Col(), rCell.Row(), rToken.GetString()));
- maCrnList.AppendRecord(xCrn);
- }
- break;
- case svDouble:
- {
- XclExpCrnRef xCrn(
- new XclExpCrnDouble(rCell.Col(), rCell.Row(), rToken.GetDouble()));
- maCrnList.AppendRecord(xCrn);
- }
- break;
- case svEmptyCell:
- {
- XclExpCrnRef xCrn(
- new XclExpCrnDouble(rCell.Col(), rCell.Row(), 0.0));
- maCrnList.AppendRecord(xCrn);
- }
- break;
- default:
- ; // nothing
- }
+public:
+ /** Inserts the passed value into an existing or new CRN record.
+ @return True = value inserted successfully, false = CRN list is full. */
+ bool InsertValue( SCCOL nScCol, SCROW nScRow, const Any& rValue );
+};
+
+bool XclExpCrnList::InsertValue( SCCOL nScCol, SCROW nScRow, const Any& rValue )
+{
+ RecordRefType xLastRec = GetLastRecord();
+ if( xLastRec.is() && xLastRec->InsertValue( nScCol, nScRow, rValue ) )
+ return true;
+ if( GetSize() == SAL_MAX_UINT16 )
+ return false;
+ AppendNewRecord( new XclExpCrn( nScCol, nScRow, rValue ) );
+ return true;
}
-void XclExpXct::StoreCellRange( const XclExpRoot& /*rRoot*/, const ScRange& rRange, const formula::FormulaToken& rToken )
+} // namespace
+
+void XclExpXct::Save( XclExpStream& rStrm )
{
- if (rToken.GetType() != svMatrix)
+ if( !mxCacheTable )
return;
- if (rRange.aStart.Tab() != rRange.aEnd.Tab())
- // multi-table range is not supported here.
+ /* Get the range of used rows in the cache table. This may help to
+ optimize building the CRN record list if the cache table does not
+ contain all referred cells, e.g. if big empty ranges are used in the
+ formulas. */
+ ::std::pair< SCROW, SCROW > aRowRange = mxCacheTable->getRowRange();
+ if( aRowRange.first >= aRowRange.second )
return;
- const ScMatrix* pMtx = static_cast<const ScToken*>(&rToken)->GetMatrix();
- if (!pMtx)
+ /* Crop the bounding range of used cells in this table to Excel limits.
+ Return if there is no external cell inside these limits. */
+ if( !GetAddressConverter().ValidateRange( maBoundRange, false ) )
return;
- SCSIZE nCols, nRows;
- pMtx->GetDimensions(nCols, nRows);
- const ScAddress& s = rRange.aStart;
- const ScAddress& e = rRange.aEnd;
- if (static_cast<SCCOL>(nCols) != e.Col() - s.Col() + 1 ||
- static_cast<SCROW>(nRows) != e.Row() - s.Row() + 1)
- {
- // size mis-match!
+ /* Find the resulting row range that needs to be processed. */
+ SCROW nScRow1 = ::std::max( aRowRange.first, maBoundRange.aStart.Row() );
+ SCROW nScRow2 = ::std::min( aRowRange.second - 1, maBoundRange.aEnd.Row() );
+ if( nScRow1 > nScRow2 )
return;
- }
- for (SCCOL nCol = 0; nCol < static_cast< SCCOL >( nCols ); ++nCol)
+ /* Build and collect all CRN records before writing the XCT record. This
+ is needed to determine the total number of CRN records which must be
+ known when writing the XCT record (possibly encrypted, so seeking the
+ output strem back after writing the CRN records is not an option). */
+ XclExpCrnList aCrnRecs;
+ SvNumberFormatter& rFormatter = GetFormatter();
+ bool bValid = true;
+ for( SCROW nScRow = nScRow1; bValid && (nScRow <= nScRow2); ++nScRow )
{
- for (SCROW nRow = 0; nRow < static_cast< SCROW >( nRows ); ++nRow)
+ ::std::pair< SCCOL, SCCOL > aColRange = mxCacheTable->getColRange( nScRow );
+ for( SCCOL nScCol = aColRange.first; bValid && (nScCol < aColRange.second); ++nScCol )
{
- if (pMtx->IsString(nCol, nRow))
+ if( maUsedCells.IsCellMarked( nScCol, nScRow, TRUE ) )
{
- XclExpCrnRef xCrn(new XclExpCrnString(
- s.Col() + nCol, s.Row() + nRow, pMtx->GetString(nCol, nRow)));
- maCrnList.AppendRecord(xCrn);
- }
- else if (pMtx->IsValueOrEmpty(nCol, nRow))
- {
- XclExpCrnRef xCrn(new XclExpCrnDouble(
- s.Col() + nCol, s.Row() + nRow, pMtx->GetDouble(nCol, nRow)));
- maCrnList.AppendRecord(xCrn);
+ sal_uInt32 nScNumFmt = 0;
+ ScExternalRefCache::TokenRef xToken = mxCacheTable->getCell( nScCol, nScRow, &nScNumFmt );
+ using namespace ::formula;
+ if( xToken.get() ) switch( xToken->GetType() )
+ {
+ case svDouble:
+ bValid = (rFormatter.GetType( nScNumFmt ) == NUMBERFORMAT_LOGICAL) ?
+ aCrnRecs.InsertValue( nScCol, nScRow, Any( xToken->GetDouble() != 0 ) ) :
+ aCrnRecs.InsertValue( nScCol, nScRow, Any( xToken->GetDouble() ) );
+ break;
+ case svString:
+ // do not save empty strings (empty cells) to cache
+ if( xToken->GetString().Len() > 0 )
+ bValid = aCrnRecs.InsertValue( nScCol, nScRow, Any( OUString( xToken->GetString() ) ) );
+ break;
+ default:
+ break;
+ }
}
}
}
-}
-void XclExpXct::Save( XclExpStream& rStrm )
-{
- XclExpRecord::Save( rStrm );
- maCrnList.Save( rStrm );
-}
-
-void XclExpXct::WriteBody( XclExpStream& rStrm )
-{
- sal_uInt16 nCount = ulimit_cast< sal_uInt16 >( maCrnList.GetSize() );
- rStrm << nCount << mnSBTab;
+ // write the XCT record and the list of CRN records
+ rStrm.StartRecord( EXC_ID_XCT, 4 );
+ rStrm << static_cast< sal_uInt16 >( aCrnRecs.GetSize() ) << mnSBTab;
+ rStrm.EndRecord();
+ aCrnRecs.Save( rStrm );
}
// External documents (EXTERNSHEET/SUPBOOK), base class =======================
@@ -1471,15 +1418,11 @@ XclExpSupbook::XclExpSupbook( const XclExpRoot& rRoot, const String& rUrl ) :
// We need to create all tables up front to ensure the correct table order.
ScExternalRefManager* pRefMgr = rRoot.GetDoc().GetExternalRefManager();
- sal_uInt16 nFileId = pRefMgr->getExternalFileId(rUrl);
- vector<String> aTabNames;
- pRefMgr->getAllCachedTableNames(nFileId, aTabNames);
- if (aTabNames.empty())
- return;
-
- vector<String>::const_iterator itr = aTabNames.begin(), itrEnd = aTabNames.end();
- for (; itr != itrEnd; ++itr)
- InsertTabName(*itr);
+ sal_uInt16 nFileId = pRefMgr->getExternalFileId( rUrl );
+ ScfStringVec aTabNames;
+ pRefMgr->getAllCachedTableNames( nFileId, aTabNames );
+ for( ScfStringVec::const_iterator aBeg = aTabNames.begin(), aIt = aBeg, aEnd = aTabNames.end(); aIt != aEnd; ++aIt )
+ InsertTabName( *aIt, pRefMgr->getCacheTable( nFileId, aIt - aBeg ) );
}
XclExpSupbook::XclExpSupbook( const XclExpRoot& rRoot, const String& rApplic, const String& rTopic ) :
@@ -1513,31 +1456,22 @@ void XclExpSupbook::FillRefLogEntry( XclExpRefLogEntry& rRefLogEntry,
void XclExpSupbook::StoreCellRange( const ScRange& rRange, sal_uInt16 nSBTab )
{
- XclExpXctRef xXct = maXctList.GetRecord( nSBTab );
- if( xXct.is() )
- xXct->StoreCellRange( GetRoot(), rRange );
+ if( XclExpXct* pXct = maXctList.GetRecord( nSBTab ).get() )
+ pXct->StoreCellRange( rRange );
}
void XclExpSupbook::StoreCell( sal_uInt16 nSBTab, const ScAddress& rCell, const formula::FormulaToken& rToken )
{
- XclExpXctRef xXct = maXctList.GetRecord(nSBTab);
- if (!xXct.is())
- return;
-
- xXct->StoreCell(GetRoot(), rCell, rToken);
+ if( XclExpXct* pXct = maXctList.GetRecord( nSBTab ).get() )
+ pXct->StoreCell( rCell, rToken );
}
void XclExpSupbook::StoreCellRange( sal_uInt16 nSBTab, const ScRange& rRange, const formula::FormulaToken& rToken )
{
- if (rRange.aStart.Tab() != rRange.aEnd.Tab())
- // multi-table range is not allowed!
- return;
-
- XclExpXctRef xXct = maXctList.GetRecord(nSBTab);
- if (!xXct.is())
- return;
-
- xXct->StoreCellRange(GetRoot(), rRange, rToken);
+ // multi-table range is not allowed!
+ if( rRange.aStart.Tab() == rRange.aEnd.Tab() )
+ if( XclExpXct* pXct = maXctList.GetRecord( nSBTab ).get() )
+ pXct->StoreCellRange( rRange, rToken );
}
sal_uInt16 XclExpSupbook::GetTabIndex( const String& rTabName ) const
@@ -1558,11 +1492,11 @@ sal_uInt16 XclExpSupbook::GetTabCount() const
return ulimit_cast<sal_uInt16>(maXctList.GetSize());
}
-sal_uInt16 XclExpSupbook::InsertTabName( const String& rTabName )
+sal_uInt16 XclExpSupbook::InsertTabName( const String& rTabName, ScExternalRefCache::TableTypeRef xCacheTable )
{
DBG_ASSERT( meType == EXC_SBTYPE_EXTERN, "XclExpSupbook::InsertTabName - don't insert sheet names here" );
sal_uInt16 nSBTab = ulimit_cast< sal_uInt16 >( maXctList.GetSize() );
- XclExpXctRef xXct( new XclExpXct( rTabName, nSBTab ) );
+ XclExpXctRef xXct( new XclExpXct( GetRoot(), rTabName, nSBTab, xCacheTable ) );
AddRecSize( xXct->GetTabName().GetSize() );
maXctList.AppendRecord( xXct );
return nSBTab;
@@ -1786,6 +1720,7 @@ void XclExpSupbookBuffer::StoreCellRange( sal_uInt16 nFileId, const String& rTab
SCTAB nTabCount = rRange.aEnd.Tab() - rRange.aStart.Tab() + 1;
// If this is a multi-table range, get token for each table.
+ using namespace ::formula;
vector<FormulaToken*> aMatrixList;
aMatrixList.reserve(nTabCount);
diff --git a/sc/source/filter/excel/xihelper.cxx b/sc/source/filter/excel/xihelper.cxx
index 1afcba154c4a..ad04a1f3930c 100644
--- a/sc/source/filter/excel/xihelper.cxx
+++ b/sc/source/filter/excel/xihelper.cxx
@@ -837,7 +837,7 @@ XclImpCachedValue::~XclImpCachedValue()
{
}
-USHORT XclImpCachedValue::GetError() const
+USHORT XclImpCachedValue::GetScError() const
{
return (mnType == EXC_CACHEDVAL_ERROR) ? XclTools::GetScErrorCode( mnBoolErr ) : 0;
}
@@ -901,7 +901,7 @@ ScMatrixRef XclImpCachedMatrix::CreateScMatrix() const
xScMatrix->PutBoolean( pValue->GetBool(), nScCol, nScRow );
break;
case EXC_CACHEDVAL_ERROR:
- xScMatrix->PutError( pValue->GetError(), nScCol, nScRow );
+ xScMatrix->PutError( pValue->GetScError(), nScCol, nScRow );
break;
default:
DBG_ERRORFILE( "XclImpCachedMatrix::CreateScMatrix - unknown value type" );
diff --git a/sc/source/filter/excel/xilink.cxx b/sc/source/filter/excel/xilink.cxx
index 1183b077b626..45eed0fd98a9 100644
--- a/sc/source/filter/excel/xilink.cxx
+++ b/sc/source/filter/excel/xilink.cxx
@@ -413,6 +413,11 @@ void XclImpSupbookTab::LoadCachedValues(ScExternalRefCache::TableTypeRef pCacheT
switch (p->GetType())
{
case EXC_CACHEDVAL_BOOL:
+ {
+ bool b = p->GetBool();
+ ScExternalRefCache::TokenRef pToken(new formula::FormulaDoubleToken(b ? 1.0 : 0.0));
+ pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken);
+ }
break;
case EXC_CACHEDVAL_DOUBLE:
{
@@ -421,9 +426,12 @@ void XclImpSupbookTab::LoadCachedValues(ScExternalRefCache::TableTypeRef pCacheT
pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken);
}
break;
- case EXC_CACHEDVAL_EMPTY:
- break;
case EXC_CACHEDVAL_ERROR:
+ {
+ double fError = XclTools::ErrorToDouble( p->GetXclError() );
+ ScExternalRefCache::TokenRef pToken(new formula::FormulaDoubleToken(fError));
+ pCacheTable->setCell(rAddr.mnCol, rAddr.mnRow, pToken);
+ }
break;
case EXC_CACHEDVAL_STRING:
{
diff --git a/sc/source/filter/excel/xistyle.cxx b/sc/source/filter/excel/xistyle.cxx
index 4e0ff5079471..1559ef5530f5 100644
--- a/sc/source/filter/excel/xistyle.cxx
+++ b/sc/source/filter/excel/xistyle.cxx
@@ -701,7 +701,6 @@ void XclImpCellAlign::FillToItemSet( SfxItemSet& rItemSet, const XclImpFont* pFo
sal_uInt8 nXclRot = (mnOrient == EXC_ORIENT_NONE) ? mnRotation : XclTools::GetXclRotFromOrient( mnOrient );
bool bStacked = (nXclRot == EXC_ROT_STACKED);
ScfTools::PutItem( rItemSet, SfxBoolItem( ATTR_STACKED, bStacked ), bSkipPoolDefs );
- ScfTools::PutItem( rItemSet, SvxRotateModeItem( SVX_ROTATE_MODE_STANDARD, ATTR_ROTATE_MODE ), bSkipPoolDefs );
// set an angle in the range from -90 to 90 degrees
sal_Int32 nAngle = XclTools::GetScRotation( nXclRot, 0 );
ScfTools::PutItem( rItemSet, SfxInt32Item( ATTR_ROTATE_VALUE, nAngle ), bSkipPoolDefs );
@@ -799,6 +798,15 @@ void XclImpCellBorder::FillFromCF8( sal_uInt16 nLineStyle, sal_uInt32 nLineColor
mbDiagUsed = false;
}
+bool XclImpCellBorder::HasAnyOuterBorder() const
+{
+ return
+ (mbLeftUsed && (mnLeftLine != EXC_LINE_NONE)) ||
+ (mbRightUsed && (mnRightLine != EXC_LINE_NONE)) ||
+ (mbTopUsed && (mnTopLine != EXC_LINE_NONE)) ||
+ (mbBottomUsed && (mnBottomLine != EXC_LINE_NONE));
+}
+
namespace {
/** Converts the passed line style to a SvxBorderLine, or returns false, if style is "no line". */
@@ -1091,13 +1099,32 @@ const ScPatternAttr& XclImpXF::CreatePattern( bool bSkipPoolDefs )
// create new pattern attribute set
mpPattern.reset( new ScPatternAttr( GetDoc().GetPool() ) );
SfxItemSet& rItemSet = mpPattern->GetItemSet();
+ XclImpXF* pParentXF = IsCellXF() ? GetXFBuffer().GetXF( mnParent ) : 0;
// parent cell style
if( IsCellXF() && !mpStyleSheet )
{
mpStyleSheet = GetXFBuffer().CreateStyleSheet( mnParent );
- if( XclImpXF* pParentXF = GetXFBuffer().GetXF( mnParent ) )
- UpdateUsedFlags( *pParentXF );
+
+ /* Enables mb***Used flags, if the formatting attributes differ from
+ the passed XF record. In cell XFs Excel uses the cell attributes,
+ if they differ from the parent style XF.
+ #109899# ...or if the respective flag is not set in parent style XF. */
+ if( pParentXF )
+ {
+ if( !mbProtUsed )
+ mbProtUsed = !pParentXF->mbProtUsed || !(maProtection == pParentXF->maProtection);
+ if( !mbFontUsed )
+ mbFontUsed = !pParentXF->mbFontUsed || (mnXclFont != pParentXF->mnXclFont);
+ if( !mbFmtUsed )
+ mbFmtUsed = !pParentXF->mbFmtUsed || (mnXclNumFmt != pParentXF->mnXclNumFmt);
+ if( !mbAlignUsed )
+ mbAlignUsed = !pParentXF->mbAlignUsed || !(maAlignment == pParentXF->maAlignment);
+ if( !mbBorderUsed )
+ mbBorderUsed = !pParentXF->mbBorderUsed || !(maBorder == pParentXF->maBorder);
+ if( !mbAreaUsed )
+ mbAreaUsed = !pParentXF->mbAreaUsed || !(maArea == pParentXF->maArea);
+ }
}
// cell protection
@@ -1137,6 +1164,20 @@ const ScPatternAttr& XclImpXF::CreatePattern( bool bSkipPoolDefs )
maArea.mnPattern != EXC_PATT_SOLID);
}
+ /* #i38709# Decide which rotation reference mode to use. If any outer
+ border line of the cell is set (either explicitly or via cell style),
+ and the cell contents are rotated, set rotation reference to bottom of
+ cell. This causes the borders to be painted rotated with the text. */
+ if( mbAlignUsed || mbBorderUsed )
+ {
+ SvxRotateMode eRotateMode = SVX_ROTATE_MODE_STANDARD;
+ const XclImpCellAlign* pAlign = mbAlignUsed ? &maAlignment : (pParentXF ? &pParentXF->maAlignment : 0);
+ const XclImpCellBorder* pBorder = mbBorderUsed ? &maBorder : (pParentXF ? &pParentXF->maBorder : 0);
+ if( pAlign && pBorder && (0 < pAlign->mnRotation) && (pAlign->mnRotation <= 180) && pBorder->HasAnyOuterBorder() )
+ eRotateMode = SVX_ROTATE_MODE_BOTTOM;
+ ScfTools::PutItem( rItemSet, SvxRotateModeItem( eRotateMode, ATTR_ROTATE_MODE ), bSkipPoolDefs );
+ }
+
return *mpPattern;
}
@@ -1180,26 +1221,6 @@ void XclImpXF::SetUsedFlags( sal_uInt8 nUsedFlags )
mbAreaUsed = (mbCellXF == ::get_flag( nUsedFlags, EXC_XF_DIFF_AREA ));
}
-void XclImpXF::UpdateUsedFlags( const XclImpXF& rParentXF )
-{
- /* Enables mb***Used flags, if the formatting attributes differ from
- the passed XF record. In cell XFs Excel uses the cell attributes,
- if they differ from the parent style XF.
- #109899# ...or if the respective flag is not set in parent style XF. */
- if( !mbProtUsed )
- mbProtUsed = !rParentXF.mbProtUsed || !(maProtection == rParentXF.maProtection);
- if( !mbFontUsed )
- mbFontUsed = !rParentXF.mbFontUsed || (mnXclFont != rParentXF.mnXclFont);
- if( !mbFmtUsed )
- mbFmtUsed = !rParentXF.mbFmtUsed || (mnXclNumFmt != rParentXF.mnXclNumFmt);
- if( !mbAlignUsed )
- mbAlignUsed = !rParentXF.mbAlignUsed || !(maAlignment == rParentXF.maAlignment);
- if( !mbBorderUsed )
- mbBorderUsed = !rParentXF.mbBorderUsed || !(maBorder == rParentXF.maBorder);
- if( !mbAreaUsed )
- mbAreaUsed = !rParentXF.mbAreaUsed || !(maArea == rParentXF.maArea);
-}
-
// ----------------------------------------------------------------------------
XclImpStyle::XclImpStyle( const XclImpRoot& rRoot ) :
diff --git a/sc/source/filter/excel/xlformula.cxx b/sc/source/filter/excel/xlformula.cxx
index c46df189ab74..d613f1279242 100644
--- a/sc/source/filter/excel/xlformula.cxx
+++ b/sc/source/filter/excel/xlformula.cxx
@@ -68,22 +68,28 @@ const sal_uInt8 A = EXC_TOKCLASS_ARR;
#define VR_E { EXC_PARAM_EXCELONLY, EXC_PARAMCONV_RPT, true }
#define C { EXC_PARAM_CALCONLY, EXC_PARAMCONV_ORG, false }
+const sal_uInt16 NOID = SAL_MAX_UINT16; /// No BIFF/OOBIN function identifier available.
+const sal_uInt8 MX = 30; /// Maximum parameter count.
+
+#define EXC_FUNCNAME( ascii ) "_xlfn." ascii
+#define EXC_FUNCNAME_ODF( ascii ) "_xlfnodf." ascii
+
/** Functions new in BIFF2. */
static const XclFunctionInfo saFuncTable_2[] =
{
- { ocCount, 0, 0, 30, V, { RX }, 0, 0 },
+ { ocCount, 0, 0, MX, V, { RX }, 0, 0 },
{ ocIf, 1, 2, 3, R, { VO, RO }, 0, 0 },
{ ocIsNA, 2, 1, 1, V, { VR }, 0, 0 },
{ ocIsError, 3, 1, 1, V, { VR }, 0, 0 },
- { ocSum, 4, 0, 30, V, { RX }, 0, 0 },
- { ocAverage, 5, 1, 30, V, { RX }, 0, 0 },
- { ocMin, 6, 1, 30, V, { RX }, 0, 0 },
- { ocMax, 7, 1, 30, V, { RX }, 0, 0 },
+ { ocSum, 4, 0, MX, V, { RX }, 0, 0 },
+ { ocAverage, 5, 1, MX, V, { RX }, 0, 0 },
+ { ocMin, 6, 1, MX, V, { RX }, 0, 0 },
+ { ocMax, 7, 1, MX, V, { RX }, 0, 0 },
{ ocRow, 8, 0, 1, V, { RO }, 0, 0 },
{ ocColumn, 9, 0, 1, V, { RO }, 0, 0 },
{ ocNotAvail, 10, 0, 0, V, {}, 0, 0 },
- { ocNPV, 11, 2, 30, V, { VR, RX }, 0, 0 },
- { ocStDev, 12, 1, 30, V, { RX }, 0, 0 },
+ { ocNPV, 11, 2, MX, V, { VR, RX }, 0, 0 },
+ { ocStDev, 12, 1, MX, V, { RX }, 0, 0 },
{ ocCurrency, 13, 1, 2, V, { VR }, 0, 0 },
{ ocFixed, 14, 1, 2, V, { VR, VR, C }, 0, 0 },
{ ocSin, 15, 1, 1, V, { VR }, 0, 0 },
@@ -109,8 +115,8 @@ static const XclFunctionInfo saFuncTable_2[] =
{ ocValue, 33, 1, 1, V, { VR }, 0, 0 },
{ ocTrue, 34, 0, 0, V, {}, 0, 0 },
{ ocFalse, 35, 0, 0, V, {}, 0, 0 },
- { ocAnd, 36, 1, 30, V, { RX }, 0, 0 },
- { ocOr, 37, 1, 30, V, { RX }, 0, 0 },
+ { ocAnd, 36, 1, MX, V, { RX }, 0, 0 },
+ { ocOr, 37, 1, MX, V, { RX }, 0, 0 },
{ ocNot, 38, 1, 1, V, { VR }, 0, 0 },
{ ocMod, 39, 2, 2, V, { VR }, 0, 0 },
{ ocDBCount, 40, 3, 3, V, { RO, RR }, 0, 0 },
@@ -119,7 +125,7 @@ static const XclFunctionInfo saFuncTable_2[] =
{ ocDBMin, 43, 3, 3, V, { RO, RR }, 0, 0 },
{ ocDBMax, 44, 3, 3, V, { RO, RR }, 0, 0 },
{ ocDBStdDev, 45, 3, 3, V, { RO, RR }, 0, 0 },
- { ocVar, 46, 1, 30, V, { RX }, 0, 0 },
+ { ocVar, 46, 1, MX, V, { RX }, 0, 0 },
{ ocDBVar, 47, 3, 3, V, { RO, RR }, 0, 0 },
{ ocText, 48, 2, 2, V, { VR }, 0, 0 },
{ ocRGP, 49, 1, 2, A, { RA, RA, C, C }, 0, 0 },
@@ -155,7 +161,7 @@ static const XclFunctionInfo saFuncTable_2[] =
{ ocArcTan2, 97, 2, 2, V, { VR }, 0, 0 },
{ ocArcSin, 98, 1, 1, V, { VR }, 0, 0 },
{ ocArcCos, 99, 1, 1, V, { VR }, 0, 0 },
- { ocChose, 100, 2, 30, R, { VO, RO }, 0, 0 },
+ { ocChose, 100, 2, MX, R, { VO, RO }, 0, 0 },
{ ocHLookup, 101, 3, 3, V, { VV, RO, RO, C }, 0, 0 },
{ ocVLookup, 102, 3, 3, V, { VV, RO, RO, C }, 0, 0 },
{ ocIsRef, 105, 1, 1, V, { RX }, 0, 0 },
@@ -191,13 +197,13 @@ static const XclFunctionInfo saFuncTable_2[] =
{ ocMatMult, 165, 2, 2, A, { VA }, 0, 0 },
{ ocZinsZ, 167, 4, 6, V, { VR }, 0, 0 },
{ ocKapz, 168, 4, 6, V, { VR }, 0, 0 },
- { ocCount2, 169, 0, 30, V, { RX }, 0, 0 },
- { ocProduct, 183, 0, 30, V, { RX }, 0, 0 },
+ { ocCount2, 169, 0, MX, V, { RX }, 0, 0 },
+ { ocProduct, 183, 0, MX, V, { RX }, 0, 0 },
{ ocFact, 184, 1, 1, V, { VR }, 0, 0 },
{ ocDBProduct, 189, 3, 3, V, { RO, RR }, 0, 0 },
{ ocIsNonString, 190, 1, 1, V, { VR }, 0, 0 },
- { ocStDevP, 193, 1, 30, V, { RX }, 0, 0 },
- { ocVarP, 194, 1, 30, V, { RX }, 0, 0 },
+ { ocStDevP, 193, 1, MX, V, { RX }, 0, 0 },
+ { ocVarP, 194, 1, MX, V, { RX }, 0, 0 },
{ ocDBStdDevP, 195, 3, 3, V, { RO, RR }, 0, 0 },
{ ocDBVarP, 196, 3, 3, V, { RO, RR }, 0, 0 },
{ ocTrunc, 197, 1, 1, V, { VR, C }, 0, 0 },
@@ -206,7 +212,7 @@ static const XclFunctionInfo saFuncTable_2[] =
{ ocCurrency, 204, 1, 2, V, { VR }, EXC_FUNCFLAG_IMPORTONLY, 0 },
{ ocRoundUp, 212, 2, 2, V, { VR }, 0, 0 },
{ ocRoundDown, 213, 2, 2, V, { VR }, 0, 0 },
- { ocExternal, 255, 1, 30, R, { RO_E, RO }, EXC_FUNCFLAG_IMPORTONLY, 0 }
+ { ocExternal, 255, 1, MX, R, { RO_E, RO }, EXC_FUNCFLAG_IMPORTONLY, 0 }
};
/** Functions new in BIFF3. */
@@ -221,8 +227,8 @@ static const XclFunctionInfo saFuncTable_3[] =
{ ocGetDiffDate360, 220, 2, 2, V, { VR, VR, C }, 0, 0 },
{ ocGetActDate, 221, 0, 0, V, {}, EXC_FUNCFLAG_VOLATILE, 0 },
{ ocVBD, 222, 5, 7, V, { VR }, 0, 0 },
- { ocMedian, 227, 1, 30, V, { RX }, 0, 0 },
- { ocSumProduct, 228, 1, 30, V, { VA }, 0, 0 },
+ { ocMedian, 227, 1, MX, V, { RX }, 0, 0 },
+ { ocSumProduct, 228, 1, MX, V, { VA }, 0, 0 },
{ ocSinHyp, 229, 1, 1, V, { VR }, 0, 0 },
{ ocCosHyp, 230, 1, 1, V, { VR }, 0, 0 },
{ ocTanHyp, 231, 1, 1, V, { VR }, 0, 0 },
@@ -245,7 +251,7 @@ static const XclFunctionInfo saFuncTable_4[] =
{ ocGDA2, 247, 4, 5, V, { VR }, 0, 0 },
{ ocFrequency, 252, 2, 2, A, { RA }, 0, 0 },
{ ocErrorType, 261, 1, 1, V, { VR }, 0, 0 },
- { ocAveDev, 269, 1, 30, V, { RX }, 0, 0 },
+ { ocAveDev, 269, 1, MX, V, { RX }, 0, 0 },
{ ocBetaDist, 270, 3, 5, V, { VR }, 0, 0 },
{ ocGammaLn, 271, 1, 1, V, { VR }, 0, 0 },
{ ocBetaInv, 272, 3, 5, V, { VR }, 0, 0 },
@@ -294,19 +300,19 @@ static const XclFunctionInfo saFuncTable_4[] =
{ ocSlope, 315, 2, 2, V, { VA }, 0, 0 },
{ ocTTest, 316, 4, 4, V, { VA, VA, VR }, 0, 0 },
{ ocProb, 317, 3, 4, V, { VA, VA, VR }, 0, 0 },
- { ocDevSq, 318, 1, 30, V, { RX }, 0, 0 },
- { ocGeoMean, 319, 1, 30, V, { RX }, 0, 0 },
- { ocHarMean, 320, 1, 30, V, { RX }, 0, 0 },
- { ocSumSQ, 321, 0, 30, V, { RX }, 0, 0 },
- { ocKurt, 322, 1, 30, V, { RX }, 0, 0 },
- { ocSchiefe, 323, 1, 30, V, { RX }, 0, 0 },
+ { ocDevSq, 318, 1, MX, V, { RX }, 0, 0 },
+ { ocGeoMean, 319, 1, MX, V, { RX }, 0, 0 },
+ { ocHarMean, 320, 1, MX, V, { RX }, 0, 0 },
+ { ocSumSQ, 321, 0, MX, V, { RX }, 0, 0 },
+ { ocKurt, 322, 1, MX, V, { RX }, 0, 0 },
+ { ocSchiefe, 323, 1, MX, V, { RX }, 0, 0 },
{ ocZTest, 324, 2, 3, V, { RX, VR }, 0, 0 },
{ ocLarge, 325, 2, 2, V, { RX, VR }, 0, 0 },
{ ocSmall, 326, 2, 2, V, { RX, VR }, 0, 0 },
{ ocQuartile, 327, 2, 2, V, { RX, VR }, 0, 0 },
{ ocPercentile, 328, 2, 2, V, { RX, VR }, 0, 0 },
{ ocPercentrank, 329, 2, 3, V, { RX, VR, VR_E }, 0, 0 },
- { ocModalValue, 330, 1, 30, V, { VA }, 0, 0 },
+ { ocModalValue, 330, 1, MX, V, { VA }, 0, 0 },
{ ocTrimMean, 331, 2, 2, V, { RX, VR }, 0, 0 },
{ ocTInv, 332, 2, 2, V, { VR }, 0, 0 }
};
@@ -318,13 +324,13 @@ static const XclFunctionInfo saFuncTable_5[] =
{ ocHLookup, 101, 3, 4, V, { VV, RO, RO, VV }, 0, 0 }, // BIFF2-4: 3, BIFF5: 3-4
{ ocVLookup, 102, 3, 4, V, { VV, RO, RO, VV }, 0, 0 }, // BIFF2-4: 3, BIFF5: 3-4
{ ocGetDiffDate360, 220, 2, 3, V, { VR }, 0, 0 }, // BIFF3-4: 2, BIFF5: 2-3
- { ocMacro, 255, 1, 30, R, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, 0 },
- { ocExternal, 255, 1, 30, R, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, 0 },
- { ocConcat, 336, 0, 30, V, { VR }, 0, 0 },
+ { ocMacro, 255, 1, MX, R, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, 0 },
+ { ocExternal, 255, 1, MX, R, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, 0 },
+ { ocConcat, 336, 0, MX, V, { VR }, 0, 0 },
{ ocPower, 337, 2, 2, V, { VR }, 0, 0 },
{ ocRad, 342, 1, 1, V, { VR }, 0, 0 },
{ ocDeg, 343, 1, 1, V, { VR }, 0, 0 },
- { ocSubTotal, 344, 2, 30, V, { VR, RO }, 0, 0 },
+ { ocSubTotal, 344, 2, MX, V, { VR, RO }, 0, 0 },
{ ocSumIf, 345, 2, 3, V, { RO, VR, RO }, 0, 0 },
{ ocCountIf, 346, 2, 2, V, { RO, VR }, 0, 0 },
{ ocCountEmptyCells, 347, 1, 1, V, { RO }, 0, 0 },
@@ -335,66 +341,90 @@ static const XclFunctionInfo saFuncTable_5[] =
{ ocRoman, 354, 1, 2, V, { VR }, 0, 0 }
};
-#define EXC_FUNCNAME_PREFIX "_xlfn."
-
-const sal_Char* const EXC_FUNCNAME_BAHTTEXT = EXC_FUNCNAME_PREFIX "BAHTTEXT";
-
/** Functions new in BIFF8. Unsupported functions: PHONETIC. */
static const XclFunctionInfo saFuncTable_8[] =
{
- { ocGetPivotData, 358, 2, 30, V, { RR, RR, VR }, 0, 0 },
+ { ocGetPivotData, 358, 2, MX, V, { RR, RR, VR }, 0, 0 },
{ ocHyperLink, 359, 1, 2, V, { VV, VO }, 0, 0 },
{ ocNoName, 360, 1, 1, V, { RO }, EXC_FUNCFLAG_IMPORTONLY, 0 }, // PHONETIC
- { ocAverageA, 361, 1, 30, V, { RX }, 0, 0 },
- { ocMaxA, 362, 1, 30, V, { RX }, 0, 0 },
- { ocMinA, 363, 1, 30, V, { RX }, 0, 0 },
- { ocStDevPA, 364, 1, 30, V, { RX }, 0, 0 },
- { ocVarPA, 365, 1, 30, V, { RX }, 0, 0 },
- { ocStDevA, 366, 1, 30, V, { RX }, 0, 0 },
- { ocVarA, 367, 1, 30, V, { RX }, 0, 0 },
- { ocBahtText, 368, 1, 1, V, { VR }, EXC_FUNCFLAG_IMPORTONLY, EXC_FUNCNAME_BAHTTEXT },
- { ocBahtText, 255, 2, 2, V, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, EXC_FUNCNAME_BAHTTEXT },
+ { ocAverageA, 361, 1, MX, V, { RX }, 0, 0 },
+ { ocMaxA, 362, 1, MX, V, { RX }, 0, 0 },
+ { ocMinA, 363, 1, MX, V, { RX }, 0, 0 },
+ { ocStDevPA, 364, 1, MX, V, { RX }, 0, 0 },
+ { ocVarPA, 365, 1, MX, V, { RX }, 0, 0 },
+ { ocStDevA, 366, 1, MX, V, { RX }, 0, 0 },
+ { ocVarA, 367, 1, MX, V, { RX }, 0, 0 },
+ { ocBahtText, 368, 1, 1, V, { VR }, EXC_FUNCFLAG_IMPORTONLY, EXC_FUNCNAME( "BAHTTEXT" ) },
+ { ocBahtText, 255, 2, 2, V, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, EXC_FUNCNAME( "BAHTTEXT" ) },
{ ocEuroConvert, 255, 4, 6, V, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY, "EUROCONVERT" }
};
+#define EXC_FUNCENTRY_ODF( opcode, minparam, maxparam, flags, asciiname ) \
+ { opcode, NOID, minparam, maxparam, V, { VR }, EXC_FUNCFLAG_IMPORTONLY|(flags), EXC_FUNCNAME_ODF( asciiname ) }, \
+ { opcode, 255, (minparam)+1, (maxparam)+1, V, { RO_E, RO }, EXC_FUNCFLAG_EXPORTONLY|(flags), EXC_FUNCNAME_ODF( asciiname ) }
+
+/** Functions defined by OpenFormula, but not supported by Calc (ocNoName) or by Excel (defined op-code). */
+static const XclFunctionInfo saFuncTable_Odf[] =
+{
+ EXC_FUNCENTRY_ODF( ocArabic, 1, 1, 0, "ARABIC" ),
+ EXC_FUNCENTRY_ODF( ocB, 3, 4, 0, "B" ),
+ EXC_FUNCENTRY_ODF( ocBase, 2, 3, 0, "BASE" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 2, 2, 0, "BITAND" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 2, 2, 0, "BITLSHIFT" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 2, 2, 0, "BITOR" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 2, 2, 0, "BITRSHIFT" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 2, 2, 0, "BITXOR" ),
+ EXC_FUNCENTRY_ODF( ocChiSqDist, 2, 3, 0, "CHISQDIST" ),
+ EXC_FUNCENTRY_ODF( ocChiSqInv, 2, 2, 0, "CHISQINV" ),
+ EXC_FUNCENTRY_ODF( ocKombin2, 2, 2, 0, "COMBINA" ),
+ EXC_FUNCENTRY_ODF( ocGetDiffDate, 2, 2, 0, "DAYS" ),
+ EXC_FUNCENTRY_ODF( ocDecimal, 2, 2, 0, "DECIMAL" ),
+ EXC_FUNCENTRY_ODF( ocFDist, 3, 4, 0, "FDIST" ),
+ EXC_FUNCENTRY_ODF( ocFInv, 3, 3, 0, "FINV" ),
+ EXC_FUNCENTRY_ODF( ocFormula, 1, 1, 0, "FORMULA" ),
+ EXC_FUNCENTRY_ODF( ocGamma, 1, 1, 0, "GAMMA" ),
+ EXC_FUNCENTRY_ODF( ocGauss, 1, 1, 0, "GAUSS" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 2, 2, 0, "IFNA" ),
+ EXC_FUNCENTRY_ODF( ocIsFormula, 1, 1, 0, "ISFORMULA" ),
+ EXC_FUNCENTRY_ODF( ocWeek, 1, 2, 0, "ISOWEEKNUM" ),
+ EXC_FUNCENTRY_ODF( ocMatrixUnit, 1, 1, 0, "MUNIT" ),
+ EXC_FUNCENTRY_ODF( ocNumberValue, 2, 2, 0, "NUMBERVALUE" ),
+ EXC_FUNCENTRY_ODF( ocLaufz, 3, 3, 0, "PDURATION" ),
+ EXC_FUNCENTRY_ODF( ocVariationen2, 2, 2, 0, "PERMUTATIONA" ),
+ EXC_FUNCENTRY_ODF( ocPhi, 1, 1, 0, "PHI" ),
+ EXC_FUNCENTRY_ODF( ocZGZ, 3, 3, 0, "RRI" ),
+ EXC_FUNCENTRY_ODF( ocTable, 1, 1, 0, "SHEET" ),
+ EXC_FUNCENTRY_ODF( ocTables, 0, 1, 0, "SHEETS" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 1, MX, 0, "SKEWP" ),
+ EXC_FUNCENTRY_ODF( ocUnichar, 1, 1, 0, "UNICHAR" ),
+ EXC_FUNCENTRY_ODF( ocUnicode, 1, 1, 0, "UNICODE" ),
+ EXC_FUNCENTRY_ODF( ocNoName, 1, MX, 0, "XOR" )
+};
+
+#undef EXC_FUNCENTRY_ODF
+
// ----------------------------------------------------------------------------
XclFunctionProvider::XclFunctionProvider( const XclRoot& rRoot )
{
- XclBiff eBiff = rRoot.GetBiff();
+ void (XclFunctionProvider::*pFillFunc)( const XclFunctionInfo*, const XclFunctionInfo* ) =
+ rRoot.IsImport() ? &XclFunctionProvider::FillXclFuncMap : &XclFunctionProvider::FillScFuncMap;
- if( rRoot.IsImport() )
- {
- /* Import: only read functions supported in the current BIFF version.
- Function tables from later BIFF versions may overwrite single
- functions from earlier tables. */
- if( eBiff >= EXC_BIFF2 )
- FillXclFuncMap( saFuncTable_2, STATIC_TABLE_END( saFuncTable_2 ) );
- if( eBiff >= EXC_BIFF3 )
- FillXclFuncMap( saFuncTable_3, STATIC_TABLE_END( saFuncTable_3 ) );
- if( eBiff >= EXC_BIFF4 )
- FillXclFuncMap( saFuncTable_4, STATIC_TABLE_END( saFuncTable_4 ) );
- if( eBiff >= EXC_BIFF5 )
- FillXclFuncMap( saFuncTable_5, STATIC_TABLE_END( saFuncTable_5 ) );
- if( eBiff >= EXC_BIFF8 )
- FillXclFuncMap( saFuncTable_8, STATIC_TABLE_END( saFuncTable_8 ) );
- }
- else
- {
- /* Export: only write functions supported in the current BIFF version.
- Function tables from later BIFF versions may overwrite single
- functions from earlier tables. */
- if( eBiff >= EXC_BIFF2 )
- FillScFuncMap( saFuncTable_2, STATIC_TABLE_END( saFuncTable_2 ) );
- if( eBiff >= EXC_BIFF3 )
- FillScFuncMap( saFuncTable_3, STATIC_TABLE_END( saFuncTable_3 ) );
- if( eBiff >= EXC_BIFF4 )
- FillScFuncMap( saFuncTable_4, STATIC_TABLE_END( saFuncTable_4 ) );
- if( eBiff >= EXC_BIFF5 )
- FillScFuncMap( saFuncTable_5, STATIC_TABLE_END( saFuncTable_5 ) );
- if( eBiff >= EXC_BIFF8 )
- FillScFuncMap( saFuncTable_8, STATIC_TABLE_END( saFuncTable_8 ) );
- }
+ /* Only read/write functions supported in the current BIFF version.
+ Function tables from later BIFF versions may overwrite single functions
+ from earlier tables. */
+ XclBiff eBiff = rRoot.GetBiff();
+ if( eBiff >= EXC_BIFF2 )
+ (this->*pFillFunc)( saFuncTable_2, STATIC_TABLE_END( saFuncTable_2 ) );
+ if( eBiff >= EXC_BIFF3 )
+ (this->*pFillFunc)( saFuncTable_3, STATIC_TABLE_END( saFuncTable_3 ) );
+ if( eBiff >= EXC_BIFF4 )
+ (this->*pFillFunc)( saFuncTable_4, STATIC_TABLE_END( saFuncTable_4 ) );
+ if( eBiff >= EXC_BIFF5 )
+ (this->*pFillFunc)( saFuncTable_5, STATIC_TABLE_END( saFuncTable_5 ) );
+ if( eBiff >= EXC_BIFF8 )
+ (this->*pFillFunc)( saFuncTable_8, STATIC_TABLE_END( saFuncTable_8 ) );
+ (this->*pFillFunc)( saFuncTable_Odf, STATIC_TABLE_END( saFuncTable_Odf ) );
}
const XclFunctionInfo* XclFunctionProvider::GetFuncInfoFromXclFunc( sal_uInt16 nXclFunc ) const
diff --git a/sc/source/filter/excel/xltools.cxx b/sc/source/filter/excel/xltools.cxx
index 926eb3e54fdc..90393ae6a787 100644
--- a/sc/source/filter/excel/xltools.cxx
+++ b/sc/source/filter/excel/xltools.cxx
@@ -113,7 +113,12 @@ const XclGuid XclTools::maGuidFileMoniker(
double XclTools::GetDoubleFromRK( sal_Int32 nRKValue )
{
- double fVal = 0.0;
+ union
+ {
+ double fVal;
+ sal_math_Double smD;
+ };
+ fVal = 0.0;
if( ::get_flag( nRKValue, EXC_RK_INTFLAG ) )
{
@@ -123,8 +128,7 @@ double XclTools::GetDoubleFromRK( sal_Int32 nRKValue )
}
else
{
- sal_math_Double* pDouble = reinterpret_cast< sal_math_Double* >( &fVal );
- pDouble->w32_parts.msw = nRKValue & EXC_RK_VALUEMASK;
+ smD.w32_parts.msw = nRKValue & EXC_RK_VALUEMASK;
}
if( ::get_flag( nRKValue, EXC_RK_100FLAG ) )
@@ -161,50 +165,6 @@ bool XclTools::GetRKFromDouble( sal_Int32& rnRKValue, double fValue )
return false;
}
-
-sal_uInt8 XclTools::GetXclErrorCode( USHORT nScError )
-{
- using namespace ScErrorCodes;
- switch( nScError )
- {
- case errIllegalArgument: return EXC_ERR_VALUE;
- case errIllegalFPOperation: return EXC_ERR_NUM; // maybe DIV/0 or NUM...
- case errDivisionByZero: return EXC_ERR_DIV0;
- case errIllegalParameter: return EXC_ERR_VALUE;
- case errPairExpected: return EXC_ERR_VALUE;
- case errOperatorExpected: return EXC_ERR_VALUE;
- case errVariableExpected: return EXC_ERR_VALUE;
- case errParameterExpected: return EXC_ERR_VALUE;
- case errNoValue: return EXC_ERR_VALUE;
- case errCircularReference: return EXC_ERR_VALUE;
- case errNoCode: return EXC_ERR_NULL;
- case errNoRef: return EXC_ERR_REF;
- case errNoName: return EXC_ERR_NAME;
- case errNoAddin: return EXC_ERR_NAME;
- case errNoMacro: return EXC_ERR_NAME;
- case NOTAVAILABLE: return EXC_ERR_NA;
- }
- return EXC_ERR_NA;
-}
-
-USHORT XclTools::GetScErrorCode( sal_uInt8 nXclError )
-{
- using namespace ScErrorCodes;
- switch( nXclError )
- {
- case EXC_ERR_NULL: return errNoCode;
- case EXC_ERR_DIV0: return errDivisionByZero;
- case EXC_ERR_VALUE: return errNoValue;
- case EXC_ERR_REF: return errNoRef;
- case EXC_ERR_NAME: return errNoName;
- case EXC_ERR_NUM: return errIllegalFPOperation;
- case EXC_ERR_NA: return NOTAVAILABLE;
- default: DBG_ERRORFILE( "XclTools::GetScErrorCode - unknown error code" );
- }
- return NOTAVAILABLE;
-}
-
-
sal_Int32 XclTools::GetScRotation( sal_uInt16 nXclRot, sal_Int32 nRotForStacked )
{
if( nXclRot == EXC_ROT_STACKED )
@@ -252,6 +212,59 @@ sal_uInt8 XclTools::GetXclOrientFromRot( sal_uInt16 nXclRot )
return EXC_ORIENT_NONE;
}
+sal_uInt8 XclTools::GetXclErrorCode( USHORT nScError )
+{
+ using namespace ScErrorCodes;
+ switch( nScError )
+ {
+ case errIllegalArgument: return EXC_ERR_VALUE;
+ case errIllegalFPOperation: return EXC_ERR_NUM; // maybe DIV/0 or NUM...
+ case errDivisionByZero: return EXC_ERR_DIV0;
+ case errIllegalParameter: return EXC_ERR_VALUE;
+ case errPairExpected: return EXC_ERR_VALUE;
+ case errOperatorExpected: return EXC_ERR_VALUE;
+ case errVariableExpected: return EXC_ERR_VALUE;
+ case errParameterExpected: return EXC_ERR_VALUE;
+ case errNoValue: return EXC_ERR_VALUE;
+ case errCircularReference: return EXC_ERR_VALUE;
+ case errNoCode: return EXC_ERR_NULL;
+ case errNoRef: return EXC_ERR_REF;
+ case errNoName: return EXC_ERR_NAME;
+ case errNoAddin: return EXC_ERR_NAME;
+ case errNoMacro: return EXC_ERR_NAME;
+ case NOTAVAILABLE: return EXC_ERR_NA;
+ }
+ return EXC_ERR_NA;
+}
+
+USHORT XclTools::GetScErrorCode( sal_uInt8 nXclError )
+{
+ using namespace ScErrorCodes;
+ switch( nXclError )
+ {
+ case EXC_ERR_NULL: return errNoCode;
+ case EXC_ERR_DIV0: return errDivisionByZero;
+ case EXC_ERR_VALUE: return errNoValue;
+ case EXC_ERR_REF: return errNoRef;
+ case EXC_ERR_NAME: return errNoName;
+ case EXC_ERR_NUM: return errIllegalFPOperation;
+ case EXC_ERR_NA: return NOTAVAILABLE;
+ default: DBG_ERRORFILE( "XclTools::GetScErrorCode - unknown error code" );
+ }
+ return NOTAVAILABLE;
+}
+
+double XclTools::ErrorToDouble( sal_uInt8 nXclError )
+{
+ union
+ {
+ double fVal;
+ sal_math_Double smD;
+ };
+ ::rtl::math::setNan( &fVal );
+ smD.nan_parts.fraction_lo = GetScErrorCode( nXclError );
+ return fVal;
+}
XclBoolError XclTools::ErrorToEnum( double& rfDblValue, sal_uInt8 bErrOrBool, sal_uInt8 nValue )
{
@@ -281,7 +294,6 @@ XclBoolError XclTools::ErrorToEnum( double& rfDblValue, sal_uInt8 bErrOrBool, sa
return eType;
}
-
sal_uInt16 XclTools::GetTwipsFromInch( double fInches )
{
return static_cast< sal_uInt16 >(
diff --git a/sc/source/filter/inc/xihelper.hxx b/sc/source/filter/inc/xihelper.hxx
index 9a836c8844db..05412c306c0c 100644
--- a/sc/source/filter/inc/xihelper.hxx
+++ b/sc/source/filter/inc/xihelper.hxx
@@ -320,13 +320,15 @@ public:
/** Returns the type of the cached value (EXC_CACHEDVAL_*). */
inline sal_uInt8 GetType() const { return mnType; }
/** Returns the cached string value, if this value is a string, else an empty string. */
- inline const String& GetString() const { return mxStr.get() ? *mxStr : EMPTY_STRING; }
+ inline const String& GetString() const { return mxStr.get() ? *mxStr : EMPTY_STRING; }
/** Returns the cached number, if this value has number type, else 0.0. */
inline double GetValue() const { return mfValue; }
/** Returns the cached Boolean value, if this value has Boolean type, else false. */
inline bool GetBool() const { return (mnType == EXC_CACHEDVAL_BOOL) && (mnBoolErr != 0); }
/** Returns the cached Calc error code, if this value has Error type, else 0. */
- USHORT GetError() const;
+ inline sal_uInt8 GetXclError() const { return (mnType == EXC_CACHEDVAL_ERROR) ? mnBoolErr : EXC_ERR_NA; }
+ /** Returns the cached Calc error code, if this value has Error type, else 0. */
+ USHORT GetScError() const;
/** Returns the token array if this is a Boolean value or error value, else 0. */
inline const ScTokenArray* GetBoolErrFmla() const { return mxTokArr.get(); }
diff --git a/sc/source/filter/inc/xistyle.hxx b/sc/source/filter/inc/xistyle.hxx
index 4a347062905c..104002542a17 100644
--- a/sc/source/filter/inc/xistyle.hxx
+++ b/sc/source/filter/inc/xistyle.hxx
@@ -316,6 +316,9 @@ struct XclImpCellBorder : public XclCellBorder
/** Fills this struct with BIFF8 CF (conditional format) record data. */
void FillFromCF8( sal_uInt16 nLineStyle, sal_uInt32 nLineColor, sal_uInt32 nFlags );
+ /** Returns true, if any of the outer border lines is visible. */
+ bool HasAnyOuterBorder() const;
+
/** Inserts a box item representing this border style into the item set.
@param bSkipPoolDefs true = Do not put items equal to pool default; false = Put all items. */
void FillToItemSet(
@@ -423,8 +426,6 @@ private:
@descr In cell XFs, a set bit represents "used", in style XFs it is a cleared bit.
Therefore mbCellXF must be set correctly before calling this method. */
void SetUsedFlags( sal_uInt8 nUsedFlags );
- /** Sets own "attribute used" flags, if attributes are different from passed parent XF. */
- void UpdateUsedFlags( const XclImpXF& rParentXF );
private:
typedef ::std::auto_ptr< ScPatternAttr > ScPatternAttrPtr;
diff --git a/sc/source/filter/inc/xltools.hxx b/sc/source/filter/inc/xltools.hxx
index b2519a51d156..e8ceed8248d6 100644
--- a/sc/source/filter/inc/xltools.hxx
+++ b/sc/source/filter/inc/xltools.hxx
@@ -121,6 +121,8 @@ public:
/** Converts an Excel error code to a Calc error code. */
static USHORT GetScErrorCode( sal_uInt8 nXclError );
+ /** Converts the passed BIFF error to a double containing the respective Calc error code. */
+ static double ErrorToDouble( sal_uInt8 nXclError );
/** Gets a translated error code or Boolean value from Excel error codes.
@param rfDblValue Returns 0.0 for error codes or the value of a Boolean (0.0 or 1.0).
@param bErrorOrBool false = nError is a Boolean value; true = is an error value.
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 5ea8c4d78e0f..f6fc2cb27b71 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -768,8 +768,9 @@ __EXPORT ScTextWnd::~ScTextWnd()
{
delete pEditView;
delete pEditEngine;
- for( AccTextDataVector::reverse_iterator aIt = maAccTextDatas.rbegin(), aEnd = maAccTextDatas.rend(); aIt != aEnd; ++aIt )
- (*aIt)->Dispose();
+ while (!maAccTextDatas.empty()) {
+ maAccTextDatas.back()->Dispose();
+ }
}
void __EXPORT ScTextWnd::Paint( const Rectangle& rRec )
diff --git a/sc/source/ui/dbgui/pvfundlg.src b/sc/source/ui/dbgui/pvfundlg.src
index 70bce3ed30e9..ed00f6a65fa5 100644
--- a/sc/source/ui/dbgui/pvfundlg.src
+++ b/sc/source/ui/dbgui/pvfundlg.src
@@ -227,8 +227,8 @@ ModalDialog RID_SCDLG_PIVOTSUBT
};
CheckBox CB_SHOWALL
{
- Pos = MAP_APPFONT ( 12 , 127 ) ;
- Size = MAP_APPFONT ( 140 , 10 ) ;
+ Pos = MAP_APPFONT ( 6 , 127 ) ;
+ Size = MAP_APPFONT ( 152 , 10 ) ;
Text [ en-US ] = "Show it~ems without data";
TabStop = TRUE ;
};
diff --git a/sc/source/ui/docshell/dbdocfun.cxx b/sc/source/ui/docshell/dbdocfun.cxx
index 2053cebc8ce5..9895f0f43610 100644
--- a/sc/source/ui/docshell/dbdocfun.cxx
+++ b/sc/source/ui/docshell/dbdocfun.cxx
@@ -593,7 +593,7 @@ BOOL ScDBDocFunc::Sort( SCTAB nTab, const ScSortParam& rSortParam,
if (pDestData)
pNewData = pDestData; // Bereich vorhanden -> anpassen
else // Bereich ab Cursor/Markierung wird angelegt
- pNewData = rDocShell.GetDBData(aDestPos, SC_DB_MAKE, TRUE );
+ pNewData = rDocShell.GetDBData(aDestPos, SC_DB_MAKE, SC_DBSEL_FORCE_MARK );
if (pNewData)
{
pNewData->SetArea( nTab,
@@ -920,7 +920,7 @@ BOOL ScDBDocFunc::Query( SCTAB nTab, const ScQueryParam& rQueryParam,
pNewData = rDocShell.GetDBData(
ScRange( aLocalParam.nCol1, aLocalParam.nRow1, nDestTab,
aLocalParam.nCol2, aLocalParam.nRow2, nDestTab ),
- SC_DB_MAKE, TRUE );
+ SC_DB_MAKE, SC_DBSEL_FORCE_MARK );
if (pNewData)
{
diff --git a/sc/source/ui/docshell/dbdocimp.cxx b/sc/source/ui/docshell/dbdocimp.cxx
index be856ec9240b..a073e50d105c 100644
--- a/sc/source/ui/docshell/dbdocimp.cxx
+++ b/sc/source/ui/docshell/dbdocimp.cxx
@@ -189,7 +189,7 @@ BOOL ScDBDocFunc::DoImportUno( const ScAddress& rPos,
// create database range
//! merge this with SID_SBA_IMPORT execute in docsh4.cxx
- ScDBData* pDBData = rDocShell.GetDBData( ScRange(rPos), SC_DB_IMPORT, FALSE );
+ ScDBData* pDBData = rDocShell.GetDBData( ScRange(rPos), SC_DB_IMPORT, SC_DBSEL_KEEP );
DBG_ASSERT(pDBData, "can't create DB data");
String sTarget = pDBData->GetName();
diff --git a/sc/source/ui/docshell/docsh3.cxx b/sc/source/ui/docshell/docsh3.cxx
index 7ff714c2cbdd..4709a065792f 100644
--- a/sc/source/ui/docshell/docsh3.cxx
+++ b/sc/source/ui/docshell/docsh3.cxx
@@ -1088,6 +1088,16 @@ void ScDocShell::MergeDocument( ScDocument& rOtherDoc, bool bShared, bool bCheck
{
aSourceRange = pDel->GetOverAllRange().MakeRange();
GetDocFunc().DeleteCells( aSourceRange, NULL, DEL_DELROWS, TRUE, FALSE );
+
+ // #i101099# [Collaboration] Changes are not correctly shown
+ if ( bShared )
+ {
+ ScChangeAction* pAct = pThisTrack->GetLast();
+ if ( pAct && pAct->GetType() == eSourceType && pAct->IsDeletedIn() && !pSourceAction->IsDeletedIn() )
+ {
+ pAct->RemoveAllDeletedIn();
+ }
+ }
}
}
break;
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index 26d61a82c6be..157b98497e83 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -264,7 +264,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
GetUndoManager()->EnterListAction( aStrImport, aStrImport );
}
- ScDBData* pDBData = GetDBData( ScRange(aPos), SC_DB_IMPORT, FALSE );
+ ScDBData* pDBData = GetDBData( ScRange(aPos), SC_DB_IMPORT, SC_DBSEL_KEEP );
DBG_ASSERT(pDBData, "kann DB-Daten nicht anlegen");
sTarget = pDBData->GetName();
}
diff --git a/sc/source/ui/docshell/docsh5.cxx b/sc/source/ui/docshell/docsh5.cxx
index 6fa6a5ac7863..1bbf9437bc1c 100644
--- a/sc/source/ui/docshell/docsh5.cxx
+++ b/sc/source/ui/docshell/docsh5.cxx
@@ -148,7 +148,7 @@ ScDBData* lcl_GetDBNearCursor( ScDBCollection* pColl, SCCOL nCol, SCROW nRow, SC
return pNoNameData; // "unbenannt" nur zurueck, wenn sonst nichts gefunden
}
-ScDBData* ScDocShell::GetDBData( const ScRange& rMarked, ScGetDBMode eMode, BOOL bForceMark )
+ScDBData* ScDocShell::GetDBData( const ScRange& rMarked, ScGetDBMode eMode, ScGetDBSelection eSel )
{
SCCOL nCol = rMarked.aStart.Col();
SCROW nRow = rMarked.aStart.Row();
@@ -169,7 +169,9 @@ ScDBData* ScDocShell::GetDBData( const ScRange& rMarked, ScGetDBMode eMode, BOOL
if (!pData)
pData = lcl_GetDBNearCursor( aDocument.GetDBCollection(), nCol, nRow, nTab );
- BOOL bSelected = ( bForceMark || rMarked.aStart != rMarked.aEnd );
+ BOOL bSelected = ( eSel == SC_DBSEL_FORCE_MARK ||
+ (rMarked.aStart != rMarked.aEnd && eSel != SC_DBSEL_ROW_DOWN) );
+ bool bOnlyDown = (!bSelected && eSel == SC_DBSEL_ROW_DOWN && rMarked.aStart.Row() == rMarked.aEnd.Row());
BOOL bUseThis = FALSE;
if (pData)
@@ -189,12 +191,21 @@ ScDBData* ScDocShell::GetDBData( const ScRange& rMarked, ScGetDBMode eMode, BOOL
bUseThis = TRUE;
if ( bIsNoName && eMode == SC_DB_MAKE )
{
- // wenn nichts markiert, "unbenannt" auf zusammenhaengenden Bereich anpassen
+ // If nothing marked or only one row marked, adapt
+ // "unbenannt"/"unnamed" to contiguous area.
nStartCol = nCol;
nStartRow = nRow;
- nEndCol = nStartCol;
- nEndRow = nStartRow;
- aDocument.GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE );
+ if (bOnlyDown)
+ {
+ nEndCol = rMarked.aEnd.Col();
+ nEndRow = rMarked.aEnd.Row();
+ }
+ else
+ {
+ nEndCol = nStartCol;
+ nEndRow = nStartRow;
+ }
+ aDocument.GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE, bOnlyDown );
if ( nOldCol1 != nStartCol || nOldCol2 != nEndCol || nOldRow1 != nStartRow )
bUseThis = FALSE; // passt gar nicht
else if ( nOldRow2 != nEndRow )
@@ -242,9 +253,17 @@ ScDBData* ScDocShell::GetDBData( const ScRange& rMarked, ScGetDBMode eMode, BOOL
{ // zusammenhaengender Bereich
nStartCol = nCol;
nStartRow = nRow;
- nEndCol = nStartCol;
- nEndRow = nStartRow;
- aDocument.GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE );
+ if (bOnlyDown)
+ {
+ nEndCol = rMarked.aEnd.Col();
+ nEndRow = rMarked.aEnd.Row();
+ }
+ else
+ {
+ nEndCol = nStartCol;
+ nEndRow = nStartRow;
+ }
+ aDocument.GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE, bOnlyDown );
}
BOOL bHasHeader = aDocument.HasColHeader( nStartCol,nStartRow, nEndCol,nEndRow, nTab );
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index 836d6cdf98e6..e7b04afa9c4f 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -238,6 +238,26 @@ void ScExternalRefCache::Table::getAllRows(vector<SCROW>& rRows) const
rRows.swap(aRows);
}
+::std::pair< SCROW, SCROW > ScExternalRefCache::Table::getRowRange() const
+{
+ ::std::pair< SCROW, SCROW > aRange( 0, 0 );
+ if( !maRows.empty() )
+ {
+ // iterate over entire container (hash map is not sorted by key)
+ RowsDataType::const_iterator itr = maRows.begin(), itrEnd = maRows.end();
+ aRange.first = itr->first;
+ aRange.second = itr->first + 1;
+ while( ++itr != itrEnd )
+ {
+ if( itr->first < aRange.first )
+ aRange.first = itr->first;
+ else if( itr->first >= aRange.second )
+ aRange.second = itr->first + 1;
+ }
+ }
+ return aRange;
+}
+
void ScExternalRefCache::Table::getAllCols(SCROW nRow, vector<SCCOL>& rCols) const
{
RowsDataType::const_iterator itrRow = maRows.find(nRow);
@@ -257,6 +277,33 @@ void ScExternalRefCache::Table::getAllCols(SCROW nRow, vector<SCCOL>& rCols) con
rCols.swap(aCols);
}
+::std::pair< SCCOL, SCCOL > ScExternalRefCache::Table::getColRange( SCROW nRow ) const
+{
+ ::std::pair< SCCOL, SCCOL > aRange( 0, 0 );
+
+ RowsDataType::const_iterator itrRow = maRows.find( nRow );
+ if (itrRow == maRows.end())
+ // this table doesn't have the specified row.
+ return aRange;
+
+ const RowDataType& rRowData = itrRow->second;
+ if( !rRowData.empty() )
+ {
+ // iterate over entire container (hash map is not sorted by key)
+ RowDataType::const_iterator itr = rRowData.begin(), itrEnd = rRowData.end();
+ aRange.first = itr->first;
+ aRange.second = itr->first + 1;
+ while( ++itr != itrEnd )
+ {
+ if( itr->first < aRange.first )
+ aRange.first = itr->first;
+ else if( itr->first >= aRange.second )
+ aRange.second = itr->first + 1;
+ }
+ }
+ return aRange;
+}
+
void ScExternalRefCache::Table::getAllNumberFormats(vector<sal_uInt32>& rNumFmts) const
{
RowsDataType::const_iterator itrRow = maRows.begin(), itrRowEnd = maRows.end();
@@ -1942,6 +1989,9 @@ SfxObjectShellRef ScExternalRefManager::loadSrcDocument(sal_uInt16 nFileId, Stri
if (aOptions.Len())
pSet->Put(SfxStringItem(SID_FILE_FILTEROPTIONS, aOptions));
+ // make medium hidden to prevent assertion from progress bar
+ pSet->Put( SfxBoolItem( SID_HIDDEN, TRUE ) );
+
auto_ptr<SfxMedium> pMedium(new SfxMedium(aFile, STREAM_STD_READ, false, pFilter, pSet));
if (pMedium->GetError() != ERRCODE_NONE)
return NULL;
diff --git a/sc/source/ui/inc/dbfunc.hxx b/sc/source/ui/inc/dbfunc.hxx
index be206b396733..baadae0a64dc 100644
--- a/sc/source/ui/inc/dbfunc.hxx
+++ b/sc/source/ui/inc/dbfunc.hxx
@@ -77,7 +77,7 @@ public:
void GotoDBArea( const String& rDBName );
// DB-Bereich vom Cursor
- ScDBData* GetDBData( BOOL bMarkArea = TRUE, ScGetDBMode eMode = SC_DB_MAKE, bool bShrinkToData = false );
+ ScDBData* GetDBData( BOOL bMarkArea = TRUE, ScGetDBMode eMode = SC_DB_MAKE, ScGetDBSelection eSel = SC_DBSEL_KEEP );
void NotifyCloseDbNameDlg( const ScDBCollection& rNewColl, const List& rDelAreaList );
diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx
index 88bbeb699539..09d34c661995 100644
--- a/sc/source/ui/inc/docsh.hxx
+++ b/sc/source/ui/inc/docsh.hxx
@@ -313,7 +313,7 @@ public:
BOOL IsOle();
void DBAreaDeleted( SCTAB nTab, SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2 );
- ScDBData* GetDBData( const ScRange& rMarked, ScGetDBMode eMode, BOOL bForceMark );
+ ScDBData* GetDBData( const ScRange& rMarked, ScGetDBMode eMode, ScGetDBSelection eSel );
ScDBData* GetOldAutoDBRange(); // has to be deleted by caller!
void CancelAutoDBRange(); // called when dialog is cancelled
diff --git a/sc/source/ui/miscdlgs/scuiautofmt.cxx b/sc/source/ui/miscdlgs/scuiautofmt.cxx
index 79d7c502921f..b2f837db4cb4 100644
--- a/sc/source/ui/miscdlgs/scuiautofmt.cxx
+++ b/sc/source/ui/miscdlgs/scuiautofmt.cxx
@@ -369,7 +369,7 @@ IMPL_LINK( ScAutoFormatDlg, RenameHdl, void *, EMPTYARG )
aStrRename,
aStrLabel,
aFormatName,
- HID_SC_RENAME_AUTOFMT );
+ HID_SC_REN_AFMT_DLG );
if( pDlg->Execute() == RET_OK )
{
BOOL bFmtRenamed = FALSE;
diff --git a/sc/source/ui/miscdlgs/strindlg.cxx b/sc/source/ui/miscdlgs/strindlg.cxx
index aa6db3075b64..b8dc2e13538e 100644
--- a/sc/source/ui/miscdlgs/strindlg.cxx
+++ b/sc/source/ui/miscdlgs/strindlg.cxx
@@ -72,25 +72,21 @@ ScStringInputDlg::ScStringInputDlg( Window* pParent,
// HelpId for Edit different for different uses
- DBG_ASSERT( nHelpId == FID_TAB_APPEND || nHelpId == FID_TAB_RENAME ||
- nHelpId == HID_SC_ADD_AUTOFMT || nHelpId == HID_SC_RENAME_AUTOFMT ||
- nHelpId == SID_RENAME_OBJECT ||
- // #i68101#
- nHelpId == SID_TITLE_DESCRIPTION_OBJECT,
- "unknown ID" );
if ( nHelpId == FID_TAB_APPEND )
aEdInput.SetHelpId( HID_SC_APPEND_NAME );
else if ( nHelpId == FID_TAB_RENAME )
aEdInput.SetHelpId( HID_SC_RENAME_NAME );
else if ( nHelpId == HID_SC_ADD_AUTOFMT )
aEdInput.SetHelpId( HID_SC_AUTOFMT_NAME );
- else if ( nHelpId == HID_SC_RENAME_AUTOFMT )
+ else if ( nHelpId == HID_SC_REN_AFMT_DLG )
aEdInput.SetHelpId( HID_SC_REN_AFMT_NAME );
else if ( nHelpId == SID_RENAME_OBJECT )
aEdInput.SetHelpId( HID_SC_RENAME_OBJECT );
// #i68101#
else if ( nHelpId == SID_TITLE_DESCRIPTION_OBJECT )
aEdInput.SetHelpId( HID_SC_TITLE_DESCRIPTION_OBJECT );
+ else
+ DBG_ERRORFILE( "unknown ID" );
//-------------
FreeResource();
diff --git a/sc/source/ui/src/globstr.src b/sc/source/ui/src/globstr.src
index b08676bbe3db..1cc66ca13af6 100644
--- a/sc/source/ui/src/globstr.src
+++ b/sc/source/ui/src/globstr.src
@@ -1021,7 +1021,7 @@ Resource RID_GLOBSTR
};
String STR_QUERY_DELTAB
{
- Text [ en-US ] = "Are you sure you want to permanently delete the current sheet(s)?" ;
+ Text [ en-US ] = "Are you sure you want to delete the selected sheet(s)?" ;
};
String STR_QUERY_DELSCENARIO
{
diff --git a/sc/source/ui/src/miscdlgs.src b/sc/source/ui/src/miscdlgs.src
index d4aa01d436ce..8c9279a602c1 100644
--- a/sc/source/ui/src/miscdlgs.src
+++ b/sc/source/ui/src/miscdlgs.src
@@ -233,7 +233,7 @@ ModalDialog RID_SCDLG_DELCONT
{
Pos = MAP_APPFONT ( 12 , 86 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
- Text [ en-US ] = "Not~es" ;
+ Text [ en-US ] = "~Comments" ;
TabStop = TRUE ;
};
CheckBox BTN_DELOBJECTS
@@ -326,14 +326,14 @@ ModalDialog RID_SCDLG_INSCONT
{
Pos = MAP_APPFONT ( 12 , 114 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
- Text [ en-US ] = "O~bjects" ;
+ Text [ en-US ] = "~Objects" ;
TabStop = TRUE ;
};
CheckBox BTN_INSNOTES
{
Pos = MAP_APPFONT ( 12 , 86 ) ;
Size = MAP_APPFONT ( 84 , 10 ) ;
- Text [ en-US ] = "N~otes" ;
+ Text [ en-US ] = "~Comments" ;
TabStop = TRUE ;
};
FixedLine FL_FRAME
@@ -358,7 +358,7 @@ ModalDialog RID_SCDLG_INSCONT
{
Pos = MAP_APPFONT ( 111 , 44 ) ;
Size = MAP_APPFONT ( 83 , 10 ) ;
- Text [ en-US ] = "S~ubtract" ;
+ Text [ en-US ] = "~Subtract" ;
};
RadioButton BTN_OP_MUL
{
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index c61a6443af99..4eddb447e8a9 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -5515,7 +5515,7 @@ uno::Sequence<beans::PropertyValue> SAL_CALL ScCellRangeObj::createSortDescripto
if ( pDocSh )
{
// DB-Bereich anlegen erst beim Ausfuehren, per API immer genau den Bereich
- ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, TRUE );
+ ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, SC_DBSEL_FORCE_MARK );
if (pData)
{
pData->GetSortParam(aParam);
@@ -5546,7 +5546,7 @@ void SAL_CALL ScCellRangeObj::sort( const uno::Sequence<beans::PropertyValue>& a
{
USHORT i;
ScSortParam aParam;
- ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_MAKE, TRUE ); // ggf. Bereich anlegen
+ ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_MAKE, SC_DBSEL_FORCE_MARK ); // ggf. Bereich anlegen
if (pData)
{
// alten Einstellungen holen, falls nicht alles neu gesetzt wird
@@ -5575,7 +5575,7 @@ void SAL_CALL ScCellRangeObj::sort( const uno::Sequence<beans::PropertyValue>& a
aParam.nCol2 = aRange.aEnd.Col();
aParam.nRow2 = aRange.aEnd.Row();
- pDocSh->GetDBData( aRange, SC_DB_MAKE, TRUE ); // ggf. Bereich anlegen
+ pDocSh->GetDBData( aRange, SC_DB_MAKE, SC_DBSEL_FORCE_MARK ); // ggf. Bereich anlegen
ScDBDocFunc aFunc(*pDocSh); // Bereich muss angelegt sein
aFunc.Sort( nTab, aParam, TRUE, TRUE, TRUE );
@@ -5593,7 +5593,7 @@ uno::Reference<sheet::XSheetFilterDescriptor> SAL_CALL ScCellRangeObj::createFil
if ( !bEmpty && pDocSh )
{
// DB-Bereich anlegen erst beim Ausfuehren, per API immer genau den Bereich
- ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, TRUE );
+ ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, SC_DBSEL_FORCE_MARK );
if (pData)
{
ScQueryParam aParam;
@@ -5675,7 +5675,7 @@ void SAL_CALL ScCellRangeObj::filter( const uno::Reference<sheet::XSheetFilterDe
aParam.nCol2 = aRange.aEnd.Col();
aParam.nRow2 = aRange.aEnd.Row();
- pDocSh->GetDBData( aRange, SC_DB_MAKE, TRUE ); // ggf. Bereich anlegen
+ pDocSh->GetDBData( aRange, SC_DB_MAKE, SC_DBSEL_FORCE_MARK ); // ggf. Bereich anlegen
//! keep source range in filter descriptor
//! if created by createFilterDescriptorByObject ???
@@ -5762,7 +5762,7 @@ uno::Reference<sheet::XSubTotalDescriptor> SAL_CALL ScCellRangeObj::createSubTot
if ( !bEmpty && pDocSh )
{
// DB-Bereich anlegen erst beim Ausfuehren, per API immer genau den Bereich
- ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, TRUE );
+ ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, SC_DBSEL_FORCE_MARK );
if (pData)
{
ScSubTotalParam aParam;
@@ -5825,7 +5825,7 @@ void SAL_CALL ScCellRangeObj::applySubTotals(
aParam.nCol2 = aRange.aEnd.Col();
aParam.nRow2 = aRange.aEnd.Row();
- pDocSh->GetDBData( aRange, SC_DB_MAKE, TRUE ); // ggf. Bereich anlegen
+ pDocSh->GetDBData( aRange, SC_DB_MAKE, SC_DBSEL_FORCE_MARK ); // ggf. Bereich anlegen
ScDBDocFunc aFunc(*pDocSh);
aFunc.DoSubTotals( nTab, aParam, NULL, TRUE, TRUE ); // Bereich muss angelegt sein
@@ -5840,7 +5840,7 @@ void SAL_CALL ScCellRangeObj::removeSubTotals() throw(uno::RuntimeException)
if (pDocSh)
{
ScSubTotalParam aParam;
- ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, TRUE );
+ ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, SC_DBSEL_FORCE_MARK );
if (pData)
pData->GetSubTotalParam(aParam); // auch bei Remove die Feld-Eintraege behalten
@@ -5852,7 +5852,7 @@ void SAL_CALL ScCellRangeObj::removeSubTotals() throw(uno::RuntimeException)
aParam.nCol2 = aRange.aEnd.Col();
aParam.nRow2 = aRange.aEnd.Row();
- pDocSh->GetDBData( aRange, SC_DB_MAKE, TRUE ); // ggf. Bereich anlegen
+ pDocSh->GetDBData( aRange, SC_DB_MAKE, SC_DBSEL_FORCE_MARK ); // ggf. Bereich anlegen
ScDBDocFunc aFunc(*pDocSh);
aFunc.DoSubTotals( nTab, aParam, NULL, TRUE, TRUE ); // Bereich muss angelegt sein
@@ -5868,7 +5868,7 @@ uno::Sequence<beans::PropertyValue> SAL_CALL ScCellRangeObj::createImportDescrip
if ( !bEmpty && pDocSh )
{
// DB-Bereich anlegen erst beim Ausfuehren, per API immer genau den Bereich
- ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, TRUE );
+ ScDBData* pData = pDocSh->GetDBData( aRange, SC_DB_OLD, SC_DBSEL_FORCE_MARK );
if (pData)
pData->GetImportParam(aParam);
}
@@ -5897,7 +5897,7 @@ void SAL_CALL ScCellRangeObj::doImport( const uno::Sequence<beans::PropertyValue
//! TODO: could we get passed a valid result set by any means?
uno::Reference< sdbc::XResultSet > xResultSet;
- pDocSh->GetDBData( aRange, SC_DB_MAKE, TRUE ); // ggf. Bereich anlegen
+ pDocSh->GetDBData( aRange, SC_DB_MAKE, SC_DBSEL_FORCE_MARK ); // ggf. Bereich anlegen
ScDBDocFunc aFunc(*pDocSh); // Bereich muss angelegt sein
aFunc.DoImport( nTab, aParam, xResultSet, NULL, TRUE, FALSE ); //! Api-Flag als Parameter
diff --git a/sc/source/ui/unoobj/cursuno.cxx b/sc/source/ui/unoobj/cursuno.cxx
index 39ed859aa574..daf075964a3a 100644
--- a/sc/source/ui/unoobj/cursuno.cxx
+++ b/sc/source/ui/unoobj/cursuno.cxx
@@ -133,7 +133,7 @@ void SAL_CALL ScCellCursorObj::collapseToCurrentRegion() throw(uno::RuntimeExcep
SCTAB nTab = aOneRange.aStart.Tab();
pDocSh->GetDocument()->GetDataArea(
- nTab, nStartCol, nStartRow, nEndCol, nEndRow, TRUE );
+ nTab, nStartCol, nStartRow, nEndCol, nEndRow, TRUE, false );
ScRange aNew( nStartCol, nStartRow, nTab, nEndCol, nEndRow, nTab );
SetNewRange( aNew );
@@ -331,7 +331,7 @@ void SAL_CALL ScCellCursorObj::gotoStart() throw(uno::RuntimeException)
SCTAB nTab = aOneRange.aStart.Tab();
pDocSh->GetDocument()->GetDataArea(
- nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE );
+ nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE, false );
ScRange aNew( nStartCol, nStartRow, nTab );
SetNewRange( aNew );
@@ -359,7 +359,7 @@ void SAL_CALL ScCellCursorObj::gotoEnd() throw(uno::RuntimeException)
SCTAB nTab = aOneRange.aStart.Tab();
pDocSh->GetDocument()->GetDataArea(
- nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE );
+ nTab, nStartCol, nStartRow, nEndCol, nEndRow, FALSE, false );
ScRange aNew( nEndCol, nEndRow, nTab );
SetNewRange( aNew );
diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx
index 6d3f10e2ec5e..a461c54f255e 100644
--- a/sc/source/ui/view/cellsh.cxx
+++ b/sc/source/ui/view/cellsh.cxx
@@ -42,6 +42,7 @@
#include <svx/hlnkitem.hxx>
#include <sfx2/app.hxx>
#include <sfx2/bindings.hxx>
+#include <sfx2/childwin.hxx>
#include <sfx2/objface.hxx>
#include <sfx2/request.hxx>
#include <sfx2/viewfrm.hxx>
@@ -970,6 +971,29 @@ void ScCellShell::GetState(SfxItemSet &rSet)
}
break;
+ case SID_SPELL_DIALOG:
+ {
+ if ( pDoc && pData && pDoc->IsTabProtected( pData->GetTabNo() ) )
+ {
+ bool bVisible = false;
+ SfxViewFrame* pViewFrame = ( pTabViewShell ? pTabViewShell->GetViewFrame() : NULL );
+ if ( pViewFrame && pViewFrame->HasChildWindow( nWhich ) )
+ {
+ SfxChildWindow* pChild = pViewFrame->GetChildWindow( nWhich );
+ Window* pWin = ( pChild ? pChild->GetWindow() : NULL );
+ if ( pWin && pWin->IsVisible() )
+ {
+ bVisible = true;
+ }
+ }
+ if ( !bVisible )
+ {
+ rSet.DisableItem( nWhich );
+ }
+ }
+ }
+ break;
+
} // switch ( nWitch )
nWhich = aIter.NextWhich();
} // while ( nWitch )
diff --git a/sc/source/ui/view/cellsh2.cxx b/sc/source/ui/view/cellsh2.cxx
index c082c6da375d..086160263739 100644
--- a/sc/source/ui/view/cellsh2.cxx
+++ b/sc/source/ui/view/cellsh2.cxx
@@ -161,7 +161,7 @@ BOOL lcl_GetSortParam( const ScViewData* pData, ScSortParam& rSortParam )
SCCOL nStartCol = aExternalRange.aStart.Col();
SCROW nEndRow = aExternalRange.aEnd.Row();
SCCOL nEndCol = aExternalRange.aEnd.Col();
- pDoc->GetDataArea( aExternalRange.aStart.Tab(), nStartCol, nStartRow, nEndCol, nEndRow, FALSE );
+ pDoc->GetDataArea( aExternalRange.aStart.Tab(), nStartCol, nStartRow, nEndCol, nEndRow, FALSE, false );
aExternalRange.aStart.SetRow( nStartRow );
aExternalRange.aStart.SetCol( nStartCol );
aExternalRange.aEnd.SetRow( nEndRow );
diff --git a/sc/source/ui/view/cellsh3.cxx b/sc/source/ui/view/cellsh3.cxx
index 6f6c7057bddf..ed391f154892 100644
--- a/sc/source/ui/view/cellsh3.cxx
+++ b/sc/source/ui/view/cellsh3.cxx
@@ -244,7 +244,7 @@ void ScCellShell::Execute( SfxRequest& rReq )
{
if (nSlot == FID_INPUTLINE_BLOCK)
{
- pTabViewShell->EnterBlock( String(), pData );
+ pTabViewShell->EnterBlock( aString, pData );
}
else if ( aString.Len() > 0 && ( aString.GetChar(0) == '=' || aString.GetChar(0) == '+' || aString.GetChar(0) == '-' ) )
{
diff --git a/sc/source/ui/view/dbfunc.cxx b/sc/source/ui/view/dbfunc.cxx
index 02dfd77f7460..1e5a6b9da4ae 100644
--- a/sc/source/ui/view/dbfunc.cxx
+++ b/sc/source/ui/view/dbfunc.cxx
@@ -104,7 +104,7 @@ void ScDBFunc::GotoDBArea( const String& rDBName )
// aktuellen Datenbereich fuer Sortieren / Filtern suchen
-ScDBData* ScDBFunc::GetDBData( BOOL bMark, ScGetDBMode eMode, bool bShrinkToData )
+ScDBData* ScDBFunc::GetDBData( BOOL bMark, ScGetDBMode eMode, ScGetDBSelection eSel )
{
ScDocShell* pDocSh = GetViewData()->GetDocShell();
ScDBData* pData = NULL;
@@ -112,27 +112,72 @@ ScDBData* ScDBFunc::GetDBData( BOOL bMark, ScGetDBMode eMode, bool bShrinkToData
ScMarkType eMarkType = GetViewData()->GetSimpleArea(aRange);
if ( eMarkType == SC_MARK_SIMPLE || eMarkType == SC_MARK_SIMPLE_FILTERED )
{
- if (bShrinkToData)
+ bool bShrinkColumnsOnly = false;
+ if (eSel == SC_DBSEL_ROW_DOWN)
{
- // Shrink the range to only include data area.
- ScDocument* pDoc = pDocSh->GetDocument();
- SCCOL nCol1 = aRange.aStart.Col(), nCol2 = aRange.aEnd.Col();
- SCROW nRow1 = aRange.aStart.Row(), nRow2 = aRange.aEnd.Row();
- if (pDoc->ShrinkToDataArea(aRange.aStart.Tab(), nCol1, nRow1, nCol2, nRow2))
+ // Don't alter row range, additional rows may have been selected on
+ // purpose to append data, or to have a fake header row.
+ bShrinkColumnsOnly = true;
+ // Select further rows only if only one row or a portion thereof is
+ // selected.
+ if (aRange.aStart.Row() != aRange.aEnd.Row())
+ {
+ // If an area is selected shrink that to the actual used
+ // columns, don't draw filter buttons for empty columns.
+ eSel = SC_DBSEL_SHRINK_TO_USED_DATA;
+ }
+ else if (aRange.aStart.Col() == aRange.aEnd.Col())
{
- aRange.aStart.SetCol(nCol1);
- aRange.aEnd.SetCol(nCol2);
- aRange.aStart.SetRow(nRow1);
- aRange.aEnd.SetRow(nRow2);
+ // One cell only, if it is not marked obtain entire used data
+ // area.
+ const ScMarkData& rMarkData = GetViewData()->GetMarkData();
+ if (!(rMarkData.IsMarked() || rMarkData.IsMultiMarked()))
+ eSel = SC_DBSEL_KEEP;
}
}
- pData = pDocSh->GetDBData( aRange, eMode, FALSE );
+ switch (eSel)
+ {
+ case SC_DBSEL_SHRINK_TO_SHEET_DATA:
+ {
+ // Shrink the selection to sheet data area.
+ ScDocument* pDoc = pDocSh->GetDocument();
+ SCCOL nCol1 = aRange.aStart.Col(), nCol2 = aRange.aEnd.Col();
+ SCROW nRow1 = aRange.aStart.Row(), nRow2 = aRange.aEnd.Row();
+ if (pDoc->ShrinkToDataArea( aRange.aStart.Tab(), nCol1, nRow1, nCol2, nRow2))
+ {
+ aRange.aStart.SetCol(nCol1);
+ aRange.aEnd.SetCol(nCol2);
+ aRange.aStart.SetRow(nRow1);
+ aRange.aEnd.SetRow(nRow2);
+ }
+ }
+ break;
+ case SC_DBSEL_SHRINK_TO_USED_DATA:
+ case SC_DBSEL_ROW_DOWN:
+ {
+ // Shrink the selection to actual used area.
+ ScDocument* pDoc = pDocSh->GetDocument();
+ SCCOL nCol1 = aRange.aStart.Col(), nCol2 = aRange.aEnd.Col();
+ SCROW nRow1 = aRange.aStart.Row(), nRow2 = aRange.aEnd.Row();
+ if (pDoc->ShrinkToUsedDataArea( aRange.aStart.Tab(), nCol1, nRow1, nCol2, nRow2, bShrinkColumnsOnly))
+ {
+ aRange.aStart.SetCol(nCol1);
+ aRange.aEnd.SetCol(nCol2);
+ aRange.aStart.SetRow(nRow1);
+ aRange.aEnd.SetRow(nRow2);
+ }
+ }
+ break;
+ default:
+ ; // nothing
+ }
+ pData = pDocSh->GetDBData( aRange, eMode, eSel );
}
else if ( eMode != SC_DB_OLD )
pData = pDocSh->GetDBData(
ScRange( GetViewData()->GetCurX(), GetViewData()->GetCurY(),
GetViewData()->GetTabNo() ),
- eMode, FALSE );
+ eMode, SC_DBSEL_KEEP );
if ( pData && bMark )
{
@@ -290,7 +335,7 @@ void ScDBFunc::ToggleAutoFilter()
ScQueryParam aParam;
ScDocument* pDoc = GetViewData()->GetDocument();
- ScDBData* pDBData = GetDBData( FALSE );
+ ScDBData* pDBData = GetDBData( FALSE, SC_DB_MAKE, SC_DBSEL_ROW_DOWN );
pDBData->SetByRow( TRUE ); //! Undo, vorher abfragen ??
pDBData->GetQueryParam( aParam );
diff --git a/sc/source/ui/view/spelldialog.cxx b/sc/source/ui/view/spelldialog.cxx
index 8ff816263b4f..a178b0a0ada6 100644
--- a/sc/source/ui/view/spelldialog.cxx
+++ b/sc/source/ui/view/spelldialog.cxx
@@ -200,7 +200,12 @@ void ScSpellDialogChildWindow::Init()
ScEditableTester aTester( mpDoc, rMarkData );
if( !aTester.IsEditable() )
{
- mpViewShell->ErrorMessage( aTester.GetMessageId() );
+ // #i85751# Don't show a ErrorMessage here, because the vcl
+ // parent of the InfoBox is not fully initialized yet.
+ // This leads to problems in the modality behaviour of the
+ // ScSpellDialogChildWindow.
+
+ //mpViewShell->ErrorMessage( aTester.GetMessageId() );
return;
}
}
diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx
index 304a858fa21f..750e49ec2334 100644
--- a/sc/source/ui/view/tabview3.cxx
+++ b/sc/source/ui/view/tabview3.cxx
@@ -1423,7 +1423,7 @@ void ScTabView::MarkDataArea( BOOL bIncludeCursor )
SCCOL nEndCol = nStartCol;
SCROW nEndRow = nStartRow;
- pDoc->GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow, bIncludeCursor );
+ pDoc->GetDataArea( nTab, nStartCol, nStartRow, nEndCol, nEndRow, bIncludeCursor, false );
HideAllCursors();
DoneBlockMode();
diff --git a/sc/source/ui/view/tabvwshc.cxx b/sc/source/ui/view/tabvwshc.cxx
index 74a824a709d6..7d1cbb05761b 100644
--- a/sc/source/ui/view/tabvwshc.cxx
+++ b/sc/source/ui/view/tabvwshc.cxx
@@ -175,7 +175,7 @@ SfxModelessDialog* ScTabViewShell::CreateRefDialog(
SCITEM_QUERYDATA,
SCITEM_QUERYDATA );
- ScDBData* pDBData = GetDBData();
+ ScDBData* pDBData = GetDBData( TRUE, SC_DB_MAKE, SC_DBSEL_ROW_DOWN);
pDBData->GetQueryParam( aQueryParam );
ScQueryItem aItem( SCITEM_QUERYDATA, GetViewData(), &aQueryParam );
@@ -200,7 +200,7 @@ SfxModelessDialog* ScTabViewShell::CreateRefDialog(
SCITEM_QUERYDATA,
SCITEM_QUERYDATA );
- ScDBData* pDBData = GetDBData();
+ ScDBData* pDBData = GetDBData( TRUE, SC_DB_MAKE, SC_DBSEL_ROW_DOWN);
pDBData->GetQueryParam( aQueryParam );
aArgSet.Put( ScQueryItem( SCITEM_QUERYDATA,
diff --git a/sc/source/ui/view/viewfun5.cxx b/sc/source/ui/view/viewfun5.cxx
index 794ee488afed..9697cae3a57e 100644
--- a/sc/source/ui/view/viewfun5.cxx
+++ b/sc/source/ui/view/viewfun5.cxx
@@ -387,7 +387,7 @@ BOOL ScViewFunc::PasteDataFormat( ULONG nFormatId,
// Creation of database area "Import1" isn't here, but in the DocShell
// slot execute, so it can be added to the undo action
- ScDBData* pDBData = pDocSh->GetDBData( ScRange(nPosX,nPosY,nTab), SC_DB_OLD, FALSE );
+ ScDBData* pDBData = pDocSh->GetDBData( ScRange(nPosX,nPosY,nTab), SC_DB_OLD, SC_DBSEL_KEEP );
String sTarget;
if (pDBData)
sTarget = pDBData->GetName();
diff --git a/sc/util/hidother.src b/sc/util/hidother.src
index 48dfebdf5c2c..ffdb5c329399 100644
--- a/sc/util/hidother.src
+++ b/sc/util/hidother.src
@@ -81,6 +81,7 @@ hidspecial HID_SC_APPEND_NAME { HelpID = HID_SC_APPEND_NAME; };
hidspecial HID_SC_AUTOFMT_NAME { HelpID = HID_SC_AUTOFMT_NAME; };
hidspecial HID_SC_ADD_AUTOFMT { HelpID = HID_SC_ADD_AUTOFMT; };
hidspecial HID_SC_REN_AFMT_NAME { HelpID = HID_SC_REN_AFMT_NAME; };
+hidspecial HID_SC_REN_AFMT_DLG { HelpID = HID_SC_REN_AFMT_DLG; };
hidspecial HID_SC_RENAME_AUTOFMT { HelpID = HID_SC_RENAME_AUTOFMT; };
hidspecial HID_PASSWD_TABLE { HelpID = HID_PASSWD_TABLE; };
hidspecial HID_PASSWD_DOC { HelpID = HID_PASSWD_DOC; };
diff --git a/sc/util/makefile.mk b/sc/util/makefile.mk
index fa1361c9f794..275b3d22548a 100644
--- a/sc/util/makefile.mk
+++ b/sc/util/makefile.mk
@@ -139,7 +139,7 @@ LIB4FILES= \
SHL2TARGET= scd$(DLLPOSTFIX)
SHL2IMPLIB= scdimp
-SHL2VERSIONMAP= scd.map
+SHL2VERSIONMAP=$(SOLARENV)/src/component.map
SHL2DEF=$(MISC)$/$(SHL2TARGET).def
DEF2NAME= $(SHL2TARGET)
@@ -288,7 +288,7 @@ TARGET_VBA=vbaobj
SHL9TARGET=$(TARGET_VBA)$(DLLPOSTFIX).uno
SHL9IMPLIB= i$(TARGET_VBA)
-SHL9VERSIONMAP=$(TARGET_VBA).map
+SHL9VERSIONMAP=$(SOLARENV)/src/component.map
SHL9DEF=$(MISC)$/$(SHL9TARGET).def
DEF9NAME=$(SHL9TARGET)
.IF "$(VBA_EXTENSION)"=="YES"
diff --git a/sc/util/sc.map b/sc/util/sc.map
deleted file mode 100644
index bfd1401a7685..000000000000
--- a/sc/util/sc.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SC_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/sc/util/scd.map b/sc/util/scd.map
deleted file mode 100644
index bfd1401a7685..000000000000
--- a/sc/util/scd.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SC_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/sc/util/scfilt.map b/sc/util/scfilt.map
index 589736f24eb1..642b8db15088 100644
--- a/sc/util/scfilt.map
+++ b/sc/util/scfilt.map
@@ -1,4 +1,4 @@
-SCFILT_1_0 {
+UDK_3_0_0 {
global:
ScFilterCreate;
local:
diff --git a/sc/util/scui.map b/sc/util/scui.map
index f40bd255fe1d..ad5e33836c7c 100644
--- a/sc/util/scui.map
+++ b/sc/util/scui.map
@@ -1,4 +1,4 @@
-SWUI_1_0 {
+UDK_3_0_0 {
global:
CreateDialogFactory;
local:
diff --git a/sc/util/vbaobj.map b/sc/util/vbaobj.map
deleted file mode 100644
index 737cddbfe3df..000000000000
--- a/sc/util/vbaobj.map
+++ /dev/null
@@ -1,9 +0,0 @@
-OOO_1.1 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/scaddins/source/analysis/exports.map b/scaddins/source/analysis/exports.map
deleted file mode 100644
index 50dda088ac94..000000000000
--- a/scaddins/source/analysis/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-SC_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
-
- local:
- *;
-};
-
diff --git a/scaddins/source/analysis/makefile.mk b/scaddins/source/analysis/makefile.mk
index c476b1b32d72..d837d644dc21 100644
--- a/scaddins/source/analysis/makefile.mk
+++ b/scaddins/source/analysis/makefile.mk
@@ -109,7 +109,7 @@ SHL1STDLIBS= \
SHL1DEPN=makefile.mk
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/scaddins/source/datefunc/exports.map b/scaddins/source/datefunc/exports.map
deleted file mode 100644
index 50dda088ac94..000000000000
--- a/scaddins/source/datefunc/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-SC_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
-
- local:
- *;
-};
-
diff --git a/scaddins/source/datefunc/makefile.mk b/scaddins/source/datefunc/makefile.mk
index 5dd90bae6a4f..8a2805d76f7d 100644
--- a/scaddins/source/datefunc/makefile.mk
+++ b/scaddins/source/datefunc/makefile.mk
@@ -96,7 +96,7 @@ SHL1STDLIBS= \
SHL1DEPN=makefile.mk
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/sccomp/source/solver/exports.map b/sccomp/source/solver/exports.map
deleted file mode 100644
index fe0280ec6c21..000000000000
--- a/sccomp/source/solver/exports.map
+++ /dev/null
@@ -1,9 +0,0 @@
-SOLVER_1_0 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/sccomp/source/solver/makefile.mk b/sccomp/source/solver/makefile.mk
index fc186ad61c1a..6b25f60c8762 100644
--- a/sccomp/source/solver/makefile.mk
+++ b/sccomp/source/solver/makefile.mk
@@ -60,7 +60,7 @@ SHL1STDLIBS= $(COMPHELPERLIB) \
SHL1DEPN= makefile.mk
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP= exports.map
+SHL1VERSIONMAP= $(SOLARENV)/src/component.map
DEF1NAME= $(SHL1TARGET)
# --- Resources --------------------------------
diff --git a/scp2/source/calc/file_calc.scp b/scp2/source/calc/file_calc.scp
index 7b392f173378..aaba3cd6c2ab 100644
--- a/scp2/source/calc/file_calc.scp
+++ b/scp2/source/calc/file_calc.scp
@@ -49,11 +49,11 @@ STD_UNO_LIB_FILE( gid_File_Lib_Calc, calc)
STD_UNO_LIB_FILE( gid_File_Lib_Date, date)
-STD_UNO_LIB_FILE( gid_File_Lib_Sc, sc)
+STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Sc, sc)
-STD_LIB_FILE( gid_File_Lib_Scui, scui)
+STD_LIB_FILE_PATCH( gid_File_Lib_Scui, scui)
-STD_LIB_FILE( gid_File_Lib_Scfilt, scfilt)
+STD_LIB_FILE_PATCH( gid_File_Lib_Scfilt, scfilt)
STD_UNO_LIB_FILE( gid_File_Lib_Scd, scd)
diff --git a/scp2/source/calc/module_calc.scp b/scp2/source/calc/module_calc.scp
index 84ab326814ee..0c26c3a7a78b 100644
--- a/scp2/source/calc/module_calc.scp
+++ b/scp2/source/calc/module_calc.scp
@@ -89,4 +89,13 @@ Module gid_Module_Langpack_Calc_Template
gid_File_Res_Solver);
End
+Module gid_Module_Prg_Calc_MSO_Reg
+ ParentID = gid_Module_Prg_Calc;
+ Name = "gid_Module_Prg_Calc_MSO_Reg";
+ Description = "gid_Module_Prg_Calc_MSO_Reg";
+ Styles = (HIDDEN_ROOT);
+ Minimal = YES;
+ Default = YES;
+End
+
#include "alllangmodules_calc.inc"
diff --git a/scp2/source/calc/registryitem_calc.scp b/scp2/source/calc/registryitem_calc.scp
index e2504579e0a0..efc71ac73f63 100644
--- a/scp2/source/calc/registryitem_calc.scp
+++ b/scp2/source/calc/registryitem_calc.scp
@@ -1110,11 +1110,11 @@ REGISTER_PROPERTY_HANDLER_FOR_EXTENSION( stc )
// registering the mso file types
-CONDITIONAL_REGISTER_DOC_EXTENSION( Xls, gid_Module_Prg_Calc_Bin, xls, XLS, MS_EXCEL_WORKSHEET_OLD, 29, scalc.exe, open, Calc )
-CONDITIONAL_REGISTER_DOC_EXTENSION( Xlsx, gid_Module_Prg_Calc_Bin, xlsx, XLSX, MS_EXCEL_WORKSHEET, 29, scalc.exe, open, Calc )
-CONDITIONAL_REGISTER_DOC_EXTENSION( Xlsm, gid_Module_Prg_Calc_Bin, xlsm, XLSM, MS_EXCEL_WORKSHEET, 29, scalc.exe, open, Calc )
-CONDITIONAL_REGISTER_DOC_EXTENSION( Xlsb, gid_Module_Prg_Calc_Bin, xlsb, XLSB, MS_EXCEL_WORKSHEET, 29, scalc.exe, open, Calc )
-CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Xlt, gid_Module_Prg_Calc_Bin, xlt, XLT, MS_EXCEL_TEMPLATE_OLD, 30, scalc.exe, new, Calc )
-CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Xltx, gid_Module_Prg_Calc_Bin, xltx, XLTX, MS_EXCEL_TEMPLATE, 30, scalc.exe, new, Calc )
-CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Xltm, gid_Module_Prg_Calc_Bin, xltm, XLTM, MS_EXCEL_TEMPLATE, 30, scalc.exe, new, Calc )
+CONDITIONAL_REGISTER_DOC_EXTENSION( Xls, gid_Module_Prg_Calc_MSO_Reg, xls, XLS, MS_EXCEL_WORKSHEET_OLD, 29, scalc.exe, open, Calc )
+CONDITIONAL_REGISTER_DOC_EXTENSION( Xlsx, gid_Module_Prg_Calc_MSO_Reg, xlsx, XLSX, MS_EXCEL_WORKSHEET, 29, scalc.exe, open, Calc )
+CONDITIONAL_REGISTER_DOC_EXTENSION( Xlsm, gid_Module_Prg_Calc_MSO_Reg, xlsm, XLSM, MS_EXCEL_WORKSHEET, 29, scalc.exe, open, Calc )
+CONDITIONAL_REGISTER_DOC_EXTENSION( Xlsb, gid_Module_Prg_Calc_MSO_Reg, xlsb, XLSB, MS_EXCEL_WORKSHEET, 29, scalc.exe, open, Calc )
+CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Xlt, gid_Module_Prg_Calc_MSO_Reg, xlt, XLT, MS_EXCEL_TEMPLATE_OLD, 30, scalc.exe, new, Calc )
+CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Xltx, gid_Module_Prg_Calc_MSO_Reg, xltx, XLTX, MS_EXCEL_TEMPLATE, 30, scalc.exe, new, Calc )
+CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Xltm, gid_Module_Prg_Calc_MSO_Reg, xltm, XLTM, MS_EXCEL_TEMPLATE, 30, scalc.exe, new, Calc )
diff --git a/scp2/source/calc/registryitem_calc.ulf b/scp2/source/calc/registryitem_calc.ulf
index 2f6e1e8eda9a..da0739ee1756 100644
--- a/scp2/source/calc/registryitem_calc.ulf
+++ b/scp2/source/calc/registryitem_calc.ulf
@@ -29,10 +29,10 @@
en-US = "&New"
[STR_REG_VAL_SO60_SPREADSHEET]
-en-US = "%PRODUCTNAME %SXWFORMATVERSION Spreadsheet"
+en-US = "%SXWFORMATNAME %SXWFORMATVERSION Spreadsheet"
[STR_REG_VAL_SO60_CALC_TEMPLATE]
-en-US = "%PRODUCTNAME %SXWFORMATVERSION Spreadsheet Template"
+en-US = "%SXWFORMATNAME %SXWFORMATVERSION Spreadsheet Template"
[STR_REG_VAL_OO_CALC]
en-US = "OpenDocument Spreadsheet"
diff --git a/scp2/source/draw/registryitem_draw.ulf b/scp2/source/draw/registryitem_draw.ulf
index 46224625dfb8..7e6bce29fa21 100644
--- a/scp2/source/draw/registryitem_draw.ulf
+++ b/scp2/source/draw/registryitem_draw.ulf
@@ -29,10 +29,10 @@
en-US = "&New"
[STR_REG_VAL_SO60_DRAWING]
-en-US = "%PRODUCTNAME %SXWFORMATVERSION Drawing"
+en-US = "%SXWFORMATNAME %SXWFORMATVERSION Drawing"
[STR_REG_VAL_SO60_DRAW_TEMPLATE]
-en-US = "%PRODUCTNAME %SXWFORMATVERSION Drawing Template"
+en-US = "%SXWFORMATNAME %SXWFORMATVERSION Drawing Template"
[STR_REG_VAL_OO_DRAW]
en-US = "OpenDocument Drawing"
diff --git a/scp2/source/impress/module_impress.scp b/scp2/source/impress/module_impress.scp
index 7f8bcb7c44f7..1682b88d051f 100644
--- a/scp2/source/impress/module_impress.scp
+++ b/scp2/source/impress/module_impress.scp
@@ -77,4 +77,13 @@ Module gid_Module_Langpack_Impress_Template
Files = (gid_File_Help_Simpress_Zip);
End
+Module gid_Module_Prg_Impress_MSO_Reg
+ ParentID = gid_Module_Prg_Impress;
+ Name = "gid_Module_Prg_Impress_MSO_Reg";
+ Description = "gid_Module_Prg_Impress_MSO_Reg";
+ Styles = (HIDDEN_ROOT);
+ Minimal = YES;
+ Default = YES;
+End
+
#include "alllangmodules_impress.inc"
diff --git a/scp2/source/impress/registryitem_impress.scp b/scp2/source/impress/registryitem_impress.scp
index 689dcd7e1526..cce7f1d85ad3 100644
--- a/scp2/source/impress/registryitem_impress.scp
+++ b/scp2/source/impress/registryitem_impress.scp
@@ -975,10 +975,10 @@ REGISTER_PROPERTY_HANDLER_FOR_EXTENSION( sti )
// registering the mso file types
-CONDITIONAL_REGISTER_DOC_EXTENSION( Ppt, gid_Module_Prg_Impress_Bin, ppt, PPT, MS_POWERPOINT_PRESENTATION_OLD, 33, simpress.exe, open, Impress )
-CONDITIONAL_REGISTER_DOC_EXTENSION( Pps, gid_Module_Prg_Impress_Bin, pps, PPS, MS_POWERPOINT_SHOW, 33, simpress.exe, open, Impress )
-CONDITIONAL_REGISTER_DOC_EXTENSION( Pptx, gid_Module_Prg_Impress_Bin, pptx, PPTX, MS_POWERPOINT_PRESENTATION, 33, simpress.exe, open, Impress )
-CONDITIONAL_REGISTER_DOC_EXTENSION( Pptm, gid_Module_Prg_Impress_Bin, pptm, PPTM, MS_POWERPOINT_PRESENTATION, 33, simpress.exe, open, Impress )
-CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Pot, gid_Module_Prg_Impress_Bin, pot, POT, MS_POWERPOINT_TEMPLATE_OLD, 34, simpress.exe, new, Impress )
-CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Potx, gid_Module_Prg_Impress_Bin, potx, POTX, MS_POWERPOINT_TEMPLATE, 34, simpress.exe, new, Impress )
-CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Potm, gid_Module_Prg_Impress_Bin, potm, POTM, MS_POWERPOINT_TEMPLATE, 34, simpress.exe, new, Impress )
+CONDITIONAL_REGISTER_DOC_EXTENSION( Ppt, gid_Module_Prg_Impress_MSO_Reg, ppt, PPT, MS_POWERPOINT_PRESENTATION_OLD, 33, simpress.exe, open, Impress )
+CONDITIONAL_REGISTER_DOC_EXTENSION( Pps, gid_Module_Prg_Impress_MSO_Reg, pps, PPS, MS_POWERPOINT_SHOW, 33, simpress.exe, open, Impress )
+CONDITIONAL_REGISTER_DOC_EXTENSION( Pptx, gid_Module_Prg_Impress_MSO_Reg, pptx, PPTX, MS_POWERPOINT_PRESENTATION, 33, simpress.exe, open, Impress )
+CONDITIONAL_REGISTER_DOC_EXTENSION( Pptm, gid_Module_Prg_Impress_MSO_Reg, pptm, PPTM, MS_POWERPOINT_PRESENTATION, 33, simpress.exe, open, Impress )
+CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Pot, gid_Module_Prg_Impress_MSO_Reg, pot, POT, MS_POWERPOINT_TEMPLATE_OLD, 34, simpress.exe, new, Impress )
+CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Potx, gid_Module_Prg_Impress_MSO_Reg, potx, POTX, MS_POWERPOINT_TEMPLATE, 34, simpress.exe, new, Impress )
+CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Potm, gid_Module_Prg_Impress_MSO_Reg, potm, POTM, MS_POWERPOINT_TEMPLATE, 34, simpress.exe, new, Impress )
diff --git a/scp2/source/impress/registryitem_impress.ulf b/scp2/source/impress/registryitem_impress.ulf
index 2b49957ea470..0221ab122d52 100644
--- a/scp2/source/impress/registryitem_impress.ulf
+++ b/scp2/source/impress/registryitem_impress.ulf
@@ -32,10 +32,10 @@ en-US = "&New"
en-US = "Show"
[STR_REG_VAL_SO60_PRESENT]
-en-US = "%PRODUCTNAME %SXWFORMATVERSION Presentation"
+en-US = "%SXWFORMATNAME %SXWFORMATVERSION Presentation"
[STR_REG_VAL_SO60_IMPRESS_TEMPLATE]
-en-US = "%PRODUCTNAME %SXWFORMATVERSION Presentation Template"
+en-US = "%SXWFORMATNAME %SXWFORMATVERSION Presentation Template"
[STR_REG_VAL_OO_PRESENT]
en-US = "OpenDocument Presentation"
diff --git a/scp2/source/math/registryitem_math.ulf b/scp2/source/math/registryitem_math.ulf
index cee55d76d3c8..c7cfb663f369 100644
--- a/scp2/source/math/registryitem_math.ulf
+++ b/scp2/source/math/registryitem_math.ulf
@@ -29,7 +29,7 @@
en-US = "&New"
[STR_REG_VAL_SO60_FORMULA]
-en-US = "%PRODUCTNAME %SXWFORMATVERSION Formula"
+en-US = "%SXWFORMATNAME %SXWFORMATVERSION Formula"
[STR_REG_VAL_OO_FORMULA]
en-US = "OpenDocument Formula"
diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp
index 9be400ed2d39..f2f305181786 100644
--- a/scp2/source/ooo/common_brand.scp
+++ b/scp2/source/ooo/common_brand.scp
@@ -84,6 +84,7 @@ Module gid_Module_Root_Brand
gid_Brand_File_Lib_Npsoplugin,
gid_Brand_File_Lib_Subscrib_C05,
gid_Brand_File_Share_Registry_Brand_Xcd,
+ gid_Brand_File_Share_Registry_O5oo_Xcd
gid_Brand_File_Script_Unopkg,
gid_Brand_File_Share_Xdg_Base,
gid_Brand_File_Share_Xdg_Calc,
diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp
index 4a39b5da4978..400baaa5ef04 100755..100644
--- a/scp2/source/ooo/file_library_ooo.scp
+++ b/scp2/source/ooo/file_library_ooo.scp
@@ -1,5 +1,5 @@
-*************************************************************************
-*
+/*************************************************************************
+ *
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
@@ -23,7 +23,7 @@
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
-************************************************************************/
+ ************************************************************************/
#include "macros.inc"
#ifdef WNT
@@ -653,7 +653,7 @@ STD_LIB_FILE( gid_File_Lib_Fwi , fwi)
File gid_File_Lib_Fwk
Name = LIBNAME(fwk);
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED,PATCH,UNO_COMPONENT);
Dir = SCP2_OOO_BIN_DIR;
RegistryID = gid_Starregistry_Services_Rdb;
End
@@ -677,7 +677,7 @@ STD_LIB_FILE( gid_File_Lib_Helplinker, helplinker)
File gid_File_Lib_I18npool
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED,PATCH,UNO_COMPONENT);
RegistryID = gid_Starregistry_Services_Rdb;
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
@@ -1325,7 +1325,7 @@ STD_UNO_LIB_FILE( gid_File_Lib_Sf_Prothdlr, protocolhandler )
File gid_File_Lib_Sfx
Name = LIBNAME(sfx);
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED,PATCH,UNO_COMPONENT);
Dir = SCP2_OOO_BIN_DIR;
RegistryID = gid_Starregistry_Services_Rdb;
End
@@ -1381,7 +1381,7 @@ SPECIAL_UNO_LIB_FILE(gid_File_Lib_Srtrs1,srtrs1)
STD_LIB_FILE( gid_File_Lib_Sts , sts)
STD_UNO_LIB_FILE( gid_File_Lib_Svl, svl )
-STD_UNO_LIB_FILE( gid_File_Lib_Svtools, svt )
+STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Svtools, svt )
STD_LIB_FILE( gid_File_Lib_Svx_Core, svxcore)
STD_UNO_LIB_FILE( gid_File_Lib_Svx, svx)
@@ -1390,10 +1390,10 @@ STD_LIB_FILE( gid_File_Lib_Editeng, editeng)
STD_LIB_FILE( gid_File_Lib_Msfilter, msfilter)
-STD_UNO_LIB_FILE( gid_File_Lib_Sw , sw)
-STD_LIB_FILE( gid_File_Lib_Swui, swui)
+STD_UNO_LIB_FILE_PATCH( gid_File_Lib_Sw , sw)
+STD_LIB_FILE_PATCH( gid_File_Lib_Swui, swui)
-STD_LIB_FILE( gid_File_Lib_Msword, msword )
+STD_LIB_FILE_PATCH( gid_File_Lib_Msword, msword )
#if ! defined UNX
File gid_File_Lib_Sysdtrans
@@ -1537,7 +1537,7 @@ STD_UNO_LIB_FILE( gid_File_Lib_Xof , xof)
File gid_File_Lib_Xo
Name = LIBNAME(xo);
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED,PATCH,UNO_COMPONENT);
Dir = SCP2_OOO_BIN_DIR;
RegistryID = gid_Starregistry_Services_Rdb;
End
@@ -1698,7 +1698,7 @@ File gid_File_Lib_Openssl
TXT_FILE_BODY;
Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
- #ifdef WNT
+ #ifdef WNT
Name = "ssleay32.dll";
#endif
End
@@ -1709,7 +1709,7 @@ File gid_File_Lib_Crypto
TXT_FILE_BODY;
Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
-
+
#ifdef WNT
Name = "libeay32.dll";
#endif
diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
index 94f9bb6e4450..19a15f7fcc11 100755
--- a/scp2/source/ooo/file_ooo.scp
+++ b/scp2/source/ooo/file_ooo.scp
@@ -2100,7 +2100,7 @@ End
File gid_File_Extension_Dictionary_Sl
Dir = gid_Brand_Dir_Share_Extension_Install;
Name = "dict-sl.oxt";
- Styles = (PACKED, FORCELANGUAGEPACK);
+ Styles = (PACKED, PATCH, FORCELANGUAGEPACK);
UnixRights = 444;
End
#endif
diff --git a/scp2/source/ooo/installation_ooo.scp b/scp2/source/ooo/installation_ooo.scp
index 8b045bb440c2..26bdc09eddd3 100644
--- a/scp2/source/ooo/installation_ooo.scp
+++ b/scp2/source/ooo/installation_ooo.scp
@@ -34,6 +34,7 @@ Installation gid_Installation_Ooo
OOoBaseVersion = "${OOOBASEVERSION}";
UserDirProductVersion = "${USERDIRPRODUCTVERSION}";
JavaVersion = "${JAVAVERSION}";
+ SxwFormatName = "OpenOffice.org";
SxwFormatVersion = "1.1";
VendorName = "OpenOffice.org";
#ifdef WNT
diff --git a/scp2/source/ooo/registryitem_ooo.scp b/scp2/source/ooo/registryitem_ooo.scp
index 5d8673ef9855..47a053f225cd 100644
--- a/scp2/source/ooo/registryitem_ooo.scp
+++ b/scp2/source/ooo/registryitem_ooo.scp
@@ -34,11 +34,18 @@ RegistryItem gid_Regitem_Bau
Value = "soffice.StarConfigFile.6";
End
-RegistryItem gid_Regitem_AppID__df595024_3257_41b3_bcf1_a51515ad205e
+RegistryItem gid_Regitem_AppID__df595024_3257_41b3_bcf1_a51515ad205e_
ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
Subkey = "AppID\{82154420-0FBF-11d4-8313-005004526AB4}";
ModuleID = gid_Module_Root;
- Value = "%PRODUCTNAME Service Manager";
+ Value = "%PRODUCTNAME Service Manager (Ver 1.0)";
+End
+
+RegistryItem gid_Regitem_AppID__df595024_3257_41b3_bcf1_a51515ad205e_soffice
+ ParentID = PREDEFINED_HKEY_CLASSES_ROOT;
+ Subkey = "AppID\soffice.exe";
+ ModuleID = gid_Module_Root;
+ Value = "%PRODUCTNAME Service Manager (Ver 1.0)";
End
RegistryItem gid_Regitem_Clsid__3ecf78f0_B1_11d2_8ebe_005ad848af_
diff --git a/scp2/source/ooo/registryitem_ooo.ulf b/scp2/source/ooo/registryitem_ooo.ulf
index cbb57ef56d98..d37db89c113a 100644
--- a/scp2/source/ooo/registryitem_ooo.ulf
+++ b/scp2/source/ooo/registryitem_ooo.ulf
@@ -32,7 +32,7 @@ en-US = "&New"
en-US = "&Install"
[STR_REG_VAL_SO60_CONFIGFILE]
-en-US = "%PRODUCTNAME %SXWFORMATVERSION Configuration File"
+en-US = "%SXWFORMATNAME %SXWFORMATVERSION Configuration File"
[STR_REG_VAL_SO50_TEMPLATE_OOO]
en-US = "StarOffice 5.0 Template"
diff --git a/scp2/source/ooo/windowscustomaction_ooo.scp b/scp2/source/ooo/windowscustomaction_ooo.scp
index b69082b05cd5..9228b5cd711c 100755
--- a/scp2/source/ooo/windowscustomaction_ooo.scp
+++ b/scp2/source/ooo/windowscustomaction_ooo.scp
@@ -51,7 +51,7 @@ WindowsCustomAction gid_Customaction_Regallmsdocdll
Source = "reg4allmsdoc.dll";
Target = "FindRegisteredExtensions";
Inbinarytable = 1;
- Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\" And Not PATCH", "CostFinalize");
+ Assignment1 = ("InstallExecuteSequence", "Not REMOVE=\"ALL\" And Not PATCH And _IsSetupTypeMin<>\"Custom\"", "CostFinalize");
End
WindowsCustomAction gid_Customaction_Regactivexdll1
@@ -516,3 +516,21 @@ WindowsCustomAction gid_Customaction_ShowSurvey
Inbinarytable = 1;
Assignment1 = ("InstallExecuteSequence", "REMOVE=\"ALL\" and Not UPGRADINGPRODUCTCODE", "end");
End
+
+WindowsCustomAction gid_Customaction_LookForRegisteredExtensions
+ Name = "LookForRegisteredExtensions";
+ Typ = "65";
+ Source = "reg4allmsdoc.dll";
+ Target = "LookForRegisteredExtensions";
+ Inbinarytable = 1;
+ Assignment1 = ("ControlEvent", "CustomSetup", "Next", "DoAction", "LookForRegisteredExtensions", "1", "2");
+End
+
+WindowsCustomAction gid_Customaction_RegisterSomeExtensions
+ Name = "RegisterSomeExtensions";
+ Typ = "65";
+ Source = "reg4allmsdoc.dll";
+ Target = "RegisterSomeExtensions";
+ Inbinarytable = 1;
+ Assignment1 = ("ControlEvent", "FileTypeDialog", "Next", "DoAction", "RegisterSomeExtensions", "1", "1");
+End
diff --git a/scp2/source/writer/module_writer.scp b/scp2/source/writer/module_writer.scp
index 16928c8b25b9..0d959dd3f86b 100644
--- a/scp2/source/writer/module_writer.scp
+++ b/scp2/source/writer/module_writer.scp
@@ -92,5 +92,15 @@ Module gid_Module_Langpack_Writer_Template
gid_File_Res_T602Filter);
End
+Module gid_Module_Prg_Wrt_MSO_Reg
+ ParentID = gid_Module_Prg_Wrt;
+ Name = "gid_Module_Prg_Wrt_MSO_Reg";
+ Description = "gid_Module_Prg_Wrt_MSO_Reg";
+ Styles = (HIDDEN_ROOT);
+ Minimal = YES;
+ Default = YES;
+End
+
+
#include "alllangmodules_writer.inc"
diff --git a/scp2/source/writer/registryitem_writer.scp b/scp2/source/writer/registryitem_writer.scp
index a1233bb1792f..8c3f0a5b82ad 100644
--- a/scp2/source/writer/registryitem_writer.scp
+++ b/scp2/source/writer/registryitem_writer.scp
@@ -1488,11 +1488,11 @@ REGISTER_PROPERTY_HANDLER_FOR_EXTENSION( sxg )
// registering the mso file types
// CONDITIONAL_REGISTER_DOC_EXTENSION(name,modid, key, cond, disp_name, icon_id, app, default, dox_type)
-CONDITIONAL_REGISTER_DOC_EXTENSION( Doc, gid_Module_Prg_Wrt_Bin, doc, DOC, MS_WORD_DOCUMENT_OLD, 27, swriter.exe, open, Writer )
-CONDITIONAL_REGISTER_DOC_EXTENSION( Docx, gid_Module_Prg_Wrt_Bin, docx, DOCX, MS_WORD_DOCUMENT, 27, swriter.exe, open, Writer )
-CONDITIONAL_REGISTER_DOC_EXTENSION( Docm, gid_Module_Prg_Wrt_Bin, docm, DOCM, MS_WORD_DOCUMENT, 27, swriter.exe, open, Writer )
-CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Dot, gid_Module_Prg_Wrt_Bin, dot, DOT, MS_WORD_TEMPLATE_OLD, 28, swriter.exe, new, Writer )
-CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Dotx, gid_Module_Prg_Wrt_Bin, dotx, DOTX, MS_WORD_TEMPLATE, 28, swriter.exe, new, Writer )
-CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Dotm, gid_Module_Prg_Wrt_Bin, dotm, DOTM, MS_WORD_TEMPLATE, 28, swriter.exe, new, Writer )
-CONDITIONAL_REGISTER_DOC_EXTENSION( Rtf, gid_Module_Prg_Wrt_Bin, rtf, RTF, MS_RTF_DOCUMENT, 27, swriter.exe, open, Writer )
+CONDITIONAL_REGISTER_DOC_EXTENSION( Doc, gid_Module_Prg_Wrt_MSO_Reg, doc, DOC, MS_WORD_DOCUMENT_OLD, 27, swriter.exe, open, Writer )
+CONDITIONAL_REGISTER_DOC_EXTENSION( Docx, gid_Module_Prg_Wrt_MSO_Reg, docx, DOCX, MS_WORD_DOCUMENT, 27, swriter.exe, open, Writer )
+CONDITIONAL_REGISTER_DOC_EXTENSION( Docm, gid_Module_Prg_Wrt_MSO_Reg, docm, DOCM, MS_WORD_DOCUMENT, 27, swriter.exe, open, Writer )
+CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Dot, gid_Module_Prg_Wrt_MSO_Reg, dot, DOT, MS_WORD_TEMPLATE_OLD, 28, swriter.exe, new, Writer )
+CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Dotx, gid_Module_Prg_Wrt_MSO_Reg, dotx, DOTX, MS_WORD_TEMPLATE, 28, swriter.exe, new, Writer )
+CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Dotm, gid_Module_Prg_Wrt_MSO_Reg, dotm, DOTM, MS_WORD_TEMPLATE, 28, swriter.exe, new, Writer )
+CONDITIONAL_REGISTER_DOC_EXTENSION( Rtf, gid_Module_Prg_Wrt_MSO_Reg, rtf, RTF, MS_RTF_DOCUMENT, 27, swriter.exe, open, Writer )
diff --git a/scp2/source/writer/registryitem_writer.ulf b/scp2/source/writer/registryitem_writer.ulf
index ce8108ae572d..f353df21d9cc 100644
--- a/scp2/source/writer/registryitem_writer.ulf
+++ b/scp2/source/writer/registryitem_writer.ulf
@@ -29,13 +29,13 @@
en-US = "&New"
[STR_REG_VAL_SO60_TEXT]
-en-US = "%PRODUCTNAME %SXWFORMATVERSION Text Document"
+en-US = "%SXWFORMATNAME %SXWFORMATVERSION Text Document"
[STR_REG_VAL_SO60_MASTERDOC]
-en-US = "%PRODUCTNAME %SXWFORMATVERSION Master Document"
+en-US = "%SXWFORMATNAME %SXWFORMATVERSION Master Document"
[STR_REG_VAL_SO60_WRITER_TEMPLATE]
-en-US = "%PRODUCTNAME %SXWFORMATVERSION Text Document Template"
+en-US = "%SXWFORMATNAME %SXWFORMATVERSION Text Document Template"
[STR_REG_VAL_OO_WRITER]
en-US = "OpenDocument Text"
diff --git a/scripting/source/basprov/basprov.map b/scripting/source/basprov/basprov.map
deleted file mode 100644
index 737cddbfe3df..000000000000
--- a/scripting/source/basprov/basprov.map
+++ /dev/null
@@ -1,9 +0,0 @@
-OOO_1.1 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/scripting/source/basprov/makefile.mk b/scripting/source/basprov/makefile.mk
index 1555a74926e2..5001e5db288e 100644
--- a/scripting/source/basprov/makefile.mk
+++ b/scripting/source/basprov/makefile.mk
@@ -50,7 +50,7 @@ SLOFILES= \
SHL1TARGET= $(TARGET)$(DLLPOSTFIX).uno
SHL1IMPLIB= i$(TARGET)
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/scripting/source/dlgprov/dlgprov.map b/scripting/source/dlgprov/dlgprov.map
deleted file mode 100644
index 737cddbfe3df..000000000000
--- a/scripting/source/dlgprov/dlgprov.map
+++ /dev/null
@@ -1,9 +0,0 @@
-OOO_1.1 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/scripting/source/dlgprov/makefile.mk b/scripting/source/dlgprov/makefile.mk
index 0ad861d5c281..455423412784 100644
--- a/scripting/source/dlgprov/makefile.mk
+++ b/scripting/source/dlgprov/makefile.mk
@@ -46,7 +46,7 @@ SLOFILES= \
SHL1TARGET= $(TARGET)$(DLLPOSTFIX).uno
SHL1IMPLIB= i$(TARGET)
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/scripting/source/stringresource/makefile.mk b/scripting/source/stringresource/makefile.mk
index afb07fddfa2f..dfc2d1979190 100644
--- a/scripting/source/stringresource/makefile.mk
+++ b/scripting/source/stringresource/makefile.mk
@@ -44,7 +44,7 @@ SLOFILES= \
SHL1TARGET= $(TARGET)$(DLLPOSTFIX).uno
SHL1IMPLIB= i$(TARGET)
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/scripting/source/stringresource/stringresource.map b/scripting/source/stringresource/stringresource.map
deleted file mode 100644
index 737cddbfe3df..000000000000
--- a/scripting/source/stringresource/stringresource.map
+++ /dev/null
@@ -1,9 +0,0 @@
-OOO_1.1 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/scripting/source/vbaevents/makefile.mk b/scripting/source/vbaevents/makefile.mk
index 227da45f9f08..1946c61d1e0b 100755..100644
--- a/scripting/source/vbaevents/makefile.mk
+++ b/scripting/source/vbaevents/makefile.mk
@@ -60,7 +60,7 @@ SLOFILES= \
SHL1TARGET= $(TARGET)$(DLLPOSTFIX).uno
SHL1IMPLIB= i$(TARGET)
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/scripting/source/vbaevents/vbaevents.map b/scripting/source/vbaevents/vbaevents.map
deleted file mode 100755
index 737cddbfe3df..000000000000
--- a/scripting/source/vbaevents/vbaevents.map
+++ /dev/null
@@ -1,9 +0,0 @@
-OOO_1.1 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/sd/prj/build.lst b/sd/prj/build.lst
index bc8bf923f7e5..87204261b200 100755
--- a/sd/prj/build.lst
+++ b/sd/prj/build.lst
@@ -44,3 +44,4 @@ sd sd\source\ui\framework\factories nmake - all sd_framework_factories sd
sd sd\source\ui\framework\tools nmake - all sd_framework_tools sd_inc NULL
sd sd\source\ui\annotations nmake - all sd_uiannotations sd_inc NULL
sd sd\util nmake - all sd_util sd_app sd_cgm sd_core sd_dlg sd_docsh sd_eppt sd_filt sd_func sd_grf sd_unid sd_view sd_xml sd_html sd_ppt sd_accessibility sd_animations sd_toolpanel sd_toolpanel_controls sd_tools sd_slsshell sd_slsmodel sd_slsview sd_slscontroller sd_slscache sd_notes sd_table sd_slideshow sd_presenter sd_undo sd_helper sd_framework_configuration sd_framework_module sd_framework_tools sd_framework_factories sd_text sd_annotations sd_uiannotations NULL
+sd sd\qa\unoapi nmake - all sd_qa_unoapi NULL
diff --git a/sd/prj/make.bat b/sd/prj/make.bat
deleted file mode 100644
index 7525d0a51632..000000000000
--- a/sd/prj/make.bat
+++ /dev/null
@@ -1,92 +0,0 @@
-@echo off
-REM *****************************************************************
-REM * MAKE
-REM * (c) Copyright 1992-1994 STAR DIVISION
-REM * Beschreibung: Uebersetzt aktuelle Version
-REM * Aufruf: MAKE [Option1 .. OptionN]
-REM * Optionen: PRODUCT - Product-Version (FULL)
-REM * DEMO - Product-Version (DEMO)
-REM * DEPEND - Depend-Listen erzeugen
-REM * OPTIMIZE - Version mit Optimierung
-REM * DEBUG - Version mit Debuginformationen
-REM * PROFILE - Version fuer Profiling
-REM * DBGUITL - Version mit Assertions
-REM * ESO: PCH - Precompiled Header verwenden
-REM *****************************************************************
-
-IF "%1" == "" goto Next
-
-set STEMPFILE=%temp%\temp.mak
-echo. >%STEMPFILE%
-set MAKECMD=@%STEMPFILE%
-
-REM *** Parameter parsen ***
-:Loop
-
-IF "%1" == "" goto Next
-
-IF "%1" == "product" echo product=full >>%STEMPFILE%
-IF "%1" == "Product" echo product=full >>%STEMPFILE%
-IF "%1" == "PRODUCT" echo product=full >>%STEMPFILE%
-
-IF "%1" == "demo" echo product=demo >>%STEMPFILE%
-IF "%1" == "Demo" echo product=demo >>%STEMPFILE%
-IF "%1" == "DEMO" echo product=demo >>%STEMPFILE%
-
-IF "%1" == "depend" echo depend=true >>%STEMPFILE%
-IF "%1" == "Depend" echo depend=true >>%STEMPFILE%
-IF "%1" == "DEPEND" echo depend=true >>%STEMPFILE%
-
-IF "%1" == "optimize" echo optimize=true >>%STEMPFILE%
-IF "%1" == "Optimize" echo optimize=true >>%STEMPFILE%
-IF "%1" == "OPTIMIZE" echo optimize=true >>%STEMPFILE%
-
-IF "%1" == "debug" echo debug=true >>%STEMPFILE%
-IF "%1" == "Debug" echo debug=true >>%STEMPFILE%
-IF "%1" == "DEBUG" echo debug=true >>%STEMPFILE%
-
-IF "%1" == "profile" echo product=full profile=true >>%STEMPFILE%
-IF "%1" == "Profile" echo product=full profile=true >>%STEMPFILE%
-IF "%1" == "PROFILE" echo product=full profile=true >>%STEMPFILE%
-
-IF "%1" == "dbgutil" echo dbgutil=true >>%STEMPFILE%
-IF "%1" == "Dbgutil" echo dbgutil=true >>%STEMPFILE%
-IF "%1" == "DBGUTIL" echo dbgutil=true >>%STEMPFILE%
-
-IF "%1" == "seg" echo product=full seg=true >>%STEMPFILE%
-IF "%1" == "Seg" echo product=full seg=true >>%STEMPFILE%
-IF "%1" == "SEG" echo product=full seg=true >>%STEMPFILE%
-
-IF "%1" == "tcv" echo product=full tcv=-2000 >>%STEMPFILE%
-IF "%1" == "tcv" echo product=full tcv=-2000 >>%STEMPFILE%
-IF "%1" == "TCV" echo product=full tcv=-2000 >>%STEMPFILE%
-
-IF "%1" == "siz" echo product=full siz=true >>%STEMPFILE%
-IF "%1" == "Siz" echo product=full siz=true >>%STEMPFILE%
-IF "%1" == "SIZ" echo product=full siz=true >>%STEMPFILE%
-
-IF "%1" == "pch" echo prjpch=true >>%STEMPFILE%
-IF "%1" == "Pch" echo prjpch=true >>%STEMPFILE%
-IF "%1" == "PCH" echo prjpch=true >>%STEMPFILE%
-
-IF "%1" == "-i" echo -i >>%STEMPFILE%
-IF "%1" == "-I" echo -i >>%STEMPFILE%
-
-shift
-goto Loop
-
-:Next
-REM *** Kommando setzen ***
-SET STREECMD=nmake %MAKECMD%
-
-REM *** Kommando ausfuehren ***
-echo ******************************************************
-echo MAKE - (c) 1992-1994 STAR DIVISION
-call stree MAKE
-
-REM *** Aufraeumen ***
-IF NOT "%STEMPFILE%" == "" del %STEMPFILE%
-SET STREECMD=
-set STEMPFILE=
-set MAKECMD=
-echo on
diff --git a/sd/prj/postdlv.btm b/sd/prj/postdlv.btm
deleted file mode 100644
index 3db49b3ad126..000000000000
--- a/sd/prj/postdlv.btm
+++ /dev/null
@@ -1,2 +0,0 @@
-quit
-
diff --git a/sd/prj/stree.bat b/sd/prj/stree.bat
deleted file mode 100644
index 3903ca0043fc..000000000000
--- a/sd/prj/stree.bat
+++ /dev/null
@@ -1,151 +0,0 @@
-REM *****************************************************************
-REM * STREE
-REM * (c) Copyright 1992-1994 STAR DIVISION
-REM * Beschreibung: Arbeitet Source-Verzeichnis-Baum von TOOLS ab
-REM * Aufruf: STREE DIR
-REM * DIR: ALL - Alle Verzeichnisse
-REM * MAKE - Alle Verzeichnisse mit MAKEFILE
-REM * Umgebung: GUI - Systemversion
-REM * COM - Systemversion
-REM * GUIBASE - Abhaengiges Source-Verzeichnis
-REM * STREECMD - Auszufuehrendes Kommando (z.B. nmake)
-REM *****************************************************************
-
-REM *** Parameter parsen und Variablen ueberpruefen ***
-IF "%GUI%" == "" GOTO Error1
-IF "%COM%" == "" GOTO Error1
-IF "%GUIBASE%" == "" GOTO Error1
-
-IF "%1" == "" GOTO Error3
-IF "%STREECMD%" == "" GOTO Error3
-
-
-REM *** Kommando ausgeben ***
-echo Kommando: %STREECMD%
-
-REM *** In die Root wechseln
-cd ..
-
-
-REM *** Include - Verzeichnisse ***
-IF NOT "%1" == "ALL" goto NotAll
-cd inc
-echo ------------------------------------------------------
-cd
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..
-
-cd res
-echo ------------------------------------------------------
-cd
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..
-
-cd source\ui\inc
-echo ------------------------------------------------------
-cd
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..\..\..
-
-REM *** Verzeichnisse mit Makefile ***
-:NotAll
-
-cd sdi
-echo ------------------------------------------------------
-cd
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..
-
-REM stardiv/sd -> ONE
-
-cd source\ui
-cd app
-echo ------------------------------------------------------
-cd
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..
-
-cd dlg
-echo ------------------------------------------------------
-cd
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..
-
-cd docshell
-echo ------------------------------------------------------
-cd
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..
-
-cd view
-echo ------------------------------------------------------
-cd
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..
-
-cd func
-echo ------------------------------------------------------
-cd
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..
-
-cd unoidl
-echo ------------------------------------------------------
-cd
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..\..
-
-cd core
-echo ------------------------------------------------------
-cd
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..
-
-cd filter
-echo ------------------------------------------------------
-cd
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..
-
-echo ------------------------------------------------------
-cd
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..
-
-echo ------------------------------------------------------
-cd util
-%STREECMD%
-IF ERRORLEVEL 1 goto Error2
-cd ..
-
-echo ------------------------------------------------------
-cd prj
-goto End
-
-REM *** Fehler ausgeben ***
-:Error1
-echo Error: Keine Systemversion oder nicht vollstaendig gesetzt !
-goto End
-:Error2
-echo Error: Fehler bei Ausfhrung eines Kommandos !
-goto End
-:Error3
-echo Error: Falsche Parameter wurden an STREE uebergeben !
-goto End
-
-REM *** Aufraeumen ***
-:End
-
diff --git a/sd/qa/unoapi/Test.java b/sd/qa/unoapi/Test.java
new file mode 100644
index 000000000000..cfb4f13d7743
--- /dev/null
+++ b/sd/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.sd.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "sd.sce", "-xcl", "knownissues.xcl", "-cs",
+ connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/sd/qa/unoapi/knownissues.xcl b/sd/qa/unoapi/knownissues.xcl
index c3f100506e47..0f28aebd2890 100644
--- a/sd/qa/unoapi/knownissues.xcl
+++ b/sd/qa/unoapi/knownissues.xcl
@@ -50,3 +50,7 @@ sd.DrawController_OutlineView::com::sun::star::beans::XPropertySet
### i88537 ###
sd.DrawController_PresentationView::com::sun::star::beans::XPropertySet
+
+### i109518 ###
+sd.SdXPresentation::com::sun::star::presentation::XPresentation
+sd.SdXPresentation::com::sun::star::beans::XPropertySet
diff --git a/sd/qa/unoapi/makefile.mk b/sd/qa/unoapi/makefile.mk
index 8828b08d6af5..62aefb3f5f71 100644
--- a/sd/qa/unoapi/makefile.mk
+++ b/sd/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,19 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=sd
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = sd
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/sd/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce sd.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments -THRCNT 1
+.END
diff --git a/sd/source/ui/app/makefile.mk b/sd/source/ui/app/makefile.mk
index 84fbe3676b97..d64d9b672f7e 100644
--- a/sd/source/ui/app/makefile.mk
+++ b/sd/source/ui/app/makefile.mk
@@ -95,11 +95,7 @@ $(INCCOM)$/sddll0.hxx: makefile.mk
.IF "$(GUI)"=="UNX"
echo \#define DLL_NAME \"libsd$(DLLPOSTFIX)$(DLLPOST)\" >$@
.ELSE # "$(GUI)"=="UNX"
-.IF "$(USE_SHELL)"!="4nt"
echo \#define DLL_NAME \"sd$(DLLPOSTFIX).DLL\" >$@
-.ELSE # "$(USE_SHELL)"!="4nt"
- echo #define DLL_NAME "sd$(DLLPOSTFIX).DLL" >$@
-.ENDIF # "$(USE_SHELL)"!="4nt"
.ENDIF # "$(GUI)"=="UNX"
LOCALIZE_ME = tbxids_tmpl.src menuids2_tmpl.src menu_tmpl.src menuids_tmpl.src menuids4_tmpl.src popup2_tmpl.src toolbox2_tmpl.src menuportal_tmpl.src menuids3_tmpl.src
diff --git a/sd/source/ui/func/futext2.cxx b/sd/source/ui/func/futext2.cxx
deleted file mode 100644
index 5e6bed107e93..000000000000
--- a/sd/source/ui/func/futext2.cxx
+++ /dev/null
@@ -1,30 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_sd.hxx"
-
diff --git a/sd/source/ui/func/makefile.mk b/sd/source/ui/func/makefile.mk
index 332d5d505792..9ec946325239 100644
--- a/sd/source/ui/func/makefile.mk
+++ b/sd/source/ui/func/makefile.mk
@@ -61,7 +61,6 @@ SLOFILES = \
$(SLO)$/fuscale.obj \
$(SLO)$/futransf.obj \
$(SLO)$/futext.obj \
- $(SLO)$/futext2.obj \
$(SLO)$/fuline.obj \
$(SLO)$/sdundo.obj \
$(SLO)$/sdundogr.obj \
@@ -133,7 +132,6 @@ LIB1OBJFILES= \
$(SLO)$/fuscale.obj \
$(SLO)$/futransf.obj \
$(SLO)$/futext.obj \
- $(SLO)$/futext2.obj \
$(SLO)$/fuline.obj \
$(SLO)$/sdundo.obj \
$(SLO)$/sdundogr.obj \
diff --git a/sd/source/ui/toolpanel/ControlDescriptorIterator.cxx b/sd/source/ui/toolpanel/ControlDescriptorIterator.cxx
deleted file mode 100644
index 9d873b897402..000000000000
--- a/sd/source/ui/toolpanel/ControlDescriptorIterator.cxx
+++ /dev/null
@@ -1,223 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_sd.hxx"
-
-/*
-#include "ControlDescriptorIterator.hxx"
-
-#include "ControlContainer.hxx"
-#include "ControlContainerDescriptor.hxx"
-
-namespace sd { namespace toolpanel {
-
-
-ControlDescriptorIterator::ControlDescriptorIterator (void)
- : mpContainer (NULL),
- mbSkipInvisibleControls(true)
-{
-}
-
-
-
-
-ControlDescriptorIterator::ControlDescriptorIterator (
- ControlDescriptorList& rContainer,
- const ControlDescriptorList::iterator& aIterator,
- bool bSkipInvisibleControls)
- : mpContainer(&rContainer),
- maIterator (aIterator),
- mbSkipInvisibleControls(bSkipInvisibleControls)
-{
- AdvanceToNextVisibleControl();
-}
-
-
-
-
-ControlDescriptorIterator::ControlDescriptorIterator (
- const ControlDescriptorIterator& aIterator)
- : mpContainer (aIterator.mpContainer),
- maIterator (aIterator.maIterator),
- mbSkipInvisibleControls (aIterator.mbSkipInvisibleControls)
-{
-}
-
-
-
-
-ControlDescriptorIterator& ControlDescriptorIterator::operator= (
- const ControlDescriptorIterator& aIterator)
-{
- mpContainer = aIterator.mpContainer;
- maIterator = aIterator.maIterator;
- mbSkipInvisibleControls = aIterator.mbSkipInvisibleControls;
-
- AdvanceToNextVisibleControl();
-
- return *this;
-}
-
-
-
-
-ControlDescriptorIterator::value_type&
- ControlDescriptorIterator::operator* (void)
-{
- return *maIterator;
-}
-
-
-
-
-const ControlDescriptorIterator::value_type&
- ControlDescriptorIterator::operator* (void)
- const
-{
- return *maIterator;
-}
-
-
-
-
-ControlDescriptorIterator::value_type&
- ControlDescriptorIterator::operator-> (void)
-{
- return *maIterator;
-}
-
-
-
-
-const ControlDescriptorIterator::value_type&
- ControlDescriptorIterator::operator-> (void)
- const
-{
- return *maIterator;
-}
-
-
-
-
-bool ControlDescriptorIterator::operator== (
- const ControlDescriptorIterator& aIterator) const
-{
- return ! operator!=(aIterator);
-}
-
-
-
-
-bool ControlDescriptorIterator::operator!= (
- const ControlDescriptorIterator& aIterator) const
-{
- return maIterator != aIterator.maIterator;
-}
-
-
-
-
-ControlDescriptorIterator& ControlDescriptorIterator::operator++ (void)
-{
- maIterator++;
- AdvanceToNextVisibleControl();
- return *this;
-}
-
-
-
-ControlDescriptorIterator ControlDescriptorIterator::operator++ (int)
-{
- ControlDescriptorIterator aIterator (*this);
- ++(*this);
- return aIterator;
-}
-
-
-
-
-ControlDescriptorIterator& ControlDescriptorIterator::operator-- (void)
-{
- maIterator--;
- AdvanceToPreviousVisibleControl();
- return *this;
-}
-
-
-
-ControlDescriptorIterator ControlDescriptorIterator::operator-- (int)
-{
- ControlDescriptorIterator aIterator (*this);
- --(*this);
- return aIterator;
-}
-
-
-
-
-ControlDescriptorIterator ControlDescriptorIterator::operator+ (
- int nValue) const
-{
- return ControlDescriptorIterator (*mpContainer, maIterator+nValue);
-}
-
-
-
-ControlDescriptorIterator ControlDescriptorIterator::operator- (
- int nValue) const
-{
- return ControlDescriptorIterator (*mpContainer, maIterator-nValue);
-}
-
-
-
-void ControlDescriptorIterator::AdvanceToNextVisibleControl (void)
-{
- if (mbSkipInvisibleControls && mpContainer!=NULL)
- {
- while (maIterator != mpContainer->end()
- && ! (**maIterator).IsVisible())
- ++maIterator;
- }
-}
-
-
-
-
-void ControlDescriptorIterator::AdvanceToPreviousVisibleControl (void)
-{
- if (mbSkipInvisibleControls && mpContainer!=NULL)
- {
- while (maIterator != mpContainer->begin()
- && ! (**maIterator).IsVisible())
- --maIterator;
- }
-}
-
-} } // end of namespace ::sd::toolpanel
-*/
diff --git a/sd/source/ui/view/DocumentRenderer.src b/sd/source/ui/view/DocumentRenderer.src
index 5a1030f1c18d..6419cb5c4e90 100644
--- a/sd/source/ui/view/DocumentRenderer.src
+++ b/sd/source/ui/view/DocumentRenderer.src
@@ -160,7 +160,7 @@ Resource _STR_IMPRESS_PRINT_UI_OPTIONS
{
< "Original colors" ; > ;
< "Grayscale" ; > ;
- < "Black & White" ; > ;
+ < "Black & white" ; > ;
};
};
StringArray _STR_IMPRESS_PRINT_UI_QUALITY_CHOICES_HELP
@@ -184,8 +184,8 @@ Resource _STR_IMPRESS_PRINT_UI_OPTIONS
{
< "Original size" ; > ;
< "Fit to printable page" ; > ;
- < "Distribute on multiple paper sheets" ; > ;
- < "Tile paper sheet with repeated slides" ; > ;
+ < "Distribute on multiple sheets of paper" ; > ;
+ < "Tile sheet of paper with repeated slides" ; > ;
};
};
StringArray _STR_IMPRESS_PRINT_UI_PAGE_OPTIONS_CHOICES_DRAW
@@ -194,8 +194,8 @@ Resource _STR_IMPRESS_PRINT_UI_OPTIONS
{
< "Original size" ; > ;
< "Fit to printable page" ; > ;
- < "Distribute on multiple paper sheets" ; > ;
- < "Tile paper sheet with repeated pages" ; > ;
+ < "Distribute on multiple sheets of paper" ; > ;
+ < "Tile sheet of paper with repeated pages" ; > ;
};
};
StringArray _STR_IMPRESS_PRINT_UI_PAGE_OPTIONS_CHOICES_HELP
diff --git a/sd/source/ui/view/makefile.mk b/sd/source/ui/view/makefile.mk
index 074497ca1de7..3b3bca4ff3d5 100644
--- a/sd/source/ui/view/makefile.mk
+++ b/sd/source/ui/view/makefile.mk
@@ -53,7 +53,6 @@ SLOFILES = \
$(SLO)$/sdview2.obj \
$(SLO)$/sdview3.obj \
$(SLO)$/sdview4.obj \
- $(SLO)$/sdview5.obj \
$(SLO)$/viewshel.obj \
$(SLO)$/viewshe2.obj \
$(SLO)$/viewshe3.obj \
diff --git a/sd/source/ui/view/sdview5.cxx b/sd/source/ui/view/sdview5.cxx
deleted file mode 100644
index 51c6725f6d83..000000000000
--- a/sd/source/ui/view/sdview5.cxx
+++ /dev/null
@@ -1,29 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_sd.hxx"
diff --git a/sd/util/makefile.mk b/sd/util/makefile.mk
index 9b04aa7438ae..bfe4d1fd1b40 100644
--- a/sd/util/makefile.mk
+++ b/sd/util/makefile.mk
@@ -156,7 +156,7 @@ LIB6FILES= \
# sdd
SHL2TARGET= sdd$(DLLPOSTFIX)
SHL2IMPLIB= sddimp
-SHL2VERSIONMAP= sdd.map
+SHL2VERSIONMAP=$(SOLARENV)/src/component.map
SHL2DEF=$(MISC)$/$(SHL2TARGET).def
DEF2NAME= $(SHL2TARGET)
diff --git a/sd/util/sd.map b/sd/util/sd.map
deleted file mode 100644
index 59e1057c6daa..000000000000
--- a/sd/util/sd.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SD_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/sd/util/sdd.map b/sd/util/sdd.map
deleted file mode 100644
index c7439a13948e..000000000000
--- a/sd/util/sdd.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SCH_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/sd/util/sdfilt.map b/sd/util/sdfilt.map
index 62213393408d..e38cc1e8c597 100644
--- a/sd/util/sdfilt.map
+++ b/sd/util/sdfilt.map
@@ -1,4 +1,4 @@
-PPTEXPORTER_1_0 {
+UDK_3_0_0 {
global:
ExportPPT;
ImportPPT;
diff --git a/sd/util/sdui.map b/sd/util/sdui.map
index 51f26bb81cfb..ad5e33836c7c 100644
--- a/sd/util/sdui.map
+++ b/sd/util/sdui.map
@@ -1,4 +1,4 @@
-CUI_1_0 {
+UDK_3_0_0 {
global:
CreateDialogFactory;
local:
diff --git a/sdext/source/minimizer/description.xml b/sdext/source/minimizer/description.xml
index 922d47096e6b..3d2ec9c98bd7 100644
--- a/sdext/source/minimizer/description.xml
+++ b/sdext/source/minimizer/description.xml
@@ -22,7 +22,7 @@
<platform value="UPDATED_SUPPORTED_PLATFORM"/>
<publisher>
- <name xlink:href="http://www.sun.com/software/star/staroffice/extensions.jsp?cid=925095" lang="en">Oracle</name>
+ <name xlink:href="http://www.oracle.com/us/products/applications/open-office" lang="en">Oracle</name>
</publisher>
<display-name>
diff --git a/sdext/source/minimizer/exports.map b/sdext/source/minimizer/exports.map
deleted file mode 100644
index c673092ae700..000000000000
--- a/sdext/source/minimizer/exports.map
+++ /dev/null
@@ -1,9 +0,0 @@
-PDFFILTER_1_0 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-}; \ No newline at end of file
diff --git a/sdext/source/minimizer/images/em47.png b/sdext/source/minimizer/images/em47.png
index a018f1710ea5..cf3fe5f0d598 100644
--- a/sdext/source/minimizer/images/em47.png
+++ b/sdext/source/minimizer/images/em47.png
Binary files differ
diff --git a/sdext/source/minimizer/images/em47_hc.png b/sdext/source/minimizer/images/em47_hc.png
index 418cd1479298..535a6bfdff4f 100644
--- a/sdext/source/minimizer/images/em47_hc.png
+++ b/sdext/source/minimizer/images/em47_hc.png
Binary files differ
diff --git a/sdext/source/minimizer/makefile.mk b/sdext/source/minimizer/makefile.mk
index 18c7a0a435c5..5b14f7215fd0 100644
--- a/sdext/source/minimizer/makefile.mk
+++ b/sdext/source/minimizer/makefile.mk
@@ -77,7 +77,7 @@ SHL1DEPN=
SHL1IMPLIB= i$(SHL1TARGET)
SHL1LIBS= $(SLB)$/$(TARGET).lib
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP= exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1RPATH= OXT
DEF1NAME= $(SHL1TARGET)
diff --git a/sdext/source/pdfimport/config/description.xml b/sdext/source/pdfimport/config/description.xml
index c2d36bd58be1..a49f81ff2c42 100644
--- a/sdext/source/pdfimport/config/description.xml
+++ b/sdext/source/pdfimport/config/description.xml
@@ -21,7 +21,7 @@
<platform value="UPDATED_SUPPORTED_PLATFORM" />
<publisher>
- <name xlink:href="http://www.sun.com/software/star/staroffice/extensions.jsp?cid=925095" lang="en">Oracle</name>
+ <name xlink:href="http://www.oracle.com/us/products/applications/open-office" lang="en">Oracle</name>
</publisher>
<display-name>
diff --git a/sdext/source/pdfimport/exports.map b/sdext/source/pdfimport/exports.map
deleted file mode 100644
index c673092ae700..000000000000
--- a/sdext/source/pdfimport/exports.map
+++ /dev/null
@@ -1,9 +0,0 @@
-PDFFILTER_1_0 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-}; \ No newline at end of file
diff --git a/sdext/source/pdfimport/images/pdfiext.png b/sdext/source/pdfimport/images/pdfiext.png
index a018f1710ea5..cf3fe5f0d598 100644
--- a/sdext/source/pdfimport/images/pdfiext.png
+++ b/sdext/source/pdfimport/images/pdfiext.png
Binary files differ
diff --git a/sdext/source/pdfimport/images/pdfiext_hc.png b/sdext/source/pdfimport/images/pdfiext_hc.png
index 418cd1479298..535a6bfdff4f 100644
--- a/sdext/source/pdfimport/images/pdfiext_hc.png
+++ b/sdext/source/pdfimport/images/pdfiext_hc.png
Binary files differ
diff --git a/sdext/source/pdfimport/makefile.mk b/sdext/source/pdfimport/makefile.mk
index 318ff6bfda1f..436345216b55 100644
--- a/sdext/source/pdfimport/makefile.mk
+++ b/sdext/source/pdfimport/makefile.mk
@@ -90,7 +90,7 @@ SHL1STDLIBS=\
SHL1DEPN=
SHL1IMPLIB= i$(SHL1TARGET)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1RPATH=OXT
DEF1NAME=$(SHL1TARGET)
diff --git a/sdext/source/pdfimport/test/export.map b/sdext/source/pdfimport/test/export.map
index 709047ae63e5..7321bbca16ad 100755
--- a/sdext/source/pdfimport/test/export.map
+++ b/sdext/source/pdfimport/test/export.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-UDK_3.1 {
+UDK_3_0_0 {
global:
registerAllTestFunction;
diff --git a/sdext/source/pdfimport/test/makefile.mk b/sdext/source/pdfimport/test/makefile.mk
index 3d525d2e38b4..d0b05912d22e 100755
--- a/sdext/source/pdfimport/test/makefile.mk
+++ b/sdext/source/pdfimport/test/makefile.mk
@@ -42,6 +42,8 @@ ENABLE_EXCEPTIONS=TRUE
@echo "PDF Import extension disabled."
.ENDIF
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
.IF "$(SYSTEM_ZLIB)" == "YES"
CFLAGS+=-DSYSTEM_ZLIB
.ENDIF
diff --git a/sdext/source/presenter/PresenterGeometryHelper.hxx b/sdext/source/presenter/PresenterGeometryHelper.hxx
index b920b5da778b..15f70f7647ec 100644
--- a/sdext/source/presenter/PresenterGeometryHelper.hxx
+++ b/sdext/source/presenter/PresenterGeometryHelper.hxx
@@ -33,6 +33,7 @@
#include <com/sun/star/awt/Size.hpp>
#include <com/sun/star/rendering/XGraphicDevice.hpp>
#include <com/sun/star/rendering/XPolyPolygon2D.hpp>
+#include <com/sun/star/geometry/RealRectangle2D.hpp>
#include <vector>
namespace css = ::com::sun::star;
diff --git a/sdext/source/presenter/bitmaps/em47.png b/sdext/source/presenter/bitmaps/em47.png
index a018f1710ea5..cf3fe5f0d598 100644
--- a/sdext/source/presenter/bitmaps/em47.png
+++ b/sdext/source/presenter/bitmaps/em47.png
Binary files differ
diff --git a/sdext/source/presenter/bitmaps/em47_hc.png b/sdext/source/presenter/bitmaps/em47_hc.png
index 418cd1479298..535a6bfdff4f 100644
--- a/sdext/source/presenter/bitmaps/em47_hc.png
+++ b/sdext/source/presenter/bitmaps/em47_hc.png
Binary files differ
diff --git a/sdext/source/presenter/description.xml b/sdext/source/presenter/description.xml
index 8a56838ad263..3919bef973a4 100644
--- a/sdext/source/presenter/description.xml
+++ b/sdext/source/presenter/description.xml
@@ -22,7 +22,7 @@
<platform value="UPDATED_PLATFORM" />
<publisher>
- <name xlink:href="http://www.sun.com/software/star/staroffice/extensions.jsp?cid=925095" lang="en">Oracle</name>
+ <name xlink:href="http://www.oracle.com/us/products/applications/open-office" lang="en">Oracle</name>
</publisher>
<display-name>
diff --git a/sdext/source/presenter/exports.map b/sdext/source/presenter/exports.map
deleted file mode 100644
index c673092ae700..000000000000
--- a/sdext/source/presenter/exports.map
+++ /dev/null
@@ -1,9 +0,0 @@
-PDFFILTER_1_0 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-}; \ No newline at end of file
diff --git a/sdext/source/presenter/makefile.mk b/sdext/source/presenter/makefile.mk
index c6dbe7185ec9..b0bedecd4f8b 100644
--- a/sdext/source/presenter/makefile.mk
+++ b/sdext/source/presenter/makefile.mk
@@ -103,7 +103,7 @@ SHL1DEPN=
SHL1IMPLIB= i$(SHL1TARGET)
SHL1LIBS= $(SLB)$/$(TARGET).lib
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP= exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1RPATH= OXT
DEF1NAME= $(SHL1TARGET)
diff --git a/set_soenv.in b/set_soenv.in
index 1e74bb7526fe..64815d418f99 100644
--- a/set_soenv.in
+++ b/set_soenv.in
@@ -72,12 +72,12 @@ my ( $BIG_SVX, $COM, $ARCH, $CPU, $CPUNAME, $CVER, $GLIBC, $GUI, $GUIBASE,
# Help variables.
my ( $USR, $ETC, $BIN, $LIB, $LIB64, $INC, $INCLUDE, $DEV, $OPT, $LOCAL, $SOLENV, $SOLVER, $CONFIG,
$USR_BIN, $USR_LIB, $USR_LOCAL, $USR_CCS, $JAVA_BIN, $JAVA_LIB, $JAVA_INCLUDE,
- $SOLARENVINC, $USR_DT, $USR_OPENWIN, $SHELL_PATH, $XLIB, $XINC,
+ $SOLARENVINC, $USR_DT, $USR_OPENWIN, $XLIB, $XINC,
$CYGWIN_PATH, $language, $dict, $ASM_PATH, $NSIS_PATH, $ps_STLPORT_LIB, $L_STLPORT_LIB,
$STLPORT_stlport, $STLPORT_inc_stlport, $PERL_PATH );
# Environment variables.
-my ( $oldPATH, $SRC_ROOT, $SO_HOME, $JAVA_HOME, $JDK, $JAVAFLAGS, $SHELL,
+my ( $oldPATH, $SRC_ROOT, $SO_HOME, $JAVA_HOME, $JDK, $JAVAFLAGS, $OOO_SHELL,
$UPD, $WORK_STAMP, $SOURCE_ROOT_DIR ,
$SOLARSRC, $DEVROOT, $SOLARVER, $SOLARVERSION, $SOLARENV,
$STAR_INIROOT, $STAR_INIROOTOLD, $STAR_STANDLST, $STAR_SSCOMMON, $STAR_SSOLARINI,
@@ -89,7 +89,7 @@ my ( $oldPATH, $SRC_ROOT, $SO_HOME, $JAVA_HOME, $JDK, $JAVAFLAGS, $SHELL,
$USE_DIRECTX5, $ATL_LIB, $ATL_INCLUDE, $MFC_LIB, $MFC_INCLUDE, $NO_HIDS, $TMPDIR,
$COMMON_BUILD_TOOLS, $WIN_GREP, $WIN_FIND, $WIN_LS,
$WIN_GNUCOPY, $WIN_TOUCH, $STLPORT4, $MOZILLA_VERSION, $MOZILLA_TOOLKIT, $PREBUILD_MOZAB, $MOZILLABUILD,
- $PROEXT,
+ $PROEXT, $TARFILE_LOCATION,
$SYSTEM_PYTHON, $SYSTEM_MOZILLA, $EPM_FLAGS);
#
#-------------------------------------------
@@ -197,6 +197,7 @@ $ENABLEUNICODE = "TRUE";
$NEW_JAR_PACK = "TRUE";
$NO_BSYMBOLIC = "TRUE";
$comment = "#"; # UNIX script comment character
+$TARFILE_LOCATION = "@TARFILE_LOCATION@"; # where to find tarballs with external sources
# Setting platform dependent constant values.
if ( $platform =~ m/solaris/ )
@@ -796,21 +797,7 @@ if ( $platform =~ m/cygwin|os2/ ) {
$JAVA_HOME =~ s/[\s\/]+$//; # remove trailing \n or \/ if there is any.
}
# 3. shell path.
-# Check whether autoconf found a valid shell path.
-if ("@USE_SHELL@" eq "tcsh")
-{ # SHELL as argument from autoconf.
- $SHELL_PATH = '@SHELLPATH@';
- $SHELL = '@SHELLPATH@'."\/tcsh";
-}
-elsif ("@USE_SHELL@" eq "bash")
-{
- $SHELL_PATH = '@SHELLPATH@';
- $SHELL = '@SHELLPATH@'."\/bash";
-}
-else {
- die "Not a recognized shell: @USE_SHELL@ !";
-}
-
+$OOO_SHELL = '@SHELLPATH@'."\/bash";
if ( '@STLPORT4@' eq $no_stl )
{
@@ -955,6 +942,12 @@ $SOLARSRC = '$SRC_ROOT';
my @splitlist = split( /\//, $SRC_ROOT );
pop @splitlist;
$SOURCE_ROOT_DIR = join("/", @splitlist);
+
+# default TARFILE_LOCATION
+if ('@TARFILE_LOCATION@' eq "DEFAULT")
+{ $TARFILE_LOCATION="$SOURCE_ROOT_DIR/ext_sources";
+}
+
#
$DEVROOT = '$SRC_ROOT';
# Set solenv and solver to given or default values.
@@ -1094,7 +1087,6 @@ if ($platform =~ m/linux|netbsd|odf1|freebsd|aix|solaris/)
$PATH = GetCorrectPath ($PATH,
$COMPATH, $CC,
$PERL_PATH, 'perl',
- $SHELL_PATH, '@USE_SHELL@',
@javaBits);
}
@@ -1180,11 +1172,6 @@ elsif ($platform =~ m/cygwin/)
{
$PATH .= $ps.$tmppath;
}
- # Check if $SHELL_PATH is already set in PATH
- $tmppath = CygFormat($SHELL_PATH);
- if ( ( $PATH !~ /(?:[:]|\A)(?:$tmppath)(?:[:]|\Z)/ ) )
- { $PATH .= $ps.$tmppath;
- }
# Check if $CYGWIN_PATH is already set in PATH
$tmppath = CygFormat($CYGWIN_PATH);
if ( $PATH !~ /(?:[:]|\A)(?:$tmppath)(?:[:]|\Z)/ ) {
@@ -1500,7 +1487,7 @@ CreateFileHeader( *OUT, $UPD, $platform, "(t)csh", "#" );
CreateFileHeader( *OUT_SH, $UPD, $platform, "sh/bash/ksh", "#" );
ToFile( "SRC_ROOT", $SRC_ROOT, "e" );
-ToFile( "SHELL", $SHELL, "e" );
+ToFile( "OOO_SHELL", $OOO_SHELL, "e" );
ToFile( "JAVA_HOME", $JAVA_HOME, "e" );
ToFile( "ANT_HOME", PathFormat("@ANT_HOME@"), "e" );
ToFile( "ANT_LIB", PathFormat("@ANT_LIB@"), "e" );
@@ -1599,6 +1586,7 @@ ToFile( "ENABLE_MINIMIZER", "@ENABLE_MINIMIZER@","e" );
ToFile( "ENABLE_PRESENTER_SCREEN","@ENABLE_PRESENTER_SCREEN@","e" );
ToFile( "ENABLE_REPORTBUILDER","@ENABLE_REPORTBUILDER@","e" );
ToFile( "SYSTEM_JFREEREPORT","@SYSTEM_JFREEREPORT@","e" );
+ToFile( "OOO_JUNIT_JAR", "@OOO_JUNIT_JAR@", "e" );
ToFile( "SAC_JAR", "@SAC_JAR@", "e" );
ToFile( "LIBXML_JAR", "@LIBXML_JAR@", "e" );
ToFile( "FLUTE_JAR", "@FLUTE_JAR@", "e" );
@@ -1633,6 +1621,8 @@ ToFile( "MOC4", "@MOC4@", "e" );
ToFile( "ENABLE_KAB", "@ENABLE_KAB@", "e" );
ToFile( "PSPRINT", "TRUE", "e" );
ToFile( "MKDEPENDSOLVER", "TRUE", "e" );
+ToFile( "TARFILE_LOCATION", $TARFILE_LOCATION, "e" );
+ToFile( "DO_FETCH_TARBALLS", "@DO_FETCH_TARBALLS@", "e" );
#
# Writing the platform dependent constant values to file.
# (c = comment, e = environment variable, a = alias )
@@ -1721,6 +1711,7 @@ if ( '@JDK@' ne '' )
ToFile( "JDK", "@JDK@", "e" );
ToFile( "JAVAFLAGS", "@JAVAFLAGS@", "e" );
ToFile( "JAVAINTERPRETER", PathFormat("@JAVAINTERPRETER@"), "e" );
+ ToFile( "JAVAIFLAGS", "@JAVAIFLAGS@", "e" );
ToFile( "JAVACOMPILER", PathFormat("@JAVACOMPILER@"), "e" );
ToFile( "JAVAAOTCOMPILER", PathFormat("@JAVAAOTCOMPILER@"), "e" );
ToFile( "JAVADOC", PathFormat("@JAVADOC@"), "e" );
@@ -1827,6 +1818,9 @@ ToFile( "XRANDR_DLOPEN", "@XRANDR_DLOPEN@", "e" );
ToFile( "SYSTEM_LIBWPD", "@SYSTEM_LIBWPD@", "e" );
ToFile( "LIBWPD_CFLAGS", "@LIBWPD_CFLAGS@", "e" );
ToFile( "LIBWPD_LIBS", "@LIBWPD_LIBS@", "e" );
+ToFile( "SYSTEM_CPPUNIT", "@SYSTEM_CPPUNIT@", "e" );
+ToFile( "CPPUNIT_CFLAGS", "@CPPUNIT_CFLAGS@", "e" );
+ToFile( "CPPUNIT_LIBS", "@CPPUNIT_LIBS@", "e" );
ToFile( "SYSTEM_LIBXML", "@SYSTEM_LIBXML@", "e" );
ToFile( "USE_FT_EMBOLDEN", "@USE_FT_EMBOLDEN@", "e" );
ToFile( "LIBXML_CFLAGS", "@LIBXML_CFLAGS@", "e" );
@@ -1942,8 +1936,6 @@ ToFile( "DELIVER", $perlpre."deliver.pl", "e" );
ToFile( "MKOUT", $perlpre."mkout.pl", "e" );
ToFile( "ZIPDEP", $perlpre."zipdep.pl", "e" );
-ToFile( "USE_SHELL", '@USE_SHELL@', "e" );
-
#
# Writing the aliases to file.
ToFile( "Aliases.", $empty, "c" );
@@ -1992,6 +1984,7 @@ if ($platform =~ m/os2/)
ToFile( "SWITCHAR", "-", "e");
}
ToFile( "SAL_ENABLE_FILE_LOCKING", "1", "e");
+ToFile( "DBGSV_INIT", "$SOLARENV/bin/dbgsv.ini", "e");
#
# Writing unset variables you might not need to file.
#
diff --git a/setup_native/scripts/admin.pl b/setup_native/scripts/admin.pl
index 77a7f18fbc7d..89588d0c4d03 100644
--- a/setup_native/scripts/admin.pl
+++ b/setup_native/scripts/admin.pl
@@ -190,13 +190,11 @@ sub convert_stringlist_into_array
{
$first = $1;
$last = $2;
- if ( defined($ENV{'USE_SHELL'}) && $ENV{'USE_SHELL'} eq "4nt" ) { $first =~ s/\//\\/g; }
# Problem with two directly following listseparators. For example a path with two ";;" directly behind each other
$first =~ s/^$listseparator//;
push(@newarray, "$first\n");
}
- if ( defined($ENV{'USE_SHELL'}) && $ENV{'USE_SHELL'} eq "4nt" ) { $last =~ s/\//\\/g; }
push(@newarray, "$last\n");
return \@newarray;
@@ -382,11 +380,8 @@ sub try_to_create_directory
{
$created_directory = 1;
- if ( defined $ENV{'USE_SHELL'} && $ENV{'USE_SHELL'} ne "4nt" )
- {
- my $localcall = "chmod 775 $directory \>\/dev\/null 2\>\&1";
- system($localcall);
- }
+ my $localcall = "chmod 775 $directory \>\/dev\/null 2\>\&1";
+ system($localcall);
}
else
{
@@ -837,20 +832,14 @@ sub create_directory_with_privileges
if ($returnvalue)
{
- if ( defined $ENV{'USE_SHELL'} && $ENV{'USE_SHELL'} ne "4nt" )
- {
- my $localcall = "chmod $privileges $directory \>\/dev\/null 2\>\&1";
- system($localcall);
- }
+ my $localcall = "chmod $privileges $directory \>\/dev\/null 2\>\&1";
+ system($localcall);
}
}
else
{
- if ( defined $ENV{'USE_SHELL'} && $ENV{'USE_SHELL'} ne "4nt" )
- {
- my $localcall = "chmod $privileges $directory \>\/dev\/null 2\>\&1";
- system($localcall);
- }
+ my $localcall = "chmod $privileges $directory \>\/dev\/null 2\>\&1";
+ system($localcall);
}
}
diff --git a/setup_native/scripts/makefile.mk b/setup_native/scripts/makefile.mk
index b8fc6649eddf..de91bd011efe 100644
--- a/setup_native/scripts/makefile.mk
+++ b/setup_native/scripts/makefile.mk
@@ -50,7 +50,8 @@ UNIXTEXT= \
UNIXTEXT+= $(BIN)$/stclient_wrapper.sh
.ENDIF
-FAKEDB=$(BIN)$/noarch/fake-db-1.0-0.noarch.rpm
+NOARCH=$(BIN)$/noarch
+FAKEDB=$(NOARCH)/fake-db-1.0-0.noarch.rpm
FAKEDBROOT=$(COMMONMISC)/$(TARGET)/fake-db-root
# --- Targets ------------------------------------------------------
@@ -58,7 +59,7 @@ FAKEDBROOT=$(COMMONMISC)/$(TARGET)/fake-db-root
.ENDIF # L10N_framework
.INCLUDE : target.mk
.IF "$(L10N_framework)"==""
-.IF "$(OS)" == "SOLARIS" || "$(OS)" == "LINUX"
+.IF "$(OS)" == "SOLARIS" || ( "$(OS)" == "LINUX" && "$(PKGFORMAT)"!="$(PKGFORMAT:s/rpm//)" )
ALLTAR: $(BIN)$/install $(BIN)$/uninstall
@@ -69,18 +70,21 @@ $(BIN)$/install: install_$(OS:l).sh
.ENDIF
.IF "$(OS)" == "LINUX"
+.IF "$(PKGFORMAT)"!="$(PKGFORMAT:s/rpm//)"
$(FAKEDB) : fake-db.spec
$(MKDIRHIER) $(FAKEDBROOT)
$(RPM) --define "_builddir $(shell @cd $(FAKEDBROOT) && pwd)" --define "_rpmdir $(shell @cd $(BIN) && pwd)" -bb $<
+ chmod g+w $(NOARCH)
$(BIN)$/install: $(FAKEDB)
+.ENDIF # "$(PKGFORMAT)"!="$(PKGFORMAT:s/rpm//)"
$(BIN)$/uninstall: uninstall_linux.sh
$(TYPE) $< | tr -d "\015" > $@
-chmod 775 $@
-.ENDIF
+.ENDIF # "$(OS)" == "LINUX"
.IF "$(OS)" == "SOLARIS"
diff --git a/setup_native/source/java/javaversion.dat b/setup_native/source/java/javaversion.dat
index 17084cc92234..461bd7d6579a 100755
--- a/setup_native/source/java/javaversion.dat
+++ b/setup_native/source/java/javaversion.dat
@@ -26,30 +26,30 @@
#*************************************************************************
# GUI String in the installer ("Java Runtime Environment (${JAVAVERSION})")
-JAVAVERSION=Java 6 Update 18
-WINDOWSJAVAVERSION=Java 6 Update 18
+JAVAVERSION=Java 6 Update 19
+WINDOWSJAVAVERSION=Java 6 Update 19
# Windows (scp2 and downloadtemplate.nsi)
-WINDOWSJAVAFILENAME=jre-6u18-windows-i586.exe
-WINDOWSJAVAREGISTRYENTRY=1.6.0_18
+WINDOWSJAVAFILENAME=jre-6u19-windows-i586.exe
+WINDOWSJAVAREGISTRYENTRY=1.6.0_19
# Linux (scp2)
-LINUXJAVAFILENAME=jre-6u18-linux-i586.rpm
+LINUXJAVAFILENAME=jre-6u19-linux-i586.rpm
# Linux (rpmUnit.xml, rpm -qp <filename> )
-LINUXJAVANAME=jre-1.6.0_18-fcs
+LINUXJAVANAME=jre-1.6.0_19-fcs
# Linux-x64 (scp2)
-LINUXX64JAVAFILENAME=jre-6u18-linux-amd64.rpm
+LINUXX64JAVAFILENAME=jre-6u19-linux-amd64.rpm
# Solaris Sparc (scp2)
-SOLSJAVARTPACKED=SUNWj6rt_1_6_0_18_sparc.tar.gz
-SOLSJAVACFGPACKED=SUNWj6cfg_1_6_0_18_sparc.tar.gz
-SOLSJAVAMANPACKED=SUNWj6man_1_6_0_18_sparc.tar.gz
+SOLSJAVARTPACKED=SUNWj6rt_1_6_0_19_sparc.tar.gz
+SOLSJAVACFGPACKED=SUNWj6cfg_1_6_0_19_sparc.tar.gz
+SOLSJAVAMANPACKED=SUNWj6man_1_6_0_19_sparc.tar.gz
# Solaris x86 (scp2)
-SOLIJAVARTPACKED=SUNWj6rt_1_6_0_18_x86.tar.gz
-SOLIJAVACFGPACKED=SUNWj6cfg_1_6_0_18_x86.tar.gz
-SOLIJAVAMANPACKED=SUNWj6man_1_6_0_18_x86.tar.gz
+SOLIJAVARTPACKED=SUNWj6rt_1_6_0_19_x86.tar.gz
+SOLIJAVACFGPACKED=SUNWj6cfg_1_6_0_19_x86.tar.gz
+SOLIJAVAMANPACKED=SUNWj6man_1_6_0_19_x86.tar.gz
# Solaris (pkgUnit.xml, needs only to be changed in major changes)
SOLARISJAVART=SUNWj6rt
diff --git a/setup_native/source/java/javaversion2.dat b/setup_native/source/java/javaversion2.dat
index 17084cc92234..461bd7d6579a 100644
--- a/setup_native/source/java/javaversion2.dat
+++ b/setup_native/source/java/javaversion2.dat
@@ -26,30 +26,30 @@
#*************************************************************************
# GUI String in the installer ("Java Runtime Environment (${JAVAVERSION})")
-JAVAVERSION=Java 6 Update 18
-WINDOWSJAVAVERSION=Java 6 Update 18
+JAVAVERSION=Java 6 Update 19
+WINDOWSJAVAVERSION=Java 6 Update 19
# Windows (scp2 and downloadtemplate.nsi)
-WINDOWSJAVAFILENAME=jre-6u18-windows-i586.exe
-WINDOWSJAVAREGISTRYENTRY=1.6.0_18
+WINDOWSJAVAFILENAME=jre-6u19-windows-i586.exe
+WINDOWSJAVAREGISTRYENTRY=1.6.0_19
# Linux (scp2)
-LINUXJAVAFILENAME=jre-6u18-linux-i586.rpm
+LINUXJAVAFILENAME=jre-6u19-linux-i586.rpm
# Linux (rpmUnit.xml, rpm -qp <filename> )
-LINUXJAVANAME=jre-1.6.0_18-fcs
+LINUXJAVANAME=jre-1.6.0_19-fcs
# Linux-x64 (scp2)
-LINUXX64JAVAFILENAME=jre-6u18-linux-amd64.rpm
+LINUXX64JAVAFILENAME=jre-6u19-linux-amd64.rpm
# Solaris Sparc (scp2)
-SOLSJAVARTPACKED=SUNWj6rt_1_6_0_18_sparc.tar.gz
-SOLSJAVACFGPACKED=SUNWj6cfg_1_6_0_18_sparc.tar.gz
-SOLSJAVAMANPACKED=SUNWj6man_1_6_0_18_sparc.tar.gz
+SOLSJAVARTPACKED=SUNWj6rt_1_6_0_19_sparc.tar.gz
+SOLSJAVACFGPACKED=SUNWj6cfg_1_6_0_19_sparc.tar.gz
+SOLSJAVAMANPACKED=SUNWj6man_1_6_0_19_sparc.tar.gz
# Solaris x86 (scp2)
-SOLIJAVARTPACKED=SUNWj6rt_1_6_0_18_x86.tar.gz
-SOLIJAVACFGPACKED=SUNWj6cfg_1_6_0_18_x86.tar.gz
-SOLIJAVAMANPACKED=SUNWj6man_1_6_0_18_x86.tar.gz
+SOLIJAVARTPACKED=SUNWj6rt_1_6_0_19_x86.tar.gz
+SOLIJAVACFGPACKED=SUNWj6cfg_1_6_0_19_x86.tar.gz
+SOLIJAVAMANPACKED=SUNWj6man_1_6_0_19_x86.tar.gz
# Solaris (pkgUnit.xml, needs only to be changed in major changes)
SOLARISJAVART=SUNWj6rt
diff --git a/setup_native/source/win32/customactions/reg4allmsdoc/exports.dxp b/setup_native/source/win32/customactions/reg4allmsdoc/exports.dxp
index 364ebc705df8..566981ba569e 100644
--- a/setup_native/source/win32/customactions/reg4allmsdoc/exports.dxp
+++ b/setup_native/source/win32/customactions/reg4allmsdoc/exports.dxp
@@ -1 +1,3 @@
FindRegisteredExtensions
+LookForRegisteredExtensions
+RegisterSomeExtensions \ No newline at end of file
diff --git a/setup_native/source/win32/customactions/reg4allmsdoc/reg4allmsi.cxx b/setup_native/source/win32/customactions/reg4allmsdoc/reg4allmsi.cxx
index 1be921ca5846..3aba597098fb 100644
--- a/setup_native/source/win32/customactions/reg4allmsdoc/reg4allmsi.cxx
+++ b/setup_native/source/win32/customactions/reg4allmsdoc/reg4allmsi.cxx
@@ -68,6 +68,11 @@ static const CHAR* g_Extensions[] =
0
};
+static const int WORD_START = 0;
+static const int EXCEL_START = 7;
+static const int POWERPOINT_START = 15;
+static const int POWERPOINT_END = 23;
+
// ".xlam", // Office Excel 2007 XML macro-enabled add-in
// ".ppam", // Office PowerPoint 2007 macro-enabled XML add-in
// ".ppsm", // Office PowerPoint 2007 macro-enabled XML show
@@ -90,15 +95,6 @@ static inline void OutputDebugStringFormat( LPCSTR, ... )
#endif
//----------------------------------------------------------
-static bool IsModuleSelectedForInstallation( MSIHANDLE handle, LPCTSTR name )
-{
- INSTALLSTATE current_state;
- INSTALLSTATE future_state;
- MsiGetFeatureState(handle, name, &current_state, &future_state);
- return (future_state == INSTALLSTATE_LOCAL);
-}
-
-//----------------------------------------------------------
static BOOL CheckExtensionInRegistry( LPCSTR lpSubKey )
{
BOOL bRet = false;
@@ -264,6 +260,23 @@ bool IsSetMsiProp( MSIHANDLE handle, LPCSTR name )
}
//----------------------------------------------------------
+static void registerForExtension( MSIHANDLE handle, const int nIndex, bool bRegister )
+{
+ CHAR sPropName[256];
+ StringCchCopyA( sPropName, 256, "REGISTER_" );
+ StringCchCatA( sPropName, 256, (g_Extensions[nIndex])+1 );
+ CharUpperBuffA( sPropName+9, 4 );
+
+ if ( bRegister ) {
+ MsiSetPropertyA( handle, sPropName, "1" );
+ OutputDebugStringFormat( "Set MSI property %s.\n", sPropName );
+ } else {
+ MsiSetPropertyA( handle, sPropName, "0" );
+ OutputDebugStringFormat( "Unset MSI property %s.\n", sPropName );
+ }
+}
+
+//----------------------------------------------------------
static void registerForExtensions( MSIHANDLE handle, BOOL bRegisterAll )
{ // Check all file extensions
int nIndex = 0;
@@ -271,23 +284,180 @@ static void registerForExtensions( MSIHANDLE handle, BOOL bRegisterAll )
{
BOOL bRegister = bRegisterAll || CheckExtensionInRegistry( g_Extensions[nIndex] );
if ( bRegister )
- {
- CHAR sPropName[256];
- StringCchCopyA( sPropName, 256, "REGISTER_" );
- StringCchCatA( sPropName, 256, (g_Extensions[nIndex])+1 );
- CharUpperBuffA( sPropName+9, 4 );
- MsiSetPropertyA( handle, sPropName, "1" );
- OutputDebugStringFormat( "Set MSI property %s.\n", sPropName );
- }
+ registerForExtension( handle, nIndex, true );
+ ++nIndex;
+ }
+}
+
+//----------------------------------------------------------
+static bool checkSomeExtensionInRegistry( const int nStart, const int nEnd )
+{ // Check all file extensions
+ int nIndex = nStart;
+ bool bFound = false;
+
+ while ( !bFound && ( g_Extensions[nIndex] != 0 ) && ( nIndex < nEnd ) )
+ {
+ bFound = ! CheckExtensionInRegistry( g_Extensions[nIndex] );
+
+ if ( bFound )
+ OutputDebugStringFormat( "Found registration for [%s].\n", g_Extensions[nIndex] );
+
++nIndex;
}
+ return bFound;
}
//----------------------------------------------------------
+static void registerSomeExtensions( MSIHANDLE handle, const int nStart, const int nEnd, bool bRegister )
+{ // Check all file extensions
+ int nIndex = nStart;
+
+ while ( ( g_Extensions[nIndex] != 0 ) && ( nIndex < nEnd ) )
+ {
+ registerForExtension( handle, nIndex++, bRegister );
+ }
+}
+
//----------------------------------------------------------
//----------------------------------------------------------
+//----------------------------------------------------------
+extern "C" UINT __stdcall LookForRegisteredExtensions( MSIHANDLE handle )
+{
+ OutputDebugStringFormat( "LookForRegisteredExtensions: " );
+
+ INSTALLSTATE current_state;
+ INSTALLSTATE future_state;
+
+ bool bWriterEnabled = false;
+ bool bCalcEnabled = false;
+ bool bImpressEnabled = false;
+ bool bRegisterNone = IsSetMsiProp( handle, "REGISTER_NO_MSO_TYPES" );
+
+ if ( ( ERROR_SUCCESS == MsiGetFeatureState( handle, L"gm_p_Wrt", &current_state, &future_state ) ) &&
+ ( (future_state == INSTALLSTATE_LOCAL) || ((current_state == INSTALLSTATE_LOCAL) && (future_state == INSTALLSTATE_UNKNOWN) ) ) )
+ bWriterEnabled = true;
+
+ OutputDebugStringFormat( "LookForRegisteredExtensions: Install state Writer is [%d], will be [%d]", current_state, future_state );
+ if ( bWriterEnabled )
+ OutputDebugStringFormat( "LookForRegisteredExtensions: Writer is enabled" );
+ else
+ OutputDebugStringFormat( "LookForRegisteredExtensions: Writer is NOT enabled" );
+
+ if ( ( ERROR_SUCCESS == MsiGetFeatureState( handle, L"gm_p_Calc", &current_state, &future_state ) ) &&
+ ( (future_state == INSTALLSTATE_LOCAL) || ((current_state == INSTALLSTATE_LOCAL) && (future_state == INSTALLSTATE_UNKNOWN) ) ) )
+ bCalcEnabled = true;
+
+ OutputDebugStringFormat( "LookForRegisteredExtensions: Install state Calc is [%d], will be [%d]", current_state, future_state );
+ if ( bCalcEnabled )
+ OutputDebugStringFormat( "LookForRegisteredExtensions: Calc is enabled" );
+ else
+ OutputDebugStringFormat( "LookForRegisteredExtensions: Calc is NOT enabled" );
+
+ if ( ( ERROR_SUCCESS == MsiGetFeatureState( handle, L"gm_p_Impress", &current_state, &future_state ) ) &&
+ ( (future_state == INSTALLSTATE_LOCAL) || ((current_state == INSTALLSTATE_LOCAL) && (future_state == INSTALLSTATE_UNKNOWN) ) ) )
+ bImpressEnabled = true;
+
+ OutputDebugStringFormat( "LookForRegisteredExtensions: Install state Impress is [%d], will be [%d]", current_state, future_state );
+ if ( bImpressEnabled )
+ OutputDebugStringFormat( "LookForRegisteredExtensions: Impress is enabled" );
+ else
+ OutputDebugStringFormat( "LookForRegisteredExtensions: Impress is NOT enabled" );
+
+ MsiSetPropertyA( handle, "SELECT_WORD", "" );
+ MsiSetPropertyA( handle, "SELECT_EXCEL", "" );
+ MsiSetPropertyA( handle, "SELECT_POWERPOINT", "" );
+
+ if ( ! bRegisterNone )
+ {
+ if ( IsSetMsiProp( handle, "REGISTER_ALL_MSO_TYPES" ) )
+ {
+ if ( bWriterEnabled )
+ MsiSetPropertyA( handle, "SELECT_WORD", "1" );
+ if ( bCalcEnabled )
+ MsiSetPropertyA( handle, "SELECT_EXCEL", "1" );
+ if ( bImpressEnabled )
+ MsiSetPropertyA( handle, "SELECT_POWERPOINT", "1" );
+ }
+ else
+ {
+ if ( bWriterEnabled && ! checkSomeExtensionInRegistry( WORD_START, EXCEL_START ) )
+ {
+ MsiSetPropertyA( handle, "SELECT_WORD", "1" );
+ OutputDebugStringFormat( "LookForRegisteredExtensions: Register for MicroSoft Word" );
+ }
+ if ( bCalcEnabled && ! checkSomeExtensionInRegistry( EXCEL_START, POWERPOINT_START ) )
+ {
+ MsiSetPropertyA( handle, "SELECT_EXCEL", "1" );
+ OutputDebugStringFormat( "LookForRegisteredExtensions: Register for MicroSoft Excel" );
+ }
+ if ( bImpressEnabled && ! checkSomeExtensionInRegistry( POWERPOINT_START, POWERPOINT_END ) )
+ {
+ MsiSetPropertyA( handle, "SELECT_POWERPOINT", "1" );
+ OutputDebugStringFormat( "LookForRegisteredExtensions: Register for MicroSoft PowerPoint" );
+ }
+ }
+ }
+
+ MsiSetPropertyA( handle, "FILETYPEDIALOGUSED", "1" );
+
+ return ERROR_SUCCESS;
+}
+
+//----------------------------------------------------------
+extern "C" UINT __stdcall RegisterSomeExtensions( MSIHANDLE handle )
+{
+ OutputDebugStringFormat( "RegisterSomeExtensions: " );
+
+ if ( IsSetMsiProp( handle, "SELECT_WORD" ) )
+ {
+ registerSomeExtensions( handle, WORD_START, EXCEL_START, true );
+ MsiSetFeatureState( handle, L"gm_p_Wrt_MSO_Reg", INSTALLSTATE_LOCAL );
+ OutputDebugStringFormat( "RegisterSomeExtensions: Register for MicroSoft Word" );
+ }
+ else
+ {
+ registerSomeExtensions( handle, WORD_START, EXCEL_START, false );
+ MsiSetFeatureState( handle, L"gm_p_Wrt_MSO_Reg", INSTALLSTATE_ABSENT );
+ }
+
+ if ( IsSetMsiProp( handle, "SELECT_EXCEL" ) )
+ {
+ registerSomeExtensions( handle, EXCEL_START, POWERPOINT_START, true );
+ MsiSetFeatureState( handle, L"gm_p_Calc_MSO_Reg", INSTALLSTATE_LOCAL );
+ OutputDebugStringFormat( "RegisterSomeExtensions: Register for MicroSoft Excel" );
+ }
+ else
+ {
+ registerSomeExtensions( handle, EXCEL_START, POWERPOINT_START, false );
+ MsiSetFeatureState( handle, L"gm_p_Calc_MSO_Reg", INSTALLSTATE_ABSENT );
+ }
+
+ if ( IsSetMsiProp( handle, "SELECT_POWERPOINT" ) )
+ {
+ registerSomeExtensions( handle, POWERPOINT_START, POWERPOINT_END, true );
+ MsiSetFeatureState( handle, L"gm_p_Impress_MSO_Reg", INSTALLSTATE_LOCAL );
+ OutputDebugStringFormat( "RegisterSomeExtensions: Register for MicroSoft PowerPoint" );
+ }
+ else
+ {
+ registerSomeExtensions( handle, POWERPOINT_START, POWERPOINT_END, false );
+ MsiSetFeatureState( handle, L"gm_p_Impress_MSO_Reg", INSTALLSTATE_ABSENT );
+ }
+
+ return ERROR_SUCCESS;
+}
+
+//----------------------------------------------------------
extern "C" UINT __stdcall FindRegisteredExtensions( MSIHANDLE handle )
{
+ if ( IsSetMsiProp( handle, "FILETYPEDIALOGUSED" ) )
+ {
+ OutputDebugStringFormat( "FindRegisteredExtensions: FILETYPEDIALOGUSED!" );
+ return ERROR_SUCCESS;
+ }
+
+ OutputDebugStringFormat( "FindRegisteredExtensions:" );
+
bool bRegisterAll = IsSetMsiProp( handle, "REGISTER_ALL_MSO_TYPES" );
if ( IsSetMsiProp( handle, "REGISTER_NO_MSO_TYPES" ) )
@@ -300,6 +470,15 @@ extern "C" UINT __stdcall FindRegisteredExtensions( MSIHANDLE handle )
else
OutputDebugStringFormat( "FindRegisteredExtensions: " );
+ // setting the msi properties SELECT_* will force registering for all corresponding
+ // file types
+ if ( IsSetMsiProp( handle, "SELECT_WORD" ) )
+ registerSomeExtensions( handle, WORD_START, EXCEL_START, true );
+ if ( IsSetMsiProp( handle, "SELECT_EXCEL" ) )
+ registerSomeExtensions( handle, EXCEL_START, POWERPOINT_START, true );
+ if ( IsSetMsiProp( handle, "SELECT_POWERPOINT" ) )
+ registerSomeExtensions( handle, POWERPOINT_START, POWERPOINT_END, true );
+
registerForExtensions( handle, bRegisterAll );
return ERROR_SUCCESS;
diff --git a/sfx2/inc/sfx2/viewsh.hxx b/sfx2/inc/sfx2/viewsh.hxx
index 0109bbbf602d..8465a238cd5b 100644
--- a/sfx2/inc/sfx2/viewsh.hxx
+++ b/sfx2/inc/sfx2/viewsh.hxx
@@ -59,6 +59,7 @@ class SfxTabPage;
class SfxPrintMonitor;
class SfxFrameSetDescriptor;
class PrintDialog;
+class Printer;
class SfxPrinter;
class SfxProgress;
class SvStringsDtor;
@@ -149,6 +150,7 @@ class SFX2_DLLPUBLIC SfxViewShell: public SfxShell, public SfxListener
friend class SfxViewFrame;
friend class SfxPlugInFrame;
friend class SfxBaseController;
+friend class SfxPrinterController;
#endif
struct SfxViewShell_Impl* pImp;
@@ -188,10 +190,6 @@ public:
SfxViewShell( SfxViewFrame *pFrame, USHORT nFlags = 0 );
virtual ~SfxViewShell();
- // In-Place
- // should be superfluous
- //virtual SfxInPlaceClient* CreateIPClient( WorkWindow * pTop, WorkWindow * pDoc, Window * pDraw );
-
SfxInPlaceClient* GetIPClient() const;
SfxInPlaceClient* GetUIActiveClient() const;
SfxInPlaceClient* FindIPClient( const ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject >& xObj, Window *pObjParentWin ) const;
@@ -250,6 +248,7 @@ public:
void LockPrinter( BOOL bLock = TRUE );
BOOL IsPrinterLocked() const;
virtual JobSetup GetJobSetup() const;
+ Printer* GetActivePrinter() const;
// Workingset
virtual void WriteUserData( String&, BOOL bBrowse = FALSE );
diff --git a/sfx2/prj/build.lst b/sfx2/prj/build.lst
index 89e618e8fc12..3e791fbc2000 100644
--- a/sfx2/prj/build.lst
+++ b/sfx2/prj/build.lst
@@ -21,3 +21,4 @@ sf sfx2\source\toolbox nmake - all sf_tbox sf_sdi sf_inc NULL
sf sfx2\source\inet nmake - all sf_inet sf_sdi sf_inc NULL
sf sfx2\source\explorer nmake - all sf_expl sf_sdi sf_inc NULL
sf sfx2\util nmake - all sf_util sf_appl sf_bast sf_cnfg sf_ctrl sf_dlg sf_doc sf_expl sf_inet sf_menu sf_layout sf_noti sf_sbar sf_tbox sf_view NULL
+sf sfx2\qa\unoapi nmake - all sf_qa_unoapi NULL
diff --git a/sfx2/qa/complex/docinfo/makefile.mk b/sfx2/qa/complex/docinfo/makefile.mk
index 18cfdb534450..8c3525541062 100644
--- a/sfx2/qa/complex/docinfo/makefile.mk
+++ b/sfx2/qa/complex/docinfo/makefile.mk
@@ -53,4 +53,4 @@ JARCOMPRESS = TRUE
run:
- $(JAVAI) -cp $(CLASSPATH) org.openoffice.Runner -TestBase java_complex -o $(PACKAGE:s#$/#.#).$(JAVAFILES:b)
+ $(JAVAI) $(JAVAIFLAGS) -cp $(CLASSPATH) org.openoffice.Runner -TestBase java_complex -o $(PACKAGE:s#$/#.#).$(JAVAFILES:b)
diff --git a/sfx2/qa/unoapi/Test.java b/sfx2/qa/unoapi/Test.java
new file mode 100644
index 000000000000..4263985c133f
--- /dev/null
+++ b/sfx2/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.sfx2.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "sfx.sce", "-xcl", "knownissues.xcl", "-tdoc",
+ "testdocuments", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/sfx2/qa/unoapi/makefile.mk b/sfx2/qa/unoapi/makefile.mk
index 3b078237f163..ea91ba4d1c44 100644
--- a/sfx2/qa/unoapi/makefile.mk
+++ b/sfx2/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,19 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=sfx2
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = sfx2
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/sfx2/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce sfx.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
+.END
diff --git a/sfx2/source/appl/appuno.cxx b/sfx2/source/appl/appuno.cxx
index 8b7e06c231cd..fd33e21ea645 100644
--- a/sfx2/source/appl/appuno.cxx
+++ b/sfx2/source/appl/appuno.cxx
@@ -144,53 +144,53 @@ using namespace ::com::sun::star::io;
#define FRAMELOADER_SERVICENAME "com.sun.star.frame.FrameLoader"
#define PROTOCOLHANDLER_SERVICENAME "com.sun.star.frame.ProtocolHandler"
-static const String sTemplateRegionName = String::CreateFromAscii( "TemplateRegionName" );
-static const String sTemplateName = String::CreateFromAscii( "TemplateName" );
-static const String sAsTemplate = String::CreateFromAscii( "AsTemplate" );
-static const String sOpenNewView = String::CreateFromAscii( "OpenNewView" );
-static const String sViewId = String::CreateFromAscii( "ViewId" );
-static const String sPluginMode = String::CreateFromAscii( "PluginMode" );
-static const String sReadOnly = String::CreateFromAscii( "ReadOnly" );
-static const String sStartPresentation = String::CreateFromAscii( "StartPresentation" );
-static const String sFrameName = String::CreateFromAscii( "FrameName" );
-static const String sMediaType = String::CreateFromAscii( "MediaType" );
-static const String sPostData = String::CreateFromAscii( "PostData" );
-static const String sCharacterSet = String::CreateFromAscii( "CharacterSet" );
-static const String sInputStream = String::CreateFromAscii( "InputStream" );
-static const String sStream = String::CreateFromAscii( "Stream" );
-static const String sOutputStream = String::CreateFromAscii( "OutputStream" );
-static const String sHidden = String::CreateFromAscii( "Hidden" );
-static const String sPreview = String::CreateFromAscii( "Preview" );
-static const String sViewOnly = String::CreateFromAscii( "ViewOnly" );
-static const String sDontEdit = String::CreateFromAscii( "DontEdit" );
-static const String sSilent = String::CreateFromAscii( "Silent" );
-static const String sJumpMark = String::CreateFromAscii( "JumpMark" );
-static const String sFileName = String::CreateFromAscii( "FileName" );
-static const String sSalvageURL = String::CreateFromAscii( "SalvagedFile" );
-static const String sStatusInd = String::CreateFromAscii( "StatusIndicator" );
-static const String sModel = String::CreateFromAscii( "Model" );
-static const String sFrame = String::CreateFromAscii( "Frame" );
-static const String sViewData = String::CreateFromAscii( "ViewData" );
-static const String sFilterData = String::CreateFromAscii( "FilterData" );
-static const String sSelectionOnly = String::CreateFromAscii( "SelectionOnly" );
-static const String sFilterFlags = String::CreateFromAscii( "FilterFlags" );
-static const String sMacroExecMode = String::CreateFromAscii( "MacroExecutionMode" );
-static const String sUpdateDocMode = String::CreateFromAscii( "UpdateDocMode" );
-static const String sMinimized = String::CreateFromAscii( "Minimized" );
-static const String sInteractionHdl = String::CreateFromAscii( "InteractionHandler" );
-static const String sUCBContent = String::CreateFromAscii( "UCBContent" );
-static const String sRepairPackage = String::CreateFromAscii( "RepairPackage" );
-static const String sDocumentTitle = String::CreateFromAscii( "DocumentTitle" );
-static const String sComponentData = String::CreateFromAscii( "ComponentData" );
-static const String sComponentContext = String::CreateFromAscii( "ComponentContext" );
-static const String sDocumentBaseURL = String::CreateFromAscii( "DocumentBaseURL" );
-static const String sHierarchicalDocumentName = String::CreateFromAscii( "HierarchicalDocumentName" );
-static const String sCopyStreamIfPossible = String::CreateFromAscii( "CopyStreamIfPossible" );
-static const String sNoAutoSave = String::CreateFromAscii( "NoAutoSave" );
-static const String sFolderName = String::CreateFromAscii( "FolderName" );
-static const String sUseSystemDialog = String::CreateFromAscii( "UseSystemDialog" );
-static const String sStandardDir = String::CreateFromAscii( "StandardDir" );
-static const String sBlackList = String::CreateFromAscii( "BlackList" );
+static char const sTemplateRegionName[] = "TemplateRegionName";
+static char const sTemplateName[] = "TemplateName";
+static char const sAsTemplate[] = "AsTemplate";
+static char const sOpenNewView[] = "OpenNewView";
+static char const sViewId[] = "ViewId";
+static char const sPluginMode[] = "PluginMode";
+static char const sReadOnly[] = "ReadOnly";
+static char const sStartPresentation[] = "StartPresentation";
+static char const sFrameName[] = "FrameName";
+static char const sMediaType[] = "MediaType";
+static char const sPostData[] = "PostData";
+static char const sCharacterSet[] = "CharacterSet";
+static char const sInputStream[] = "InputStream";
+static char const sStream[] = "Stream";
+static char const sOutputStream[] = "OutputStream";
+static char const sHidden[] = "Hidden";
+static char const sPreview[] = "Preview";
+static char const sViewOnly[] = "ViewOnly";
+static char const sDontEdit[] = "DontEdit";
+static char const sSilent[] = "Silent";
+static char const sJumpMark[] = "JumpMark";
+static char const sFileName[] = "FileName";
+static char const sSalvageURL[] = "SalvagedFile";
+static char const sStatusInd[] = "StatusIndicator";
+static char const sModel[] = "Model";
+static char const sFrame[] = "Frame";
+static char const sViewData[] = "ViewData";
+static char const sFilterData[] = "FilterData";
+static char const sSelectionOnly[] = "SelectionOnly";
+static char const sFilterFlags[] = "FilterFlags";
+static char const sMacroExecMode[] = "MacroExecutionMode";
+static char const sUpdateDocMode[] = "UpdateDocMode";
+static char const sMinimized[] = "Minimized";
+static char const sInteractionHdl[] = "InteractionHandler";
+static char const sUCBContent[] = "UCBContent";
+static char const sRepairPackage[] = "RepairPackage";
+static char const sDocumentTitle[] = "DocumentTitle";
+static char const sComponentData[] = "ComponentData";
+static char const sComponentContext[] = "ComponentContext";
+static char const sDocumentBaseURL[] = "DocumentBaseURL";
+static char const sHierarchicalDocumentName[] = "HierarchicalDocumentName";
+static char const sCopyStreamIfPossible[] = "CopyStreamIfPossible";
+static char const sNoAutoSave[] = "NoAutoSave";
+static char const sFolderName[] = "FolderName";
+static char const sUseSystemDialog[] = "UseSystemDialog";
+static char const sStandardDir[] = "StandardDir";
+static char const sBlackList[] = "BlackList";
void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>& rArgs, SfxAllItemSet& rSet, const SfxSlot* pSlot )
{
@@ -465,15 +465,15 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
for ( sal_uInt16 n=0; n<nCount; n++ )
{
const ::com::sun::star::beans::PropertyValue& rProp = pPropsVal[n];
- String aName = rProp.Name;
- if ( aName == sFrame )
+ rtl::OUString aName = rProp.Name;
+ if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sFrame)) )
{
Reference< XFrame > xFrame;
OSL_VERIFY( rProp.Value >>= xFrame );
rSet.Put( SfxUnoFrameItem( SID_FILLFRAME, xFrame ) );
}
else
- if ( aName == sHidden )
+ if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sHidden)) )
{
sal_Bool bVal = sal_False;
if (rProp.Value >>= bVal)
@@ -490,18 +490,18 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
++nFoundArgs;
#endif
const ::com::sun::star::beans::PropertyValue& rProp = pPropsVal[n];
- String aName = rProp.Name;
- if ( aName == sModel )
+ rtl::OUString aName = rProp.Name;
+ if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sModel)) )
rSet.Put( SfxUnoAnyItem( SID_DOCUMENT, rProp.Value ) );
- else if ( aName == sComponentData )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sComponentData)) )
{
rSet.Put( SfxUnoAnyItem( SID_COMPONENTDATA, rProp.Value ) );
}
- else if ( aName == sComponentContext )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sComponentContext)) )
{
rSet.Put( SfxUnoAnyItem( SID_COMPONENTCONTEXT, rProp.Value ) );
}
- else if ( aName == sStatusInd )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sStatusInd)) )
{
Reference< ::com::sun::star::task::XStatusIndicator > xVal;
sal_Bool bOK = ((rProp.Value >>= xVal) && xVal.is());
@@ -509,7 +509,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxUnoAnyItem( SID_PROGRESS_STATUSBAR_CONTROL, rProp.Value ) );
}
- else if ( aName == sInteractionHdl )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sInteractionHdl)) )
{
Reference< ::com::sun::star::task::XInteractionHandler > xVal;
sal_Bool bOK = ((rProp.Value >>= xVal) && xVal.is());
@@ -517,11 +517,11 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxUnoAnyItem( SID_INTERACTIONHANDLER, rProp.Value ) );
}
- else if ( aName == sViewData )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sViewData)) )
rSet.Put( SfxUnoAnyItem( SID_VIEW_DATA, rProp.Value ) );
- else if ( aName == sFilterData )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sFilterData)) )
rSet.Put( SfxUnoAnyItem( SID_FILTER_DATA, rProp.Value ) );
- else if ( aName == sInputStream )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sInputStream)) )
{
Reference< XInputStream > xVal;
sal_Bool bOK = ((rProp.Value >>= xVal) && xVal.is());
@@ -529,7 +529,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxUnoAnyItem( SID_INPUTSTREAM, rProp.Value ) );
}
- else if ( aName == sStream )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sStream)) )
{
Reference< XInputStream > xVal;
sal_Bool bOK = ((rProp.Value >>= xVal) && xVal.is());
@@ -537,7 +537,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxUnoAnyItem( SID_STREAM, rProp.Value ) );
}
- else if ( aName == sUCBContent )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sUCBContent)) )
{
Reference< XContent > xVal;
sal_Bool bOK = ((rProp.Value >>= xVal) && xVal.is());
@@ -545,7 +545,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxUnoAnyItem( SID_CONTENT, rProp.Value ) );
}
- else if ( aName == sOutputStream )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sOutputStream)) )
{
Reference< XOutputStream > xVal;
sal_Bool bOK = ((rProp.Value >>= xVal) && xVal.is());
@@ -553,7 +553,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxUnoAnyItem( SID_OUTPUTSTREAM, rProp.Value ) );
}
- else if ( aName == sPostData )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sPostData)) )
{
Reference< XInputStream > xVal;
sal_Bool bOK = (rProp.Value >>= xVal);
@@ -561,7 +561,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxUnoAnyItem( SID_POSTDATA, rProp.Value ) );
}
- else if ( aName == sFrame )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sFrame)) )
{
Reference< XFrame > xFrame;
sal_Bool bOK = (rProp.Value >>= xFrame);
@@ -569,7 +569,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxUnoFrameItem( SID_FILLFRAME, xFrame ) );
}
- else if ( aName == sAsTemplate )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sAsTemplate)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -577,7 +577,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_TEMPLATE, bVal ) );
}
- else if ( aName == sOpenNewView )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sOpenNewView)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -585,7 +585,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_OPEN_NEW_VIEW, bVal ) );
}
- else if ( aName == sViewId )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sViewId)) )
{
sal_Int16 nVal = -1;
sal_Bool bOK = ((rProp.Value >>= nVal) && (nVal != -1));
@@ -593,7 +593,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxUInt16Item( SID_VIEW_ID, nVal ) );
}
- else if ( aName == sPluginMode )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sPluginMode)) )
{
sal_Int16 nVal = -1;
sal_Bool bOK = ((rProp.Value >>= nVal) && (nVal != -1));
@@ -601,7 +601,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxUInt16Item( SID_PLUGIN_MODE, nVal ) );
}
- else if ( aName == sReadOnly )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sReadOnly)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -609,7 +609,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_DOC_READONLY, bVal ) );
}
- else if ( aName == sStartPresentation )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sStartPresentation)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -617,7 +617,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_DOC_STARTPRESENTATION, bVal ) );
}
- else if ( aName == sSelectionOnly )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sSelectionOnly)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -625,7 +625,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_SELECTION, bVal ) );
}
- else if ( aName == sHidden )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sHidden)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -633,7 +633,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_HIDDEN, bVal ) );
}
- else if ( aName == sMinimized )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sMinimized)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -641,7 +641,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_MINIMIZED, bVal ) );
}
- else if ( aName == sSilent )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sSilent)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -649,7 +649,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_SILENT, bVal ) );
}
- else if ( aName == sPreview )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sPreview)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -657,7 +657,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_PREVIEW, bVal ) );
}
- else if ( aName == sViewOnly )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sViewOnly)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -665,7 +665,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_VIEWONLY, bVal ) );
}
- else if ( aName == sDontEdit )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sDontEdit)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -673,7 +673,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_EDITDOC, !bVal ) );
}
- else if ( aName == sUseSystemDialog )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sUseSystemDialog)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -681,7 +681,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_FILE_DIALOG, bVal ) );
}
- else if ( aName == sStandardDir )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sStandardDir)) )
{
::rtl::OUString sVal;
sal_Bool bOK = ((rProp.Value >>= sVal) && sVal.getLength());
@@ -689,7 +689,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_STANDARD_DIR, sVal ) );
}
- else if ( aName == sBlackList )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sBlackList)) )
{
::com::sun::star::uno::Sequence< ::rtl::OUString > xVal;
sal_Bool bOK = (rProp.Value >>= xVal);
@@ -701,7 +701,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
rSet.Put( stringList );
}
}
- else if ( aName == sFileName )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sFileName)) )
{
::rtl::OUString sVal;
sal_Bool bOK = ((rProp.Value >>= sVal) && sVal.getLength());
@@ -709,7 +709,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_FILE_NAME, sVal ) );
}
- else if ( aName == sSalvageURL )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sSalvageURL)) )
{
::rtl::OUString sVal;
sal_Bool bOK = (rProp.Value >>= sVal);
@@ -717,7 +717,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_DOC_SALVAGE, sVal ) );
}
- else if ( aName == sFolderName )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sFolderName)) )
{
::rtl::OUString sVal;
sal_Bool bOK = (rProp.Value >>= sVal);
@@ -725,7 +725,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_PATH, sVal ) );
}
- else if ( aName == sFrameName )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sFrameName)) )
{
::rtl::OUString sVal;
sal_Bool bOK = (rProp.Value >>= sVal);
@@ -733,7 +733,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK && sVal.getLength())
rSet.Put( SfxStringItem( SID_TARGETNAME, sVal ) );
}
- else if ( aName == sMediaType )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sMediaType)) )
{
::rtl::OUString sVal;
sal_Bool bOK = ((rProp.Value >>= sVal) && sVal.getLength());
@@ -741,7 +741,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_CONTENTTYPE, sVal ) );
}
- else if ( aName == sTemplateName )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sTemplateName)) )
{
::rtl::OUString sVal;
sal_Bool bOK = ((rProp.Value >>= sVal) && sVal.getLength());
@@ -749,7 +749,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_TEMPLATE_NAME, sVal ) );
}
- else if ( aName == sTemplateRegionName )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sTemplateRegionName)) )
{
::rtl::OUString sVal;
sal_Bool bOK = ((rProp.Value >>= sVal) && sVal.getLength());
@@ -757,7 +757,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_TEMPLATE_REGIONNAME, sVal ) );
}
- else if ( aName == sJumpMark )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sJumpMark)) )
{
::rtl::OUString sVal;
sal_Bool bOK = ((rProp.Value >>= sVal) && sVal.getLength());
@@ -765,7 +765,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_JUMPMARK, sVal ) );
}
- else if ( aName == sCharacterSet )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sCharacterSet)) )
{
::rtl::OUString sVal;
sal_Bool bOK = ((rProp.Value >>= sVal) && sVal.getLength());
@@ -773,7 +773,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_CHARSET, sVal ) );
}
- else if ( aName == sFilterFlags )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sFilterFlags)) )
{
::rtl::OUString sVal;
sal_Bool bOK = ((rProp.Value >>= sVal) && sVal.getLength());
@@ -781,7 +781,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_FILE_FILTEROPTIONS, sVal ) );
}
- else if ( aName == sMacroExecMode )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sMacroExecMode)) )
{
sal_Int16 nVal =-1;
sal_Bool bOK = ((rProp.Value >>= nVal) && (nVal != -1));
@@ -789,7 +789,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxUInt16Item( SID_MACROEXECMODE, nVal ) );
}
- else if ( aName == sUpdateDocMode )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sUpdateDocMode)) )
{
sal_Int16 nVal =-1;
sal_Bool bOK = ((rProp.Value >>= nVal) && (nVal != -1));
@@ -797,7 +797,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxUInt16Item( SID_UPDATEDOCMODE, nVal ) );
}
- else if ( aName == sRepairPackage )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sRepairPackage)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -805,7 +805,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_REPAIRPACKAGE, bVal ) );
}
- else if ( aName == sDocumentTitle )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sDocumentTitle)) )
{
::rtl::OUString sVal;
sal_Bool bOK = ((rProp.Value >>= sVal) && sVal.getLength());
@@ -813,7 +813,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_DOCINFO_TITLE, sVal ) );
}
- else if ( aName == sDocumentBaseURL )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sDocumentBaseURL)) )
{
::rtl::OUString sVal;
// the base url can be set to empty ( for embedded objects for example )
@@ -822,7 +822,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_DOC_BASEURL, sVal ) );
}
- else if ( aName == sHierarchicalDocumentName )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sHierarchicalDocumentName)) )
{
::rtl::OUString sVal;
sal_Bool bOK = ((rProp.Value >>= sVal) && sVal.getLength());
@@ -830,7 +830,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxStringItem( SID_DOC_HIERARCHICALNAME, sVal ) );
}
- else if ( aName == sCopyStreamIfPossible )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sCopyStreamIfPossible)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -838,7 +838,7 @@ void TransformParameters( sal_uInt16 nSlotId, const ::com::sun::star::uno::Seque
if (bOK)
rSet.Put( SfxBoolItem( SID_COPY_STREAM_IF_POSSIBLE, bVal ) );
}
- else if ( aName == sNoAutoSave )
+ else if ( aName.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM(sNoAutoSave)) )
{
sal_Bool bVal = sal_False;
sal_Bool bOK = (rProp.Value >>= bVal);
@@ -1320,67 +1320,67 @@ void TransformItems( sal_uInt16 nSlotId, const SfxItemSet& rSet, ::com::sun::sta
const SfxPoolItem *pItem=0;
if ( rSet.GetItemState( SID_COMPONENTDATA, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sComponentData;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sComponentData));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_COMPONENTCONTEXT, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sComponentContext;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sComponentContext));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_PROGRESS_STATUSBAR_CONTROL, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sStatusInd;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sStatusInd));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_INTERACTIONHANDLER, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sInteractionHdl;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sInteractionHdl));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_VIEW_DATA, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sViewData;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sViewData));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_FILTER_DATA, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sFilterData;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sFilterData));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_DOCUMENT, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sModel;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sModel));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_CONTENT, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sUCBContent;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sUCBContent));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_INPUTSTREAM, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sInputStream;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sInputStream));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_STREAM, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sStream;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sStream));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_OUTPUTSTREAM, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sOutputStream;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sOutputStream));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_POSTDATA, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sPostData;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sPostData));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_FILLFRAME, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sFrame;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sFrame));
if ( pItem->ISA( SfxUsrAnyItem ) )
{
OSL_ENSURE( false, "TransformItems: transporting an XFrame via an SfxUsrAnyItem is not deprecated!" );
@@ -1393,82 +1393,82 @@ void TransformItems( sal_uInt16 nSlotId, const SfxItemSet& rSet, ::com::sun::sta
}
if ( rSet.GetItemState( SID_TEMPLATE, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sAsTemplate;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sAsTemplate));
pValue[nActProp++].Value <<= ( ((SfxBoolItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_OPEN_NEW_VIEW, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sOpenNewView;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sOpenNewView));
pValue[nActProp++].Value <<= ( ((SfxBoolItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_VIEW_ID, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sViewId;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sViewId));
pValue[nActProp++].Value <<= ( (sal_Int16) ((SfxUInt16Item*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_PLUGIN_MODE, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sPluginMode;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sPluginMode));
pValue[nActProp++].Value <<= ( (sal_Int16) ((SfxUInt16Item*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_DOC_READONLY, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sReadOnly;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sReadOnly));
pValue[nActProp++].Value <<= ( ((SfxBoolItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_DOC_STARTPRESENTATION, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sStartPresentation;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sStartPresentation));
pValue[nActProp++].Value <<= ( ((SfxBoolItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_SELECTION, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sSelectionOnly;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sSelectionOnly));
pValue[nActProp++].Value <<= ( ((SfxBoolItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_HIDDEN, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sHidden;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sHidden));
pValue[nActProp++].Value <<= ( ((SfxBoolItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_MINIMIZED, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sMinimized;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sMinimized));
pValue[nActProp++].Value <<= ( ((SfxBoolItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_SILENT, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sSilent;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sSilent));
pValue[nActProp++].Value <<= ( ((SfxBoolItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_PREVIEW, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sPreview;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sPreview));
pValue[nActProp++].Value <<= ( ((SfxBoolItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_VIEWONLY, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sViewOnly;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sViewOnly));
pValue[nActProp++].Value <<= (sal_Bool) (( ((SfxBoolItem*)pItem)->GetValue() ));
}
if ( rSet.GetItemState( SID_EDITDOC, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sDontEdit;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sDontEdit));
pValue[nActProp++].Value <<= (sal_Bool) (!( ((SfxBoolItem*)pItem)->GetValue() ));
}
if ( rSet.GetItemState( SID_FILE_DIALOG, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sUseSystemDialog;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sUseSystemDialog));
pValue[nActProp++].Value <<= (sal_Bool) ( ((SfxBoolItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_STANDARD_DIR, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sStandardDir;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sStandardDir));
pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
}
if ( rSet.GetItemState( SID_BLACK_LIST, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sBlackList;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sBlackList));
com::sun::star::uno::Sequence< rtl::OUString > aList;
((SfxStringListItem*)pItem)->GetStringList( aList );
@@ -1476,83 +1476,83 @@ void TransformItems( sal_uInt16 nSlotId, const SfxItemSet& rSet, ::com::sun::sta
}
if ( rSet.GetItemState( SID_TARGETNAME, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sFrameName;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sFrameName));
pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
}
if ( rSet.GetItemState( SID_DOC_SALVAGE, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sSalvageURL;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sSalvageURL));
pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
}
if ( rSet.GetItemState( SID_PATH, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sFolderName;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sFolderName));
pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
}
if ( rSet.GetItemState( SID_CONTENTTYPE, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sMediaType;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sMediaType));
pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
}
if ( rSet.GetItemState( SID_TEMPLATE_NAME, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sTemplateName;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sTemplateName));
pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
}
if ( rSet.GetItemState( SID_TEMPLATE_REGIONNAME, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sTemplateRegionName;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sTemplateRegionName));
pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
}
if ( rSet.GetItemState( SID_JUMPMARK, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sJumpMark;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sJumpMark));
pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
}
if ( rSet.GetItemState( SID_CHARSET, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sCharacterSet;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sCharacterSet));
pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
}
if ( rSet.GetItemState( SID_MACROEXECMODE, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sMacroExecMode;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sMacroExecMode));
pValue[nActProp++].Value <<= ( (sal_Int16) ((SfxUInt16Item*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_UPDATEDOCMODE, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sUpdateDocMode;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sUpdateDocMode));
pValue[nActProp++].Value <<= ( (sal_Int16) ((SfxUInt16Item*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_REPAIRPACKAGE, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sRepairPackage;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sRepairPackage));
pValue[nActProp++].Value <<= ( ((SfxBoolItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_DOCINFO_TITLE, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sDocumentTitle;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sDocumentTitle));
pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
}
if ( rSet.GetItemState( SID_DOC_BASEURL, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sDocumentBaseURL;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sDocumentBaseURL));
pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
}
if ( rSet.GetItemState( SID_DOC_HIERARCHICALNAME, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sHierarchicalDocumentName;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sHierarchicalDocumentName));
pValue[nActProp++].Value <<= ( ::rtl::OUString(((SfxStringItem*)pItem)->GetValue()) );
}
if ( rSet.GetItemState( SID_COPY_STREAM_IF_POSSIBLE, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sCopyStreamIfPossible;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sCopyStreamIfPossible));
pValue[nActProp++].Value = ( ((SfxUnoAnyItem*)pItem)->GetValue() );
}
if ( rSet.GetItemState( SID_NOAUTOSAVE, sal_False, &pItem ) == SFX_ITEM_SET )
{
- pValue[nActProp].Name = sNoAutoSave;
+ pValue[nActProp].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(sNoAutoSave));
pValue[nActProp++].Value <<= ( ((SfxBoolItem*)pItem)->GetValue() );
}
diff --git a/sfx2/source/appl/sfxhelp.cxx b/sfx2/source/appl/sfxhelp.cxx
index 9ef635ae4786..b9ff344a1513 100644
--- a/sfx2/source/appl/sfxhelp.cxx
+++ b/sfx2/source/appl/sfxhelp.cxx
@@ -712,9 +712,6 @@ String SfxHelp::CreateHelpURL_Impl( const String& aCommandURL, const String& rM
return aHelpURL;
}
-static ::rtl::OUString OFFICE_HELP_TASK = ::rtl::OUString(DEFINE_CONST_UNICODE("OFFICE_HELP_TASK"));
-static ::rtl::OUString OFFICE_HELP = ::rtl::OUString(DEFINE_CONST_UNICODE("OFFICE_HELP" ));
-
SfxHelpWindow_Impl* impl_createHelp(Reference< XFrame >& rHelpTask ,
Reference< XFrame >& rHelpContent)
{
@@ -723,7 +720,7 @@ SfxHelpWindow_Impl* impl_createHelp(Reference< XFrame >& rHelpTask ,
// otherwhise - create new help task
Reference< XFrame > xHelpTask = xDesktop->findFrame(
- OFFICE_HELP_TASK,
+ ::rtl::OUString(DEFINE_CONST_UNICODE("OFFICE_HELP_TASK")),
FrameSearchFlag::TASKS | FrameSearchFlag::CREATE);
if (!xHelpTask.is())
return 0;
@@ -738,7 +735,7 @@ SfxHelpWindow_Impl* impl_createHelp(Reference< XFrame >& rHelpTask ,
if (xHelpTask->setComponent( xHelpWindow, Reference< XController >() ))
{
// Customize UI ...
- xHelpTask->setName( OFFICE_HELP_TASK );
+ xHelpTask->setName( ::rtl::OUString(DEFINE_CONST_UNICODE("OFFICE_HELP_TASK")) );
Reference< XPropertySet > xProps(xHelpTask, UNO_QUERY);
if (xProps.is())
@@ -752,13 +749,13 @@ SfxHelpWindow_Impl* impl_createHelp(Reference< XFrame >& rHelpTask ,
// This sub frame is created internaly (if we called new SfxHelpWindow_Impl() ...)
// It should exist :-)
- xHelpContent = xHelpTask->findFrame(OFFICE_HELP, FrameSearchFlag::CHILDREN);
+ xHelpContent = xHelpTask->findFrame(::rtl::OUString(DEFINE_CONST_UNICODE("OFFICE_HELP")), FrameSearchFlag::CHILDREN);
}
if (!xHelpContent.is())
delete pHelpWindow;
- xHelpContent->setName(OFFICE_HELP);
+ xHelpContent->setName(::rtl::OUString(DEFINE_CONST_UNICODE("OFFICE_HELP")));
rHelpTask = xHelpTask;
rHelpContent = xHelpContent;
@@ -828,10 +825,10 @@ BOOL SfxHelp::Start( const String& rURL, const Window* pWindow )
// in both cases)!
Reference< XFrame > xHelp = xDesktop->findFrame(
- OFFICE_HELP_TASK,
+ ::rtl::OUString(DEFINE_CONST_UNICODE("OFFICE_HELP_TASK")),
FrameSearchFlag::CHILDREN);
Reference< XFrame > xHelpContent = xDesktop->findFrame(
- OFFICE_HELP,
+ ::rtl::OUString(DEFINE_CONST_UNICODE("OFFICE_HELP")),
FrameSearchFlag::CHILDREN);
SfxHelpWindow_Impl* pHelpWindow = 0;
diff --git a/sfx2/source/appl/shutdownicon.cxx b/sfx2/source/appl/shutdownicon.cxx
index 1d85552e47ae..3fce25e7e0d6 100644
--- a/sfx2/source/appl/shutdownicon.cxx
+++ b/sfx2/source/appl/shutdownicon.cxx
@@ -33,6 +33,7 @@
#include <sfx2/app.hxx>
#include <vos/mutex.hxx>
#include <svtools/imagemgr.hxx>
+#include <svtools/miscopt.hxx>
// #include <cmdlineargs.hxx>
#include <com/sun/star/task/XInteractionHandler.hpp>
#include <com/sun/star/frame/XDispatchResultListener.hpp>
@@ -235,6 +236,7 @@ ShutdownIcon::ShutdownIcon( Reference< XMultiServiceFactory > aSMgr ) :
ShutdownIconServiceBase( m_aMutex ),
m_bVeto ( false ),
m_bListenForTermination ( false ),
+ m_bSystemDialogs( false ),
m_pResMgr( NULL ),
m_pFileDlg( NULL ),
m_xServiceManager( aSMgr ),
@@ -243,6 +245,7 @@ ShutdownIcon::ShutdownIcon( Reference< XMultiServiceFactory > aSMgr ) :
m_pPlugin( 0 ),
m_bInitialized( false )
{
+ m_bSystemDialogs = SvtMiscOptions().UseSystemFileDialog();
}
ShutdownIcon::~ShutdownIcon()
@@ -376,6 +379,16 @@ void ShutdownIcon::StartFileDialog()
{
::vos::OGuard aGuard( Application::GetSolarMutex() );
+ bool bDirty = ( m_bSystemDialogs != static_cast<bool>(SvtMiscOptions().UseSystemFileDialog()) );
+
+ if ( m_pFileDlg && bDirty )
+ {
+ // Destroy instance as changing the system file dialog setting
+ // forces us to create a new FileDialogHelper instance!
+ delete m_pFileDlg;
+ m_pFileDlg = NULL;
+ }
+
if ( !m_pFileDlg )
m_pFileDlg = new FileDialogHelper( WB_OPEN | SFXWB_MULTISELECTION, String() );
m_pFileDlg->StartExecuteModal( STATIC_LINK( this, ShutdownIcon, DialogClosedHdl_Impl ) );
@@ -512,8 +525,14 @@ IMPL_STATIC_LINK( ShutdownIcon, DialogClosedHdl_Impl, FileDialogHelper*, EMPTYAR
#ifdef WNT
// #103346 Destroy dialog to prevent problems with custom controls
- delete pThis->m_pFileDlg;
- pThis->m_pFileDlg = NULL;
+ // This fix is dependent on the dialog settings. Destroying the dialog here will
+ // crash the non-native dialog implementation! Therefore make this dependent on
+ // the settings.
+ if ( SvtMiscOptions().UseSystemFileDialog() )
+ {
+ delete pThis->m_pFileDlg;
+ pThis->m_pFileDlg = NULL;
+ }
#endif
LeaveModalMode();
diff --git a/sfx2/source/appl/shutdownicon.hxx b/sfx2/source/appl/shutdownicon.hxx
index 4e7cc6ecc247..d702f2a50977 100644
--- a/sfx2/source/appl/shutdownicon.hxx
+++ b/sfx2/source/appl/shutdownicon.hxx
@@ -52,6 +52,7 @@ class SFX2_DLLPUBLIC ShutdownIcon : public ShutdownIconServiceBase
::osl::Mutex m_aMutex;
bool m_bVeto;
bool m_bListenForTermination;
+ bool m_bSystemDialogs;
ResMgr* m_pResMgr;
sfx2::FileDialogHelper* m_pFileDlg;
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceManager;
diff --git a/sfx2/source/appl/shutdowniconw32.cxx b/sfx2/source/appl/shutdowniconw32.cxx
index c334fd750fc6..26fd35272a51 100644
--- a/sfx2/source/appl/shutdowniconw32.cxx
+++ b/sfx2/source/appl/shutdowniconw32.cxx
@@ -109,7 +109,7 @@ using namespace ::osl;
#define ICON_TEMPLATE 16
#define ICON_MACROLIBRARY 17
#define ICON_CONFIGURATION 18
-#define ICON_OPEN 19
+#define ICON_OPEN 5 // See index of open folder icon in shell32.dll
#define ICON_SETUP 500
#define SFX_TASKBAR_NOTIFICATION WM_USER+1
@@ -124,6 +124,7 @@ static void OnDrawItem(HWND hwnd, LPDRAWITEMSTRUCT lpdis);
typedef struct tagMYITEM
{
OUString text;
+ OUString module;
UINT iconId;
} MYITEM;
@@ -152,7 +153,7 @@ static bool isNT()
// -------------------------------
-static void addMenuItem( HMENU hMenu, UINT id, UINT iconId, const OUString& text, int& pos, int bOwnerdraw )
+static void addMenuItem( HMENU hMenu, UINT id, UINT iconId, const OUString& text, int& pos, int bOwnerdraw, const OUString& module )
{
MENUITEMINFOW mi;
memset( &mi, 0, sizeof( MENUITEMINFOW ) );
@@ -175,6 +176,7 @@ static void addMenuItem( HMENU hMenu, UINT id, UINT iconId, const OUString& text
MYITEM *pMyItem = new MYITEM;
pMyItem->text = text;
pMyItem->iconId = iconId;
+ pMyItem->module = module;
mi.dwItemData = (DWORD) pMyItem;
}
else
@@ -245,6 +247,8 @@ static HMENU createSystrayMenu( )
{ SvtModuleOptions::E_SMATH, IDM_MATH, ICON_MATH_DOCUMENT, MATH_URL },
};
+ OUString aEmpty;
+
// insert the menu entries for launching the applications
for ( size_t i = 0; i < sizeof( aMenuItems ) / sizeof( aMenuItems[0] ); ++i )
{
@@ -260,19 +264,21 @@ static HMENU createSystrayMenu( )
continue;
addMenuItem( hMenu, aMenuItems[i].nMenuItemID, aMenuItems[i].nMenuIconID,
- pShutdownIcon->GetUrlDescription( sURL ), pos, true );
+ pShutdownIcon->GetUrlDescription( sURL ), pos, true, aEmpty );
}
+
+
// insert the remaining menu entries
addMenuItem( hMenu, IDM_TEMPLATE, ICON_TEMPLATE,
- pShutdownIcon->GetResString( STR_QUICKSTART_FROMTEMPLATE ), pos, true);
- addMenuItem( hMenu, static_cast< UINT >( -1 ), 0, OUString(), pos, false );
- addMenuItem( hMenu, IDM_OPEN, ICON_OPEN, pShutdownIcon->GetResString( STR_QUICKSTART_FILEOPEN ), pos, true );
- addMenuItem( hMenu, static_cast< UINT >( -1 ), 0, OUString(), pos, false );
+ pShutdownIcon->GetResString( STR_QUICKSTART_FROMTEMPLATE ), pos, true, aEmpty);
+ addMenuItem( hMenu, static_cast< UINT >( -1 ), 0, OUString(), pos, false, aEmpty );
+ addMenuItem( hMenu, IDM_OPEN, ICON_OPEN, pShutdownIcon->GetResString( STR_QUICKSTART_FILEOPEN ), pos, true, OUString::createFromAscii( "SHELL32" ));
+ addMenuItem( hMenu, static_cast< UINT >( -1 ), 0, OUString(), pos, false, aEmpty );
#endif
- addMenuItem( hMenu, IDM_INSTALL,0, pShutdownIcon->GetResString( STR_QUICKSTART_PRELAUNCH ), pos, false );
- addMenuItem( hMenu, static_cast< UINT >( -1 ), 0, OUString(), pos, false );
- addMenuItem( hMenu, IDM_EXIT, 0, pShutdownIcon->GetResString( STR_QUICKSTART_EXIT ), pos, false );
+ addMenuItem( hMenu, IDM_INSTALL,0, pShutdownIcon->GetResString( STR_QUICKSTART_PRELAUNCH ), pos, false, aEmpty );
+ addMenuItem( hMenu, static_cast< UINT >( -1 ), 0, OUString(), pos, false, aEmpty );
+ addMenuItem( hMenu, IDM_EXIT, 0, pShutdownIcon->GetResString( STR_QUICKSTART_EXIT ), pos, false, aEmpty );
// indicate status of autostart folder
CheckMenuItem( hMenu, IDM_INSTALL, MF_BYCOMMAND | (ShutdownIcon::GetAutostart() ? MF_CHECKED : MF_UNCHECKED) );
@@ -736,11 +742,25 @@ void OnDrawItem(HWND /*hwnd*/, LPDRAWITEMSTRUCT lpdis)
x = aRect.left;
y = aRect.top;
- int cx = GetSystemMetrics( SM_CXSMICON );
- int cy = GetSystemMetrics( SM_CYSMICON );
- HICON hIcon = (HICON) LoadImageA( GetModuleHandle( NULL ), MAKEINTRESOURCE( pMyItem->iconId ),
- IMAGE_ICON, cx, cy,
- LR_DEFAULTCOLOR | LR_SHARED );
+ int cx = GetSystemMetrics( SM_CXSMICON );
+ int cy = GetSystemMetrics( SM_CYSMICON );
+ HICON hIcon( 0 );
+ HMODULE hModule( GetModuleHandle( NULL ) );
+
+ if ( pMyItem->module.getLength() > 0 )
+ {
+ LPCWSTR pModuleName = reinterpret_cast<LPCWSTR>( pMyItem->module.getStr() );
+ hModule = GetModuleHandleW( pModuleName );
+ if ( hModule == NULL )
+ {
+ LoadLibraryW( pModuleName );
+ hModule = GetModuleHandleW( pModuleName );
+ }
+ }
+
+ hIcon = (HICON) LoadImageA( hModule, MAKEINTRESOURCE( pMyItem->iconId ),
+ IMAGE_ICON, cx, cy,
+ LR_DEFAULTCOLOR | LR_SHARED );
// DrawIconEx( lpdis->hDC, x, y+(height-cy)/2, hIcon, cx, cy, 0, NULL, DI_NORMAL );
diff --git a/sfx2/source/doc/commitlistener.cxx b/sfx2/source/doc/commitlistener.cxx
deleted file mode 100644
index 9ca11a9eef82..000000000000
--- a/sfx2/source/doc/commitlistener.cxx
+++ /dev/null
@@ -1,81 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_sfx2.hxx"
-
-#include "commitlistener.hxx"
-
-using namespace ::com::sun::star;
-
-OChildCommitListen_Impl::OChildCommitListen_Impl( SfxBaseModel& aModel )
-: m_pModel( &aModel )
-{}
-
-OChildCommitListen_Impl::~OChildCommitListen_Impl()
-{}
-
-void OChildCommitListen_Impl::OwnerIsDisposed()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- m_pModel = NULL;
-}
-
-void SAL_CALL OChildCommitListen_Impl::preCommit( const ::com::sun::star::lang::EventObject& )
- throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
-{
- // not interesting
-}
-
-void SAL_CALL OChildCommitListen_Impl::commited( const ::com::sun::star::lang::EventObject& /*aEvent*/ )
- throw (::com::sun::star::uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- // StorageIsModified_Impl must not contain any locking!
- if ( m_pModel )
- m_pModel->StorageIsModified_Impl();
-}
-
-void SAL_CALL OChildCommitListen_Impl::preRevert( const ::com::sun::star::lang::EventObject& )
- throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException)
-{
- // not interesting
-}
-
-void SAL_CALL OChildCommitListen_Impl::reverted( const ::com::sun::star::lang::EventObject& )
- throw (::com::sun::star::uno::RuntimeException)
-{
- // not interesting
-}
-
-
-void SAL_CALL OChildCommitListen_Impl::disposing( const lang::EventObject& )
- throw ( uno::RuntimeException )
-{
- // not interesting
-}
-
diff --git a/sfx2/source/doc/commitlistener.hxx b/sfx2/source/doc/commitlistener.hxx
deleted file mode 100644
index 572da034cef1..000000000000
--- a/sfx2/source/doc/commitlistener.hxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 __COMMITLISTENER_HXX_
-#define __COMMITLISTENER_HXX_
-
-#include <com/sun/star/embed/XTransactionListener.hpp>
-#include <cppuhelper/implbase1.hxx>
-#include <osl/mutex.hxx>
-
-#include <sfx2/sfxbasemodel.hxx>
-
-class OChildCommitListen_Impl : public ::cppu::WeakImplHelper1 < ::com::sun::star::embed::XTransactionListener >
-{
- ::osl::Mutex m_aMutex;
- SfxBaseModel* m_pModel;
-
-public:
- OChildCommitListen_Impl( SfxBaseModel& aStorage );
- virtual ~OChildCommitListen_Impl();
-
- void OwnerIsDisposed();
-
- virtual void SAL_CALL preCommit( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL commited( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL preRevert( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL reverted( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException);
-
- virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
-};
-
-#endif
-
diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx
index 6696b7670c63..298da13be147 100644
--- a/sfx2/source/doc/docfile.cxx
+++ b/sfx2/source/doc/docfile.cxx
@@ -133,7 +133,6 @@ using namespace ::com::sun::star::io;
#include <unotools/saveopt.hxx>
#include <svl/documentlockfile.hxx>
-#include "opostponedtruncationstream.hxx"
#include "helper.hxx"
#include <sfx2/request.hxx> // SFX_ITEMSET_SET
#include <sfx2/app.hxx> // GetFilterMatcher
diff --git a/sfx2/source/doc/makefile.mk b/sfx2/source/doc/makefile.mk
index 7da456ebaa36..b766921e346b 100644
--- a/sfx2/source/doc/makefile.mk
+++ b/sfx2/source/doc/makefile.mk
@@ -75,7 +75,6 @@ SLOFILES = \
$(SLO)$/objembed.obj\
$(SLO)$/graphhelp.obj \
$(SLO)$/QuerySaveDocument.obj \
- $(SLO)$/opostponedtruncationstream.obj \
$(SLO)$/docinsert.obj \
$(SLO)$/docmacromode.obj \
$(SLO)$/SfxDocumentMetaData.obj \
diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx
index 6d8deb85b687..6e1d89f2a8cd 100644
--- a/sfx2/source/doc/objstor.cxx
+++ b/sfx2/source/doc/objstor.cxx
@@ -2548,6 +2548,7 @@ sal_Bool SfxObjectShell::DoSave_Impl( const SfxItemSet* pArgs )
// is a new medium "from scratch", so no version should be stored into it
SfxItemSet* pSet = new SfxAllItemSet(*pRetrMedium->GetItemSet());
pSet->ClearItem( SID_VERSION );
+ pSet->ClearItem( SID_DOC_BASEURL );
// create a medium as a copy; this medium is only for writingm, because it uses the same name as the original one
// writing is done through a copy, that will be transferred to the target ( of course after calling HandsOff )
@@ -2833,6 +2834,7 @@ sal_Bool SfxObjectShell::PreDoSaveAs_Impl
pMergedParams->ClearItem( SID_STREAM );
pMergedParams->ClearItem( SID_CONTENT );
pMergedParams->ClearItem( SID_DOC_READONLY );
+ pMergedParams->ClearItem( SID_DOC_BASEURL );
pMergedParams->ClearItem( SID_REPAIRPACKAGE );
diff --git a/sfx2/source/doc/opostponedtruncationstream.cxx b/sfx2/source/doc/opostponedtruncationstream.cxx
deleted file mode 100644
index 84b1d6a3906a..000000000000
--- a/sfx2/source/doc/opostponedtruncationstream.cxx
+++ /dev/null
@@ -1,491 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_sfx2.hxx"
-#include <osl/diagnose.h>
-
-#include <opostponedtruncationstream.hxx>
-
-using namespace ::com::sun::star;
-
-// ========================================================================
-struct PTFStreamData_Impl
-{
- uno::Reference< ucb::XSimpleFileAccess > m_xFileAccess;
- sal_Bool m_bDelete;
- ::rtl::OUString m_aURL;
-
- // the streams below are not visible from outside so there is no need to remember position
-
- // original stream related members
- uno::Reference< io::XStream > m_xOrigStream;
- uno::Reference< io::XTruncate > m_xOrigTruncate;
- uno::Reference< io::XSeekable > m_xOrigSeekable;
- uno::Reference< io::XInputStream > m_xOrigInStream;
- uno::Reference< io::XOutputStream > m_xOrigOutStream;
-
- sal_Bool m_bInOpen;
- sal_Bool m_bOutOpen;
-
- sal_Bool m_bPostponedTruncate;
-
-
- PTFStreamData_Impl(
- const uno::Reference< ucb::XSimpleFileAccess >& xFileAccess,
- sal_Bool bDelete,
- const ::rtl::OUString& aURL,
- const uno::Reference< io::XStream >& xOrigStream,
- const uno::Reference< io::XTruncate >& xOrigTruncate,
- const uno::Reference< io::XSeekable >& xOrigSeekable,
- const uno::Reference< io::XInputStream >& xOrigInStream,
- const uno::Reference< io::XOutputStream >& xOrigOutStream )
- : m_xFileAccess( xFileAccess )
- , m_bDelete( bDelete )
- , m_aURL( aURL )
- , m_xOrigStream( xOrigStream )
- , m_xOrigTruncate( xOrigTruncate )
- , m_xOrigSeekable( xOrigSeekable )
- , m_xOrigInStream( xOrigInStream )
- , m_xOrigOutStream( xOrigOutStream )
- , m_bInOpen( sal_False )
- , m_bOutOpen( sal_False )
- , m_bPostponedTruncate( sal_True )
- {}
-
- void NoPostponing()
- {
- m_bDelete = sal_False;
- m_bPostponedTruncate = sal_False;
- }
-};
-
-// ========================================================================
-// ------------------------------------------------------------------------
-OPostponedTruncationFileStream::OPostponedTruncationFileStream(
- const ::rtl::OUString& aURL,
- const uno::Reference< lang::XMultiServiceFactory >& /*xFactory*/,
- const uno::Reference< ucb::XSimpleFileAccess >& xFileAccess,
- const uno::Reference< io::XStream >& xOrigStream,
- sal_Bool bDelete )
-: m_pStreamData( NULL )
-{
- if ( !xFileAccess.is() || !xOrigStream.is() )
- throw uno::RuntimeException();
-
- uno::Reference< io::XTruncate > xOrigTruncate( xOrigStream, uno::UNO_QUERY_THROW );
- uno::Reference< io::XSeekable > xOrigSeekable( xOrigStream, uno::UNO_QUERY_THROW );
- uno::Reference< io::XInputStream > xOrigInStream = xOrigStream->getInputStream();
- uno::Reference< io::XOutputStream > xOrigOutStream = xOrigStream->getOutputStream();
- if ( !xOrigInStream.is() || !xOrigOutStream.is() )
- throw uno::RuntimeException();
-
- m_pStreamData = new PTFStreamData_Impl( xFileAccess, bDelete, aURL,
- xOrigStream, xOrigTruncate, xOrigSeekable, xOrigInStream, xOrigOutStream );
-}
-
-// ------------------------------------------------------------------------
-OPostponedTruncationFileStream::~OPostponedTruncationFileStream()
-{
- CloseAll_Impl();
-}
-
-// ------------------------------------------------------------------------
-void OPostponedTruncationFileStream::CloseAll_Impl()
-{
- if ( m_pStreamData )
- {
- sal_Bool bDelete = m_pStreamData->m_bDelete;
- ::rtl::OUString aURL = m_pStreamData->m_aURL;
- uno::Reference< ucb::XSimpleFileAccess > xFileAccess = m_pStreamData->m_xFileAccess;
-
- delete m_pStreamData;
- m_pStreamData = NULL;
-
- if ( bDelete && xFileAccess.is() && aURL.getLength() )
- {
- // delete the file
- try
- {
- xFileAccess->kill( aURL );
- } catch( uno::Exception& )
- {
- OSL_ENSURE( sal_False, "Could not remove the file!" );
- }
- }
- }
-}
-
-// ------------------------------------------------------------------------
-void OPostponedTruncationFileStream::CheckScheduledTruncation_Impl()
-{
- if ( !m_pStreamData )
- throw io::NotConnectedException();
-
- if ( m_pStreamData->m_bPostponedTruncate )
- {
- // the original stream data should be provided
- if ( !m_pStreamData->m_xOrigTruncate.is() )
- throw uno::RuntimeException();
-
- m_pStreamData->m_xOrigTruncate->truncate();
- m_pStreamData->NoPostponing();
- }
-}
-
-// com::sun::star::io::XStream
-// ------------------------------------------------------------------------
-uno::Reference< io::XInputStream > SAL_CALL OPostponedTruncationFileStream::getInputStream( )
- throw (uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_pStreamData )
- m_pStreamData->m_bInOpen = sal_True;
- return static_cast< io::XInputStream* >( this );
-}
-
-
-// ------------------------------------------------------------------------
-uno::Reference< io::XOutputStream > SAL_CALL OPostponedTruncationFileStream::getOutputStream( )
- throw (uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_pStreamData )
- m_pStreamData->m_bOutOpen = sal_True;
- return static_cast< io::XOutputStream* >( this );
-}
-
-
-
-// com::sun::star::io::XInputStream
-// ------------------------------------------------------------------------
-::sal_Int32 SAL_CALL OPostponedTruncationFileStream::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_pStreamData )
- throw io::NotConnectedException();
-
- if ( m_pStreamData->m_bPostponedTruncate )
- {
- // the stream must behave as truncated one
- aData.realloc( 0 );
- return 0;
- }
- else
- {
- // the original stream data should be provided
- if ( !m_pStreamData->m_xOrigInStream.is() )
- throw uno::RuntimeException();
-
- return m_pStreamData->m_xOrigInStream->readBytes( aData, nBytesToRead );
- }
-}
-
-
-// ------------------------------------------------------------------------
-::sal_Int32 SAL_CALL OPostponedTruncationFileStream::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_pStreamData )
- throw io::NotConnectedException();
-
- if ( m_pStreamData->m_bPostponedTruncate )
- {
- // the stream must behave as truncated one
- aData.realloc( 0 );
- return 0;
- }
- else
- {
- // the original stream data should be provided
- if ( !m_pStreamData->m_xOrigInStream.is() )
- throw uno::RuntimeException();
-
- return m_pStreamData->m_xOrigInStream->readBytes( aData, nMaxBytesToRead );
- }
-}
-
-// ------------------------------------------------------------------------
-void SAL_CALL OPostponedTruncationFileStream::skipBytes( ::sal_Int32 nBytesToSkip )
- throw (io::NotConnectedException, io::BufferSizeExceededException, io::IOException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pStreamData )
- throw io::NotConnectedException();
-
- if ( m_pStreamData->m_bPostponedTruncate )
- {
- // the stream must behave as truncated one
- if ( nBytesToSkip > 0 )
- throw io::BufferSizeExceededException();
-
- return;
- }
- else
- {
- // the original stream data should be provided
- if ( !m_pStreamData->m_xOrigInStream.is() )
- throw uno::RuntimeException();
-
- m_pStreamData->m_xOrigInStream->skipBytes( nBytesToSkip );
- }
-}
-
-
-// ------------------------------------------------------------------------
-::sal_Int32 SAL_CALL OPostponedTruncationFileStream::available( )
- throw (io::NotConnectedException, io::IOException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pStreamData )
- throw io::NotConnectedException();
-
- if ( m_pStreamData->m_bPostponedTruncate )
- {
- // the stream must behave as truncated one
- return 0;
- }
- else
- {
- // the original stream data should be provided
- if ( !m_pStreamData->m_xOrigInStream.is() )
- throw uno::RuntimeException();
-
- return m_pStreamData->m_xOrigInStream->available();
- }
-}
-
-
-// ------------------------------------------------------------------------
-void SAL_CALL OPostponedTruncationFileStream::closeInput()
- throw (io::NotConnectedException, io::IOException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pStreamData )
- throw io::NotConnectedException();
-
- m_pStreamData->m_bInOpen = sal_False;
- if ( !m_pStreamData->m_bOutOpen )
- CloseAll_Impl();
-}
-
-
-
-// com::sun::star::io::XOutputStream
-// ------------------------------------------------------------------------
-void SAL_CALL OPostponedTruncationFileStream::writeBytes( const uno::Sequence< ::sal_Int8 >& aData )
- throw (io::NotConnectedException, io::BufferSizeExceededException, io::IOException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pStreamData )
- throw io::NotConnectedException();
-
- // writing method must check the truncation
- CheckScheduledTruncation_Impl();
-
- // the original stream data should be provided
- if ( !m_pStreamData->m_xOrigOutStream.is() )
- throw uno::RuntimeException();
-
- m_pStreamData->m_xOrigOutStream->writeBytes( aData );
-}
-
-
-// ------------------------------------------------------------------------
-void SAL_CALL OPostponedTruncationFileStream::flush( )
- throw (io::NotConnectedException, io::BufferSizeExceededException, io::IOException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pStreamData )
- {
- OSL_ENSURE( sal_False, "flush() call on closed stream!\n" );
- return;
- // in future throw exception, for now some code might call flush() on closed stream
- // since file ucp implementation allows it
- // throw io::NotConnectedException();
- }
-
- if ( m_pStreamData->m_bPostponedTruncate )
- {
- // it is no writing call, thus must be ignored
- return;
- }
- else
- {
- // the original stream data should be provided
- if ( !m_pStreamData->m_xOrigOutStream.is() )
- throw uno::RuntimeException();
-
- m_pStreamData->m_xOrigOutStream->flush();
- }
-}
-
-
-// ------------------------------------------------------------------------
-void SAL_CALL OPostponedTruncationFileStream::closeOutput( )
- throw (io::NotConnectedException, io::BufferSizeExceededException, io::IOException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pStreamData )
- throw io::NotConnectedException();
-
- m_pStreamData->m_bOutOpen = sal_False;
- if ( !m_pStreamData->m_bInOpen )
- CloseAll_Impl();
-}
-
-
-
-// com::sun::star::io::XTruncate
-// ------------------------------------------------------------------------
-void SAL_CALL OPostponedTruncationFileStream::truncate( )
- throw (io::IOException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pStreamData )
- throw io::NotConnectedException();
-
- if ( m_pStreamData->m_bPostponedTruncate )
- {
- // the truncation is already scheduled, ignore
- return;
- }
- else
- {
- // the original stream data should be provided
- if ( !m_pStreamData->m_xOrigTruncate.is() )
- throw uno::RuntimeException();
-
- m_pStreamData->m_xOrigTruncate->truncate();
- }
-}
-
-
-
-// com::sun::star::io::XSeekable
-// ------------------------------------------------------------------------
-void SAL_CALL OPostponedTruncationFileStream::seek( ::sal_Int64 location )
- throw (lang::IllegalArgumentException, io::IOException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pStreamData )
- throw io::NotConnectedException();
-
- if ( m_pStreamData->m_bPostponedTruncate )
- {
- if ( location > 0 )
- throw lang::IllegalArgumentException();
-
- return;
- }
- else
- {
- // the original stream data should be provided
- if ( !m_pStreamData->m_xOrigSeekable.is() )
- throw uno::RuntimeException();
-
- m_pStreamData->m_xOrigSeekable->seek( location );
- }
-}
-
-
-// ------------------------------------------------------------------------
-::sal_Int64 SAL_CALL OPostponedTruncationFileStream::getPosition( )
- throw (io::IOException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pStreamData )
- throw io::NotConnectedException();
-
- if ( m_pStreamData->m_bPostponedTruncate )
- {
- return 0;
- }
- else
- {
- // the original stream data should be provided
- if ( !m_pStreamData->m_xOrigSeekable.is() )
- throw uno::RuntimeException();
-
- return m_pStreamData->m_xOrigSeekable->getPosition();
- }
-}
-
-
-// ------------------------------------------------------------------------
-::sal_Int64 SAL_CALL OPostponedTruncationFileStream::getLength( )
- throw (io::IOException, uno::RuntimeException)
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- if ( !m_pStreamData )
- throw io::NotConnectedException();
-
- if ( m_pStreamData->m_bPostponedTruncate )
- {
- return 0;
- }
- else
- {
- // the original stream data should be provided
- if ( !m_pStreamData->m_xOrigSeekable.is() )
- throw uno::RuntimeException();
-
- return m_pStreamData->m_xOrigSeekable->getLength();
- }
-}
-
-// ------------------------------------------------------------------------
-void SAL_CALL OPostponedTruncationFileStream::waitForCompletion()
- throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
-{
- if ( !m_pStreamData )
- throw io::NotConnectedException();
-
- if ( m_pStreamData->m_bPostponedTruncate )
- return;
-
- uno::Reference< io::XAsyncOutputMonitor > asyncOutputMonitor( m_pStreamData->m_xOrigOutStream, uno::UNO_QUERY );
- if ( asyncOutputMonitor.is() )
- asyncOutputMonitor->waitForCompletion();
-}
-
diff --git a/sfx2/source/doc/opostponedtruncationstream.hxx b/sfx2/source/doc/opostponedtruncationstream.hxx
deleted file mode 100644
index fe67319fbbe0..000000000000
--- a/sfx2/source/doc/opostponedtruncationstream.hxx
+++ /dev/null
@@ -1,122 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_OPOSTPONEDTRUNCATIONFILESTREAM_HXX
-#define _SFX_OPOSTPONEDTRUNCATIONFILESTREAM_HXX
-
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/uno/Reference.hxx>
-#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/io/XStream.hpp>
-#include <com/sun/star/embed/XTransactedObject.hpp>
-#include <com/sun/star/beans/XPropertySetInfo.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
-#include <com/sun/star/io/XAsyncOutputMonitor.hpp>
-#include <osl/mutex.hxx>
-#include <cppuhelper/implbase6.hxx>
-#include "sfx2/dllapi.h"
-
-//==================================================================
-// OPostponedTruncationFileStream
-//
-// Allows to get stream access to a file, where the first truncation
-// of the file is postponed till the first writing. If no writing happens
-// after the first truncation/creation, it has no effect. ( The postponing of
-// the creation can be switched off during initialization. Here the postponing
-// of the creation means that the file will be created immediatelly, but
-// if nothing is written into it, it will be removed during destruction
-// of the object. )
-//
-// On creation of this object the target file is scheduled for
-// creation/truncation. But the action happens only during the first
-// write access. After the first write access the object behaves
-// itself as the original stream.
-//==================================================================
-
-struct PTFStreamData_Impl;
-class SFX2_DLLPUBLIC OPostponedTruncationFileStream
- : public ::cppu::WeakImplHelper6 <
- ::com::sun::star::io::XStream,
- ::com::sun::star::io::XInputStream,
- ::com::sun::star::io::XOutputStream,
- ::com::sun::star::io::XTruncate,
- ::com::sun::star::io::XSeekable,
- ::com::sun::star::io::XAsyncOutputMonitor >
-{
- ::osl::Mutex m_aMutex;
- PTFStreamData_Impl* m_pStreamData;
-
- void CloseAll_Impl();
-
- void CheckScheduledTruncation_Impl();
-
-public:
-
- OPostponedTruncationFileStream(
- const ::rtl::OUString& aURL,
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory,
- const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess >& xFileAccess,
- const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xStream,
- sal_Bool bDelete );
-
- ~OPostponedTruncationFileStream();
-
-// com::sun::star::io::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);
-
-// com::sun::star::io::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);
-
-// com::sun::star::io::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);
-
-// com::sun::star::io::XTruncate
- virtual void SAL_CALL truncate( ) throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
-
-// com::sun::star::io::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);
-
-// ::com::sun::star::io::XAsyncOutputMonitor
- virtual void SAL_CALL waitForCompletion( ) throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
-
-};
-
-#endif //_SFX_OPOSTPONEDTRUNCATIONFILESTREAM_HXX
-
-
diff --git a/sfx2/source/doc/printhelper.cxx b/sfx2/source/doc/printhelper.cxx
index 459a142b9129..2cd195976832 100755
--- a/sfx2/source/doc/printhelper.cxx
+++ b/sfx2/source/doc/printhelper.cxx
@@ -266,17 +266,23 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SfxPrintHelper::getPrinter() thro
// object already disposed?
::vos::OGuard aGuard( Application::GetSolarMutex() );
- // Printer beschaffen
- SfxViewFrame *pViewFrm = m_pData->m_pObjectShell.Is() ?
- SfxViewFrame::GetFirst( m_pData->m_pObjectShell, sal_False ) : 0;
- if ( !pViewFrm )
- return uno::Sequence< beans::PropertyValue >();
+ // search for any view of this document that is currently printing
+ const Printer *pPrinter = NULL;
+ SfxViewFrame *pViewFrm = m_pData->m_pObjectShell.Is() ? SfxViewFrame::GetFirst( m_pData->m_pObjectShell, sal_False ) : 0;
+ SfxViewFrame* pFirst = pViewFrm;
+ while ( pViewFrm && !pPrinter )
+ {
+ pPrinter = pViewFrm->GetViewShell()->GetActivePrinter();
+ pViewFrm = SfxViewFrame::GetNext( *pViewFrm, m_pData->m_pObjectShell, sal_False );
+ }
+
+ // if no view is printing currently, use the permanent SfxPrinter instance
+ if ( !pPrinter && pFirst )
+ pPrinter = pFirst->GetViewShell()->GetPrinter(sal_True);
- const SfxPrinter *pPrinter = pViewFrm->GetViewShell()->GetPrinter(sal_True);
if ( !pPrinter )
return uno::Sequence< beans::PropertyValue >();
- // Printer Eigenschaften uebertragen
uno::Sequence< beans::PropertyValue > aPrinter(8);
aPrinter.getArray()[7].Name = DEFINE_CONST_UNICODE( "CanSetPaperSize" );
diff --git a/sfx2/source/view/view.hxx b/sfx2/source/view/view.hxx
deleted file mode 100644
index 20e542d90bc7..000000000000
--- a/sfx2/source/view/view.hxx
+++ /dev/null
@@ -1,27 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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/sfx2/source/view/viewimp.hxx b/sfx2/source/view/viewimp.hxx
index 69ce837fb023..1c9e219cf180 100644
--- a/sfx2/source/view/viewimp.hxx
+++ b/sfx2/source/view/viewimp.hxx
@@ -30,20 +30,16 @@
// include ---------------------------------------------------------------
-#ifndef __SBX_SBXOBJ_HXX
#include <basic/sbxobj.hxx>
-#endif
#include <sfx2/viewsh.hxx>
#include <sfx2/viewfrm.hxx> // SvBorder
#include <osl/mutex.hxx>
#include <cppuhelper/interfacecontainer.hxx>
-
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <svtools/acceleratorexecute.hxx>
-
#include <rtl/ref.hxx>
-
+#include <vcl/print.hxx>
#include <queue>
// forward ---------------------------------------------------------------
@@ -54,24 +50,6 @@ class SfxBaseController;
typedef SfxShell* SfxShellPtr_Impl;
SV_DECL_PTRARR( SfxShellArr_Impl, SfxShellPtr_Impl, 4, 4 )
-// struct SfxViewShell_Impl ----------------------------------------------
-#if 0
-class SfxAsyncPrintExec_Impl : public SfxListener
-{
- SfxViewShell* pView;
- ::std::queue < SfxRequest*> aReqs;
-
- virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
-
-public:
- SfxAsyncPrintExec_Impl( SfxViewShell* pShell)
- : pView( pShell )
- {}
-
- void AddRequest( SfxRequest& rReq );
-};
-#endif
-
class SfxClipboardChangeListener;
struct SfxViewShell_Impl
@@ -95,9 +73,9 @@ struct SfxViewShell_Impl
USHORT nFamily;
SfxBaseController* pController;
::svt::AcceleratorExecute* pAccExec;
-// SfxAsyncPrintExec_Impl* pPrinterCommandQueue;
com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue > aPrintOpts;
::rtl::Reference< SfxClipboardChangeListener > xClipboardListener;
+ vcl::PrinterController* pPrinterController;
SfxViewShell_Impl();
};
diff --git a/sfx2/source/view/viewprn.cxx b/sfx2/source/view/viewprn.cxx
index 2d5403b72abd..4d9016d81f6b 100644
--- a/sfx2/source/view/viewprn.cxx
+++ b/sfx2/source/view/viewprn.cxx
@@ -329,6 +329,9 @@ void SfxPrinterController::jobFinished( com::sun::star::view::PrintableState nSt
if ( m_bNeedsChange )
mpObjectShell->EnableSetModified( m_bOrigStatus );
+
+ if ( mpViewShell )
+ mpViewShell->pImp->pPrinterController = 0;
}
}
@@ -639,6 +642,8 @@ void SfxViewShell::ExecPrint( const uno::Sequence < beans::PropertyValue >& rPro
this,
rProps
) );
+ pImp->pPrinterController = pController.get();
+
SfxObjectShell *pObjShell = GetObjectShell();
pController->setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "JobName" ) ),
makeAny( rtl::OUString( pObjShell->GetTitle(0) ) ) );
@@ -653,6 +658,11 @@ void SfxViewShell::ExecPrint( const uno::Sequence < beans::PropertyValue >& rPro
Printer::PrintJob( pController, aJobSetup );
}
+Printer* SfxViewShell::GetActivePrinter() const
+{
+ return pImp->pPrinterController ? pImp->pPrinterController->getPrinter().get() : 0;
+}
+
void SfxViewShell::ExecPrint_Impl( SfxRequest &rReq )
{
// USHORT nCopies=1;
diff --git a/shell/qa/makefile.mk b/shell/qa/makefile.mk
index a9047f97cf83..cc91a6b1ad5c 100755
--- a/shell/qa/makefile.mk
+++ b/shell/qa/makefile.mk
@@ -37,6 +37,8 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:testjob by codegen.pl
diff --git a/shell/source/backends/kdebe/makefile.mk b/shell/source/backends/kdebe/makefile.mk
index b63e2332624f..31bf77b47b54 100644
--- a/shell/source/backends/kdebe/makefile.mk
+++ b/shell/source/backends/kdebe/makefile.mk
@@ -69,7 +69,7 @@ SHL1LINKFLAGS+=$(KDE_LIBS) -lkio
SHL1STDLIBS= \
$(CPPUHELPERLIB) \
$(CPPULIB) \
- $(SALLIB) \
+ $(SALLIB)
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/shell/source/backends/localebe/exports.map b/shell/source/backends/localebe/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/shell/source/backends/localebe/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/shell/source/backends/localebe/makefile.mk b/shell/source/backends/localebe/makefile.mk
index 8a05be4cb351..bd12bcdb28ce 100644
--- a/shell/source/backends/localebe/makefile.mk
+++ b/shell/source/backends/localebe/makefile.mk
@@ -62,7 +62,7 @@ SHL1STDLIBS= \
SHL1STDLIBS+= -framework CoreServices
.ENDIF
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/shell/source/backends/macbe/exports.map b/shell/source/backends/macbe/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/shell/source/backends/macbe/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/shell/source/backends/macbe/makefile.mk b/shell/source/backends/macbe/makefile.mk
index 7b42c8c577ce..c3a58ec9f5c6 100644
--- a/shell/source/backends/macbe/makefile.mk
+++ b/shell/source/backends/macbe/makefile.mk
@@ -67,7 +67,7 @@ SHL1STDLIBS= \
$(SALLIB) \
-framework Cocoa -framework SystemConfiguration
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/shell/source/backends/wininetbe/exports.map b/shell/source/backends/wininetbe/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/shell/source/backends/wininetbe/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/shell/source/backends/wininetbe/makefile.mk b/shell/source/backends/wininetbe/makefile.mk
index 0401cb88b7dd..9f79fa706fbf 100644
--- a/shell/source/backends/wininetbe/makefile.mk
+++ b/shell/source/backends/wininetbe/makefile.mk
@@ -58,7 +58,7 @@ SHL1STDLIBS= \
$(CPPULIB) \
$(SALLIB)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/shell/source/cmdmail/exports.map b/shell/source/cmdmail/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/shell/source/cmdmail/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/shell/source/cmdmail/makefile.mk b/shell/source/cmdmail/makefile.mk
index a7eaec1f89dd..5781afe8f5dd 100644
--- a/shell/source/cmdmail/makefile.mk
+++ b/shell/source/cmdmail/makefile.mk
@@ -53,7 +53,7 @@ SHL1STDLIBS=$(CPPULIB)\
$(CPPUHELPERLIB)\
$(SALLIB)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/shell/source/tools/lngconvex/lngconvex.cxx b/shell/source/tools/lngconvex/lngconvex.cxx
index 0d716d6c568d..1d8862153230 100644
--- a/shell/source/tools/lngconvex/lngconvex.cxx
+++ b/shell/source/tools/lngconvex/lngconvex.cxx
@@ -45,6 +45,7 @@
#include "osl/thread.h"
#include "osl/process.h"
#include "osl/file.hxx"
+#include "sal/main.h"
#include "tools/config.hxx"
#include "i18npool/mslangid.hxx"
@@ -565,7 +566,7 @@ void inflate_rc_template_to_file(
#define RC_HEADER(c) MAKE_ABSOLUTE((c).get_arg("-rch"))
#define RC_FOOTER(c) MAKE_ABSOLUTE((c).get_arg("-rcf"))
-int main(int argc, char* argv[])
+SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
{
try
{
diff --git a/shell/source/unix/exec/exports.map b/shell/source/unix/exec/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/shell/source/unix/exec/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/shell/source/unix/exec/makefile.mk b/shell/source/unix/exec/makefile.mk
index 2d9d5d250da4..4bf77436f668 100644
--- a/shell/source/unix/exec/makefile.mk
+++ b/shell/source/unix/exec/makefile.mk
@@ -56,7 +56,7 @@ SHL1IMPLIB=i$(TARGET)
SHL1IMPLIB=
.ENDIF
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/shell/source/unix/sysshell/recfile.map b/shell/source/unix/sysshell/recfile.map
index fa87f39161aa..7e454f111896 100755
--- a/shell/source/unix/sysshell/recfile.map
+++ b/shell/source/unix/sysshell/recfile.map
@@ -1,4 +1,4 @@
-RECFILE_1_0_0 {
+UDK_3_0_0 {
global:
add_to_recently_used_file_list;
local:
diff --git a/slideshow/source/engine/OGLTrans/exports.map b/slideshow/source/engine/OGLTrans/exports.map
deleted file mode 100644
index ebc8f13ea1bd..000000000000
--- a/slideshow/source/engine/OGLTrans/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SLI_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/slideshow/source/engine/OGLTrans/makefile.mk b/slideshow/source/engine/OGLTrans/makefile.mk
index 7e767ec8b1d1..dd945a06b1aa 100644
--- a/slideshow/source/engine/OGLTrans/makefile.mk
+++ b/slideshow/source/engine/OGLTrans/makefile.mk
@@ -68,7 +68,7 @@ SHL1IMPLIB=i$(TARGET)
SHL1LIBS=$(SLB)$/$(TARGET).lib
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
DEF1EXPORTFILE=exports.dxp
diff --git a/slideshow/source/engine/activities/activitybase.cxx b/slideshow/source/engine/activities/activitybase.cxx
index 06cc0739fe6b..479715b5ccd8 100644
--- a/slideshow/source/engine/activities/activitybase.cxx
+++ b/slideshow/source/engine/activities/activitybase.cxx
@@ -159,7 +159,7 @@ namespace slideshow
// ================================
// clamp nT to permissible [0,1] range
- nT = ::canvas::tools::clamp( nT, 0.0, 1.0 );
+ nT = ::basegfx::clamp( nT, 0.0, 1.0 );
// take acceleration/deceleration into account. if the sum
// of mnAccelerationFraction and mnDecelerationFraction
diff --git a/slideshow/source/engine/activities/continuouskeytimeactivitybase.cxx b/slideshow/source/engine/activities/continuouskeytimeactivitybase.cxx
index 11a8463d87f3..5c6943614437 100644
--- a/slideshow/source/engine/activities/continuouskeytimeactivitybase.cxx
+++ b/slideshow/source/engine/activities/continuouskeytimeactivitybase.cxx
@@ -35,6 +35,7 @@
#include <continuouskeytimeactivitybase.hxx>
+#include <boost/tuple/tuple.hpp>
#include <algorithm>
#include <iterator>
@@ -45,34 +46,14 @@ namespace slideshow
{
ContinuousKeyTimeActivityBase::ContinuousKeyTimeActivityBase( const ActivityParameters& rParms ) :
SimpleContinuousActivityBase( rParms ),
- maKeyTimes( rParms.maDiscreteTimes ),
- mnLastIndex( 0 )
+ maLerper( rParms.maDiscreteTimes )
{
- ENSURE_OR_THROW( maKeyTimes.size() > 1,
+ ENSURE_OR_THROW( rParms.maDiscreteTimes.size() > 1,
"ContinuousKeyTimeActivityBase::ContinuousKeyTimeActivityBase(): key times vector must have two entries or more" );
-
-#ifdef DBG_UTIL
- // check parameters: rKeyTimes must be sorted in
- // ascending order, and contain values only from the range
- // [0,1]
- for( ::std::size_t i=1, len=maKeyTimes.size(); i<len; ++i )
- {
- if( maKeyTimes[i] < 0.0 ||
- maKeyTimes[i] > 1.0 ||
- maKeyTimes[i-1] < 0.0 ||
- maKeyTimes[i-1] > 1.0 )
- {
- ENSURE_OR_THROW( false, "ContinuousKeyTimeActivityBase::ContinuousKeyTimeActivityBase(): time values not within [0,1] range!" );
- }
-
- if( maKeyTimes[i-1] > maKeyTimes[i] )
- {
- ENSURE_OR_THROW( false, "ContinuousKeyTimeActivityBase::ContinuousKeyTimeActivityBase(): time vector is not sorted in ascending order!" );
- }
- }
-
- // TODO(E2): check this also in production code?
-#endif
+ ENSURE_OR_THROW( rParms.maDiscreteTimes.front() == 0.0,
+ "ContinuousKeyTimeActivityBase::ContinuousKeyTimeActivityBase(): key times vector first entry must be zero" );
+ ENSURE_OR_THROW( rParms.maDiscreteTimes.back() <= 1.0,
+ "ContinuousKeyTimeActivityBase::ContinuousKeyTimeActivityBase(): key times vector last entry must be less or equal 1" );
}
void ContinuousKeyTimeActivityBase::simplePerform( double nSimpleTime,
@@ -81,40 +62,14 @@ namespace slideshow
// calc simple time from global time - sweep through the
// array multiple times for repeated animations (according to
// SMIL spec).
- const double nT( calcAcceleratedTime( nSimpleTime ) );
-
- // determine position within key times vector from
- // current simple time
-
- // shortcut: cached value still okay?
- if( maKeyTimes[ mnLastIndex ] < nT ||
- maKeyTimes[ mnLastIndex+1 ] >= nT )
- {
- // nope, find new index
- mnLastIndex = ::std::min< ::std::ptrdiff_t >(
- maKeyTimes.size()-2,
- // range is ensured by max below
- ::std::max< ::std::ptrdiff_t >(
- 0,
- ::std::distance( maKeyTimes.begin(),
- ::std::lower_bound( maKeyTimes.begin(),
- maKeyTimes.end(),
- nT ) ) - 1 ) );
- }
-
- OSL_ENSURE( mnLastIndex+1 < maKeyTimes.size(),
- "ContinuousKeyTimeActivityBase::simplePerform(): index out of range" );
-
- // mnLastIndex is now valid and up-to-date
+ double fAlpha( calcAcceleratedTime( nSimpleTime ) );
+ std::ptrdiff_t nIndex;
- // calc current simple time, as a fractional value ([0,1] range).
- // I.e. the relative position between the two index times.
- const double nCurrFractionalSimplTime( (nT - maKeyTimes[ mnLastIndex ]) /
- (maKeyTimes[ mnLastIndex+1 ] - maKeyTimes[ mnLastIndex ]) );
+ boost::tuples::tie(nIndex,fAlpha) = maLerper.lerp(fAlpha);
perform(
- mnLastIndex,
- nCurrFractionalSimplTime,
+ nIndex,
+ fAlpha,
nRepeatCount );
}
}
diff --git a/slideshow/source/engine/activities/continuouskeytimeactivitybase.hxx b/slideshow/source/engine/activities/continuouskeytimeactivitybase.hxx
index a0267188a02d..cb851bab3730 100644
--- a/slideshow/source/engine/activities/continuouskeytimeactivitybase.hxx
+++ b/slideshow/source/engine/activities/continuouskeytimeactivitybase.hxx
@@ -29,6 +29,8 @@
#define INCLUDED_SLIDESHOW_CONTINUOUSKEYTIMEACTIVITYBASE_HXX
#include "simplecontinuousactivitybase.hxx"
+
+#include <basegfx/tools/keystoplerp.hxx>
#include <vector>
@@ -73,10 +75,7 @@ namespace slideshow
sal_uInt32 nRepeatCount ) const;
private:
- const ::std::vector< double > maKeyTimes;
-
- /// last active index in maKeyTimes (to avoid frequent searching)
- mutable ::std::size_t mnLastIndex;
+ const ::basegfx::tools::KeyStopLerp maLerper;
};
}
}
diff --git a/slideshow/source/engine/activities/interpolation.hxx b/slideshow/source/engine/activities/interpolation.hxx
index 620a019f661d..9409965c8846 100644
--- a/slideshow/source/engine/activities/interpolation.hxx
+++ b/slideshow/source/engine/activities/interpolation.hxx
@@ -28,11 +28,11 @@
#ifndef INCLUDED_SLIDESHOW_INTERPOLATION_HXX
#define INCLUDED_SLIDESHOW_INTERPOLATION_HXX
-#include "lerp.hxx"
+#include <basegfx/tools/lerp.hxx>
-namespace slideshow
+namespace basegfx
{
- namespace internal
+ namespace tools
{
// Interpolator specializations
// ============================
@@ -42,9 +42,10 @@ namespace slideshow
// not-straight-forward-interpolatable types
/// Specialization for RGBColor, to employ color-specific interpolator
- template<> RGBColor lerp< RGBColor >( const RGBColor& rFrom,
- const RGBColor& rTo,
- double t )
+ template<> ::slideshow::internal::RGBColor lerp< ::slideshow::internal::RGBColor >(
+ const ::slideshow::internal::RGBColor& rFrom,
+ const ::slideshow::internal::RGBColor& rTo,
+ double t )
{
return interpolate( rFrom, rTo, t );
}
@@ -78,14 +79,20 @@ namespace slideshow
"lerp<bool> called" );
return rTo;
}
+ }
+}
+namespace slideshow
+{
+ namespace internal
+ {
template< typename ValueType > struct Interpolator
{
ValueType operator()( const ValueType& rFrom,
const ValueType& rTo,
double t ) const
{
- return lerp( rFrom, rTo, t );
+ return basegfx::tools::lerp( rFrom, rTo, t );
}
};
diff --git a/slideshow/source/engine/shapes/viewshape.cxx b/slideshow/source/engine/shapes/viewshape.cxx
index 76bce5ebe3e7..00a4ef4006f8 100644
--- a/slideshow/source/engine/shapes/viewshape.cxx
+++ b/slideshow/source/engine/shapes/viewshape.cxx
@@ -57,7 +57,6 @@
#include "viewshape.hxx"
#include "tools.hxx"
-#include "lerp.hxx"
#include <boost/bind.hpp>
@@ -461,9 +460,9 @@ namespace slideshow
if( mbForceUpdate || (nUpdateFlags & ALPHA) )
{
mpSprite->setAlpha( (pAttr && pAttr->isAlphaValid()) ?
- ::canvas::tools::clamp(pAttr->getAlpha(),
- 0.0,
- 1.0) :
+ ::basegfx::clamp(pAttr->getAlpha(),
+ 0.0,
+ 1.0) :
1.0 );
}
if( mbForceUpdate || (nUpdateFlags & CLIP) )
diff --git a/slideshow/source/engine/slide/layer.cxx b/slideshow/source/engine/slide/layer.cxx
index 080594a3350f..be67b220962e 100644
--- a/slideshow/source/engine/slide/layer.cxx
+++ b/slideshow/source/engine/slide/layer.cxx
@@ -33,7 +33,7 @@
#include <basegfx/range/b2drange.hxx>
#include <basegfx/range/b1drange.hxx>
-#include <basegfx/range/b2dmultirange.hxx>
+#include <basegfx/range/b2dpolyrange.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/polygon/b2dpolypolygon.hxx>
@@ -199,7 +199,8 @@ namespace slideshow
{
// TODO(Q1): move this to B2DMultiRange
if( !rUpdateRange.isEmpty() )
- maUpdateAreas.addRange( rUpdateRange );
+ maUpdateAreas.appendElement( rUpdateRange,
+ basegfx::ORIENTATION_POSITIVE );
}
void Layer::updateBounds( ShapeSharedPtr const& rShape )
@@ -245,7 +246,7 @@ namespace slideshow
void Layer::clearUpdateRanges()
{
- maUpdateAreas.reset();
+ maUpdateAreas.clear();
}
void Layer::clearContent()
@@ -281,12 +282,12 @@ namespace slideshow
Layer::EndUpdater Layer::beginUpdate()
{
- if( !maUpdateAreas.isEmpty() )
+ if( maUpdateAreas.count() )
{
// perform proper layer update. That means, setup proper
// clipping, and render each shape that intersects with
// the calculated update area
- ::basegfx::B2DPolyPolygon aClip( maUpdateAreas.getPolyPolygon() );
+ ::basegfx::B2DPolyPolygon aClip( maUpdateAreas.solveCrossovers() );
// actually, if there happen to be shapes with zero
// update area in the maUpdateAreas vector, the
diff --git a/slideshow/source/engine/slide/layer.hxx b/slideshow/source/engine/slide/layer.hxx
index 3001bc3b8e6d..28605efc733b 100644
--- a/slideshow/source/engine/slide/layer.hxx
+++ b/slideshow/source/engine/slide/layer.hxx
@@ -28,7 +28,7 @@
#ifndef INCLUDED_SLIDESHOW_LAYER_HXX
#define INCLUDED_SLIDESHOW_LAYER_HXX
-#include <basegfx/range/b2dmultirange.hxx>
+#include <basegfx/range/b2dpolyrange.hxx>
#include <cppcanvas/spritecanvas.hxx>
#include "view.hxx"
@@ -184,7 +184,7 @@ namespace slideshow
@return true, if any non-empty addUpdateRange() calls
have been made since the last render()/update() call.
*/
- bool isUpdatePending() const { return !maUpdateAreas.isEmpty(); }
+ bool isUpdatePending() const { return maUpdateAreas.count()!=0; }
/** Update layer bound rect from shape bounds
*/
@@ -294,7 +294,7 @@ namespace slideshow
typedef ::std::vector< ViewEntry > ViewEntryVector;
ViewEntryVector maViewEntries;
- basegfx::B2DMultiRange maUpdateAreas;
+ basegfx::B2DPolyRange maUpdateAreas;
basegfx::B2DRange maBounds;
basegfx::B2DRange maNewBounds;
const basegfx::B2DRange maMaxBounds; // maBounds is clipped against this
diff --git a/slideshow/source/engine/tools.cxx b/slideshow/source/engine/tools.cxx
index 281118993ccf..c8ca3dd86ef9 100644
--- a/slideshow/source/engine/tools.cxx
+++ b/slideshow/source/engine/tools.cxx
@@ -48,11 +48,11 @@
#include <basegfx/vector/b2ivector.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/numeric/ftools.hxx>
+#include <basegfx/tools/lerp.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx>
#include <cppcanvas/basegfxfactory.hxx>
-#include "lerp.hxx"
#include "unoview.hxx"
#include "smilfunctionparser.hxx"
#include "tools.hxx"
@@ -638,18 +638,18 @@ namespace slideshow
const ::basegfx::B2DRange& rShapeBounds )
{
return ::basegfx::B2DRectangle(
- lerp( rShapeBounds.getMinX(),
- rShapeBounds.getMaxX(),
- rUnitBounds.getMinX() ),
- lerp( rShapeBounds.getMinY(),
- rShapeBounds.getMaxY(),
- rUnitBounds.getMinY() ),
- lerp( rShapeBounds.getMinX(),
- rShapeBounds.getMaxX(),
- rUnitBounds.getMaxX() ),
- lerp( rShapeBounds.getMinY(),
- rShapeBounds.getMaxY(),
- rUnitBounds.getMaxY() ) );
+ basegfx::tools::lerp( rShapeBounds.getMinX(),
+ rShapeBounds.getMaxX(),
+ rUnitBounds.getMinX() ),
+ basegfx::tools::lerp( rShapeBounds.getMinY(),
+ rShapeBounds.getMaxY(),
+ rUnitBounds.getMinY() ),
+ basegfx::tools::lerp( rShapeBounds.getMinX(),
+ rShapeBounds.getMaxX(),
+ rUnitBounds.getMaxX() ),
+ basegfx::tools::lerp( rShapeBounds.getMinY(),
+ rShapeBounds.getMaxY(),
+ rUnitBounds.getMaxY() ) );
}
::basegfx::B2DRectangle getShapePosSize( const ::basegfx::B2DRectangle& rOrigBounds,
diff --git a/slideshow/test/export.map b/slideshow/test/export.map
index 709047ae63e5..7321bbca16ad 100644
--- a/slideshow/test/export.map
+++ b/slideshow/test/export.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-UDK_3.1 {
+UDK_3_0_0 {
global:
registerAllTestFunction;
diff --git a/slideshow/util/exports.map b/slideshow/util/exports.map
deleted file mode 100644
index 1c294f38c851..000000000000
--- a/slideshow/util/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SHW_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/slideshow/util/makefile.mk b/slideshow/util/makefile.mk
index cdd4508ff289..def425b60469 100644
--- a/slideshow/util/makefile.mk
+++ b/slideshow/util/makefile.mk
@@ -70,7 +70,7 @@ SHL1IMPLIB=i$(TARGET)
SHL1LIBS=$(SLB)$/$(TARGET).lib
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
DEF1EXPORTFILE=exports.dxp
diff --git a/smoketestoo_native/check_setup.pl b/smoketestoo_native/check_setup.pl
deleted file mode 100755
index 0d5753d1419d..000000000000
--- a/smoketestoo_native/check_setup.pl
+++ /dev/null
@@ -1,69 +0,0 @@
-:
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-sub checkLogDat {
- my ($setuplogfile) = shift;
- my ($errorfound) = 0;
-
- open SETUPLOG, "<$setuplogfile" or die "can´t open file $setuplogfile";
- while(<SETUPLOG>) {
- $line = $_;
- chomp $line;
- if ($line =~ /^ERR/ ) {
- print "Error: $line\n";
- $errorfound = 1;
- }
- }
- close SETUPLOG;
- return !$errorfound; #check ok?
-}
-
-$idStr = ' $Revision: 1.3 $ ';
-$idStr =~ /Revision:\s+(\S+)\s+\$/
- ? ($prg_rev = $1) : ($prg_rev = "-");
-
-print "checkSetup -- Version: $prg_rev\n";
-
-if ( ($#ARGV >-1) && ($#ARGV < 1) ) {
- $ARGV[0]=~ s/\"//g;
-}
-
-if ( ! ( ($#ARGV >-1) && ($#ARGV < 1) && $ARGV[0] && (-e $ARGV[0] ) ) ) {
- print "Usage: checkSetup <setuplogfile>\n" ;
- exit(1);
-}
-
-if (checkLogDat ($ARGV[0])) {
- exit (0);
-}
-else {
- print STDERR "ERROR: setup failed\n";
- exit (2);
-}
diff --git a/smoketestoo_native/config.pl b/smoketestoo_native/config.pl
deleted file mode 100755
index 988d1176ed42..000000000000
--- a/smoketestoo_native/config.pl
+++ /dev/null
@@ -1,83 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-use File::Path;
-
-$branddir = $ARGV[0];
-$userinstalldir = $ARGV[1];
-$buildid = $ARGV[2];
-
-if ($ENV{GUI} ne "UNX") {
- $quickstart = $branddir . "program/quickstart.exe";
- print "kill $quickstart\n";
- unlink $quickstart or die "cannot unlink $fullquickstart_path";
-}
-
-$regpath = $userinstalldir . "user";
-$regfile = $regpath . "/registrymodifications.xcu";
-print "create $regfile\n";
-mkpath($regpath, 0, 0777);
-open (OUT, "> $regfile") or die "cannot open $regfile for writing";
-print OUT << "EOF";
-<oor:items xmlns:oor='http://openoffice.org/2001/registry'>
- <item oor:path='/org.openoffice.Office.Common/Help/Registration'>
- <prop oor:name='ReminderDate'>
- <value>Patch$buildid</value>
- </prop>
- </item>
- <item oor:path='/org.openoffice.Office.Common/Misc'>
- <prop oor:name='FirstRun'>
- <value>false</value>
- </prop>
- </item>
- <item oor:path='/org.openoffice.Office.Common/Security/Scripting'>
- <prop oor:name='MacroSecurityLevel'>
- <value>0</value>
- </prop>
- <prop oor:name='OfficeBasic'>
- <value>2</value>
- </prop>
- </item>
- <item oor:path='/org.openoffice.Office.OOoImprovement.Settings/Participation'>
- <prop oor:name='InvitationAccepted'>
- <value>false</value>
- </prop>
- <prop oor:name='ShowedInvitation'>
- <value>true</value>
- </prop>
- </item>
- <item oor:path='/org.openoffice.Setup/Office'>
- <prop oor:name='FirstStartWizardCompleted'>
- <value>true</value>
- </prop>
- <prop oor:name='LicenseAcceptDate'>
- <value>2100-01-01T00:00:00</value>
- </prop>
- </item>
-</oor:items>
-EOF
-close OUT;
diff --git a/smoketestoo_native/data/TestExtension.oxt b/smoketestoo_native/data/TestExtension.oxt
deleted file mode 100755
index 70580b6a52e3..000000000000
--- a/smoketestoo_native/data/TestExtension.oxt
+++ /dev/null
Binary files differ
diff --git a/smoketestoo_native/data/dbgsv.ini b/smoketestoo_native/data/dbgsv.ini
deleted file mode 100644
index 42142b4124e5..000000000000
--- a/smoketestoo_native/data/dbgsv.ini
+++ /dev/null
@@ -1,42 +0,0 @@
-[output]
-log_file=dbgsv.log
-overwrite=1
-include=
-exclude=
-include_class=
-exclude_class=
-trace=dev/null
-warning=dev/null
-error=window
-
-[memory]
-initialize=1
-overwrite=0
-overwrite_free=0
-pointer=0
-report=0
-trace=0
-new_and_delete=0
-object_test=0
-sys_alloc=0
-leak_report=0
-
-init_byte=77
-bound_byte=55
-free_byte=33
-
-[gui]
-debug_window_state=
-
-[objects]
-check_this=0
-check_function=0
-check_exit=0
-generate_report=0
-trace=0
-
-[test]
-profiling=0
-resources=1
-dialog=0
-bold_app_font=0
diff --git a/smoketestoo_native/data/scripts/Global.xba b/smoketestoo_native/data/scripts/Global.xba
deleted file mode 100755
index c56b444cf030..000000000000
--- a/smoketestoo_native/data/scripts/Global.xba
+++ /dev/null
@@ -1,739 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
-<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Global" script:language="StarBasic">REM ***** BASIC *****
-
-const cMaxErrorStates = 13
-
-const cCoGreen = 4057917, cCoRed = 16711680, cCoGrey = 12632256
-const cParagraphBreak = 0
-
-global const cExtensionFileName = &quot;TestExtension.oxt&quot;
-
-global const cDocNew = 0, cDocCut = 1, cDocPaste = 2, cDocSaveOpen8 = 3, cDocSaveOpenXML = 4, cDocSaveOpen50 = 5, cDocClose = 6, cDocWrite = 7
-global const cNewsInit = 0, cNewsSend = 1, cNewsRead = 2
-global const cDBService = 0, cDBOpen = 1, cDBInsert = 2, cDBDelete = 3, cDBSeek = 4, cDBClose = 5
-global const cEXTService = 0, cEXTInstall = 1, cEXTUninstall = 2
-global const cScheduleDateRead = 0
-global const cLogfileFailed = 255
-
-global const cStWriter = 0, cStCalc = 1, cStPraesentation = 2, cStZeichnen = 3
-global const cStMessage = 12, cStHTML = 6, cStChart = 4, cStJava = 7
-global const cStMath = 5, cStNews = 10, cStSchedule = 8, cStDataBase = 9
-global const cStExtension = 11
-global const cStNone = -1
-
-global const cFlt8 = 0, cFlt50 = 32, cFltNewDoc = 64, cFltXML = 128
-
-global const frmWriter = 1, frmCalc = 2, frmMessage = 3, frmImpress = 4
-global const frmMath = 5, frmImage = 6, frmChart = 7, frmHyperText = 8, frmDraw = 9
-global const frmDataBase = 10, frmSchedule = 11, frmNews = 12, frmJava = 13
-global const frmExtension = 14
-
-global const cLogUnknown = 0, cLogFalse = 1, cLogTrue = 2
-
-&apos;UserFieldKennungen
-Global const cYes = &quot;y&quot;, cNo = &quot;n&quot;
-Global const cStateNo = 0, cStateYes = 1
-
-&apos;Feldtypen
-Global const cFtExtUser = 21, cFtPageNum = 5, cFtStatistic = 8, cFtDateTime = 27, cFtDatabase = 31
-
-&apos;UnoStrings
-Global const cUnoSeparator = &quot;.&quot;
-Global const cUnoPrefix = &quot;com.sun.star.&quot;
-Global const cUnoUserField = cUnoPrefix + &quot;text.FieldMaster.User&quot;
-Global const cUnoExtUserField = cUnoPrefix + &quot;text.TextField.ExtendedUser&quot;
-Global const cUnoMasterDataBase = cUnoPrefix + &quot;text.FieldMaster.Database&quot;
-Global const cUnoDataBase = cUnoPrefix + &quot;text.TextField.Database&quot;
-Global const cUnoDateTime = cUnoPrefix + &quot;text.TextField.DateTime&quot;
-Global const cUnoTextGraphi2 = cUnoPrefix + &quot;text.Graphic&quot;
-Global const cUnoJavaLoader = cUnoPrefix + &quot;loader.Java&quot;
-Global const cUnoDatabaseContext = cUnoPrefix + &quot;sdb.DatabaseContext&quot;
-Global const cUnoRowSet = cUnoPrefix + &quot;sdb.RowSet&quot;
-Global const cUnoSmoketestTestExtension = cUnoPrefix + &quot;comp.smoketest.TestExtension&quot;
-Global const cUnoSmoketestCommandEnvironment = cUnoPrefix + &quot;deployment.test.SmoketestCommandEnvironment&quot;
-Global const cUnothePackageManagerFactory = cUnoPrefix + &quot;deployment.thePackageManagerFactory&quot;
-
-&apos;UserFieldNames
-Global const cUserFieldTestWriter = &quot;Writer&quot;, cUserFieldTestCalc = &quot;Calc&quot;, cUserFieldTestImpress = &quot;Impress&quot;
-Global const cUserFieldTestDraw = &quot;Draw&quot;, cUserFieldTestMath = &quot;Math&quot;, cUserFieldTestChart = &quot;Chart&quot;
-Global const cUserFieldTestHTML = &quot;HTML&quot;, cUserFieldTestJava = &quot;Java&quot;, cUserFieldTestDatabase = &quot;Database&quot;
-Global const cUserFieldTestExtension = &quot;Extension&quot;
-Global const cUserFieldTestOpenSaveXML = &quot;SaveOpenXML&quot;, cUserFieldTestOpenSave50 = &quot;SaveOpen50&quot;, cUserFieldTestCut = &quot;Cut&quot;
-Global const cUserFieldTestPaste = &quot;Paste&quot;, cUserFieldTestTerminateAfterTest = &quot;Terminate&quot;, cUserFieldTestOpenSave8 = &quot;SaveOpen8&quot;
-
-Global const cOptionsDialogName = &quot;OptionsDlg&quot;, cTest10Modul = &quot;Standard&quot;
-
-Global const cDlgCancel = 1, cDlgOk = 0, cDlgStartTest = 2
-
-global gErrorState (cMaxErrorStates, 5) as integer
-
-global gOutputDoc as Object
-global gOutputDocNotUno as Object
-global gOptionsDialog as Object
-Dim bMakeMailAccount as Boolean, bTestMail as Boolean, bTestDocs as Boolean
-Dim bTestSchedule as Boolean, bTestAdr as Boolean
-
-Global bMakeWriterTest as boolean, bMakeCalcTest as boolean, bMakeImpressTest as boolean
-Global bMakeDrawTest as Boolean, bMakeMathTest as boolean, bMakeChartTest as boolean
-Global bMakeHTMLTest as boolean, bMakeJavaTest as boolean, bMakeDBTest as boolean
-Global bMakeExtensionTest as boolean
-Global bMakeSaveOpenXMLTest as boolean, bMakeSaveOpen50Test as boolean, bMakeCutTest as boolean
-Global bMakePasteTest as boolean, bMakeTerminateAfterTest as boolean, bShowTable as boolean
-Global bMakeSaveOpen8Test as boolean
-
-global sExtensionURL as string
-
-Dim gDlgState as Integer
-
-Sub SetGlobalDoc
- gOutPutDoc = StarDesktop.CurrentComponent
-end Sub
-
-Sub ClearStatus
- for j% = 0 to cMaxErrorStates
- for i% = 0 to 5
- gErrorState (j%, i%) = cLogUnknown
- next i%
- next j%
-end Sub
-
-Sub ClearAllText
- call SetGlobalDoc
- call ClearDoc (gOutPutDoc)
- call ClearStatus
-end Sub
-
-Sub Main
- call SetGlobalDoc
- if bShowTable then
- call ClearDoc (gOutPutDoc)
- end If
-
- call ClearStatus
-
- Call Test_10er.Main
-
- if bShowTable then
- call CreateStatusTable2
- call CreateStatusTable
- call CreateDocState
- call CreateSecondState
- gOutputDoc.CurrentController.ViewCursor.JumpToFirstPage
- end if
-End Sub
-
-Sub CreateStatusTable
- dim tableHeaders(7) as string
- tableHeaders(cStWriter) = &quot;Writer&quot;
- tableHeaders(cStCalc) = &quot;Calc&quot;
- tableHeaders(cStPraesentation) = &quot;Präsen- tation&quot;
- tableHeaders(cStZeichnen) = &quot;Zeichn.&quot;
- tableHeaders(cStChart) = &quot;Diagr.&quot;
- tableHeaders(cStMath) = &quot;Math&quot;
- tableHeaders(cStHTML) = &quot;HTML&quot;
- tableHeaders(cStJava) = &quot;Java&quot;
-
- dim tableColums(5) as string
- tableColums(cDocNew) = &quot;new&quot;
- tableColums(cDocCut) = &quot;cut&quot;
- tableColums(cDocPaste) = &quot;paste&quot;
- tableColums(cDocSaveOpen8) = &quot;V8.0&quot;
- tableColums(cDocSaveOpenXML) = &quot;XML&quot;
- tableColums(cDocSaveOpen50) = &quot;V5.0&quot;
-&apos; tableColums(cDocClose) = &quot;close&quot;
-
- aDoc = gOutPutDoc
-
- xText = aDoc.Text
- xCursor = xText.createTextCursor()
-
-&apos; xCursor.gotoStart(FALSE)
-&apos; xCursor.GoRight (2, False)
-&apos; SetParagraphBreak (xCursor)
-&apos; SetParagraphBreak (xCursor)
- xCursor.gotoStart(FALSE)
- xCursor.GoRight (4, False)
- SetParagraphBreak (xCursor)
- xCursor.GoRight (1, False)
- SetParagraphBreak (xCursor)
- xCursor.GoRight (1, False)
-
- table = aDoc.createInstance(&quot;com.sun.star.text.TextTable&quot;)
- table.initialize(7,9)
- table.Name = &quot;StTab1&quot;
- xText.insertTextContent(xCursor, table, FALSE)
-
- tableCursor = table.createCursorByCellName(table.CellNames(0))
- tableCursor.gotoStart(FALSE)
- tableCursor.goRight(1,FALSE)
-
- for i% = 0 to 7
- cName = tableCursor.getRangeName()
- xCell = table.getCellByName(cName)
- xCell.String=tableHeaders(i%)
-
- xCell.BackTransparent = False
- xCell.BackColor = cCoGrey
-
- tableCursor.goRight(1,FALSE)
- next i%
-
- xCursor.gotoStart(FALSE)
-&apos; SetParagraphBreak (xCursor)
-&apos; SetParagraphBreak (xCursor)
-
- tableCursor.gotoStart(FALSE)
- cName = tableCursor.getRangeName()
- xCell = table.getCellByName(cName)
- xCell.BackTransparent = False
- xCell.BackColor = cCoGrey
-
- for i% = 0 to 5
- tableCursor.goDown(1,FALSE)
- cName = tableCursor.getRangeName()
- xCell = table.getCellByName(cName)
- xCell.String=tableColums(i%)
-
- xCell.BackTransparent = False
- xCell.BackColor = cCoGrey
- next i%
-end Sub
-
-Sub CreateStatusTable2
- dim tableHeaders(5) as string
- tableHeaders(cStDataBase-9) = &quot;Database&quot;
- tableHeaders(1) = &quot;&quot;
- tableHeaders(cStExtension-9) = &quot;Extension&quot;
- tableHeaders(3) = &quot;&quot;
- tableHeaders(4) = &quot;&quot;
-
- dim tableColums(5) as string
- tableColums(cDBService ) = &quot;services&quot;
- tableColums(cDBOpen ) = &quot;open&quot;
- tableColums(cDBInsert ) = &quot;insert&quot;
- tableColums(cDBDelete ) = &quot;delete&quot;
- tableColums(cDBSeek ) = &quot;seek&quot;
- tableColums(cDBClose ) = &quot;close&quot;
-
- dim tableColums2(3) as string
- tableColums2(cEXTService ) = &quot;services&quot;
- tableColums2(cEXTInstall ) = &quot;install&quot;
- tableColums2(cEXTUninstall ) = &quot;uninstall&quot;
-
- aDoc = gOutPutDoc
-
- xText = aDoc.Text
- xCursor = xText.createTextCursor()
-
- xCursor.gotoStart(FALSE)
- xCursor.GoRight (4, False)
- SetParagraphBreak (xCursor)
- SetParagraphBreak (xCursor)
- xCursor.gotoEnd(FALSE)
-
- table = aDoc.createInstance(&quot;com.sun.star.text.TextTable&quot;)
- table.initialize(7,6)
- table.Name = &quot;StTab2&quot;
- &apos;table.RelativeWidth =500
-
- xText.insertTextContent(xCursor, table, FALSE)
-
- tableCursor = table.createCursorByCellName(table.CellNames(0))
- tableCursor.gotoStart(FALSE)
- tableCursor.goRight(1,FALSE)
-
- for i% = 0 to 5
- cName = tableCursor.getRangeName()
- xCell = table.getCellByName(cName)
- xCell.String=tableHeaders(i%)
-
- xCell.BackTransparent = False
- xCell.BackColor = cCoGrey
-
- tableCursor.goRight(1,FALSE)
- next i%
-
- tableCursor.gotoStart(FALSE)
-
- cName = tableCursor.getRangeName()
- xCell = table.getCellByName(cName)
- xCell.BackTransparent = False
- xCell.BackColor = cCoGrey
-
- for i% = 0 to 5
- tableCursor.goDown(1,FALSE)
- cName = tableCursor.getRangeName()
- xCell = table.getCellByName(cName)
- xCell.String=tableColums(i%)
-
- xCell.BackTransparent = False
- xCell.BackColor = cCoGrey
- next i%
-
- tableCursor.gotoStart(FALSE)
- tableCursor.goRight(2,FALSE)
-
- for i% = 0 to 3
- tableCursor.goDown(1,FALSE)
- cName = tableCursor.getRangeName()
- xCell = table.getCellByName(cName)
- xCell.String=tableColums2(i%)
-
- xCell.BackTransparent = False
- xCell.BackColor = cCoGrey
- next i%
-end Sub
-
-
-Sub CreateDocState
- aDoc = gOutPutDoc
- table = aDoc.TextTables.GetByIndex (1)
- &apos;table = aDoc.TextTables.GetByName (&quot;StTab1&quot;)
-
- for j% = 0 to 7
- for i% = 0 to 5
- sRangeName = GetRangeName(j%, i%+1)
-
- tableCursor = table.createCursorByCellName(sRangeName)
-
- cName = tableCursor.getRangeName()
- xCell = table.getCellByName(cName)
-
- xCell.BackTransparent = False
-
- if gErrorState (j%, i%) = cLogTrue then
- xCell.BackColor = cCoGreen
- else if gErrorState (j%, i%) = cLogFalse then
- xCell.BackColor = cCoRed
- else
- xCell.BackColor = cCoGrey
- end If
- end If
-
- next i%
- next j%
-end Sub
-
-Sub CreateSecondState
- aDoc = gOutPutDoc
- table = aDoc.TextTables.GetByIndex (0)
- &apos;table = aDoc.TextTables.GetByName (&quot;StTab2&quot;)
-
- for j% = 0 to cMaxErrorStates-9
- for i% = 0 to 5
- sRangeName = GetRangeName(j%, i%+1)
-
- tableCursor = table.createCursorByCellName(sRangeName)
-
- cName = tableCursor.getRangeName()
- xCell = table.getCellByName(cName)
-
- xCell.BackTransparent = False
-
- if gErrorState (j%+9, i%) = cLogTrue then
- xCell.BackColor = cCoGreen
- else if gErrorState (j%+9, i%) = cLogFalse then
- xCell.BackColor = cCoRed
- else
- xCell.BackColor = cCoGrey
- end If
- end If
-
- next i%
- next j%
-end Sub
-
-Function GetRangeName (nColumn as integer, nRow as integer) as string
- GetRangeName = chr (nColumn+66) + Trim(Str(nRow+1))
-end Function
-
-Sub SetStatus (nDocType as Integer, nAction as Integer, bState as Boolean)
- Dim nStatusType as Integer
- Dim nState as integer
- nStatusType = GetStatusType (nDocType)
- If nStatusType = cStNone then Exit Sub
-
- if bState then
- nState = cLogTrue
- else
- nState = cLogFalse
- end If
-
- gErrorState (nStatusType, nAction) = nState
-end Sub
-
-Function GetStatusType (nDocType as Integer) as Integer
- Select Case ( nDocType )
- case frmWriter
- GetStatusType = cStWriter &apos; Textdokument
- case frmCalc
- GetStatusType = cStCalc &apos;Tabellendokument
- case frmMessage
- GetStatusType = cStMessage &apos;Nachricht
- case frmImpress
- GetStatusType = cStPraesentation &apos;Präsentation
- case frmDraw
- GetStatusType = cStZeichnen &apos;Zeichnen
- case frmMath
- GetStatusType = cStMath &apos;Formel
- case frmImage
- GetStatusType = cStBild &apos;Bild
- case frmHyperText
- GetStatusType = cStHTML &apos;Hypertext-Dokument
- case frmChart
- GetStatusType = cStChart &apos;Diagramm
- case frmSchedule
- GetStatusType = cStSchedule &apos;Diagramm
- case frmJava
- GetStatusType = cStJava &apos;Java
- case frmNews
- GetStatusType = cStNews &apos;News
- case frmDataBase
- GetStatusType = cStDataBase &apos;DataBase
- case frmExtension
- GetStatusType = cStExtension &apos;Extension
- case else
- GetStatusType = cStNone
- end Select
-end Function
-
-Sub SetParagraphBreak (aCursor as Object)
- aCursor.Text.InsertControlCharacter (aCursor, cParagraphBreak, True)
-end Sub
-
-Sub ClearDoc (aDoc as Object)
- Dim aText as Object
- Dim i%
- for i%=1 to aDoc.TextTables.count
- aDoc.TextTables.GetByIndex(0).dispose
- next
-
- aText = aDoc.Text.CreateTextCursor
- aText.GotoStart (False)
- aText.GoRight (3, False)
- SetParagraphBreak (aText)
- aText.GotoEnd (True)
- aText.String=&quot;&quot;
-end Sub
-
-Sub ClearDocFull (aDoc as Object)
- Dim aText as Object
- Dim i%
- for i%=1 to aDoc.TextTables.count
- aDoc.TextTables.GetByIndex(0).dispose
- next
-
- aText = aDoc.Text.CreateTextCursor
- aText.GotoStart (False)
- aText.GotoEnd (True)
- aText.String=&quot;&quot;
-end Sub
-
-Sub SetGlobalOptionsDialog ()
-
- Dim oLibContainer As Object, oLib As Object
- Dim oInputStreamProvider As Object
- Dim oDialog As Object
-
- Const sLibName = cTest10Modul
- Const sDialogName = cOptionsDialogName
-
- REM get library and input stream provider
- oLibContainer = DialogLibraries
-
- REM load the library
- oLibContainer.loadLibrary( sLibName )
-
- oLib = oLibContainer.getByName( sLibName )
- oInputStreamProvider = oLib.getByName( sDialogName )
-
- REM create dialog control
- gOptionsDialog = CreateUnoDialog( oInputStreamProvider )
-
-end Sub
-
-Sub ShowOptionsDlg
-
- call SetGlobalDoc
- call SetGlobalOptionsDialog
- call GetOptions
-
- REM show the dialog
- gOptionsDialog.execute()
-
- &apos; jetzt läuft der Dialog, bis ein Button gedrückt wird
-
- Select Case (gDlgState)
- case cDlgOk
- call SetOptions ()
- case cDlgStartTest
- call SetOptions ()
- call StartTestByOptions ()
- end Select
-
- gOptionsDialog.dispose()
-
-end Sub
-
-Sub SetOptions
- call SetGlobalDoc
- SetUserFieldState (cUserFieldTestWriter, -(gOptionsDialog.getControl(&quot;cbWriterTest&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestCalc, -(gOptionsDialog.getControl(&quot;cbCalcTest&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestImpress, -(gOptionsDialog.getControl(&quot;cbImpressTest&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestDraw, -(gOptionsDialog.getControl(&quot;cbDrawTest&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestHTML, -(gOptionsDialog.getControl(&quot;cbHTMLTest&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestMath, -(gOptionsDialog.getControl(&quot;cbMathTest&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestChart, -(gOptionsDialog.getControl(&quot;cbChartTest&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestJava, -(gOptionsDialog.getControl(&quot;cbJavaTest&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestDatabase, -(gOptionsDialog.getControl(&quot;cbDatabaseTest&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestExtension, -(gOptionsDialog.getControl(&quot;cbExtensionTest&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestOpenSaveXML, -(gOptionsDialog.getControl(&quot;cbSaveOpenXMLTest&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestOpenSave50, -(gOptionsDialog.getControl(&quot;cbSaveOpen50Test&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestOpenSave8, -(gOptionsDialog.getControl(&quot;cbSaveOpen8Test&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestCut, -(gOptionsDialog.getControl(&quot;cbCutTest&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestPaste, -(gOptionsDialog.getControl(&quot;cbPasteTest&quot;).getState), gOutPutDoc)
- SetUserFieldState (cUserFieldTestTerminateAfterTest, -(gOptionsDialog.getControl(&quot;cbTerminateAfterTest&quot;).getState), gOutPutDoc)
-end Sub
-
-Sub GetOptions
- call SetGlobalDoc
- gOptionsDialog.getControl(&quot;cbWriterTest&quot;).setState( -( GetUserFieldState (cUserFieldTestWriter, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbCalcTest&quot;).setState ( -( GetUserFieldState (cUserFieldTestCalc, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbImpressTest&quot;).setState( -( GetUserFieldState (cUserFieldTestImpress, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbDrawTest&quot;).setState( -( GetUserFieldState (cUserFieldTestDraw, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbHTMLTest&quot;).setState( -( GetUserFieldState (cUserFieldTestHTML, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbMathTest&quot;).setState( -( GetUserFieldState (cUserFieldTestMath, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbChartTest&quot;).setState( -( GetUserFieldState (cUserFieldTestChart, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbJavaTest&quot;).setState( -( GetUserFieldState (cUserFieldTestJava, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbDatabaseTest&quot;).setState( -( GetUserFieldState (cUserFieldTestDatabase, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbExtensionTest&quot;).setState( -( GetUserFieldState (cUserFieldTestExtension, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbSaveOpenXMLTest&quot;).setState( -( GetUserFieldState (cUserFieldTestOpenSaveXML, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbSaveOpen50Test&quot;).setState( -( GetUserFieldState (cUserFieldTestOpenSave50, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbSaveOpen8Test&quot;).setState( -( GetUserFieldState (cUserFieldTestOpenSave8, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbCutTest&quot;).setState( -( GetUserFieldState (cUserFieldTestCut, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbPasteTest&quot;).setState( -( GetUserFieldState (cUserFieldTestPaste, gOutPutDoc)))
- gOptionsDialog.getControl(&quot;cbTerminateAfterTest&quot;).setState( -( GetUserFieldState (cUserFieldTestTerminateAfterTest, gOutPutDoc)))
-End Sub
-
-Sub ReadOptions
- call SetGlobalDoc
- bTestDocs = true
- bMakeWriterTest = GetUserFieldState (cUserFieldTestWriter, gOutPutDoc)
- bMakeCalcTest = GetUserFieldState (cUserFieldTestCalc, gOutPutDoc)
- bMakeImpressTest = GetUserFieldState (cUserFieldTestImpress, gOutPutDoc)
- bMakeDrawTest = GetUserFieldState (cUserFieldTestDraw, gOutPutDoc)
- bMakeHTMLTest = GetUserFieldState (cUserFieldTestHTML, gOutPutDoc)
- bMakeMathTest = GetUserFieldState (cUserFieldTestMath, gOutPutDoc)
- bMakeChartTest = GetUserFieldState (cUserFieldTestChart, gOutPutDoc)
- bMakeJavaTest = GetUserFieldState (cUserFieldTestJava, gOutPutDoc)
- bMakeDBTest = GetUserFieldState (cUserFieldTestDatabase, gOutPutDoc)
- bMakeExtensionTest = GetUserFieldState (cUserFieldTestExtension, gOutPutDoc)
- bMakeSaveOpenXMLTest = GetUserFieldState (cUserFieldTestOpenSaveXML, gOutPutDoc)
- bMakeSaveOpen50Test = GetUserFieldState (cUserFieldTestOpenSave50, gOutPutDoc)
- bMakeSaveOpen8Test = GetUserFieldState (cUserFieldTestOpenSave8, gOutPutDoc)
- bMakeCutTest = GetUserFieldState (cUserFieldTestCut, gOutPutDoc)
- bMakePasteTest = GetUserFieldState (cUserFieldTestPaste, gOutPutDoc)
- bMakeTerminateAfterTest = GetUserFieldState (cUserFieldTestTerminateAfterTest, gOutPutDoc)
-end Sub
-
-Sub SetDefaultOptions
- bTestDocs = true
- bMakeWriterTest = true
- bMakeCalcTest = true
- bMakeImpressTest = true
- bMakeDrawTest = true
- bMakeHTMLTest = true
- bMakeMathTest = true
- bMakeChartTest = true
- bMakeJavaTest = true
- bMakeDBTest = true
- bMakeExtensionTest = true
- bMakeSaveOpenXMLTest = true
- REM Disable StarOffice 5.0 tests in case binfilter has not been included
- if Environ(&quot;WITH_BINFILTER&quot;) = &quot;NO&quot; then
- bMakeSaveOpen50Test = false
- else
- bMakeSaveOpen50Test = true
- End If
- bMakeSaveOpen8Test = true
- bMakeCutTest = true
- bMakePasteTest = true
- bMakeTerminateAfterTest = true
-end Sub
-
-Sub ShutdownQuickstarter
- dim qs as Object
- qs = createUnoService(&quot;com.sun.star.comp.desktop.QuickstartWrapper&quot; )
- qs.setFastPropertyValue( 0, false )
-end Sub
-
-Sub StartTestByOptions
- call ShutdownQuickstarter
- bShowTable = true
- call ReadOptions
- call Main
-
- if bMakeTerminateAfterTest then
-
- ClearDocFull (gOutPutDoc)
- gOutPutDoc.dispose
- &apos;StarDesktop.Terminate
-
- &apos;EnableReschedule( false )
- &apos;DispatchSlot( 5300 )
- stop
- End If
-end Sub
-
-Sub StartTestWithDefaultOptions
- call ShutdownQuickstarter
- bShowTable = false
- call SetDefaultOptions
- call Main
-
- if bMakeTerminateAfterTest then
- stop
-
- ClearDocFull (gOutPutDoc)
- gOutPutDoc.dispose
- &apos;StarDesktop.Terminate
- &apos;EnableReschedule( false )
- &apos;DispatchSlot( 5300 )
- stop
- End If
-end Sub
-
-Sub DispatchSlot(SlotID as Integer)
- Dim oArg() as new com.sun.star.beans.PropertyValue
- Dim oUrl as new com.sun.star.util.URL
- Dim oTrans as Object
- Dim oDisp as Object
-
- oTrans = createUNOService(&quot;com.sun.star.util.URLTransformer&quot;)
- oUrl.Complete = &quot;slot:&quot; &amp; CStr(SlotID)
- oTrans.parsestrict(oUrl)
-
- oDisp = StarDesktop.queryDispatch(oUrl, &quot;_self&quot;, 0)
- oDisp.dispatch(oUrl, oArg())
-End Sub
-
-Sub LoadLibrary( LibName As String )
-
- dim args(1)
- dim arg as new com.sun.star.beans.PropertyValue
- arg.Name = &quot;LibraryName&quot;
- arg.Value = LibName
- args(0) = arg
-
- dim url as new com.sun.star.util.URL
- dim trans as object
- trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
- url.Complete = &quot;slot:6517&quot;
- trans.parsestrict( url )
-
- dim disp as object
- disp = StarDesktop.currentFrame.queryDispatch( url, &quot;&quot;, 0 )
- disp.dispatch( url, args() )
-
-End Sub
-
-Sub ExecuteSlot( SlotNr As String, oDoc as Object )
- dim args()
- dim url as new com.sun.star.util.URL
- dim trans as object
- dim disp as object
-
- trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
- url.Complete = &quot;slot:&quot; + SlotNr
- trans.parsestrict( url )
-
- disp = oDoc.CurrentController.Frame.queryDispatch( url, &quot;&quot;, 0 )
- disp.dispatch( url, args() )
-
-End Sub
-
-Sub CutText (oDoc as Object)
- ExecuteSlot (&quot;5710&quot;, oDoc)
-End Sub
-
-Sub PasteText (oDoc as Object)
- ExecuteSlot (&quot;5712&quot;, oDoc)
-End Sub
-
-Sub DelAllUserFields (aDoc as Object)
- Dim aFieldType as Object
- Dim aElements as Variant
- Dim i%
- Dim aFieldMasters, aFieldMaster as Object
- Dim sElement$
- aFieldMasters = aDoc.TextFieldMasters
- aElements = aFieldMasters.ElementNames
- for i = 0 to UBound(aElements)
- sElement$ = aElements(i)
- if 0 &lt;&gt; instr(sElement$, cUnoUserField ) then
- aFieldMaster = aFieldMasters.GetByName(sElement$)
- aFieldMaster.Dispose
- endif
- next
-end Sub
-
-Function GetUserFieldState (sName as String, aDoc as Object) as boolean
- Dim sFieldText as String
- Dim bState as boolean
- sFieldText = ReadUserField (sName, aDoc)
-
- if LCase(sFieldText) = cYes then
- bState = true
- else
- bState = false
- end IF
-
- GetUserFieldState = bState
-end Function
-
-Sub SetUserFieldState (sName as String, nState as boolean, aDoc as Object)
- Dim sFieldText as String
-
- sFieldText = cNo &apos;default
-
- Select case nState
- case true
- sFieldText = cYes
- case false
- sFieldText = cNo
- end Select
-
- WriteUserField (sFieldText, sName, aDoc)
-end Sub
-
-Function ReadUserField(sFieldName as String, aDoc as Object) as String
- Dim aMasters as Object
- aMasters = aDoc.TextFieldMasters
- if aMasters.HasByName (cUnoUserField+cUnoSeparator+sFieldName) then
- ReadUserField = aMasters.GetByName (cUnoUserField+cUnoSeparator+sFieldName).Content
- else
- ReadUserField = &quot;&quot;
- end If
-End Function
-
-Sub WriteUserField(sValue as String, sFieldName as String, aDoc as Object, optional aCursor as Object)
- Dim aMasters, aUserField, aTxtCursor as Object
- aMasters = aDoc.TextFieldMasters
- if aMasters.HasByName (cUnoUserField+cUnoSeparator+sFieldName) then
- aUserField = aMasters.GetByName (cUnoUserField+cUnoSeparator+sFieldName)
- else
- aUserField = aDoc.CreateInstance (cUnoUserField)
- aUserField.Name = sFieldName
- end if
- aUserField.Content = sValue
-End Sub
-
-Sub WriteExtUserField(nIndex as Integer, aCursor as Object, aDoc as Object)
- Dim aUserField as Object
- aUserField = aDoc.CreateInstance (cUnoExtUserField)
- aUserField.UserDataType = nIndex
- aCursor.Text.InsertTextContent (aCursor, aUserField, True)
- aUserField.Fix = True
-End Sub
-</script:module>
diff --git a/smoketestoo_native/data/scripts/Test_10er.xba b/smoketestoo_native/data/scripts/Test_10er.xba
deleted file mode 100755
index b475dfe53b42..000000000000
--- a/smoketestoo_native/data/scripts/Test_10er.xba
+++ /dev/null
@@ -1,907 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
-<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_10er" script:language="StarBasic">REM 10er Test
-
-const sSWLogFileName = &quot;swlog.dat&quot;, sSCLogFileName = &quot;sclog.dat&quot;
-const sSDLogFileName = &quot;sdlog.dat&quot;, sSMathLogFileName = &quot;smalog.dat&quot;
-const sSImDLogFileName = &quot;simlog.dat&quot;, sSChartLogFileName = &quot;schlog.dat&quot;
-const sSHptLogFileName = &quot;shptlog.dat&quot;, sSMessageLogFileName = &quot;smeslog.dat&quot;
-const sSDrawLogFileName = &quot;sdrwlog.dat&quot;, sJavaLogFileName = &quot;javalog.dat&quot;
-const sSDBLogFileName = &quot;dblog.dat&quot;, sExtLogFileName = &quot;extlog.dat&quot;
-const sLogFileName = &quot;log.dat&quot;
-const cTempFileName = &quot;ttt&quot;
-
-const cMessageSaveOpen8Doc = &quot;Save/Open open Documents (8.0)&quot;
-const cMessageSaveOpenXMLDoc = &quot;Save/Open Document XML (6/7)&quot;
-const cMessageSaveOpen50Doc = &quot;Save/Open Document 5.0&quot;
-const cMessageNewDoc = &quot;New Document&quot;
-const cMessageCloseDoc = &quot;Close Document&quot;
-const cMessageCutObj = &quot;Cut Object&quot;
-const cMessagePasteObj = &quot;Paste Object&quot;
-
-Global sWorkPath$
-Global sWorkPathURL$
-Global FileChannel%
-Global MainFileChannel%
-
-Sub Main
- call TestAllDocs()
-end Sub
-
-Sub DeleteAllSavedFiles()
- Dim sFileName as String
- sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmWriter)
- If FileExists (sFileName) then
- Kill (sFileName)
- End If
- sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmCalc)
- If FileExists (sFileName) then
- Kill (sFileName)
- End If
- sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmImpress)
- If FileExists (sFileName) then
- Kill (sFileName)
- End If
- sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmDraw)
- If FileExists (sFileName) then
- Kill (sFileName)
- End If
- sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmHyperText)
- If FileExists (sFileName) then
- Kill (sFileName)
- End If
- sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmWriter or cFltXML)
- If FileExists (sFileName) then
- Kill (sFileName)
- End If
- sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmCalc or cFltXML)
- If FileExists (sFileName) then
- Kill (sFileName)
- End If
- sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmImpress or cFltXML)
- If FileExists (sFileName) then
- Kill (sFileName)
- End If
- sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmDraw or cFltXML)
- If FileExists (sFileName) then
- Kill (sFileName)
- End If
- sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmWriter or cFlt50)
- If FileExists (sFileName) then
- Kill (sFileName)
- End If
- sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmCalc or cFlt50)
- If FileExists (sFileName) then
- Kill (sFileName)
- End If
- sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmImpress or cFlt50)
- If FileExists (sFileName) then
- Kill (sFileName)
- End If
- sFileName = sWorkPath+cTempFileName+&quot;.&quot;+GetDocEndings(frmDraw or cFlt50)
- If FileExists (sFileName) then
- Kill (sFileName)
- End If
-End Sub
-
-Sub DeleteAllLogFiles()
- If FileExists (sWorkPath+sLogFileName) then
- Kill (sWorkPath+sLogFileName)
- End If
- If FileExists (sWorkPath+sSWLogFileName) then
- Kill (sWorkPath+sSWLogFileName)
- End If
- If FileExists (sWorkPath+sSCLogFileName) then
- Kill (sWorkPath+sSCLogFileName)
- End If
- If FileExists (sWorkPath+sSDLogFileName) then
- Kill (sWorkPath+sSDLogFileName)
- End If
- If FileExists (sWorkPath+sSMathLogFileName) then
- Kill (sWorkPath+sSMathLogFileName)
- End If
- If FileExists (sWorkPath+sSImDLogFileName) then
- Kill (sWorkPath+sSImDLogFileName)
- End If
- If FileExists (sWorkPath+sSChartLogFileName) then
- Kill (sWorkPath+sSChartLogFileName)
- End If
- If FileExists (sWorkPath+sSHptLogFileName) then
- Kill (sWorkPath+sSHptLogFileName)
- End If
- If FileExists (sWorkPath+sSMessageLogFileName) then
- Kill (sWorkPath+sSMessageLogFileName)
- End If
- If FileExists (sWorkPath+sSDrawLogFileName) then
- Kill (sWorkPath+sSDrawLogFileName)
- End If
- If FileExists (sWorkPath+sJavaLogFileName) then
- Kill (sWorkPath+sJavaLogFileName)
- End If
- If FileExists (sWorkPath+sSDBLogFileName) then
- Kill (sWorkPath+sSDBLogFileName)
- End If
- If FileExists (sWorkPath+sExtLogFileName) then
- Kill (sWorkPath+sExtLogFileName)
- End If
-end Sub
-
-Function OpenLogDat (sFileName as String) as Integer
- Dim LocaleFileChannel%
- If FileExists (sWorkPath+sFileName) then
- Kill (sWorkPath+sFileName)
- End If
- LocaleFileChannel% = Freefile
- Open sWorkPath+sFileName For Output As LocaleFileChannel%
- OpenLogDat = LocaleFileChannel%
-end Function
-
-Function GetWorkPath as string
- sTemp = &quot;$(userpath)/temp/&quot;
- GetWorkPath = CreateUnoService(&quot;com.sun.star.config.SpecialConfigManager&quot;).SubstituteVariables(sTemp)
-End Function
-
-Function GetWorkURL as string
- sTemp = &quot;$(userurl)/temp/&quot;
- GetWorkURL = CreateUnoService(&quot;com.sun.star.config.SpecialConfigManager&quot;).SubstituteVariables(sTemp)
-End Function
-
-Function GetSystem (sTmpWorkPath as string) as string
- GetSystem = &quot;&quot;
- if InStr (sTmpWorkPath, &quot;:&quot;) then
- GetSystem = &quot;windows&quot;
- else
- GetSystem = &quot;unix&quot;
- End If
-end Function
-
-Function ConvertPathToWin (sTmpWorkPath as string) as string
- for i%=1 to Len(sTmpWorkPath)
- sTemp = Mid (sTmpWorkPath, i%, 1)
- if sTemp = &quot;/&quot; then
- sTmpWorkPath = Left (sTmpWorkPath, i%-1) + &quot;\&quot; + Right (sTmpWorkPath, Len(sTmpWorkPath)-i%)
- else
- if sTemp = &quot;|&quot; then
- sTmpWorkPath = Left (sTmpWorkPath, i%-1) + &quot;:&quot; + Right (sTmpWorkPath, Len(sTmpWorkPath)-i%)
- end If
- end If
- next i%
- ConvertPathToWin = sTmpWorkPath
-end Function
-
-Sub TestAllDocs()
-DIM sDocURL as String, sDocPath as String
-DIM nStrPos as Long
-
- sWorkPath = GetWorkPath
- sWorkPathURL = GetWorkURL
-
- if GetSystem (sWorkPath) = &quot;windows&quot; then
- sWorkPath = ConvertPathToWin (sWorkPath)
- end if
-
- &apos;search ExtensionURL
- sExtensionURL = sWorkPathURL
- If not FileExists (sExtensionURL + cExtensionFileName) then
- if bShowTable then
- sDocURL = gOutPutDoc.URL
- CompatibilityMode(true)
- nStrPos = InStrRev (sDocURL, &quot;/&quot; )
- CompatibilityMode(false)
- if nStrPos then
- sDocURL = Left (sDocURL, nStrPos)
- sExtensionURL = sDocURL
- If not FileExists (sExtensionURL + cExtensionFileName) then
- bMakeExtensionTest = false &apos; test is not possible then
- end if
- else
- bMakeExtensionTest = false &apos; test is not possible then
- end if
-
- else
- bMakeExtensionTest = false &apos; test is not possible then
- end if
-
- end if
-
- call DeleteAllSavedFiles()
- call DeleteAllLogFiles()
- MainFileChannel = OpenLogDat (sLogFileName)
- call WriteTestSequence (MainFileChannel)
- if bMakeWriterTest then
- call MakeDocTest (frmWriter)
- end if
- if bMakeCalcTest then
- call MakeDocTest (frmCalc)
- end if
- if bMakeImpressTest then
- call MakeDocTest (frmImpress)
- end if
- if bMakeDrawTest then
- call MakeDocTest (frmDraw)
- end if
- if bMakeHTMLTest then
- call MakeDocTest (frmHyperText)
- end if
- if bMakeChartTest then
- call MakeChartTest (frmChart)
- end if
- if bMakeMathTest then
- call MakeNewDoc (frmMath)
- end if
- if bMakeJavaTest then
- call TestJava (frmJava)
- end if
- if bMakeDBTest then
- call Test_DB.TestDB (frmDataBase)
- end if
- if bMakeExtensionTest then
- call Test_Ext.TestExtensions (frmExtension)
- end if
-
- Close #MainFileChannel
-end Sub
-
-Sub WriteTestSequence (FileChannel as integer)
- Print #FileChannel, &quot;Sequence of testing&quot;
-
- if bMakeWriterTest then
- WriteTests (&quot;writer : &quot;, true, FileChannel)
- end if
- if bMakeCalcTest then
- WriteTests (&quot;calc : &quot;, true, FileChannel)
- end if
- if bMakeImpressTest then
- WriteTests (&quot;impress : &quot;, true, FileChannel)
- end if
- if bMakeDrawTest then
- WriteTests (&quot;draw : &quot;, true, FileChannel)
- end if
- if bMakeHTMLTest then
- WriteTests (&quot;HTML : &quot;, true, FileChannel)
- end if
- if bMakeChartTest then
- WriteTests (&quot;chart : &quot;, false, FileChannel)
- end if
- if bMakeMathTest then
- WriteTests (&quot;math : &quot;, false, FileChannel)
- end if
- if bMakeJavaTest then
- WriteTests (&quot;Java : &quot;, false, FileChannel)
- end if
- if bMakeDBTest then
- WriteDBTests (&quot;Database : &quot;, FileChannel)
- end if
- if bMakeExtensionTest then
- WriteExtensionTests (&quot;Extension : &quot;, FileChannel)
- end if
-
- Print #FileChannel
-end Sub
-
-Sub WriteTests (sText as string, bTestAll as boolean, nFileChannel as integer)
- Dim sWriteStr as string
-
- sWriteStr = sText
- sWriteStr = sWriteStr + &quot;new&quot;
- if bTestAll then
- if bMakeCutTest then
- sWriteStr = sWriteStr + &quot;, cut&quot;
- end if
- if bMakePasteTest then
- sWriteStr = sWriteStr + &quot;, paste&quot;
- end if
- if bMakeSaveOpen8Test then
- sWriteStr = sWriteStr + &quot;, save 8.0&quot;
- end if
- if bMakeSaveOpenXMLTest then
- sWriteStr = sWriteStr + &quot;, save XML&quot;
- end if
- if bMakeSaveOpen50Test then
- sWriteStr = sWriteStr + &quot;, save 5.0&quot;
- end if
- if bMakeSaveOpen8Test then
- sWriteStr = sWriteStr + &quot;, open 8.0&quot;
- end if
- if bMakeSaveOpenXMLTest then
- sWriteStr = sWriteStr + &quot;, open XML&quot;
- end if
- if bMakeSaveOpen50Test then
- sWriteStr = sWriteStr + &quot;, open 5.0&quot;
- end if
- end if
-
- sWriteStr = sWriteStr + &quot;, close&quot;
-
- Print #nFileChannel, sWriteStr
-end Sub
-
-Sub WriteDBTests (sText as string, nFileChannel as integer)
- Dim sWriteStr as string
-
- sWriteStr = sText
- sWriteStr = sWriteStr + &quot;open / services&quot;
- sWriteStr = sWriteStr + &quot;, insert&quot;
- sWriteStr = sWriteStr + &quot;, delete&quot;
- sWriteStr = sWriteStr + &quot;, seek&quot;
- sWriteStr = sWriteStr + &quot;, close&quot;
-
- Print #nFileChannel, sWriteStr
-end Sub
-
-Sub WriteExtensionTests (sText as string, nFileChannel as integer)
- Dim sWriteStr as string
-
- sWriteStr = sText
- sWriteStr = sWriteStr + &quot;services&quot;
- sWriteStr = sWriteStr + &quot;, install&quot;
- sWriteStr = sWriteStr + &quot;, uninstall&quot;
-
- Print #nFileChannel, sWriteStr
-end Sub
-
-Sub MakeDocTest (FilterType as Integer)
- Dim oDoc as Object
- Dim sFileNameXML$, sFileName50$, sFileName8$
- Dim bError as Boolean
- Dim nCurrentAction as Integer
-
- On Local Error GoTo DOCTESTERROR
- nCurrentAction = cLogfileFailed
- FileChannel% = OpenLogDat (GetLogFileName(FilterType))
- nCurrentAction = cDocNew
- oDoc = LoadDoc (&quot;private:factory/&quot; + GetDocFilter(FilterType or cFltNewDoc))
- LogState (not IsNull (oDoc), GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, FileChannel)
- LogState (not IsNull (oDoc), GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, MainFileChannel)
- SetStatus (FilterType, cDocNew, not IsNull (oDoc))
- if not IsNull (oDoc) then
- nCurrentAction = cDocCut
- call CutAndPaste(FilterType, oDoc)
-&apos; bError = oDoc.CurrentController.frame.close
- nCurrentAction = cDocSaveOpen8
- if bMakeSaveOpen8Test and IsFilterAvailable (FilterType or cFlt8) then
- sFileName8 = sWorkPathURL+cTempFileName+&quot;.&quot;+GetDocEndings(FilterType or cFlt8)
- SaveDoc (sFileName8, oDoc, GetDocFilter(FilterType or cFlt8))
- end if
- nCurrentAction = cDocSaveOpenXML
- if bMakeSaveOpenXMLTest and IsFilterAvailable (FilterType or cFltXML) then
- sFileNameXML = sWorkPathURL+cTempFileName+&quot;.&quot;+GetDocEndings(FilterType or cFltXML)
- SaveDoc (sFileNameXML, oDoc, GetDocFilter(FilterType or cFltXML))
- end if
- nCurrentAction = cDocSaveOpen50
- if bMakeSaveOpen50Test and IsFilterAvailable (FilterType or cFlt50) then
- sFileName50 = sWorkPathURL+cTempFileName+&quot;.&quot;+GetDocEndings(FilterType or cFlt50)
- SaveDoc (sFileName50, oDoc, GetDocFilter(FilterType or cFlt50))
- end if
-&apos; oDoc.dispose
- nCurrentAction = cDocClose
- oDoc.close (true)
-&apos; bError = true &apos; nur zum ¦bergang, weil bError = oDoc.CurrentController.frame.close nicht geht
-&apos; LogState (bError, GetDocFilter(FilterType)+&quot; &quot;+ cMessageCloseDoc, FileChannel)
-&apos; LogState (bError, GetDocFilter(FilterType)+&quot; &quot;+ cMessageCloseDoc, MainFileChannel)
-&apos; SetStatus (FilterType, cDocClose, bError)
- nCurrentAction = cDocSaveOpen8
- if bMakeSaveOpen8Test and IsFilterAvailable (FilterType or cFlt8) then
- oDoc = LoadDoc (sFileName8)
-
-&apos; oDoc = Documents.open(sFileName)
- LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageSaveOpen8Doc, FileChannel)
- LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageSaveOpen8Doc, MainFileChannel)
- SetStatus (FilterType, cDocSaveOpen8, not IsNull (oDoc))
-
- if not IsNull (oDoc) then
-&apos; oDoc.dispose
- nCurrentAction = cDocClose
- oDoc.close (true)
- end If
- end if
-
- nCurrentAction = cDocSaveOpenXML
- if bMakeSaveOpenXMLTest and IsFilterAvailable (FilterType or cFltXML) then
- oDoc = LoadDoc (sFileNameXML)
-
-&apos; oDoc = Documents.open(sFileName)
- LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageSaveOpenXMLDoc, FileChannel)
- LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageSaveOpenXMLDoc, MainFileChannel)
- SetStatus (FilterType, cDocSaveOpenXML, not IsNull (oDoc))
-
- if not IsNull (oDoc) then
-&apos; oDoc.dispose
- nCurrentAction = cDocClose
- oDoc.close (true)
- end If
- end if
-
- nCurrentAction = cDocSaveOpen50
- if bMakeSaveOpen50Test and IsFilterAvailable (FilterType or cFlt50) then
- oDoc = LoadDoc (sFileName50)
-
-&apos; oDoc = Documents.open(sFileName)
- LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageSaveOpen50Doc, FileChannel)
- LogState (not IsNull (oDoc),GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageSaveOpen50Doc, MainFileChannel)
- SetStatus (FilterType, cDocSaveOpen50, not IsNull (oDoc))
-
- if not IsNull (oDoc) then
-&apos; oDoc.dispose
- nCurrentAction = cDocClose
- oDoc.close (true)
- end If
- end if
- end If
- Print #FileChannel, &quot;---&quot;
- Close #FileChannel%
- Exit Sub &apos; Without error
-
- DOCTESTERROR:
- If (nCurrentAction = cLogfileFailed) then
- SetStatus (FilterType, cDocNew, False)
- Exit Sub
- else
- LogState (False, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(nCurrentAction), FileChannel)
- LogState (False, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(nCurrentAction), MainFileChannel)
- SetStatus (FilterType, nCurrentAction, False)
- Close #FileChannel%
- End If
- Exit Sub &apos; With error
-End Sub
-
-Sub MakeNewDoc (FilterType as Integer)
- DIM oDoc as Object
- Dim bError as Boolean
- Dim nCurrentAction as Integer
- On Local Error GoTo DOCTESTERROR2
- nCurrentAction = cLogfileFailed
- FileChannel% = OpenLogDat (GetLogFileName(FilterType))
- nCurrentAction = cDocNew
-&apos; oDoc = Documents.Add(GetDocFilter(FilterType))
- oDoc = LoadDoc (&quot;private:factory/&quot; + GetDocFilter(FilterType or cFltNewDoc))
- LogState (not IsNull (oDoc), GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, FileChannel)
- LogState (not IsNull (oDoc), GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, MainFileChannel)
- SetStatus (FilterType, cDocNew, not IsNull (oDoc))
- if not IsNull (oDoc) then
- nCurrentAction = cDocClose
-&apos; oDoc.dispose
- oDoc.close (true)
-&apos; bError = true &apos; nur zum ¦bergang, weil bError = oDoc.CurrentController.frame.close nicht geht
-&apos; LogState (bError, GetDocFilter(FilterType)+&quot; &quot;+ cMessageCloseDoc, FileChannel)
-&apos; LogState (bError, GetDocFilter(FilterType)+&quot; &quot;+ cMessageCloseDoc, MainFileChannel)
-&apos; SetStatus (FilterType, cDocClose, bError)
- end If
- Print #FileChannel, &quot;---&quot;
- Close #FileChannel%
- Exit Sub &apos; Without error
-
- DOCTESTERROR2:
- If (nCurrentAction = cLogfileFailed) then
- SetStatus (FilterType, cDocNew, False)
- Exit Sub
- else
- LogState (False, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(nCurrentAction), FileChannel)
- LogState (False, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(nCurrentAction), MainFileChannel)
- SetStatus (FilterType, nCurrentAction, False)
- Close #FileChannel%
- End If
- Exit Sub &apos; With error
-End Sub
-
-Sub MakeChartTest (FilterType as Integer)
- Dim oCharts as Object
- Dim oDoc as Object
- Dim oRange(0) as New com.sun.star.table.CellRangeAddress
- Dim oRect as New com.sun.star.awt.Rectangle
- const cChartName=&quot;TestChart&quot;
- Dim bError as Boolean
- Dim nCurrentAction as Integer
- On Local Error GoTo CHARTTESTERROR
- nCurrentAction = cLogfileFailed
- FileChannel% = OpenLogDat (GetLogFileName(FilterType))
- nCurrentAction = cDocNew
- oDoc = LoadDoc (&quot;private:factory/&quot; + GetDocFilter(frmCalc or cFltNewDoc))
- if not IsNull (oDoc) then
- oCharts = oDoc.sheets(0).Charts
- oCharts.AddNewByName (cChartName, oRect, oRange(), true, true)
- bError=oCharts.HasByName(cChartName)
- LogState (bError, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, FileChannel)
- LogState (bError, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, MainFileChannel)
- SetStatus (FilterType, cDocNew, bError)
-&apos; oDoc.dispose
- nCurrentAction = cDocClose
- oDoc.close (true)
- else
- LogState (not IsNull (oDoc), GetDocFilter(frmCalc or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, FileChannel)
- LogState (not IsNull (oDoc), GetDocFilter(frmCalc or cFltNewDoc)+&quot; &quot;+ cMessageNewDoc, MainFileChannel)
- SetStatus (frmCalc, cDocNew, not IsNull (oDoc))
- End if
- Print #FileChannel, &quot;---&quot;
- Close #FileChannel%
- Exit Sub &apos; Without error
-
- CHARTTESTERROR:
- If (nCurrentAction = cLogfileFailed) then
- SetStatus (FilterType, cDocNew, False)
- Exit Sub
- else
- LogState (False, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(nCurrentAction), FileChannel)
- LogState (False, GetDocFilter(FilterType or cFltNewDoc)+&quot; &quot;+ GetErrorMessage(nCurrentAction), MainFileChannel)
- SetStatus (FilterType, nCurrentAction, False)
- Close #FileChannel%
- End If
- Exit Sub &apos; With error
-End Sub
-
-Sub LogState (bState as Boolean, sText as String, nLocaleFileChannel as integer)
- if bState then
- Print #nLocaleFileChannel, sText+&quot; -&gt; ok&quot;
- else
- Print #nLocaleFileChannel, sText+&quot; -&gt; error&quot;
- end If
-end Sub
-
-Function GetDocEndings (DocType as Integer) as String
- Select Case ( DocType )
- case frmWriter or cFlt8
- GetDocEndings = &quot;odt&quot; &apos; Textdokument
- case frmCalc or cFlt8
- GetDocEndings = &quot;ods&quot; &apos;Tabellendokument
- case frmImpress or cFlt8
- GetDocEndings = &quot;odp&quot; &apos;PrÕsentation
- case frmDraw or cFlt8
- GetDocEndings = &quot;odg&quot; &apos;Zeichen
- case frmHyperText, frmHyperText or cFlt50, frmHyperText or cFltXML
- GetDocEndings = &quot;html&quot; &apos;Hypertext-Dokument
- case frmWriter or cFlt50
- GetDocEndings = &quot;sdw&quot; &apos; Textdokument 5.0
- case frmCalc or cFlt50
- GetDocEndings = &quot;sdc&quot; &apos;Tabellendokument 5.0
- case frmImpress or cFlt50
- GetDocEndings = &quot;sdd&quot; &apos;PrÕsentation 5.0
- case frmDraw or cFlt50
- GetDocEndings = &quot;sda&quot; &apos;Zeichen 5.0
- case frmWriter or cFltXML
- GetDocEndings = &quot;sxw&quot; &apos; Textdokument
- case frmCalc or cFltXML
- GetDocEndings = &quot;sxc&quot; &apos;Tabellendokument
- case frmImpress or cFltXML
- GetDocEndings = &quot;sxi&quot; &apos;PrÕsentation
- case frmDraw or cFltXML
- GetDocEndings = &quot;sxd&quot; &apos;Zeichen
- case else
- GetDocEndings = &quot;&quot;
- end Select
-end Function
-
-Function GetDocFilter (DocType as Integer) as String
- Select Case ( DocType )
- case frmWriter or cFlt8
- GetDocFilter = &quot;writer8&quot; &apos; Textdokument
- case frmCalc or cFlt8
- GetDocFilter = &quot;calc8&quot; &apos;Tabellendokument
- case frmImpress or cFlt8
- GetDocFilter = &quot;impress8&quot; &apos;Präsentation
- case frmDraw or cFlt8
- GetDocFilter = &quot;draw8&quot; &apos;Zeichen
- case frmMath or cFlt8
- GetDocFilter = &quot;math8&quot; &apos;Formel
-
- case frmWriter or cFltXML
- GetDocFilter = &quot;StarOffice XML (Writer)&quot; &apos; Textdokument
- case frmCalc or cFltXML
- GetDocFilter = &quot;StarOffice XML (Calc)&quot; &apos;Tabellendokument
- case frmImpress or cFltXML
- GetDocFilter = &quot;StarOffice XML (Impress)&quot; &apos;Präsentation
- case frmDraw or cFltXML
- GetDocFilter = &quot;StarOffice XML (Draw)&quot; &apos;Zeichen
- case frmMath or cFltXML
- GetDocFilter = &quot;StarOffice XML (Math)&quot; &apos;Formel
-
- case frmHyperText, frmHyperText or cFlt50, frmHyperText or cFltXML
- GetDocFilter = &quot;HTML&quot; &apos;Hypertext-Dokument
- case frmWriter or cFlt50
- GetDocFilter = &quot;StarWriter 5.0&quot; &apos; Textdokument 5.0
- case frmCalc or cFlt50
- GetDocFilter = &quot;StarCalc 5.0&quot; &apos;Tabellendokument 5.0
- case frmImpress or cFlt50
- GetDocFilter = &quot;StarImpress 5.0&quot; &apos;Präsentation 5.0
- case frmDraw or cFlt50
- GetDocFilter = &quot;StarDraw 5.0&quot; &apos;Zeichen 5.0
- case frmMath or cFlt50
- GetDocFilter = &quot;StarMath 5.0&quot; &apos;Formel 5.0
-
- case frmWriter or cFltNewDoc
- GetDocFilter = &quot;swriter&quot; &apos; Textdokument
- case frmCalc or cFltNewDoc
- GetDocFilter = &quot;scalc&quot; &apos;Tabellendokument
- case frmMessage or cFltNewDoc
- GetDocFilter = &quot;Message&quot; &apos;Nachricht
- case frmImpress or cFltNewDoc
- GetDocFilter = &quot;simpress&quot; &apos;Präsentation
- case frmDraw or cFltNewDoc
- GetDocFilter = &quot;sdraw&quot; &apos;Zeichen
- case frmMath or cFltNewDoc
- GetDocFilter = &quot;smath&quot; &apos;Formel
- case frmImage or cFltNewDoc
- GetDocFilter = &quot;simage&quot; &apos;Bild
- case frmHyperText or cFltNewDoc
- GetDocFilter = &quot;swriter/web&quot; &apos;Hypertext-Dokument
- case frmChart or cFltNewDoc
- GetDocFilter = &quot;schart&quot; &apos;Diagramm
- case else
- GetDocFilter = &quot;&quot;
- end Select
-end Function
-
-Function GetLogFileName (DocType as Integer) as String
- Select Case ( DocType )
- case frmWriter
- GetLogFileName = sSWLogFileName &apos; Textdokument
- case frmCalc
- GetLogFileName = sSCLogFileName &apos;Tabellendokument
- case frmMessage
- GetLogFileName = sSMessageLogFileName &apos;Nachricht
- case frmImpress
- GetLogFileName = sSDLogFileName &apos;PrÕsentation
- case frmDraw
- GetLogFileName = sSDrawLogFileName &apos;Zeichnen
- case frmMath
- GetLogFileName = sSMathLogFileName &apos;Formel
- case frmImage
- GetLogFileName = sSImDLogFileName &apos;Bild
- case frmHyperText
- GetLogFileName = sSHptLogFileName &apos;Hypertext-Dokument
- case frmChart
- GetLogFileName = sSChartLogFileName &apos;Diagramm
- case frmJava
- GetLogFileName = sJavaLogFileName &apos;Java
- case frmDataBase
- GetLogFileName = sSDBLogFileName &apos;Database
- case frmExtension
- GetLogFileName = sExtLogFileName &apos;Extension
- case else
- GetLogFileName = &quot;&quot;
- end Select
-end Function
-
-Function GetErrorMessageOnAction (nAction as Integer) as String
- Select Case ( nAction )
- case cDocNew
- GetErrorMessageOnAction = cMessageNewDoc
- case cDocCut
- GetErrorMessageOnAction = cMessageCutObj
- case cDocPaste
- GetErrorMessageOnAction = cMessagePasteObj
- case cDocSaveOpen8
- GetErrorMessageOnAction = cMessageSaveOpen8Doc
- case cDocSaveOpenXML
- GetErrorMessageOnAction = cMessageSaveOpenXMLDoc
- case cDocSaveOpen50
- GetErrorMessageOnAction = cMessageSaveOpen50Doc
- case cDocClose
- GetErrorMessageOnAction = cMessageCloseDoc
- case else
- GetErrorMessageOnAction = &quot;&quot;
- end Select
-end Function
-
-Function IsFilterAvailable (FilterType as Integer) as boolean
- IsFilterAvailable = true
- if ((FilterType = (frmHyperText or cFlt50)) or (FilterType = (frmHyperText or cFltXML))) then
- IsFilterAvailable = false
- end if
-End Function
-
-Function TestJava (FilterType as Integer) as boolean
- Dim oObj as Object
- FileChannel% = OpenLogDat (GetLogFileName(FilterType))
- oObj = createUnoService(cUnoJavaLoader)
- LogState (not IsNull (oObj), &quot;Java &quot;+ cMessageNewDoc, FileChannel)
- LogState (not IsNull (oObj), &quot;Java &quot;+ cMessageNewDoc, MainFileChannel)
- SetStatus (FilterType, cDocNew, not IsNull (oObj))
-
- Print #FileChannel, &quot;---&quot;
- Close #FileChannel%
-
- TestJava = not IsNull (oObj)
-End Function
-
-Sub CutAndPaste (DocType as Integer, oDoc as Object)
- Dim sText as String
- Dim oWin as Object
- Dim oText as Object
- Dim oView as Object
- Dim bCutState as boolean, bPasteState as boolean
- Select Case ( DocType )
- case frmWriter
- Dim oCursor as Object
-
- sText = &quot;AutomaticText&quot;
- oText = oDoc.GetText
- oCursor = oText.CreateTextCursor
- oText.InsertString(oCursor, sText, true) &apos; Cursor selektiert den Text
- oView = oDoc.getCurrentController
- oView.Select(oCursor)
-
- if bMakeCutTest then
- call CutText (oDoc)
-
- if oText.GetString = &quot;&quot; Then
- bCutState = True
- else
- bCutState = False
- end If
- SetStatus (DocType, cDocCut, bCutState)
- LogState (bCutState, GetDocFilter(DocType or cFltNewDoc)+&quot; &quot;+ cMessageCutObj, FileChannel)
- LogState (bCutState, GetDocFilter(DocType or cFltNewDoc)+&quot; &quot;+ cMessageCutObj, MainFileChannel)
- end if
-
- if bMakePasteTest and bMakeCutTest then
- call PasteText (oDoc)
-
- if oText.GetString = sText Then
- bPasteState = True
- else
- bPasteState = False
- end If
- SetStatus (DocType, cDocPaste, bPasteState)
- LogState (bPasteState, GetDocFilter(DocType or cFltNewDoc)+&quot; &quot;+ cMessagePasteObj, FileChannel)
- LogState (bPasteState, GetDocFilter(DocType or cFltNewDoc)+&quot; &quot;+ cMessagePasteObj, MainFileChannel)
- end if
-
- case frmCalc
- DIM oCell as Object
-
- sText = &quot;AutomaticText&quot;
- oCell = oDoc.Sheets(0).GetCellByPosition(0, 0)
- oCell.String = sText
- oView = oDoc.getCurrentController
- oView.Select(oCell)
-
- if bMakeCutTest then
- call CutText (oDoc)
-
- if oCell.String = &quot;&quot; Then
- bCutState = True
- else
- bCutState = False
- end If
- SetStatus (DocType, cDocCut, bCutState)
- LogState (bCutState, GetDocFilter(DocType or cFltNewDoc)+&quot; &quot;+ cMessageCutObj, FileChannel)
- LogState (bCutState, GetDocFilter(DocType or cFltNewDoc)+&quot; &quot;+ cMessageCutObj, MainFileChannel)
- end if
-
- if bMakePasteTest and bMakeCutTest then
- call PasteText (oDoc)
-
- if oCell.String = sText Then
- bPasteState = True
- else
- bPasteState = False
- end If
- SetStatus (DocType, cDocPaste, bPasteState)
- LogState (bPasteState, GetDocFilter(DocType or cFltNewDoc)+&quot; &quot;+ cMessagePasteObj, FileChannel)
- LogState (bPasteState, GetDocFilter(DocType or cFltNewDoc)+&quot; &quot;+ cMessagePasteObj, MainFileChannel)
- end if
- case frmMessage
- case frmImpress, frmDraw
- Dim oPage as Object
- Dim oRect as Object
- Dim xSize as Object
- Dim xPoint as Object
- Dim bObjState as Boolean
-
- xSize = CreateUnoStruct (&quot;com.sun.star.awt.Size&quot;)
- xPoint = CreateUnoStruct (&quot;com.sun.star.awt.Point&quot;)
- xSize.Width = 2000
- xSize.Height = 2000
- xPoint.x = 10000
- xPoint.y = 10000
- oPage = oDoc.DrawPages(0)
- oRect = oDoc.CreateInstance(&quot;com.sun.star.drawing.RectangleShape&quot;)
- oRect.Size = xSize
- oRect.Position = xPoint
- oPage.add(oRect)
-
- oView = oDoc.getCurrentController
- oView.Select(oRect)
-
- &apos; Prüft ob überhaupt ein Object angelegt wurde
- if oPage.count = 1 Then
- bObjState = True
- else
- bObjState = False
- end If
-
- if bMakeCutTest then
- call CutText (oDoc)
-
- if (oPage.count = 0) and bObjState Then
- bCutState = True
- else
- bCutState = False
- end If
- SetStatus (DocType, cDocCut, bCutState)
- LogState (bCutState, GetDocFilter(DocType or cFltNewDoc)+&quot; &quot;+ cMessageCutObj, FileChannel)
- LogState (bCutState, GetDocFilter(DocType or cFltNewDoc)+&quot; &quot;+ cMessageCutObj, MainFileChannel)
- end if
-
- wait (1000) &apos;wait after cut
-
- if bMakePasteTest and bMakeCutTest then
- call PasteText (oDoc)
-
- if (oPage.count = 1) and bObjState Then
- bPasteState = True
- else
- bPasteState = False
- end If
- SetStatus (DocType, cDocPaste, bPasteState)
- LogState (bPasteState, GetDocFilter(DocType or cFltNewDoc)+&quot; &quot;+ cMessagePasteObj, FileChannel)
- LogState (bPasteState, GetDocFilter(DocType or cFltNewDoc)+&quot; &quot;+ cMessagePasteObj, MainFileChannel)
- end if
- case frmMath
- case frmImage
- case frmHyperText
- case frmChart
- end Select
-end Sub
-
-Sub LoadLibrary( LibName as String )
-
- dim args(1)
- dim arg as new com.sun.star.beans.PropertyValue
- arg.Name = &quot;LibraryName&quot;
- arg.Value = LibName
- args(0) = arg
-
- dim url as new com.sun.star.util.URL
- dim trans as object
- trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
- url.Complete = &quot;slot:6517&quot;
- trans.parsestrict( url )
-
- dim disp as object
- disp = StarDesktop.currentFrame.queryDispatch( url, &quot;&quot;, 0 )
- disp.dispatch( url, args() )
-
-End Sub
-
-Sub LoadDoc (DocName as String) as Object
- dim trans as object
- trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
- url = createUnoStruct(&quot;com.sun.star.util.URL&quot; )
- url.Complete = DocName
- if Left(DocName, 5 ) &lt;&gt; &quot;file:&quot; then
- trans.parsestrict( url )
- endif
-
- Dim aPropArray(0) as Object
- aPropArray(0) = CreateUnoStruct(&quot;com.sun.star.beans.PropertyValue&quot;)
- aPropArray(0).Name = &quot;OpenFlags&quot;
- aPropArray(0).Value = &quot;S&quot;
-
- dim doc as object
- dim noargs()
- doc = StarDesktop.loadComponentFromURL( url.Complete, &quot;_blank&quot;, 0, aPropArray() ) &apos; XModel
- LoadDoc = doc
-End Sub
-
-Sub SaveDoc (DocName as String, oDoc as Object, sFilterName as string )
- dim trans as object
- trans = createUnoService(&quot;com.sun.star.util.URLTransformer&quot; )
- url = createUnoStruct(&quot;com.sun.star.util.URL&quot; )
- url.Complete = DocName
- if Left(DocName, 5 ) &lt;&gt; &quot;file:&quot; then
- trans.parsestrict( url )
- endif
-
- if not (sFilterName = &quot;&quot;) then
- Dim aPropArray(0) as Object
- aPropArray(0) = CreateUnoStruct(&quot;com.sun.star.beans.PropertyValue&quot;)
- aPropArray(0).Name = &quot;FilterName&quot;
- aPropArray(0).Value = sFilterName
-
- oDoc.storeAsURL( url.Complete, aPropArray() )
- else
- MessageBox &quot;Filtername is unknown!&quot;
- end if
-end Sub
-</script:module> \ No newline at end of file
diff --git a/smoketestoo_native/data/scripts/Test_DB.xba b/smoketestoo_native/data/scripts/Test_DB.xba
deleted file mode 100755
index 7e5a74bfe2ab..000000000000
--- a/smoketestoo_native/data/scripts/Test_DB.xba
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
-<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_DB" script:language="StarBasic">REM ***** Database Test *****
-
-const cMessageDatabaseService = &quot;Database Service&quot;
-const cMessageDatabaseOpen = &quot;Open Database&quot;
-const cMessageDatabaseInsert = &quot;Insert record into Database&quot;
-const cMessageDatabaseDelete = &quot;Delete record from Database&quot;
-const cMessageDatabaseSeek = &quot;Read other record from Database&quot;
-const cMessageDatabaseClose = &quot;Close Database&quot;
-
-Sub TestDB (FilterType as Integer)
-
-Dim oDBConnection as Object, oDataSource as Object, oDBContext as Object
-Dim sDBName as String, sTable as String, sCurrentMessage as String
-Dim nRowCount as Integer, nCurrentAction as Integer
-Dim bResult as Boolean
-Const sTestString = &quot;Automatical Test&quot;
-
-
- On Local Error GoTo DBERROR
-
- nCurrentAction = cLogfileFailed
- FileChannel% = OpenLogDat (GetLogFileName(FilterType))
-
- nCurrentAction = cDBService
- sCurrentMessage = cMessageDatabaseService + &quot; &quot; + cUnoDatabaseContext
-
- oDBContext = CreateUnoService(cUnoDatabaseContext)
- sDBName=oDBContext.ElementNames(0) &apos;Names of Databases
-
- nCurrentAction = cDBOpen
- sCurrentMessage = cMessageDatabaseOpen
-
- oDataSource = oDBContext.GetByName(sDBName)
- sTable=oDataSource.Tables.ElementNames(0)
- oDBConnection = oDBContext.GetByName(sDBName).GetConnection(&quot;&quot;,&quot;&quot;)
-
- LogState (not IsNull (oDBConnection), &quot;Database &quot;+ cMessageDatabaseOpen, FileChannel)
- LogState (not IsNull (oDBConnection), &quot;Database &quot;+ cMessageDatabaseOpen, MainFileChannel)
- SetStatus (FilterType, cDBOpen, not IsNull (oDBConnection))
- if (IsNull(oDBConnection)) then
- Close #FileChannel%
- Exit Sub
- End If
-
- &apos; Database is open now
-
- nCurrentAction = cDBService
- sCurrentMessage = cMessageDatabaseService + &quot; &quot; + cUnoRowSet
- oRowSet = createUnoService(cUnoRowSet)
-
- if (IsNull(oRowSet)) then
- LogState (not IsNull (oRowSet), &quot;Database &quot;+ cMessageDatabaseService + &quot; &quot; + cUnoRowSet, FileChannel)
- LogState (not IsNull (oRowSet), &quot;Database &quot;+ cMessageDatabaseService + &quot; &quot; + cUnoRowSet, MainFileChannel)
- SetStatus (FilterType, cDBService, not IsNull (oRowSet))
- Exit Sub
- else
- LogState (not IsNull (oRowSet), &quot;Database &quot;+ cMessageDatabaseService, FileChannel)
- LogState (not IsNull (oRowSet), &quot;Database &quot;+ cMessageDatabaseService, MainFileChannel)
- SetStatus (FilterType, cDBService, not IsNull (oRowSet))
- End If
-
- nCurrentAction = cDBInsert
- sCurrentMessage = cMessageDatabaseInsert
-
- oRowSet.ActiveConnection = oDBConnection
-
- oRowSet.CommandType = com.sun.star.sdb.CommandType.COMMAND
- oRowSet.Command = &quot;SELECT * FROM &quot; + sTable
- oRowSet.execute()
-
- oRowSet.moveToInsertRow
- oRowSet.updateString(5, sTestString)
-
- oRowSet.insertRow()
- nRowCount=oRowSet.RowCount
-
- oRowSet.moveToCurrentRow()
-
- bResult = (oRowSet.getString(5) = sTestString)
- LogState (bResult, &quot;Database &quot;+ cMessageDatabaseInsert, FileChannel)
- LogState (bResult, &quot;Database &quot;+ cMessageDatabaseInsert, MainFileChannel)
- SetStatus (FilterType, cDBInsert, bResult)
-
- &apos;delete only if insert passed
-
- if (bResult) Then
- nCurrentAction = cDBDelete
- sCurrentMessage = cMessageDatabaseDelete
- oRowSet.deleteRow()
- bResult = (nRowCount - oRowSet.RowCount = 0)
- if ( bResult ) Then
- oRowSet.next()
- bResult = (nRowCount - oRowSet.RowCount = 1)
- End If
- LogState (bResult, &quot;Database &quot;+ cMessageDatabaseDelete, FileChannel)
- LogState (bResult, &quot;Database &quot;+ cMessageDatabaseDelete, MainFileChannel)
- SetStatus (FilterType, cDBDelete, bResult)
- End If
-
- &apos; read other record
-
- nCurrentAction = cDBSeek
- sCurrentMessage = cMessageDatabaseSeek
- oRowSet.first()
- bResult = not (oRowSet.getString(5) = sTestString)
- LogState (bResult, &quot;Database &quot;+ cMessageDatabaseSeek, FileChannel)
- LogState (bResult, &quot;Database &quot;+ cMessageDatabaseSeek, MainFileChannel)
- SetStatus (FilterType, cDBSeek, bResult)
-
- nCurrentAction = cDBClose
- sCurrentMessage = cMessageDatabaseClose
- oDBConnection.Dispose()
- LogState (True, &quot;Database &quot;+ cMessageDatabaseClose, FileChannel)
- LogState (True, &quot;Database &quot;+ cMessageDatabaseClose, MainFileChannel)
- SetStatus (FilterType, cDBClose, True)
-
- Print #FileChannel, &quot;---&quot;
- Close #FileChannel%
- Exit Sub &apos; Without error
-
- DBERROR:
- If (nCurrentAction = cLogfileFailed) then
- SetStatus (FilterType, cDBOpen, False)
- Exit Sub
- else
- LogState (False, &quot;Database &quot;+ sCurrentMessage, FileChannel)
- LogState (False, &quot;Database &quot;+ sCurrentMessage, MainFileChannel)
- SetStatus (FilterType, nCurrentAction, False)
- Close #FileChannel%
- End If
- Exit Sub &apos; With error
-End Sub
-</script:module> \ No newline at end of file
diff --git a/smoketestoo_native/data/scripts/Test_Ext.xba b/smoketestoo_native/data/scripts/Test_Ext.xba
deleted file mode 100755
index 00fc93ff86eb..000000000000
--- a/smoketestoo_native/data/scripts/Test_Ext.xba
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
-<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Test_Ext" script:language="StarBasic">REM ***** BASIC *****
-
-const cMessageExtensionService = &quot;Extension Service&quot;
-const cMessageExtensionInstall = &quot;Install Extension&quot;
-const cMessageExtensionUninstall = &quot;Uninstall Extension&quot;
-
-Sub TestExtensions (FilterType as Integer)
-Dim oTestExtension as Object, obj_null as Object
-Dim sCurrentMessage as String
-Dim nCurrentAction as Integer
-Dim bResult as Boolean
-Dim sImplementationNameString as String
-sImplementationNameString = cUnoSmoketestTestExtension + &quot;$_TestExtension&quot;
-
- On Local Error GoTo EXTERROR
-
- nCurrentAction = cLogfileFailed
- FileChannel% = OpenLogDat (GetLogFileName(FilterType))
-
- sCurrentMessage = cMessageExtensionService
- nCurrentAction = cEXTService
-
- &apos;Create an implementation of com.sun.star.ucb.XCommandEnvironment which is needed for
- &apos;adding the extension. The implementation is in
- &apos;javaunohelper/com/sun/star/comp/juhtest/SmoketestCommandEnvironment.java and the code is in juh.jar
- cmdEnv = createUnoService(cUnoSmoketestCommandEnvironment)
-
- &apos;Create the component context and then get the singleton thePackageManagerFactory
- &apos;A singleton cannot be created with createUnoService
- ctx = getDefaultContext
- factory = ctx.getValueByName(&quot;/singletons/&quot; + cUnothePackageManagerFactory)
-
- &apos;Get the XPackageManager interface. By passing &quot;user&quot; we determine that the actions we perform on
- &apos;XPackageManager only affect the user installation. To modify the share installation one would pass &quot;share&quot;.
- ext_mgr = factory.getPackageManager(&quot;user&quot;)
-
- LogState (not IsNull (ext_mgr), &quot;Extension &quot;+ cMessageExtensionService, FileChannel)
- LogState (not IsNull (ext_mgr), &quot;Extension &quot;+ cMessageExtensionService, MainFileChannel)
- SetStatus (FilterType, cEXTService, not IsNull (ext_mgr))
- if (IsNull(ext_mgr)) then
- Close #FileChannel%
- Exit Sub
- End If
-
- sCurrentMessage = cMessageExtensionInstall
- nCurrentAction = cEXTInstall
-
- &apos;Add the extension. We must provide a file URL here.
- ext_mgr.addPackage(sExtensionURL + cExtensionFileName, &quot;&quot;, obj_null, cmdEnv)
-
- &apos;Check if the extension has been added by creating a service which is contained in the extension.
- oTestExtension = createUnoService(cUnoSmoketestTestExtension)
- bResult = (oTestExtension.getImplementationName = sImplementationNameString)
- LogState (bResult, &quot;Extension &quot;+ cMessageExtensionInstall, FileChannel)
- LogState (bResult, &quot;Extension &quot;+ cMessageExtensionInstall, MainFileChannel)
- SetStatus (FilterType, cEXTInstall, bResult)
- if (not bResult) then
- Close #FileChannel%
- Exit Sub
- End If
-
- sCurrentMessage = cMessageExtensionUninstall
- nCurrentAction = cEXTUninstall
-
- &apos;Remove the package
- ext_mgr.removePackage(&quot;org.openoffice.legacy.&quot; + cExtensionFileName, cExtensionFileName, obj_null, cmdEnv)
-
- &apos;Try to create the service which is contained in the now removed extension.
- oTestExtension = createUnoService(cUnoSmoketestTestExtension)
-
- &apos;The service must not be available anymore. Therefor isNull must return true.
- LogState (IsNull (oTestExtension), &quot;Extension &quot;+ cMessageExtensionUninstall, FileChannel)
- LogState (IsNull (oTestExtension), &quot;Extension &quot;+ cMessageExtensionUninstall, MainFileChannel)
- SetStatus (FilterType, cEXTUninstall, IsNull (oTestExtension))
-
- Print #FileChannel, &quot;---&quot;
- Close #FileChannel%
- Exit Sub &apos; Without error
-
- EXTERROR:
- If (nCurrentAction = cLogfileFailed) then
- SetStatus (FilterType, cEXTService, False)
- Exit Sub
- else
- LogState (False, &quot;Extension &quot;+ sCurrentMessage, FileChannel)
- LogState (False, &quot;Extension &quot;+ sCurrentMessage, MainFileChannel)
- SetStatus (FilterType, nCurrentAction, False)
- Close #FileChannel%
- End If
- Exit Sub &apos; With error
-
-End Sub
-</script:module> \ No newline at end of file
diff --git a/smoketestoo_native/data/scripts/script.xlb b/smoketestoo_native/data/scripts/script.xlb
deleted file mode 100755
index 6b7873432f75..000000000000
--- a/smoketestoo_native/data/scripts/script.xlb
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
-<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Standard" library:readonly="false" library:passwordprotected="false">
- <library:element library:name="Global"/>
- <library:element library:name="Test_10er"/>
- <library:element library:name="Test_DB"/>
- <library:element library:name="Test_Ext"/>
-</library:library> \ No newline at end of file
diff --git a/smoketestoo_native/data/smoketestdoc.sxw b/smoketestoo_native/data/smoketestdoc.sxw
index b9139efda28d..fa67968addec 100755
--- a/smoketestoo_native/data/smoketestdoc.sxw
+++ b/smoketestoo_native/data/smoketestdoc.sxw
Binary files differ
diff --git a/smoketestoo_native/data/solaris/sparc/admin b/smoketestoo_native/data/solaris/sparc/admin
deleted file mode 100644
index 6639c2406d06..000000000000
--- a/smoketestoo_native/data/solaris/sparc/admin
+++ /dev/null
@@ -1,6 +0,0 @@
-action=nocheck
-conflict=nocheck
-setuid=nocheck
-idepend=nocheck
-mail=
-
diff --git a/smoketestoo_native/data/solaris/sparc/getuid.so b/smoketestoo_native/data/solaris/sparc/getuid.so
deleted file mode 100755
index 13c193879c4b..000000000000
--- a/smoketestoo_native/data/solaris/sparc/getuid.so
+++ /dev/null
Binary files differ
diff --git a/smoketestoo_native/data/solaris/x86/admin b/smoketestoo_native/data/solaris/x86/admin
deleted file mode 100644
index 6639c2406d06..000000000000
--- a/smoketestoo_native/data/solaris/x86/admin
+++ /dev/null
@@ -1,6 +0,0 @@
-action=nocheck
-conflict=nocheck
-setuid=nocheck
-idepend=nocheck
-mail=
-
diff --git a/smoketestoo_native/data/solaris/x86/getuid.so b/smoketestoo_native/data/solaris/x86/getuid.so
deleted file mode 100755
index c5cdc8ce7a7b..000000000000
--- a/smoketestoo_native/data/solaris/x86/getuid.so
+++ /dev/null
Binary files differ
diff --git a/smoketestoo_native/makefile.mk b/smoketestoo_native/makefile.mk
index ae7fbb01d502..8b497ddb4727 100644
--- a/smoketestoo_native/makefile.mk
+++ b/smoketestoo_native/makefile.mk
@@ -1,7 +1,6 @@
-#***********************************************************************
-#
+#*************************************************************************
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,33 +21,48 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
+
+PRJ = .
+PRJNAME = smoketestoo_native
+TARGET = smoketest
+
+ENABLE_EXCEPTIONS = TRUE
-PRJ=.
+.INCLUDE: settings.mk
-PRJNAME=test10
-TARGET=t1
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
-.INCLUDE : settings.mk
+SLOFILES = $(SHL1OBJS)
-STAR_REGISTRY=
-.EXPORT : STAR_REGISTRY
-.EXPORT : PERL
-.EXPORT : DMAKE_WORK_DIR
+SHL1TARGET = smoketest
+SHL1OBJS = $(SLO)/smoketest.obj
+SHL1RPATH = NONE
+SHL1STDLIBS = $(CPPUHELPERLIB) $(CPPULIB) $(CPPUNITLIB) $(SALLIB) $(TESTLIB)
+SHL1VERSIONMAP = version.map
+DEF1NAME = $(SHL1TARGET)
-.INCLUDE : target.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : make_test
+ALLTAR : cpptest
+cpptest : $(SHL1TARGETN) $(BIN)/smoketestdoc.sxw
-make_test:
-.IF $(NOREMOVE)
- @$(PERL) smoketest.pl -nr $(LAST_MINOR) $(BUILD)
-.ELSE
- @$(PERL) smoketest.pl $(LAST_MINOR) $(BUILD)
-.ENDIF
+OOO_CPPTEST_ARGS = $(SHL1TARGETN) -env:arg-doc=$(BIN)/smoketestdoc.sxw
-noremove:
- @$(PERL) smoketest.pl -nr $(LAST_MINOR) $(BUILD)
+$(BIN)/smoketestdoc.sxw: data/smoketestdoc.sxw
+ $(COPY) $< $@
+.IF "$(OS)" != "WNT"
+$(installationtest_instpath).flag : \
+ $(shell ls $(installationtest_instset)/OOo_*_install_*.tar.gz)
+ $(RM) -r $(installationtest_instpath)
+ $(MKDIRHIER) $(installationtest_instpath)
+ cd $(installationtest_instpath) && \
+ $(GNUTAR) xfz $(installationtest_instset)/OOo_*_install_*.tar.gz
+ $(MV) $(installationtest_instpath)/OOo_*_install_* \
+ $(installationtest_instpath)/opt
+ $(TOUCH) $@
+cpptest : $(installationtest_instpath).flag
+.END
diff --git a/smoketestoo_native/prj/build.lst b/smoketestoo_native/prj/build.lst
index 5a0b659bd6d1..f4bd5368c65b 100644
--- a/smoketestoo_native/prj/build.lst
+++ b/smoketestoo_native/prj/build.lst
@@ -1,4 +1,4 @@
-smtoon smoketestoo_native :: instsetoo_native NULL
+smtoon smoketestoo_native :: instsetoo_native test NULL
smtoon smoketestoo_native usr1 - all smoketestoonative_mkout NULL
smtoon smoketestoo_native\com\sun\star\comp\smoketest nmake - all smoketestoonative_csscs NULL
smtoon smoketestoo_native nmake - all,test10 smoketestoonative_mk smoketestoonative_csscs NULL
diff --git a/smoketestoo_native/smoketest.cxx b/smoketestoo_native/smoketest.cxx
new file mode 100644
index 000000000000..e2cb51127f47
--- /dev/null
+++ b/smoketestoo_native/smoketest.cxx
@@ -0,0 +1,169 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 "sal/config.h"
+
+#include "boost/noncopyable.hpp"
+#include "com/sun/star/beans/PropertyState.hpp"
+#include "com/sun/star/beans/PropertyValue.hpp"
+#include "com/sun/star/document/MacroExecMode.hpp"
+#include "com/sun/star/frame/DispatchResultEvent.hpp"
+#include "com/sun/star/frame/DispatchResultState.hpp"
+#include "com/sun/star/frame/XComponentLoader.hpp"
+#include "com/sun/star/frame/XController.hpp"
+#include "com/sun/star/frame/XDispatchProvider.hpp"
+#include "com/sun/star/frame/XDispatchResultListener.hpp"
+#include "com/sun/star/frame/XModel.hpp"
+#include "com/sun/star/frame/XNotifyingDispatch.hpp"
+#include "com/sun/star/lang/EventObject.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/util/URL.hpp"
+#include "cppuhelper/implbase1.hxx"
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
+#include "osl/conditn.hxx"
+#include "osl/diagnose.h"
+#include "rtl/ustring.h"
+#include "rtl/ustring.hxx"
+#include "test/getargument.hxx"
+#include "test/officeconnection.hxx"
+#include "test/oustringostreaminserter.hxx"
+#include "test/toabsolutefileurl.hxx"
+
+namespace {
+
+namespace css = com::sun::star;
+
+struct Result: private boost::noncopyable {
+ osl::Condition condition;
+ bool success;
+ rtl::OUString result;
+};
+
+class Listener:
+ public cppu::WeakImplHelper1< css::frame::XDispatchResultListener >
+{
+public:
+ Listener(Result * result): result_(result) { OSL_ASSERT(result != 0); }
+
+private:
+ virtual void SAL_CALL disposing(css::lang::EventObject const &)
+ throw (css::uno::RuntimeException) {}
+
+ virtual void SAL_CALL dispatchFinished(
+ css::frame::DispatchResultEvent const & Result)
+ throw (css::uno::RuntimeException);
+
+ Result * result_;
+};
+
+void Listener::dispatchFinished(css::frame::DispatchResultEvent const & Result)
+ throw (css::uno::RuntimeException)
+{
+ result_->success =
+ (Result.State == css::frame::DispatchResultState::SUCCESS) &&
+ (Result.Result >>= result_->result);
+ result_->condition.set();
+}
+
+class Test: public CppUnit::TestFixture {
+public:
+ virtual void setUp();
+
+ virtual void tearDown();
+
+private:
+ CPPUNIT_TEST_SUITE(Test);
+ CPPUNIT_TEST(test);
+ CPPUNIT_TEST_SUITE_END();
+
+ void test();
+
+ test::OfficeConnection connection_;
+};
+
+void Test::setUp() {
+ connection_.setUp();
+}
+
+void Test::tearDown() {
+ connection_.tearDown();
+}
+
+void Test::test() {
+ rtl::OUString doc;
+ CPPUNIT_ASSERT(
+ test::getArgument(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("doc")), &doc));
+ css::uno::Sequence< css::beans::PropertyValue > args(1);
+ args[0].Name = rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("MacroExecutionMode"));
+ args[0].Handle = -1;
+ args[0].Value <<=
+ com::sun::star::document::MacroExecMode::ALWAYS_EXECUTE_NO_WARN;
+ args[0].State = css::beans::PropertyState_DIRECT_VALUE;
+ css::util::URL url;
+ url.Complete = rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "vnd.sun.star.script:Standard.Global.StartTestWithDefaultOptions?"
+ "language=Basic&location=document"));
+ Result result;
+ css::uno::Reference< css::frame::XNotifyingDispatch >(
+ css::uno::Reference< css::frame::XDispatchProvider >(
+ css::uno::Reference< css::frame::XController >(
+ css::uno::Reference< css::frame::XModel >(
+ css::uno::Reference< css::frame::XComponentLoader >(
+ connection_.getFactory()->createInstance(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.frame.Desktop"))),
+ css::uno::UNO_QUERY_THROW)->loadComponentFromURL(
+ test::toAbsoluteFileUrl(doc),
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("_default")),
+ 0, args),
+ css::uno::UNO_QUERY_THROW)->getCurrentController(),
+ css::uno::UNO_SET_THROW)->getFrame(),
+ css::uno::UNO_QUERY_THROW)->queryDispatch(
+ url, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("_self")), 0),
+ css::uno::UNO_QUERY_THROW)->dispatchWithNotification(
+ url, css::uno::Sequence< css::beans::PropertyValue >(),
+ new Listener(&result));
+ result.condition.wait();
+ CPPUNIT_ASSERT(result.success);
+ CPPUNIT_ASSERT_EQUAL(rtl::OUString(), result.result);
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(Test);
+
+}
+
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/smoketestoo_native/smoketest.pl b/smoketestoo_native/smoketest.pl
deleted file mode 100755
index f5ef32f31bcb..000000000000
--- a/smoketestoo_native/smoketest.pl
+++ /dev/null
@@ -1,1279 +0,0 @@
-:
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-#
-# smoketest - do the smoketest
-#
-
-use lib ("$ENV{SOLARENV}/bin/modules");
-
-use File::Basename;
-use File::Path;
-use File::Copy;
-use Getopt::Long;
-use SourceConfig;
-
-########################
-# #
-# Globale Variablen #
-# #
-#########################
-$is_debug = 0; # run without executing commands
-$is_command_infos = 0; # print command details before exec
-$is_protocol_test = 0;
-$is_remove_on_error = 0;
-$is_remove_at_end = 1;
-$is_do_deinstall = 0;
-$is_without_msiexec = 1;
-$is_oo = 1;
-
-$sourceconfig_obj;
-$gui = $ENV{GUI};
-$temp_path = $ENV{TEMP};
-$vcsid = $ENV{VCSID};
-$sversion_saved = 0;
-$FileURLPrefix = "file:///";
-$userinstalldir = "UserInstallation";
-$cygwin = "cygwin";
-$prefered_lang = "en-US";
-$global_instset_mask = "";
-$smoketest_install = $ENV{SMOKETESTINSTALLSET};
-
-if (!defined($gui)) {
- print "The workstamp is missing. Please use setsolar\n";
- exit(1);
-}
-
-if (($gui eq "WNT") and ($ENV{USE_SHELL} ne "4nt")) {
- $gui = $cygwin;
-}
-
-if (!defined($temp_path) and (($gui eq "UNX") or ($gui eq $cygwin))) {
- $temp_path = $ENV{TMPDIR};
- if (!defined($temp_path) and (-d "/tmp")) {
- $temp_path = "/tmp";
- }
-}
-
-if (defined($ENV{INSTALLPATH_SMOKETEST})) {
- $installpath_without = $ENV{INSTALLPATH_SMOKETEST};
-}
-else {
- $installpath_without = $temp_path;
-}
-
-if (!defined($installpath_without)) {
- print "Your temp value is missing. Please set your temp-variable or define INSTALLPATH_SMOKETEST\n\n";
- exit(1);
-}
-
-if (!((defined($ENV{UPDATER})) and ($ENV{UPDATER} eq "YES") and !defined($ENV{CWS_WORK_STAMP})) ) {
- $is_protocol_test = 0;
-}
-
-if ($gui eq "WNT") {
- $PathSeparator = '\\';
- $NewPathSeparator = ';';
- $dos = "$ENV{COMSPEC} -c";
- $PERL = "$dos $ENV{PERL}";
- $REMOVE_DIR = "$dos del /qsxyz";
- $REMOVE_FILE = "$dos del";
- $LIST_DIR = "$dos ls";
- $COPY_FILE = "$dos copy";
- $COPY_DIR = "$dos copy /s";
- $MK_DIR = "md";
- $RENAME_FILE = "ren";
- $nul = '> NUL';
- $RESPFILE="response_fat_wnt";
- $SVERSION_INI = $ENV{USERPROFILE} . $PathSeparator . "Anwendungsdaten" . $PathSeparator . "sversion.ini";
- $SOFFICEBIN = "soffice.exe";
- $bootstrapini = "bootstrap.ini";
- $bootstrapiniTemp = $bootstrapini . "_";
- $packpackage = "msi";
- $installpath_without =~ s/\//\\/g;
-}
-elsif ($gui eq "UNX") {
- $is_do_deinstall = 0;
- $PathSeparator = '/';
- $NewPathSeparator = ':';
- $dos = "";
- $PERL = "$ENV{PERL}";
- $REMOVE_DIR = "rm -rf";
- $REMOVE_FILE = "rm -f";
- $LIST_DIR = "ls";
- $COPY_FILE = "cp -f";
- $MK_DIR = "mkdir";
- $RENAME_FILE = "mv";
- $nul = '> /dev/null';
- $RESPFILE="response_fat_unx";
- $SVERSION_INI = $ENV{HOME} . $PathSeparator . ".sversionrc";
- $bootstrapini = "bootstraprc";
- $bootstrapiniTemp = $bootstrapini . "_";
- $packpackage = $ENV{PKGFORMAT};
- $SOFFICEBIN = "soffice";
- if ($ENV{OS} eq "MACOSX") {
- $COPY_DIR = "cp -RPfp";
- }
- else {
- $COPY_DIR = "cp -rf";
- }
-}
-elsif ($gui eq $cygwin) {
- $PathSeparator = '/';
- $NewPathSeparator = ':';
- $dos = "";
- $PERL = "$ENV{PERL}";
- $REMOVE_DIR = "rm -rf";
- $REMOVE_FILE = "rm -f";
- $LIST_DIR = "ls";
- $COPY_FILE = "cp -f";
- $COPY_DIR = "cp -rf";
- $MK_DIR = "mkdir";
- $RENAME_FILE = "mv";
- $nul = '> /dev/null';
- $RESPFILE="response_fat_wnt";
- $SVERSION_INI = $ENV{USERPROFILE} . $PathSeparator . "Anwendungsdaten" . $PathSeparator . "sversion.ini";
- $SOFFICEBIN = "soffice";
- $bootstrapini = "bootstrap.ini";
- $bootstrapiniTemp = $bootstrapini . "_";
- $CygwinLineends = $/;
- $WinLineends = "\r\n";
- $packpackage = "msi";
- $installpath_without =~ s/\\/\//g;
-}
-else {
- print_error ("not supported system\n",1);
-}
-
-if ($is_without_msiexec) {
- require installer::windows::admin; import installer::windows::admin;
- $installer::globals::logfilename = $ENV{DMAKE_WORK_DIR} . $PathSeparator . $ENV{OUTPATH} . $ENV{PROEXT} . $PathSeparator . "misc" . $PathSeparator . "installer.log";
- $installer::globals::exithandler = \&install_error;
-}
-
-if ($is_oo) {
- @install_list = ( 'instsetoo_native'
- );
-}
-else {
- @install_list = ( 'instset_native'
- );
-}
-
-@error_messages = ( '',
- 'lock flag for pkgadd still exist. Installation not possible!',
- 'Error during installation!',
- 'Error: patching configuration failed!',
- 'Error: starting office failed or office crashed!',
- 'Error during testing',
- 'can not copy extension',
- 'Error in setup log',
- 'installationsset is not complete',
- 'can not copy all basic scripts',
- 'can not patch bottstrapini',
- 'msiexec failed. Maybe you have got an installed version',
- 'deinstallation is incomplete',
- 'this packformat is not supported for this environment',
- 'can not set execute permission'
-);
-
-my $show_NoMessage = 0;
-my $show_Message = 1;
-
-my $error_logflag = 1;
-my $error_setup = 2;
-my $error_patchConfig = 3;
-my $error_startOffice = 4;
-my $error_testResult = 5;
-my $error_copyExtension = 6;
-my $error_setup_log = 7;
-my $error_installset = 8;
-my $error_copyBasic = 9;
-my $error_patchBootstrap = 10;
-my $error_msiexec = 11;
-my $error_deinst = 12;
-my $error_packformat = 13;
-my $error_permission = 14;
-
-my $command_normal = 0;
-my $command_withoutErrorcheck = 1;
-my $command_withoutOutput = 2;
-
-if ($is_oo) {
- $PRODUCT="OpenOffice";
-}
-else {
- $PRODUCT="StarOffice";
-}
-
-if (($ENV{PKGFORMAT} eq "installed") and (!defined ($ENV{FORCE2ARCHIVE}))) {
- $packpackage = $ENV{PKGFORMAT}; # take it for all environments
-}
-elsif (defined ($ENV{FORCE2ARCHIVE})) {
- $packpackage = "archive"; # take it for all environments
-}
-$StandDir = $ENV{SOLARSRC} . $PathSeparator;
-$SHIP = defined $ENV{SHIPDRIVE} ? $ENV{SHIPDRIVE} . $PathSeparator : "shipdrive_not_set";
-$PORDUCT = "$SHIP$ENV{INPATH}$PathSeparator$PRODUCT$PathSeparator$packpackage$PathSeparator";
-$DATA="$ENV{DMAKE_WORK_DIR}$PathSeparator" . "data$PathSeparator";
-$WORK_STAMP_LC=$ENV{WORK_STAMP};
-$WORK_STAMP_LC =~ tr/A-Z/a-z/;
-$ENV{DBGSV_INIT} = $DATA . "dbgsv.ini";
-$ExtensionDir = $ENV{DMAKE_WORK_DIR} . $PathSeparator . $ENV{OUTPATH} . $ENV{PROEXT} . $PathSeparator . "bin" . $PathSeparator;
-
-if (defined($vcsid)) {
- $installpath_without .= $PathSeparator . $vcsid;
-}
-if (!$is_oo) {
- $installpath_without .= $PathSeparator . "StarOffice";
-}
-else {
- $installpath_without .= $PathSeparator . "OpenOffice";
-}
-
-$installpath = $installpath_without . $PathSeparator;
-$installpath = glob $installpath;
-
-$ENV{STAR_REGISTRY}="";
-$milestone = "";
-
-#### options ####
-
-$opt_nr = 0;
-GetOptions('nr');
-
-if ($opt_nr) {
- $is_remove_at_end = 0; # do not remove installation
-}
-if ( $ARGV[0] ) {
- $milestone = $ARGV[0];
-}
-if ( $ARGV[1] ) {
- $buildid = $ARGV[1];
-}
-
-
-#### script id #####
-
-( $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/;
-
-$id_str = ' $Revision: 1.35 $ ';
-$id_str =~ /Revision:\s+(\S+)\s+\$/
- ? ($script_rev = $1) : ($script_rev = "-");
-
-print "$script_name -- version: $script_rev\n";
-
-
-#### main ####
-
-if (!$is_debug) {
- if ($is_do_deinstall) {
- deinstallInstallation ($installpath);
- }
- removeOldInstallation($installpath);
- save_sversion ($SVERSION_INI);
-}
-
-($INSTSETNAME, $INSTALLSET) = getInstset();
-
-print "Install: $INSTALLSET$INSTSETNAME\n";
-prepare();
-doTest();
-
-if (!$is_debug) {
- restore_sversion ($SVERSION_INI);
- if ($is_remove_at_end) {
- if ($is_do_deinstall) {
- deinstallInstallation ($installpath);
- }
- removeInstallation($installpath);
- }
- else {
- print_notRemoved ($installpath);
- }
-}
-print "smoketest successful!\n";
-exit (0);
-
-#########################
-# #
-# Procedures #
-# #
-#########################
-
-sub getSubFiles {
- my ($startDir, $DirArray_ref, $mask) = @_;
- my ($dir);
- opendir(DIR,"$startDir");
- while($dir = readdir(DIR)) {
- if (($dir =~ /\.$/) or ($dir !~ /$mask/)) {
- next;
- }
- push (@{$DirArray_ref}, "$dir");
- }
- closedir(DIR);
-
-}
-
-sub getSubDirs {
- my ($startDir, $DirArray_ref) = @_;
- my ($dir);
- opendir(DIR,"$startDir");
- while($dir = readdir(DIR)) {
- if (($dir !~ /\.$/) and ( -d "$startDir$dir") ) {
- push (@{$DirArray_ref}, "$dir");
- }
- }
- closedir(DIR);
-
-}
-
-sub getSubDirsFullPath {
- my ($startDir, $DirArray_ref) = @_;
- my ($dir);
- opendir(DIR,"$startDir");
- while($dir = readdir(DIR)) {
- if (($dir !~ /\.$/) and ( -d "$startDir$dir") ) {
- push (@{$DirArray_ref}, "$startDir$dir");
- }
- }
- closedir(DIR);
-
-}
-
-sub findSubDir {
- my ($DirArray_ref) = @_;
- my (@sortedArray, $dir, $instdir);
- @sortedArray = sort langsort @{$DirArray_ref};
- print "Langs: @sortedArray\n" if $is_command_infos;
- foreach $dir (@sortedArray) {
- if ($dir =~ /log$/) {
- next;
- }
- $instdir = "$dir";
- return $instdir;
- }
- return "";
-}
-
-sub findMultiple {
- my ($base, $name) = @_;
- my ($f, @s, @res);
- opendir(DIR, $base) or die "cannot open dir $base";
- while ($f = readdir(DIR)) {
- push @res, "$base" if $f eq $name;
- push @s, $f if
- -d "$base$f" && ! -l "$base$f" && $f ne '.' && $f ne '..';
- }
- closedir(DIR);
- foreach $f (@s) {
- push @res, findMultiple("$base$f$PathSeparator", $name);
- }
- return @res;
-}
-
-sub findUnique {
- my ($base, $name) = @_;
- my @res = findMultiple($base, $name);
- die "no unique $name in $base" unless @res == 1;
- return $res[0];
-}
-
-sub prepare {
- if ($gui eq "UNX") {
- $ENV{ignore_patch_check}="t";
- $ENV{OOO_FORCE_DESKTOP} = "none";
- }
-
-}
-
-sub is_Installset_ok {
- my ($installpath, $installname) = @_;
- my ($is_ok, $infile);
- $is_ok = 1;
- $infile = $INSTALLSET. "log$PathSeparator";
- $infile =~ s/_pre_//;
- $infile =~ s/[\/\\]normal[\/\\]//;
- $infile =~ s/\.(\d+)$/_$1\.html/;
- #if ($installname =~ /(?:_pre_){0,1}(.*)\.(\d+)/) {
- # $infile .= "$1_$2.html";
- # print "protocol: $infile\n" if $is_debug;
- #}
- open INTABLE, "<$infile" or return errorFromOpen ($infile);
- while(<INTABLE>) {
- $line = $_;
- if ( $line =~ />(error)(.*)</ ) {
- print "ERROR: $1$2\n";
- $is_ok = 0;
- }
- }
- close INTABLE;
- return $is_ok;
-}
-
-sub errorFromOpen {
- my ($file) = @_;
- print "ERROR: can't open $file\n";
- return 0;
-}
-
-sub doTest {
- my ($Command);
- my (@Params, $basedir, $basisdir, $branddir);
-
- # check installset (error 8)
-
- if (($INSTSETNAME ne "") and $is_protocol_test) {
- if (!is_Installset_ok ("$PORDUCT", $INSTSETNAME)) {
- print_error ($error_messages[$error_installset], $error_installset);
- }
- }
-
- # install office (error 2)
-
- $basedir = doInstall ("$INSTALLSET$INSTSETNAME$PathSeparator", $installpath);
- $basisdir = findUnique($basedir, 'ure-link');
- $branddir = findUnique($basedir, 'basis-link');
- if ( (defined($ENV{OS})) && ($ENV{OS} eq "MACOSX") ) {
- $programpath = "$branddir". "MacOS$PathSeparator";
- }
- else {
- $programpath = "$branddir". "program$PathSeparator";
- }
- $userinstallpath_without = $installpath . $userinstalldir;
- $userinstallpath = $userinstallpath_without . $PathSeparator;
- $userpath = "$userinstallpath" . "user$PathSeparator";
- $basicpath = $userpath . "basic$PathSeparator";
- $standardbasicpath = "$basisdir" . "presets$PathSeparator" . "basic$PathSeparator";
- $LOGPATH="$userinstallpath" . "user" . $PathSeparator . "temp";
-
- if ($gui eq "UNX") {
- $Command = "chmod -R 777 \"$basedir\"*";
- execute_system ("$Command");
- }
-
- # check setup log file (error 7)
-
-# $Command = "$PERL check_setup.pl \"$programpath" . "setup.log\"";
-# execute_Command ($Command, $error_setup_log, $show_Message, $command_normal );
-
- # patch config (error 3)
-
- $Command = "$PERL config.pl \"$branddir\" \"$userinstallpath\" \"$buildid\"";
- execute_Command ($Command, $error_patchConfig, $show_Message, $command_normal );
-
- # copy basicscripts (error 9)
-
- $Command = "$COPY_FILE \"$DATA" . "scripts$PathSeparator" . "\"*.x* \"$standardbasicpath" . "Standard$PathSeparator\"";
- execute_Command ($Command, $error_copyBasic, $show_Message, $command_withoutOutput);
-
- createPath("$basicpath", $error_copyBasic);
- $Command = "$COPY_DIR \"$standardbasicpath\"* \"$basicpath\"";
- execute_Command ($Command, $error_copyBasic, $show_Message, $command_withoutOutput);
-
- # patching bootstrap (error 11)
-
- if (!patch_bootstrap ("$programpath$bootstrapini", "$programpath$bootstrapiniTemp")) {
- print_error ($error_messages[$error_patchBootstrap], $error_patchBootstrap);
- }
-
- # copy extension (error 6)
-
- createPath ($LOGPATH, $error_copyExtension);
- $Command = "$COPY_FILE \"$ExtensionDir" . "TestExtension.oxt\" " . "\"$LOGPATH$PathSeparator\"";
- execute_Command ($Command, $error_copyExtension, $show_Message, $command_withoutOutput);
-
-
- # start office (error 4)
-
- print "starting office ($INSTSETNAME)\n";
-
- $Command = "\"$programpath" . "$SOFFICEBIN\" -norestore -nocrashreport macro:///Standard.Global.StartTestWithDefaultOptions";
- if ( (defined($ENV{OS})) && ($ENV{OS} eq "MACOSX") ) {
- $Command = "cd \"$programpath\"; " . $Command;
- }
- execute_Command ($Command, $error_startOffice, $show_Message, $command_normal);
-
- # test if smoketest is ok (error 5)
-
- $Command = "$PERL testlog.pl \"$LOGPATH\"";
- execute_Command ($Command, $error_testResult, $show_Message, $command_normal);
-
- # deinstall office (error 6)
-
- if ($is_remove_at_end) {
- print "Deinstalling Office\n";
- }
-# $Command = "$PERL deinstall.pl \"$LOGPATH\" \"$installpath\"";
-# execute_Command ($Command, $error_deinstall, $show_NoMessage, $command_normal);
-}
-
-sub install_error {
- print_error ($error_messages[$error_setup], $error_setup);
-}
-
-sub doInstall {
- my ($installsetpath, $dest_installdir) = @_;
- my ($DirArray, $mask, $file, $Command, $optdir, $rpmdir, $system, $mach, $basedir, $output_ref, $olddir, $newdir);
- if (($ENV{PKGFORMAT} eq "installed") and (!defined($ENV{FORCE2ARCHIVE}))) {
- createPath ($dest_installdir, $error_setup);
- $Command = "$COPY_DIR \"$installsetpath\" \"$dest_installdir\"";
- execute_Command ($Command, $error_setup, $show_Message, $command_withoutOutput);
- @DirArray = ();
- getSubDirsFullPath ($dest_installdir, \@DirArray);
- if ($#DirArray == 0) {
- $basedir = $DirArray[0] . $PathSeparator;
- }
- elsif ($#DirArray == -1) {
- print_error ($error_setup, $show_Message);
- }
- else {
- $basedir = $dest_installdir;
- }
- }
- elsif (($gui eq "WNT") or ($gui eq $cygwin)) {
- if (defined($ENV{FORCE2ARCHIVE})) {
- print_error ($error_messages[$error_packformat], $error_packformat);
- }
- $mask = "\\.msi\$";
- getSubFiles ("$installsetpath", \@DirArray, $mask);
- if ($#DirArray == -1) {
- print_error ("Installationset in $installsetpath is incomplete", 2);
- }
- foreach $file (@DirArray) {
- if ($is_without_msiexec) {
- if ($is_debug) {
- print "Debugmode: no installation from $installsetpath\n";
- }
- else {
- createPath ($dest_installdir, $error_setup);
- installer::windows::admin::make_admin_install ($installsetpath . $file, $dest_installdir);
- if ($gui eq $cygwin) {
- $Command = "find $dest_installdir \\( -name \"installhelper\" -prune -o -name \"*.exe\" -o -name \"*.dll\" -o -name \"*.manifest\" -o -name \"*.bin\" -o -name \"*.jar\" \\) -exec chmod a+x {} \\;";
- execute_Command ($Command, $error_permission, $show_Message, $command_normal);
- }
- }
- }
- else
- {
- if ($gui eq $cygwin) {
- my $convertinstallset = ConvertCygwinToWin_Shell("$installsetpath$file");
- my $convertdestdir = ConvertCygwinToWin_Shell($dest_installdir);
- $_inst_cmd=$ENV{SMOKETEST_SOINSTCMD};
- if ( defined($_inst_cmd) ) {
- $Command = $_inst_cmd . " $convertinstallset -qn TARGETDIR=$convertdestdir";
- }
- else {
- $Command = "msiexec.exe /a $convertinstallset -qn TARGETDIR=$convertdestdir ALLUSERS=2";
- }
- }
- else {
- $_inst_cmd=$ENV{SMOKETEST_SOINSTCMD};
- if ( defined($_inst_cmd) ) {
- $Command = $_inst_cmd . " $installsetpath$file -qn TARGETDIR=$dest_installdir";
- }
- else {
- $Command = "msiexec.exe /a $installsetpath$file -qn TARGETDIR=$dest_installdir ALLUSERS=2";
- }
- }
- execute_Command ($Command, $error_msiexec, $show_Message, $command_normal);
- }
- }
- $basedir = $dest_installdir;
- }
- elsif ($gui eq "UNX") {
- $system = `uname -s`;
- chomp $system;
- $mach = `uname -m`;
- chomp $mach;
- if (defined ($ENV{EPM}) && ($ENV{EPM} eq 'NO')) { # do the install ourselves ...
-# FIXME - this tool should work nicely without such hacks
-# cut/paste from ooo-build/bin/ooinstall
- my $instoo_dir = "$ENV{SRC_ROOT}/instsetoo_native";
-
- if ( $ENV{'SYSTEM_MOZILLA'} eq 'YES' ) {
- if (defined $ENV{'LD_LIBRARY_PATH'}) {
- $ENV{'LD_LIBRARY_PATH'} =
- "$ENV{'LD_LIBRARY_PATH'}:$ENV{'MOZ_LIB'}";
- } else {
- $ENV{'LD_LIBRARY_PATH'} = $ENV{'MOZ_LIB'};
- }
- }
- $ENV{'PYTHONPATH'} = "$ENV{SRC_ROOT}/instsetoo_native/$ENV{INPATH}/bin:$ENV{SOLARVERSION}/$ENV{INPATH}/lib";
- $ENV{OUT} = "../$ENV{INPATH}";
- $ENV{LOCAL_OUT} = "../$ENV{INPATH}";
- $ENV{LOCAL_COMMON_OUT} = "../$ENV{INPATH}";
- my $sane_destdir = $dest_installdir;
- $sane_destdir .= "oootest";
- createPath ($sane_destdir, $error_setup);
- $Command = "cd $instoo_dir/util ; perl -w $ENV{SOLARENV}/bin/make_installer.pl " .
- "-f openoffice.lst -l en-US -p OpenOffice " .
- "-buildid \"smoketestoo\" -simple $sane_destdir";
-# FIXME - this tool should work nicely without such evil
- execute_Command ($Command, $error_setup, $show_Message, $command_normal);
- return "$sane_destdir/"
-
- } elsif ( (defined($system)) && ($system eq "Linux") ) {
- if (defined ($ENV{FORCE2ARCHIVE}) and ($ENV{FORCE2ARCHIVE} eq "TRUE")) {
- $optdir = $dest_installdir; #needed for getting work dir at the end
- $mask = "\\.tar\\.gz\$";
- getSubFiles ("$installsetpath", \@DirArray, $mask);
- if ($#DirArray == -1) {
- print_error ("Installationset in $installsetpath is incomplete", 2);
- }
- elsif ($#DirArray == 0) {
- createPath ($dest_installdir, $error_setup);
- $Command = "cd \"$dest_installdir\" && tar xzvf \"$installsetpath$DirArray[0]\"";
- execute_Command ($Command, $error_setup, $show_Message, $command_withoutOutput);
- }
- else {
- print_error ($error_setup, $show_Message);
- }
- }
- elsif ($ENV{PKGFORMAT} eq "deb") { # default is rpm
- $installsetpath .= "DEBS$PathSeparator";
- $optdir = "$dest_installdir" . "opt" . $PathSeparator;
- createPath ($optdir, $error_setup);
- $mask = "\\.deb\$";
- getSubFiles ("$installsetpath", \@DirArray, $mask);
- if ($#DirArray == -1) {
- print_error ("Installationset in $installsetpath is incomplete", 2);
- }
- foreach $file (@DirArray) {
- if ( ($file =~ /-menus-/) or ($file =~ /^adabas/) or (/^j2re-/) or ($file =~ /-gnome-/) ) {
- next;
- }
- $Command = "dpkg-deb -x $installsetpath$file $dest_installdir";
- execute_Command ($Command, $error_setup, $show_Message, $command_withoutErrorcheck | $command_withoutOutput);
- }
- }
- else {
- $installsetpath .= "RPMS$PathSeparator";
- $optdir = "$dest_installdir" . "opt" . $PathSeparator;
- $rpmdir = "$dest_installdir" . "rpm" . $PathSeparator;
- createPath ($optdir, $error_setup);
- createPath ($rpmdir, $error_setup);
- my $ld_library_backup = $ENV{LD_LIBRARY_PATH};
- if ( defined $ENV{SYSBASE}) {
- my $sysbase=$ENV{SYSBASE};
- if ( "$ld_library_backup" eq "" ) {
- $ENV{LD_LIBRARY_PATH} = "$sysbase/usr/lib";
- } else {
- $ENV{LD_LIBRARY_PATH} = "$ld_library_backup:$sysbase/lib";
- }
- }
- $Command = "rpm --initdb --define \"_dbpath $rpmdir\"";
- execute_Command ($Command, $error_setup, $show_Message, $command_withoutOutput);
- $mask = "\\.rpm\$";
- getSubFiles ("$installsetpath", \@DirArray, $mask);
- if ($#DirArray == -1) {
- print_error ("Installationset in $installsetpath is incomplete", 2);
- }
- foreach $file (@DirArray) {
- if ( ($file =~ /-menus-/) or ($file =~ /^adabas/) or (/^j2re-/) or ($file =~ /-gnome-/) ) {
- next;
- }
- $Command = "rpm ";
- $Command .= "--ignorearch " if (defined $ENV{HOSTTYPE} && ($ENV{HOSTTYPE} eq 'x86_64-linux'));
- $Command .= "--define \"_dbpath $rpmdir\" --install --ignoresize --nodeps -vh --relocate /opt=${dest_installdir}opt $installsetpath$file";
- execute_Command ($Command, $error_setup, $show_Message, $command_withoutErrorcheck | $command_withoutOutput);
- }
- $ENV{LD_LIBRARY_PATH}=$ld_library_backup;
- }
- }
- elsif ( (defined($system)) && ($system eq "SunOS") ) {
- if (defined($ENV{FORCE2ARCHIVE})) {
- print_error ($error_messages[$error_packformat], $error_packformat);
- }
- @DirArray = ();
- $mask = "^.ai.pkg.zone.lock";
- getSubFiles ("/tmp", \@DirArray, $mask);
- if ($#DirArray >= 0) {
- foreach $file (@DirArray) {
- $Command = "$REMOVE_FILE /tmp/$file";
- execute_Command ($Command, $error_logflag, $show_Message, $command_withoutOutput);
- }
- }
- if ($mach eq sun4u) {
- $solarisdata = $DATA . "solaris$PathSeparator" . "sparc$PathSeparator";
- }
- else {
- $solarisdata = $DATA . "solaris$PathSeparator" . "x86$PathSeparator";
- }
- $installsetpath .= "packages$PathSeparator";
- $optdir = "$dest_installdir" . "opt" . $PathSeparator;
- createPath ($optdir, $error_setup);
- createPath ($dest_installdir . "usr$PathSeparator" . "bin", $error_setup);
- @DirArray = ();
- getSubDirs ("$installsetpath", \@DirArray);
- my $ld_preload = $ENV{LD_PRELOAD};
- $ENV{LD_PRELOAD} = $solarisdata . "getuid.so";
- if ($#DirArray == -1) {
- print_error ("Installationset in $installsetpath is incomplete", 2);
- }
- foreach $file (@DirArray) {
- if ( ($file =~ /-gnome/) or ($file =~ /-cde/) or ($file =~ /adabas/) or ($file =~ /j3/) or ($file =~ /-desktop-/) ) {
- next;
- }
- $Command = "pkgparam -d $installsetpath $file BASEDIR";
- $output_ref = execute_Command ($Command, $error_setup, $show_Message, $command_withoutOutput);
- if (($#{@$output_ref} > -1) and ($$output_ref[0] ne "") ) {
- createPath ("$dest_installdir$$output_ref[0]", $error_setup);
- }
- $Command = "pkgadd -a $solarisdata" . "admin -d $installsetpath -R $dest_installdir $file";
- execute_Command ($Command, $error_setup, $show_Message, $command_withoutErrorcheck | $command_withoutOutput);
- }
- my $pkgadd_tmpfile = "/tmp/.ai.pkg.zone.lock*";
- $Command = "$REMOVE_FILE $pkgadd_tmpfile";
- execute_Command ($Command, $error_setup, $show_NoMessage, $command_withoutErrorcheck | $command_withoutOutput);
- $ENV{LD_PRELOAD} = $ld_preload;
- }
- elsif ( (defined($ENV{OS})) && ($ENV{OS} eq "MACOSX") ) {
- if (defined($ENV{FORCE2ARCHIVE})) {
- print_error ($error_messages[$error_packformat], $error_packformat);
- }
- @DirArray = ();
- my $install_dmg;
- getSubFiles ("$installsetpath", \@DirArray, "^[a-zA-Z0-9].*\\.dmg\$");
- if ($#DirArray == 0) {
- $install_dmg = "$installsetpath" . $DirArray[0];
- }
- elsif ($#DirArray > 0) {
- print_error ("more than one installset found in $installsetpath", 2);
- }
- else {
- print_error ("no installset found in $installsetpath", 2);
- }
- $Command = "hdiutil attach " . $install_dmg;
- my $output_ref;
- $output_ref = execute_Command ($Command, $error_setup, $show_Message, $command_withoutOutput);
- my $volumeinfo = $$output_ref[$#{@{$output_ref}}];
- if (!$volumeinfo =~ /OpenOffice/) {
- print_error ("mount of $install_dmg failed", 2);
- }
- $volumeinfo =~ s/\s{2,}/;/g;
- my @volumeinfos = split(/;/,$volumeinfo);
- my $detachpath = $volumeinfos[0];
- my $newinstallsetpath = $volumeinfos[2] . $PathSeparator;
- createPath ($dest_installdir, $error_setup);
- $Command = "$COPY_DIR \"$newinstallsetpath\" \"$dest_installdir\"";
- execute_Command ($Command, $error_setup, $show_Message, $command_withoutOutput);
- $Command = "hdiutil detach " . $detachpath;
- execute_Command ($Command, $error_setup, $show_Message, $command_withoutOutput);
- @DirArray = ();
- getSubFiles ("$dest_installdir", \@DirArray, "\\.app");
- if ($#DirArray == 0) {
- $optdir = "$dest_installdir" . $DirArray[0] . $PathSeparator;
- my $PListFile = "Info.plist";
- my $officeDir = "$optdir" . "Contents" . $PathSeparator;
- my $programmDir = "$officeDir" . "MacOS" . $PathSeparator;
- $Command = "$COPY_FILE \"$officeDir$PListFile\" \"$programmDir$PListFile\"";
- execute_Command ($Command, $error_setup, $show_Message, $command_withoutOutput);
- }
- else {
- print_error ("Installation in $dest_installdir is incomplete", 2);
- }
- }
- else {
- print_error ("Plattform is not supported", 2);
- }
- @DirArray = ();
- getSubDirsFullPath ($optdir, \@DirArray);
- if ($#DirArray == 0) {
- $basedir = $DirArray[0] . $PathSeparator;
- }
- elsif ($#DirArray == -1) {
- print_error ($error_setup, $show_Message);
- }
- else {
- $basedir = $optdir;
- }
- }
- return ($basedir);
-}
-
-sub langsort {
- if ($a eq $prefered_lang) {
- return -1;
- }
- elsif ($b eq $prefered_lang) {
- return 1;
- }
- else {
- $a cmp $b;
- }
-}
-
-sub getInstset {
- my ($INSTSET, $NEWINSTSET);
- my (@DirArray, $InstDir, $RootDir, $TestDir1, $TestDir2);
-
- if (defined ($ENV{EPM}) && ($ENV{EPM} eq 'NO') && ($gui eq "UNX")) { # we do the install ourselves ...
- return ();
- }
-
- print "get Instset\n" if $is_debug;
- $NEWINSTSET = "";
- if (defined($smoketest_install)) {
- my $mask = "\\" . $PathSeparator . "\$";
- $smoketest_install =~ s/$mask//;
- my ($sufix);
- ($NEWINSTSET, $INSTSET, $sufix) = fileparse ($smoketest_install);
- return ($NEWINSTSET, $INSTSET);
- }
- if (!isLocalEnv() and !defined($ENV{CWS_WORK_STAMP}) and (-e $SHIP)) {
- ($NEWINSTSET, $INSTSET) = getSetFromServer();
- }
- else {
- $InstDir="";
- $RootDir=$ENV{DMAKE_WORK_DIR};
- $RootDir=~s/\w+$//;
- foreach $project (@install_list) {
- @DirArray=();
- $TestDir1 = "$RootDir$project$PathSeparator$ENV{INPATH}$PathSeparator$PRODUCT$PathSeparator$packpackage$PathSeparator" . "install$PathSeparator";
- if (-e "$TestDir1") {
- $InstDir= $TestDir1;
- }
- else {
- $sourceconfig_obj = SourceConfig->new() if (!defined ($sourceconfig_obj));
- my $module_path = $sourceconfig_obj->get_module_path($project);
- # only if module exists
- if (defined ($module_path)) {
- $TestDir2 = "$module_path$PathSeparator$ENV{INPATH}$PathSeparator$PRODUCT$PathSeparator$packpackage$PathSeparator" . "install$PathSeparator";
- }
- else {
- $TestDir2 = $module_path;
- }
- if (defined ($TestDir2) && -e "$TestDir2") {
- $InstDir="$TestDir2";
- }
- }
- if ($InstDir eq "") {
- next;
- }
- getSubDirs ("$InstDir", \@DirArray);
- $INSTSET = findSubDir (\@DirArray);
- print "Lang-Sel: $INSTSET\n" if $is_command_infos;
-;
- if ($INSTSET ne "") {
- $NEWINSTSET = $INSTSET;
- $INSTSET = $InstDir;
- print "new: $INSTSET\n";
- }
- if (($INSTSET ne "") and (-e $INSTSET)) {
- return ($NEWINSTSET, $INSTSET);
- }
- }
- print_error ("no installationset found\n",2);
- }
- return ($NEWINSTSET, $INSTSET);
-}
-
-sub isLocalEnv {
- my $returnvalue = 0;
- if (defined ($ENV{SOL_TMP}) && defined ($ENV{SOLARVERSION})) {
- my $mask = $ENV{SOL_TMP};
- $mask =~ s/\\/\\\\/;
- print "Mask: $mask\n" if $is_debug;
- if ($ENV{SOLARVERSION}=~ /$mask/) {
- $returnvalue = 1;
- }
- }
- return $returnvalue;
-}
-
-sub get_productcode {
- my ( $installpath ) = @_;
- my ($path, $productcode);
- $productcode = "";
- $path = "$installpath" . "setup.ini";
- print "$path\n" if $is_debug;
- if ( !open(SETUP,$path) ) {
- print "FATAL: can't open $path\n" if ($is_command_infos);
- return ($productcode);
- }
-
- if (!eof(SETUP)) {
- while (<SETUP>) {
- chomp;
- if ( /productcode=(\{[\d\w-]+\})/ ) {
- $productcode = $1;
- }
- }
-
- close(SETUP);
- }
- return ($productcode);
-}
-
-sub InstsetSort {
- my ($a1, $b1);
- if ($a =~ /$global_instset_mask/) {
- $a1 = $1;
- }
- if ($b =~ /$global_instset_mask/) {
- $b1 = $1;
- }
- $a1 <=> $b1;
-}
-
-sub getSetFromServer {
- my ($DirName, $SetupFullPath);
- my $workspace = $ENV{WORK_STAMP};
- my $platform = $ENV{INPATH};
- my $latestset;
- my (@DirArray, $mask);
- $SetupFullPath = $PORDUCT;
- if ( ! ( $workspace && $platform ) ) {
- print_error ( "Error: environment not set correctly.", 1);
- }
- if (!defined($milestone)) {
- print_error ("Milestone ist not defined!", 2);
- }
- if (!defined($buildid)) {
- print_error ("Build-ID ist not defined!", 2);
- }
-
-# if ( $SetupFullPath =~ /^\/s.*\/install\// ) {
-# if ( $gui eq "UNX" ) {
-# $SetupFullPath = "/net/jumbo.germany" . $SetupFullPath;
-# } else {
-# $SetupFullPath = "\\\\jumbo" . $SetupFullPath;
-# }
-# }
-
-# my $ws_lc = lc $workspace;
- $mask = "^$workspace" . "_" . $milestone . "_native_packed-(\\d+)_en-US\\.$buildid";
- $global_instset_mask = $mask;
- getSubFiles ($SetupFullPath, \@DirArray, $mask);
- @DirArray = sort InstsetSort @DirArray;
- if ($#DirArray > -1) {
- $latestset = $DirArray [$#DirArray];
- $DirName = $latestset;
- }
- else {
- print_error ("Cannot find install set $SetupFullPath for $workspace $milestone", 2);
- }
- print "Latest install sets: $latestset\n" if $is_debug;
-
- print "$DirName\t $SetupFullPath\n" if $is_debug;
-
- # compare with file system
- # at the moment just the existence is checked. For security reasons it might be
- # better to additionally check whether there are newer sets (this must not happen,
- # but who knows ...)
- if ( -d $SetupFullPath ) {
- return ($DirName, $SetupFullPath);
- } else {
- print_error ("Cannot find install set $SetupFullPath for $workspace $milestone", 2);
- }
-}
-
-sub patch_bootstrap {
- my ($sourcefile, $destfile) = @_;
- my (@convert_split, $line);
- my ($Error) = 1;
- my ($lineend);
-
- if ($is_debug) {
- print "patching bootstrap $sourcefile ...\n";
- return 1;
- }
-
- $Error &= move ("$sourcefile", "$destfile");
-
- open OUTFILE, ">$sourcefile" or return errorFromOpen ($sourcefile);
- open INFILE, "<$destfile" or return errorFromOpen ($destfile);
- binmode(OUTFILE);
- binmode(INFILE);
- while(<INFILE>) {
- $line = $_;
-
- if ( $line =~ /UserInstallation/ ) {
- if ($line =~ /(\r\n)/) {
- $lineend = $1;
- }
- elsif ($line =~ /(\n)/) {
- $lineend = $1;
- }
- else {
- $lineend = $/;
- }
- @convert_split = split "=", $line;
- $line = $convert_split[0];
- $line .= "=";
- if ($gui eq $cygwin) {
- $line .= ConvertToFileURL(ConvertCygwinToWin($userinstallpath_without));
- }
- else {
- $line .= ConvertToFileURL($userinstallpath_without);
- }
- $line .= $lineend;
- }
- print OUTFILE "$line";
-
- }
-
- close OUTFILE;
- close INFILE;
- $Error &= unlink ($destfile);
- return ($Error);
-}
-
-sub SetWinLineends () {
- $/ = $WinLineends;
-}
-
-sub SetCygwinLineends () {
- $/ = $CygwinLineends;
-}
-
-sub ConvertToFileURL {
- my ($filename) = @_;
- my ($FileURL);
-
- $FileURL = $FileURLPrefix . $filename;
- $FileURL =~ s/\\/\//g;
- $FileURL =~ s/\/\/\/\//\/\/\//; # 4 slashes to 3 slashes
- return ($FileURL);
-}
-
-sub ConvertCygwinToWin_Shell {
- my ($cygwinpath) = @_;
- my ($winpath);
- $winpath = ConvertCygwinToWin ($cygwinpath);
- $winpath =~ s/\\/\\\\/g;
- return ($winpath);
-}
-
-sub ConvertCygwinToWin {
- my ($cygwinpath) = @_;
- my ($winpath);
- my ($last_lineends) = $/;
- SetCygwinLineends();
- $winpath=`cygpath --windows $cygwinpath`;
- chomp($winpath);
- $/ = $last_lineends;
- return ($winpath);
-}
-
-sub createPath {
- my ($path, $Error) = @_;
- if (!-d "$path") {
- if (!$is_debug) {
- eval {mkpath("$path", 0, 0777)};
- if ($@) {
- print_error ($error_messages[$Error], $Error);
- }
- }
- else {
- print "mkpath($path, 0, 0777)\n";
- }
- }
-}
-
-sub save_sversion {
- my ($sversion) = @_;
- my ($sversion_bak) = $sversion . "_";
- if (-e $sversion) {
- if (-e $sversion_bak) {
- execute_system("$REMOVE_FILE \"$sversion_bak\"");
- }
- execute_system("$COPY_FILE \"$sversion\" \"$sversion_bak\"");
- execute_system("$REMOVE_FILE \"$sversion\"");
- $sversion_saved = 1;
- }
-}
-
-sub restore_sversion {
- my ($sversion) = @_;
- my ($sversion_bak) = $sversion . "_";
- if ($sversion_saved) {
- if (-e $sversion) {
- execute_system("$REMOVE_FILE \"$sversion\"");
- }
- execute_system("$COPY_FILE \"$sversion_bak\" \"$sversion\"");
- execute_system("$REMOVE_FILE \"$sversion_bak\"");
- $sversion_saved = 0;
- }
-}
-
-sub removeOldInstallation {
- my ($installpath) = @_;
- if (!$is_debug) {
- if (-e $installpath) {
- execute_system("$REMOVE_DIR \"$installpath\"");
- }
- if (-e $installpath) {
- print_error ("can not clear old installation in $installpath\n", 3);
- }
- }
-}
-
-sub removeInstallation {
- my ($installpath) = @_;
- if (!$is_debug) {
- if (-e $installpath) {
- execute_system("$REMOVE_DIR \"$installpath\"");
- }
- }
-}
-
-sub deinstallInstallation {
- my ($installpath) = @_;
- my ($productcode);
- if ($gui eq "UNX") { return; }
- if (!$is_debug) {
- if (-e $installpath) {
- $productcode = get_productcode ($installpath);
- print "Productcode: $productcode\n" if ($is_command_infos);
- if ($productcode ne "") {
- print "deinstalling $productcode ...\n";
- $Command = "msiexec.exe -x $productcode -qn";
- execute_Command ($Command, $error_deinst, $show_Message, $command_withoutErrorcheck | $command_withoutOutput);
- }
- }
- }
-}
-
-sub setInstallpath {
- my ($infile, $outfile, $installpath) = @_;
- if (-e $outfile) {
- execute_system ("$REMOVE_FILE \"$outfile\"");
-
- }
- open OUTTABLE, ">$outfile" or die "Error: can\'t open solarfile $outfile";
- open INTABLE, "<$infile" or die "Error: can\'t open solarfile $infile";
- while(<INTABLE>) {
- $line = $_;
- if ( $line =~ /^DESTINATIONPATH=officeinstallpath/ ) {
- $line =~ s/officeinstallpath/$installpath/;
- }
- print OUTTABLE "$line";
- }
- close INTABLE;
- close OUTTABLE;
-}
-
-sub execute_Command {
- my ($Command, $Errorcode, $showMessage, $command_action) = @_;
- my ($Returncode, $output_ref);
- if (!$is_debug) {
- if ( ($command_action & $command_withoutOutput) == $command_withoutOutput) {
- ($Returncode, $output_ref) = execute_system ("$Command");
- }
- else {
- print "$Command\n" if $is_command_infos;
- $Returncode = system ("$Command");
- }
- if ($Returncode) {
- if ($showMessage) {
- if (($command_action & $command_withoutErrorcheck) == $command_withoutErrorcheck) {
- print_warning ($error_messages[$Errorcode], $Errorcode);
- }
- else {
- print_error ($error_messages[$Errorcode], $Errorcode);
- }
- }
- else {
- if (($command_action & $command_withoutErrorcheck) != $command_withoutErrorcheck) {
- do_exit ($Errorcode);
- }
- }
- }
- }
- else {
- print "$Command\n";
- }
- return $output_ref;
-}
-
-sub execute_system {
- my ($command) = shift;
- my (@output_array, $line);
- if ( $is_command_infos ) {
- print STDERR "TRACE_SYSTEM: $command\n";
- }
- open( COMMAND, "$command 2>&1 |");
- while ($line = <COMMAND>) {
- chomp $line;
- push (@output_array, $line);
- }
- close(COMMAND);
- return $?, \@output_array;
-}
-
-sub print_warning
-{
- my $message = shift;
-
- print STDERR "$script_name: ";
- print STDERR "WARNING $message\n";
- return;
-}
-
-sub print_error
-{
- my $message = shift;
- my $error_code = shift;
-
- print STDERR "$script_name: ";
- print STDERR "ERROR: $message\n";
-
- do_exit($error_code);
-}
-
-sub print_notRemoved {
- my ($installpath) = @_;
- print "no deinstallation from $installpath\n";
-}
-
-sub do_exit
-{
- my $error_code = shift;
-
- if ($sversion_saved) {
- restore_sversion ($SVERSION_INI);
- }
- if ($is_remove_on_error) {
- if ($is_do_deinstall) {
- deinstallInstallation ($installpath);
- }
- removeInstallation($installpath);
- }
- else {
- print_notRemoved ($installpath);
- }
- if ( $error_code ) {
- print STDERR "\nFAILURE: $script_name aborted.\n";
- }
- exit($error_code);
-
-}
diff --git a/smoketestoo_native/testlog.pl b/smoketestoo_native/testlog.pl
deleted file mode 100755
index 6b44c75728fb..000000000000
--- a/smoketestoo_native/testlog.pl
+++ /dev/null
@@ -1,286 +0,0 @@
-:
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-### globals ###
-
-$is_debug = 0;
-
-$global_log = "log.dat";
-
-%logfiles_list = ("writer", "swlog.dat",
- "math", "smalog.dat",
- "HTML", "shptlog.dat",
- "draw", "sdrwlog.dat",
- "impress", "sdlog.dat",
- "calc", "sclog.dat",
- "chart", "schlog.dat",
- "Java", "javalog.dat",
- "Database", "dblog.dat",
- "Extension", "extlog.dat"
-);
-
-%log = ();
-@ApplicationLog = ();
-$dont_kill ="dont_deinstall";
-$error_str = "error";
-$tests_complete = "---";
-$gui = $ENV{GUI};
-$inpath = $ENV{INPATH};
-$cygwin = "cygwin";
-
-if ($^O =~ /cygwin/) {
- $gui = $cygwin;
-}
-
-if (($gui eq "UNX") or ($gui eq $cygwin)) {
- $pathslash = "/";
-}
-else
-{
- $pathslash = "\\";
-}
-
-$misc = $inpath . $pathslash . "misc" . $pathslash;
-$okfile = $misc . "ok.bat";
-umask (02);
-
-### sub routines ###
-
-sub test_logfile {
- my ($file, $testname) = @_;
- my ($line, $failed, $complete, $linecount, $LastLineError);
-
- $failed = 0;
- $complete = 0;
- $linecount = -1;
- $LastLineError = 0;
-
- if (! -e $file) {
- print "error: $testname failed! Logfile is missing.\n" if $is_debug;
-
- return (0,0);
- }
-
- open TABLE, "<$file" or die "Error: can´t open log file $file]";
-
- while(<TABLE>) {
- $line = $_;
- chomp $line;
- $linecount++;
- if ( $line =~ /$error_str/ ) {
- print "error: $testname: $line\n";
- $failed = 1;
- $LastLineError = 1;
- }
- elsif ( $line =~ /$tests_complete/ ) {
- $complete = 1;
- print "$file: $line\n" if $is_debug;
- }
- else
- {
- print "$testname: $line\n" if $is_debug;
- $LastLineError = 0;
- }
- }
-
- close TABLE;
-
- print "$failed $complete $LastLineError $linecount\n" if $is_debug;
-
- if (!$complete) {
- my $message = "error: $testname: the test was not complete!";
- if ((!$failed) || (($failed) && (!$LastLineError))) {
- my $errormessage = getLog ($testname, $linecount+1);
- if ($errormessage ne "") {
- $message .= " $errormessage possibly failed!";
- }
- }
- if (!$failed && !$is_testerror) {
- print "$message\n";
- }
- }
-
- if (!$failed && $complete) {
- print "true\n" if $is_debug;
- return (1,1);
- }
- else
- {
- print "false\n" if $is_debug;
- return (0,1);
- }
-}
-
-sub readGlobalLog {
- my ($line);
- my $logfilename = $logfiledir . $pathslash . $global_log;
- if (! -e $logfilename) {
- print "$logfilename: file is missing\n" if $is_debug;
- return 0;
- }
-
- open TABLE, "<$logfilename" or die "Error: can´t open log file $logfilename]";
-
- my $failed = 0;
- my $complete = 0;
- my $FirstLine = 1;
- while(defined($line = <TABLE>) and !$complete) {
- chomp $line;
- if ($FirstLine) {
- if ( $line =~ /Sequence of testing/ ) {
- $FirstLine = 0;
- next;
- }
- else {
- print "$logfilename: $line\n" if $is_debug;
- $failed = 1;
- return 0;
- }
- }
- else {
- if ( $line eq "" ) {
- $complete = 1;
- next;
- }
- my @splitedLine = split(/:/,$line);
- my $testApplication = $splitedLine [0];
- $testApplication =~ s/^ *(.*?) *$/$1/g; #truncate
- my $testAction = $splitedLine [1];
- @splitedLine = split(/,/,$testAction);
- my @log_array = ();
- foreach my $action (@splitedLine) {
- $action =~ s/^ *(.*?) *$/$1/g; #truncate
- if ($action =~ /\//) {
- my @splitAction = split(/\//,$action);
- my @specialAction;
- foreach my $doubleaction (@splitAction) {
- $doubleaction =~ s/^ *(.*?) *$/$1/g; #truncate
- push (@specialAction, $doubleaction);
- }
- $action = join (' or ', @specialAction);
- foreach my $doubleaction (@splitAction) {
- push (@log_array, $action);
- }
- }
- else {
- push (@log_array, $action);
- }
- }
- push (@ApplicationLog, $testApplication);
- $log{$testApplication} = \@log_array;
- }
- }
-
- close TABLE;
-
- return 1;
-}
-
-sub getLog {
- my ($testname, $linecount) = @_;
- if ($linecount <= $#{@{$log{$testname}}}) {
- return $log{$testname}[$linecount];
- }
- else {
- return "";
- }
-}
-
-### main ###
-
-$idStr = ' $Revision: 1.6 $ ';
-$idStr =~ /Revision:\s+(\S+)\s+\$/
- ? ($cpflat2minor_rev = $1) : ($cpflat2minor_rev = "-");
-
-print "TestLog -- Version: $cpflat2minor_rev\n";
-
-if (-e $okfile) {
- unlink ($okfile);
-}
-
-if ( ($#ARGV >-1) && ($#ARGV < 1) ) {
- $ARGV[0] =~ s/\"//g;
-}
-
-if ( ! ( ($#ARGV < 1) && $ARGV[0] && (-d $ARGV[0]) ) ) {
- print "Error! Usage: testlog <log_directory>\n" ;
- exit(1);
-}
-
-$logfiledir = $ARGV[0];
-$is_testerror = 0;
-$is_OneTestAvailable = 0;
-
-print "%logfiles_list\n" if $is_debug;
-
-readGlobalLog();
-
-foreach my $applog (@ApplicationLog) {
- if (!exists($logfiles_list{$applog})) {
- next;
- }
- my $logname = $logfiles_list{$applog};
- $current_file = $logfiledir . $pathslash . $logname;
- my ($error, $logfile) = test_logfile ($current_file, $applog);
-
- if ($logfile) {
- $is_OneTestAvailable = 1;
- }
- elsif (!$is_testerror) {
- print "error: $applog failed! Logfile is missing.\n";
- }
-
- if (!$error) {
- $is_testerror = 1;
- }
-
-}
-
-# write file to prevent deinstallation of office
-if ($is_testerror) {
- $dont_del_file = $logfiledir . $pathslash . $dont_kill;
- open (ERRFILE, ">$dont_del_file");
- print ERRFILE "dont delete flag";
- close (ERRFILE);
-}
-else {
- print "$okfile\n" if $is_debug;
- open( OKFILE, ">$okfile");
- print OKFILE "echo ok!\n";
- close( OKFILE );
- chmod (0775, "$okfile");
-}
-
-if (!$is_OneTestAvailable) {
- print "error: no test succeeded! Maybe Office crashed during starting!\n";
- $is_testerror = 1;
-}
-
-exit($is_testerror);
diff --git a/cppuhelper/qa/propertysetmixin/test.gcc3.map b/smoketestoo_native/version.map
index e7f19d73264e..00a28463c5d2 100644
--- a/cppuhelper/qa/propertysetmixin/test.gcc3.map
+++ b/smoketestoo_native/version.map
@@ -23,13 +23,11 @@
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
-#*************************************************************************
+#***********************************************************************/
UDK_3_0_0 {
global:
- registerAllTestFunction;
-
- _ZN4_STL7num_put*; # STLport
+ cppunitTestPlugIn;
local:
*;
diff --git a/soldep/util/perl.mk b/soldep/util/perl.mk
index 733459a96394..8665ae89f379 100644
--- a/soldep/util/perl.mk
+++ b/soldep/util/perl.mk
@@ -26,13 +26,8 @@
#*************************************************************************
.IF "$(GUI)"=="WNT"
-.IF "$(USE_SHELL)"=="4nt"
-SOLARINC+=-I$(BUILD_TOOLS)$/perl$/lib$/core
-PERL_LIB=$(BUILD_TOOLS)$/perl$/lib$/core$/perl58.lib
-.ELSE # "$(USE_SHELL)"=="4nt"
SOLARINC+=-I$(BUILD_TOOLS)$/..$/perl$/lib$/core
PERL_LIB=$(BUILD_TOOLS)$/..$/perl$/lib$/core$/perl58.lib
-.ENDIF # "$(USE_SHELL)"=="4nt"
.ENDIF
.IF "$(OS)$(CPU)" == "LINUXI"
diff --git a/solenv/bin/addsym.awk b/solenv/bin/addsym.awk
index c7b02e15db35..52efcb4ab740 100644
--- a/solenv/bin/addsym.awk
+++ b/solenv/bin/addsym.awk
@@ -25,29 +25,17 @@
#
#*************************************************************************
-# Add symbol patterns _ZTI* and _ZTS* to the global section of version UDK_3_0_0
-# (and if that version is not yet present, add it). For C++ exception handling
-# to work across libraries, it is important that all libraries use those symbols
-# with the same version name.
-#
-# The below code fails with 'perverted' mapfiles (using a strange line layout,
-# or containing version UDK_3_0_0 without a global section, ...).
+# Add certain symbol patterns to the first global section.
BEGIN { state = 0 }
-END {
- if (state == 0) {
- print "# Weak RTTI symbols for C++ exceptions:"
- print "UDK_3_0_0 {"
- print "\tglobal:"
- print "\t_ZTI*; _ZTS*;"
- print "};"
- }
-}
+/\{/ && state == 1 { exit 1 } #TODO: print error explanation to stderr?
+/^[\t ]*UDK_3_0_0[\t ]*\{/ && state == 0 { state = 1 }
+/^[\t ]*global[\t ]*:/ && state == 1 { state = 2 }
+{ print }
state == 2 {
- print " _ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions"
+ print "_ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions"
+ if (ENVIRON["USE_SYSTEM_STL"] != "YES")
+ print "_ZN4_STL7num_put*; # for STLport"
state = 3
}
-# #i66636# - ???
-/^[\t ]*UDK_3_0_0[\t ]*\{/ { state = 1 }
-/^[\t ]*global[\t ]*:/ && state == 1 { state = 2 }
-{ print }
+END { if (state != 3) exit 1 } #TODO: print error explanation to stderr?
diff --git a/solenv/bin/checkapi b/solenv/bin/checkapi
deleted file mode 100755
index f86fcefb93d1..000000000000
--- a/solenv/bin/checkapi
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/bash
-
-PS=":"
-# cygwin:
-if [ "$GUI" = "WNT" ]; then
- PS=";"
-fi
-
-JARFOLDER=$SOLARVERSION/$INPATH/bin$UPDMINOREXT
-SOLVER_LIB=$SOLARVERSION/$INPATH/lib$UPDMINOREXT
-
-# it is possible to give an other OOoRunner.jar
-if [ -n "$RUNNERJAR" ]; then
- myCLASSPATH=$RUNNERJAR
-else
- myCLASSPATH=$JARFOLDER/OOoRunner.jar
-fi
-
-myCLASSPATH=$myCLASSPATH${PS}${JARFOLDER}/ridl.jar${PS}\
-${JARFOLDER}/unoil.jar${PS}\
-${JARFOLDER}/jurt.jar${PS}\
-${JARFOLDER}/juh.jar${PS}\
-${JARFOLDER}/java_uno.jar
-
-myCLASSPATH=$myCLASSPATH${PS}\
-/net/unoapi/export/unoapi/bin/mysql.jar${PS}\
-$SOLVER_LIB
-
-if [ -n "$JAVAI" ]; then
- JAVABIN=$JAVAI
-elif [ -n "$JAVA_HOME" ]; then
- if [ "$OS$CPUNAME$CPU" = SOLARISSPARCU ]; then
- JAVABIN=$JAVA_HOME/bin/sparcv9/java
- else
- JAVABIN=$JAVA_HOME/bin/java
- fi
-else
- # there seems to be some machines without real java
- JAVABIN=$(which java)
- if [ -z "$JAVABIN" ]; then
- echo "please set environment variable JAVA_HOME"
- exit 1
- fi
-fi
-
-if [ x${USER}x = xx ]; then
- if [ x${LOGNAME}x = xx ]; then
- echo "ERROR: could not determine username. Please export variable USER" >&2
- exit $EXIT_FAILURE
- else
- USER=$LOGNAME
- export USER
- fi
-fi
-
-PARAM="-cs pipe,name=$USER -SRC_ROOT $SRC_ROOT"
-
-if [ -n "$RUNNERPROPS" ]; then
- PARAM="$PARAM -runnerini $RUNNERPROPS"
-fi
-
-DEBUG_THE_API=""
-if [ -n "$DEBUGAPI" ]; then
- export DEBUGAPI="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9002,suspend=y"
- DEBUG_THE_API=$DEBUGAPI
-fi
-
-COMMAND="$JAVABIN -Xmx120m $DEBUG_THE_API -cp $myCLASSPATH org.openoffice.Runner $PARAM $*"
-echo $COMMAND
-$COMMAND
-# if COMMAND fails, it returns also the exitcode
diff --git a/solenv/bin/checkapi.btm b/solenv/bin/checkapi.btm
deleted file mode 100644
index 7af444eb601f..000000000000
--- a/solenv/bin/checkapi.btm
+++ /dev/null
@@ -1,44 +0,0 @@
-@echo off
-
-setlocal
-
-SET JARFOLDER=%SOLARVERSION%\%INPATH%\bin%UPDMINOREXT%
-
-IFF "%RUNNERJAR%" != "" THEN
- SET APICLASSPATH=%RUNNERJAR%
-ELSE
- SET APICLASSPATH=%JARFOLDER%\OOoRunner.jar
-ENDIFF
-
-SET APICLASSPATH=%APICLASSPATH%;%JARFOLDER%\ridl.jar;%JARFOLDER%\unoil.jar;%JARFOLDER%\jurt.jar;%JARFOLDER%\juh.jar;%JARFOLDER%\java_uno.jar;\\unoapi\export\unoapi\bin\mysql.jar
-
-IFF "%JAVAI%" != "" THEN
- SET JAVABIN=%JAVAI%
-ELSEIFF "%JAVA_HOME%" != "" THEN
- SET JAVABIN=%JAVA_HOME%\bin\java
-ELSE
- echo please set environment variable JAVA_HOME
- exit 1
-ENDIFF
-
-SET PARAM=-cs pipe,name=%USERNAME% -SRC_ROOT %SRC_ROOT%
-
-IFF "%RUNNERPROPS%" != "" THEN
- SET PARAM=%PARAM% -runnerini %RUNNERPROPS%
-ENDIFF
-
-rem SET MYXDEBUG=""
-IFF "%XDEBUG%" != "" THEN
- REM SET XDEBUG=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8001
- SET MYXDEBUG=%XDEBUG%
-ENDIFF
-
-set COMMAND=%JAVABIN% -Xmx120m %MYXDEBUG% -cp %APICLASSPATH% org.openoffice.Runner %PARAM% %&
-
-
-echo %COMMAND
-%COMMAND
-
-endlocal
-
-quit
diff --git a/solenv/bin/cwscheckapi b/solenv/bin/cwscheckapi
deleted file mode 100755
index 63712be76623..000000000000
--- a/solenv/bin/cwscheckapi
+++ /dev/null
@@ -1,361 +0,0 @@
-#!/bin/bash
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#***********************************************************************/
-
-
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_ERROR=2
-EXIT_BUG=10
-
-# report the given error parameter to cwstestresult if the is one.
-# 0: no error send ok or parameter $2
-# 1: failure
-# 2...: incomplete
-function reportError()
-{
- ERRORCODE=$1
- if [ -e $SOLARENV/bin/cwstestresult.pl ]; then
- if [ $ERRORCODE -eq 0 ]; then
- PT_STATUS=${2:-ok} # use default 'ok' or $2
- elif [ $ERRORCODE -eq 1 ]; then
- PT_STATUS=failed
- else
- PT_STATUS=incomplete
- fi
-
- if [ "$OSTYPE" == "cygwin" ]; then
- CWSENV=Windows
- elif [ "$OSTYPE" == "linux" ]; then
- CWSENV=Linux
- elif [ "$OSTYPE" == "solaris" ]; then
- CWSENV=SolarisX86
- else
- CWSENV=Unknown
- fi
- perl $SOLARENV/bin/cwstestresult.pl -c $CWS_WORK_STAMP -n CWSCheckAPI -p $CWSENV $PT_STATUS
- else
- echo "No cwstestresult.pl found."
- fi
-}
-
-usage() {
- echo "Usage: $SCRIPTNAME [-m MODULE1[,MODULEn]] [-k] [-o] [-h] [-d] [-u] [-t] [-s] [-a]" >&2
- echo "" >&2
- echo "[-m] list of modules to test like: '-m sw,sc,sd' or '-m all' for all modules" >&2
- echo "" >&2
- echo "[-k] keep Office installation, otherwise it will be removed after test" >&2
- echo "" >&2
- echo "[-o] force OpenOffice.org installation instead of StarOffice" >&2
- echo "" >&2
- echo "[-d] debug installation and UnoAPI-Tests" >&2
- # echo "" >&2
- # echo "[-i] debug installation" >&2
- echo "" >&2
- echo "[-t] debug UnoAPI-Tests" >&2
- echo "" >&2
- echo "[-s] skip installation of Office" >&2
- echo "" >&2
- echo "[-a] NoCwsAttach: do not attach UnoAPI-Test result to EIS database" >&2
- echo "" >&2
- echo "[-u] UseInstalledOffice: do not install an office" >&2
- echo "" >&2
- echo "further informations: http://wiki.services.openoffice.org/wiki/Cwscheckapi" >&2
- echo "" >&2
- exit $EXIT_FAILURE
-}
-
-# we start cwscheckapi
-reportError 0 running
-
-if [ "$PROEXT" != ".pro" ]; then
- echo "ERROR: cwscheckapi works only on pro-versions" >&2
- reportError 2
- exit $EXIT_FAILURE
-fi
-
-if [ x${USER}x = xx ]; then
- if [ x${LOGNAME}x = xx ]; then
- echo "ERROR: could not determine username. Please export variable USER" >&2
- reportError 2
- exit $EXIT_FAILURE
- else
- USER=$LOGNAME
- export USER
- fi
-fi
-
-
-
-#DEBUG_I=false
-DEBUG_T=false
-INSTALL=true
-ATTACH=true
-MODULES="auto"
-OOO=false
-KEEPOFFICE=false
-USE_INSTALLED_OFFICE=false
-
-while getopts ':m:dkutsaho' OPTION ; do
- case $OPTION in
- d)
-# DEBUG_I=true
- DEBUG_T=true
- ;;
- m)
- MODULES="$OPTARG"
- ;;
- k)
- KEEPOFFICE=true
- ;;
- o)
- OOO=true
- ;;
-# i)
-# DEBUG_I=true
-# ;;
- t)
- DEBUG_T=true
- ;;
- s)
- INSTALL=false
- ;;
- a)
- ATTACH=false
- ;;
- u)
- USE_INSTALLED_OFFICE=true
- INSTALL=false
- KEEPOFFICE=true
- echo "make sure your office is started with parameter -accept=pipe,name=$USER;urp;"
- ;;
- h)
- usage $EXIT_SUCCESS
- ;;
- \?)
- echo "unkown option \"-$OPTARG\"." >&2
- usage $EXIT_ERROR
- ;;
- *)
- echo "this is not possible...">&2
- usage $EXIT_BUG
- ;;
- esac
-done
-
-shift `expr $OPTIND - 1`
-
-if [ -d /export/home/$USER ]; then
- CWSCHECKAPIPATH=/export/home/$USER/cwscheckapi
-else
- if [ -w /export/home ]; then
- mkdir /export/home/$USER
- CWSCHECKAPIPATH=/export/home/$USER/cwscheckapi
- else
- CWSCHECKAPIPATH=/tmp/$USER/cwscheckapi
- fi
-fi
-
-# the following line is to cleanup old cwscheckapi-installations. It results form the first version of cwscheckapi
-# The disk space on /tmp is limited. If a lot of users run cwscheckapi a lot of installed offices are in /tmp
-# The new concept is to remove the offices after test. But old unused installations should be removed...
-if [ $CWSCHECKAPIPATH != /tmp/$USER/cwscheckapi ]; then
- rm -rf /tmp/$USER/cwscheckapi
-fi
-
-LOCALINSTALLDIR=$CWSCHECKAPIPATH/office
-LOCALUNPACKDIR=$CWSCHECKAPIPATH/unpack
-export LOCALINSTALLDIR
-export LOCALUNPACKDIR
-
-unset FORCE2ARCHIVE
-
-if [ $INSTALL = true ]; then
-
- date 2>&1
-
-# if [ $DEBUG_I = true ]; then
-# echo "start installation: `date`"
-# echo call "$SOLARENV/bin/installoffice.pl -cwscheckapi true -dest $LOCALINSTALLDIR -debug $DEBUG_I"
-# fi
- perl -w $SOLARENV/bin/installoffice.pl -cwscheckapi true -dest $LOCALINSTALLDIR -ooo $OOO -debug $DEBUG_I
-
- EXITVAL=$?
-
- if [ $EXITVAL -ne 0 ]; then
- echo "ERROR: could not install office"
- reportError 2
- exit $EXITVAL
- fi
- echo "`date` installation successfull, start testing...."
-fi
-
-SOFFICE="soffice"
-PS=":"
-CYGWIN=""
-
-SHELL="/bin/bash"
-# cygwin:
-if [ "$GUI" = "WNT" ]; then
- SOFFICE="soffice.exe"
- PS=";"
- CYGWIN="-Cygwin true"
- SHELL=$(which bash)
- SHELL=$(cygpath -w $SHELL)
- if [ ! -f $SHELL ]; then
- echo "could not determine bash shell"
- reportError 2
- exit 1
- fi
-fi
-
-# if [ $DEBUG_T = true ]; then
-# echo find $LOCALINSTALLDIR -name $SOFFICE
-# fi
-
-if [ $USE_INSTALLED_OFFICE = false ]; then
-
- OFFICEBIN=`find $LOCALINSTALLDIR -name $SOFFICE`
-
- if [ ! -f "$OFFICEBIN" ]; then
- echo "could not find 'soffice' in subfolders of $LOCALINSTALLDIR"
- reportError 2
- exit 1
- fi
-
- if [ "$GUI" = "WNT" ]; then
- # transform /tmp/... -> c:\tmp\...
- OFFICEBIN=`cygpath -w $OFFICEBIN`
- fi
-else
- OFFICEBIN=$SOFFICE
- echo "Use already installed and running office."
-fi
-
-JARFOLDER=$SOLARVERSION/$INPATH/bin$UPDMINOREXT
-SOLVER_LIB=$SOLARVERSION/$INPATH/lib$UPDMINOREXT
-
-myCLASSPATH=${PS}${JARFOLDER}/ridl.jar${PS}\
-${JARFOLDER}/unoil.jar${PS}\
-${JARFOLDER}/jurt.jar${PS}\
-${JARFOLDER}/juh.jar${PS}\
-${JARFOLDER}/java_uno.jar
-
-myCLASSPATH=$myCLASSPATH${PS}\
-${JARFOLDER}/OOoRunner.jar
-
-myCLASSPATH=$myCLASSPATH${PS}\
-/net/unoapi/export/unoapi/bin/mysql.jar${PS}\
-$SOLVER_LIB
-
-PARAM=""
-if [ -n "$JAVAI" ]; then
- JAVABIN=$JAVAI
-elif [ -n "$JAVA_HOME" ]; then
- if [ "$OS$CPUNAME$CPU" = SOLARISSPARCU ]; then
- JAVABIN=$JAVA_HOME/bin/sparcv9/java
- else
- JAVABIN=$JAVA_HOME/bin/java
- fi
-else
- echo "please set environment variable JAVA_HOME"
- reportError 2
- exit 1
-fi
-
-if [ -n "$WORK_STAMP" ]; then
- if [ -n "$CWS_WORK_STAMP" ]; then
- PARAM="$PARAM -Version cws_${CWS_WORK_STAMP}"
- else
- echo "######"
- echo CAUTION! You are working on the MWS
- echo "######"
- PARAM="$PARAM -Version ${WORK_STAMP}_${UPDMINOR}"
- fi
-fi
-
-PARAM="$PARAM -cmd '$OFFICEBIN -nofirststartwizard -accept=pipe,name=$USER;urp; -norestore -nocrashreport -nolockcheck -enableautomation'"
-PARAM="$PARAM -cs pipe,name=$USER"
-PARAM="$PARAM -NoOffice true"
-PARAM="$PARAM -SRC_ROOT $SRC_ROOT"
-PARAM="$PARAM -COMP_ENV $OUTPATH"
-PARAM="$PARAM -Shell $SHELL"
-PARAM="$PARAM $CYGWIN"
-PARAM="$PARAM -tb java_complex"
-PARAM="$PARAM -TimeOut 90000"
-PARAM="$PARAM -o complex.unoapi.CheckModuleAPI::module($MODULES)"
-if [ $ATTACH = false ]; then
- PARAM="$PARAM -nca true"
-fi
-if [ $DEBUG_T = true ]; then
- PARAM="$PARAM -debug true -log true"
-fi
-
-# Sample command
-# /so/env/Linux_JDK_1.5.0_06/bin/java
-# -Xmx120m $XDEBUG
-# -cp :/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/bin.m50/ridl.jar:/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/bin.m50/unoil.jar:/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/bin.m50/jurt.jar:/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/bin.m50/juh.jar:/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/bin.m50/java_uno.jar:/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/bin.m50/OOoRunner.jar:/net/unoapi/export/unoapi/bin/mysql.jar:/net/so-cwsserv02/export/cws/unoapi04/DEV300/unxlngi6.pro/lib.m50
-# org.openoffice.Runner
-# -Version cws_unoapi04
-# -cmd '/tmp/ll93751/cwscheckapi/office/staroffice9/program/soffice -nofirststartwizard -accept=pipe,name=ll93751;urp; -norestore -nocrashreport -nolockcheck -enableautomation'
-# -cs pipe,name=ll93751
-# -NoOffice true
-# -SRC_ROOT /net/so-cwsserv02/export/cws/unoapi04/DEV300/src.m50
-# -COMP_ENV unxlngi6
-# -Shell /bin/bash
-# -tb java_complex
-# -TimeOut 90000
-# -o 'complex.unoapi.CheckModuleAPI::module(auto)'
-
-# XDEBUG=" -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y "
-
-# set DEBUGAPI if you want to debug the checkapi
-# DEBUGAPI=t
-
-COMMAND="$JAVABIN -Xmx120m $XDEBUG -cp $myCLASSPATH org.openoffice.Runner $PARAM $*"
-echo "$COMMAND"
-
-LOGFILE=$CWSCHECKAPIPATH/cwscheckapi.log
-$COMMAND | tee $LOGFILE
-EXITVAL=$?
-
-if [ $KEEPOFFICE = false ]; then
- echo "remove office instrallation in $LOCALINSTALLDIR..."
- rm -rf $LOCALINSTALLDIR
-fi
-
-echo
-echo A logfile could be found here: $LOGFILE
-
-date 2>&1
-
-# send the results via cwstestresult.pl to EIS
-if [ $EXITVAL -eq 0 ]; then
- reportError 0 ok
-else
- reportError 1
-fi
diff --git a/solenv/bin/cwscheckapi.btm b/solenv/bin/cwscheckapi.btm
deleted file mode 100755
index 73f8da0e6d39..000000000000
--- a/solenv/bin/cwscheckapi.btm
+++ /dev/null
@@ -1,206 +0,0 @@
-@echo off
-REM **************************************************************************
-REM *
-REM * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM *
-REM * Copyright 2000, 2010 Oracle and/or its affiliates.
-REM *
-REM * OpenOffice.org - a multi-platform office productivity suite
-REM *
-REM * This file is part of OpenOffice.org.
-REM *
-REM * OpenOffice.org is free software: you can redistribute it and/or modify
-REM * it under the terms of the GNU Lesser General Public License version 3
-REM * only, as published by the Free Software Foundation.
-REM *
-REM * OpenOffice.org is distributed in the hope that it will be useful,
-REM * but WITHOUT ANY WARRANTY; without even the implied warranty of
-REM * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-REM * GNU Lesser General Public License version 3 for more details
-REM * (a copy is included in the LICENSE file that accompanied this code).
-REM *
-REM * You should have received a copy of the GNU Lesser General Public License
-REM * version 3 along with OpenOffice.org. If not, see
-REM * <http://www.openoffice.org/license.html>
-REM * for a copy of the LGPLv3 License.
-REM *
-REM ************************************************************************/
-
-rem echo on
-
-call reportErrorCheckAPI.btm 0 running
-
-iff "%PROEXT" != ".pro" THEN
- echo ERROR: cwscheckapi works only on pro-versions >&2
- call reportErrorCheckAPI.btm 2
- quit 1
-endiff
-
-SET DEBIG_I=false
-SET DEBUG_T=false
-SET INSTALL=true
-SET ATTACH=true
-SET MODULES=auto
-SET OOO=false
-SET KEEPOFFICE=false
-SET USE_INSTALLED_OFFICE=false
-
-for %opt in (%&%) DO (
- if "%opt%" == "-d" (SET DEBUG_I=true ^ SET DEBUG_T=true ^ shift)
- if "%opt%" == "-o" (SET OOO=true ^ shift)
- if "%opt%" == "-k" (SET KEEPOFFICE=true ^ shift)
- if "%opt%" == "-i" (SET DEBUG_I=true ^ shift)
- if "%opt%" == "-m" (SET MODULES=%2 ^ shift ^ shift)
- if "%opt%" == "-t" (SET DEBUG_T=true ^ shift)
- if "%opt%" == "-s" (SET INSTALL=false ^ shift)
- if "%opt%" == "-u" (SET USE_INSTALLED_OFFICE=true ^ SET INSTALL=false ^ SET KEEPOFFICE=true ^ shift)
- if "%opt%" == "-a" (SET attach=false ^ shift)
- if "%opt%" == "-h" goto usage
- if "%opt%" == "/h" goto usage
-)
-
-set tmppath=not_set
-for %LW in (e:\,d:\,c:\) DO (
- iff NOT ISDIR %tmppath% then
- iff ISDIR %LW then
- iff ISDIR %LW%temp then
- set tmppath=%LW%temp
- elseiff ISDIR %LW%tmp then
- set tmppath=%LW%tmp
- else
- mkdir %LW%temp
- set tmppath=%LW%temp
- endiff
- endiff
- endiff
-)
-
-SET CWSCHECKAPIPATH=%tmppath%\%USERNAME%\cwscheckapi
-SET LOCALINSTALLDIR=%CWSCHECKAPIPATH%\office
-SET LOCALUNPACKDIR=%CWSCHECKAPIPATH%\unpack
-
-iff "%INSTALL%" == "true" THEN
- call perl5 %SOLARENV%/bin/installoffice.pl -cwscheckapi true -dest %LOCALINSTALLDIR% -ooo %OOO% -debug %DEBUG_I%
-
- IFF %? NE 0 THEN
- echo ERROR: coud not install office >&2
- call reportErrorCheckAPI.btm 2
- quit %?
- ENDIFF
-ENDIFF
-
-setlocal
-
-IFF %USE_INSTALLED_OFFICE% == "false" then
-
- SET CWD=%_CWD%
- cdd %LOCALINSTALLDIR%
- SET ffindtxt="ffind.txt"
- ffind /s /f /m soffice.exe > %ffindtxt
- SET FindFile=%@FILEOPEN[%ffindtxt%, READ]
- SET OfficeBin=%@FILEREAD[%FindFile]
- set dummy=%@FILECLOSE[%FindFile]
- DEL /q %ffindtxt
- cdd %CWD
-
- IFF NOT EXIST %OFFICEBIN% THEN
- echo could not find 'soffice.exe' in subfolders of %OFFICEBIN% >&2
- call reportErrorCheckAPI.btm 2
- quit 1
- ENDIFF
-ELSE
- SET OFFICEBIN=soffice.exe
- echo "Use already installed office."
-ENDIFF
-
-SET JARFOLDER=%SOLARVERSION%\%INPATH%\bin%UPDMINOREXT%
-SET MYCLASSPATH=%JARFOLDER%\OOoRunner.jar;%JARFOLDER%\ridl.jar;%JARFOLDER%\unoil.jar;%JARFOLDER%\jurt.jar;%JARFOLDER%\juh.jar;%JARFOLDER%\java_uno.jar
-
-IFF "%JAVAI%" != "" THEN
- SET JAVABIN=%JAVAI%
-ELSEIFF "%JAVA_HOME%" != "" THEN
- SET JAVABIN=%JAVA_HOME%\bin\java
-ELSE
- echo please set environment variable JAVA_HOME >&2
- call reportErrorCheckAPI.btm 2
- quit 1
-ENDIFF
-
-IFF "%CWS_WORK_STAMP%" != "" THEN
- SET PARAM=-Version cws_%CWS_WORK_STAMP%
-ELSEIFF "%WORK_STAMP%" != "" THEN
- echo ###### >&2
- echo CAUTION! You\'re working on the MWS >&2
- echo ###### >&2
- SET PARAM=-Version %WORK_STAMP%_%UPDMINOR%
-ELSE
- echo ###### >&2
- echo ERROR: could not determine your CWS or MWS version >&2
- echo ###### >&2
- call reportErrorCheckAPI.btm 2
- quit 1
-ENDIFF
-
-SET KILLCOMMAND="%SOLARVERSION%\%INPATH%\bin%UPDMINOREXT%\kill.exe -9 soffice.bin^%SOLARVERSION%\%INPATH%\bin%UPDMINOREXT%\kill.exe -9 soffice.exe"
-
-SET PARAM=%PARAM% -cmd '\"%OFFICEBIN%\" -nofirststartwizard -norestore -nocrashreport -nolockcheck -enableautomation -accept=pipe,name=%USERNAME%;urp;'
-SET PARAM=%PARAM% -cs pipe,name=%USERNAME%
-SET PARAM=%PARAM% -NoOffice true
-SET PARAM=%PARAM% -SRC_ROOT %SRC_ROOT%
-SET PARAM=%PARAM% -COMP_ENV %OUTPATH%
-SET PARAM=%PARAM% -Shell %COMSPEC%
-SET PARAM=%PARAM% -tb java_complex
-SET PARAM=%PARAM% -o complex.unoapi.CheckModuleAPI::module(%MODULES%)
-SET PARAM=%PARAM% -TimeOut 200000
-SET PARAM=%PARAM% -AppKillCommand %KILLCOMMAND%
-IF "%ATTACH%" == "false" SET PARAM=%PARAM% -nca true
-IF "%DEBUG_T%" == "true" SET PARAM=%PARAM -debug true -log true
-
-set COMMANDO=%JAVABIN% -Xmx120m -cp %MYCLASSPATH% org.openoffice.Runner %PARAM% %&
-
-echo %COMMANDO
-SET LOGFILE=%CWSCHECKAPIPATH%\cwscheckapi.log
-%COMMANDO |& tee %LOGFILE%
-set EXITVAL=%?
-
-IFF %KEEPOFFICE% == "false" THEN
- echo remove office instrallation in %LOCALINSTALLDIR%...
- DEL /E/F/Q/K/S/X/Y/Z %LOCALINSTALLDIR%
-fi
-
-echo .
-echo A logfile could be found here: %LOGFILE%
-
-IFF %EXITVAL% NE 0 THEN
- call reportErrorCheckAPI.btm 1
-ELSE
- call reportErrorCheckAPI.btm 0 ok
-ENDIFF
-
-endlocal
-
-quit 0
-
-:usage
- echo.
- echo Usage: %0% [-m MODULE1[,MODULEn]] [-o] [-k] [-h] [-d] [-i] [-t] [-s] [-a] >&2
- echo.
- echo [-m] list of modules to test like: '-m "sw,sc,sd"' or '-m all' for all modules >&2
- echo. >&2
- echo [-o] force OpenOffice.org installation instead of StarOffice >&2
- echo. >&2
- echo [-k] keep Office installation, otherwise it will be removed after test >&2
- echo. >&2
- echo [-d] debug installation and UnoAPI-Tests >&2
- echo. >&2
- echo [-i] debug installation >&2
- echo. >&2
- echo [-t] debug UnoAPI-Tests >&2
- echo. >&2
- echo [-s] skip installation of Office >&2
- echo. >&2
- echo [-a] NoCwsAttach: do not attach UnoAPI-Test result to EIS database >&2
- echo. >&2
- echo further informations: http://wiki.services.openoffice.org/wiki/Cwscheckapi >&2
- echo. >&2
- quit 1
diff --git a/solenv/bin/dbgsv.ini b/solenv/bin/dbgsv.ini
new file mode 100644
index 000000000000..006dadf98a40
--- /dev/null
+++ b/solenv/bin/dbgsv.ini
@@ -0,0 +1,29 @@
+=*************************************************************************
+=
+= DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+=
+= Copyright 2000, 2010 Oracle and/or its affiliates.
+=
+= OpenOffice.org - a multi-platform office productivity suite
+=
+= This file is part of OpenOffice.org.
+=
+= OpenOffice.org is free software: you can redistribute it and/or modify
+= it under the terms of the GNU Lesser General Public License version 3
+= only, as published by the Free Software Foundation.
+=
+= OpenOffice.org is distributed in the hope that it will be useful,
+= but WITHOUT ANY WARRANTY; without even the implied warranty of
+= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+= GNU Lesser General Public License version 3 for more details
+= (a copy is included in the LICENSE file that accompanied this code).
+=
+= You should have received a copy of the GNU Lesser General Public License
+= version 3 along with OpenOffice.org. If not, see
+= <http://www.openoffice.org/license.html>
+= for a copy of the LGPLv3 License.
+=
+=***********************************************************************/
+
+[output]
+error=shell
diff --git a/solenv/bin/deliver.pl b/solenv/bin/deliver.pl
index a4fc9f21d2b5..b0cb51e3b076 100755
--- a/solenv/bin/deliver.pl
+++ b/solenv/bin/deliver.pl
@@ -1212,6 +1212,13 @@ sub zip_files
print "ZIP: updating $zip_file\n" if $opt_verbose;
next if ( $opt_check );
+ if ( $opt_delete ) {
+ if ( -e $zip_file ) {
+ unlink $zip_file or die "Error: can't remove file '$zip_file': $!";
+ }
+ next;
+ }
+
local $work_file = "";
if ( $zip_file eq $common_zip_file) {
# Zip file in common tree: work on uniq copy to avoid collisions
@@ -1240,31 +1247,14 @@ sub zip_files
# zip content has to be relative to $dest_dir
chdir($dest_dir{$zip_file}) or die "Error: cannot chdir into $dest_dir{$zip_file}";
my $this_ref = $list_ref{$zip_file};
- if ( $opt_delete ) {
- if ( -e $work_file ) {
- open(UNZIP, "unzip -t $work_file 2>&1 |") or die "error opening zip file";
- if ( grep /empty/, (<UNZIP>)) {
- close(UNZIP);
- unlink $work_file;
- next;
- }
- close(UNZIP);
- open(ZIP, "| $zipexe -q -o -d -@ $work_file") or die "error opening zip file";
- foreach $file ( @$this_ref ) {
- print "ZIP: removing $file from $platform_zip_file\n" if $is_debug;
- print ZIP "$file\n";
- }
- close(ZIP);
- }
- } else {
- open(ZIP, "| $zipexe -q -o -u -@ $work_file") or die "error opening zip file";
- foreach $file ( @$this_ref ) {
- print "ZIP: adding $file to $zip_file\n" if $is_debug;
- print ZIP "$file\n";
- }
- close(ZIP);
- fix_broken_cygwin_created_zips($work_file) if $^O eq "cygwin";
+ open(ZIP, "| $zipexe -q -o -u -@ $work_file") or die "error opening zip file";
+ foreach $file ( @$this_ref ) {
+ print "ZIP: adding $file to $zip_file\n" if $is_debug;
+ print ZIP "$file\n";
}
+ close(ZIP);
+ fix_broken_cygwin_created_zips($work_file) if $^O eq "cygwin";
+
if ( $zip_file eq $common_zip_file) {
# rename work file back
if ( -e $work_file ) {
@@ -1303,7 +1293,7 @@ sub fix_broken_cygwin_created_zips
foreach $member ( $zip->members() ) {
my $attributes = $member->unixFileAttributes();
$attributes &= ~0xFE00;
- print $member->fileName($name) . ": " . sprintf("%lo", $attributes) if $is_debug;
+ print $member->fileName() . ": " . sprintf("%lo", $attributes) if $is_debug;
$attributes |= 0x10; # add group write permission
print "-> " . sprintf("%lo", $attributes) . "\n" if $is_debug;
$member->unixFileAttributes($attributes);
diff --git a/solenv/bin/installoffice b/solenv/bin/installoffice
deleted file mode 100755
index 59ad271ee142..000000000000
--- a/solenv/bin/installoffice
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/bin/bash
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#***********************************************************************/
-
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_ERROR=2
-EXIT_BUG=10
-
-if [ x${SOLARENV}x = xx ]; then
- echo No environment found, please use 'configure' or 'setsolar'
- exit $EXIT_FAILURE
-fi
-usage() {
- echo "Usage: $SCRIPTNAME [-t DESTPATH] [-o] [-d] [-a]" >&2
- echo "" >&2
- echo "[-t] target path: path wehre tho office should installed to. The default is '$DESTPATH'" >&2
- echo "" >&2
- echo "[-o] force OpenOffice.org installation instead of StarOffice" >&2
- echo "" >&2
- echo "[-d] installation with debug output" >&2
- echo "" >&2
- echo "[-a] the office will be patched to run without FirstStartWizard" >&2
- echo "" >&2
- echo "[-i] impress should open documents without autopilot" >&2
- exit $EXIT_FAILURE
-}
-
-if [ x${USER}x = xx ]; then
- if [ x${LOGNAME}x = xx ]; then
- echo "ERROR: could not determine username. Please export variable USER" >&2
- exit $EXIT_FAILURE
- else
- USER=$LOGNAME
- export USER
- fi
-fi
-
-DESTPATH=/tmp/$USER
-PARAM=""
-
-while getopts ':mt:aicdhot' OPTION ; do
- case $OPTION in
- d) PARAM="$PARAM -debug true"
- ;;
- c) PARAM="$PARAM -cwscheckapi true"
- ;;
- o) PARAM="$PARAM -ooo true"
- ;;
- a) PARAM="$PARAM -autorun true"
- ;;
- i) PARAM="$PARAM -autoimpress true"
- ;;
- t) DESTPATH="$OPTARG"
- ;;
- h) usage $EXIT_SUCCESS
- ;;
- \?) echo "unkown option \"-$OPTARG\"." >&2
- usage $EXIT_ERROR
- ;;
- *) echo "this is not possible...">&2
- usage $EXIT_BUG
- ;;
- esac
-done
-
-shift `expr $OPTIND - 1`
-
-LOCALINSTALLDIR=$DESTPATH/office
-LOCALUNPACKDIR=$DESTPATH/unpack
-
-export LOCALINSTALLDIR
-export LOCALUNPACKDIR
-echo "export LOCALINSTALLDIR"
-echo "export LOCALUNPACKDIR"
-
-unset LD_LIBRARY_PATH
-unset FORCE2ARCHIVE
-
-echo "### $SOLARENV/bin/installoffice.pl $PARAM -cleanup true $@"
-exec perl -w $SOLARENV/bin/installoffice.pl $PARAM -cleanup true $@
-
-exit $?
diff --git a/solenv/bin/installoffice.btm b/solenv/bin/installoffice.btm
deleted file mode 100755
index a77f8defeb45..000000000000
--- a/solenv/bin/installoffice.btm
+++ /dev/null
@@ -1,120 +0,0 @@
-@echo off
-REM **************************************************************************
-REM *
-REM * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-REM *
-REM * Copyright 2000, 2010 Oracle and/or its affiliates.
-REM *
-REM * OpenOffice.org - a multi-platform office productivity suite
-REM *
-REM * This file is part of OpenOffice.org.
-REM *
-REM * OpenOffice.org is free software: you can redistribute it and/or modify
-REM * it under the terms of the GNU Lesser General Public License version 3
-REM * only, as published by the Free Software Foundation.
-REM *
-REM * OpenOffice.org is distributed in the hope that it will be useful,
-REM * but WITHOUT ANY WARRANTY; without even the implied warranty of
-REM * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-REM * GNU Lesser General Public License version 3 for more details
-REM * (a copy is included in the LICENSE file that accompanied this code).
-REM *
-REM * You should have received a copy of the GNU Lesser General Public License
-REM * version 3 along with OpenOffice.org. If not, see
-REM * <http://www.openoffice.org/license.html>
-REM * for a copy of the LGPLv3 License.
-REM *
-REM ************************************************************************/
-
-
-SET DESTPATH=%USERNAME%
-SET DEBUG=false
-SET OOO=false
-SET PARAM=
-
-for %opt in (%&%) DO (
- iff "%opt%" == "-d" THEN
- SET PARAM=%PARAM% -debug true
- shift
-
- elseiff "%opt%" == "-o" THEN
- SET PARAM=%PARAM% -ooo true
- shift
-
- elseiff "%opt%" == "-c" THEN
- SET PARAM=%PARAM% -cwscheckapi true
- shift
-
- elseiff "%opt%" == "-a" THEN
- SET PARAM=%PARAM% -autorun true
- shift
-
- elseiff "%opt%" == "-i" THEN
- SET PARAM=%PARAM% -autoimpress true
- shift
-
- elseiff "%opt%" == "-t" THEN
- SET DESTPATH=%2
- shift
- shift
-
- elseiff "%opt%" == "-h" THEN
- goto usage
-
- elseiff "%opt%" == "/h" THEN
- goto usage
-
- elseiff "%opt%" == "%DESTPATH%" THEN
- shift
-
- else
- echo wrong param: %opt%
- goto usage
- endiff
-)
-
-iff "%DESTPATH%" == "%USERNAME%" THEN
-iff EXIST e:\ then
- iff EXIST e:\temp then
- set temppath=e:\temp
- elseiff EXIST e:\tmp then
- set temppath=c:\tmp
- else
- mkdir e:\temp
- set tmppath=c:\temp
- endiff
-elseiff EXIST c:\tmp then
- set temppath=c:\tmp
-elseiff EXIST c:\temp then
- set temppath=c:\temp
-else
- set temppath=%TMP%
-endiff
- DESTPATH=%temppath%\%USERNAME%
-endiff
-
-SET LOCALINSTALLDIR=%DESTPATH%\office
-SET LOCALUNPACKDIR=%DESTPATH%\unpack
-echo LOCALINSTALLDIR=%LOCALINSTALLDIR%
-echo LOCALUNPACKDIR=%LOCALUNPACKDIR%
-
-echo call perl5 %SOLARENV%\bin\installoffice.pl -dest %LOCALINSTALLDIR% %PARAM% -cleanup true %&
-call perl5 %SOLARENV%\bin\installoffice.pl -dest %LOCALINSTALLDIR% %PARAM% -cleanup true %&
-
-quit %?
-
-:usage
- echo.
- echo Usage: %0% [-t DESTPATH] [-o] [-d] >&2
- echo.
- echo [-d] installation with debug output>&2
- echo.
- echo [-o] force OpenOffice.org installation instead of StarOffice>&2
- echo.
- echo [-t] target path: path where the office should installed to. The default is '%DESTPATH%'>&2
- echo.
- echo [-a] the office will be patched to run without FirstStartWizard >&2
- echo.
- echo [-i] impress should open documents without autopilot
- echo.
- quit 1
diff --git a/solenv/bin/installoffice.pl b/solenv/bin/installoffice.pl
deleted file mode 100755
index b6c852ae8624..000000000000
--- a/solenv/bin/installoffice.pl
+++ /dev/null
@@ -1,933 +0,0 @@
-:
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
-
-#*************************************************************************
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#***********************************************************************/
-
-use strict;
-use File::Find;
-use File::Path;
-my $script = $0;
-
-( our $script_name = $script ) =~ s/^.*\b(\w+)\.pl$/$1/;
-( our $script_path = $script ) =~ s/$script_name.*//;
-
-# Prototypes
-sub installOffice();
-
-our $debug = 0; # run without executing commands
-
-our $is_command_infos = 1; # print command details before exec
-our $show_NoMessage = 0;
-our $show_Message = 1;
-
-# special handling for cwschackapi
-our $cwsCheckApi = 0;
-
-# remove existant office installation
-our $cleanup = 0;
-
-# should the office be startable without user interaction
-our $autorun = 0;
-
-# should impress open documents without autopilot
-our $autoimpress = 0;
-
-# force openOffice.org installation if StarOffice is available
-our $is_ooo = 0;
-
-parseArgs();
-
-our $is_admin_installation = 1;
-
-our $gui = $ENV{GUI};
-our $temp_path = $ENV{TEMP};
-if (!defined($temp_path)) {
- $temp_path = $ENV{TMP};
-}
-
-our $vcsid = $ENV{VCSID};
-our $sversion_saved = 0;
-our $FileURLPrefix = "file:///";
-our $userinstalldir = "UserInstallation";
-our $cygwin = "cygwin";
-our $prefered_lang = "en-US";
-our $global_instset_mask = "";
-#$smoketest_install = $ENV{SMOKETESTINSTALLSET};
-
-if (!defined($gui)) {
- print "The workstamp is missing. Please use setsolar\n";
- exit(1);
-}
-
-our $OfficeDestinationPath;
-our $is_do_deinstall;
-our $CygwinLineends;
-our $WinLineends;
-our $PS ;
-our $NewPathSeparator ;
-our $shell ;
-our $shellSetEnvVar;
-our $shellCommandSep;
-our $cdCommand;
-our $PERL ;
-our $REMOVE_DIR ;
-our $REMOVE_FILE ;
-our $LIST_DIR ;
-our $COPY_FILE ;
-our $COPY_DIR ;
-our $MK_DIR ;
-our $RENAME_FILE ;
-our $nul ;
-our $RESPFILE;
-our $SVERSION_INI ;
-our $SOFFICEBIN ;
-our $UNOPKGBIN;
-our $bootstrapini ;
-our $bootstrapiniTemp ;
-our $packpackage ;
-our $user;
-
-if ($gui eq "WNT") {
- $gui = $cygwin;
-}
-
-if ($gui eq "WNT") {
- $user = $ENV{USERNAME};
- $PS = '\\';
- $NewPathSeparator = ';';
- $shell = "$ENV{COMSPEC} -c ";
- $shellSetEnvVar = "set ";
- $shellCommandSep = "& ";
- $cdCommand="cd /d ";
- $PERL = "$shell $ENV{PERL}";
- $REMOVE_DIR = "$shell del /qsxyz";
- $REMOVE_FILE = "$shell del /q";
- $LIST_DIR = "$shell ls";
- $COPY_FILE = "$shell copy";
- $COPY_DIR = "$shell copy /s";
- $MK_DIR = "md";
- $RENAME_FILE = "ren";
- $nul = '> NUL';
- $RESPFILE="response_fat_wnt";
- $SVERSION_INI = $ENV{USERPROFILE} . $PS . "Anwendungsdaten" . $PS . "sversion.ini";
- $SOFFICEBIN = "soffice.exe";
- $bootstrapini = "bootstrap.ini";
- $UNOPKGBIN="unopkg.exe";
- $bootstrapiniTemp = $bootstrapini . "_";
- $packpackage = "msi";
- if (!defined($temp_path)) {
- print "temp value is missing. Please set temp-variable\n";
- exit(1);
- }
-}
-elsif ($gui eq "UNX") {
- $user = $ENV{USER};
- $is_do_deinstall = 0;
- $PS = '/';
- $shell = "/bin/sh -c ";
- $shellSetEnvVar = "export ";
- $shellCommandSep = ";";
- $cdCommand="cd ";
- $NewPathSeparator = ':';
- $shell = "";
- $PERL = "$ENV{PERL}";
- $REMOVE_DIR = "rm -rf";
- $REMOVE_FILE = "rm -f";
- $LIST_DIR = "ls";
- $COPY_FILE = "cp -f";
- $COPY_DIR = "cp -rf";
- $MK_DIR = "mkdir";
- $RENAME_FILE = "mv";
- $nul = '> /dev/null';
- $RESPFILE="response_fat_unx";
- $SVERSION_INI = $ENV{HOME} . $PS . ".sversionrc";
- $SOFFICEBIN = "soffice";
- $bootstrapini = "bootstraprc";
- $UNOPKGBIN="unopkg";
- $bootstrapiniTemp = $bootstrapini . "_";
- $packpackage = $ENV{PKGFORMAT};
- if (!defined($temp_path)) {
- $temp_path="/tmp";
- if (! -e $temp_path){
- print "temp value is missing. Please set temp-variable\n";
- exit(1);
- }
- }
-}
-elsif ($gui eq $cygwin) {
-
- $PS = '/';
- $NewPathSeparator = ':';
- $shell = "/bin/sh -c ";
- $shellSetEnvVar = "export ";
- $shellCommandSep = ";";
- $cdCommand = "cd ";
- $PERL = "$ENV{PERL}";
- $REMOVE_DIR = "rm -rf";
- $REMOVE_FILE = "rm -f";
- $LIST_DIR = "ls";
- $COPY_FILE = "cp -f";
- $COPY_DIR = "cp -rf";
- $MK_DIR = "mkdir";
- $RENAME_FILE = "mv";
- $nul = '> /dev/null';
- $RESPFILE="response_fat_wnt";
- $SVERSION_INI = $ENV{USERPROFILE} . $PS . "Anwendungsdaten" . $PS . "sversion.ini";
- $SOFFICEBIN = "soffice";
- $bootstrapini = "bootstrap.ini";
- $bootstrapiniTemp = $bootstrapini . "_";
- $CygwinLineends = $/;
- $WinLineends = "\r\n";
- &SetWinLineends();
- $packpackage = "msi";
- if (!defined($temp_path)) {
- $temp_path="/tmp";
- if (! -e $temp_path){
- print "temp value is missing. Please set temp-variable\n";
- exit(1);
- }
- }
-}
-else {
- print_error ("not supported system\n",1);
-}
-
-my %PRODUCT1 = (Name => "StarOffice", instset => "instset_native");
-my %PRODUCT2 = (Name => "OpenOffice", instset => "instsetoo_native");
-our @PRODUCT = (\%PRODUCT1, \%PRODUCT2);
-
-our $SHIP = defined $ENV{SHIPDRIVE} ? $ENV{SHIPDRIVE} . $PS : "shipdrive_not_set";
-
-if (defined($ENV{CWS_WORK_STAMP})){
- print " found CWS\n";
-}
-elsif (isLocalEnv()){
- print " local environment\n";
-}
-elsif (defined $ENV{SHIPDRIVE}) {
- print " master version\n";
-}
-elsif (defined $ENV{SOLARSRC}) {
- print " OpenOffice master version\n";
-}
-else {
- print "Could not determine environment. Exit\n";
- exit 1
-}
-
-
-our @error_messages = ( '',
- 'lock flag for pkgadd still exist. Installation not possible!',
- 'Error during installation!',
- 'Error: patching configuration failed!',
- 'Error: starting office failed or office crashed!',
- 'Error during testing',
- 'can not copy extension',
- 'Error in setup log',
- 'installationsset is not complete',
- 'can not copy all basic scripts',
- 'can not patch bottstrapini',
- 'msiexec failed. Maybe you have got an installed version',
- 'deinstallation is incomplete'
-);
-
-
-my $success = 0;
-$success = installOffice();
-
-if ($success != 0){
- exit(1);
-}
-exit(0);
-
-sub installOffice(){
-
- # <DISABLED>
- # my ($officeVersion, $instsetPath)= getInstset();
- # print "OFFICEVERSION:$officeVersion INSTSETPATH:$instsetPath\n" if $debug;
- # my $sourcePath=$instsetPath.$PS.$officeVersion;
- # </DISABLED>
- #
- # currently this installer does not install an office, it do pack a runnable office.
- # Therefore we do not need to search for an instSet
- my $sourcePath="dummy";
- my $officeVersion="dummy";
-
- my $destinationPath = getDestinationPath($officeVersion);
- print "destinationPath: $destinationPath\n" if $debug;
-
- removeOffice($destinationPath);
- mkdirs($destinationPath);
-
- my $installCommand = getInstallCommand($sourcePath, $destinationPath, $officeVersion);
- print "installCommand: $installCommand\n" if $debug;
-
- my $success=0;
- $success = system($installCommand);
- print "installoofice.pl::installoffice::success $success\n" if ($debug);
-
- if ($autorun) {
- makeAutoRun($destinationPath);
- }
-
- if ($autoimpress) {
- makeAutoImpress($destinationPath);
- }
-
- return $success;
-}
-
-sub makeAutoImpress(){
- my $destinationPath = shift;
-
- if (patchXCU ($destinationPath, $script_path.$script_name."_impress.oxt") != 0) {
- print_error("could not register ".$script_path.$script_name."_impress.oxt", "1");
- }
- return 0;
-}
-
-
-sub makeAutoRun(){
-
- my $destinationPath = shift;
-
- patchBootstraprc($destinationPath);
-
- if (patchXCU ($destinationPath, $script_path.$script_name.".oxt") != 0) {
- print_error("could not register ".$script_path.$script_name.".oxt", "1");
- }
- return 0;
-}
-
-
-sub patchBootstraprc(){
- my $destinationPath = shift;
- my $bootstraprc="";
-
- find sub { $bootstraprc=$File::Find::name if -e _ && /$bootstrapini$/ }, $destinationPath;
-
- print_error("could not find $bootstrapini", "1") if ( ! -e $bootstraprc );
-
- open(BSRC, "<$bootstraprc") or errorFromOpen(" for reading " .$bootstraprc);
- my @content = <BSRC>;
- close(BSRC);
- my @newContent;
- foreach(@content) {
- if ( /UserInstallation=./ ) {
- push(@newContent, "UserInstallation=\$ORIGIN/../UserInstallation\n");
- }
- else {
- push(@newContent,$_);
- }
- }
-
- chmod(0755,$bootstraprc);
-
- open OUTFILE, ">$bootstraprc" or return errorFromOpen (" for writing " . $bootstraprc);
- print OUTFILE @newContent;
- close OUTFILE;
-
-}
-
-sub patchXCU(){
- my $destinationPath = shift;
- my $oxt = shift;
- my $unopkg="";
-
- find sub { $unopkg=$File::Find::name if -e _ && /$UNOPKGBIN$/ }, $destinationPath;
-
- print_error("could not find $UNOPKGBIN", "1") if ( !-e $unopkg );
- print "unopkg: '$unopkg'\n" if $debug;
-
- if ($gui eq "WNT") {
- $unopkg = "\"$unopkg\"";
- }
-
- my $unopkgCommand = "$unopkg add $oxt";
- print "register oxt file ...\n" if $debug;
- print "call $unopkgCommand\n" if $debug;
- my $success=0;
- $success = system($unopkgCommand);
-
- return $success;
-}
-
-sub writeFile(){
- my $fileName = shift;
- my @content = @_;
-
- open OUTFILE, ">$fileName" or return errorFromOpen (" for writing " . $fileName);
-
- my $lf;
- if ($packpackage eq "msi"){
- $lf = "\r\n";
- } else {
- $lf = "\n";
- }
-
- my $line;
- foreach $line(@content) {
- print "LINE: $line\n" if $debug;
- print OUTFILE $line.$lf;
- }
- close(OUTFILE);
- return 0;
-}
-
-sub mkdirs(){
- my $directory = shift;
- my $splitter=$PS;
- if ( $PS eq "\\" ){
- $splitter="\\\\";
- }
- my @aFolder=split($splitter,$directory);
-
- my $dir;
- my $folder;
- foreach $folder(@aFolder){
- if ( (! defined($dir)) && ($PS eq "\\")){
- $dir=$folder;
- } else {
- $dir=$dir.$PS.$folder;
- }
- if (! -e $dir ){
- print "try to create $dir\n" if $debug;
- mkdir($dir);
- }
- }
-}
-
-sub removeOffice(){
-
- my $destPath=shift;
-
- if ($cleanup){
- print "remove old office installation...\n";
-
- print "remove $destPath...\n" if $debug;
- rmtree($destPath);
-
- }
-}
-
-sub getInstallCommand() {
- my $command;
- $command = getDmakeInstalledCommand(@_);
- # if ($packpackage eq "msi"){
- # $command = getWindowsInallCommand(@_);
- # } else {
- # $command = getUnixInstallCommand(@_);
- # }
- return $command;
-}
-
-sub getDmakeInstalledCommand(){
- my ($sourcePath, $destPath, $officeVersion) = @_;
- my $RootDir=$ENV{SRC_ROOT};
-
- my $ProductName;
- my $instset;
-
- # check if instset_native could be found
- foreach my $pointer (@PRODUCT) {
- $instset = $pointer->{'instset'};
- $ProductName = $pointer->{'Name'};
- my $instsetDir = "$RootDir$PS$instset";
- print "instsetDir: $instsetDir \n" if $debug;
-
- last if ($is_ooo && $ProductName eq "OpenOffice");
- last if ( ! $is_ooo && -e "$instsetDir");
- }
- print "Product: $ProductName\n" if $debug;;
-
- my $dmakeTarget=lc($ProductName)."_en-US";
-
- my $utilFolder = getInstsetUtilFolder($instset, $destPath, $RootDir);
- my $dmakeCommand = " $cdCommand \"$utilFolder\" $shellCommandSep dmake $dmakeTarget PKGFORMAT=installed -vt";
- my $envset;
- if ($gui eq "WNT") {
- $envset="set LOCALINSTALLDIR=$destPath & set LOCALUNPACKDIR=$destPath &";
- }else {
- $envset="LOCALINSTALLDIR=$destPath ; LOCALUNPACKDIR=$destPath ; export LOCALINSTALLDIR ; export LOCALUNPACKDIR ; ";
- }
- #my $command=$envset.$dmakeCommand;
- my $command=$dmakeCommand;
- return $command;
-}
-
-sub getInstsetUtilFolder(){
- my $instset = shift;
- my $destPath = shift;
- my $RootDir = shift;
-
- my $instsetFolder = $RootDir.$PS.$instset;
- my $utilFolder="";
-
- if( open(DATEI, ">$instsetFolder".$PS."touch"))
- {
- close(DATEI);
- unlink($instsetFolder.$PS."touch");
- print "$instsetFolder is writable \n" if $debug;
- $utilFolder = $RootDir.$PS.$instset.$PS."util";
- }
- else
- {
- print "$instsetFolder is NOT writable \n" if $debug;
- print "copy $instset to $destPath$PS..\n" if $debug;
- my $prjPath=$destPath.$PS."..";
-
- my $command = "$ENV{COPYPRJ} -x $instset $prjPath";
- print $command if $debug;
- system($command);
- $utilFolder=$prjPath.$PS.$ENV{WORK_STAMP}.$PS.$instset.$PS."util";
- }
- print "utilFolder: $utilFolder\n" if $debug;
- return $utilFolder;
-}
-
-# sub getInstsetFomInstsetNative(){
-# my (@DirArray, $TestDir1, $TestDir2);
-# my $instset;
-# my $ProductName;
-# my $instDir="";
-# my $lang;
-# my $RootDir=$ENV{SRC_ROOT};
-# my $StandDir = $ENV{SOLARSRC} . $PS;
-# #$RootDir=~s/\w+$//;
-
-# foreach my $pointer (@PRODUCT) {
-# $instset = $pointer->{'instset'};
-# $ProductName = $pointer->{'Name'};
-# @DirArray=();
-# $TestDir1 = "$RootDir$PS$instset$PS$ENV{INPATH}$PS$ProductName$PS$packpackage$PS" . "install$PS";
-# $TestDir2 = "$StandDir$instset$PS$ENV{INPATH}$PS$ProductName$PS$packpackage$PS" . "install$PS";
-# print "TestDir1: $TestDir1 \n";
-# print "TestDir2: $TestDir2 \n";
-# if (-e "$TestDir1") {
-# $instDir= $TestDir1;
-# }
-# elsif (-e "$TestDir2") {
-# $instDir="$TestDir2";
-# }
-# if ($instDir eq "") {
-# next;
-# }
-
-# getSubDirs ("$instDir", \@DirArray);
-# $lang = findSubDir (\@DirArray);
-# print "Lang-Sel: $lang\n" if $is_command_infos;
-# ;
-# if (($instDir ne "") and (-e $instDir)) {
-# return ($lang, $instDir, $ProductName, $instset);
-# }
-# }
-# print_error ("no installationset found\n",2);
-
-# }
-
-sub getWindowsInallCommand(){
- my ($sourcePath, $destPath) = @_;
- my $mask = "\\.msi\$";
- #my $DirArray;
- my @DirArray = ();
- getSubFiles ("$sourcePath", \@DirArray, $mask);
- if ($#DirArray == -1) {
- print_error ("Installationset in $sourcePath is incomplete", 2);
- }
- if ($#DirArray >= 1) {
- print_error ("Installationset in $sourcePath hat too many msi-files", 2);
- print "found the following msi-files: @DirArray\n" if $debug;
- }
- my $command = "msiexec.exe /a $sourcePath$PS$DirArray[0] -qn ALLUSERS=2 INSTALLLOCATION=$destPath";
-
- return $command;
-}
-
-sub getUnixInstallCommand() {
- my ($sourcePath, $destPath, $officeVersion) = @_;
-
- my $userland="unknown";
-
- if (defined($ENV{CWS_WORK_STAMP})){
- print " found CWS\n";
- $userland=$ENV{SOLARVERSION}.$PS.$ENV{INPATH}.$PS."bin".$ENV{UPDMINOREXT}.$PS."userscripts".$PS."install";
- }
- elsif (isLocalEnv()){
- print " local environment\n";
- }
- elsif (defined $ENV{SHIPDRIVE}) {
- print " master version\n";
- $userland=$ENV{SHIPDRIVE}.$PS.$ENV{INPATH}.$PS."UserScripts".$PS.$ENV{PKGFORMAT}.$PS.$officeVersion.$PS."install";
- }
- elsif (defined $ENV{SOLARSRC}) {
- print " OpenOffice master version\n";
- print " command to install Office not implementet yet\n";
- exit(1);
- }
- else {
- print "Could not determine environment. Exit\n";
- exit(1);
- }
- return "$userland $sourcePath $destPath";
-;
-
-}
-
-sub getDestinationPath {
- # if (defined $ENV{SOLARROOT}){
- # # seems to be a Sun environment
- # if (! -e $OfficeDestinationPath){
-
- # }
- # }
- my $officeVersion = shift;
- my $officename;
-
- if (defined($ENV{LOCALINSTALLDIR})){
- $OfficeDestinationPath=$ENV{LOCALINSTALLDIR};
- if(index($OfficeDestinationPath," ") >= 0) {
- my $msg="You environemt variable '\$LOCALINSTALLDIR=$OfficeDestinationPath' contains white spaces.";
- $msg = $msg." This is not allowed!";
- print_error($msg, "1");
- }
- }
- if (!defined($OfficeDestinationPath)){
- $officename = $officeVersion;
- if (defined($ENV{CWS_WORK_STAMP})){
- $officename=$ENV{CWS_WORK_STAMP};
- }
- $OfficeDestinationPath=$temp_path.$PS.$user.$PS."office".$PS.$officename;
- }
-
- return $OfficeDestinationPath;
-}
-
-# sub getInstset {
-
-# my ($INSTSET, $NEWINSTSET, $ProductName);
-
-# if (defined ($ENV{EPM}) && ($ENV{EPM} eq 'NO') && ($gui eq "UNX")) { # we do the install ourselves ...
-# return ();
-# }
-
-# print "get Instset\n" if $debug;
-# $NEWINSTSET = "";
-
-# if (!isLocalEnv() and !defined($ENV{CWS_WORK_STAMP}) and (-e $SHIP) and ($gui ne $cygwin)) {
-# ($NEWINSTSET, $INSTSET) = getSetFromServer();
-# }
-# else {
-# ($NEWINSTSET, $INSTSET, $ProductName) = getInstsetFomInstsetNative();
-# }
-# return ($NEWINSTSET, $INSTSET);
-# }
-
-# sub getSetFromServer {
-# my ($DirName, $SetupFullPath);
-# my $workspace = $ENV{WORK_STAMP};
-# my $platform = $ENV{INPATH};
-# my $latestset;
-# my (@DirArray, $mask, $buildid, $milestone);
-
-# foreach my $pointer (@PRODUCT) {
-# my $ProductName = $pointer->{'Name'};
-
-# print "##PRODUCT: $ProductName\n";
-# my $SetupFullPath = "$SHIP$ENV{INPATH}$PS$ProductName$PS$packpackage$PS";
-# if ( ! ( $workspace && $platform ) ) {
-# print_error ( "Error: environment not set correctly.", 1);
-# }
-# # get latest broadcastet milestone and pack number
-# ($milestone, $buildid) = get_milestoneAndBuildID( $workspace, $platform );
-
-# if (defined $ENV{CWS_WORK_STAMP}) {
-# # /unxlngi6.pro/StarOffice/rpm/ SRC680_m245_native_packed-2_en-US.9267/
-# $mask = "^$workspace" . "_" . $milestone . "_native_packed-(\\d+)_en-US\\.$buildid";
-# } else {
-# # cws03/os110/OOH680/src.m4/instset_native/unxlngi6.pro/StarOffice/rpm install/en-US/RPMS
-# $mask = "^$workspace" . "_" . $milestone . "_native_packed-(\\d+)_en-US\\.$buildid";
-# }
-# print "MASK: $mask\n";
-# $global_instset_mask = $mask;
-# getSubFiles ($SetupFullPath, \@DirArray, $mask);
-# @DirArray = sort InstsetSort @DirArray;
-
-# if ($#DirArray > -1) {
-# $latestset = $DirArray [$#DirArray];
-# $DirName = $latestset;
-# }
-# else {
-# print_error ("Cannot find install set $SetupFullPath for $workspace $milestone", 2);
-# }
-
-# print "Latest install sets: $latestset\n" if $debug;
-
-# print "$DirName\t $SetupFullPath\n" if $debug;
-# # compare with file system
-# # at the moment just the existence is checked. For security reasons it might be
-# # better to additionally check whether there are newer sets (this must not happen,
-# # but who knows ...)
-# if ( -d $SetupFullPath ) {
-# # if found => return and don't continue searching
-# # this is usefull to set a priority to find installsets in @PRODUCT
-# # first comes, first wins
-# return ($DirName, $SetupFullPath);
-# }
-# }
-
-# # compare with file system
-# # at the moment just the existence is checked. For security reasons it might be
-# # better to additionally check whether there are newer sets (this must not happen,
-# # but who knows ...)
-# if ( -d $SetupFullPath ) {
-# return ($DirName, $SetupFullPath);
-# } else {
-# print_error ("Cannot find install set $SetupFullPath for $workspace $milestone", 2);
-# }
-# }
-
-# sub get_milestoneAndBuildID {
-# my ( $ws, $pf ) = @_;
-# my ($milestone, $buildid, $upd, $path, $updext, $line);
-
-# if ( $ws =~ /^\D+(\d+)$/) {
-# $upd = $1;
-# }
-
-# if (defined ($ENV{UPDMINOREXT})) {
-# $updext = $ENV{UPDMINOREXT};
-# }
-# else {
-# $updext = "";
-# }
-
-# $path = "$ENV{SOLARVER}$PS$pf$PS" . "inc$updext$PS$upd" . "minor.mk";
-# print "$path\n" if $debug;
-# local *MINORMK;
-
-# if ( !open(MINORMK,$path) ) {
-# print "FATAL: can't open $path\n";
-# return (0,0);
-# }
-
-# if (!eof(MINORMK)) {
-# while ($line = <MINORMK>) {
-# chomp($line);
-# if ( $line =~ /LAST_MINOR=(\w+)/ ) {
-# $milestone = $1;
-# }
-# elsif ( $line =~ /BUILD=(\d+)/ ) {
-# $buildid = $1;
-# }
-# }
-
-# close(MINORMK);
-# }
-# if (!defined($milestone)) {
-# print_error ("Milestone ist not defined!", 2);
-# }
-# if (!defined($buildid)) {
-# print_error ("Build-ID ist not defined!", 2);
-# }
-
-# return ($milestone, $buildid);
-# }
-
-sub print_error
-{
- my $message = shift;
- my $error_code = shift;
-
- print STDERR "ERROR: $message\n";
- doExit($error_code);
-}
-
-sub getSubFiles {
- my ($startDir, $DirArray_ref, $mask) = @_;
- my ($dir);
- local *DIR;
- opendir(DIR,"$startDir");
- while($dir = readdir(DIR)) {
- if (($dir =~ /\.$/) or ($dir !~ /$mask/)) {
- next;
- }
- push (@{$DirArray_ref}, "$dir");
- }
- closedir(DIR);
-
-}
-
-sub InstsetSort {
- my ($a1, $b1);
- if ($a =~ /$global_instset_mask/) {
- $a1 = $1;
- }
- if ($b =~ /$global_instset_mask/) {
- $b1 = $1;
- }
- $a1 <=> $b1;
-}
-
-sub isLocalEnv {
- my $returnvalue = 0;
- if (defined ($ENV{SOL_TMP}) && defined ($ENV{SOLARVERSION})) {
- my $mask = $ENV{SOL_TMP};
- $mask =~ s/\\/\\\\/;
- print "Mask: $mask\n" if $debug;
- if ($ENV{SOLARVERSION}=~ /$mask/) {
- $returnvalue = 1;
- }
- }
- return $returnvalue;
-}
-
-sub getSubDirs {
- my ($startDir, $DirArray_ref) = @_;
- my ($dir);
- opendir(DIR,"$startDir");
- while($dir = readdir(DIR)) {
- if (($dir !~ /\.$/) and ( -d "$startDir$dir") ) {
- push (@{$DirArray_ref}, "$dir");
- }
- }
- closedir(DIR);
-
-}
-
-sub findSubDir {
- my ($DirArray_ref) = @_;
- my (@sortedArray, $dir, $instdir);
- @sortedArray = sort langsort @{$DirArray_ref};
- print "Langs: @sortedArray\n" if $is_command_infos;
- foreach $dir (@sortedArray) {
- if ($dir =~ /log$/) {
- next;
- }
- $instdir = "$dir";
- return $instdir;
- }
- return "";
-}
-
-sub langsort {
- if ($a eq $prefered_lang) {
- return -1;
- }
- elsif ($b eq $prefered_lang) {
- return 1;
- }
- else {
- $a cmp $b;
- }
-}
-
-sub doExit
-{
- my $error_code = shift;
- # if ($sversion_saved) {
- # restore_sversion ($SVERSION_INI);
- # }
- # if ($is_remove_on_error) {
- # if ($is_do_deinstall) {
- # deinstallInstallation ($installpath);
- # }
- # removeInstallation($installpath);
- # }
- # else {
- # print_notRemoved ($installpath);
- # }
- if ( $error_code ) {
- print STDERR "\nFAILURE: $script_name aborted.\n";
- }
- exit($error_code);
-
-}
-
-
-sub parseArgs
-{
- for (my $i=0; $i<=$#ARGV; $i++) {
- if ( $ARGV[$i] =~ /^-cwscheckapi$/ ) {
- my $value = $ARGV[++$i];
- if ($value =~ /^true$/ || ($value =~ /^1$/) ) {
- $cwsCheckApi = 1;
- $cleanup = 1;
- $autorun = 1;
- };
-
- }
-
- if ( $ARGV[$i] =~ /^-dest$/ ) {
- $OfficeDestinationPath = $ARGV[++$i];
- }
-
- if ( $ARGV[$i] =~ /^-cleanup$/ ) {
- my $value = $ARGV[++$i];
- if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $cleanup = 1 };
- }
-
- if ( $ARGV[$i] =~ /^-autorun$/ ) {
- my $value = $ARGV[++$i];
- if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $autorun = 1 };
- }
-
- if ( $ARGV[$i] =~ /^-autoimpress$/ ) {
- my $value = $ARGV[++$i];
- if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $autoimpress = 1 };
- }
-
- if ( $ARGV[$i] =~ /^-debug$/ ) {
- my $value = $ARGV[++$i];
- if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $debug = 1 };
- }
-
- if ( $ARGV[$i] =~ /^-ooo$/ ) {
- my $value = $ARGV[++$i];
- if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $is_ooo = 1 };
- }
- }
-
-}
-
-sub getSubDirsFullPath {
- my ($startDir, $DirArray_ref) = @_;
- my ($dir);
- opendir(DIR,"$startDir");
- while($dir = readdir(DIR)) {
- if (($dir !~ /\.$/) and ( -d "$startDir$dir") ) {
- push (@{$DirArray_ref}, "$startDir$dir");
- }
- }
- closedir(DIR);
-}
-
-sub errorFromOpen {
- my ($file) = @_;
- print_error( "can not open $file", "1");
-}
-
diff --git a/solenv/bin/macosx-change-install-names.pl b/solenv/bin/macosx-change-install-names.pl
index b7530e4f5e98..6f824f34ff0c 100644
--- a/solenv/bin/macosx-change-install-names.pl
+++ b/solenv/bin/macosx-change-install-names.pl
@@ -39,13 +39,17 @@ sub action($$$)
'app/BRAND/OOO' => '@executable_path/../basis-link/program',
'app/NONE/URELIB' => '@__VIA_LIBRARY_PATH__',
'app/NONE/OOO' => '@__VIA_LIBRARY_PATH__',
+ 'app/NONE/NONE' => '@__VIA_LIBRARY_PATH__',
'shl/URELIB/URELIB' => '@loader_path',
'shl/OOO/URELIB' => '@loader_path/../ure-link/lib',
'shl/OOO/OOO' => '@loader_path',
- 'shl/OXT/URELIB' => '@executable_path/urelibs');
+ 'shl/OXT/URELIB' => '@executable_path/urelibs',
+ 'shl/NONE/URELIB' => '@__VIA_LIBRARY_PATH__',
+ 'shl/NONE/OOO' => '@__VIA_LIBRARY_PATH__',
+ 'shl/NONE/NONE' => '@__VIA_LIBRARY_PATH__');
my ($type, $loc1, $loc2) = @_;
my $act = $action{"$type/$loc1/$loc2"};
- die "illegal combination $type/$loc/$2" unless defined $act;
+ die "illegal combination $type/$loc1/$loc2" unless defined $act;
return $act;
}
diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl
index bde0763e4564..143f60d986db 100644
--- a/solenv/bin/make_installer.pl
+++ b/solenv/bin/make_installer.pl
@@ -1345,6 +1345,9 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ )
installer::packagelist::resolve_packagevariables(\$packagename, $allvariableshashref, 0);
}
+ # Debian allows no underline in package name
+ if ( $installer::globals::debian ) { $packagename =~ s/_/-/g; }
+
my $linkaddon = "";
my $linkpackage = 0;
$installer::globals::add_required_package = "";
@@ -1374,7 +1377,11 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ )
# try it again later.
####################################################
- if (( $installer::globals::patch ) || ( $installer::globals::languagepack ) || ( $installer::globals::packageformat eq "native" ) || ( $installer::globals::packageformat eq "osx" )) { $allvariableshashref->{'POOLPRODUCT'} = 0; }
+ if (( $installer::globals::patch ) ||
+ ( $installer::globals::languagepack ) ||
+ ( $installer::globals::packageformat eq "native" ) ||
+ ( $installer::globals::packageformat eq "portable" ) ||
+ ( $installer::globals::packageformat eq "osx" )) { $allvariableshashref->{'POOLPRODUCT'} = 0; }
if ( $allvariableshashref->{'POOLPRODUCT'} )
{
diff --git a/solenv/bin/modules/SourceConfig.pm b/solenv/bin/modules/SourceConfig.pm
index c3503221b8fa..9379b7764d0a 100755..100644
--- a/solenv/bin/modules/SourceConfig.pm
+++ b/solenv/bin/modules/SourceConfig.pm
@@ -57,14 +57,27 @@ sub new {
my $source_root = shift;
my $self = {};
$self->{USER_SOURCE_ROOT} = undef;
+ $self->{SOURCE_CONFIG_FILE} = undef;
if (defined $source_root) {
- $self->{USER_SOURCE_ROOT} = $source_root;
+ $source_root = Cwd::realpath($source_root);
$source_root =~ s/\\|\/$//;
- $source_root .= '/..';
+ if (-f $source_root) {
+ # We have path to source_config
+ if (File::Basename::basename($source_root) eq 'source_config') {
+ # We have path to source_config
+ $self->{SOURCE_CONFIG_FILE} = $source_root;
+ $source_root = File::Basename::dirname($source_root);
+ } else {
+ croak("$source_root is not a source_config file");
+ };
+ } else {
+ $self->{USER_SOURCE_ROOT} = $source_root;
+ $source_root .= '/..';
+ }
} else {
- $source_root = $ENV{SOURCE_ROOT_DIR};
+ $source_root = Cwd::realpath($ENV{SOURCE_ROOT_DIR});
};
- $self->{SOURCE_ROOT} = Cwd::realpath($source_root);
+ $self->{SOURCE_ROOT} = $source_root;
$self->{DEBUG} = 0;
$self->{VERBOSE} = 0;
$self->{REPOSITORIES} = {};
@@ -81,10 +94,12 @@ sub new {
$self->{WARNINGS} = [];
$self->{REPORT_MESSAGES} = [];
$self->{CONFIG_FILE_CONTENT} = [];
+ $self->{DEFAULT_REPOSITORY} = undef;
if (defined $self->{USER_SOURCE_ROOT}) {
${$self->{REPOSITORIES}}{File::Basename::basename($self->{USER_SOURCE_ROOT})} = $self->{USER_SOURCE_ROOT};
+ $self->{DEFAULT_REPOSITORY} = File::Basename::basename($self->{USER_SOURCE_ROOT});
};
- $self->{SOURCE_CONFIG_FILE} = get_config_file($self->{SOURCE_ROOT});
+ $self->{SOURCE_CONFIG_FILE} = get_config_file($self->{SOURCE_ROOT}) if (!defined $self->{SOURCE_CONFIG_FILE});
$self->{SOURCE_CONFIG_DEFAULT} = $self->{SOURCE_ROOT} .'/'.SOURCE_CONFIG_FILE_NAME;
read_config_file($self);
bless($self, $class);
@@ -286,11 +301,17 @@ sub read_config_file {
next if (!$repository_section && !$module_section);
if (/\s*(\S+)=active\s*(\s+#)*/) {
if ($repository_section) {
- ${$self->{REPOSITORIES}}{$1} = $self->{SOURCE_ROOT} . "/$1";
- ${$self->{ACTIVATED_REPOSITORIES}}{$1}++;
+ my $repository_source_path = $self->{SOURCE_ROOT} . "/$1";
if (defined $ENV{UPDMINOREXT}) {
- ${$self->{REPOSITORIES}}{$1} .= $ENV{UPDMINOREXT};
+ $repository_source_path .= $ENV{UPDMINOREXT};
};
+ if ((defined $self->{DEFAULT_REPOSITORY}) && (${$self->{REPOSITORIES}}{$self->{DEFAULT_REPOSITORY}} eq $repository_source_path)) {
+ delete ${$self->{REPOSITORIES}}{$self->{DEFAULT_REPOSITORY}};
+ $self->{DEFAULT_REPOSITORY} = undef;
+
+ };
+ ${$self->{REPOSITORIES}}{$1} = $repository_source_path;
+ ${$self->{ACTIVATED_REPOSITORIES}}{$1}++;
next;
}
if ($module_section) {
@@ -525,7 +546,8 @@ Methods:
SourceConfig::new()
-Creates a new instance of SourceConfig. Can't fail.
+Creates a new instance of SourceConfig. Can be initialized by: path to the default repository, path to the source_config, default - empty, the source_config will be taken from the environment
+
SourceConfig::get_version()
diff --git a/solenv/bin/modules/installer/control.pm b/solenv/bin/modules/installer/control.pm
index 7818b74f4b40..f4edc8129255 100644
--- a/solenv/bin/modules/installer/control.pm
+++ b/solenv/bin/modules/installer/control.pm
@@ -710,7 +710,7 @@ sub set_addsystemintegration
if ( $installer::globals::patch ) { $installer::globals::addsystemintegration = 0; }
if ( $installer::globals::languagepack ) { $installer::globals::addsystemintegration = 0; }
- if ( $installer::globals::packageformat eq "native" ) { $installer::globals::addsystemintegration = 0; }
+ if (( $installer::globals::packageformat eq "native" ) || ( $installer::globals::packageformat eq "portable" )) { $installer::globals::addsystemintegration = 0; }
my $infoline = "Value of \$installer::globals::addsystemintegration: $installer::globals::addsystemintegration\n";
push( @installer::globals::globallogfileinfo, $infoline);
diff --git a/solenv/bin/modules/installer/download.pm b/solenv/bin/modules/installer/download.pm
index 46512e525046..f98770a15790 100644
--- a/solenv/bin/modules/installer/download.pm
+++ b/solenv/bin/modules/installer/download.pm
@@ -446,11 +446,10 @@ sub get_downloadname_language
# en-US is default language and can be removed therefore
# for one-language installation sets
- if ( $languages =~ /^\s*en-US\s*$/ )
- {
- $languages = "";
- }
-
+ # if ( $languages =~ /^\s*en-US\s*$/ )
+ # {
+ # $languages = "";
+ # }
if ( length ($languages) > $installer::globals::max_lang_length )
{
@@ -461,20 +460,252 @@ sub get_downloadname_language
}
#########################################################
-# Setting download name, first part
+# Setting download name
#########################################################
-sub get_downloadname_start
+sub get_downloadname_productname
{
my ($allvariables) = @_;
my $start = "OOo";
+
+ if ( $allvariables->{'PRODUCTNAME'} eq "OpenOffice.org" ) { $start = "OOo"; }
+
+ if ( $allvariables->{'PRODUCTNAME'} eq "OOo-dev" ) { $start = "OOo-Dev"; }
+
+ if (( $allvariables->{'PRODUCTNAME'} eq "OpenOffice.org" ) && ( $allvariables->{'POSTVERSIONEXTENSION'} eq "SDK" )) { $start = "OOo-SDK"; }
+
+ if (( $allvariables->{'PRODUCTNAME'} eq "OOo-dev" ) && ( $allvariables->{'POSTVERSIONEXTENSION'} eq "SDK" )) { $start = "OOo-Dev-SDK"; }
+
+ if ( $allvariables->{'PRODUCTNAME'} eq "URE" ) { $start = "OOo-URE"; }
+
if ( $allvariables->{'PRODUCTNAME'} eq "BrOffice.org" ) { $start = "BrOo"; }
+ if ( $allvariables->{'PRODUCTNAME'} eq "BrOo-dev" ) { $start = "BrOo-Dev"; }
+
+ if (( $allvariables->{'PRODUCTNAME'} eq "BrOffice.org" ) && ( $allvariables->{'POSTVERSIONEXTENSION'} eq "SDK" )) { $start = "BrOo-SDK"; }
+
+ if (( $allvariables->{'PRODUCTNAME'} eq "BrOo-dev" ) && ( $allvariables->{'POSTVERSIONEXTENSION'} eq "SDK" )) { $start = "BrOo-Dev-SDK"; }
+
return $start;
}
#########################################################
+# Setting download version
+#########################################################
+
+sub get_download_version
+{
+ my ($allvariables) = @_;
+
+ my $version = "";
+
+ my $devproduct = 0;
+ if (( $allvariables->{'DEVELOPMENTPRODUCT'} ) && ( $allvariables->{'DEVELOPMENTPRODUCT'} == 1 )) { $devproduct = 1; }
+
+ my $cwsproduct = 0;
+ # the environment variable CWS_WORK_STAMP is set only in CWS
+ if ( $ENV{'CWS_WORK_STAMP'} ) { $cwsproduct = 1; }
+
+ if (( $cwsproduct ) || ( $devproduct )) # use "DEV300m75"
+ {
+ my $source = uc($installer::globals::build); # DEV300
+ my $localminor = "";
+ if ( $installer::globals::minor ne "" ) { $localminor = $installer::globals::minor; }
+ else { $localminor = $installer::globals::lastminor; }
+ $version = $source . $localminor;
+ }
+ else # use 3.2.0rc1
+ {
+ $version = $allvariables->{'PRODUCTVERSION'};
+ if (( $allvariables->{'ABOUTBOXPRODUCTVERSION'} ) && ( $allvariables->{'ABOUTBOXPRODUCTVERSION'} ne "" )) { $version = $allvariables->{'ABOUTBOXPRODUCTVERSION'}; }
+ if (( $allvariables->{'SHORT_PRODUCTEXTENSION'} ) && ( $allvariables->{'SHORT_PRODUCTEXTENSION'} ne "" )) { $version = $version . $allvariables->{'SHORT_PRODUCTEXTENSION'}; }
+ }
+
+ return $version;
+}
+
+###############################################################
+# Set date string, format: yymmdd
+###############################################################
+
+sub set_date_string
+{
+ my ($allvariables) = @_;
+
+ my $datestring = "";
+
+ my $devproduct = 0;
+ if (( $allvariables->{'DEVELOPMENTPRODUCT'} ) && ( $allvariables->{'DEVELOPMENTPRODUCT'} == 1 )) { $devproduct = 1; }
+
+ my $cwsproduct = 0;
+ # the environment variable CWS_WORK_STAMP is set only in CWS
+ if ( $ENV{'CWS_WORK_STAMP'} ) { $cwsproduct = 1; }
+
+ my $releasebuild = 1;
+ if (( $allvariables->{'SHORT_PRODUCTEXTENSION'} ) && ( $allvariables->{'SHORT_PRODUCTEXTENSION'} ne "" )) { $releasebuild = 0; }
+
+ if (( ! $devproduct ) && ( ! $cwsproduct ) && ( ! $releasebuild ))
+ {
+ my @timearray = localtime(time);
+
+ my $day = $timearray[3];
+ my $month = $timearray[4] + 1;
+ my $year = $timearray[5] + 1900;
+
+ if ( $month < 10 ) { $month = "0" . $month; }
+ if ( $day < 10 ) { $day = "0" . $day; }
+
+ $datestring = $year . $month . $day;
+ }
+
+ return $datestring;
+}
+
+#################################################################
+# Setting the platform name for download
+#################################################################
+
+sub get_download_platformname
+{
+ my $platformname = "";
+
+ if ( $installer::globals::islinuxbuild )
+ {
+ $platformname = "Linux";
+ }
+ elsif ( $installer::globals::issolarisbuild )
+ {
+ $platformname = "Solaris";
+ }
+ elsif ( $installer::globals::iswindowsbuild )
+ {
+ $platformname = "Win";
+ }
+ elsif ( $installer::globals::isfreebsdbuild )
+ {
+ $platformname = "FreeBSD";
+ }
+ elsif ( $installer::globals::ismacbuild )
+ {
+ $platformname = "MacOS";
+ }
+ else
+ {
+ # $platformname = $installer::globals::packageformat;
+ $platformname = $installer::globals::compiler;
+ }
+
+ return $platformname;
+}
+
+#########################################################
+# Setting the architecture for the download name
+#########################################################
+
+sub get_download_architecture
+{
+ my $arch = "";
+
+ if ( $installer::globals::compiler =~ /unxlngi/ )
+ {
+ $arch = "x86";
+ }
+ elsif ( $installer::globals::compiler =~ /unxlngppc/ )
+ {
+ $arch = "PPC";
+ }
+ elsif ( $installer::globals::compiler =~ /unxlngx/ )
+ {
+ $arch = "x86-64";
+ }
+ elsif ( $installer::globals::issolarissparcbuild )
+ {
+ $arch = "Sparc";
+ }
+ elsif ( $installer::globals::issolarisx86build )
+ {
+ $arch = "x86";
+ }
+ elsif ( $installer::globals::iswindowsbuild )
+ {
+ $arch = "x86";
+ }
+ elsif ( $installer::globals::compiler =~ /^unxmacxi/ )
+ {
+ $arch = "x86";
+ }
+ elsif ( $installer::globals::compiler =~ /^unxmacxp/ )
+ {
+ $arch = "PPC";
+ }
+
+ return $arch;
+}
+
+#########################################################
+# Setting the installation type for the download name
+#########################################################
+
+sub get_install_type
+{
+ my ($allvariables) = @_;
+
+ my $type = "";
+
+ my $cwsproduct = 0;
+ # the environment variable CWS_WORK_STAMP is set only in CWS
+ if ( $ENV{'CWS_WORK_STAMP'} ) { $cwsproduct = 1; }
+
+ if ( $installer::globals::languagepack )
+ {
+ $type = "langpack";
+
+ if ( $installer::globals::islinuxrpmbuild )
+ {
+ $type = $type . "-rpm";
+ }
+
+ if ( $installer::globals::islinuxdebbuild )
+ {
+ $type = $type . "-deb";
+ }
+
+ if (( $installer::globals::packageformat eq "archive" ) && ( $cwsproduct ))
+ {
+ $type = $type . "-arc";
+ }
+ }
+ else
+ {
+ $type = "install";
+
+ if ( $installer::globals::islinuxrpmbuild )
+ {
+ $type = $type . "-rpm";
+ }
+
+ if ( $installer::globals::islinuxdebbuild )
+ {
+ $type = $type . "-deb";
+ }
+
+ if (( $installer::globals::packageformat eq "archive" ) && ( $cwsproduct ))
+ {
+ $type = $type . "-arc";
+ }
+
+ if (( $allvariables->{'WITHJREPRODUCT'} ) && ( $allvariables->{'WITHJREPRODUCT'} == 1 ))
+ {
+ $type = $type . "-wJRE";
+ }
+
+ }
+
+ return $type;
+}
+
+#########################################################
# Setting installation addons
#########################################################
@@ -548,48 +779,29 @@ sub get_current_version
return $versionstring;
}
-#########################################################
-# Determining the download file name
-# Samples:
-# OOo_2.0.2rc1_060213_Solarisx86_install_de
-# OOo_2.0.2rc1_060213_LinuxIntel_langpack_zh-TW
-# OOo_2.0.2rc1_060213_SolarisSparc_install_zh-TW_wJRE
-# OOo_2.0.2rc1_060213_Win32Intel_install_zh-TW_wJRE
-# OOo_2.0.157_LinuxIntel_install_de
-#
-#########################################################
+###############################################################################################
+# Setting the download file name
+# Syntax:
+# (PRODUCTNAME)_(VERSION)_(TIMESTAMP)_(OS)_(ARCH)_(INSTALLTYPE)_(LANGUAGE).(FILEEXTENSION)
+# Rules:
+# Timestamp only for Beta and Release Candidate
+###############################################################################################
sub set_download_filename
{
my ($languagestringref, $allvariables) = @_;
- my $start = get_downloadname_start($allvariables);
- # my $versionstring = get_current_version();
- my $versionstring = "";
- my $date = installer::logger::set_installation_date();
- if ( $installer::globals::product =~ /_Dev\s*$/ ) { $date = ""; }
- my $platform = installer::worker::get_platform_name();
- my $type = get_installation_type();
+ my $start = get_downloadname_productname($allvariables);
+ my $versionstring = get_download_version($allvariables);
+ my $date = set_date_string($allvariables);
+ my $platform = get_download_platformname();
+ my $architecture = get_download_architecture();
+ my $type = get_install_type($allvariables);
my $language = get_downloadname_language($languagestringref);
- my $addon = get_downloadname_addon();
- if ( $installer::globals::product =~ /_Dev\s*$/ )
- {
- my $localminor = "";
- if ( $installer::globals::minor ne "" ) { $localminor = $installer::globals::minor; }
- else { $localminor = $installer::globals::lastminor; }
- if ( $localminor =~ /^\s*\w(\d+)\w*\s*$/ ) { $localminor = $1; }
- $versionstring = $allvariables->{'PRODUCTVERSION'} . "." . $localminor;
- }
- else
- {
- if ( $allvariables->{'PACKAGEVERSION'} )
- {
- $versionstring = $allvariables->{'PACKAGEVERSION'};
- }
- }
+ # Setting the extension happens automatically
- my $filename = $start . "_" . $versionstring . "_" . $date . "_" . $platform . "_" . $type . "_" . $language . $addon;
+ my $filename = $start . "_" . $versionstring . "_" . $date . "_" . $platform . "_" . $architecture . "_" . $type . "_" . $language;
$filename =~ s/\_\_/\_/g; # necessary, if $versionstring or $platform or $language are empty
$filename =~ s/\_\s*$//; # necessary, if $language and $addon are empty
diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm
index 81eaace26343..72ab0215dbcf 100644
--- a/solenv/bin/modules/installer/globals.pm
+++ b/solenv/bin/modules/installer/globals.pm
@@ -136,7 +136,9 @@ BEGIN
$issolarispkgbuild = 0;
$issolarissparcbuild = 0;
$issolarisx86build = 0;
+ $isfreebsdbuild = 0;
$isfreebsdpkgbuild = 0;
+ $ismacbuild = 0;
$ismacdmgbuild = 0;
$unpackpath = "";
$idttemplatepath = "";
@@ -233,7 +235,7 @@ BEGIN
$mergefiles_added_into_collector = 0;
$creating_windows_installer_patch = 0;
- $strip = 1;
+ $strip = $ENV{DISABLE_STRIP} eq '';
$solarjava = 0;
$jdklib = "";
$jrepath = "";
@@ -268,7 +270,7 @@ BEGIN
$isopensourceproduct = 1;
$manufacturer = "";
$longmanufacturer = "";
- $sundirname = "";
+ $sundirname = "Oracle";
$codefilename = "codes.txt";
$componentfilename = "components.txt";
$productcode = "";
@@ -513,13 +515,12 @@ BEGIN
if ( $plat =~ /darwin/i )
{
$libextension = "\.dylib";
- $archiveformat = ".dmg";
}
else
{
$libextension = "\.so";
- $archiveformat = ".tar.gz";
}
+ $archiveformat = ".tar.gz";
$quote = "\'";
$isunix = 1;
$iswin = 0;
diff --git a/solenv/bin/modules/installer/parameter.pm b/solenv/bin/modules/installer/parameter.pm
index 8a54c27db3a9..0961b598902f 100644
--- a/solenv/bin/modules/installer/parameter.pm
+++ b/solenv/bin/modules/installer/parameter.pm
@@ -276,7 +276,6 @@ sub setglobalvariables
if ( $installer::globals::compiler =~ /wnt(msc|gcc)i/ )
{
$installer::globals::iswindowsbuild = 1;
- if ( $installer::globals::installertypedir eq "" ) { $installer::globals::installertypedir = "msi"; }
}
if ( $installer::globals::compiler =~ /unxso[lg][siux]/ )
@@ -290,8 +289,10 @@ sub setglobalvariables
}
}
- if ( $installer::globals::compiler =~ /unxmacxi/ )
+ if (( $installer::globals::compiler =~ /unxmacxi/ ) || ( $installer::globals::compiler =~ /unxmacxp/ ))
{
+ $installer::globals::ismacbuild = 1;
+
if ( $installer::globals::packageformat eq "dmg" )
{
$installer::globals::ismacdmgbuild = 1;
@@ -300,6 +301,8 @@ sub setglobalvariables
if ( $installer::globals::compiler =~ /unxfbsd/ )
{
+ $installer::globals::isfreebsdbuild = 1;
+
if ( $installer::globals::packageformat eq "bsd" )
{
$installer::globals::epmoutpath = "freebsd";
diff --git a/solenv/bin/modules/installer/servicesfile.pm b/solenv/bin/modules/installer/servicesfile.pm
index 38c21a57593b..63e5f44125c8 100644
--- a/solenv/bin/modules/installer/servicesfile.pm
+++ b/solenv/bin/modules/installer/servicesfile.pm
@@ -133,12 +133,14 @@ sub register_unocomponents
my $filestring = "";
for ( my $i = 0; $i <= $#{$unocomponents}; ++$i )
{
+ my $local_error1_occured = 0;
+ my $local_error2_occured = 0;
+
my $sourcepath = make_file_url(${$unocomponents}[$i]->{'sourcepath'});
my $urlprefix = ${$unocomponents}[$i]->{'NativeServicesURLPrefix'};
if (defined($urlprefix))
{
- call_regcomp(
- $regcompfileref, $servicesfile, $sourcepath, $urlprefix);
+ $local_error1_occured = call_regcomp($regcompfileref, $servicesfile, $sourcepath, $urlprefix);
}
else
{
@@ -148,11 +150,11 @@ sub register_unocomponents
if (length($filestring) > $installer::globals::unomaxservices ||
($i == $#{$unocomponents} && $filestring ne ""))
{
- call_regcomp(
- $regcompfileref, $servicesfile, $filestring,
- $nativeservicesurlprefix);
+ $local_error2_occured = call_regcomp($regcompfileref, $servicesfile, $filestring, $nativeservicesurlprefix);
$filestring = "";
}
+
+ if (( $local_error1_occured ) || ( $local_error2_occured )) { $error_occured = 1; }
}
return $error_occured;
@@ -163,6 +165,8 @@ sub call_regcomp
my ($regcompfileref, $servicesfile, $filestring, $urlprefix) = @_;
my @regcompoutput = ();
+ my $error_occured = 0;
+
my $systemcall = "$installer::globals::wrapcmd $$regcompfileref -register -r ".fix_cygwin_path($servicesfile)." -c " . $installer::globals::quote . $filestring . $installer::globals::quote . " -wop=" . $installer::globals::quote . $urlprefix . $installer::globals::quote . " 2\>\&1 |";
open (REG, "$systemcall");
@@ -187,6 +191,8 @@ sub call_regcomp
$infoline = "SUCCESS: $systemcall\n";
push( @installer::globals::logfileinfo, $infoline);
}
+
+ return $error_occured;
}
################################################################
diff --git a/solenv/bin/modules/installer/simplepackage.pm b/solenv/bin/modules/installer/simplepackage.pm
index f151846445c1..9666ef3e1af5 100644
--- a/solenv/bin/modules/installer/simplepackage.pm
+++ b/solenv/bin/modules/installer/simplepackage.pm
@@ -354,13 +354,16 @@ sub replace_variables_in_scriptfile
#############################################
# Creating the "simple" package.
# "zip" for Windows
-# "dmg" on Mac OS X
# "tar.gz" for all other platforms
+# additionally "dmg" on Mac OS X
#############################################
sub create_package
{
- my ( $installdir, $packagename, $allvariables, $includepatharrayref, $languagestringref ) = @_;
+ my ( $installdir, $archivedir, $packagename, $allvariables, $includepatharrayref, $languagestringref, $format ) = @_;
+
+ installer::logger::print_message( "... creating $installer::globals::packageformat file ...\n" );
+ installer::logger::include_header_into_logfile("Creating $installer::globals::packageformat file:");
# moving dir into temporary directory
my $pid = $$; # process id
@@ -372,9 +375,9 @@ sub create_package
installer::systemactions::rename_directory($installdir, $tempdir);
# creating new directory with original name
- installer::systemactions::create_directory($installdir);
+ installer::systemactions::create_directory($archivedir);
- my $archive = $installdir . $installer::globals::separator . $packagename . $installer::globals::archiveformat;
+ my $archive = $archivedir . $installer::globals::separator . $packagename . $format;
if ( $archive =~ /zip$/ )
{
@@ -391,7 +394,6 @@ sub create_package
}
elsif ( $archive =~ /dmg$/ )
{
- installer::worker::put_scpactions_into_installset("$tempdir/$packagename");
my $folder = (( -l "$tempdir/$packagename/Applications" ) or ( -l "$tempdir/$packagename/opt" )) ? $packagename : "\.";
if ( $allvariables->{'PACK_INSTALLED'} ) {
@@ -606,10 +608,22 @@ sub create_simple_package
}
}
+ # Work around Windows problems with long pathnames (see issue 50885) by
+ # putting the to-be-archived installation tree into the temp directory
+ # instead of the module output tree (unless LOCALINSTALLDIR dictates
+ # otherwise, anyway); can be removed once issue 50885 is fixed:
+ my $tempinstalldir = $installdir;
+ if ( $installer::globals::iswindowsbuild &&
+ $installer::globals::packageformat eq "archive" &&
+ !$installer::globals::localinstalldirset )
+ {
+ $tempinstalldir = File::Temp::tempdir;
+ }
+
# Creating subfolder in installdir, which shall become the root of package or zip file
my $subfolderdir = "";
- if ( $packagename ne "" ) { $subfolderdir = $installdir . $installer::globals::separator . $packagename; }
- else { $subfolderdir = $installdir; }
+ if ( $packagename ne "" ) { $subfolderdir = $tempinstalldir . $installer::globals::separator . $packagename; }
+ else { $subfolderdir = $tempinstalldir; }
if ( ! -d $subfolderdir ) { installer::systemactions::create_directory($subfolderdir); }
@@ -756,23 +770,19 @@ sub create_simple_package
installer::logger::include_header_into_logfile("Registering extensions:");
register_extensions($subfolderdir, $languagestringref);
- # Adding scpactions for mac installations sets, that use not dmg format. Without scpactions the
- # office does not start.
-
- if (( $installer::globals::packageformat eq "installed" ) && ( $installer::globals::compiler =~ /^unxmacx/ ))
+ if ( $installer::globals::compiler =~ /^unxmacx/ )
{
installer::worker::put_scpactions_into_installset("$installdir/$packagename");
}
# Creating archive file
- if (( $installer::globals::packageformat eq "archive" ) || ( $installer::globals::packageformat eq "dmg" ))
+ if ( $installer::globals::packageformat eq "archive" )
+ {
+ create_package($tempinstalldir, $installdir, $packagename, $allvariables, $includepatharrayref, $languagestringref, $installer::globals::archiveformat);
+ }
+ elsif ( $installer::globals::packageformat eq "dmg" )
{
- # creating a package
- # -> zip for Windows
- # -> tar.gz for all other platforms
- installer::logger::print_message( "... creating $installer::globals::packageformat file ...\n" );
- installer::logger::include_header_into_logfile("Creating $installer::globals::packageformat file:");
- create_package($installdir, $packagename, $allvariables, $includepatharrayref, $languagestringref);
+ create_package($installdir, $installdir, $packagename, $allvariables, $includepatharrayref, $languagestringref, ".dmg");
}
# Analyzing the log file
diff --git a/solenv/bin/modules/installer/windows/registry.pm b/solenv/bin/modules/installer/windows/registry.pm
index 16174750d178..f2edd8d0e830 100644
--- a/solenv/bin/modules/installer/windows/registry.pm
+++ b/solenv/bin/modules/installer/windows/registry.pm
@@ -387,7 +387,7 @@ sub create_registry_table
$registrytablename = $basedir . $installer::globals::separator . "Reg64.idt" . "." . $onelanguage;
installer::files::save_file($registrytablename ,\@reg64table );
- my $infoline = "Created idt file: $registrytablename\n";
+ $infoline = "Created idt file: $registrytablename\n";
push(@installer::globals::logfileinfo, $infoline);
}
}
diff --git a/solenv/bin/receditor b/solenv/bin/receditor
index 1011aeb5d826..1b4046010485 100755
--- a/solenv/bin/receditor
+++ b/solenv/bin/receditor
@@ -3,4 +3,4 @@ if [ x${SOLARENV}x = xx ]; then
echo No environment found, please use 'configure' or 'setsolar'
exit 1
fi
-exec java -DSOLARSRC=${SOLARSRC} -DWORK_STAMP=${WORK_STAMP} -DUSE_SHELL= -jar ${SOLARVER}/${INPATH}/bin${UPDMINOREXT}/receditor.jar
+exec java -DSOLARSRC=${SOLARSRC} -DWORK_STAMP=${WORK_STAMP} -jar ${SOLARVER}/${INPATH}/bin${UPDMINOREXT}/receditor.jar
diff --git a/solenv/bin/reportErrorCheckAPI.btm b/solenv/bin/reportErrorCheckAPI.btm
deleted file mode 100755
index 4340ad347259..000000000000
--- a/solenv/bin/reportErrorCheckAPI.btm
+++ /dev/null
@@ -1,17 +0,0 @@
-set ERRORCODE=%1%
-iff exist %SOLARENV%/bin/cwstestresult.pl then
- iff %ERRORCODE% EQ 0 then
- set PT_STATUS=%2%
- else
- iff %ERRORCODE% EQ 1 then
- set PT_STATUS=failed
- else
- set PT_STATUS=incomplete
- endiff
- endiff
-
- set CWSENV=Windows
- call perl5 %SOLARENV%/bin/cwstestresult.pl -c %CWS_WORK_STAMP% -n CWSCheckAPI -p %CWSENV% %PT_STATUS%
-else
- echo "No cwstestresult.pl found."
-endiff
diff --git a/solenv/bin/subsequenttests b/solenv/bin/subsequenttests
new file mode 100755
index 000000000000..f0d86db89101
--- /dev/null
+++ b/solenv/bin/subsequenttests
@@ -0,0 +1,131 @@
+eval 'exec "$PERL" -Sw "$0" "$@"'
+ if 0;
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#***********************************************************************/
+
+use lib("$ENV{SOLARENV}/bin/modules");
+use SourceConfig;
+
+my $max_running = 1;
+while (@ARGV) {
+ my $arg = shift(@ARGV);
+ if ($arg =~ /^-P([1-9]\d*)$/) {
+ $max_running = $1;
+ } elsif ($arg eq '--') {
+ last;
+ } else {
+ print STDERR "unknown argument \"$arg\"\n";
+ print STDERR "usage: $0 [-P<n>] [-- <args>]\n";
+ print STDERR " -P<n> number of parallel dmake invocations\n";
+ print STDERR " <args> are passed to dmake invocations\n";
+ exit(1);
+ }
+}
+
+my @testpaths = ();
+my $sc = SourceConfig->new();
+my $module;
+foreach $module ($sc->get_active_modules()) {
+ my $buildlst = $sc->get_module_build_list($module);
+ next unless defined($buildlst);
+ my %deps = ();
+ open(BUILDLST, $buildlst) or die("cannot open $buildlst");
+ while (<BUILDLST>) {
+ next unless
+ /^\s*\w+\s+(\S+)\s+nmake\s+-\s+all\s+(\S+)(\s+(:?\S+\s+)*)NULL\s*$/;
+ my ($dir, $id, $ids) = ($1, $2, $3);
+ $dir =~ s|\\|/|g;
+ $dir =~ s|^[^/]+||;
+ my $path = $sc->get_module_path($module) . $dir;
+ my $makefile = $path . '/makefile.mk';
+ open(MAKEFILE, $makefile) or die("cannot open $makefile");
+ while (<MAKEFILE>) {
+ if (/\bOOO_SUBSEQUENT_TESTS\b/) {
+ push(@testpaths, $path);
+ $deps{$id} = $ids;
+ last;
+ }
+ }
+ close(MAKEFILE);
+ }
+ close(BUILDLST);
+ my $id1;
+ foreach $id1 (keys(%deps)) {
+ my ($id2, $ids);
+ while (($id2, $ids) = each(%deps)) {
+ $ids !~ /\s\Q$id1\E\s/ or die("$module: $id2 depends on $id1");
+ }
+ }
+}
+
+my $cmd = 'dmake';
+foreach (@ARGV) {
+ s/'/'\''/g;
+ $cmd .= " '" . $_ . "'";
+}
+$cmd .= ' 2>&1 |';
+
+my %pids = ();
+my @failedpaths = ();
+my $running = 0;
+my $counter = 0;
+while (@testpaths || $running > 0) {
+ while (@testpaths && $running < $max_running) {
+ my $testpath = shift(@testpaths);
+ ++$counter;
+ print("$counter: make $testpath\n");
+ my $pid = fork();
+ defined($pid) or die("$counter: $!");
+ if ($pid == 0) {
+ chdir($testpath) or die("$counter: $!");
+ $ENV{'OOO_SUBSEQUENT_TESTS'} = 'x';
+ open(OUTPUT, $cmd) or die("$counter: $!");
+ while (<OUTPUT>) {
+ s/\r?\n$//;
+ print("$counter: $_\n");
+ }
+ close(OUTPUT);
+ exit($? == 0 ? 0 : 1);
+ }
+ $pids{$pid} = $testpath;
+ ++$running;
+ }
+ my $pid = wait();
+ $pid != -1 or die($!);
+ my $testpath = delete($pids{$pid});
+ defined($testpath) or die("unmatched PID $pid");
+ if ($? != 0) {
+ @testpaths = ();
+ push(@failedpaths, $testpath);
+ }
+ --$running;
+}
+my $failedpath;
+foreach $failedpath (@failedpaths) {
+ print STDERR "failed in $failedpath\n";
+}
+exit(scalar(@failedpaths) == 0 ? 0 : 1);
diff --git a/solenv/config/sdev300.ini b/solenv/config/sdev300.ini
index 735a52d589dc..878ae45c99f0 100644
--- a/solenv/config/sdev300.ini
+++ b/solenv/config/sdev300.ini
@@ -8,7 +8,7 @@ common
BIG_SVX TRUE
BMP_WRITES_FLAG TRUE
BUILD_SPECIAL TRUE
- BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL HYPHEN JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX NSS L10N GRAPHITE MYSQLCPPCONN MYSQLC
+ BUILD_TYPE SO OOo EXT BINFILTER BITSTREAM_VERA_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL HYPHEN JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM QADEVOOO ODK MSFONTEXTRACT MATHMLDTD BOOST EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX NSS L10N GRAPHITE MYSQLCPPCONN MYSQLC CPPUNIT
common_build TRUE
COMMON_OUTDIR common
CONFIG_PROJECT config_office
@@ -36,6 +36,7 @@ common
NEW_JAR_PACK TRUE
NO_REC_RES TRUE
OOODMAKEMODE YES
+ OOO_SHELL /bin/bash
PCLEAN_PATH xxx
RES_ENUS TRUE
RES_GER TRUE
@@ -105,11 +106,6 @@ common
{
LU_RFLAG r_only
}
- shell
- {
- SHELL %STAR_USE_SHELL%
- USE_SHELL %STAR_USE_SHELL%
- }
tmp
{
SOL_TMP %SOL_TMP_DIR%
@@ -126,7 +122,7 @@ common
SRC_ROOT
UPDATER
}
- order minorext common:2 common:3 pro:0 pro:1 common common:0 cwsname common:1 shell tmp crashdump maxproc hg r_only nosource
+ order minorext common:2 common:3 pro:0 pro:1 common common:0 cwsname common:1 tmp crashdump maxproc hg r_only nosource
reset
{
ALT_L10N_MODULE
@@ -170,7 +166,6 @@ common
pro
maxproc MAXPROCESS
r_only
- shell STAR_USE_SHELL
tmp SOL_TMP_DIR
verbose VERBOSE
}
@@ -205,6 +200,7 @@ finish
BISON_HAIRY %SOLARROOT%$/btools$/bison.hairy
BISON_SIMPLE %SOLARROOT%$/btools$/bison.simple
DPKG %BUILD_TOOLS%$/dpkg
+ OOO_JUNIT_JAR %SOLARROOT%$/btools$/junit-4.8.1.jar
PATH .$:$cp(%SOLARENV%$/bin)$:$cp(%COMMON_BUILD_TOOLS%)$:$cp(%BUILD_TOOLS%$/dmake412)$:$cp(%BUILD_TOOLS%)$:$cp(%COMMON_ENV_TOOLS%)$:$cp(%ENV_TOOLS%)$:$cp(%COMPATH%$/bin)$:$cp(%JDKPATH%)$:$cp(%PATHEXTRA%)$:%PATH%
PATH_SEPERATOR $;
SOLARINC -I%SOLAR_STLPATH% -I%SOLARVERSION%$/%INPATH%$/inc%UPDMINOREXT%$/external %SOLARINCLUDES%
@@ -212,6 +208,7 @@ finish
SOLARSRC %SRC_ROOT%
SOURCE_ROOT_DIR $expand(%SOLARSRC%/..)
ANT_HOME %COMMON_BUILD_TOOLS%$/apache-ant-1.7.1
+ DBGSV_INIT %SOLARENV%/bin/dbgsv.ini
}
common_2:0 IF X%CWS_WORK_STAMP%X == XX
{
@@ -221,6 +218,7 @@ finish
{
*o: cd %SOLARSRC%
ALT_L10N_MODULE $expand(%SOLARSRC%/..)/sun/l10n_so
+ TARFILE_LOCATION %SOURCE_ROOT_DIR%/ext_sources
}
common_jre:0 IF %JREPATH% ==
{
@@ -280,12 +278,14 @@ finish
CLASSPATH .$;%JAVA_HOME%$/jre$/lib$/rt.jar
ILIB %LIB%$;%JDKLIB%
LIB %LIB%$;%JDKLIB%
+ JAVA_TARGET_FLAG -target 1.4
}
jdk15
{
CLASSPATH .$;%JAVA_HOME%$/jre$/lib$/rt.jar
ILIB %LIB%$;%JDKLIB%
LIB %LIB%$;%JDKLIB%
+ JAVA_TARGET_FLAG -target 1.5
}
l10n
{
@@ -297,6 +297,7 @@ finish
CLASSPATH .$;%JAVA_HOME%$/jre$/lib$/rt.jar
ILIB %LIB%$;%JDKLIB%
LIB %LIB%$;%JDKLIB%
+ JAVA_TARGET_FLAG -target 1.6
}
}
order cwsname:0 cwsname:1 cwsname:2 common_0:0 common_0:1 common_0:2 common_0:3 jdk14 jdk15 ojdk16 common_1 common_2:0 l10n common_jre:0 common_jre:1 cax cap common_a
@@ -498,6 +499,7 @@ unxfbsdi
400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE
600: umask 002
800: rehash
+ 820: wrapfetch.sh
850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR
851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2
900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR
@@ -510,6 +512,7 @@ unxfbsdi
415: fi
600: umask 002
800: hash -r
+ 820: wrapfetch.sh
850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then
851: export SO_GEN_ERROR
852: fi
@@ -769,6 +772,7 @@ unxlngi6
400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE
600: umask 002
800: rehash
+ 820: wrapfetch.sh
850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR
851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2
900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR
@@ -781,6 +785,7 @@ unxlngi6
415: fi
600: umask 002
800: hash -r
+ 820: wrapfetch.sh
850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then
851: export SO_GEN_ERROR
852: fi
@@ -1043,6 +1048,7 @@ unxlngx6
400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE
600: umask 002
800: rehash
+ 820: wrapfetch.sh
850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR
851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2
900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR
@@ -1055,6 +1061,7 @@ unxlngx6
415: fi
600: umask 002
800: hash -r
+ 820: wrapfetch.sh
850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then
851: export SO_GEN_ERROR
852: fi
@@ -1313,6 +1320,7 @@ unxmacxi
400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE
600: umask 002
800: rehash
+ 820: wrapfetch.sh
850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR
851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2
900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR
@@ -1325,6 +1333,7 @@ unxmacxi
415: fi
600: umask 002
800: hash -r
+ 820: wrapfetch.sh
850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then
851: export SO_GEN_ERROR
852: fi
@@ -1567,6 +1576,7 @@ unxsoli4
400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE
600: umask 002
800: rehash
+ 820: wrapfetch.sh
850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR
851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2
900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR
@@ -1579,6 +1589,7 @@ unxsoli4
415: fi
600: umask 002
800: hash -r
+ 820: wrapfetch.sh
850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then
851: export SO_GEN_ERROR
852: fi
@@ -1830,6 +1841,7 @@ unxsols4
400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE
600: umask 002
800: rehash
+ 820: wrapfetch.sh
850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR
851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2
900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR
@@ -1842,6 +1854,7 @@ unxsols4
415: fi
600: umask 002
800: hash -r
+ 820: wrapfetch.sh
850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then
851: export SO_GEN_ERROR
852: fi
@@ -2063,6 +2076,7 @@ unxsolu4
400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE
600: umask 002
800: rehash
+ 820: wrapfetch.sh
850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR
851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2
900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR
@@ -2075,6 +2089,7 @@ unxsolu4
415: fi
600: umask 002
800: hash -r
+ 820: wrapfetch.sh
850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then
851: export SO_GEN_ERROR
852: fi
@@ -2199,7 +2214,6 @@ unxubti8
SOLAR_PLUGIN TRUE
SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP%
SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%
- USE_SHELL tcsh
VBA_EXTENSION NO
WITH_LANG en-US de
XAU_LIBS -lXau
@@ -2279,10 +2293,6 @@ unxubti8
{
PROSWITCH -DPRODUCT
}
- shell
- {
- USE_SHELL STAR_USE_SHELL
- }
sourceroot:0 IF X%SOURCE_ROOT%X != XX
{
SOLAR_SOURCE_ROOT %SOURCE_ROOT%
@@ -2318,6 +2328,7 @@ unxubti8
400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE
600: umask 002
800: rehash
+ 820: wrapfetch.sh
}
sh
{
@@ -2326,7 +2337,7 @@ unxubti8
415: fi
600: umask 002
800: hash -r
- 882: fi
+ 820: wrapfetch.sh
}
}
switches
@@ -2423,7 +2434,6 @@ wntgcci1
{
SOLAR_ENV_ROOT r:
SOLAR_SOURCE_ROOT o:
- USE_SHELL bash
}
common1
{
@@ -2529,10 +2539,6 @@ wntgcci1
{
PSDK %STAR_PSDK%
}
- shell
- {
- USE_SHELL STAR_USE_SHELL
- }
sourceroot:0 if X%SOURCE_ROOT%X != XX
{
SOLAR_SOURCE_ROOT %SOURCE_ROOT%
@@ -2610,7 +2616,6 @@ wntgcci1
l10n L10N_framework
pro
psdk STAR_PSDK
- shell STAR_USE_SHELL
sourceroot
}
}
@@ -2699,7 +2704,6 @@ wntmsci11
BS_ROOT n:
SOLAR_ENV_ROOT r:
SOLAR_SOURCE_ROOT o:
- USE_SHELL 4nt
}
common1
{
@@ -2709,6 +2713,7 @@ wntmsci11
DSDK %SOLAR_ENV_ROOT%$/msvc8p$/DirectXSDK
FSDK %SOLAR_ENV_ROOT%$/msvc8p$/Sdk$/v2.0
PERL %SOLAR_ENV_ROOT%$/btw$/perl$/bin$/perl
+ PKGFORMAT msi
PSDK %SOLAR_ENV_ROOT%$/msvc8p$/PlatformSDK
SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc8p$/Common7$/ide
SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv
@@ -2808,10 +2813,6 @@ wntmsci11
{
PSDK %STAR_PSDK%
}
- shell
- {
- use_shell STAR_USE_SHELL
- }
sourceroot:0 if X%SOURCE_ROOT%X != XX
{
SOLAR_SOURCE_ROOT %SOURCE_ROOT%
@@ -2864,7 +2865,6 @@ wntmsci11
l10n L10N_framework
pro
psdk STAR_PSDK
- shell STAR_USE_SHELL
sourceroot
}
}
@@ -2973,8 +2973,6 @@ wntmsci12
BS_ROOT n:
SOLAR_ENV_ROOT r:
SOLAR_SOURCE_ROOT o:
- USE_SHELL bash
- STAR_USE_SHELL bash
BTOOLDIR %WORK_STAMP%$/cygtools
PERLDIR btw$/%WORK_STAMP%$/cygtools$/perl
}
@@ -2992,6 +2990,7 @@ wntmsci12
F20SDK %SOLAR_ENV_ROOT%$/msvc9p$/Sdk$/v2.0
NSIS_PATH %SOLAR_ENV_ROOT%$/NSIS_242_unicode
PERL %SOLAR_ENV_ROOT%$/%PERLDIR%
+ PKGFORMAT msi
PSDK %SOLAR_ENV_ROOT%$/msvc9p$/PlatformSDK$/V6.1
SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc9p$/Common7$/ide
SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv
@@ -3174,6 +3173,7 @@ wntmsci12
415: fi
600: umask 002
800: hash -r
+ 820: wrapfetch.sh
850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then
851: export SO_GEN_ERROR
852: fi
@@ -3206,7 +3206,6 @@ wntmsci12
ojdk16path
pro
psdk STAR_PSDK
- shell STAR_USE_SHELL
sourceroot
tmp SOL_TMP_DIR
}
@@ -3316,8 +3315,6 @@ wntmsci13
BS_ROOT n:
SOLAR_ENV_ROOT r:
SOLAR_SOURCE_ROOT o:
- USE_SHELL bash
- STAR_USE_SHELL bash
BTOOLDIR %WORK_STAMP%$/cygtools
PERLDIR btw$/%WORK_STAMP%$/cygtools$/perl
}
@@ -3335,6 +3332,7 @@ wntmsci13
F20SDK %SOLAR_ENV_ROOT%$/msvc9p$/Sdk$/v2.0
NSIS_PATH %SOLAR_ENV_ROOT%$/NSIS_242_unicode
PERL %SOLAR_ENV_ROOT%$/%PERLDIR%
+ PKGFORMAT msi
PSDK %SOLAR_ENV_ROOT%$/msvc9p$/PlatformSDK$/V6.1
SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc9p$/Common7$/ide
SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv
@@ -3516,6 +3514,7 @@ wntmsci13
415: fi
600: umask 002
800: hash -r
+ 820: wrapfetch.sh
850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then
851: export SO_GEN_ERROR
852: fi
@@ -3548,7 +3547,6 @@ wntmsci13
ojdk16path
pro
psdk STAR_PSDK
- shell STAR_USE_SHELL
sourceroot
tmp SOL_TMP_DIR
}
diff --git a/solenv/config/ssolar.cmn b/solenv/config/ssolar.cmn
index d4b7ee01ee19..54eda38b47f9 100644
--- a/solenv/config/ssolar.cmn
+++ b/solenv/config/ssolar.cmn
@@ -30,6 +30,7 @@ common
BIG_SVX
BIG_TOOLS
BISON_HAIRY
+ BISON_PKGDATADIR
BISON_SIMPLE
BMP_WRITES_FLAG
bndchk
@@ -100,6 +101,7 @@ common
ENABLE_NAS
ENABLE_PCH
SYSTEM_CURL
+ SYSTEM_CPPUNIT
SYSTEM_FREETYPE
FREETYPE_CFLAGS
FREETYPE_LIBS
@@ -160,6 +162,8 @@ common
ODBCPATH
ODBCVER
OLD_CHAOS
+ OOO_JUNIT_JAR
+ OOO_SHELL
PACKMS
PCLEAN_PATH
PKGCONFIG_ROOT
@@ -220,6 +224,7 @@ common
STLPORT4
STLPORT_VER
SYSPATH
+ TARFILE_LOCATION
TF_CAPELLA
TF_CFG
TF_CFGDATA
@@ -241,7 +246,6 @@ common
USE_MAPFILES
USE_NEW_SDK
USE_PCH
- USE_SHELL
USE_SYSTEM_STL
use_cygcp
use_shl_versions
@@ -271,6 +275,7 @@ common
HAVE_LD_HASH_STYLE
JAVACOMPILER
JAVADOC
+ JAVAIFLAGS
JDK
NO_HIDS
PAM_LINK
@@ -281,7 +286,6 @@ common
SOLAR_PLUGIN
URE_BOOTSTRAP
USE_FT_EMBOLDEN
- USE_SHELL
USE_XINERAMA
VBA_EXTENSION
XINERAMA_LINK
diff --git a/solenv/inc/_cppunit.mk b/solenv/inc/_cppunit.mk
index 7aab2b0cdb13..8d9e45d33331 100644
--- a/solenv/inc/_cppunit.mk
+++ b/solenv/inc/_cppunit.mk
@@ -1,290 +1,120 @@
# unroll begin
# ---- create the test libraries ------------------------------------
-TEST1LIB=$(SHL1TARGETN)
-.IF "$(TESTOPT)"==""
- TEST1OPT="-jobexclude"
- TEST1OPT+=$(SHL1TARGET).xsce
- TEST1OPT+="-sf"
- TEST1OPT+=$(mktmp "foo")
- TEST1OPT+="-onlyerrors"
- TEST1OPT+=" "
- TEST1OPT+=$(TESTOPTADD)
-.ELSE
- TEST1OPT=$(TESTOPT)
-.ENDIF
-
.IF "$(SHL1TARGET)"!=""
-test : test1
-test1: ALLTAR
+ALLTAR : test1
+test1 .PHONY : $(SHL1TARGETN)
@echo ----------------------------------------------------------
- @echo - start unit test \#1 on library $(TEST1LIB)
+ @echo - start unit test \#1 on library $(SHL1TARGETN)
@echo ----------------------------------------------------------
-.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress:
- `which testshl2` $(TEST1LIB) $(TEST1OPT)
-.ELSE
- testshl2 $(TEST1LIB) $(TEST1OPT)
-.ENDIF
+ $(CPPUNITTESTER) $(SHL1TARGETN)
.ENDIF
# unroll begin
# ---- create the test libraries ------------------------------------
-TEST2LIB=$(SHL2TARGETN)
-.IF "$(TESTOPT)"==""
- TEST2OPT="-jobexclude"
- TEST2OPT+=$(SHL2TARGET).xsce
- TEST2OPT+="-sf"
- TEST2OPT+=$(mktmp "foo")
- TEST2OPT+="-onlyerrors"
- TEST2OPT+=" "
- TEST2OPT+=$(TESTOPTADD)
-.ELSE
- TEST2OPT=$(TESTOPT)
-.ENDIF
-
.IF "$(SHL2TARGET)"!=""
-test : test2
-test2: ALLTAR
+ALLTAR : test2
+test2 .PHONY : $(SHL2TARGETN)
@echo ----------------------------------------------------------
- @echo - start unit test \#2 on library $(TEST2LIB)
+ @echo - start unit test \#2 on library $(SHL2TARGETN)
@echo ----------------------------------------------------------
-.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress:
- `which testshl2` $(TEST2LIB) $(TEST2OPT)
-.ELSE
- testshl2 $(TEST2LIB) $(TEST2OPT)
-.ENDIF
+ $(CPPUNITTESTER) $(SHL2TARGETN)
.ENDIF
# unroll begin
# ---- create the test libraries ------------------------------------
-TEST3LIB=$(SHL3TARGETN)
-.IF "$(TESTOPT)"==""
- TEST3OPT="-jobexclude"
- TEST3OPT+=$(SHL3TARGET).xsce
- TEST3OPT+="-sf"
- TEST3OPT+=$(mktmp "foo")
- TEST3OPT+="-onlyerrors"
- TEST3OPT+=" "
- TEST3OPT+=$(TESTOPTADD)
-.ELSE
- TEST3OPT=$(TESTOPT)
-.ENDIF
-
.IF "$(SHL3TARGET)"!=""
-test : test3
-test3: ALLTAR
+ALLTAR : test3
+test3 .PHONY : $(SHL3TARGETN)
@echo ----------------------------------------------------------
- @echo - start unit test \#3 on library $(TEST3LIB)
+ @echo - start unit test \#3 on library $(SHL3TARGETN)
@echo ----------------------------------------------------------
-.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress:
- `which testshl2` $(TEST3LIB) $(TEST3OPT)
-.ELSE
- testshl2 $(TEST3LIB) $(TEST3OPT)
-.ENDIF
+ $(CPPUNITTESTER) $(SHL3TARGETN)
.ENDIF
# unroll begin
# ---- create the test libraries ------------------------------------
-TEST4LIB=$(SHL4TARGETN)
-.IF "$(TESTOPT)"==""
- TEST4OPT="-jobexclude"
- TEST4OPT+=$(SHL4TARGET).xsce
- TEST4OPT+="-sf"
- TEST4OPT+=$(mktmp "foo")
- TEST4OPT+="-onlyerrors"
- TEST4OPT+=" "
- TEST4OPT+=$(TESTOPTADD)
-.ELSE
- TEST4OPT=$(TESTOPT)
-.ENDIF
-
.IF "$(SHL4TARGET)"!=""
-test : test4
-test4: ALLTAR
+ALLTAR : test4
+test4 .PHONY : $(SHL4TARGETN)
@echo ----------------------------------------------------------
- @echo - start unit test \#4 on library $(TEST4LIB)
+ @echo - start unit test \#4 on library $(SHL4TARGETN)
@echo ----------------------------------------------------------
-.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress:
- `which testshl2` $(TEST4LIB) $(TEST4OPT)
-.ELSE
- testshl2 $(TEST4LIB) $(TEST4OPT)
-.ENDIF
+ $(CPPUNITTESTER) $(SHL4TARGETN)
.ENDIF
# unroll begin
# ---- create the test libraries ------------------------------------
-TEST5LIB=$(SHL5TARGETN)
-.IF "$(TESTOPT)"==""
- TEST5OPT="-jobexclude"
- TEST5OPT+=$(SHL5TARGET).xsce
- TEST5OPT+="-sf"
- TEST5OPT+=$(mktmp "foo")
- TEST5OPT+="-onlyerrors"
- TEST5OPT+=" "
- TEST5OPT+=$(TESTOPTADD)
-.ELSE
- TEST5OPT=$(TESTOPT)
-.ENDIF
-
.IF "$(SHL5TARGET)"!=""
-test : test5
-test5: ALLTAR
+ALLTAR : test5
+test5 .PHONY : $(SHL5TARGETN)
@echo ----------------------------------------------------------
- @echo - start unit test \#5 on library $(TEST5LIB)
+ @echo - start unit test \#5 on library $(SHL5TARGETN)
@echo ----------------------------------------------------------
-.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress:
- `which testshl2` $(TEST5LIB) $(TEST5OPT)
-.ELSE
- testshl2 $(TEST5LIB) $(TEST5OPT)
-.ENDIF
+ $(CPPUNITTESTER) $(SHL5TARGETN)
.ENDIF
# unroll begin
# ---- create the test libraries ------------------------------------
-TEST6LIB=$(SHL6TARGETN)
-.IF "$(TESTOPT)"==""
- TEST6OPT="-jobexclude"
- TEST6OPT+=$(SHL6TARGET).xsce
- TEST6OPT+="-sf"
- TEST6OPT+=$(mktmp "foo")
- TEST6OPT+="-onlyerrors"
- TEST6OPT+=" "
- TEST6OPT+=$(TESTOPTADD)
-.ELSE
- TEST6OPT=$(TESTOPT)
-.ENDIF
-
.IF "$(SHL6TARGET)"!=""
-test : test6
-test6: ALLTAR
+ALLTAR : test6
+test6 .PHONY : $(SHL6TARGETN)
@echo ----------------------------------------------------------
- @echo - start unit test \#6 on library $(TEST6LIB)
+ @echo - start unit test \#6 on library $(SHL6TARGETN)
@echo ----------------------------------------------------------
-.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress:
- `which testshl2` $(TEST6LIB) $(TEST6OPT)
-.ELSE
- testshl2 $(TEST6LIB) $(TEST6OPT)
-.ENDIF
+ $(CPPUNITTESTER) $(SHL6TARGETN)
.ENDIF
# unroll begin
# ---- create the test libraries ------------------------------------
-TEST7LIB=$(SHL7TARGETN)
-.IF "$(TESTOPT)"==""
- TEST7OPT="-jobexclude"
- TEST7OPT+=$(SHL7TARGET).xsce
- TEST7OPT+="-sf"
- TEST7OPT+=$(mktmp "foo")
- TEST7OPT+="-onlyerrors"
- TEST7OPT+=" "
- TEST7OPT+=$(TESTOPTADD)
-.ELSE
- TEST7OPT=$(TESTOPT)
-.ENDIF
-
.IF "$(SHL7TARGET)"!=""
-test : test7
-test7: ALLTAR
+ALLTAR : test7
+test7 .PHONY : $(SHL7TARGETN)
@echo ----------------------------------------------------------
- @echo - start unit test \#7 on library $(TEST7LIB)
+ @echo - start unit test \#7 on library $(SHL7TARGETN)
@echo ----------------------------------------------------------
-.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress:
- `which testshl2` $(TEST7LIB) $(TEST7OPT)
-.ELSE
- testshl2 $(TEST7LIB) $(TEST7OPT)
-.ENDIF
+ $(CPPUNITTESTER) $(SHL7TARGETN)
.ENDIF
# unroll begin
# ---- create the test libraries ------------------------------------
-TEST8LIB=$(SHL8TARGETN)
-.IF "$(TESTOPT)"==""
- TEST8OPT="-jobexclude"
- TEST8OPT+=$(SHL8TARGET).xsce
- TEST8OPT+="-sf"
- TEST8OPT+=$(mktmp "foo")
- TEST8OPT+="-onlyerrors"
- TEST8OPT+=" "
- TEST8OPT+=$(TESTOPTADD)
-.ELSE
- TEST8OPT=$(TESTOPT)
-.ENDIF
-
.IF "$(SHL8TARGET)"!=""
-test : test8
-test8: ALLTAR
+ALLTAR : test8
+test8 .PHONY : $(SHL8TARGETN)
@echo ----------------------------------------------------------
- @echo - start unit test \#8 on library $(TEST8LIB)
+ @echo - start unit test \#8 on library $(SHL8TARGETN)
@echo ----------------------------------------------------------
-.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress:
- `which testshl2` $(TEST8LIB) $(TEST8OPT)
-.ELSE
- testshl2 $(TEST8LIB) $(TEST8OPT)
-.ENDIF
+ $(CPPUNITTESTER) $(SHL8TARGETN)
.ENDIF
# unroll begin
# ---- create the test libraries ------------------------------------
-TEST9LIB=$(SHL9TARGETN)
-.IF "$(TESTOPT)"==""
- TEST9OPT="-jobexclude"
- TEST9OPT+=$(SHL9TARGET).xsce
- TEST9OPT+="-sf"
- TEST9OPT+=$(mktmp "foo")
- TEST9OPT+="-onlyerrors"
- TEST9OPT+=" "
- TEST9OPT+=$(TESTOPTADD)
-.ELSE
- TEST9OPT=$(TESTOPT)
-.ENDIF
-
.IF "$(SHL9TARGET)"!=""
-test : test9
-test9: ALLTAR
+ALLTAR : test9
+test9 .PHONY : $(SHL9TARGETN)
@echo ----------------------------------------------------------
- @echo - start unit test \#9 on library $(TEST9LIB)
+ @echo - start unit test \#9 on library $(SHL9TARGETN)
@echo ----------------------------------------------------------
-.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress:
- `which testshl2` $(TEST9LIB) $(TEST9OPT)
-.ELSE
- testshl2 $(TEST9LIB) $(TEST9OPT)
-.ENDIF
+ $(CPPUNITTESTER) $(SHL9TARGETN)
.ENDIF
# unroll begin
# ---- create the test libraries ------------------------------------
-TEST10LIB=$(SHL10TARGETN)
-.IF "$(TESTOPT)"==""
- TEST10OPT="-jobexclude"
- TEST10OPT+=$(SHL10TARGET).xsce
- TEST10OPT+="-sf"
- TEST10OPT+=$(mktmp "foo")
- TEST10OPT+="-onlyerrors"
- TEST10OPT+=" "
- TEST10OPT+=$(TESTOPTADD)
-.ELSE
- TEST10OPT=$(TESTOPT)
-.ENDIF
-
.IF "$(SHL10TARGET)"!=""
-test : test10
-test10: ALLTAR
+ALLTAR : test10
+test10 .PHONY : $(SHL10TARGETN)
@echo ----------------------------------------------------------
- @echo - start unit test \#10 on library $(TEST10LIB)
+ @echo - start unit test \#10 on library $(SHL10TARGETN)
@echo ----------------------------------------------------------
-.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress:
- `which testshl2` $(TEST10LIB) $(TEST10OPT)
-.ELSE
- testshl2 $(TEST10LIB) $(TEST10OPT)
-.ENDIF
+ $(CPPUNITTESTER) $(SHL10TARGETN)
.ENDIF
diff --git a/solenv/inc/_tg_shl.mk b/solenv/inc/_tg_shl.mk
index 93588874660f..3d91783988b9 100644
--- a/solenv/inc/_tg_shl.mk
+++ b/solenv/inc/_tg_shl.mk
@@ -143,7 +143,9 @@ SHL1VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL1VERSIONMAP)
$(USE_SHL1VERSIONMAP): $(SHL1OBJS) $(SHL1LIBS)
.ENDIF
-$(USE_SHL1VERSIONMAP): $(SHL1VERSIONMAP)
+# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
+# even if the $(AWK) part fails:
+$(USE_SHL1VERSIONMAP) .ERRREMOVE: $(SHL1VERSIONMAP)
@@-$(RM) -f $@
# The following files will only be generated and needed on Mac OS X as temporary files
# in order to generate exported symbols list out of Linux/Solaris map files
@@ -693,7 +695,9 @@ SHL2VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL2VERSIONMAP)
$(USE_SHL2VERSIONMAP): $(SHL2OBJS) $(SHL2LIBS)
.ENDIF
-$(USE_SHL2VERSIONMAP): $(SHL2VERSIONMAP)
+# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
+# even if the $(AWK) part fails:
+$(USE_SHL2VERSIONMAP) .ERRREMOVE: $(SHL2VERSIONMAP)
@@-$(RM) -f $@
# The following files will only be generated and needed on Mac OS X as temporary files
# in order to generate exported symbols list out of Linux/Solaris map files
@@ -1243,7 +1247,9 @@ SHL3VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL3VERSIONMAP)
$(USE_SHL3VERSIONMAP): $(SHL3OBJS) $(SHL3LIBS)
.ENDIF
-$(USE_SHL3VERSIONMAP): $(SHL3VERSIONMAP)
+# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
+# even if the $(AWK) part fails:
+$(USE_SHL3VERSIONMAP) .ERRREMOVE: $(SHL3VERSIONMAP)
@@-$(RM) -f $@
# The following files will only be generated and needed on Mac OS X as temporary files
# in order to generate exported symbols list out of Linux/Solaris map files
@@ -1793,7 +1799,9 @@ SHL4VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL4VERSIONMAP)
$(USE_SHL4VERSIONMAP): $(SHL4OBJS) $(SHL4LIBS)
.ENDIF
-$(USE_SHL4VERSIONMAP): $(SHL4VERSIONMAP)
+# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
+# even if the $(AWK) part fails:
+$(USE_SHL4VERSIONMAP) .ERRREMOVE: $(SHL4VERSIONMAP)
@@-$(RM) -f $@
# The following files will only be generated and needed on Mac OS X as temporary files
# in order to generate exported symbols list out of Linux/Solaris map files
@@ -2343,7 +2351,9 @@ SHL5VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL5VERSIONMAP)
$(USE_SHL5VERSIONMAP): $(SHL5OBJS) $(SHL5LIBS)
.ENDIF
-$(USE_SHL5VERSIONMAP): $(SHL5VERSIONMAP)
+# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
+# even if the $(AWK) part fails:
+$(USE_SHL5VERSIONMAP) .ERRREMOVE: $(SHL5VERSIONMAP)
@@-$(RM) -f $@
# The following files will only be generated and needed on Mac OS X as temporary files
# in order to generate exported symbols list out of Linux/Solaris map files
@@ -2893,7 +2903,9 @@ SHL6VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL6VERSIONMAP)
$(USE_SHL6VERSIONMAP): $(SHL6OBJS) $(SHL6LIBS)
.ENDIF
-$(USE_SHL6VERSIONMAP): $(SHL6VERSIONMAP)
+# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
+# even if the $(AWK) part fails:
+$(USE_SHL6VERSIONMAP) .ERRREMOVE: $(SHL6VERSIONMAP)
@@-$(RM) -f $@
# The following files will only be generated and needed on Mac OS X as temporary files
# in order to generate exported symbols list out of Linux/Solaris map files
@@ -3443,7 +3455,9 @@ SHL7VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL7VERSIONMAP)
$(USE_SHL7VERSIONMAP): $(SHL7OBJS) $(SHL7LIBS)
.ENDIF
-$(USE_SHL7VERSIONMAP): $(SHL7VERSIONMAP)
+# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
+# even if the $(AWK) part fails:
+$(USE_SHL7VERSIONMAP) .ERRREMOVE: $(SHL7VERSIONMAP)
@@-$(RM) -f $@
# The following files will only be generated and needed on Mac OS X as temporary files
# in order to generate exported symbols list out of Linux/Solaris map files
@@ -3993,7 +4007,9 @@ SHL8VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL8VERSIONMAP)
$(USE_SHL8VERSIONMAP): $(SHL8OBJS) $(SHL8LIBS)
.ENDIF
-$(USE_SHL8VERSIONMAP): $(SHL8VERSIONMAP)
+# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
+# even if the $(AWK) part fails:
+$(USE_SHL8VERSIONMAP) .ERRREMOVE: $(SHL8VERSIONMAP)
@@-$(RM) -f $@
# The following files will only be generated and needed on Mac OS X as temporary files
# in order to generate exported symbols list out of Linux/Solaris map files
@@ -4543,7 +4559,9 @@ SHL9VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL9VERSIONMAP)
$(USE_SHL9VERSIONMAP): $(SHL9OBJS) $(SHL9LIBS)
.ENDIF
-$(USE_SHL9VERSIONMAP): $(SHL9VERSIONMAP)
+# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
+# even if the $(AWK) part fails:
+$(USE_SHL9VERSIONMAP) .ERRREMOVE: $(SHL9VERSIONMAP)
@@-$(RM) -f $@
# The following files will only be generated and needed on Mac OS X as temporary files
# in order to generate exported symbols list out of Linux/Solaris map files
@@ -5093,7 +5111,9 @@ SHL10VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL10VERSIONMAP)
$(USE_SHL10VERSIONMAP): $(SHL10OBJS) $(SHL10LIBS)
.ENDIF
-$(USE_SHL10VERSIONMAP): $(SHL10VERSIONMAP)
+# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
+# even if the $(AWK) part fails:
+$(USE_SHL10VERSIONMAP) .ERRREMOVE: $(SHL10VERSIONMAP)
@@-$(RM) -f $@
# The following files will only be generated and needed on Mac OS X as temporary files
# in order to generate exported symbols list out of Linux/Solaris map files
diff --git a/solenv/inc/cppunit.mk b/solenv/inc/cppunit.mk
index 0659e68adad7..2173f1a9ff9a 100644
--- a/solenv/inc/cppunit.mk
+++ b/solenv/inc/cppunit.mk
@@ -27,15 +27,12 @@
# Helper makefile additional, to support
# dmake test
-# for testshl2 (cppunit testing)
+# for cppunittester (cppunit testing)
# for simple start all generated libraries:
# dmake test
#
# for library 1 & 2:
# or dmake test1 test2
-#
-# for library 2 with additional options to the testshl2
-# dmake test2 TESTOPT="-dntsf"
# This file have to be unroll by
# cat cppunit.mk | mkunroll >_cppunit.mk
@@ -43,38 +40,17 @@
# $(TNR) is the number
# $(SHL$(TNR)TARGETN) is the same like $(OUT)/bin/$(SHL1TARGET) for every number, within unix, "bin" is replaced by "lib"
-#.IF "$(TESTOPT)"==""
-# TESTOPT="-onlyerrors"
-#.ENDIF
-
################################################################################
# unroll begin
# ---- create the test libraries ------------------------------------
-TEST$(TNR)LIB=$(SHL$(TNR)TARGETN)
-.IF "$(TESTOPT)"==""
- TEST$(TNR)OPT="-jobexclude"
- TEST$(TNR)OPT+=$(SHL$(TNR)TARGET).xsce
- TEST$(TNR)OPT+="-sf"
- TEST$(TNR)OPT+=$(mktmp "foo")
- TEST$(TNR)OPT+="-onlyerrors"
- TEST$(TNR)OPT+=" "
- TEST$(TNR)OPT+=$(TESTOPTADD)
-.ELSE
- TEST$(TNR)OPT=$(TESTOPT)
-.ENDIF
-
.IF "$(SHL$(TNR)TARGET)"!=""
-test : test$(TNR)
-test$(TNR): ALLTAR
+ALLTAR : test$(TNR)
+test$(TNR) .PHONY : $(SHL$(TNR)TARGETN)
@echo ----------------------------------------------------------
- @echo - start unit test \#$(TNR) on library $(TEST$(TNR)LIB)
+ @echo - start unit test \#$(TNR) on library $(SHL$(TNR)TARGETN)
@echo ----------------------------------------------------------
-.IF "$(OS)" == "LINUX" # full path needed by osl_getModuleURLFromAddress:
- `which testshl2` $(TEST$(TNR)LIB) $(TEST$(TNR)OPT)
-.ELSE
- testshl2 $(TEST$(TNR)LIB) $(TEST$(TNR)OPT)
-.ENDIF
+ $(CPPUNITTESTER) $(SHL$(TNR)TARGETN)
.ENDIF
# unroll end
diff --git a/solenv/inc/installationtest.mk b/solenv/inc/installationtest.mk
new file mode 100644
index 000000000000..5e16759592cd
--- /dev/null
+++ b/solenv/inc/installationtest.mk
@@ -0,0 +1,122 @@
+#*************************************************************************
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General 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 "$(OS)" == "WNT"
+my_file = file:///
+.ELSE
+my_file = file://
+.END
+
+# The following conditional is an approximation of: UPDATER set to YES and
+# SHIPDRIVE set and CWS_WORK_STAMP not set and either SOL_TMP not set or
+# SOLARENV set to a pathname of which SOL_TMP is not a prefix:
+.IF "$(UPDATER)" == "YES" && "$(SHIPDRIVE)" != "" && \
+ "$(CWS_WORK_STAMP)" == "" && "$(SOLARENV:s/$(SOL_TMP)//" == "$(SOLARENV)"
+my_instsets = $(shell ls -dt \
+ $(SHIPDRIVE)/$(INPATH)/OpenOffice/archive/$(WORK_STAMP)_$(LAST_MINOR)_native_packed-*_$(defaultlangiso).$(BUILD))
+installationtest_instset = $(my_instsets:1)
+.ELSE
+installationtest_instset = \
+ $(SOLARSRC)/instsetoo_native/$(INPATH)/OpenOffice/archive/install/$(defaultlangiso)
+.END
+
+.IF "$(OS)" == "WNT"
+installationtest_instpath = `cat $(MISC)/$(TARGET)/installation.flag`
+.ELSE
+installationtest_instpath = $(SOLARVERSION)/$(INPATH)/installation$(UPDMINOREXT)
+.END
+
+.IF "$(OS)" == "MACOSX"
+my_soffice = $(installationtest_instpath)/opt/OpenOffice.org.app/Contents/MacOS/soffice
+.ELIF "$(OS)" == "WNT"
+my_soffice = \
+ $(installationtest_instpath)'/opt/OpenOffice.org 3/program/soffice.exe'
+.ELSE
+my_soffice = $(installationtest_instpath)/opt/openoffice.org3/program/soffice
+.END
+
+.IF "$(OOO_LIBRARY_PATH_VAR)" != ""
+my_cppenv = \
+ -env:arg-env=$(OOO_LIBRARY_PATH_VAR)"$${{$(OOO_LIBRARY_PATH_VAR)+=$$$(OOO_LIBRARY_PATH_VAR)}}"
+my_javaenv = \
+ -Dorg.openoffice.test.arg.env=$(OOO_LIBRARY_PATH_VAR)"$${{$(OOO_LIBRARY_PATH_VAR)+=$$$(OOO_LIBRARY_PATH_VAR)}}"
+.END
+
+# Work around Windows problems with long pathnames (see issue 50885) by
+# installing into the temp directory instead of the module output tree (in which
+# case $(TARGET).installation.flag contains the path to the temp installation,
+# which is removed after smoketest); can be removed once issue 50885 is fixed;
+# on other platforms, a single installation to solver is created in
+# smoketestoo_native:
+.IF "$(OS)" == "WNT"
+$(MISC)/$(TARGET)/installation.flag : $(shell \
+ ls $(installationtest_instset)/OOo_*_install_$(defaultlangiso).zip)
+ $(MKDIRHIER) $(@:d)
+ my_tmp=$$(cygpath -m $$(mktemp -dt ooosmoke.XXXXXX)) && \
+ unzip $(installationtest_instset)/OOo_*_install_$(defaultlangiso).zip \
+ -d "$$my_tmp" && \
+ mv "$$my_tmp"/OOo_*_install_$(defaultlangiso) "$$my_tmp"/opt && \
+ echo "$$my_tmp" > $@
+.END
+
+cpptest .PHONY : $(MISC)/$(TARGET)/services.rdb
+ $(RM) -r $(MISC)/$(TARGET)/user
+ $(MKDIRHIER) $(MISC)/$(TARGET)/user
+ $(CPPUNITTESTER) \
+ -env:UNO_SERVICES=$(my_file)$(PWD)/$(MISC)/$(TARGET)/services.rdb \
+ -env:UNO_TYPES=$(my_file)$(SOLARBINDIR)/types.rdb \
+ -env:arg-path=$(my_soffice) -env:arg-user=$(MISC)/$(TARGET)/user \
+ $(my_cppenv) $(OOO_CPPTEST_ARGS)
+ $(RM) -r $(MISC)/$(TARGET)/user
+.IF "$(OS)" == "WNT"
+ $(RM) -r $(installationtest_instpath) $(MISC)/$(TARGET)/installation.flag
+cpptest : $(MISC)/$(TARGET)/installation.flag
+.END
+
+$(MISC)/$(TARGET)/services.rdb :
+ $(MKDIRHIER) $(@:d)
+ $(RM) $@
+ $(REGCOMP) -register -r $@ -wop -c bridgefac.uno -c connector.uno \
+ -c remotebridge.uno -c uuresolver.uno
+
+.IF "$(SOLAR_JAVA)" == "TRUE" && "$(OOO_JUNIT_JAR)" != ""
+javatest .PHONY : $(JAVATARGET)
+ $(RM) -r $(MISC)/$(TARGET)/user
+ $(MKDIRHIER) $(MISC)/$(TARGET)/user
+ $(JAVAI) $(JAVAIFLAGS) $(JAVACPS) \
+ '$(OOO_JUNIT_JAR)$(PATH_SEPERATOR)$(CLASSPATH)' \
+ -Dorg.openoffice.test.arg.path=$(my_soffice) \
+ -Dorg.openoffice.test.arg.user=$(my_file)$(PWD)/$(MISC)/$(TARGET)/user \
+ $(my_javaenv) org.junit.runner.JUnitCore \
+ $(foreach,i,$(JAVATESTFILES) $(subst,/,. $(PACKAGE)).$(i:s/.java//))
+ $(RM) -r $(MISC)/$(TARGET)/user
+.IF "$(OS)" == "WNT"
+ $(RM) -r $(installationtest_instpath) $(MISC)/$(TARGET)/installation.flag
+javatest : $(MISC)/$(TARGET)/installation.flag
+.END
+.ELSE
+javatest .PHONY :
+ echo 'javatest needs SOLAR_JAVA=TRUE and OOO_JUNIT_JAR'
+.END
diff --git a/solenv/inc/javaunittest.mk b/solenv/inc/javaunittest.mk
index 8f9207fd3917..e129052a445e 100644
--- a/solenv/inc/javaunittest.mk
+++ b/solenv/inc/javaunittest.mk
@@ -80,8 +80,9 @@ $(TESTS): $(JAVACLASSFILES)
.ENDIF
%.test .PHONY: %.java
- $(JAVAI) $(JAVACPS) $(CLASSPATH) org.openoffice.Runner -TestBase java_complex \
- -NoOffice yes -o $(subst,/,. $(subst,.test, $(PACKAGE).$@))
+ $(JAVAI) $(JAVAIFLAGS) $(JAVACPS) $(CLASSPATH) org.openoffice.Runner \
+ -TestBase java_complex -NoOffice yes \
+ -o $(subst,/,. $(subst,.test, $(PACKAGE).$@))
.IF "$(IDLTESTFILES)" != ""
diff --git a/solenv/inc/libs.mk b/solenv/inc/libs.mk
index cbde1659ae5d..b835f526997f 100644
--- a/solenv/inc/libs.mk
+++ b/solenv/inc/libs.mk
@@ -266,8 +266,15 @@ JVMACCESSLIB = -ljvmaccess$(UDK_MAJOR)$(COMID)
.ELSE # "$(GUI)$(COM)"=="WNTGCC"
JVMACCESSLIB = -ljvmaccess$(COMID)
.ENDIF # "$(GUI)$(COM)"=="WNTGCC"
-CPPUNITLIB = -lcppunit$(DLLPOSTFIX)
-TESTSHL2LIB = -ltestshl2$(DLLPOSTFIX)
+.IF "$(OS)" == "WNT"
+CPPUNITLIB = -lcygcppunit-1-12-1
+.ELSE
+.IF "$(SYSTEM_CPPUNIT)"=="YES"
+CPPUNITLIB = $(CPPUNIT_LIBS)
+.ELSE
+CPPUNITLIB = -lcppunit
+.ENDIF
+.ENDIF
.IF "$(SYSTEM_LIBXSLT)"=="YES"
XSLTLIB=$(LIBXSLT_LIBS)
.ELSE
@@ -341,6 +348,7 @@ LPSOLVELIB=-llpsolve55
SOFFICELIB=-lsofficeapp
UNOPKGAPPLIB=-lunopkgapp
CONFIGMGRLIB=-lconfigmgr
+TESTLIB=-ltest
.ELSE # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2"
@@ -475,8 +483,7 @@ FREETYPELIB=freetype.lib
PKGCHKLIB=ipkgchk.lib
HELPLINKERLIB=ihelplinker.lib
JVMACCESSLIB = ijvmaccess.lib
-CPPUNITLIB = cppunit.lib
-TESTSHL2LIB = testshl2.lib
+CPPUNITLIB = icppunit_dll.lib
XSLTLIB = libxslt.lib $(LIBXML2LIB)
.IF "$(GUI)"=="OS2"
REDLANDLIB = raptor.a rasqal.a rdf.a $(LIBXML2LIB) $(OPENSSLLIB) pthread.lib
@@ -523,5 +530,6 @@ LPSOLVELIB=lpsolve55.lib
SOFFICELIB=isofficeapp.lib
UNOPKGAPPLIB=iunopkgapp.lib
CONFIGMGRLIB=iconfigmgr.lib
+TESTLIB=itest.lib
.ENDIF # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2"
diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk
index fdb9f8e48def..f6920b285050 100644
--- a/solenv/inc/minor.mk
+++ b/solenv/inc/minor.mk
@@ -1,5 +1,5 @@
RSCVERSION=300
-RSCREVISION=300m76(Build:9491)
-BUILD=9491
-LAST_MINOR=m76
+RSCREVISION=300m77(Build:9496)
+BUILD=9496
+LAST_MINOR=m77
SOURCEVERSION=DEV300
diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk
index 5601f105704f..495720f9d038 100644
--- a/solenv/inc/settings.mk
+++ b/solenv/inc/settings.mk
@@ -38,11 +38,6 @@ force_dmake_to_error
# --- common tool makros --------------------------------------
-# moved temporary wrapper here as it is used in unitools.mk
-.IF "$(USE_SHELL)"!=""
-use_shell*=$(USE_SHELL)
-.ENDIF
-
.IF "$(USE_PCH)"!=""
ENABLE_PCH=TRUE
.ENDIF # "$(USE_PCH)"!=""
@@ -55,13 +50,6 @@ NETWORK_BUILD:=TRUE
.INCLUDE : unitools.mk
-#have SCRIPTEXT already defined in product.mk but available for all
-.IF "$(USE_SHELL)"=="4NT"
-SCRIPTEXT=.bat
-.ELSE # "$(GUI)"=="WNT"
-SCRIPTEXT=
-.ENDIF # "$(GUI)"=="WNT"
-
.INCLUDE : minor.mk
.INCLUDE .IGNORE : rtlbootstrap.mk
@@ -173,6 +161,8 @@ JAVARESPONSE=
.ENDIF
.ENDIF
+JAVAFLAGS+=$(JAVA_TARGET_FLAG)
+
#END JAVA
CDEFS=
@@ -818,8 +808,8 @@ L10N_MODULE*=$(SOLARSRC)$/l10n
ALT_L10N_MODULE*=$(SOLARSRC)$/l10n_so
.IF "$(WITH_LANG)"!=""
-.INCLUDE .IGNORE: $(L10N_MODULE)/localization_present.mk
-.INCLUDE .IGNORE: $(ALT_L10N_MODULE)/localization_present.mk
+.INCLUDE .IGNORE: $(L10N_MODULE)/$(COMMON_OUTDIR)$(PROEXT)/inc/localization_present.mk
+.INCLUDE .IGNORE: $(ALT_L10N_MODULE)/$(COMMON_OUTDIR)$(PROEXT)/inc/localization_present.mk
# check for localizations not hosted in l10n module. if a file exists there
# it won't in l10n
@@ -1027,6 +1017,18 @@ LNTFLAGSOUTOBJ=-os
.INCLUDE : os2.mk
.ENDIF
+.IF "$(OOO_LIBRARY_PATH_VAR)" != ""
+# Add SOLARLIBDIR to the end of a (potentially previously undefined) library
+# path (LD_LIBRARY_PATH, PATH, etc.; there is no real reason to prefer adding at
+# the end over adding at the start); the ": &&" in the bash case enables this to
+# work at the start of a recipe line that is not prefixed by "+" as well as in
+# the middle of an existing && chain:
+AUGMENT_LIBRARY_PATH = : && \
+ $(OOO_LIBRARY_PATH_VAR)=$${{$(OOO_LIBRARY_PATH_VAR)+$${{$(OOO_LIBRARY_PATH_VAR)}}:}}$(normpath, $(SOLARSHAREDBIN))
+AUGMENT_LIBRARY_PATH_LOCAL = : && \
+ $(OOO_LIBRARY_PATH_VAR)=$${{$(OOO_LIBRARY_PATH_VAR)+$${{$(OOO_LIBRARY_PATH_VAR)}}:}}$(normpath, $(PWD)/$(DLLDEST)):$(normpath, $(SOLARSHAREDBIN))
+.END
+
# remove if .Net 2003 support has expired
.IF "$(debug)"!=""
.IF "$(OS)$(COM)$(CPU)" == "WNTMSCI"
@@ -1052,7 +1054,7 @@ JAVAMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javamaker
RDBMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rdbmaker
CLIMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/climaker
-TESTSHL2=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/testshl2
+CPPUNITTESTER=$(AUGMENT_LIBRARY_PATH_LOCAL) $(SOLARBINDIR)/cppunittester
HELPEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/helpex
LNGCONVEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/lngconvex
HELPLINKER=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/HelpLinker
@@ -1347,6 +1349,10 @@ $(COMP9TYPELIST)_XML2CMPTYPES:=$(shell @$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/x
XML_APIS_JAR*=$(SOLARBINDIR)/xml-apis.jar
XERCES_JAR*=$(SOLARBINDIR)/xercesImpl.jar
+.IF "$(SYSTEM_CPPUNIT)" != "YES"
+CPPUNIT_CFLAGS =
+.END
+
# workaround for strange dmake bug:
# if the previous block was a rule or a target, "\#" isn't recognized
# as an escaped "#". if it was an assignment, escaping works...
diff --git a/solenv/inc/startup/AIX/macros.mk b/solenv/inc/startup/AIX/macros.mk
deleted file mode 100644
index 5387b1940198..000000000000
--- a/solenv/inc/startup/AIX/macros.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk
diff --git a/solenv/inc/startup/FREEBSD/macros.mk b/solenv/inc/startup/FREEBSD/macros.mk
deleted file mode 100644
index 5387b1940198..000000000000
--- a/solenv/inc/startup/FREEBSD/macros.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk
diff --git a/solenv/inc/startup/HPUX/macros.mk b/solenv/inc/startup/HPUX/macros.mk
deleted file mode 100644
index 5387b1940198..000000000000
--- a/solenv/inc/startup/HPUX/macros.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk
diff --git a/solenv/inc/startup/IRIX/macros.mk b/solenv/inc/startup/IRIX/macros.mk
deleted file mode 100644
index 5387b1940198..000000000000
--- a/solenv/inc/startup/IRIX/macros.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk
diff --git a/solenv/inc/startup/LINUX/macros.mk b/solenv/inc/startup/LINUX/macros.mk
deleted file mode 100644
index 5387b1940198..000000000000
--- a/solenv/inc/startup/LINUX/macros.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk
diff --git a/solenv/inc/startup/MACOSX/macros.mk b/solenv/inc/startup/MACOSX/macros.mk
deleted file mode 100644
index 5387b1940198..000000000000
--- a/solenv/inc/startup/MACOSX/macros.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk
diff --git a/solenv/inc/startup/NETBSD/macros.mk b/solenv/inc/startup/NETBSD/macros.mk
deleted file mode 100644
index 5387b1940198..000000000000
--- a/solenv/inc/startup/NETBSD/macros.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk
diff --git a/solenv/inc/startup/OS2/macros.mk b/solenv/inc/startup/OS2/macros.mk
index 08d2be3f9a48..2f1447e6e714 100644
--- a/solenv/inc/startup/OS2/macros.mk
+++ b/solenv/inc/startup/OS2/macros.mk
@@ -4,22 +4,6 @@
# Process release-specific refinements, if any.
# YD .INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d)$(OSRELEASE)$/macros.mk
-# Execution environment configuration.
-# Grab the current setting of COMSPEC.
-#
-.IMPORT .IGNORE : COMSPEC
-
-# First check if SHELL is defined to be something other than COMSPEC.
-# If it is assume that SHELL is a Korn compatible shell like MKS's
-.IF $(SHELL) == $(NULL)
- .IF $(COMSPEC) == $(NULL)
- SHELL *:= $(ROOTDIR)$/bin$/sh$E
- .ELSE
- SHELL *:= $(COMSPEC)
- .END
-.END
-GROUPSHELL *:= $(SHELL)
-
# Directory entries are case incensitive
.DIRCACHERESPCASE *:= no
@@ -35,39 +19,12 @@ P *:= .pas # Pascal
S *:= .asm # Assembler sources
V *:= # RCS suffix
-# Now set the remaining arguments depending on which SHELL we
-# are going to use. COMSPEC (assumed to be command.com) or
-# MKS Korn shell.
-.IF $(SHELL) == $(COMSPEC)
- SHELLFLAGS *:= $(SWITCHAR)c
- GROUPFLAGS *:= $(SHELLFLAGS)
- SHELLMETAS *:= <>|*?&
- GROUPSUFFIX *:= .bat
- DIVFILE *= $(TMPFILE:s,/,\\,)
- RM *= rm
- RMFLAGS *= -f
- MV *= rename
- __.DIVSEP-sh-yes *:= \\
- __.DIVSEP-sh-no *:= \\
- DIRSEPSTR := \\
-# See iz61212 for the reason why PWD is overwritten
-# PWD:=$(shell +echo %_cwd:s,/,\\,)
-# PWD:=$(shell +cd)
-#.EXPORT : PWD
-
-.ELSE
- SHELLFLAGS *:= -c
- GROUPFLAGS *:=
- SHELLMETAS *:= *"?<>|()&][$$\#`'
- GROUPSUFFIX *:= .ksh
- .MKSARGS *:= yes
- RM *= $(ROOTDIR)$/bin$/rm
- RMFLAGS *= -f
- MV *= $(ROOTDIR)$/bin$/mv
- DIVFILE *= $(TMPFILE:s,/,${__.DIVSEP-sh-${USESHELL}})
- __.DIVSEP-sh-yes !:= \\\
- __.DIVSEP-sh-no !:= \\
-.ENDIF
+.MKSARGS *:= yes
+RM *= $(ROOTDIR)$/bin$/rm
+MV *= $(ROOTDIR)$/bin$/mv
+DIVFILE *= $(TMPFILE:s,/,${__.DIVSEP-sh-${USESHELL}})
+__.DIVSEP-sh-yes !:= \\\
+__.DIVSEP-sh-no !:= \\
NAMEMAX = 256
diff --git a/solenv/inc/startup/Readme b/solenv/inc/startup/Readme
index d0c38c7c75d5..63a023d10d3e 100644
--- a/solenv/inc/startup/Readme
+++ b/solenv/inc/startup/Readme
@@ -1,9 +1,6 @@
here are some hints about our use of the startup directory.
-because our variable "OS" was already in use, we don't use the default
-subtrees of startup. for example "wntmsci3" uses the subtree "WNT".
-
the .INCLUDEDIRS line in startup.mk gives you the oportunity of switching
to your own set of central makefiles.
diff --git a/solenv/inc/startup/SOLARIS/macros.mk b/solenv/inc/startup/SOLARIS/macros.mk
deleted file mode 100644
index 5387b1940198..000000000000
--- a/solenv/inc/startup/SOLARIS/macros.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-
-.INCLUDE .NOINFER .IGNORE : $(INCFILENAME:d:d:d)UNIX$/macros.mk
diff --git a/solenv/inc/startup/UNIX/macros.mk b/solenv/inc/startup/UNIX/macros.mk
deleted file mode 100644
index 7fa2f1b77d35..000000000000
--- a/solenv/inc/startup/UNIX/macros.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# This file is used for all $(OS)==UNX during startup
-#
-
-SHELL *:= /usr/bin/csh
-GROUPSHELL *:= $(SHELL)
-
-.IF $(USE_SHELL) == bash
- SHELLFLAGS *:= -c
-.ELSE
- SHELLFLAGS *:= -fc
-.ENDIF # $(USE_SHELL) == bash
-
- GROUPFLAGS *:= $(SHELLFLAGS)
-
-# incomplete - better use METAS from startup.mk
-# SHELLMETAS *:= "<>|/
- RM *= rm
- RMFLAGS *= -f
- MV *= mv
diff --git a/solenv/inc/startup/startup.mk b/solenv/inc/startup/startup.mk
index 96b6378db11f..b4aa9a74353a 100644
--- a/solenv/inc/startup/startup.mk
+++ b/solenv/inc/startup/startup.mk
@@ -33,7 +33,7 @@ CALLTARGETS=$(MAKETARGETS)
.INCLUDEDIRS : $(DMAKE_INC) $(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT) $(SOLARENV)$/inc
# Grab key definitions from the environment
-# .IMPORT .IGNORE : OS TMPDIR SHELL UPD INPATH OUTPATH GUI COM EX CLASSPATH PRODUCT GUIBASE SOLARENV SOLARVER GUIENV CPU CPUNAME CVER GVER COMPATH LIB INCLUDE TR SORT UNIQ ROOTDIR SED AWK TOUCH IENV ILIB PRODUCT_ENV COMEX UPD BUILD DEVROOT VCL SO3 ENVCFLAGS
+# .IMPORT .IGNORE : OS TMPDIR UPD INPATH OUTPATH GUI COM EX CLASSPATH PRODUCT GUIBASE SOLARENV SOLARVER GUIENV CPU CPUNAME CVER GVER COMPATH LIB INCLUDE TR SORT UNIQ ROOTDIR SED AWK TOUCH IENV ILIB PRODUCT_ENV COMEX UPD BUILD DEVROOT VCL SO3 ENVCFLAGS
.IF "$(OS)" == "" || "$(OS)" == "Windows_NT"
.ERROR : ; @echo Forced error: Environment variable OS has to be set for OOo build!
@@ -42,28 +42,35 @@ OS_variable_needed
# Customize macro definitions based on seting of OS.
# This must come before the default macro definitions which follow.
-.INCLUDE .NOINFER : $(INCFILENAME:d)$(OS)$/macros.mk
+.IF "$(OS)" == "OS2"
+.INCLUDE: $(INCFILENAME:d)OS2/macros.mk
+.ELIF "$(OS)" == "WNT"
+.INCLUDE: $(INCFILENAME:d)wnt/macros.mk
+.END
# ----------------- Default Control Macro definitions -----------------------
# Select appropriate defaults for basic macros
- MAKE *= $(MAKECMD) $(MFLAGS)
- TMPDIR *:= $/tmp
- DIVFILE *= $(TMPFILE)
+MAKE *= $(MAKECMD) $(MFLAGS)
+TMPDIR *:= $/tmp
+DIVFILE *= $(TMPFILE)
MAXLINELENGTH = 65530
# Recipe execution configuration
- SHELL *:= $/bin$/sh
- SHELLFLAGS *:= -fc
- GROUPSHELL *:= $(SHELL)
- GROUPFLAGS *:=
- SHELLMETAS *:= |();&<>?*][$$:\\#`'"
- GROUPSUFFIX *:=
+SHELL := $(OOO_SHELL)
+SHELLFLAGS := -c
+SHELLMETAS := !"\#$$%&'()*;<=>?[\]`{{|}}~
+ # the colon (":") utility is typically only available as a shell built-in,
+ # so it should be included in SHELLMETAS; however, this would result in very
+ # many false positives on Windows where ":" is used in drive letter notation
+GROUPSHELL := $(SHELL)
+GROUPFLAGS :=
+GROUPSUFFIX :=
# Intermediate target removal configuration
- RM *:= $/bin$/rm
- RMFLAGS *= -f
- RMTARGET *= $<
+RM *:= rm
+RMFLAGS *= -f
+RMTARGET *= $<
# Default recipe that is used to remove intermediate targets.
.REMOVE :; #echo dummy remove #$(RM) $(RMFLAGS) $(RMTARGET)
@@ -80,7 +87,7 @@ NULLPRQ *:= __.NULLPRQ
E *:= # Executables
# Other Compilers, Tools and their flags
-MV *:= $/bin$/mv # File rename command
+MV *:= mv # File rename command
# Finally, define the default construction strategy
diff --git a/solenv/inc/startup/wnt/macros.mk b/solenv/inc/startup/wnt/macros.mk
index 35f903f60922..2d8181439e81 100644
--- a/solenv/inc/startup/wnt/macros.mk
+++ b/solenv/inc/startup/wnt/macros.mk
@@ -15,25 +15,10 @@ GUWCMD*=guw.exe
# Applicable suffix definitions
E *:= .exe # Executables
-# Now set the remaining arguments depending on which SHELL we
-# are going to use.
-
-.IF $(USE_SHELL) == bash
- SHELLFLAGS *:= -c
-.ELSE
- # See iz50689 why -f is needed.
- SHELLFLAGS *:= -fc
-.ENDIF # $(USE_SHELL) == bash
-
- GROUPFLAGS *:=
- SHELLMETAS *:= *";?<>|()&][$$\#`'
-# Fix syntax highlighting: "
- GROUPSUFFIX *:= .csh
# This is hopefully not used. Only in: dmake/msdos/spawn.c
# .MKSARGS *:= yes
DIVFILE *= $(TMPFILE:s,/,${__.DIVSEP-sh-${USESHELL}})
RM *= $/bin$/rm
- RMFLAGS *= -f
MV *= $/bin$/mv
__.DIVSEP-sh-yes *:= \\\
__.DIVSEP-sh-no *:= \\
@@ -41,14 +26,6 @@ E *:= .exe # Executables
.EXPORT : GUWCMD
-.IF $(SHELL) == $(NULL)
-# SHELL has to be set in (non-4NT) OOobuild environment
-.ERROR : ; @echo Forced error: Environment variable SHELL has to be set for OOo build!
-SHELL_variable_needed
-.END
-
-GROUPSHELL *:= $(SHELL)
-
# Does not respect case of filenames.
.DIRCACHERESPCASE := no
NAMEMAX = 256
diff --git a/solenv/inc/target.mk b/solenv/inc/target.mk
index e446635be9a2..0319e92f3418 100644
--- a/solenv/inc/target.mk
+++ b/solenv/inc/target.mk
@@ -211,9 +211,7 @@ LOCALJARS:=$(foreach,i,$(shell @@-cd $(JARDIR) && ls -1 $(JARFILES) ) $(JARDIR)/
NEWCLASS:=$(LOCALJARS)
NEWCLASS+:=$(foreach,i,$(JARFILES) $(eq,$(LOCALJARS),$(subst,$i, $(LOCALJARS)) $(SOLARBINDIR)/$i $(NULL)))
.ENDIF # "$(JARFILES)"!=""
-.IF "$(EXTRAJARFILES)"!=""
-NEWCLASS+=$(foreach,i,$(EXTRAJARFILES) $(COMMON_BUILD_TOOLS)/$i)
-.ENDIF # "$(EXTRAJARFILES)"!=""
+NEWCLASS+=$(EXTRAJARFILES)
.IF "$(GENJAVACLASSFILES)"!=""
NEWCLASS+=$(CLASSGENDIR)
.ENDIF # "$(GENJAVACLASSFILES)"!=""
diff --git a/solenv/inc/tg_ext.mk b/solenv/inc/tg_ext.mk
index 5cc0cd4821d5..e19c7124d4a7 100644
--- a/solenv/inc/tg_ext.mk
+++ b/solenv/inc/tg_ext.mk
@@ -43,11 +43,11 @@ LDFLAGS!:=$(EXTRA_LINKFLAGS) $(LDFLAGS)
.EXPORT : LDFLAGS
.ENDIF
-.IF "$(GUI)"=="WNT" && "$(USE_SHELL)"!="4nt"
+.IF "$(GUI)"=="WNT"
PATH!:=.:$(SOLARBINDIR:^"/cygdrive/":s/://):$(PATH)
-.ELSE # "$(GUI)"=="WNT" && "$(USE_SHELL)"!="4nt"
+.ELSE # "$(GUI)"=="WNT"
PATH!:=.$(PATH_SEPERATOR)$(SOLARBINDIR)$(PATH_SEPERATOR)$(PATH)
-.ENDIF # "$(GUI)"=="WNT" && "$(USE_SHELL)"!="4nt"
+.ENDIF # "$(GUI)"=="WNT"
.EXPORT : PATH
#override
@@ -79,10 +79,6 @@ NEW_PATCH_FILE_NAME:=$(TARFILE_NAME)-newpatch-rename_me.patch
PATCH_FILE_DEP:=$(PRJ)/$(PATH_IN_MODULE)/{$(PATCH_FILES)}
.ENDIF # "$(PATCH_FILES)"=="none" || "$(PATCH_FILES)"==""
-.IF "$(TAR_EXCLUDES)"!=""
-TAR_EXCLUDE_SWITCH=--exclude=$(TAR_EXCLUDES)
-.ENDIF # "$(TAR_EXCLUDES)"!=""
-
unzip_quiet_switch:=-qq
.IF "$(VERBOSE)"=="TRUE"
tar_verbose_switch=v
@@ -114,9 +110,9 @@ clean:
$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.bz2
@-$(RM) $@
.IF "$(GUI)"=="UNX"
- @noop $(assign UNPACKCMD := sh -c "bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - ")
+ @noop $(assign UNPACKCMD := sh -c "bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) -x$(tar_verbose_switch)f - ")
.ELSE # "$(GUI)"=="UNX"
- @noop $(assign UNPACKCMD := bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - )
+ @noop $(assign UNPACKCMD := bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) -x$(tar_verbose_switch)f - )
.ENDIF # "$(GUI)"=="UNX"
@$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH)
@$(RENAME) $@.$(INPATH) $@
@@ -124,53 +120,53 @@ $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.bz2
$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.Z
@-$(RM) $@
.IF "$(GUI)"=="UNX"
- @noop $(assign UNPACKCMD := sh -c "uncompress -c $(TARFILE_LOCATION)/$(TARFILE_NAME).tar.Z | $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - ")
+ @noop $(assign UNPACKCMD := sh -c "uncompress -c $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.Z | $(GNUTAR) -x$(tar_verbose_switch)f - ")
.ELSE # "$(GUI)"=="UNX"
- @noop $(assign UNPACKCMD := uncompress -c $(TARFILE_LOCATION)/$(TARFILE_NAME).tar.Z | $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - )
+ @noop $(assign UNPACKCMD := uncompress -c $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.Z | $(GNUTAR) -x$(tar_verbose_switch)f - )
.ENDIF # "$(GUI)"=="UNX"
@$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH)
@$(RENAME) $@.$(INPATH) $@
$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.gz
@-$(RM) $@
- @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_NAME).tar.gz) $(TARFILE_FILTER) | $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - )
+ @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.gz) $(TARFILE_FILTER) | $(GNUTAR) -x$(tar_verbose_switch)f - )
@$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH)
@$(RENAME) $@.$(INPATH) $@
$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tgz
@-$(RM) $@
- @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_NAME).tgz) $(TARFILE_FILTER) | $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f - )
+ @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tgz) $(TARFILE_FILTER) | $(GNUTAR) -x$(tar_verbose_switch)f - )
@$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH)
@$(RENAME) $@.$(INPATH) $@
$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar
@-$(RM) $@
- @noop $(assign UNPACKCMD := $(GNUTAR) $(TAR_EXCLUDE_SWITCH) -x$(tar_verbose_switch)f $(TARFILE_LOCATION)/$(TARFILE_NAME).tar)
+ @noop $(assign UNPACKCMD := $(GNUTAR) -x$(tar_verbose_switch)f $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar)
@$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH)
@$(RENAME) $@.$(INPATH) $@
$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.zip
@-$(RM) $@
- @noop $(assign UNPACKCMD := unzip $(unzip_quiet_switch) -o $(TARFILE_LOCATION)/$(TARFILE_NAME).zip)
+ @noop $(assign UNPACKCMD := unzip $(unzip_quiet_switch) -o $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).zip)
@$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH)
@$(RENAME) $@.$(INPATH) $@
$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.jar
@-$(RM) $@
.IF "$(OS)"=="SOLARIS"
- @noop $(assign UNPACKCMD := jar xf $(TARFILE_LOCATION)/$(TARFILE_NAME).jar)
+ @noop $(assign UNPACKCMD := jar xf $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).jar)
.ELSE # "$(OS)"=="SOLARIS"
- @noop $(assign UNPACKCMD := unzip $(unzip_quiet_switch) -o $(TARFILE_LOCATION)/$(TARFILE_NAME).jar)
+ @noop $(assign UNPACKCMD := unzip $(unzip_quiet_switch) -o $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).jar)
.ENDIF # "$(OS)"=="SOLARIS"
@$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH)
@$(RENAME) $@.$(INPATH) $@
#do unpack
-$(PACKAGE_DIR)/$(UNTAR_FLAG_FILE) : $(PRJ)/$(ROUT)/misc/$(TARFILE_NAME).unpack $(PATCH_FILE_DEP)
+$(PACKAGE_DIR)/$(UNTAR_FLAG_FILE) : $(PRJ)/$(ROUT)/misc/$(TARFILE_MD5)-$(TARFILE_NAME).unpack $(PATCH_FILE_DEP)
$(IFEXIST) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR) $(THEN) $(RENAME:s/+//) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)_removeme $(FI)
$(COMMAND_ECHO)-rm -rf $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)_removeme
@-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir)
- $(COMMAND_ECHO)cd $(PACKAGE_DIR)$(fake_root_dir) && ( $(shell @$(TYPE) $(PRJ)/$(ROUT)/misc/$(TARFILE_NAME).unpack)) && $(TOUCH) $(UNTAR_FLAG_FILE)
+ $(COMMAND_ECHO)cd $(PACKAGE_DIR)$(fake_root_dir) && ( $(shell @$(TYPE) $(PRJ)/$(ROUT)/misc/$(TARFILE_MD5)-$(TARFILE_NAME).unpack)) && $(TOUCH) $(UNTAR_FLAG_FILE)
@echo make writeable...
@cd $(PACKAGE_DIR) && chmod -R +rw $(TARFILE_ROOTDIR) && $(TOUCH) $(UNTAR_FLAG_FILE)
@cd $(PACKAGE_DIR) && find $(TARFILE_ROOTDIR) -type d -exec chmod a+x {{}} \;
@@ -298,11 +294,11 @@ $(PACKAGE_DIR)/$(PREDELIVER_FLAG_FILE) : $(PACKAGE_DIR)/$(INSTALL_FLAG_FILE)
.ENDIF # "$(OUT2BIN)"!=""
$(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)/$(PREDELIVER_FLAG_FILE)
-$(MISC)/$(TARFILE_ROOTDIR).done : $(MISC)/$(TARFILE_NAME).unpack $(PATCH_FILES)
+$(MISC)/$(TARFILE_ROOTDIR).done : $(MISC)/$(TARFILE_MD5)-$(TARFILE_NAME).unpack $(PATCH_FILES)
@-mv $(MISC)/$(TARFILE_ROOTDIR) $(MISC)/$(TARFILE_ROOTDIR).old
@-rm -rf $(MISC)/$(TARFILE_ROOTDIR).old
@-$(MKDIRHIER) $(MISC)$(fake_root_dir)
- $(COMMAND_ECHO)cd $(MISC)$(fake_root_dir) && $(subst,$(BACK_PATH),$(MBACK_PATH) $(shell @$(TYPE) $(PRJ)/$(ROUT)/misc/$(TARFILE_NAME).unpack))
+ $(COMMAND_ECHO)cd $(MISC)$(fake_root_dir) && $(subst,$(BACK_PATH),$(MBACK_PATH) $(shell @$(TYPE) $(PRJ)/$(ROUT)/misc/$(TARFILE_MD5)-$(TARFILE_NAME).unpack))
.IF "$(P_ADDITIONAL_FILES)"!=""
noop $(foreach,i,$(P_ADDITIONAL_FILES) $(shell echo dummy > $i))
.ENDIF "$(P_ADDITIONAL_FILES)"!=""
diff --git a/solenv/inc/tg_shl.mk b/solenv/inc/tg_shl.mk
index 2349a00609ad..170947c21c4a 100644
--- a/solenv/inc/tg_shl.mk
+++ b/solenv/inc/tg_shl.mk
@@ -172,7 +172,9 @@ SHL$(TNR)VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL$(TNR)VERSIONMAP)
$(USE_SHL$(TNR)VERSIONMAP): $(SHL$(TNR)OBJS) $(SHL$(TNR)LIBS)
.ENDIF
-$(USE_SHL$(TNR)VERSIONMAP): $(SHL$(TNR)VERSIONMAP)
+# .ERRREMOVE is needed as a recipe line like "$(AWK) ... > $@" would create $@
+# even if the $(AWK) part fails:
+$(USE_SHL$(TNR)VERSIONMAP) .ERRREMOVE: $(SHL$(TNR)VERSIONMAP)
@@-$(RM) -f $@
# The following files will only be generated and needed on Mac OS X as temporary files
# in order to generate exported symbols list out of Linux/Solaris map files
diff --git a/solenv/inc/unitools.mk b/solenv/inc/unitools.mk
index b537bae59d29..7e12a9e2b225 100644
--- a/solenv/inc/unitools.mk
+++ b/solenv/inc/unitools.mk
@@ -62,26 +62,14 @@ NULLDEV:=/dev/null
# iz29609 helpmacro to check if file exists
-.IF "$(USE_SHELL)"=="bash"
IFEXIST:=if [ -f
IFNOTEXIST:= if ! test -f
THEN:= ] ; then
FI:= ; fi
PIPEERROR=2>&1 |
-.ELSE
-IFEXIST:=if ( -e
-IFNOTEXIST:=if ( ! -e
-THEN:= )
-FI:=
-PIPEERROR=|&
-.ENDIF
# iz31658
-.IF "$(USE_SHELL)"=="bash"
CHECKZIPRESULT:=|| ret=$$?; if [[ "$$ret" != "12" && "$$ret" != "1" ]] ; then exit $$ret ; fi && echo "Nothing to update for zip"
-.ELSE
-CHECKZIPRESULT:=|| if ("$$status" != "12" && "$$status" != "1") exit $$status && echo "Nothing to update for zip"
-.ENDIF
# Platform specific
.IF "$(GUI)"=="WNT"
@@ -191,10 +179,8 @@ CONVERT*:=$(PERL) $(SOLARENV)/bin/leconvert.pl
EXECTEST := $(PERL) -w $(SOLARENV)/bin/exectest.pl
GCCINSTLIB:=$(PERL) -w $(SOLARENV)/bin/gccinstlib.pl
-# The dmake $(PWD) variable and the tcsh pwd command both apparantly produce
-# paths with symlinks resolved, while the bash pwd command by default produces
-# paths with unresolved symlinks, so that computing PATH_IN_MODULE in
-# settings.mk would fail without the -P flag to the bash pwd command:
-.IF "$(USE_SHELL)" == "bash"
+# The dmake $(PWD) apparantly produces paths with symlinks resolved, while the
+# bash pwd command by default produces paths with unresolved symlinks, so that
+# computing PATH_IN_MODULE in settings.mk would fail without the -P flag to the
+# bash pwd command:
PWDFLAGS = -P
-.ENDIF
diff --git a/solenv/inc/unx.mk b/solenv/inc/unx.mk
index c6d756343d79..eb27b51a6e6d 100644
--- a/solenv/inc/unx.mk
+++ b/solenv/inc/unx.mk
@@ -198,17 +198,4 @@ SOLARLIB+=-L$(KDE_ROOT)/lib
.ENDIF # "$(KDE_ROOT)"!=""
.ENDIF # "$(ENABLE_KDE)" != ""
-# Add SOLARLIBDIR to the end of a (potentially previously undefined)
-# LD_LIBRARY_PATH (there is no real reason to prefer adding at the end over
-# adding at the start); the ": &&" in the bash case enables this to work at the
-# start of a recipe line that is not prefixed by "+" as well as in the middle of
-# an existing && chain; the tcsh case is somewhat imprecise in that it
-# potentially affects multiple commands following on the recipe line:
-.IF "$(USE_SHELL)" == "bash"
-AUGMENT_LIBRARY_PATH *= : && \
- LD_LIBRARY_PATH=$${{LD_LIBRARY_PATH+$${{LD_LIBRARY_PATH}}:}}$(SOLARLIBDIR)
-.ELSE
-AUGMENT_LIBRARY_PATH *= if ($$?LD_LIBRARY_PATH == 1) \
- eval 'setenv LD_LIBRARY_PATH "$${{LD_LIBRARY_PATH}}:$(SOLARLIBDIR)"' && \
- if ($$?LD_LIBRARY_PATH == 0) setenv LD_LIBRARY_PATH "$(SOLARLIBDIR)" &&
-.ENDIF
+OOO_LIBRARY_PATH_VAR *= LD_LIBRARY_PATH
diff --git a/solenv/inc/unxmacx.mk b/solenv/inc/unxmacx.mk
index b40814b9a9d7..6ea51ae6ccfe 100644
--- a/solenv/inc/unxmacx.mk
+++ b/solenv/inc/unxmacx.mk
@@ -85,8 +85,8 @@ ARCH_FLAGS*=
# objcpp = Objective C++ compiler to use
CXX*=g++
CC*=gcc
-objc*=gcc
-objcpp*=g++
+objc*=$(CC)
+objcpp*=$(CXX)
CFLAGS=-fsigned-char -fmessage-length=0 -malign-natural -c $(EXTRA_CFLAGS)
@@ -206,7 +206,7 @@ LINKFLAGSRUNPATH_OOO=-install_name '@___________________________________________
LINKFLAGSRUNPATH_SDK=
LINKFLAGSRUNPATH_BRAND=
LINKFLAGSRUNPATH_OXT=
-LINKFLAGSRUNPATH_NONE=
+LINKFLAGSRUNPATH_NONE=-install_name '@__________________________________________________NONE/$(@:f)'
LINKFLAGS=$(LINKFLAGSDEFS)
# [ed] 5/14/02 If we're building for aqua, add in the objc runtime library into our link line
@@ -285,18 +285,4 @@ RCLINK=
RCLINKFLAGS=
RCSETVERSION=
-# Add SOLARLIBDIR to the end of a (potentially previously undefined)
-# DYLD_LIBRARY_PATH (there is no real reason to prefer adding at the end over
-# adding at the start); the ": &&" in the bash case enables this to work at the
-# start of a recipe line that is not prefixed by "+" as well as in the middle of
-# an existing && chain; the tcsh case is somewhat imprecise in that it
-# potentially affects multiple commands following on the recipe line:
-.IF "$(USE_SHELL)" == "bash"
-AUGMENT_LIBRARY_PATH = : && \
- DYLD_LIBRARY_PATH=$${{DYLD_LIBRARY_PATH+$${{DYLD_LIBRARY_PATH}}:}}$(SOLARLIBDIR)
-.ELSE
-AUGMENT_LIBRARY_PATH = if ($$?DYLD_LIBRARY_PATH == 1) \
- eval 'setenv DYLD_LIBRARY_PATH "$${{DYLD_LIBRARY_PATH}}:$(SOLARLIBDIR)"' \
- && if ($$?DYLD_LIBRARY_PATH == 0) \
- setenv DYLD_LIBRARY_PATH "$(SOLARLIBDIR)" &&
-.ENDIF
+OOO_LIBRARY_PATH_VAR = DYLD_LIBRARY_PATH
diff --git a/solenv/inc/unxmacxi.mk b/solenv/inc/unxmacxi.mk
index 6a21022d4830..7c7f0a88f4f4 100644
--- a/solenv/inc/unxmacxi.mk
+++ b/solenv/inc/unxmacxi.mk
@@ -49,10 +49,5 @@ CFLAGSENABLESYMBOLS=-g1
CFLAGSENABLESYMBOLS=-g
.ENDIF
-.IF "$(SNOW_LEOPARD_10_4)"!=""
-JAVACOMPILER+=-target 1.5
-.EXPORT: DYLD_INSERT_LIBRARIES
-.ENDIF # "$(SNOW_LEOPARD_10_4)"!=""
-
# Include generic Mac OS X makefile
.INCLUDE : unxmacx.mk
diff --git a/solenv/inc/wnt.mk b/solenv/inc/wnt.mk
index 78f496927899..f369bd15ad30 100644
--- a/solenv/inc/wnt.mk
+++ b/solenv/inc/wnt.mk
@@ -69,9 +69,4 @@ JAVA_RUNTIME=javai_g.lib
.ENDIF
.ENDIF
-.IF "$(USE_SHELL)" == "bash"
-AUGMENT_LIBRARY_PATH *= : && \
- PATH=$${{PATH}}:$(SOLARBINDIR:s/://:^"/cygdrive/")
-.ELSE
-AUGMENT_LIBRARY_PATH *= echos && PATH=%PATH%;$(SOLARBINDIR) &&
-.ENDIF
+OOO_LIBRARY_PATH_VAR = PATH
diff --git a/soltools/mkdepend/cppsetup.c b/soltools/mkdepend/cppsetup.c
index b75a2ed5b26e..173798105a3c 100644
--- a/soltools/mkdepend/cppsetup.c
+++ b/soltools/mkdepend/cppsetup.c
@@ -143,6 +143,9 @@ _my_if_errors (ip, cp, expecting)
}
fprintf (stderr, "^--- expecting %s\n", expecting);
#endif /* DEBUG_MKDEPEND */
+ (void)ip;
+ (void)cp;
+ (void)expecting;
return NULL;
}
@@ -150,13 +153,11 @@ _my_if_errors (ip, cp, expecting)
#define MAXNAMELEN 256
char *
-_lookup_variable (ip, var, len)
- IfParser *ip;
+_lookup_variable (var, len)
const char *var;
int len;
{
char tmpbuf[MAXNAMELEN + 1];
- struct _parse_data *pd = (struct _parse_data *) ip->data;
if (len > MAXNAMELEN)
return 0;
@@ -173,7 +174,8 @@ _my_eval_defined (ip, var, len)
const char *var;
int len;
{
- if (_lookup_variable (ip, var, len))
+ (void)ip;
+ if (_lookup_variable (var, len))
return 1;
else
return 0;
@@ -189,14 +191,16 @@ _my_eval_variable (ip, var, len)
{
char *s;
- s = _lookup_variable (ip, var, len);
+ (void)ip;
+
+ s = _lookup_variable (var, len);
if (!s)
return 0;
do {
var = s;
if (!isvarfirstletter(*var))
break;
- s = _lookup_variable (ip, var, strlen(var));
+ s = _lookup_variable (var, strlen(var));
} while (s);
return atoi(var);
diff --git a/soltools/mkdepend/def.h b/soltools/mkdepend/def.h
index 9da82495f024..ac04357212e2 100644
--- a/soltools/mkdepend/def.h
+++ b/soltools/mkdepend/def.h
@@ -164,12 +164,25 @@ void define( char *def, struct symhash **symbols );
void hash_define(char *name, char * val, struct symhash **symbols);
struct symhash *hash_copy( struct symhash *symbols );
void hash_free( struct symhash *symbols );
-
-#if NeedVarargsPrototypes
-extern fatalerr(char *, ...);
-extern warning(char *, ...);
-extern warning1(char *, ...);
-#endif
+void freefile( struct filepointer * fp );
+int find_includes(struct filepointer *filep, struct inclist *file,
+ struct inclist *file_red, int recursion, boolean failOK,
+ struct IncludesCollection* incCollection, struct symhash *symbols);
+void included_by(register struct inclist *ip,
+ register struct inclist * newfile);
+int cppsetup(register char *line,
+ register struct filepointer *filep, register struct inclist *inc);
+void add_include(struct filepointer *filep, struct inclist *file,
+ struct inclist *file_red, char *include, boolean dot, boolean failOK,
+ struct IncludesCollection* incCollection, struct symhash *symbols);
+int match(register char *str, register char **list);
+void recursive_pr_include(register struct inclist *head, register char *file,
+ register char *base);
+void inc_clean();
+
+void fatalerr(char *, ...);
+void warning(char *, ...);
+void warning1(char *, ...);
void convert_slashes(char *);
char *append_slash(char *);
diff --git a/soltools/mkdepend/ifparser.c b/soltools/mkdepend/ifparser.c
index 7c8a8c40205a..3c47de64e2f0 100644
--- a/soltools/mkdepend/ifparser.c
+++ b/soltools/mkdepend/ifparser.c
@@ -59,6 +59,8 @@
#include "ifparser.h"
#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
/****************************************************************************
Internal Macros and Utilities for Parser
diff --git a/soltools/mkdepend/ifparser.h b/soltools/mkdepend/ifparser.h
index 9b0b58191b97..d832bfbcb6d7 100644
--- a/soltools/mkdepend/ifparser.h
+++ b/soltools/mkdepend/ifparser.h
@@ -57,14 +57,13 @@
#include <stdio.h>
-#define const /**/
typedef int Bool;
#define False 0
#define True 1
typedef struct _if_parser {
struct { /* functions */
- char *(*handle_error) (/* struct _if_parser *, const char *,
+ const char *(*handle_error) (/* struct _if_parser *, const char *,
const char * */);
int (*eval_variable) (/* struct _if_parser *, const char *, int */);
int (*eval_defined) (/* struct _if_parser *, const char *, int */);
@@ -72,5 +71,5 @@ typedef struct _if_parser {
char *data;
} IfParser;
-char *ParseIfExpression (/* IfParser *, const char *, int * */);
+const char *ParseIfExpression (/* IfParser *, const char *, int * */);
diff --git a/soltools/mkdepend/imakemdep.h b/soltools/mkdepend/imakemdep.h
index a71f8c3836ac..67a98929c904 100644
--- a/soltools/mkdepend/imakemdep.h
+++ b/soltools/mkdepend/imakemdep.h
@@ -515,215 +515,215 @@ char *cpp_argv[ARGUMENTS] = {
*/
struct pair predefs[] = {
#ifdef apollo
- {"apollo", "1"},
+ {"apollo", "1", NULL},
#endif
#ifdef ibm032
- {"ibm032", "1"},
+ {"ibm032", "1", NULL},
#endif
#ifdef ibm
- {"ibm", "1"},
+ {"ibm", "1", NULL},
#endif
#ifdef aix
- {"aix", "1"},
+ {"aix", "1", NULL},
#endif
#ifdef sun
- {"sun", "1"},
+ {"sun", "1", NULL},
#endif
#ifdef sun2
- {"sun2", "1"},
+ {"sun2", "1", NULL},
#endif
#ifdef sun3
- {"sun3", "1"},
+ {"sun3", "1", NULL},
#endif
#ifdef sun4
- {"sun4", "1"},
+ {"sun4", "1", NULL},
#endif
#ifdef sparc
- {"sparc", "1"},
+ {"sparc", "1", NULL},
#endif
#ifdef __sparc__
- {"__sparc__", "1"},
+ {"__sparc__", "1", NULL},
#endif
#ifdef hpux
- {"hpux", "1"},
+ {"hpux", "1", NULL},
#endif
#ifdef __hpux
- {"__hpux", "1"},
+ {"__hpux", "1", NULL},
#endif
#ifdef __hp9000s800
- {"__hp9000s800", "1"},
+ {"__hp9000s800", "1", NULL},
#endif
#ifdef __hp9000s700
- {"__hp9000s700", "1"},
+ {"__hp9000s700", "1", NULL},
#endif
#ifdef vax
- {"vax", "1"},
+ {"vax", "1", NULL},
#endif
#ifdef VMS
- {"VMS", "1"},
+ {"VMS", "1", NULL},
#endif
#ifdef cray
- {"cray", "1"},
+ {"cray", "1", NULL},
#endif
#ifdef CRAY
- {"CRAY", "1"},
+ {"CRAY", "1", NULL},
#endif
#ifdef _CRAY
- {"_CRAY", "1"},
+ {"_CRAY", "1", NULL},
#endif
#ifdef att
- {"att", "1"},
+ {"att", "1", NULL},
#endif
#ifdef mips
- {"mips", "1"},
+ {"mips", "1", NULL},
#endif
#ifdef __mips__
- {"__mips__", "1"},
+ {"__mips__", "1", NULL},
#endif
#ifdef ultrix
- {"ultrix", "1"},
+ {"ultrix", "1", NULL},
#endif
#ifdef stellar
- {"stellar", "1"},
+ {"stellar", "1", NULL},
#endif
#ifdef mc68000
- {"mc68000", "1"},
+ {"mc68000", "1", NULL},
#endif
#ifdef mc68020
- {"mc68020", "1"},
+ {"mc68020", "1", NULL},
#endif
#ifdef __GNUC__
- {"__GNUC__", "1"},
+ {"__GNUC__", "1", NULL},
#endif
#if __STDC__
- {"__STDC__", "1"},
+ {"__STDC__", "1", NULL},
#endif
#ifdef __HIGHC__
- {"__HIGHC__", "1"},
+ {"__HIGHC__", "1", NULL},
#endif
#ifdef CMU
- {"CMU", "1"},
+ {"CMU", "1", NULL},
#endif
#ifdef luna
- {"luna", "1"},
+ {"luna", "1", NULL},
#ifdef luna1
- {"luna1", "1"},
+ {"luna1", "1", NULL},
#endif
#ifdef luna2
- {"luna2", "1"},
+ {"luna2", "1", NULL},
#endif
#ifdef luna88k
- {"luna88k", "1"},
+ {"luna88k", "1", NULL},
#endif
#ifdef uniosb
- {"uniosb", "1"},
+ {"uniosb", "1", NULL},
#endif
#ifdef uniosu
- {"uniosu", "1"},
+ {"uniosu", "1", NULL},
#endif
#endif
#ifdef ieeep754
- {"ieeep754", "1"},
+ {"ieeep754", "1", NULL},
#endif
#ifdef is68k
- {"is68k", "1"},
+ {"is68k", "1", NULL},
#endif
#ifdef m68k
- {"m68k", "1"},
+ {"m68k", "1", NULL},
#endif
#ifdef m88k
- {"m88k", "1"},
+ {"m88k", "1", NULL},
#endif
#ifdef __m88k__
- {"__m88k__", "1"},
+ {"__m88k__", "1", NULL},
#endif
#ifdef bsd43
- {"bsd43", "1"},
+ {"bsd43", "1", NULL},
#endif
#ifdef hcx
- {"hcx", "1"},
+ {"hcx", "1", NULL},
#endif
#ifdef sony
- {"sony", "1"},
+ {"sony", "1", NULL},
#ifdef SYSTYPE_SYSV
- {"SYSTYPE_SYSV", "1"},
+ {"SYSTYPE_SYSV", "1", NULL},
#endif
#ifdef _SYSTYPE_SYSV
- {"_SYSTYPE_SYSV", "1"},
+ {"_SYSTYPE_SYSV", "1", NULL},
#endif
#endif
#ifdef __OSF__
- {"__OSF__", "1"},
+ {"__OSF__", "1", NULL},
#endif
#ifdef __osf__
- {"__osf__", "1"},
+ {"__osf__", "1", NULL},
#endif
#ifdef __alpha
- {"__alpha", "1"},
+ {"__alpha", "1", NULL},
#endif
#ifdef __DECC
- {"__DECC", "1"},
+ {"__DECC", "1", NULL},
#endif
#ifdef __decc
- {"__decc", "1"},
+ {"__decc", "1", NULL},
#endif
#ifdef __uxp__
- {"__uxp__", "1"},
+ {"__uxp__", "1", NULL},
#endif
#ifdef __sxg__
- {"__sxg__", "1"},
+ {"__sxg__", "1", NULL},
#endif
#ifdef _SEQUENT_
- {"_SEQUENT_", "1"},
- {"__STDC__", "1"},
+ {"_SEQUENT_", "1", NULL},
+ {"__STDC__", "1", NULL},
#endif
#ifdef __bsdi__
- {"__bsdi__", "1"},
+ {"__bsdi__", "1", NULL},
#endif
#ifdef nec_ews_svr2
- {"nec_ews_svr2", "1"},
+ {"nec_ews_svr2", "1", NULL},
#endif
#ifdef nec_ews_svr4
- {"nec_ews_svr4", "1"},
+ {"nec_ews_svr4", "1", NULL},
#endif
#ifdef _nec_ews_svr4
- {"_nec_ews_svr4", "1"},
+ {"_nec_ews_svr4", "1", NULL},
#endif
#ifdef _nec_up
- {"_nec_up", "1"},
+ {"_nec_up", "1", NULL},
#endif
#ifdef SX
- {"SX", "1"},
+ {"SX", "1", NULL},
#endif
#ifdef nec
- {"nec", "1"},
+ {"nec", "1", NULL},
#endif
#ifdef _nec_ft
- {"_nec_ft", "1"},
+ {"_nec_ft", "1", NULL},
#endif
#ifdef PC_UX
- {"PC_UX", "1"},
+ {"PC_UX", "1", NULL},
#endif
#ifdef sgi
- {"sgi", "1"},
+ {"sgi", "1", NULL},
#endif
#ifdef __sgi
- {"__sgi", "1"},
+ {"__sgi", "1", NULL},
#endif
#ifdef __FreeBSD__
- {"__FreeBSD__", "1"},
+ {"__FreeBSD__", "1", NULL},
#endif
#ifdef __NetBSD__
- {"__NetBSD__", "1"},
+ {"__NetBSD__", "1", NULL},
#endif
#ifdef __OpenBSD__
- {"__OpenBSD__", "1"},
+ {"__OpenBSD__", "1", NULL},
#endif
#ifdef __EMX__
- {"__EMX__", "1"},
+ {"__EMX__", "1", NULL},
#endif
/* add any additional symbols before this line */
- {NULL, NULL}
+ {NULL, NULL, NULL}
};
#endif /* MAKEDEPEND */
diff --git a/soltools/mkdepend/main.c b/soltools/mkdepend/main.c
index fd9bdc18e5d2..cf5c42c14bdf 100644
--- a/soltools/mkdepend/main.c
+++ b/soltools/mkdepend/main.c
@@ -70,9 +70,7 @@ typedef _W64 int ssize_t;
#endif
#endif
-#if NeedVarargsPrototypes
#include <stdarg.h>
-#endif
#ifdef MINIX
#define USE_CHMOD 1
@@ -112,7 +110,6 @@ char *directives[] = {
/******* function declarations ********/
/******* added by -Wall project *******/
-void freefile(struct filepointer * fp);
void redirect(char * line, char * makefile );
struct inclist inclist[ MAXFILES ],
@@ -495,7 +492,7 @@ struct filepointer *getfile(file)
/* Since off_t is larger than size_t, need to test for
* truncation.
*/
- if ( malloc_size != size_backup )
+ if ( (off_t)malloc_size != size_backup )
{
close( fd );
warning("makedepend: File \"%s\" size larger than can fit in size_t. Cannot allocate memory for contents.\n", file);
@@ -726,69 +723,38 @@ void redirect(line, makefile)
fclose(fdin);
}
-#if NeedVarargsPrototypes
-int fatalerr(char *msg, ...)
-#else
-/*VARARGS*/
-int fatalerr(msg,x1,x2,x3,x4,x5,x6,x7,x8,x9)
- char *msg;
-#endif
+void fatalerr(char *msg, ...)
{
-#if NeedVarargsPrototypes
va_list args;
-#endif
fprintf(stderr, "%s: error: ", ProgramName);
-#if NeedVarargsPrototypes
va_start(args, msg);
vfprintf(stderr, msg, args);
va_end(args);
-#else
- fprintf(stderr, msg,x1,x2,x3,x4,x5,x6,x7,x8,x9);
-#endif
exit (1);
}
-#if NeedVarargsPrototypes
-int warning(char *msg, ...)
-#else
-/*VARARGS0*/
-int warning(msg,x1,x2,x3,x4,x5,x6,x7,x8,x9)
- char *msg;
-#endif
+void warning(char *msg, ...)
{
#ifdef DEBUG_MKDEPEND
-#if NeedVarargsPrototypes
va_list args;
-#endif
fprintf(stderr, "%s: warning: ", ProgramName);
-#if NeedVarargsPrototypes
va_start(args, msg);
vfprintf(stderr, msg, args);
va_end(args);
#else
- fprintf(stderr, msg,x1,x2,x3,x4,x5,x6,x7,x8,x9);
-#endif
+ (void)msg;
#endif /* DEBUG_MKDEPEND */
- return 0;
}
-#if NeedVarargsPrototypes
void warning1(char *msg, ...)
-#else
-/*VARARGS0*/
-void warning1(msg,x1,x2,x3,x4,x5,x6,x7,x8,x9)
- char *msg;
-#endif
{
#ifdef DEBUG_MKDEPEND
-#if NeedVarargsPrototypes
va_list args;
va_start(args, msg);
vfprintf(stderr, msg, args);
va_end(args);
#else
- fprintf(stderr, msg,x1,x2,x3,x4,x5,x6,x7,x8,x9);
-#endif
+ (void)msg;
#endif /* DEBUG_MKDEPEND */
}
@@ -809,13 +775,15 @@ void convert_slashes(path)
if (*ptr == '\\')
*ptr = '/';
};
+#else
+ (void)path;
#endif
}
char* append_slash(path)
char* path;
{
- char *ptr, *new_string;
+ char *new_string;
if ((path[strlen(path) - 1] == '/') || (path[strlen(path) - 1] == '\\')) {
new_string = path;
} else {
diff --git a/soltools/mkdepend/parse.c b/soltools/mkdepend/parse.c
index b98cfce5b6a8..31d48bf2bbc5 100644
--- a/soltools/mkdepend/parse.c
+++ b/soltools/mkdepend/parse.c
@@ -29,6 +29,13 @@ in this Software without prior written authorization from the X Consortium.
#include "def.h"
char *hash_lookup( char *symbol, struct symhash *symbols );
void hash_undefine( char *symbol, struct symhash *symbols );
+int gobble( register struct filepointer *filep, struct inclist *file,
+ struct inclist *file_red, struct symhash *symbols );
+int deftype ( register char *line, register struct filepointer *filep,
+ register struct inclist *file_red, register struct inclist *file,
+ int parse_it, struct symhash *symbols);
+int zero_value(register char *exp, register struct filepointer *filep,
+ register struct inclist *file_red, register struct symhash *symbols);
extern char *directives[];
extern struct symhash *maininclist;
@@ -412,8 +419,7 @@ static int hash( str )
{
/* Hash (Kernighan and Ritchie) */
register unsigned int hashval = 0;
- register unsigned int i = 0;
- char *s = str;
+ //char *s = str;
for ( ; *str; str++ )
{
diff --git a/soltools/mkdepend/pr.c b/soltools/mkdepend/pr.c
index 78b56e23b313..1319972f99c5 100644
--- a/soltools/mkdepend/pr.c
+++ b/soltools/mkdepend/pr.c
@@ -44,6 +44,7 @@ void add_include(filep, file, file_red, include, dot, failOK, incCollection, sym
struct inclist *file, *file_red;
char *include;
boolean dot;
+ boolean failOK;
struct IncludesCollection* incCollection;
struct symhash *symbols;
{
diff --git a/soltools/testhxx/create.pl b/soltools/testhxx/create.pl
index 325d0f896135..5c9f04118c78 100644
--- a/soltools/testhxx/create.pl
+++ b/soltools/testhxx/create.pl
@@ -66,27 +66,7 @@ if ($ENV{OS} eq 'LINUX') {
print STDOUT 'unlink ${my_tmp} || exit 1', "\n";
print STDOUT 'unlink ${my_tmp}.out || exit 1', "\n";
print STDOUT 'exit ${my_ret}', "\n";
-} elsif ($ENV{OS} eq 'WNT' and $ENV{USE_SHELL} eq '4nt') {
- 1 while $in =~ s!\s+-I\s*\.\S*\s*! !g; # discard relative includes
- $in =~ s!(\s+-I\s*)(?i:$solarversion)(\S*)!$1%SOLARVERSION%$2!og;
- # macrofy includes to solver
- $in =~ s!\s+-Fo\s*\S+! -Fo%my_tmp%.obj! || die 'bad input: no -Fo';
- $in =~ s!\s+-Zi\s! !;
- $in =~ s!\s+-Fd\s*\S+!!;
- $in =~ s!\S+\\testhxx.cxx!%my_tmp%!
- || die 'bad input: no source file';
- print STDOUT '@ECHO OFF', "\n";
- print STDOUT 'SET my_tmp=%TMP%\%_PID%_include.cc', "\n";
- print STDOUT 'ECHO #include "%@REPLACE[\\,/,%@FULL[%1]]" > %my_tmp%', "\n";
- print STDOUT $in, ' > %my_tmp%.out', "\n";
- print STDOUT 'SET my_ret=%ERRORLEVEL%', "\n";
- print STDOUT 'IF %my_ret% != 0',
- ' sed -e s!%@FILENAME[%my_tmp%]!%@REPLACE[\\,\\\\,%1]! %my_tmp%.out',
- ' 1>&2', "\n";
- print STDOUT 'DEL /EQ %my_tmp% %my_tmp%.obj %my_tmp%.pdb %my_tmp%.out',
- "\n";
- print STDOUT 'QUIT %my_ret%', "\n";
-} elsif ($ENV{OS} eq 'WNT' and $ENV{USE_SHELL} ne '4nt') {
+} elsif ($ENV{OS} eq 'WNT') {
if ($ENV{COM} eq 'GCC') {
1 while $in =~ s!\s+-I\s*\.\S*\s*! !g; # discard relative includes
$in =~ s!(\s+-I\s*)(?i:$solarversion)(\S*)!$1\${SOLARVERSION}$2!og;
diff --git a/soltools/testhxx/makefile.mk b/soltools/testhxx/makefile.mk
index 1b2a0ce42923..7a1ab97273e3 100644
--- a/soltools/testhxx/makefile.mk
+++ b/soltools/testhxx/makefile.mk
@@ -38,21 +38,13 @@ CAPTURE_OUTPUT = > $(MISC)$/testhxx.output && $(TOUCH) $(SLO)$/testhxx.obj
SLOFILES = $(SLO)$/testhxx.obj
-.IF "$(USE_SHELL)" == "4nt"
-MY_SCRIPT_EXT := .btm
-MY_EXECUTABLE := @ echo
-.ELSE
-MY_SCRIPT_EXT :=
-MY_EXECUTABLE := chmod +x
-.ENDIF
-
.INCLUDE: target.mk
-ALLTAR: $(BIN)$/$(TARGET)$(MY_SCRIPT_EXT)
+ALLTAR: $(BIN)$/$(TARGET)
-$(BIN)$/$(TARGET)$(MY_SCRIPT_EXT) .ERRREMOVE : $(MISC)$/testhxx.output create.pl
+$(BIN)$/$(TARGET) .ERRREMOVE : $(MISC)$/testhxx.output create.pl
$(PERL) -w create.pl < $(MISC)$/testhxx.output > $@
- $(MY_EXECUTABLE) $@
+ chmod +x $@
$(MISC)$/testhxx.output: $(SLO)$/testhxx.obj
$(TOUCH) $<
diff --git a/sot/source/sdstor/sdintern.hdb b/sot/source/sdstor/sdintern.hdb
deleted file mode 100644
index 4dfbc69be013..000000000000
--- a/sot/source/sdstor/sdintern.hdb
+++ /dev/null
@@ -1,22 +0,0 @@
-write "/*************************************************************************"
-write "* SDINTERN.HXX"
-write "* __DATE__"
-write "* (c) 1992-1995 STAR DIVISION"
-write "*************************************************************************/"
-write "#ifndef _SDINTERN_HXX"
-write "#define _SDINTERN_HXX"
-write "#ifndef _SOLAR_H"
-write "#include <tools/solar.h>"
-write "#endif"
-write "#ifndef _STREAM_HXX"
-write "#include <tools/stream.hxx>"
-write "#endif"
-file stg.hxx
-file stgelem.hxx
-file stgcache.hxx
-file stgio.hxx
-file stgstrms.hxx
-file stgavl.hxx
-file stgdir.hxx
-write "#endif"
-
diff --git a/starmath/prj/build.lst b/starmath/prj/build.lst
index cb6fd9358454..cbfff6772402 100644
--- a/starmath/prj/build.lst
+++ b/starmath/prj/build.lst
@@ -6,3 +6,4 @@ sm starmath\res get - all sm_res NULL
sm starmath\sdi nmake - all sm_sdi NULL
sm starmath\source nmake - all sm_sorce sm_sdi sm_inc NULL
sm starmath\util nmake - all sm_util sm_sorce NULL
+sm starmath\qa\unoapi nmake - all sm_qa_unoapi NULL
diff --git a/starmath/qa/unoapi/Test.java b/starmath/qa/unoapi/Test.java
new file mode 100644
index 000000000000..520491da3a8c
--- /dev/null
+++ b/starmath/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.starmath.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "sm.sce", "-xcl", "knownissues.xcl", "-cs",
+ connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/starmath/qa/unoapi/makefile.mk b/starmath/qa/unoapi/makefile.mk
index 93169ee51708..68fcfe744868 100644
--- a/starmath/qa/unoapi/makefile.mk
+++ b/starmath/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,19 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=starmath
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = starmath
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/starmath/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce sm.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
+.END
diff --git a/starmath/source/smres.src b/starmath/source/smres.src
index 64891a95daf9..ec6d8114759b 100644
--- a/starmath/source/smres.src
+++ b/starmath/source/smres.src
@@ -3559,7 +3559,7 @@ StringArray RID_PRINTUIOPTIONS
{
< "%PRODUCTNAME %s"; >;
< "Contents"; >;
- < "~Title row"; >;
+ < "~Title"; >;
< "Specifies whether you want the name of the document to be included in the printout"; >;
< "~Formula text"; >;
< "Specifies whether to include the contents of the 'Commands' window at the bottom of the printout."; >;
diff --git a/starmath/util/makefile.mk b/starmath/util/makefile.mk
index 09e738299419..1ba52411d721 100644
--- a/starmath/util/makefile.mk
+++ b/starmath/util/makefile.mk
@@ -48,7 +48,7 @@ RESLIB1SRSFILES=\
SHL1TARGET= sm$(DLLPOSTFIX)
SHL1IMPLIB= smimp
-SHL1VERSIONMAP= sm.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
@@ -73,7 +73,7 @@ SHL1STDLIBS= \
SHL2TARGET= smd$(DLLPOSTFIX)
SHL2IMPLIB= smdimp
-SHL2VERSIONMAP= sm.map
+SHL2VERSIONMAP=$(SOLARENV)/src/component.map
SHL2DEF=$(MISC)$/$(SHL2TARGET).def
DEF2NAME= $(SHL2TARGET)
@@ -90,7 +90,7 @@ SHL2STDLIBS= \
$(SALLIB)
SHL2DEPN= makefile.mk
-SHL2VERSIONMAP= smd.map
+SHL2VERSIONMAP=$(SOLARENV)/src/component.map
SHL2OBJS= $(SLO)$/smdetect.obj \
$(SLO)$/detreg.obj \
$(SLO)$/eqnolefilehdr.obj
diff --git a/starmath/util/sm.map b/starmath/util/sm.map
deleted file mode 100644
index 62f014e12ba0..000000000000
--- a/starmath/util/sm.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SM_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/starmath/util/smd.map b/starmath/util/smd.map
deleted file mode 100644
index 62f014e12ba0..000000000000
--- a/starmath/util/smd.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SM_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/stax/makefile.mk b/stax/makefile.mk
index 76f2456d3b96..6dbe81ee7ca5 100644
--- a/stax/makefile.mk
+++ b/stax/makefile.mk
@@ -49,6 +49,7 @@ all:
# --- Files --------------------------------------------------------
TARFILE_NAME=stax-api-1.0-2-sources
+TARFILE_MD5=8294d6c42e3553229af9934c5c0ed997
TARFILE_ROOTDIR=src
BUILD_ACTION=$(JAVAC) javax$/xml$/stream$/*.java && jar -cf jsr173_1.0_api.jar javax$/xml$/stream$/*.class javax$/xml$/stream$/events$/*.class javax$/xml$/stream$/util$/*.class
diff --git a/stlport/download/STLport-4.0.tar.gz b/stlport/download/STLport-4.0.tar.gz
deleted file mode 100644
index b3943d874775..000000000000
--- a/stlport/download/STLport-4.0.tar.gz
+++ /dev/null
Binary files differ
diff --git a/stlport/download/STLport-4.5-0119.tar.gz b/stlport/download/STLport-4.5-0119.tar.gz
deleted file mode 100644
index 09ca9b740615..000000000000
--- a/stlport/download/STLport-4.5-0119.tar.gz
+++ /dev/null
Binary files differ
diff --git a/stlport/download/STLport-4.5.tar.gz b/stlport/download/STLport-4.5.tar.gz
deleted file mode 100644
index 0ffc673825fb..000000000000
--- a/stlport/download/STLport-4.5.tar.gz
+++ /dev/null
Binary files differ
diff --git a/stlport/makefile.mk b/stlport/makefile.mk
index 1a2b44343849..907c0935cbe8 100644
--- a/stlport/makefile.mk
+++ b/stlport/makefile.mk
@@ -62,17 +62,21 @@ $(INCCOM)$/stlport$/vector: systemstl$/$$(@:f)
.EXPORT : CC CXX
.IF "$(COMID)"=="gcc3"
TARFILE_NAME=STLport-4.5
+ TARFILE_MD5=18f577b374d60b3c760a3a3350407632
PATCH_FILES=STLport-4.5.patch STLport-4.5-gcc43_warnings.patch
.ELIF "$(GUI)"=="WNT"
.IF "$(CCNUMVER)"<="001300000000"
TARFILE_NAME=STLport-4.0
+ TARFILE_MD5=c441926f3a552ed3e5b274b62e86af16
PATCH_FILES=STLport-4.0.patch
.ELSE
TARFILE_NAME=STLport-4.5-0119
+ TARFILE_MD5=7376930b0d3f3d77a685d94c4a3acda8
PATCH_FILES=STLport-4.5-0119.patch
.ENDIF
.ELSE
TARFILE_NAME=STLport-4.0
+ TARFILE_MD5=c441926f3a552ed3e5b274b62e86af16
PATCH_FILES=STLport-4.0.patch STLport-4.0-sunstudio12u1.patch
# To disable warnings from within STLport headers on unxsoli4 and
# unxsols4, STLport-4.0.patch had to be extended mechanically by
@@ -98,10 +102,6 @@ $(INCCOM)$/stlport$/vector: systemstl$/$$(@:f)
# stl/_epilog.h.)
.ENDIF
-.IF "$(USE_SHELL)"=="4nt"
-TAR_EXCLUDES=*/SC5/*
-.ENDIF # "$(USE_SHELL)"=="4nt"
-
ADDITIONAL_FILES=src$/gcc-3.0.mak src$/gcc-3.0-freebsd.mak src$/sunpro8.mak src$/sunpro11.mak src$/gcc-3.0-mingw.mak \
src$/gcc-3.0-os2.mak src$/gcc-3.0-os2.def src$/common_macros_os2.mak
@@ -229,21 +229,13 @@ avoid_win32_patches :
force_dmake_to_error
$(PACKAGE_DIR)$/so_custom_patch : $(PACKAGE_DIR)$/$(PATCH_FLAG_FILE)
-.IF "$(USE_SHELL)"=="4nt"
win32_custom.bat $(PACKAGE_DIR) $(BACK_PATH) && $(TOUCH) $@
-.ELSE # "$(USE_SHELL)"=="4nt"
- win32_custom.sh $(PACKAGE_DIR) $(BACK_PATH) && $(TOUCH) $@
-.ENDIF # "$(USE_SHELL)"=="4nt"
$(PACKAGE_DIR)$/$(CONFIGURE_FLAG_FILE) : $(PACKAGE_DIR)$/so_custom_patch
.IF "$(USE_NEW_SDK)"!=""
$(PACKAGE_DIR)$/win32_sdk_patch : $(PACKAGE_DIR)$/$(PATCH_FLAG_FILE)
-.IF "$(USE_SHELL)"=="4nt"
win32_sdk.bat $(PACKAGE_DIR) $(BACK_PATH) && $(TOUCH) $@
-.ELSE # "$(USE_SHELL)"=="4nt"
- win32_sdk.sh $(PACKAGE_DIR) $(BACK_PATH) && $(TOUCH) $@
-.ENDIF # "$(USE_SHELL)"=="4nt"
$(PACKAGE_DIR)$/$(CONFIGURE_FLAG_FILE) : $(PACKAGE_DIR)$/win32_sdk_patch
.ENDIF # "$(USE_NEW_SDK)"!=""
diff --git a/stoc/prj/build.lst b/stoc/prj/build.lst
index 2550563c8c34..1fb7d34eeb32 100644
--- a/stoc/prj/build.lst
+++ b/stoc/prj/build.lst
@@ -22,3 +22,4 @@ tc stoc\source\javavm nmake - all tc_jvm tc_inc NULL
tc stoc\source\javaloader nmake - all tc_jvload tc_inc NULL
tc stoc\source\uriproc nmake - all tc_uriproc tc_stserv tc_inc NULL
tc stoc\util nmake - all tc_util tc_boot tc_stserv tc_tcv tc_uriproc tc_smgr tc_inc tc_sreg tc_defr tc_ireg tc_regtd tc_tdmng tc_sec NULL
+tc stoc\test\uriproc nmake - all tc_test_uriproc tc_util NULL
diff --git a/stoc/source/corereflection/corefl.map b/stoc/source/corereflection/corefl.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/stoc/source/corereflection/corefl.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/stoc/source/corereflection/makefile.mk b/stoc/source/corereflection/makefile.mk
index 1a37f93b4bb4..b61eb13aa9ee 100644
--- a/stoc/source/corereflection/makefile.mk
+++ b/stoc/source/corereflection/makefile.mk
@@ -55,7 +55,7 @@ NOOPTFILES += $(SLO)$/criface.obj
.ENDIF
SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = corefl.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1STDLIBS= \
$(CPPULIB) \
$(CPPUHELPERLIB) \
diff --git a/stoc/source/inspect/introspection.map b/stoc/source/inspect/introspection.map
deleted file mode 100644
index c2806d230702..000000000000
--- a/stoc/source/inspect/introspection.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3.1 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/stoc/source/inspect/makefile.mk b/stoc/source/inspect/makefile.mk
index 3a5630d13995..80e87dbf7cab 100644
--- a/stoc/source/inspect/makefile.mk
+++ b/stoc/source/inspect/makefile.mk
@@ -50,7 +50,7 @@ SHL1STDLIBS= \
$(CPPUHELPERLIB) \
$(SALLIB)
-SHL1VERSIONMAP = introspection.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1RPATH=URELIB
SHL1DEPN=
diff --git a/stoc/source/invocation/inv.map b/stoc/source/invocation/inv.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/stoc/source/invocation/inv.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/stoc/source/invocation/makefile.mk b/stoc/source/invocation/makefile.mk
index 8e50bfba1285..c170bf6b614e 100644
--- a/stoc/source/invocation/makefile.mk
+++ b/stoc/source/invocation/makefile.mk
@@ -50,7 +50,7 @@ SHL1STDLIBS= \
$(CPPUHELPERLIB) \
$(SALLIB)
-SHL1VERSIONMAP = inv.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1DEPN=
SHL1IMPLIB= i$(TARGET)
SHL1LIBS= $(SLB)$/$(TARGET).lib
diff --git a/stoc/source/invocation_adapterfactory/invadp.map b/stoc/source/invocation_adapterfactory/invadp.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/stoc/source/invocation_adapterfactory/invadp.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/stoc/source/invocation_adapterfactory/makefile.mk b/stoc/source/invocation_adapterfactory/makefile.mk
index 2edb30ea5eb0..66568af039e7 100644
--- a/stoc/source/invocation_adapterfactory/makefile.mk
+++ b/stoc/source/invocation_adapterfactory/makefile.mk
@@ -50,7 +50,7 @@ SHL1STDLIBS= \
$(CPPUHELPERLIB) \
$(SALLIB)
-SHL1VERSIONMAP = invadp.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1RPATH=URELIB
SHL1DEPN=
diff --git a/stoc/source/javaloader/javaloader.map b/stoc/source/javaloader/javaloader.map
deleted file mode 100644
index ac2c3750bfe0..000000000000
--- a/stoc/source/javaloader/javaloader.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/stoc/source/javaloader/makefile.mk b/stoc/source/javaloader/makefile.mk
index ef35b6921964..60eea6a23457 100644
--- a/stoc/source/javaloader/makefile.mk
+++ b/stoc/source/javaloader/makefile.mk
@@ -52,7 +52,7 @@ SHL1STDLIBS=\
$(SALLIB) \
$(JVMACCESSLIB)
-SHL1VERSIONMAP = javaloader.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1DEPN=
SHL1IMPLIB= i$(TARGET)
SHL1LIBS= $(SLB)$/$(TARGET).lib
diff --git a/stoc/source/javavm/jen.map b/stoc/source/javavm/jen.map
deleted file mode 100644
index ac2c3750bfe0..000000000000
--- a/stoc/source/javavm/jen.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/stoc/source/javavm/makefile.mk b/stoc/source/javavm/makefile.mk
index 4be9d87f46be..96908d10d1a1 100644
--- a/stoc/source/javavm/makefile.mk
+++ b/stoc/source/javavm/makefile.mk
@@ -54,7 +54,7 @@ SLOFILES= \
$(SLO)$/interact.obj
SHL1TARGET= $(TARGET)
-SHL1VERSIONMAP = jen.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1STDLIBS= \
$(CPPUHELPERLIB) \
$(CPPULIB) \
diff --git a/stoc/source/namingservice/makefile.mk b/stoc/source/namingservice/makefile.mk
index 00015b35e1f5..424180e114a1 100644
--- a/stoc/source/namingservice/makefile.mk
+++ b/stoc/source/namingservice/makefile.mk
@@ -50,7 +50,7 @@ SHL1STDLIBS= \
$(CPPUHELPERLIB) \
$(SALLIB)
-SHL1VERSIONMAP = namingservice.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1DEPN=
SHL1IMPLIB= i$(TARGET)
diff --git a/stoc/source/namingservice/namingservice.map b/stoc/source/namingservice/namingservice.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/stoc/source/namingservice/namingservice.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/stoc/source/proxy_factory/makefile.mk b/stoc/source/proxy_factory/makefile.mk
index bcb630cb0073..b38dac146ae1 100644
--- a/stoc/source/proxy_factory/makefile.mk
+++ b/stoc/source/proxy_factory/makefile.mk
@@ -45,7 +45,7 @@ SLOFILES= \
$(SLO)$/proxyfac.obj
SHL1TARGET=$(TARGET)
-SHL1VERSIONMAP = proxyfac.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1STDLIBS= \
$(CPPULIB) \
diff --git a/stoc/source/proxy_factory/proxyfac.map b/stoc/source/proxy_factory/proxyfac.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/stoc/source/proxy_factory/proxyfac.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/stoc/test/registry_tdprovider/makefile.mk b/stoc/test/registry_tdprovider/makefile.mk
index 0b86669218b5..f258963f9299 100644
--- a/stoc/test/registry_tdprovider/makefile.mk
+++ b/stoc/test/registry_tdprovider/makefile.mk
@@ -40,16 +40,11 @@ SLOFILES = $(SLO)$/testregistrytdprovider.obj
SHL1TARGET = testregistrytdprovider.uno
SHL1OBJS = $(SLOFILES)
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1STDLIBS = $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB)
SHL1IMPLIB = itestregistrytdprovider
DEF1NAME = $(SHL1TARGET)
-.IF "$(COMNAME)" == "gcc3"
-SHL1VERSIONMAP = testregistrytdprovider.gcc3.map
-.ELSE
-SHL1VERSIONMAP = testregistrytdprovider.map
-.ENDIF
-
.INCLUDE: target.mk
ALLTAR: test
diff --git a/stoc/test/registry_tdprovider/testregistrytdprovider.gcc3.map b/stoc/test/registry_tdprovider/testregistrytdprovider.gcc3.map
deleted file mode 100644
index 609b64e1e0ca..000000000000
--- a/stoc/test/registry_tdprovider/testregistrytdprovider.gcc3.map
+++ /dev/null
@@ -1,38 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
-
- _ZN4_STL7num_put*; # STLport
-
- local:
- *;
-};
diff --git a/stoc/test/registry_tdprovider/testregistrytdprovider.map b/stoc/test/registry_tdprovider/testregistrytdprovider.map
deleted file mode 100644
index e4b038369818..000000000000
--- a/stoc/test/registry_tdprovider/testregistrytdprovider.map
+++ /dev/null
@@ -1,36 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/stoc/test/tdmanager/makefile.mk b/stoc/test/tdmanager/makefile.mk
index e3276b19eede..8f39ac552038 100644
--- a/stoc/test/tdmanager/makefile.mk
+++ b/stoc/test/tdmanager/makefile.mk
@@ -40,16 +40,11 @@ SLOFILES = $(SLO)$/testtdmanager.obj
SHL1TARGET = testtdmanager.uno
SHL1OBJS = $(SLOFILES)
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1STDLIBS = $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB)
SHL1IMPLIB = itesttdmanager
DEF1NAME = $(SHL1TARGET)
-.IF "$(COMNAME)" == "gcc3"
-SHL1VERSIONMAP = testtdmanager.gcc3.map
-.ELSE
-SHL1VERSIONMAP = testtdmanager.map
-.ENDIF
-
.INCLUDE: target.mk
ALLTAR: test
diff --git a/stoc/test/tdmanager/testtdmanager.map b/stoc/test/tdmanager/testtdmanager.map
deleted file mode 100644
index e4b038369818..000000000000
--- a/stoc/test/tdmanager/testtdmanager.map
+++ /dev/null
@@ -1,36 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/stoc/test/testsmgr_cpnt.map b/stoc/test/testsmgr_cpnt.map
index d8c4047c5603..ab5ed357b461 100644
--- a/stoc/test/testsmgr_cpnt.map
+++ b/stoc/test/testsmgr_cpnt.map
@@ -1,4 +1,4 @@
-UDK_3.1 {
+UDK_3_0_0 {
global:
component_getImplementationEnvironment;
component_writeInfo;
diff --git a/stoc/test/uriproc/makefile.mk b/stoc/test/uriproc/makefile.mk
index d529f8623075..cfdc33e7586b 100644
--- a/stoc/test/uriproc/makefile.mk
+++ b/stoc/test/uriproc/makefile.mk
@@ -25,7 +25,11 @@
#
#*************************************************************************
-PRJ := ..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
+
+PRJ := ../..
PRJNAME := stoc
TARGET := test_uriproc
@@ -33,27 +37,14 @@ ENABLE_EXCEPTIONS := TRUE
.INCLUDE: settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
DLLPRE = # no leading "lib" on .so files
-UNOTYPES = \
- com.sun.star.beans.XPropertySet \
- com.sun.star.lang.XComponent \
- com.sun.star.lang.XMultiComponentFactory \
- com.sun.star.uno.XComponentContext \
- com.sun.star.uri.ExternalUriReferenceTranslator \
- com.sun.star.uri.UriReferenceFactory \
- com.sun.star.uri.VndSunStarPkgUrlReferenceFactory \
- com.sun.star.uri.XExternalUriReferenceTranslator \
- com.sun.star.uri.XUriReference \
- com.sun.star.uri.XUriReferenceFactory \
- com.sun.star.uri.XVndSunStarPkgUrlReferenceFactory \
- com.sun.star.uri.XVndSunStarScriptUrlReference \
- com.sun.star.util.XMacroExpander
-
SHL1TARGET = $(TARGET)
-SHL1OBJS = $(SLO)$/test_uriproc.obj
-SHL1STDLIBS = $(CPPULIB) $(CPPUHELPERLIB) $(CPPUNITLIB) $(SALLIB) $(TESTSHL2LIB)
+SHL1OBJS = $(SLO)/test_uriproc.obj
+SHL1STDLIBS = $(CPPULIB) $(CPPUHELPERLIB) $(CPPUNITLIB) $(SALLIB)
SHL1VERSIONMAP = version.map
+SHL1RPATH = NONE
SHL1IMPLIB = i$(SHL1TARGET)
DEF1NAME = $(SHL1TARGET)
@@ -61,11 +52,24 @@ SLOFILES = $(SHL1OBJS)
.INCLUDE: target.mk
+.IF "$(OS)" == "WNT"
+my_file = file:///
+.ELSE
+my_file = file://
+.END
+
ALLTAR: test
-$(BIN)$/$(TARGET).rdb .ERRREMOVE:
- $(COPY) $(SOLARBINDIR)$/types.rdb $@
- regcomp -register -r $@ -c $(subst,$/,/ $(DLLDEST)$/stocservices.uno$(DLLPOST))
+test .PHONY: $(SHL1TARGETN) $(MISC)/$(TARGET)/services.rdb
+ $(CPPUNITTESTER) $(SHL1TARGETN) \
+ -env:UNO_SERVICES=$(my_file)$(PWD)/$(MISC)/$(TARGET)/services.rdb \
+ -env:UNO_TYPES=$(my_file)$(SOLARBINDIR)/udkapi.rdb \
+ -env:OOO_TEST_PREFIX=$(my_file)$(PWD)/$(DLLDEST)/
+
+$(MISC)/$(TARGET)/services.rdb:
+ $(MKDIRHIER) $(@:d)
+ $(RM) $@
+ $(REGCOMP) -register -r $@ -wop=vnd.sun.star.expand:\$${{OOO_TEST_PREFIX}} \
+ -c $(DLLDEST)/stocservices.uno$(DLLPOST)
-test .PHONY: $(SHL1TARGETN) $(BIN)$/$(TARGET).rdb
- testshl2 $(SHL1TARGETN) -forward $(BIN)$/$(TARGET).rdb
+.END
diff --git a/stoc/test/uriproc/test_uriproc.cxx b/stoc/test/uriproc/test_uriproc.cxx
index 4e46d29644f0..a7ad8d9abf94 100644
--- a/stoc/test/uriproc/test_uriproc.cxx
+++ b/stoc/test/uriproc/test_uriproc.cxx
@@ -28,7 +28,6 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_stoc.hxx"
-#include "com/sun/star/beans/XPropertySet.hpp"
#include "com/sun/star/lang/XComponent.hpp"
#include "com/sun/star/lang/XMultiComponentFactory.hpp"
#include "com/sun/star/uno/Reference.hxx"
@@ -43,10 +42,12 @@
#include "com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.hpp"
#include "com/sun/star/uri/XVndSunStarScriptUrlReference.hpp"
#include "com/sun/star/util/XMacroExpander.hpp"
-#include "cppuhelper/servicefactory.hxx"
-#include "testshl/simpleheader.hxx"
+#include "cppuhelper/bootstrap.hxx"
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
#include "osl/diagnose.h"
-#include "osl/thread.h"
#include "rtl/string.h"
#include "rtl/string.hxx"
#include "rtl/textenc.h"
@@ -148,20 +149,12 @@ private:
};
void Test::setUp() {
- char const * registry = getForwardString();
- css::uno::Reference< css::lang::XMultiServiceFactory > factory(
- cppu::createRegistryServiceFactory(
- rtl::OUString(
- registry, rtl_str_getLength(registry),
- osl_getThreadTextEncoding())));
- //TODO: check for string conversion failure
- css::uno::Reference< css::beans::XPropertySet >(
- factory, css::uno::UNO_QUERY_THROW)->getPropertyValue(
- rtl::OUString::createFromAscii("DefaultContext")) >>= m_context;
+ m_context = cppu::defaultBootstrap_InitialComponentContext();
m_uriFactory = css::uri::UriReferenceFactory::create(m_context);
}
void Test::tearDown() {
+ m_uriFactory.clear();
css::uno::Reference< css::lang::XComponent >(
m_context, css::uno::UNO_QUERY_THROW)->dispose();
}
@@ -1004,8 +997,8 @@ void Test::testPkgUrlFactory() {
}
}
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "alltests");
+CPPUNIT_TEST_SUITE_REGISTRATION(Test);
}
-NOADDITIONAL;
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/stoc/test/uriproc/version.map b/stoc/test/uriproc/version.map
index 7321bbca16ad..3308588ef6f8 100644
--- a/stoc/test/uriproc/version.map
+++ b/stoc/test/uriproc/version.map
@@ -27,7 +27,7 @@
UDK_3_0_0 {
global:
- registerAllTestFunction;
+ cppunitTestPlugIn;
local:
*;
diff --git a/stoc/util/bootstrap.map b/stoc/util/bootstrap.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/stoc/util/bootstrap.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/stoc/util/makefile.mk b/stoc/util/makefile.mk
index af2ed92edccb..4243d45511fe 100644
--- a/stoc/util/makefile.mk
+++ b/stoc/util/makefile.mk
@@ -50,7 +50,7 @@ LIB1FILES= $(SLB)$/bootstrap.lib \
$(SLB)$/regtypeprov.lib \
$(SLB)$/typemgr.lib
-SHL1VERSIONMAP = bootstrap.map
+SHL1VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL1STDLIBS= \
$(CPPULIB) \
@@ -75,7 +75,7 @@ LIB2FILES= \
$(SLB)$/typeconverter.lib \
$(SLB)$/uriproc.lib
-SHL2VERSIONMAP = stocservices.map
+SHL2VERSIONMAP = $(SOLARENV)/src/unloadablecomponent.map
SHL2STDLIBS= \
$(CPPULIB) \
diff --git a/stoc/util/stocservices.map b/stoc/util/stocservices.map
deleted file mode 100644
index 30c5bb729ac7..000000000000
--- a/stoc/util/stocservices.map
+++ /dev/null
@@ -1,9 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- component_canUnload;
- local:
- *;
-};
diff --git a/svl/qa/complex/ConfigItems/helper/exports.map b/svl/qa/complex/ConfigItems/helper/exports.map
deleted file mode 100644
index 85610ad80888..000000000000
--- a/svl/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/svl/qa/complex/ConfigItems/helper/makefile.mk b/svl/qa/complex/ConfigItems/helper/makefile.mk
index 2c949da7b168..13ea12106792 100644
--- a/svl/qa/complex/ConfigItems/helper/makefile.mk
+++ b/svl/qa/complex/ConfigItems/helper/makefile.mk
@@ -65,7 +65,7 @@ SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
-SHL1VERSIONMAP= exports.map
+SHL1VERSIONMAP= $(SOLARENV)/src/component.map
# --- Targets ------------------------------------------------------
diff --git a/svl/qa/makefile.mk b/svl/qa/makefile.mk
index 4e107e31f924..7e8c7ee795cc 100644
--- a/svl/qa/makefile.mk
+++ b/svl/qa/makefile.mk
@@ -35,6 +35,8 @@ ENABLE_EXCEPTIONS = true
.INCLUDE : settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:job by codegen.pl
SHL1OBJS= \
diff --git a/svl/source/fsstor/exports.map b/svl/source/fsstor/exports.map
deleted file mode 100644
index f4ed78b9e970..000000000000
--- a/svl/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/svl/source/fsstor/makefile.mk b/svl/source/fsstor/makefile.mk
index 43515155d63d..dc91814772f9 100644
--- a/svl/source/fsstor/makefile.mk
+++ b/svl/source/fsstor/makefile.mk
@@ -56,7 +56,7 @@ SHL1STDLIBS=\
$(CPPULIB) \
$(SALLIB)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
diff --git a/svl/source/passwordcontainer/exports.map b/svl/source/passwordcontainer/exports.map
deleted file mode 100644
index f4ed78b9e970..000000000000
--- a/svl/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/svl/source/passwordcontainer/makefile.mk b/svl/source/passwordcontainer/makefile.mk
index 92a9993fd251..d9eb9615cf80 100644
--- a/svl/source/passwordcontainer/makefile.mk
+++ b/svl/source/passwordcontainer/makefile.mk
@@ -52,7 +52,7 @@ SHL1STDLIBS=\
$(CPPULIB) \
$(SALLIB)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
diff --git a/svtools/prj/build.lst b/svtools/prj/build.lst
index 4b2cd9f9b26b..15dbc36467d2 100644
--- a/svtools/prj/build.lst
+++ b/svtools/prj/build.lst
@@ -27,3 +27,4 @@ st svtools\util nmake - all st_util st_svtgraphic st
st svtools\source\hatchwindow nmake - all st_hatchwin st_inc NULL
st svtools\source\productregistration nmake - all st_prodreg st_util st_inc NULL
st svtools\workben\unodialog nmake - all st_workben_udlg st_util NULL
+st svtools\qa\unoapi nmake - all st_qa_unoapi NULL
diff --git a/svtools/qa/unoapi/Test.java b/svtools/qa/unoapi/Test.java
new file mode 100644
index 000000000000..8ae4af55ed61
--- /dev/null
+++ b/svtools/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.svtools.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "svtools.sce", "-xcl", "knownissues.xcl", "-cs",
+ connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/svtools/qa/unoapi/makefile.mk b/svtools/qa/unoapi/makefile.mk
index 2d75735d4b0d..e3afb77e637a 100644
--- a/svtools/qa/unoapi/makefile.mk
+++ b/svtools/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,19 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=svtools
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = svtools
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/svtools/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce svtools.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
+.END
diff --git a/svtools/source/hatchwindow/exports.map b/svtools/source/hatchwindow/exports.map
deleted file mode 100644
index f4ed78b9e970..000000000000
--- a/svtools/source/hatchwindow/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/hatchwindow/makefile.mk b/svtools/source/hatchwindow/makefile.mk
index c5a4dab09762..316e4ab1bfe2 100644
--- a/svtools/source/hatchwindow/makefile.mk
+++ b/svtools/source/hatchwindow/makefile.mk
@@ -55,7 +55,7 @@ SHL1STDLIBS=\
$(CPPULIB) \
$(SALLIB)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
diff --git a/svtools/source/misc/transfer.cxx b/svtools/source/misc/transfer.cxx
index 4628c0d4b846..268533ebb8c8 100644
--- a/svtools/source/misc/transfer.cxx
+++ b/svtools/source/misc/transfer.cxx
@@ -42,6 +42,7 @@
#include <vos/mutex.hxx>
#include <rtl/memory.h>
#include <rtl/uuid.h>
+#include <rtl/uri.hxx>
#ifndef DEBUG_HXX
#include <tools/debug.hxx>
#endif
@@ -154,6 +155,10 @@ SvStream& operator<<( SvStream& rOStm, const TransferableObjectDescriptor& rObjD
}
// -----------------------------------------------------------------------------
+// the reading of the parameter is done using the special service ::com::sun::star::datatransfer::MimeContentType,
+// a similar approach should be implemented for creation of the mimetype string;
+// for now the set of acceptable characters has to be hardcoded, in future it should be part of the service that creates the mimetype
+const ::rtl::OUString aQuotedParamChars = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "()<>@,;:\\\"/[]?=!#$%&'*+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~. " ) );
static ::rtl::OUString ImplGetParameterString( const TransferableObjectDescriptor& rObjDesc )
{
@@ -177,8 +182,21 @@ static ::rtl::OUString ImplGetParameterString( const TransferableObjectDescripto
if( rObjDesc.maDisplayName.Len() )
{
+ // the display name might contain unacceptable characters, encode all of them
+ // this seems to be the only parameter currently that might contain such characters
+ sal_Bool pToAccept[128];
+ for ( sal_Int32 nBInd = 0; nBInd < 128; nBInd++ )
+ pToAccept[nBInd] = sal_False;
+
+ for ( sal_Int32 nInd = 0; nInd < aQuotedParamChars.getLength(); nInd++ )
+ {
+ sal_Unicode nChar = aQuotedParamChars.getStr()[nInd];
+ if ( nChar < 128 )
+ pToAccept[nChar] = sal_True;
+ }
+
aParams += ::rtl::OUString::createFromAscii( ";displayname=\"" );
- aParams += rObjDesc.maDisplayName;
+ aParams += ::rtl::Uri::encode( rObjDesc.maDisplayName, pToAccept, rtl_UriEncodeIgnoreEscapes, RTL_TEXTENCODING_UTF8 );
aParams += aChar;
}
@@ -248,7 +266,9 @@ static void ImplSetParameterString( TransferableObjectDescriptor& rObjDesc, cons
if( xMimeType->hasParameter( aDisplayNameString ) )
{
- rObjDesc.maDisplayName = xMimeType->getParameterValue( aDisplayNameString );
+ // the display name might contain unacceptable characters, in this case they should be encoded
+ // this seems to be the only parameter currently that might contain such characters
+ rObjDesc.maDisplayName = ::rtl::Uri::decode( xMimeType->getParameterValue( aDisplayNameString ), rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8 );
}
if( xMimeType->hasParameter( aViewAspectString ) )
diff --git a/svtools/source/productregistration/exports.map b/svtools/source/productregistration/exports.map
deleted file mode 100644
index f4ed78b9e970..000000000000
--- a/svtools/source/productregistration/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/productregistration/makefile.mk b/svtools/source/productregistration/makefile.mk
index 0b970b651059..a26e8feca753 100644
--- a/svtools/source/productregistration/makefile.mk
+++ b/svtools/source/productregistration/makefile.mk
@@ -59,7 +59,7 @@ SHL1STDLIBS=\
$(CPPULIB) \
$(SALLIB)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
diff --git a/svtools/workben/unodialog/makefile.mk b/svtools/workben/unodialog/makefile.mk
index e9adb63d9b09..f18feffce5c3 100644
--- a/svtools/workben/unodialog/makefile.mk
+++ b/svtools/workben/unodialog/makefile.mk
@@ -56,7 +56,7 @@ SLOFILES= $(SLO)$/unodialogsample.obj \
# --- library -----------------------------------
SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
-SHL1VERSIONMAP=$(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS= \
$(CPPULIB) \
diff --git a/svtools/workben/unodialog/udlg.map b/svtools/workben/unodialog/udlg.map
deleted file mode 100644
index 276f9673d067..000000000000
--- a/svtools/workben/unodialog/udlg.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDLG_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/svx/prj/build.lst b/svx/prj/build.lst
index 5b99711edaa2..7fe1114e7e66 100644
--- a/svx/prj/build.lst
+++ b/svx/prj/build.lst
@@ -35,3 +35,4 @@ sx svx\source\customshapes nmake - all sx_customshapes sx_inc NULL
sx svx\source\toolbars nmake - all sx_toolbars sx_inc NULL
sx svx\util nmake - all sx_util sx_3deng sx_dlg sx_draw sx_attribute sx_properties sx_contact sx_event sx_animation sx_primitive2d sx_primitive3d sx_overlay sx_fmcmp sx_form sx_gall sx_items sx_mnuc sx_sdi sx_stbc sx_tbxc sx_undrw sx_ungal sx_xml sx_xout sx_accessibility sx_intro sx_customshapes sx_toolbars sx_table sx_smarttags NULL
sx svx\source\gengal nmake - all sx_gengal sx_util NULL
+sx svx\qa\unoapi nmake - all sx_qa_unoapi NULL
diff --git a/svx/qa/unoapi/Test.java b/svx/qa/unoapi/Test.java
new file mode 100644
index 000000000000..90abd12776d0
--- /dev/null
+++ b/svx/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.svx.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "svx.sce", "-xcl", "knownissues.xcl", "-tdoc",
+ "testdocuments", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/svx/qa/unoapi/makefile.mk b/svx/qa/unoapi/makefile.mk
index a64401995a51..133e9a3458e4 100644
--- a/svx/qa/unoapi/makefile.mk
+++ b/svx/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,19 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=svx
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = svx
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/svx/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce svx.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
+.END
diff --git a/svx/source/dialog/docrecovery.src b/svx/source/dialog/docrecovery.src
index 5bcde8bdf071..7c1532b71b55 100644
--- a/svx/source/dialog/docrecovery.src
+++ b/svx/source/dialog/docrecovery.src
@@ -370,7 +370,7 @@ TabPage RID_SVXPAGE_ERR_REP_WELCOME
Pos = MAP_APPFONT( RECOV_COL1, RECOV_ROW2 );
Size = MAP_APPFONT( RECOV_CONTROLWIDTH, (RECOV_ROW7-RECOV_ROW2-RSC_SP_CTRL_Y) );
WordBreak = TRUE;
- Text[ en-US ] = "This error report tool gathers information about how %PRODUCTNAME is working and sends it to Sun Microsystems to help improve future versions.\n\nIt's easy - just send the report without any further effort on your part by clicking 'Send' in the next dialog, or you can briefly describe how the error occurred and then click 'Send'. If you want to see the report, click the 'Show Report' button. No data will be sent if you click 'Do Not Send'.\n\nCustomer Privacy\nThe information gathered is limited to data concerning the state of %PRODUCTNAME %PRODUCTVERSION when the error occurred. Other information about passwords or document contents is not collected.\n\nThe information will only be used to improve the quality of %PRODUCTNAME and will not be shared with third parties.\nFor more information on Sun Microsystems' privacy policy, visit\nhttp://www.sun.com/privacy/";
+ Text[ en-US ] = "This error report tool gathers information about how %PRODUCTNAME is working and sends it to Oracle to help improve future versions.\n\nIt's easy - just send the report without any further effort on your part by clicking 'Send' in the next dialog, or you can briefly describe how the error occurred and then click 'Send'. If you want to see the report, click the 'Show Report' button. No data will be sent if you click 'Do Not Send'.\n\nCustomer Privacy\nThe information gathered is limited to data concerning the state of %PRODUCTNAME %PRODUCTVERSION when the error occurred. Other information about passwords or document contents is not collected.\n\nThe information will only be used to improve the quality of %PRODUCTNAME and will not be shared with third parties.\nFor more information on Oracle's privacy policy, visit\nwww.oracle.com/html/services-privacy-policy.html";
};
FixedLine FL_RECOV_BOTTOM
{
@@ -472,7 +472,7 @@ TabPage RID_SVXPAGE_ERR_REP_SEND
Pos = MAP_APPFONT( ERRSEND_COL0, ERRSEND_ROW12 );
Size = MAP_APPFONT( ERRSEND_CONTROLWIDTH2, RSC_CD_CHECKBOX_HEIGHT );
Check = FALSE;
- Text[ en-US ] = "~I allow Sun Microsystems to contact me regarding this report.";
+ Text[ en-US ] = "~I allow Oracle to contact me regarding this report.";
};
FixedText FT_ERRSEND_EMAILADDR
{
diff --git a/svx/source/engine3d/makefile.mk b/svx/source/engine3d/makefile.mk
index 6e6e3f97c550..71916df4a83c 100644
--- a/svx/source/engine3d/makefile.mk
+++ b/svx/source/engine3d/makefile.mk
@@ -64,18 +64,10 @@ LIB1OBJFILES= \
LIB2TARGET= $(SLB)$/$(TARGET).lib
LIB2OBJFILES= \
- $(SLO)$/volume3d.obj \
- $(SLO)$/viewpt3d.obj \
$(SLO)$/float3d.obj
SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
-#disable optimizer for MSCompiler and ICC
-.IF "$(COM)"=="ICC" || "$(COM)"=="MSC"
-NOOPTFILES=\
- $(SLO)$/viewpt3d.obj
-.ENDIF
-
SRS1NAME=engine3d
SRC1FILES=\
string3d.src \
diff --git a/svx/source/engine3d/viewpt3d.cxx b/svx/source/engine3d/viewpt3d.cxx
deleted file mode 100644
index ef9750781a2e..000000000000
--- a/svx/source/engine3d/viewpt3d.cxx
+++ /dev/null
@@ -1,32 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_svx.hxx"
-#include <svx/viewpt3d.hxx>
-
-// eof
diff --git a/svx/source/engine3d/volume3d.cxx b/svx/source/engine3d/volume3d.cxx
deleted file mode 100644
index 04a94b1705f5..000000000000
--- a/svx/source/engine3d/volume3d.cxx
+++ /dev/null
@@ -1,32 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_svx.hxx"
-#include <svx/volume3d.hxx>
-
-// eof
diff --git a/svx/source/form/fmshimp.cxx b/svx/source/form/fmshimp.cxx
index 463749b68364..8c752910b15e 100644
--- a/svx/source/form/fmshimp.cxx
+++ b/svx/source/form/fmshimp.cxx
@@ -1579,22 +1579,25 @@ void FmXFormShell::ExecuteSearch()
return;
// filter out the forms which do not contain valid controls at all
- FmFormArray::reverse_iterator form = m_aSearchForms.rbegin();
- ::std::vector< String >::reverse_iterator contextName = aContextNames.rbegin();
- sal_Int32 i = m_aSearchForms.size();
- for ( ;
- form != m_aSearchForms.rend();
- ++form, ++contextName, --i
- )
{
- FmSearchContext aTestContext;
- aTestContext.nContext = static_cast< sal_Int16 >( i-1 );
- sal_uInt32 nValidControls = OnSearchContextRequest( &aTestContext );
- if ( nValidControls == 0 )
+ FmFormArray aValidForms;
+ ::std::vector< String > aValidContexts;
+ FmFormArray::const_iterator form = m_aSearchForms.begin();
+ ::std::vector< String >::const_iterator contextName = aContextNames.begin();
+ for ( ; form != m_aSearchForms.end(); ++form, ++contextName )
{
- m_aSearchForms.erase( form.base() - 1 );
- aContextNames.erase( contextName.base() - 1 );
+ FmSearchContext aTestContext;
+ aTestContext.nContext = static_cast< sal_Int16 >( form - m_aSearchForms.begin() );
+ sal_uInt32 nValidControls = OnSearchContextRequest( &aTestContext );
+ if ( nValidControls > 0 )
+ {
+ aValidForms.push_back( *form );
+ aValidContexts.push_back( *contextName );
+ }
}
+
+ m_aSearchForms.swap( aValidForms );
+ aContextNames.swap( aValidContexts );
}
if (m_aSearchForms.size() == 0)
@@ -1606,7 +1609,7 @@ void FmXFormShell::ExecuteSearch()
// jetzt brauche ich noch einen 'initial context'
sal_Int16 nInitialContext = 0;
Reference< XForm> xActiveForm( getActiveForm());
- for (i=0; i<(sal_Int32)m_aSearchForms.size(); ++i)
+ for ( size_t i=0; i<m_aSearchForms.size(); ++i )
{
if (m_aSearchForms.at(i) == xActiveForm)
{
@@ -2373,6 +2376,8 @@ IMPL_LINK(FmXFormShell, OnFoundData, FmFoundRecordInformation*, pfriWhere)
FmFormObj* pFormObject = FmFormObj::GetFormObject( pObject );
Reference< XControlModel > xControlModel( pFormObject ? pFormObject->GetUnoControlModel() : Reference< XControlModel >() );
DBG_ASSERT( xControlModel.is(), "FmXFormShell::OnFoundData: invalid control!" );
+ if ( !xControlModel.is() )
+ return 0;
// disable the permanent cursor for the last grid we found a record
if (m_xLastGridFound.is() && (m_xLastGridFound != xControlModel))
@@ -2390,7 +2395,7 @@ IMPL_LINK(FmXFormShell, OnFoundData, FmFoundRecordInformation*, pfriWhere)
sal_Int32 nGridColumn = m_arrRelativeGridColumn.GetObject(pfriWhere->nFieldPos);
if (nGridColumn != -1)
{ // dummer weise muss ich mir das Control erst wieder besorgen
- Reference< XControl> xControl( GetControlFromModel(xControlModel));
+ Reference< XControl> xControl( impl_getControl( xControlModel, *pFormObject ) );
Reference< XGrid> xGrid(xControl, UNO_QUERY);
DBG_ASSERT(xGrid.is(), "FmXFormShell::OnFoundData : ungueltiges Control !");
// wenn eine der Asserts anschlaegt, habe ich beim Aufbauen von m_arrSearchedControls wohl was falsch gemacht
@@ -2402,7 +2407,8 @@ IMPL_LINK(FmXFormShell, OnFoundData, FmFoundRecordInformation*, pfriWhere)
xModelSet->setPropertyValue( FM_PROP_CURSORCOLOR, makeAny( sal_Int32( COL_LIGHTRED ) ) );
m_xLastGridFound = xControlModel;
- xGrid->setCurrentColumnPosition((sal_Int16)nGridColumn);
+ if ( xGrid.is() )
+ xGrid->setCurrentColumnPosition((sal_Int16)nGridColumn);
}
// als der Cursor neu positioniert wurde, habe ich (in positioned) meine Formularleisten-Slots invalidiert, aber das greift
@@ -2510,7 +2516,7 @@ IMPL_LINK(FmXFormShell, OnSearchContextRequest, FmSearchContext*, pfmscContextIn
// ... nach der ControlSource-Eigenschaft fragen
SearchableControlIterator iter( xCurrentFormComponent );
- Reference< XControl> xControlBehindModel;
+ Reference< XControl> xControl;
// das Control, das als Model xControlModel hat
// (das folgende while kann mehrmals durchlaufen werden, ohne dass das Control sich aendert, dann muss
// ich nicht jedesmal neu suchen)
@@ -2522,10 +2528,12 @@ IMPL_LINK(FmXFormShell, OnSearchContextRequest, FmSearchContext*, pfmscContextIn
if ( sControlSource.getLength() == 0 )
{ // das aktuelle Element hat keine ControlSource, also ist es ein GridControl (das ist das einzige, was
// der SearchableControlIterator noch zulaesst)
- xControlBehindModel = GetControlFromModel(xControlModel);
- DBG_ASSERT(xControlBehindModel.is(), "FmXFormShell::OnSearchContextRequest : didn't ::std::find a control with requested model !");
+ xControl = impl_getControl( xControlModel, *pFormObject );
+ DBG_ASSERT(xControl.is(), "FmXFormShell::OnSearchContextRequest : didn't ::std::find a control with requested model !");
- Reference< XGridPeer> xGridPeer(xControlBehindModel->getPeer(), UNO_QUERY);
+ Reference< XGridPeer> xGridPeer;
+ if ( xControl.is() )
+ xGridPeer.set( xControl->getPeer(), UNO_QUERY );
do
{
if (!xGridPeer.is())
@@ -2579,13 +2587,13 @@ IMPL_LINK(FmXFormShell, OnSearchContextRequest, FmSearchContext*, pfmscContextIn
if (sControlSource.getLength() && xValidFormFields->hasByName(sControlSource))
{
// jetzt brauche ich das Control zum SdrObject
- if (!xControlBehindModel.is())
+ if (!xControl.is())
{
- xControlBehindModel = GetControlFromModel(xControlModel);
- DBG_ASSERT(xControlBehindModel.is(), "FmXFormShell::OnSearchContextRequest : didn't ::std::find a control with requested model !");
+ xControl = impl_getControl( xControlModel, *pFormObject );
+ DBG_ASSERT(xControl.is(), "FmXFormShell::OnSearchContextRequest : didn't ::std::find a control with requested model !");
}
- if (IsSearchableControl(xControlBehindModel))
+ if (IsSearchableControl(xControl))
{ // alle Tests ueberstanden -> in die Liste mit aufnehmen
strFieldList += sControlSource.getStr();
strFieldList += ';';
@@ -2601,7 +2609,7 @@ IMPL_LINK(FmXFormShell, OnSearchContextRequest, FmSearchContext*, pfmscContextIn
m_arrRelativeGridColumn.Insert(-1, m_arrRelativeGridColumn.Count());
// und fuer die formatierte Suche ...
- pfmscContextInfo->arrFields.push_back(Reference< XInterface>(xControlBehindModel, UNO_QUERY));
+ pfmscContextInfo->arrFields.push_back(Reference< XInterface>(xControl, UNO_QUERY));
}
}
}
@@ -2975,24 +2983,48 @@ void FmXFormShell::SetDesignMode(sal_Bool bDesign)
}
//------------------------------------------------------------------------------
-Reference< XControl> FmXFormShell::GetControlFromModel(const Reference< XControlModel>& xModel)
+Reference< XControl> FmXFormShell::impl_getControl( const Reference< XControlModel >& i_rxModel, const FmFormObj& i_rKnownFormObj )
{
- RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmXFormShell::GetControlFromModel" );
if ( impl_checkDisposed() )
return NULL;
- Reference< XControlContainer> xControlContainer( getControlContainerForView() );
+ Reference< XControl > xControl;
+ try
+ {
+ Reference< XControlContainer> xControlContainer( getControlContainerForView(), UNO_SET_THROW );
- Sequence< Reference< XControl> > seqControls( xControlContainer->getControls() );
- Reference< XControl>* pControls = seqControls.getArray();
- // ... die ich dann durchsuchen kann
- for (int i=0; i<seqControls.getLength(); ++i)
+ Sequence< Reference< XControl > > seqControls( xControlContainer->getControls() );
+ const Reference< XControl >* pControls = seqControls.getArray();
+ // ... die ich dann durchsuchen kann
+ for (sal_Int32 i=0; i<seqControls.getLength(); ++i)
+ {
+ xControl.set( pControls[i], UNO_SET_THROW );
+ Reference< XControlModel > xCurrentModel( xControl->getModel() );
+ if ( xCurrentModel == i_rxModel )
+ break;
+ xControl.clear();
+ }
+
+ if ( !xControl.is() )
+ {
+ // fallabck (some controls might not have been created, yet, since they were never visible so far)
+ Reference< XControl > xContainerControl( xControlContainer, UNO_QUERY_THROW );
+ const Window* pContainerWindow = VCLUnoHelper::GetWindow( xContainerControl->getPeer() );
+ ENSURE_OR_THROW( pContainerWindow, "unexpected control container implementation" );
+
+ const SdrView* pSdrView = m_pShell ? m_pShell->GetFormView() : NULL;
+ ENSURE_OR_THROW( pSdrView, "no current view" );
+
+ xControl.set( i_rKnownFormObj.GetUnoControl( *pSdrView, *pContainerWindow ), UNO_QUERY_THROW );
+ }
+ }
+ catch( const Exception& )
{
- Reference< XControlModel> xSearchLoopModel( pControls[i]->getModel());
- if ((XControlModel*)xSearchLoopModel.get() == (XControlModel*)xModel.get())
- return pControls[i];
+ DBG_UNHANDLED_EXCEPTION();
}
- return Reference< XControl>(NULL);
+
+ OSL_ENSURE( xControl.is(), "FmXFormShell::impl_getControl: no control found!" );
+ return xControl;
}
//------------------------------------------------------------------------------
diff --git a/svx/source/inc/fmshimp.hxx b/svx/source/inc/fmshimp.hxx
index 3f89adb42626..65a2572cd5af 100644
--- a/svx/source/inc/fmshimp.hxx
+++ b/svx/source/inc/fmshimp.hxx
@@ -163,6 +163,7 @@ typedef ::utl::ConfigItem FmXFormShell_CFGBASE;
struct SdrViewEvent;
class FmFormShell;
class FmFormView;
+class FmFormObj;
class SAL_DLLPRIVATE FmXFormShell :public FmXFormShell_BASE
,public FmXFormShell_CFGBASE
,public ::svxform::OStaticDataAccessTools
@@ -349,8 +350,11 @@ protected:
void startListening();
void stopListening();
- ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> GetControlFromModel(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel>& xModel);
- // liefert das Control, welches das angegebene Model hat
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >
+ impl_getControl(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel>& i_rxModel,
+ const FmFormObj& i_rKnownFormObj
+ );
// sammelt in strNames die Namen aller Formulare
static void impl_collectFormSearchContexts_nothrow(
diff --git a/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx b/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
index 5d00418a5729..0aecac047121 100644
--- a/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
@@ -1689,6 +1689,9 @@ namespace sdr { namespace contact {
if ( !bHadControl && rControl.is() && rControl.isVisible() )
rControl.invalidate();
+ if ( !bHadControl && rControl.is() && rControl.isVisible() )
+ rControl.invalidate();
+
// check if we already have an XControl.
if ( !xControlModel.is() || !rControl.is() )
// use the default mechanism. This will create a ControlPrimitive2D without
diff --git a/svx/source/sdr/properties/attributeproperties.cxx b/svx/source/sdr/properties/attributeproperties.cxx
index 15142a86b9cf..5abd9c4b26f1 100644
--- a/svx/source/sdr/properties/attributeproperties.cxx
+++ b/svx/source/sdr/properties/attributeproperties.cxx
@@ -281,7 +281,19 @@ namespace sdr
// set stylesheet (if used)
if(pStySheet)
{
- ImpAddStyleSheet(pStySheet, sal_True);
+ // #i109515#
+ SfxItemPool* pStyleSheetPool = &pStySheet->GetPool().GetPool();
+
+ if(pStyleSheetPool == pDestPool)
+ {
+ // just re-set stylesheet
+ ImpAddStyleSheet(pStySheet, sal_True);
+ }
+ else
+ {
+ // StyleSheet is NOT from the correct pool; use default
+ ImpAddStyleSheet(pNewModel->GetDefaultStyleSheet(), sal_True);
+ }
}
delete pOldSet;
diff --git a/svx/source/svdraw/makefile.mk b/svx/source/svdraw/makefile.mk
index 0108615b10dd..514c5b6d2cbc 100644
--- a/svx/source/svdraw/makefile.mk
+++ b/svx/source/svdraw/makefile.mk
@@ -113,8 +113,6 @@ LIB1OBJFILES= \
LIB2TARGET= $(SLB)$/$(TARGET).lib
LIB2OBJFILES= \
- $(SLO)$/svdoimp.obj \
- $(SLO)$/svdscrol.obj \
$(SLO)$/ActionDescriptionProvider.obj \
$(SLO)$/impgrfll.obj
diff --git a/svx/source/svdraw/svdcrtmt.hxx b/svx/source/svdraw/svdcrtmt.hxx
deleted file mode 100644
index 0cf7642bf110..000000000000
--- a/svx/source/svdraw/svdcrtmt.hxx
+++ /dev/null
@@ -1,32 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 _SVDCRTMT_HXX
-#define _SVDCRTMT_HXX
-
-#endif //_SVDCRTMT_HXX
-
diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx
index 6eb96fe4f088..1c534fbcbe98 100644
--- a/svx/source/svdraw/svdobj.cxx
+++ b/svx/source/svdraw/svdobj.cxx
@@ -47,7 +47,6 @@
#include <svx/svdpage.hxx>
#include <svx/svdovirt.hxx> // Fuer Add/Del Ref
#include <svx/svdview.hxx> // fuer Dragging (Ortho abfragen)
-#include "svdscrol.hxx"
#include "svdglob.hxx" // StringCache
#include "svdstr.hrc" // Objektname
#include <svx/svdogrp.hxx> // Factory
diff --git a/svx/source/svdraw/svdoimp.cxx b/svx/source/svdraw/svdoimp.cxx
deleted file mode 100644
index 7b7fa2652017..000000000000
--- a/svx/source/svdraw/svdoimp.cxx
+++ /dev/null
@@ -1,33 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_svx.hxx"
-#include <svdoimp.hxx>
-
-///////////////////////////////////////////////////////////////////////////////
-// eof
diff --git a/svx/source/svdraw/svdotext.cxx b/svx/source/svdraw/svdotext.cxx
index a2b7e8c0490c..6a79359e1a00 100644
--- a/svx/source/svdraw/svdotext.cxx
+++ b/svx/source/svdraw/svdotext.cxx
@@ -35,7 +35,6 @@
#include <svx/svdpage.hxx> // und fuer AnimationHandler (Laufschrift)
#include <svx/svdetc.hxx>
#include <svx/svdoutl.hxx>
-#include "svdscrol.hxx" // fuer Laufschrift
#include <svx/svdmodel.hxx> // OutlinerDefaults
#include "svdglob.hxx" // Stringcache
#include "svdstr.hrc" // Objektname
diff --git a/svx/source/svdraw/svdscrol.cxx b/svx/source/svdraw/svdscrol.cxx
deleted file mode 100644
index ce1d4e32bf32..000000000000
--- a/svx/source/svdraw/svdscrol.cxx
+++ /dev/null
@@ -1,33 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_svx.hxx"
-
-#include "svdscrol.hxx"
-
-// eof
diff --git a/svx/source/svdraw/svdscrol.hxx b/svx/source/svdraw/svdscrol.hxx
deleted file mode 100644
index f44cf3d81c65..000000000000
--- a/svx/source/svdraw/svdscrol.hxx
+++ /dev/null
@@ -1,31 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 _SVDSCROL_HXX
-#define _SVDSCROL_HXX
-
-#endif //_SVDSCROL_HXX
diff --git a/svx/source/unodialogs/textconversiondlgs/export.map b/svx/source/unodialogs/textconversiondlgs/export.map
deleted file mode 100644
index ff4971857d69..000000000000
--- a/svx/source/unodialogs/textconversiondlgs/export.map
+++ /dev/null
@@ -1,8 +0,0 @@
-EXTDBI_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/svx/source/unodialogs/textconversiondlgs/makefile.mk b/svx/source/unodialogs/textconversiondlgs/makefile.mk
index 6cdec3906c9a..b5013ca9d165 100644
--- a/svx/source/unodialogs/textconversiondlgs/makefile.mk
+++ b/svx/source/unodialogs/textconversiondlgs/makefile.mk
@@ -59,7 +59,7 @@ SHL1TARGET= txcnvdlg
.ELSE
SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
.ENDIF
-SHL1VERSIONMAP= export.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS= \
$(CPPULIB) \
diff --git a/sw/inc/ndarr.hxx b/sw/inc/ndarr.hxx
index 787edb8f0ae6..2d67b1bbce3f 100644
--- a/sw/inc/ndarr.hxx
+++ b/sw/inc/ndarr.hxx
@@ -134,6 +134,9 @@ protected:
public:
~SwNodes();
+ typedef ::std::vector<SwNodeRange> NodeRanges_t;
+ typedef ::std::vector<NodeRanges_t> TableRanges_t;
+
SwNodePtr operator[]( ULONG n ) const
{ return (SwNodePtr)BigPtrArray::operator[] ( n ); }
@@ -275,8 +278,11 @@ public:
SwTableBoxFmt* pBoxFmt,
SwTxtFmtColl* pTxtColl,
SwUndoTxtToTbl* pUndo = 0 );
+
+ SwNodeRange * ExpandRangeForTableBox(const SwNodeRange & rRange);
+
//create a table from a vector of NodeRanges - API support
- SwTableNode* TextToTable( const std::vector< std::vector<SwNodeRange> >& rTableNodes,
+ SwTableNode* TextToTable( const TableRanges_t& rTableNodes,
SwTableFmt* pTblFmt,
SwTableLineFmt* pLineFmt,
SwTableBoxFmt* pBoxFmt,
diff --git a/sw/inc/printdata.hxx b/sw/inc/printdata.hxx
index ce5cf81a6f00..f76ac65e747a 100644..100755
--- a/sw/inc/printdata.hxx
+++ b/sw/inc/printdata.hxx
@@ -230,6 +230,9 @@ class SwRenderData
std::set< sal_Int32 > m_aValidPages; // the set of possible pages (see StringRangeEnumerator::getRangesFromString )
std::map< sal_Int32, const SwPageFrm * > m_aValidStartFrames; // the map of start frames for those pages
+ // printer paper tray to use for each of the m_aValidPages above
+ std::map< sal_Int32, sal_Int32 > m_aPrinterPaperTrays;
+
// vector of pages and their order to be printed (duplicates and any order allowed!)
// (see 'render' in unotxdoc.cxx)
std::vector< sal_Int32 > m_aPagesToPrint;
@@ -264,6 +267,7 @@ public:
void DeletePostItData();
bool IsViewOptionAdjust() const { return m_pViewOptionAdjust != 0; }
+ bool NeedNewViewOptionAdjust( const SwWrtShell& ) const;
void ViewOptionAdjustStart( SwWrtShell &rSh, const SwViewOption &rViewOptions );
void ViewOptionAdjust( const SwPrtOptions *pPrtOptions );
void ViewOptionAdjustStop();
@@ -284,6 +288,11 @@ public:
ValidStartFramesMap_t & GetValidStartFrames() { return m_aValidStartFrames; }
const ValidStartFramesMap_t & GetValidStartFrames() const { return m_aValidStartFrames; }
+ // a map for printer paper tray numbers to use for each document page
+ // a value of -1 for the tray means that there is no specific tray defined
+ std::map< sal_Int32, sal_Int32 >& GetPrinterPaperTrays() { return m_aPrinterPaperTrays; }
+ const std::map< sal_Int32, sal_Int32 >& GetPrinterPaperTrays() const { return m_aPrinterPaperTrays; }
+
// used for 'normal' printing
// A page value of 0 as entry indicates that this page is not from the document but
// from the post-it document. (See also GetPostItStartFrame below)
diff --git a/sw/inc/unotextrange.hxx b/sw/inc/unotextrange.hxx
index cb333da905d9..ff7a536fb69e 100644
--- a/sw/inc/unotextrange.hxx
+++ b/sw/inc/unotextrange.hxx
@@ -60,12 +60,12 @@ class SwUnoInternalPaM
private:
SwUnoInternalPaM(const SwUnoInternalPaM&);
- SwUnoInternalPaM& operator=(const SwPaM& rPaM);
public:
SwUnoInternalPaM(SwDoc& rDoc);
virtual ~SwUnoInternalPaM();
+ SwUnoInternalPaM& operator=(const SwPaM& rPaM);
};
diff --git a/sw/inc/unotxdoc.hxx b/sw/inc/unotxdoc.hxx
index fc5ae0fad8a9..b50d5b0a1b76 100644..100755
--- a/sw/inc/unotxdoc.hxx
+++ b/sw/inc/unotxdoc.hxx
@@ -607,6 +607,9 @@ public:
~SwViewOptionAdjust_Impl();
void AdjustViewOptions( const SwPrtOptions *pPrtOptions );
+
+ bool checkShell( const SwWrtShell& rCompare ) const
+ { return &rCompare == &m_rShell; }
};
diff --git a/sw/prj/build.lst b/sw/prj/build.lst
index 6fd49c1d77b0..87d163d72648 100755
--- a/sw/prj/build.lst
+++ b/sw/prj/build.lst
@@ -74,3 +74,4 @@ sw sw\source\ui nmake - all sw_ui sw_app
sw sw\source\core nmake - all sw_core sw_attr sw_bast sw_crsr sw_dcnd sw_doc sw_draw sw_edit sw_excpt sw_fld sw_frmed sw_grph sw_layo sw_ole sw_para sw_sw3io sw_swg sw_text sw_tox sw_txtnd sw_uco sw_undo sw_view sw_acc sw_objpos sw_NumberTree sw_tablecore NULL
sw sw\source\filter nmake - all sw_flt sw_ascii sw_bsflt sw_html sw_rtf sw_wrtr sw_ww1 sw_ww8 sw_xml NULL
sw sw\util nmake - all sw_util sw_core sw_flt sw_sdi sw_ui NULL
+sw sw\qa\unoapi nmake - all sw_qa_unoapi NULL
diff --git a/sw/qa/core/export.map b/sw/qa/core/export.map
index 0e4fe0c88ff2..7321bbca16ad 100644
--- a/sw/qa/core/export.map
+++ b/sw/qa/core/export.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-UDK_3.0 {
+UDK_3_0_0 {
global:
registerAllTestFunction;
diff --git a/sw/qa/core/makefile.mk b/sw/qa/core/makefile.mk
index 02e69f45dae2..00ebfda8844a 100644
--- a/sw/qa/core/makefile.mk
+++ b/sw/qa/core/makefile.mk
@@ -37,6 +37,8 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:testjob by codegen.pl
diff --git a/sw/qa/unoapi/Test.java b/sw/qa/unoapi/Test.java
new file mode 100644
index 000000000000..e0311cc069bb
--- /dev/null
+++ b/sw/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.sw.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "sw.sce", "-xcl", "knownissues.xcl", "-tdoc",
+ "testdocuments", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/sw/qa/unoapi/knownissues.xcl b/sw/qa/unoapi/knownissues.xcl
index ee20559798a6..0c0ae3e506eb 100644
--- a/sw/qa/unoapi/knownissues.xcl
+++ b/sw/qa/unoapi/knownissues.xcl
@@ -150,4 +150,7 @@ sw.SwXTextEmbeddedObject::com::sun::star::text::BaseFrameProperties
sw.SwXTextPortion::com::sun::star::style::CharacterProperties
### i94977 ###
-sw.SwXTextGraphicObject::com::sun::star::text::BaseFrameProperties \ No newline at end of file
+sw.SwXTextGraphicObject::com::sun::star::text::BaseFrameProperties
+
+### i109917 ###
+sw.SwXTextDocument::com::sun::star::document::XEventBroadcaster
diff --git a/sw/qa/unoapi/makefile.mk b/sw/qa/unoapi/makefile.mk
index 777c108c9e3e..f5102c2c9c84 100644
--- a/sw/qa/unoapi/makefile.mk
+++ b/sw/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,18 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
+#***********************************************************************/
-PRJNAME=sw
-TARGET=qa_unoapi
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-.INCLUDE: settings.mk
+PRJ = ../..
+PRJNAME = sw
+TARGET = qa_unoapi
+
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/sw/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce sw.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
+.END
diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx
index 31c88825ec35..da366da4b6fa 100644..100755
--- a/sw/source/core/doc/doc.cxx
+++ b/sw/source/core/doc/doc.cxx
@@ -47,6 +47,7 @@
#include <rtl/ustring.hxx>
#include <vcl/virdev.hxx>
#include <svl/itemiter.hxx>
+#include <svl/poolitem.hxx>
#include <unotools/syslocale.hxx>
#include <sfx2/printer.hxx>
#include <editeng/keepitem.hxx>
@@ -55,9 +56,11 @@
#include <sfx2/linkmgr.hxx>
#include <editeng/forbiddencharacterstable.hxx>
#include <svx/svdmodel.hxx>
+#include <editeng/pbinitem.hxx>
#include <unotools/charclass.hxx>
#include <unotools/localedatawrapper.hxx>
+#include <swatrset.hxx>
#include <swmodule.hxx>
#include <fmtpdsc.hxx>
#include <fmtanchr.hxx>
@@ -1177,6 +1180,23 @@ static void lcl_FormatPostIt(
}
+// provide the paper tray to use according to the page style in use,
+// but do that only if the respective item is NOT just the default item
+static sal_Int32 lcl_GetPaperBin( const SwPageFrm *pStartFrm )
+{
+ sal_Int32 nRes = -1;
+
+ const SwFrmFmt &rFmt = pStartFrm->GetPageDesc()->GetMaster();
+ const SfxPoolItem *pItem = NULL;
+ SfxItemState eState = rFmt.GetItemState( RES_PAPER_BIN, FALSE, &pItem );
+ const SvxPaperBinItem *pPaperBinItem = dynamic_cast< const SvxPaperBinItem * >(pItem);
+ if (eState > SFX_ITEM_DEFAULT && pPaperBinItem)
+ nRes = pPaperBinItem->GetValue();
+
+ return nRes;
+}
+
+
void SwDoc::CalculatePagesForPrinting(
/* out */ SwRenderData &rData,
const SwPrintUIOptions &rOptions,
@@ -1187,11 +1207,15 @@ void SwDoc::CalculatePagesForPrinting(
if (!pLayout)
return;
+ const sal_Int32 nContent = rOptions.getIntValue( "PrintContent", 0 );
+ const bool bPrintSelection = nContent == 2;
+
// properties to take into account when calcualting the set of pages
// (PDF export UI does not allow for selecting left or right pages only)
bool bPrintLeftPages = bIsPDFExport ? true : rOptions.IsPrintLeftPages();
bool bPrintRightPages = bIsPDFExport ? true : rOptions.IsPrintRightPages();
- bool bPrintEmptyPages = rOptions.IsPrintEmptyPages( bIsPDFExport );
+ // #i103700# printing selections should not allow for automatic inserting empty pages
+ bool bPrintEmptyPages = bPrintSelection ? false : rOptions.IsPrintEmptyPages( bIsPDFExport );
Range aPages( 1, nDocPageCount );
@@ -1253,6 +1277,7 @@ void SwDoc::CalculatePagesForPrinting(
nPageNo = nFirstPageNo;
+ std::map< sal_Int32, sal_Int32 > &rPrinterPaperTrays = rData.GetPrinterPaperTrays();
std::set< sal_Int32 > &rValidPages = rData.GetValidPagesSet();
std::map< sal_Int32, const SwPageFrm * > &rValidStartFrms = rData.GetValidStartFrames();
rValidPages.clear();
@@ -1268,9 +1293,10 @@ void SwDoc::CalculatePagesForPrinting(
if ( bPrintEmptyPages || pStPage->Frm().Height() )
// <--
{
- // pStPage->GetUpper()->Paint( pStPage->Frm() );
rValidPages.insert( nPageNo );
rValidStartFrms[ nPageNo ] = pStPage;
+
+ rPrinterPaperTrays[ nPageNo ] = lcl_GetPaperBin( pStPage );
}
}
@@ -1306,7 +1332,6 @@ void SwDoc::CalculatePagesForPrinting(
// 0 -> print all pages (default if aPageRange is empty)
// 1 -> print range according to PageRange
// 2 -> print selection
- const sal_Int32 nContent = rOptions.getIntValue( "PrintContent", 0 );
if (1 == nContent)
aPageRange = rOptions.getStringValue( "PageRange", OUString() );
if (2 == nContent)
@@ -1526,8 +1551,9 @@ void SwDoc::CalculatePagePairsForProspectPrinting(
const SwPrintUIOptions &rOptions,
sal_Int32 nDocPageCount )
{
- std::set< sal_Int32 > &rValidPagesSet = rData.GetValidPagesSet();
- std::map< sal_Int32, const SwPageFrm * > &rValidStartFrms = rData.GetValidStartFrames();
+ std::map< sal_Int32, sal_Int32 > &rPrinterPaperTrays = rData.GetPrinterPaperTrays();
+ std::set< sal_Int32 > &rValidPagesSet = rData.GetValidPagesSet();
+ std::map< sal_Int32, const SwPageFrm * > &rValidStartFrms = rData.GetValidStartFrames();
std::vector< std::pair< sal_Int32, sal_Int32 > > &rPagePairs = rData.GetPagePairsForProspectPrinting();
rPagePairs.clear();
@@ -1535,6 +1561,18 @@ void SwDoc::CalculatePagePairsForProspectPrinting(
rValidStartFrms.clear();
rtl::OUString aPageRange = rOptions.getStringValue( "PageRange", rtl::OUString() );
+ // PageContent :
+ // 0 -> print all pages (default if aPageRange is empty)
+ // 1 -> print range according to PageRange
+ // 2 -> print selection
+ const sal_Int32 nContent = rOptions.getIntValue( "PrintContent", 0 );
+ if (0 == nContent)
+ {
+ // set page range to print to 'all pages'
+ aPageRange = OUString::valueOf( (sal_Int32)1 );
+ aPageRange += OUString::valueOf( (sal_Unicode)'-');
+ aPageRange += OUString::valueOf( nDocPageCount );
+ }
StringRangeEnumerator aRange( aPageRange, 1, nDocPageCount, 0 );
DBG_ASSERT( pLayout, "no layout present" );
@@ -1559,6 +1597,8 @@ void SwDoc::CalculatePagePairsForProspectPrinting(
rValidPagesSet.insert( nPageNum );
rValidStartFrms[ nPageNum ] = pPageFrm;
pPageFrm = (SwPageFrm*)pPageFrm->GetNext();
+
+ rPrinterPaperTrays[ nPageNum ] = lcl_GetPaperBin( pStPage );
}
DBG_ASSERT( nPageNum == nDocPageCount, "unexpected number of pages" );
diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx
index 3131147cc7c2..b213eb1d075d 100644
--- a/sw/source/core/docnode/ndtbl.cxx
+++ b/sw/source/core/docnode/ndtbl.cxx
@@ -1265,10 +1265,72 @@ const SwTable* SwDoc::TextToTable( const std::vector< std::vector<SwNodeRange> >
return pNdTbl;
}
+SwNodeRange * SwNodes::ExpandRangeForTableBox(const SwNodeRange & rRange)
+{
+ SwNodeRange * pResult = NULL;
+ bool bChanged = false;
+
+ SwNodeIndex aNewStart = rRange.aStart;
+ SwNodeIndex aNewEnd = rRange.aEnd;
+
+ SwNodeIndex aEndIndex = rRange.aEnd;
+ SwNodeIndex aIndex = rRange.aStart;
+
+ while (aIndex < aEndIndex)
+ {
+ SwNode& rNode = aIndex.GetNode();
+
+ if (rNode.IsStartNode())
+ {
+ // advance aIndex to the end node of this start node
+ SwNode * pEndNode = rNode.EndOfSectionNode();
+ aIndex = *pEndNode;
+
+ if (aIndex > aNewEnd)
+ {
+ aNewEnd = aIndex;
+ bChanged = true;
+ }
+ }
+ else if (rNode.IsEndNode())
+ {
+ SwNode * pStartNode = rNode.StartOfSectionNode();
+ SwNodeIndex aStartIndex = *pStartNode;
+
+ if (aStartIndex < aNewStart)
+ {
+ aNewStart = aStartIndex;
+ bChanged = true;
+ }
+ }
+
+ if (aIndex < aEndIndex)
+ ++aIndex;
+ }
+
+ SwNode * pNode = &aIndex.GetNode();
+ while (pNode->IsEndNode())
+ {
+ SwNode * pStartNode = pNode->StartOfSectionNode();
+ SwNodeIndex aStartIndex(*pStartNode);
+ aNewStart = aStartIndex;
+ aNewEnd = aIndex;
+ bChanged = true;
+
+ ++aIndex;
+ pNode = &aIndex.GetNode();
+ }
+
+ if (bChanged)
+ pResult = new SwNodeRange(aNewStart, aNewEnd);
+
+ return pResult;
+}
+
/*-- 18.05.2006 08:23:28---------------------------------------------------
-----------------------------------------------------------------------*/
-SwTableNode* SwNodes::TextToTable( const std::vector< std::vector<SwNodeRange> >& rTableNodes,
+SwTableNode* SwNodes::TextToTable( const SwNodes::TableRanges_t & rTableNodes,
SwTableFmt* pTblFmt,
SwTableLineFmt* pLineFmt,
SwTableBoxFmt* pBoxFmt,
diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx
index f7c96d9dc745..7687a71309ac 100644
--- a/sw/source/core/text/inftxt.cxx
+++ b/sw/source/core/text/inftxt.cxx
@@ -276,6 +276,7 @@ SwTxtSizeInfo::SwTxtSizeInfo( const SwTxtSizeInfo &rNew )
bURLNotify( rNew.URLNotify() ),
bStopUnderFlow( rNew.StopUnderFlow() ),
bFtnInside( rNew.IsFtnInside() ),
+ bOtherThanFtnInside( rNew.IsOtherThanFtnInside() ),
bMulti( rNew.IsMulti() ),
bFirstMulti( rNew.IsFirstMulti() ),
bRuby( rNew.IsRuby() ),
@@ -373,7 +374,7 @@ void SwTxtSizeInfo::CtorInitTxtSizeInfo( SwTxtFrm *pFrame, SwFont *pNewFnt,
nIdx = nNewIdx;
nLen = nNewLen;
bNotEOL = sal_False;
- bStopUnderFlow = bFtnInside = sal_False;
+ bStopUnderFlow = bFtnInside = bOtherThanFtnInside = sal_False;
bMulti = bFirstMulti = bRuby = bHanging = bScriptSpace =
bForbiddenChars = sal_False;
@@ -400,6 +401,7 @@ SwTxtSizeInfo::SwTxtSizeInfo( const SwTxtSizeInfo &rNew, const XubString &rTxt,
bURLNotify( rNew.URLNotify() ),
bStopUnderFlow( rNew.StopUnderFlow() ),
bFtnInside( rNew.IsFtnInside() ),
+ bOtherThanFtnInside( rNew.IsOtherThanFtnInside() ),
bMulti( rNew.IsMulti() ),
bFirstMulti( rNew.IsFirstMulti() ),
bRuby( rNew.IsRuby() ),
diff --git a/sw/source/core/text/inftxt.hxx b/sw/source/core/text/inftxt.hxx
index 69a4ed1f3fe6..c0643653a1d6 100644
--- a/sw/source/core/text/inftxt.hxx
+++ b/sw/source/core/text/inftxt.hxx
@@ -208,6 +208,8 @@ protected:
sal_Bool bURLNotify : 1;
sal_Bool bStopUnderFlow : 1;// Underflow gestoppt z.B. von einer FlyPortion
sal_Bool bFtnInside : 1; // the current line contains a footnote
+ sal_Bool bOtherThanFtnInside : 1; // the current line contains another portion than a footnote portion.
+ // needed for checking keep together of footnote portion with previous portion
sal_Bool bMulti : 1; // inside a multiportion
sal_Bool bFirstMulti : 1; // this flag is used for two purposes:
// - the multiportion is the first lineportion
@@ -251,6 +253,8 @@ public:
inline void SetStopUnderFlow( const sal_Bool bNew ) { bStopUnderFlow = bNew; }
inline sal_Bool IsFtnInside() const { return bFtnInside; }
inline void SetFtnInside( const sal_Bool bNew ) { bFtnInside = bNew; }
+ inline sal_Bool IsOtherThanFtnInside() const { return bOtherThanFtnInside; }
+ inline void SetOtherThanFtnInside( const sal_Bool bNew ) { bOtherThanFtnInside = bNew; }
inline sal_Bool IsMulti() const { return bMulti; }
inline void SetMulti( const sal_Bool bNew ) { bMulti = bNew; }
inline sal_Bool IsFirstMulti() const { return bFirstMulti; }
diff --git a/sw/source/core/text/itrform2.cxx b/sw/source/core/text/itrform2.cxx
index 84f877ed3328..c7527b372554 100644
--- a/sw/source/core/text/itrform2.cxx
+++ b/sw/source/core/text/itrform2.cxx
@@ -349,6 +349,8 @@ void SwTxtFormatter::InsertPortion( SwTxtFormatInfo &rInf,
}
pLast->Insert( pPor );
+ rInf.SetOtherThanFtnInside( rInf.IsOtherThanFtnInside() || !pPor->IsFtnPortion() );
+
// Maxima anpassen:
if( pCurr->Height() < pPor->Height() )
pCurr->Height( pPor->Height() );
@@ -1533,6 +1535,7 @@ xub_StrLen SwTxtFormatter::FormatLine( const xub_StrLen nStartPos )
while( bBuild )
{
GetInfo().SetFtnInside( sal_False );
+ GetInfo().SetOtherThanFtnInside( sal_False );
// These values must not be reset by FormatReset();
sal_Bool bOldNumDone = GetInfo().IsNumDone();
diff --git a/sw/source/core/text/portxt.cxx b/sw/source/core/text/portxt.cxx
index b1d236cb0471..a849cbe42f40 100644
--- a/sw/source/core/text/portxt.cxx
+++ b/sw/source/core/text/portxt.cxx
@@ -394,12 +394,16 @@ sal_Bool SwTxtPortion::_Format( SwTxtFormatInfo &rInf )
}
// case C1
// - Footnote portions with fake line start (i.e., not at beginning of line)
- // should keep together with the text portion.
+ // should keep together with the text portion. (Note: no keep together
+ // with only footnote portions.
// - TabPortions not at beginning of line should keep together with the
// text portion, if they are not followed by a blank
// (work around different definition of tab stop character - breaking or
// non breaking character - in compatibility mode)
- else if ( ( IsFtnPortion() && rInf.IsFakeLineStart() ) ||
+ else if ( ( IsFtnPortion() && rInf.IsFakeLineStart() &&
+ // --> OD 2010-01-29 #b6921213#
+ rInf.IsOtherThanFtnInside() ) ||
+ // <--
( rInf.GetLast() &&
rInf.GetTxtFrm()->GetTxtNode()->getIDocumentSettingAccess()->get(IDocumentSettingAccess::TAB_COMPAT) &&
rInf.GetLast()->InTabGrp() &&
diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx
index e872c3112471..d8682062f039 100644
--- a/sw/source/core/unocore/unotext.cxx
+++ b/sw/source/core/unocore/unotext.cxx
@@ -1885,6 +1885,26 @@ void SwXText::Impl::ConvertCell(
{
throw lang::IllegalArgumentException();
}
+
+ SwNodeRange aTmpRange(aStartCellPam.Start()->nNode,
+ aEndCellPam.End()->nNode);
+ SwNodeRange * pCorrectedRange =
+ m_pDoc->GetNodes().ExpandRangeForTableBox(aTmpRange);
+
+ if (pCorrectedRange != NULL)
+ {
+ SwPaM aNewStartPaM(pCorrectedRange->aStart, 0);
+ aStartCellPam = aNewStartPaM;
+
+ xub_StrLen nEndLen = 0;
+ SwTxtNode * pTxtNode = pCorrectedRange->aEnd.GetNode().GetTxtNode();
+ if (pTxtNode != NULL)
+ nEndLen = pTxtNode->Len();
+
+ SwPaM aNewEndPaM(pCorrectedRange->aEnd, nEndLen);
+ aEndCellPam = aNewEndPaM;
+ }
+
/** check the nodes between start and end
it is allowed to have pairs of StartNode/EndNodes
*/
diff --git a/sw/source/core/view/makefile.mk b/sw/source/core/view/makefile.mk
index 7a0f19c956ed..0ac0e0d106cb 100644..100755
--- a/sw/source/core/view/makefile.mk
+++ b/sw/source/core/view/makefile.mk
@@ -43,10 +43,13 @@ SLOFILES = \
$(SLO)$/vdraw.obj \
$(SLO)$/viewimp.obj \
$(SLO)$/viewsh.obj \
- $(SLO)$/viewpg.obj \
- $(SLO)$/vnew.obj \
- $(SLO)$/vprint.obj \
- $(SLO)$/pagepreviewlayout.obj
+ $(SLO)$/pagepreviewlayout.obj \
+ $(SLO)$/printdata.obj \
+ $(SLO)$/viewpg.obj \
+ $(SLO)$/vnew.obj \
+ $(SLO)$/vprint.obj
+
+
EXCEPTIONSFILES = \
$(SLO)$/pagepreviewlayout.obj
diff --git a/sw/source/core/view/printdata.cxx b/sw/source/core/view/printdata.cxx
new file mode 100755
index 000000000000..39bd4d91290c
--- /dev/null
+++ b/sw/source/core/view/printdata.cxx
@@ -0,0 +1,546 @@
+/**************************************************************************
+ *
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: vprint.cxx,v $
+ * $Revision: 1.46 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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_sw.hxx"
+
+#include <printdata.hxx>
+
+#include <globals.hrc>
+#include <doc.hxx>
+#include <unotxdoc.hxx>
+#include <wdocsh.hxx>
+#include <viewsh.hxx>
+#include <docfld.hxx>
+#include <swprtopt.hxx>
+
+#include <svl/languageoptions.hxx>
+#include <toolkit/awt/vclxdevice.hxx>
+#include <tools/string.hxx>
+#include <tools/debug.hxx>
+#include <tools/resary.hxx>
+#include <unotools/moduleoptions.hxx>
+#include <vcl/outdev.hxx>
+
+
+extern bool lcl_GetPostIts( IDocumentFieldsAccess* pIDFA, _SetGetExpFlds * pSrtLst );
+
+
+using namespace ::com::sun::star;
+using ::rtl::OUString;
+
+
+//////////////////////////////////////////////////////////////////////
+
+SwRenderData::SwRenderData()
+{
+ m_pPostItFields = 0;
+ m_pPostItDoc = 0;
+ m_pPostItShell = 0;
+
+ m_pViewOptionAdjust = 0;
+ m_pPrtOptions = 0;
+}
+
+
+SwRenderData::~SwRenderData()
+{
+ delete m_pViewOptionAdjust; m_pViewOptionAdjust = 0;
+ delete m_pPrtOptions; m_pPrtOptions = 0;
+ DBG_ASSERT( !m_pPostItShell, "m_pPostItShell should already have been deleted" );
+ DBG_ASSERT( !m_pPostItDoc, "m_pPostItDoc should already have been deleted" );
+ DBG_ASSERT( !m_pPostItFields, " should already have been deleted" );
+}
+
+
+void SwRenderData::CreatePostItData( SwDoc *pDoc, const SwViewOption *pViewOpt, OutputDevice *pOutDev )
+{
+ DBG_ASSERT( !m_pPostItFields && !m_pPostItDoc && !m_pPostItShell, "some post-it data already exists" );
+ m_pPostItFields = new _SetGetExpFlds;
+ lcl_GetPostIts( pDoc, m_pPostItFields );
+ m_pPostItDoc = new SwDoc;
+
+ //!! Disable spell and grammar checking in the temporary document.
+ //!! Otherwise the grammar checker might process it and crash if we later on
+ //!! simply delete this document while he is still at it.
+ SwViewOption aViewOpt( *pViewOpt );
+ aViewOpt.SetOnlineSpell( FALSE );
+
+ m_pPostItShell = new ViewShell( *m_pPostItDoc, 0, &aViewOpt, pOutDev );
+}
+
+
+void SwRenderData::DeletePostItData()
+{
+ if (HasPostItData())
+ {
+ m_pPostItDoc->setPrinter( 0, false, false ); //damit am echten DOC der Drucker bleibt
+ delete m_pPostItShell; //Nimmt das PostItDoc mit ins Grab.
+ delete m_pPostItFields;
+ m_pPostItDoc = 0;
+ m_pPostItShell = 0;
+ m_pPostItFields = 0;
+ }
+}
+
+bool SwRenderData::NeedNewViewOptionAdjust( const SwWrtShell& rCompare ) const
+{
+ return m_pViewOptionAdjust ? ! m_pViewOptionAdjust->checkShell( rCompare ) : true;
+}
+
+
+void SwRenderData::ViewOptionAdjustStart( SwWrtShell &rSh, const SwViewOption &rViewOptions )
+{
+ if (m_pViewOptionAdjust)
+ {
+ DBG_ASSERT( 0, "error: there should be no ViewOptionAdjust active when calling this function" );
+ }
+ m_pViewOptionAdjust = new SwViewOptionAdjust_Impl( rSh, rViewOptions );
+}
+
+
+void SwRenderData::ViewOptionAdjust( const SwPrtOptions *pPrtOptions )
+{
+ m_pViewOptionAdjust->AdjustViewOptions( pPrtOptions );
+}
+
+
+void SwRenderData::ViewOptionAdjustStop()
+{
+ if (m_pViewOptionAdjust)
+ {
+ delete m_pViewOptionAdjust;
+ m_pViewOptionAdjust = 0;
+ }
+}
+
+
+void SwRenderData::MakeSwPrtOptions(
+ SwPrtOptions &rOptions,
+ const SwDocShell *pDocShell,
+ const SwPrintUIOptions *pOpt,
+ const SwRenderData *pData,
+ bool bIsPDFExport )
+{
+ if (!pDocShell || !pOpt || !pData)
+ return;
+
+ // get default print options
+ const TypeId aSwWebDocShellTypeId = TYPE(SwWebDocShell);
+ BOOL bWeb = pDocShell->IsA( aSwWebDocShellTypeId );
+ rOptions.MakeOptions( bWeb );
+
+ // get print options to use from provided properties
+ rOptions.bPrintGraphic = pOpt->IsPrintGraphics();
+ rOptions.bPrintTable = pOpt->IsPrintTables();
+ rOptions.bPrintDraw = pOpt->IsPrintDrawings();
+ rOptions.bPrintControl = pOpt->IsPrintFormControls();
+ rOptions.bPrintLeftPages = pOpt->IsPrintLeftPages();
+ rOptions.bPrintRightPages = pOpt->IsPrintRightPages();
+ rOptions.bPrintPageBackground = pOpt->IsPrintPageBackground();
+ rOptions.bPrintEmptyPages = pOpt->IsPrintEmptyPages( bIsPDFExport );
+ // bUpdateFieldsInPrinting <-- not set here; mail merge only
+ rOptions.bPaperFromSetup = pOpt->IsPaperFromSetup();
+ rOptions.bPrintReverse = pOpt->IsPrintReverse();
+ rOptions.bPrintProspect = pOpt->IsPrintProspect();
+ rOptions.bPrintProspectRTL = pOpt->IsPrintProspectRTL();
+ // bPrintSingleJobs <-- not set here; mail merge and or configuration
+ // bModified <-- not set here; mail merge only
+ rOptions.bPrintBlackFont = pOpt->IsPrintWithBlackTextColor();
+ rOptions.bPrintHiddenText = pOpt->IsPrintHiddenText();
+ rOptions.bPrintTextPlaceholder = pOpt->IsPrintTextPlaceholders();
+ rOptions.nPrintPostIts = pOpt->GetPrintPostItsType();
+
+ //! needs to be set after MakeOptions since the assignment operation in that
+ //! function will destroy the pointers
+ rOptions.SetPrintUIOptions( pOpt );
+ rOptions.SetRenderData( pData );
+
+ // rOptions.aMulti is not used anymore in the XRenderable API
+ // Thus we set it to a dummy value here.
+ rOptions.aMulti = MultiSelection( Range( 1, 1 ) );
+
+ //! Note: Since for PDF export of (multi-)selection a temporary
+ //! document is created that contains only the selects parts,
+ //! and thus that document is to printed in whole the,
+ //! rOptions.bPrintSelection parameter will be false.
+ if (bIsPDFExport)
+ rOptions.bPrintSelection = FALSE;
+}
+
+
+//////////////////////////////////////////////////////////////////////
+
+SwPrintUIOptions::SwPrintUIOptions(
+ bool bWeb,
+ bool bSwSrcView,
+ bool bHasSelection,
+ bool bHasPostIts,
+ const SwPrintData &rDefaultPrintData ) :
+ m_pLast( NULL ),
+ m_rDefaultPrintData( rDefaultPrintData )
+{
+ ResStringArray aLocalizedStrings( SW_RES( STR_PRINTOPTUI ) );
+
+ DBG_ASSERT( aLocalizedStrings.Count() >= 44, "resource incomplete" );
+ if( aLocalizedStrings.Count() < 44 ) // bad resource ?
+ return;
+
+ // printing HTML sources does not have any valid UI options.
+ // Its just the source code that gets printed ...
+ if (bSwSrcView)
+ {
+ m_aUIProperties.realloc( 0 );
+ return;
+ }
+
+ // check if CTL is enabled
+ SvtLanguageOptions aLangOpt;
+ bool bCTL = aLangOpt.IsCTLFontEnabled();
+
+ // create sequence of print UI options
+ // (5 options are not available for Writer-Web)
+ const int nCTLOpts = bCTL ? 1 : 0;
+ const int nNumProps = nCTLOpts + (bWeb ? 14 : 20);
+ m_aUIProperties.realloc( nNumProps );
+ int nIdx = 0;
+
+ // create "writer" section (new tab page in dialog)
+ SvtModuleOptions aModOpt;
+ String aAppGroupname( aLocalizedStrings.GetString( 0 ) );
+ aAppGroupname.SearchAndReplace( String( RTL_CONSTASCII_USTRINGPARAM( "%s" ) ),
+ aModOpt.GetModuleName( SvtModuleOptions::E_SWRITER ) );
+ m_aUIProperties[ nIdx++ ].Value = getGroupControlOpt( aAppGroupname, rtl::OUString() );
+
+ // create sub section for Contents
+ m_aUIProperties[ nIdx++ ].Value = getSubgroupControlOpt( aLocalizedStrings.GetString( 1 ), rtl::OUString() );
+
+ // create a bool option for background
+ bool bDefaultVal = rDefaultPrintData.IsPrintPageBackground();
+ m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 2 ),
+ aLocalizedStrings.GetString( 3 ),
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintPageBackground" ) ),
+ bDefaultVal );
+
+ // create a bool option for pictures/graphics AND OLE and drawing objects as well
+ bDefaultVal = rDefaultPrintData.IsPrintGraphic() || rDefaultPrintData.IsPrintDraw();
+ m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 4 ),
+ aLocalizedStrings.GetString( 5 ),
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintPicturesAndObjects" ) ),
+ bDefaultVal );
+ if (!bWeb)
+ {
+ // create a bool option for hidden text
+ bDefaultVal = rDefaultPrintData.IsPrintHiddenText();
+ m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 6 ),
+ aLocalizedStrings.GetString( 7 ),
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintHiddenText" ) ),
+ bDefaultVal );
+
+ // create a bool option for place holder
+ bDefaultVal = rDefaultPrintData.IsPrintTextPlaceholder();
+ m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 8 ),
+ aLocalizedStrings.GetString( 9 ),
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintTextPlaceholder" ) ),
+ bDefaultVal );
+ }
+
+ // create a bool option for controls
+ bDefaultVal = rDefaultPrintData.IsPrintControl();
+ m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 10 ),
+ aLocalizedStrings.GetString( 11 ),
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintControls" ) ),
+ bDefaultVal );
+
+ // create sub section for Color
+ m_aUIProperties[ nIdx++ ].Value = getSubgroupControlOpt( aLocalizedStrings.GetString( 12 ), rtl::OUString() );
+
+ // create a bool option for printing text with black font color
+ bDefaultVal = rDefaultPrintData.IsPrintBlackFont();
+ m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 13 ),
+ aLocalizedStrings.GetString( 14 ),
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintBlackFonts" ) ),
+ bDefaultVal );
+
+ if (!bWeb)
+ {
+ // create subgroup for misc options
+ m_aUIProperties[ nIdx++ ].Value = getSubgroupControlOpt( rtl::OUString( aLocalizedStrings.GetString( 15 ) ), rtl::OUString() );
+
+ // create a bool option for printing automatically inserted blank pages
+ bDefaultVal = rDefaultPrintData.IsPrintEmptyPages();
+ m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 16 ),
+ aLocalizedStrings.GetString( 17 ),
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintEmptyPages" ) ),
+ bDefaultVal );
+ }
+
+ // create a bool option for paper tray
+ bDefaultVal = rDefaultPrintData.IsPaperFromSetup();
+ vcl::PrinterOptionsHelper::UIControlOptions aPaperTrayOpt;
+ aPaperTrayOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "OptionsPageOptGroup" ) );
+ m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 18 ),
+ aLocalizedStrings.GetString( 19 ),
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintPaperFromSetup" ) ),
+ bDefaultVal,
+ aPaperTrayOpt
+ );
+
+ // print range selection
+ vcl::PrinterOptionsHelper::UIControlOptions aPrintRangeOpt;
+ aPrintRangeOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintRange" ) );
+ aPrintRangeOpt.mbInternalOnly = sal_True;
+ m_aUIProperties[nIdx++].Value = getSubgroupControlOpt( rtl::OUString( aLocalizedStrings.GetString( 37 ) ),
+ rtl::OUString(),
+ aPrintRangeOpt
+ );
+
+ // create a choice for the content to create
+ rtl::OUString aPrintRangeName( RTL_CONSTASCII_USTRINGPARAM( "PrintContent" ) );
+ uno::Sequence< rtl::OUString > aChoices( bHasSelection ? 3 : 2 );
+ uno::Sequence< rtl::OUString > aHelpText( bHasSelection ? 3 : 2 );
+ aChoices[0] = aLocalizedStrings.GetString( 38 );
+ aHelpText[0] = aLocalizedStrings.GetString( 39 );
+ aChoices[1] = aLocalizedStrings.GetString( 40 );
+ aHelpText[1] = aLocalizedStrings.GetString( 41 );
+ if (bHasSelection)
+ {
+ aChoices[2] = aLocalizedStrings.GetString( 42 );
+ aHelpText[2] = aLocalizedStrings.GetString( 43 );
+ }
+ m_aUIProperties[nIdx++].Value = getChoiceControlOpt( rtl::OUString(),
+ aHelpText,
+ aPrintRangeName,
+ aChoices,
+ bHasSelection ? 2 /*enable 'Selection' radio button*/ : 0 /* enable 'All pages' */);
+ // create a an Edit dependent on "Pages" selected
+ vcl::PrinterOptionsHelper::UIControlOptions aPageRangeOpt( aPrintRangeName, 1, sal_True );
+ m_aUIProperties[nIdx++].Value = getEditControlOpt( rtl::OUString(),
+ rtl::OUString(),
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PageRange" ) ),
+ rtl::OUString(),
+ aPageRangeOpt
+ );
+ // print content selection
+ vcl::PrinterOptionsHelper::UIControlOptions aContentsOpt;
+ aContentsOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "JobPage" ) );
+ m_aUIProperties[nIdx++].Value = getSubgroupControlOpt( rtl::OUString( aLocalizedStrings.GetString( 20 ) ),
+ rtl::OUString(),
+ aContentsOpt
+ );
+ // create a list box for notes content
+ const sal_Int16 nPrintPostIts = rDefaultPrintData.GetPrintPostIts();
+ aChoices.realloc( 4 );
+ aChoices[0] = aLocalizedStrings.GetString( 21 );
+ aChoices[1] = aLocalizedStrings.GetString( 22 );
+ aChoices[2] = aLocalizedStrings.GetString( 23 );
+ aChoices[3] = aLocalizedStrings.GetString( 24 );
+ aHelpText.realloc( 2 );
+ aHelpText[0] = aLocalizedStrings.GetString( 25 );
+ aHelpText[1] = aLocalizedStrings.GetString( 25 );
+ vcl::PrinterOptionsHelper::UIControlOptions aAnnotOpt( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintProspect" ) ), 0, sal_False );
+ aAnnotOpt.mbEnabled = bHasPostIts;
+ m_aUIProperties[ nIdx++ ].Value = getChoiceControlOpt( aLocalizedStrings.GetString( 26 ),
+ aHelpText,
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintAnnotationMode" ) ),
+ aChoices,
+ nPrintPostIts,
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "List" ) ),
+ aAnnotOpt
+ );
+
+ // create subsection for Page settings
+ vcl::PrinterOptionsHelper::UIControlOptions aPageSetOpt;
+ aPageSetOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LayoutPage" ) );
+
+ if (!bWeb)
+ {
+ m_aUIProperties[nIdx++].Value = getSubgroupControlOpt( rtl::OUString( aLocalizedStrings.GetString( 27 ) ),
+ rtl::OUString(),
+ aPageSetOpt
+ );
+ uno::Sequence< rtl::OUString > aRLChoices( 3 );
+ aRLChoices[0] = aLocalizedStrings.GetString( 28 );
+ aRLChoices[1] = aLocalizedStrings.GetString( 29 );
+ aRLChoices[2] = aLocalizedStrings.GetString( 30 );
+ uno::Sequence< rtl::OUString > aRLHelp( 1 );
+ aRLHelp[0] = aLocalizedStrings.GetString( 31 );
+ // create a choice option for all/left/right pages
+ // 0 : all pages (left & right)
+ // 1 : left pages
+ // 2 : right pages
+ DBG_ASSERT( rDefaultPrintData.IsPrintLeftPage() || rDefaultPrintData.IsPrintRightPage(),
+ "unexpected value combination" );
+ sal_Int16 nPagesChoice = 0;
+ if (rDefaultPrintData.IsPrintLeftPage() && !rDefaultPrintData.IsPrintRightPage())
+ nPagesChoice = 1;
+ else if (!rDefaultPrintData.IsPrintLeftPage() && rDefaultPrintData.IsPrintRightPage())
+ nPagesChoice = 2;
+ m_aUIProperties[ nIdx++ ].Value = getChoiceControlOpt( aLocalizedStrings.GetString( 32 ),
+ aRLHelp,
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintLeftRightPages" ) ),
+ aRLChoices,
+ nPagesChoice,
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "List" ) )
+ );
+ }
+
+ // create a bool option for brochure
+ bDefaultVal = rDefaultPrintData.IsPrintProspect();
+ rtl::OUString aBrochurePropertyName( RTL_CONSTASCII_USTRINGPARAM( "PrintProspect" ) );
+ m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 33 ),
+ aLocalizedStrings.GetString( 34 ),
+ aBrochurePropertyName,
+ bDefaultVal,
+ aPageSetOpt
+ );
+
+ if (bCTL)
+ {
+ // create a bool option for brochure RTL dependent on brochure
+ uno::Sequence< rtl::OUString > aBRTLChoices( 2 );
+ aBRTLChoices[0] = aLocalizedStrings.GetString( 35 );
+ aBRTLChoices[1] = aLocalizedStrings.GetString( 36 );
+ vcl::PrinterOptionsHelper::UIControlOptions aBrochureRTLOpt( aBrochurePropertyName, -1, sal_True );
+ aBrochureRTLOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LayoutPage" ) );
+ // RTL brochure choices
+ // 0 : left-to-right
+ // 1 : right-to-left
+ const sal_Int16 nBRTLChoice = rDefaultPrintData.IsPrintProspectRTL() ? 1 : 0;
+ m_aUIProperties[ nIdx++ ].Value = getChoiceControlOpt( rtl::OUString(),
+ uno::Sequence< rtl::OUString >(),
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintProspectRTL" ) ),
+ aBRTLChoices,
+ nBRTLChoice,
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "List" ) ),
+ aBrochureRTLOpt
+ );
+ }
+
+
+ DBG_ASSERT( nIdx == nNumProps, "number of added properties is not as expected" );
+}
+
+
+SwPrintUIOptions::~SwPrintUIOptions()
+{
+}
+
+bool SwPrintUIOptions::IsPrintLeftPages() const
+{
+ // take care of different property names for the option.
+ // for compatibility the old name should win (may still be used for PDF export or via Uno API)
+
+ // 0: left and right pages
+ // 1: left pages only
+ // 2: right pages only
+ sal_Int64 nLRPages = getIntValue( "PrintLeftRightPages", 0 /* default: all */ );
+ bool bRes = nLRPages == 0 || nLRPages == 1;
+ bRes = getBoolValue( "PrintLeftPages", bRes /* <- default value if property is not found */ );
+ return bRes;
+}
+
+bool SwPrintUIOptions::IsPrintRightPages() const
+{
+ // take care of different property names for the option.
+ // for compatibility the old name should win (may still be used for PDF export or via Uno API)
+
+ sal_Int64 nLRPages = getIntValue( "PrintLeftRightPages", 0 /* default: all */ );
+ bool bRes = nLRPages == 0 || nLRPages == 2;
+ bRes = getBoolValue( "PrintRightPages", bRes /* <- default value if property is not found */ );
+ return bRes;
+}
+
+bool SwPrintUIOptions::IsPrintEmptyPages( bool bIsPDFExport ) const
+{
+ // take care of different property names for the option.
+
+ bool bRes = bIsPDFExport ?
+ !getBoolValue( "IsSkipEmptyPages", sal_True ) :
+ getBoolValue( "PrintEmptyPages", sal_True );
+ return bRes;
+}
+
+bool SwPrintUIOptions::IsPrintTables() const
+{
+ // take care of different property names currently in use for this option.
+ // for compatibility the old name should win (may still be used for PDF export or via Uno API)
+
+// bool bRes = getBoolValue( "PrintTablesGraphicsAndDiagrams", sal_True );
+// bRes = getBoolValue( "PrintTables", bRes );
+// return bRes;
+ // for now it was decided that tables should always be printed
+ return true;
+}
+
+bool SwPrintUIOptions::IsPrintGraphics() const
+{
+ // take care of different property names for the option.
+ // for compatibility the old name should win (may still be used for PDF export or via Uno API)
+
+ bool bRes = getBoolValue( "PrintPicturesAndObjects", sal_True );
+ bRes = getBoolValue( "PrintGraphics", bRes );
+ return bRes;
+}
+
+bool SwPrintUIOptions::IsPrintDrawings() const
+{
+ // take care of different property names for the option.
+ // for compatibility the old name should win (may still be used for PDF export or via Uno API)
+
+ bool bRes = getBoolValue( "PrintPicturesAndObjects", sal_True );
+ bRes = getBoolValue( "PrintDrawings", bRes );
+ return bRes;
+}
+
+bool SwPrintUIOptions::processPropertiesAndCheckFormat( const uno::Sequence< beans::PropertyValue >& i_rNewProp )
+{
+ bool bChanged = processProperties( i_rNewProp );
+
+ uno::Reference< awt::XDevice > xRenderDevice;
+ uno::Any aVal( getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ) ) );
+ aVal >>= xRenderDevice;
+
+ OutputDevice* pOut = 0;
+ if (xRenderDevice.is())
+ {
+ VCLXDevice* pDevice = VCLXDevice::GetImplementation( xRenderDevice );
+ pOut = pDevice ? pDevice->GetOutputDevice() : 0;
+ }
+ bChanged = bChanged || (pOut != m_pLast);
+ if( pOut )
+ m_pLast = pOut;
+
+ return bChanged;
+}
+
+//////////////////////////////////////////////////////////////////////
+
diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index 1b04f206b164..08aae426fd8c 100644..100755
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -2243,7 +2243,8 @@ void ViewShell::ApplyViewOptions( const SwViewOption &rOpt )
void ViewShell::ImplApplyViewOptions( const SwViewOption &rOpt )
{
- ASSERT( !(*pOpt == rOpt), "ViewShell::ApplyViewOptions: ");
+ if (*pOpt == rOpt)
+ return;
Window *pMyWin = GetWin();
if( !pMyWin )
diff --git a/sw/source/core/view/vprint.cxx b/sw/source/core/view/vprint.cxx
index d7400ad2a73b..e74fb21f720a 100644..100755
--- a/sw/source/core/view/vprint.cxx
+++ b/sw/source/core/view/vprint.cxx
@@ -31,35 +31,27 @@
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/view/XRenderable.hpp>
#include <hintids.hxx>
-#include <vcl/oldprintadaptor.hxx>
-#include <sfx2/printer.hxx>
-#include <sfx2/objsh.hxx>
-#include <tools/resary.hxx>
-#include <tools/debug.hxx>
#include <rtl/ustring.hxx>
-#include <toolkit/awt/vclxdevice.hxx>
-#include <toolkit/awt/vclxdevice.hxx>
-
-#include <sfx2/progress.hxx>
#include <sfx2/app.hxx>
+#include <sfx2/objsh.hxx>
#include <sfx2/prnmon.hxx>
+#include <svl/languageoptions.hxx>
#include <editeng/paperinf.hxx>
#include <editeng/pbinitem.hxx>
#include <svx/svdview.hxx>
+#include <toolkit/awt/vclxdevice.hxx>
+#include <tools/debug.hxx>
#include <unotools/localedatawrapper.hxx>
-
#include <unotools/moduleoptions.hxx>
-#include <svl/languageoptions.hxx>
-
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/view/XRenderable.hpp>
+#include <unotools/syslocale.hxx>
+#include <vcl/oldprintadaptor.hxx>
#include <unotxdoc.hxx>
-
#include <docsh.hxx>
-#include <unotools/syslocale.hxx>
#include <txtfld.hxx>
#include <fmtfld.hxx>
#include <fmtfsize.hxx>
@@ -83,9 +75,7 @@
#include <pagedesc.hxx>
#include <poolfmt.hxx> // fuer RES_POOLPAGE_JAKET
#include <mdiexp.hxx> // Ansteuern der Statusleiste
-#ifndef _STATSTR_HRC
#include <statstr.hrc> // -- " --
-#endif
#include <ptqueue.hxx>
#include <tabfrm.hxx>
#include <txtfrm.hxx> // MinPrtLine
@@ -93,13 +83,6 @@
#include <fmtpdsc.hxx> // SwFmtPageDesc
#include <globals.hrc>
-#define JOBSET_ERR_DEFAULT 0
-#define JOBSET_ERR_ERROR 1
-#define JOBSET_ERR_ISSTARTET 2
-
-
-extern bool lcl_GetPostIts( IDocumentFieldsAccess* pIDFA, _SetGetExpFlds * pSrtLst );
-
using namespace ::com::sun::star;
@@ -210,500 +193,6 @@ void SwPaintQueue::Remove( ViewShell *pSh )
}
}
-/*****************************************************************************/
-
-const XubString& SwPrtOptions::MakeNextJobName()
-{
- static char __READONLY_DATA sDelim[] = " - ";
- USHORT nDelim = sJobName.SearchAscii( sDelim );
- if( STRING_NOTFOUND == nDelim )
- sJobName.AppendAscii(sDelim);
- else
- sJobName.Erase( nDelim + 3/*Zeichen!*/ );
-
- return sJobName += XubString::CreateFromInt32( ++nJobNo );
-}
-
-/*****************************************************************************/
-
-SwRenderData::SwRenderData()
-{
- m_pPostItFields = 0;
- m_pPostItDoc = 0;
- m_pPostItShell = 0;
-
- m_pViewOptionAdjust = 0;
- m_pPrtOptions = 0;
-}
-
-
-SwRenderData::~SwRenderData()
-{
- delete m_pViewOptionAdjust; m_pViewOptionAdjust = 0;
- delete m_pPrtOptions; m_pPrtOptions = 0;
- DBG_ASSERT( !m_pPostItShell, "m_pPostItShell should already have been deleted" );
- DBG_ASSERT( !m_pPostItDoc, "m_pPostItDoc should already have been deleted" );
- DBG_ASSERT( !m_pPostItFields, " should already have been deleted" );
-}
-
-
-void SwRenderData::CreatePostItData( SwDoc *pDoc, const SwViewOption *pViewOpt, OutputDevice *pOutDev )
-{
- DBG_ASSERT( !m_pPostItFields && !m_pPostItDoc && !m_pPostItShell, "some post-it data already exists" );
- m_pPostItFields = new _SetGetExpFlds;
- lcl_GetPostIts( pDoc, m_pPostItFields );
- m_pPostItDoc = new SwDoc;
-
- //!! Disable spell and grammar checking in the temporary document.
- //!! Otherwise the grammar checker might process it and crash if we later on
- //!! simply delete this document while he is still at it.
- SwViewOption aViewOpt( *pViewOpt );
- aViewOpt.SetOnlineSpell( FALSE );
-
- m_pPostItShell = new ViewShell( *m_pPostItDoc, 0, &aViewOpt, pOutDev );
-}
-
-
-void SwRenderData::DeletePostItData()
-{
- if (HasPostItData())
- {
- m_pPostItDoc->setPrinter( 0, false, false ); //damit am echten DOC der Drucker bleibt
- delete m_pPostItShell; //Nimmt das PostItDoc mit ins Grab.
- delete m_pPostItFields;
- m_pPostItDoc = 0;
- m_pPostItShell = 0;
- m_pPostItFields = 0;
- }
-}
-
-
-void SwRenderData::ViewOptionAdjustStart( SwWrtShell &rSh, const SwViewOption &rViewOptions )
-{
- if (m_pViewOptionAdjust)
- {
- DBG_ASSERT( 0, "error: there should be no ViewOptionAdjust active when calling this function" );
- }
- m_pViewOptionAdjust = new SwViewOptionAdjust_Impl( rSh, rViewOptions );
-}
-
-
-void SwRenderData::ViewOptionAdjust( const SwPrtOptions *pPrtOptions )
-{
- m_pViewOptionAdjust->AdjustViewOptions( pPrtOptions );
-}
-
-
-void SwRenderData::ViewOptionAdjustStop()
-{
- if (m_pViewOptionAdjust)
- {
- delete m_pViewOptionAdjust;
- m_pViewOptionAdjust = 0;
- }
-}
-
-
-void SwRenderData::MakeSwPrtOptions(
- SwPrtOptions &rOptions,
- const SwDocShell *pDocShell,
- const SwPrintUIOptions *pOpt,
- const SwRenderData *pData,
- bool bIsPDFExport )
-{
- if (!pDocShell || !pOpt || !pData)
- return;
-
- // get default print options
- const TypeId aSwWebDocShellTypeId = TYPE(SwWebDocShell);
- BOOL bWeb = pDocShell->IsA( aSwWebDocShellTypeId );
- rOptions.MakeOptions( bWeb );
-
- // get print options to use from provided properties
- rOptions.bPrintGraphic = pOpt->IsPrintGraphics();
- rOptions.bPrintTable = pOpt->IsPrintTables();
- rOptions.bPrintDraw = pOpt->IsPrintDrawings();
- rOptions.bPrintControl = pOpt->IsPrintFormControls();
- rOptions.bPrintLeftPages = pOpt->IsPrintLeftPages();
- rOptions.bPrintRightPages = pOpt->IsPrintRightPages();
- rOptions.bPrintPageBackground = pOpt->IsPrintPageBackground();
- rOptions.bPrintEmptyPages = pOpt->IsPrintEmptyPages( bIsPDFExport );
- // bUpdateFieldsInPrinting <-- not set here; mail merge only
- rOptions.bPaperFromSetup = pOpt->IsPaperFromSetup();
- rOptions.bPrintReverse = pOpt->IsPrintReverse();
- rOptions.bPrintProspect = pOpt->IsPrintProspect();
- rOptions.bPrintProspectRTL = pOpt->IsPrintProspectRTL();
- // bPrintSingleJobs <-- not set here; mail merge and or configuration
- // bModified <-- not set here; mail merge only
- rOptions.bPrintBlackFont = pOpt->IsPrintWithBlackTextColor();
- rOptions.bPrintHiddenText = pOpt->IsPrintHiddenText();
- rOptions.bPrintTextPlaceholder = pOpt->IsPrintTextPlaceholders();
- rOptions.nPrintPostIts = pOpt->GetPrintPostItsType();
-
- //! needs to be set after MakeOptions since the assignment operation in that
- //! function will destroy the pointers
- rOptions.SetPrintUIOptions( pOpt );
- rOptions.SetRenderData( pData );
-
- // rOptions.aMulti is not used anymore in the XRenderable API
- // Thus we set it to a dummy value here.
- rOptions.aMulti = MultiSelection( Range( 1, 1 ) );
-
- //! Note: Since for PDF export of (multi-)selection a temporary
- //! document is created that contains only the selects parts,
- //! and thus that document is to printed in whole the,
- //! rOptions.bPrintSelection parameter will be false.
- if (bIsPDFExport)
- rOptions.bPrintSelection = FALSE;
-}
-
-
-/*****************************************************************************/
-
-SwPrintUIOptions::SwPrintUIOptions(
- bool bWeb,
- bool bSwSrcView,
- bool bHasSelection,
- bool bHasPostIts,
- const SwPrintData &rDefaultPrintData ) :
- m_pLast( NULL ),
- m_rDefaultPrintData( rDefaultPrintData )
-{
- ResStringArray aLocalizedStrings( SW_RES( STR_PRINTOPTUI ) );
-
- DBG_ASSERT( aLocalizedStrings.Count() >= 44, "resource incomplete" );
- if( aLocalizedStrings.Count() < 44 ) // bad resource ?
- return;
-
- // printing HTML sources does not have any valid UI options.
- // Its just the source code that gets printed ...
- if (bSwSrcView)
- {
- m_aUIProperties.realloc( 0 );
- return;
- }
-
- // check if CTL is enabled
- SvtLanguageOptions aLangOpt;
- bool bCTL = aLangOpt.IsCTLFontEnabled();
-
- // create sequence of print UI options
- // (5 options are not available for Writer-Web)
- const int nCTLOpts = bCTL ? 1 : 0;
- const int nNumProps = nCTLOpts + (bWeb ? 14 : 20);
- m_aUIProperties.realloc( nNumProps );
- int nIdx = 0;
-
- // create "writer" section (new tab page in dialog)
- SvtModuleOptions aModOpt;
- String aAppGroupname( aLocalizedStrings.GetString( 0 ) );
- aAppGroupname.SearchAndReplace( String( RTL_CONSTASCII_USTRINGPARAM( "%s" ) ),
- aModOpt.GetModuleName( SvtModuleOptions::E_SWRITER ) );
- m_aUIProperties[ nIdx++ ].Value = getGroupControlOpt( aAppGroupname, rtl::OUString() );
-
- // create sub section for Contents
- m_aUIProperties[ nIdx++ ].Value = getSubgroupControlOpt( aLocalizedStrings.GetString( 1 ), rtl::OUString() );
-
- // create a bool option for background
- bool bDefaultVal = rDefaultPrintData.IsPrintPageBackground();
- m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 2 ),
- aLocalizedStrings.GetString( 3 ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintPageBackground" ) ),
- bDefaultVal );
-
- // create a bool option for pictures/graphics AND OLE and drawing objects as well
- bDefaultVal = rDefaultPrintData.IsPrintGraphic() || rDefaultPrintData.IsPrintDraw();
- m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 4 ),
- aLocalizedStrings.GetString( 5 ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintPicturesAndObjects" ) ),
- bDefaultVal );
- if (!bWeb)
- {
- // create a bool option for hidden text
- bDefaultVal = rDefaultPrintData.IsPrintHiddenText();
- m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 6 ),
- aLocalizedStrings.GetString( 7 ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintHiddenText" ) ),
- bDefaultVal );
-
- // create a bool option for place holder
- bDefaultVal = rDefaultPrintData.IsPrintTextPlaceholder();
- m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 8 ),
- aLocalizedStrings.GetString( 9 ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintTextPlaceholder" ) ),
- bDefaultVal );
- }
-
- // create a bool option for controls
- bDefaultVal = rDefaultPrintData.IsPrintControl();
- m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 10 ),
- aLocalizedStrings.GetString( 11 ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintControls" ) ),
- bDefaultVal );
-
- // create sub section for Color
- m_aUIProperties[ nIdx++ ].Value = getSubgroupControlOpt( aLocalizedStrings.GetString( 12 ), rtl::OUString() );
-
- // create a bool option for printing text with black font color
- bDefaultVal = rDefaultPrintData.IsPrintBlackFont();
- m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 13 ),
- aLocalizedStrings.GetString( 14 ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintBlackFonts" ) ),
- bDefaultVal );
-
- if (!bWeb)
- {
- // create subgroup for misc options
- m_aUIProperties[ nIdx++ ].Value = getSubgroupControlOpt( rtl::OUString( aLocalizedStrings.GetString( 15 ) ), rtl::OUString() );
-
- // create a bool option for printing automatically inserted blank pages
- bDefaultVal = rDefaultPrintData.IsPrintEmptyPages();
- m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 16 ),
- aLocalizedStrings.GetString( 17 ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintEmptyPages" ) ),
- bDefaultVal );
- }
-
- // create a bool option for paper tray
- bDefaultVal = rDefaultPrintData.IsPaperFromSetup();
- vcl::PrinterOptionsHelper::UIControlOptions aPaperTrayOpt;
- aPaperTrayOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "OptionsPageOptGroup" ) );
- m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 18 ),
- aLocalizedStrings.GetString( 19 ),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintPaperFromSetup" ) ),
- bDefaultVal,
- aPaperTrayOpt
- );
-
- // print range selection
- vcl::PrinterOptionsHelper::UIControlOptions aPrintRangeOpt;
- aPrintRangeOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintRange" ) );
- aPrintRangeOpt.mbInternalOnly = sal_True;
- m_aUIProperties[nIdx++].Value = getSubgroupControlOpt( rtl::OUString( aLocalizedStrings.GetString( 37 ) ),
- rtl::OUString(),
- aPrintRangeOpt
- );
-
- // create a choice for the content to create
- rtl::OUString aPrintRangeName( RTL_CONSTASCII_USTRINGPARAM( "PrintContent" ) );
- uno::Sequence< rtl::OUString > aChoices( bHasSelection ? 3 : 2 );
- uno::Sequence< rtl::OUString > aHelpText( bHasSelection ? 3 : 2 );
- aChoices[0] = aLocalizedStrings.GetString( 38 );
- aHelpText[0] = aLocalizedStrings.GetString( 39 );
- aChoices[1] = aLocalizedStrings.GetString( 40 );
- aHelpText[1] = aLocalizedStrings.GetString( 41 );
- if (bHasSelection)
- {
- aChoices[2] = aLocalizedStrings.GetString( 42 );
- aHelpText[2] = aLocalizedStrings.GetString( 43 );
- }
- m_aUIProperties[nIdx++].Value = getChoiceControlOpt( rtl::OUString(),
- aHelpText,
- aPrintRangeName,
- aChoices,
- bHasSelection ? 2 /*enable 'Selection' radio button*/ : 0 /* enable 'All pages' */);
- // create a an Edit dependent on "Pages" selected
- vcl::PrinterOptionsHelper::UIControlOptions aPageRangeOpt( aPrintRangeName, 1, sal_True );
- m_aUIProperties[nIdx++].Value = getEditControlOpt( rtl::OUString(),
- rtl::OUString(),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PageRange" ) ),
- rtl::OUString(),
- aPageRangeOpt
- );
- // print content selection
- vcl::PrinterOptionsHelper::UIControlOptions aContentsOpt;
- aContentsOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "JobPage" ) );
- m_aUIProperties[nIdx++].Value = getSubgroupControlOpt( rtl::OUString( aLocalizedStrings.GetString( 20 ) ),
- rtl::OUString(),
- aContentsOpt
- );
- // create a list box for notes content
- const sal_Int16 nPrintPostIts = rDefaultPrintData.GetPrintPostIts();
- aChoices.realloc( 4 );
- aChoices[0] = aLocalizedStrings.GetString( 21 );
- aChoices[1] = aLocalizedStrings.GetString( 22 );
- aChoices[2] = aLocalizedStrings.GetString( 23 );
- aChoices[3] = aLocalizedStrings.GetString( 24 );
- aHelpText.realloc( 2 );
- aHelpText[0] = aLocalizedStrings.GetString( 25 );
- aHelpText[1] = aLocalizedStrings.GetString( 25 );
- vcl::PrinterOptionsHelper::UIControlOptions aAnnotOpt( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintProspect" ) ), 0, sal_False );
- aAnnotOpt.mbEnabled = bHasPostIts;
- m_aUIProperties[ nIdx++ ].Value = getChoiceControlOpt( aLocalizedStrings.GetString( 26 ),
- aHelpText,
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintAnnotationMode" ) ),
- aChoices,
- nPrintPostIts,
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "List" ) ),
- aAnnotOpt
- );
-
- // create subsection for Page settings
- vcl::PrinterOptionsHelper::UIControlOptions aPageSetOpt;
- aPageSetOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LayoutPage" ) );
-
- if (!bWeb)
- {
- m_aUIProperties[nIdx++].Value = getSubgroupControlOpt( rtl::OUString( aLocalizedStrings.GetString( 27 ) ),
- rtl::OUString(),
- aPageSetOpt
- );
- uno::Sequence< rtl::OUString > aRLChoices( 3 );
- aRLChoices[0] = aLocalizedStrings.GetString( 28 );
- aRLChoices[1] = aLocalizedStrings.GetString( 29 );
- aRLChoices[2] = aLocalizedStrings.GetString( 30 );
- uno::Sequence< rtl::OUString > aRLHelp( 1 );
- aRLHelp[0] = aLocalizedStrings.GetString( 31 );
- // create a choice option for all/left/right pages
- // 0 : all pages (left & right)
- // 1 : left pages
- // 2 : right pages
- DBG_ASSERT( rDefaultPrintData.IsPrintLeftPage() || rDefaultPrintData.IsPrintRightPage(),
- "unexpected value combination" );
- sal_Int16 nPagesChoice = 0;
- if (rDefaultPrintData.IsPrintLeftPage() && !rDefaultPrintData.IsPrintRightPage())
- nPagesChoice = 1;
- else if (!rDefaultPrintData.IsPrintLeftPage() && rDefaultPrintData.IsPrintRightPage())
- nPagesChoice = 2;
- m_aUIProperties[ nIdx++ ].Value = getChoiceControlOpt( aLocalizedStrings.GetString( 32 ),
- aRLHelp,
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintLeftRightPages" ) ),
- aRLChoices,
- nPagesChoice,
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "List" ) )
- );
- }
-
- // create a bool option for brochure
- bDefaultVal = rDefaultPrintData.IsPrintProspect();
- rtl::OUString aBrochurePropertyName( RTL_CONSTASCII_USTRINGPARAM( "PrintProspect" ) );
- m_aUIProperties[ nIdx++ ].Value = getBoolControlOpt( aLocalizedStrings.GetString( 33 ),
- aLocalizedStrings.GetString( 34 ),
- aBrochurePropertyName,
- bDefaultVal,
- aPageSetOpt
- );
-
- if (bCTL)
- {
- // create a bool option for brochure RTL dependent on brochure
- uno::Sequence< rtl::OUString > aBRTLChoices( 2 );
- aBRTLChoices[0] = aLocalizedStrings.GetString( 35 );
- aBRTLChoices[1] = aLocalizedStrings.GetString( 36 );
- vcl::PrinterOptionsHelper::UIControlOptions aBrochureRTLOpt( aBrochurePropertyName, -1, sal_True );
- aBrochureRTLOpt.maGroupHint = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LayoutPage" ) );
- // RTL brochure choices
- // 0 : left-to-right
- // 1 : right-to-left
- const sal_Int16 nBRTLChoice = rDefaultPrintData.IsPrintProspectRTL() ? 1 : 0;
- m_aUIProperties[ nIdx++ ].Value = getChoiceControlOpt( rtl::OUString(),
- uno::Sequence< rtl::OUString >(),
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintProspectRTL" ) ),
- aBRTLChoices,
- nBRTLChoice,
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "List" ) ),
- aBrochureRTLOpt
- );
- }
-
-
- DBG_ASSERT( nIdx == nNumProps, "number of added properties is not as expected" );
-}
-
-
-SwPrintUIOptions::~SwPrintUIOptions()
-{
-}
-
-bool SwPrintUIOptions::IsPrintLeftPages() const
-{
- // take care of different property names for the option.
- // for compatibility the old name should win (may still be used for PDF export or via Uno API)
-
- // 0: left and right pages
- // 1: left pages only
- // 2: right pages only
- sal_Int64 nLRPages = getIntValue( "PrintLeftRightPages", 0 /* default: all */ );
- bool bRes = nLRPages == 0 || nLRPages == 1;
- bRes = getBoolValue( "PrintLeftPages", bRes /* <- default value if property is not found */ );
- return bRes;
-}
-
-bool SwPrintUIOptions::IsPrintRightPages() const
-{
- // take care of different property names for the option.
- // for compatibility the old name should win (may still be used for PDF export or via Uno API)
-
- sal_Int64 nLRPages = getIntValue( "PrintLeftRightPages", 0 /* default: all */ );
- bool bRes = nLRPages == 0 || nLRPages == 2;
- bRes = getBoolValue( "PrintRightPages", bRes /* <- default value if property is not found */ );
- return bRes;
-}
-
-bool SwPrintUIOptions::IsPrintEmptyPages( bool bIsPDFExport ) const
-{
- // take care of different property names for the option.
-
- bool bRes = bIsPDFExport ?
- !getBoolValue( "IsSkipEmptyPages", sal_True ) :
- getBoolValue( "PrintEmptyPages", sal_True );
- return bRes;
-}
-
-bool SwPrintUIOptions::IsPrintTables() const
-{
- // take care of different property names currently in use for this option.
- // for compatibility the old name should win (may still be used for PDF export or via Uno API)
-
-// bool bRes = getBoolValue( "PrintTablesGraphicsAndDiagrams", sal_True );
-// bRes = getBoolValue( "PrintTables", bRes );
-// return bRes;
- // for now it was decided that tables should always be printed
- return true;
-}
-
-bool SwPrintUIOptions::IsPrintGraphics() const
-{
- // take care of different property names for the option.
- // for compatibility the old name should win (may still be used for PDF export or via Uno API)
-
- bool bRes = getBoolValue( "PrintPicturesAndObjects", sal_True );
- bRes = getBoolValue( "PrintGraphics", bRes );
- return bRes;
-}
-
-bool SwPrintUIOptions::IsPrintDrawings() const
-{
- // take care of different property names for the option.
- // for compatibility the old name should win (may still be used for PDF export or via Uno API)
-
- bool bRes = getBoolValue( "PrintPicturesAndObjects", sal_True );
- bRes = getBoolValue( "PrintDrawings", bRes );
- return bRes;
-}
-
-bool SwPrintUIOptions::processPropertiesAndCheckFormat( const com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& i_rNewProp )
-{
- bool bChanged = processProperties( i_rNewProp );
-
- uno::Reference< awt::XDevice > xRenderDevice;
- uno::Any aVal( getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RenderDevice" ) ) ) );
- aVal >>= xRenderDevice;
-
- OutputDevice* pOut = 0;
- if (xRenderDevice.is())
- {
- VCLXDevice* pDevice = VCLXDevice::GetImplementation( xRenderDevice );
- pOut = pDevice ? pDevice->GetOutputDevice() : 0;
- }
- bChanged = bChanged || (pOut != m_pLast);
- if( pOut )
- m_pLast = pOut;
-
- return bChanged;
-}
-
-
/******************************************************************************
* Methode : void SetSwVisArea( ViewShell *pSh, Point aPrtOffset, ...
* Beschreibung:
@@ -847,33 +336,6 @@ void ViewShell::ChgAllPageSize( Size &rSz )
}
-void lcl_SetState( SfxProgress& rProgress, ULONG nPage, ULONG nMax,
- const XubString *pStr, ULONG nAct, ULONG nCnt, ULONG nOffs, ULONG nPageNo )
-{
- XubString aTmp = XubString::CreateFromInt64( nPageNo );
- if( pStr )
- {
- aTmp += ' ';
- aTmp += *pStr;
- if( nCnt )
- {
- nMax *= 2;
- rProgress.SetStateText( (nAct-1)*nMax+nPage+nOffs,
- aTmp, nCnt*nMax );
- }
- else
- rProgress.SetStateText( nPage, aTmp, nMax );
- }
- else
- {
- aTmp += ' '; aTmp += '('; aTmp += XubString::CreateFromInt64( nPage );
- aTmp += '/'; aTmp += XubString::CreateFromInt64( nMax ); aTmp += ')';
- rProgress.SetStateText( nPage, aTmp, nMax );
- }
-}
-
-
-
void ViewShell::CalcPagesForPrint( USHORT nMax )
{
SET_CURR_SHELL( this );
@@ -1394,3 +856,4 @@ void ViewShell::PrepareForPrint( const SwPrintData &rOptions )
}
}
}
+
diff --git a/sw/source/filter/rtf/wrtrtf.cxx b/sw/source/filter/rtf/wrtrtf.cxx
index 5d9a0deda7d1..34fe44eae053 100644
--- a/sw/source/filter/rtf/wrtrtf.cxx
+++ b/sw/source/filter/rtf/wrtrtf.cxx
@@ -85,6 +85,7 @@ const sal_Char SwRTFWriter::sNewLine = '\012';
const sal_Char __FAR_DATA SwRTFWriter::sNewLine[] = "\015\012";
#endif
+static ::rtl::OUString aEmpty;
SV_DECL_VARARR( RTFColorTbl, Color, 5, 8 )
@@ -1299,8 +1300,16 @@ void SwRTFWriter::OutBookmarks( xub_StrLen nCntntPos)
Strm() << '}';
}
OutComment( *this, OOO_STRING_SVTOOLS_RTF_BKMKEND ) << ' ';
- RTFOutFuncs::Out_String( Strm(), pAsBookmark->GetName(),
+
+ {
+ ::rtl::OUString & rBookmarkName = aEmpty;
+
+ if (pAsBookmark)
+ rBookmarkName = pAsBookmark->GetName();
+
+ RTFOutFuncs::Out_String( Strm(), rBookmarkName,
eDefaultEncoding, bWriteHelpFmt ) << '}';
+ }
if(++nBkmkTabPos >= pMarkAccess->getMarksCount())
nBkmkTabPos = -1;
diff --git a/sw/source/ui/config/optdlg.src b/sw/source/ui/config/optdlg.src
index a2b9b4af8a9e..97f903557bda 100644..100755
--- a/sw/source/ui/config/optdlg.src
+++ b/sw/source/ui/config/optdlg.src
@@ -952,11 +952,11 @@ StringArray STR_PRINTOPTUI
< "Contents"; >;
< "Page ba~ckground"; >;
< "Specifies whether to include colors and objects that are inserted to the background of the page (Format - Page - Background) in the printed document."; >;
- < "~Pictures and objects"; >;
+ < "P~ictures and other graphic objects"; >;
< "Specifies whether the graphics and drawing or OLE objects of your text document are printed"; >;
< "Hidden te~xt"; >;
< "Enable this option to print text that is marked as hidden."; >;
- < "~Text placeholder"; >;
+ < "~Text placeholders"; >;
< "Enable this option to print text placeholders. Disable this option to leave the text placeholders blank in the printout."; >;
< "Form control~s"; >;
< "Specifies whether the form control fields of the text document are printed"; >;
@@ -985,7 +985,7 @@ StringArray STR_PRINTOPTUI
< "Select the Brochure option to print the document in brochure format."; >;
< "Left-to-right script"; >;
< "Right-to-left script"; >;
- < "Ranges and copies"; >;
+ < "Range and copies"; >;
< "~All pages"; >;
< "Print the whole document."; >;
< "Pa~ges"; >;
diff --git a/sw/source/ui/dbui/dbmgr.cxx b/sw/source/ui/dbui/dbmgr.cxx
index a54217e1312b..8ad861713e0a 100644
--- a/sw/source/ui/dbui/dbmgr.cxx
+++ b/sw/source/ui/dbui/dbmgr.cxx
@@ -1255,6 +1255,9 @@ BOOL SwNewDBMgr::MergeMailFiles(SwWrtShell* pSourceShell,
nEndRow = pImpl->pMergeData ? pImpl->pMergeData->xResultSet->getRow() : 0;
} while( !bCancel &&
(bSynchronizedDoc && (nStartRow != nEndRow)? ExistsNextRecord() : ToNextMergeRecord()));
+
+ aPrtMonDlg.Show( FALSE );
+
// save the single output document
if(rMergeDescriptor.bCreateSingleFile || bAsSingleFile)
{
diff --git a/sw/source/ui/dbui/dbui.src b/sw/source/ui/dbui/dbui.src
index aa84a1b1f997..f0dba28f75cc 100644
--- a/sw/source/ui/dbui/dbui.src
+++ b/sw/source/ui/dbui/dbui.src
@@ -83,7 +83,7 @@ ModelessDialog DLG_PRINTMONITOR
Pos = MAP_APPFONT ( 6, 17 ) ;
Size = MAP_APPFONT ( 100, 8 ) ;
CENTER = TRUE ;
- Text [ en-US ] = "is being printed on" ;
+ Text [ en-US ] = "is being prepared for printing on" ;
};
FixedText FT_SENDING
{
diff --git a/sw/source/ui/dialog/makefile.mk b/sw/source/ui/dialog/makefile.mk
index 54b7784946e8..758ea00fcb10 100644
--- a/sw/source/ui/dialog/makefile.mk
+++ b/sw/source/ui/dialog/makefile.mk
@@ -86,11 +86,7 @@ $(INCCOM)$/swuilib.hxx: makefile.mk
$(RM) $@
echo \#define DLL_NAME \"libswui$(DLLPOSTFIX)$(DLLPOST)\" >$@
.ELSE
-.IF "$(USE_SHELL)"!="4nt"
echo \#define DLL_NAME \"swui$(DLLPOSTFIX)$(DLLPOST)\" >$@
-.ELSE # "$(USE_SHELL)"!="4nt"
- echo #define DLL_NAME "swui$(DLLPOSTFIX)$(DLLPOST)" >$@
-.ENDIF # "$(USE_SHELL)"!="4nt"
.ENDIF
$(SLO)$/swabstdlg.obj : $(INCCOM)$/swuilib.hxx
diff --git a/sw/source/ui/envelp/mailmrge.cxx b/sw/source/ui/envelp/mailmrge.cxx
index ae553ee89a19..141adf35ddf0 100644
--- a/sw/source/ui/envelp/mailmrge.cxx
+++ b/sw/source/ui/envelp/mailmrge.cxx
@@ -65,7 +65,7 @@
#include <com/sun/star/sdbc/XDataSource.hpp>
#include <toolkit/unohlp.hxx>
#include <comphelper/processfactory.hxx>
-#include <com/sun/star/form/XFormController.hpp>
+#include <com/sun/star/form/runtime/XFormController.hpp>
#include <cppuhelper/implbase1.hxx>
#include <com/sun/star/container/XChild.hpp>
#include <com/sun/star/container/XContainerQuery.hpp>
@@ -96,7 +96,7 @@ using namespace ::com::sun::star::ui::dialogs;
---------------------------------------------------------------------------*/
struct SwMailMergeDlg_Impl
{
- uno::Reference<XFormController> xFController;
+ uno::Reference<runtime::XFormController> xFController;
uno::Reference<XSelectionChangeListener> xChgLstnr;
uno::Reference<XSelectionSupplier> xSelSupp;
};
@@ -329,7 +329,7 @@ SwMailMergeDlg::SwMailMergeDlg(Window* pParent, SwWrtShell& rShell,
pBeamerWin->Show();
}
uno::Reference<XController> xController = xFrame->getController();
- pImpl->xFController = uno::Reference<XFormController>(xController, UNO_QUERY);
+ pImpl->xFController = uno::Reference<runtime::XFormController>(xController, UNO_QUERY);
if(pImpl->xFController.is())
{
uno::Reference< awt::XControl > xCtrl = pImpl->xFController->getCurrentControl( );
diff --git a/sw/source/ui/inc/tbxmgr.hxx b/sw/source/ui/inc/tbxmgr.hxx
deleted file mode 100644
index 43798be42de1..000000000000
--- a/sw/source/ui/inc/tbxmgr.hxx
+++ /dev/null
@@ -1,52 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 _TBXMGR_HXX
-#define _TBXMGR_HXX
-
-#include <svx/tbxdraw.hxx>
-/*
-class SwPopupWindowTbxMgr : public SvxPopupWindowTbxMgr
-{
- BOOL bWeb:1; //gilt der WebMode?
- ResId aRIdWinTemp;
- ResId aRIdTbxTemp;
- WindowAlign eAlignment;
- SfxBindings& mrBindings;
-
-public:
- SwPopupWindowTbxMgr( USHORT nId,
- WindowAlign eAlign,
- ResId aRIdWin,
- ResId aRIdTbx,
- SfxBindings& rBindings );
-
- virtual void StateChanged(USHORT nSID, SfxItemState eState, const SfxPoolItem* pState);
- virtual SfxPopupWindow* Clone() const;
-};
-*/
-
-#endif // _TBX_DRAW_HXX
diff --git a/sw/source/ui/ribbar/tblctrl.cxx b/sw/source/ui/ribbar/tblctrl.cxx
index 5c214950f4bc..ad5046af6b42 100644
--- a/sw/source/ui/ribbar/tblctrl.cxx
+++ b/sw/source/ui/ribbar/tblctrl.cxx
@@ -36,7 +36,6 @@
#include "cmdid.h"
#include "swtypes.hxx"
-#include "tbxmgr.hxx"
#include "tblctrl.hxx"
#include "tblctrl.hrc"
diff --git a/sw/source/ui/ribbar/tbxmgr.cxx b/sw/source/ui/ribbar/tbxmgr.cxx
deleted file mode 100644
index cbef12105242..000000000000
--- a/sw/source/ui/ribbar/tbxmgr.cxx
+++ /dev/null
@@ -1,180 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_sw.hxx"
-
-
-
-#include "cmdid.h"
-#include "swtypes.hxx" // nur wegen aEmptyString??
-#include "errhdl.hxx"
-#include "wdocsh.hxx"
-#include "tbxmgr.hxx"
-
-
-/*************************************************************************
-|*
-|*
-|*
-\************************************************************************/
-/*
-SwPopupWindowTbxMgr::SwPopupWindowTbxMgr( USHORT nId, WindowAlign eAlign,
- ResId aRIdWin, ResId aRIdTbx,
- SfxBindings& rBindings ) :
- SvxPopupWindowTbxMgr( nId, eAlign, aRIdWin, aRIdTbx ),
- bWeb(FALSE),
- aRIdWinTemp(aRIdWin),
- aRIdTbxTemp(aRIdTbx),
- eAlignment( eAlign ),
- mrBindings( rBindings )
-{
- SfxObjectShell* pObjShell = SfxObjectShell::Current();
- if(PTR_CAST(SwWebDocShell, pObjShell))
- {
- bWeb = TRUE;
- ToolBox& rTbx = GetTbxMgr().GetToolBox();
- // jetzt muessen ein paar Items aus der Toolbox versteckt werden:
- switch(nId)
- {
- case FN_INSERT_CTRL:
- rTbx.ShowItem(FN_INSERT_FRAME_INTERACT_NOCOL);
- rTbx.HideItem(FN_INSERT_FRAME_INTERACT);
- rTbx.HideItem(FN_INSERT_FOOTNOTE);
- rTbx.HideItem(FN_INSERT_ENDNOTE);
- rTbx.HideItem(FN_PAGE_STYLE_SET_COLS);
- rTbx.HideItem(FN_INSERT_IDX_ENTRY_DLG);
-
- break;
- case FN_INSERT_FIELD_CTRL:
- rTbx.HideItem(FN_INSERT_FLD_PGNUMBER);
- rTbx.HideItem(FN_INSERT_FLD_PGCOUNT);
- rTbx.HideItem(FN_INSERT_FLD_TOPIC);
- rTbx.HideItem(FN_INSERT_FLD_TITLE);
- break;
- }
- }
- else if( FN_INSERT_CTRL == nId)
- {
- ToolBox& rTbx = GetTbxMgr().GetToolBox();
- rTbx.ShowItem(FN_INSERT_FRAME_INTERACT);
- rTbx.HideItem(FN_INSERT_FRAME_INTERACT_NOCOL);
- }
-
- Size aSize = GetTbxMgr().CalcWindowSizePixel();
- GetTbxMgr().SetPosSizePixel( Point(), aSize );
- SetOutputSizePixel( aSize );
-}
-*/
-/*************************************************************************
-|*
-|*
-|*
-\************************************************************************/
-/*
-void SwPopupWindowTbxMgr::StateChanged(USHORT nSID, SfxItemState eState,
- const SfxPoolItem* pState)
-{
- static USHORT __READONLY_DATA aInsertCtrl[] =
- {
- FN_INSERT_FRAME_INTERACT,
- FN_INSERT_FOOTNOTE,
- FN_INSERT_ENDNOTE,
- FN_PAGE_STYLE_SET_COLS,
- FN_INSERT_IDX_ENTRY_DLG,
- 0
- };
- static USHORT __READONLY_DATA aInsertFld[] =
- {
- FN_INSERT_FLD_PGNUMBER,
- FN_INSERT_FLD_PGCOUNT,
- FN_INSERT_FLD_TOPIC,
- FN_INSERT_FLD_TITLE,
- 0
- };
-
- SfxObjectShell* pObjShell = SfxObjectShell::Current();
- BOOL bNewWeb = 0 != PTR_CAST(SwWebDocShell, pObjShell);
-
- if(bWeb != bNewWeb)
- {
- bWeb = bNewWeb;
- ToolBox& rTbx = GetTbxMgr().GetToolBox();
- // jetzt muessen ein paar Items aus der Toolbox versteckt werden:
- const USHORT* pSid = 0;
-
- switch(nSID)
- {
- case FN_INSERT_CTRL:
- pSid = &aInsertCtrl[0];
- if(bWeb)
- rTbx.ShowItem(FN_INSERT_FRAME_INTERACT_NOCOL);
- else
- rTbx.HideItem(FN_INSERT_FRAME_INTERACT_NOCOL);
- break;
- case FN_INSERT_FIELD_CTRL:
- pSid = & aInsertFld[0];
- break;
- }
- if(pSid)
- {
- if(bWeb)
- while(*pSid)
- {
- rTbx.HideItem(*pSid);
- pSid++;
- }
- else
- while(*pSid)
- {
- rTbx.ShowItem(*pSid);
- pSid++;
- }
- Size aSize = GetTbxMgr().CalcWindowSizePixel();
- GetTbxMgr().SetPosSizePixel( Point(), aSize );
- SetOutputSizePixel( aSize );
- }
- }
-
- SfxPopupWindow::StateChanged(nSID, eState, pState);
-}
-*/
-/*
-SfxPopupWindow* SwPopupWindowTbxMgr::Clone() const
-{
- return new SwPopupWindowTbxMgr(
- GetId(),
- eAlignment,
-// ((SwPopupWindowTbxMgr*)this)->GetTbxMgr().GetToolBox().GetAlign(),
- aRIdWinTemp,
- aRIdTbxTemp,
- mrBindings
-// (SfxBindings&)GetBindings()
- );
-}
-*/
-
diff --git a/sw/source/ui/ribbar/workctrl.cxx b/sw/source/ui/ribbar/workctrl.cxx
index f802751a47ea..c75cb3f0dfc4 100644
--- a/sw/source/ui/ribbar/workctrl.cxx
+++ b/sw/source/ui/ribbar/workctrl.cxx
@@ -50,7 +50,6 @@
#include <gloshdl.hxx>
#include <glosdoc.hxx>
#include <gloslst.hxx>
-#include <tbxmgr.hxx>
#include <workctrl.hxx>
#ifndef _WORKCTRL_HRC
#include <workctrl.hrc>
diff --git a/sw/source/ui/uno/unotxdoc.cxx b/sw/source/ui/uno/unotxdoc.cxx
index c818affa9398..a4167da88748 100644..100755
--- a/sw/source/ui/uno/unotxdoc.cxx
+++ b/sw/source/ui/uno/unotxdoc.cxx
@@ -35,6 +35,7 @@
#include <vcl/print.hxx>
#include <sfx2/viewfrm.hxx>
#include <sfx2/sfxbasecontroller.hxx>
+#include <sfx2/docfile.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <toolkit/awt/vclxdevice.hxx>
#include <cmdid.h>
@@ -2709,6 +2710,8 @@ sal_Int32 SAL_CALL SwXTextDocument::getRendererCount(
const TypeId aSwViewTypeId = TYPE(SwView);
if (pView->IsA(aSwViewTypeId))
{
+ if (m_pRenderData && m_pRenderData->NeedNewViewOptionAdjust( *pWrtShell ) )
+ m_pRenderData->ViewOptionAdjustStop();
if (m_pRenderData && !m_pRenderData->IsViewOptionAdjust())
m_pRenderData->ViewOptionAdjustStart( *pWrtShell, *pWrtShell->GetViewOptions() );
}
@@ -2811,6 +2814,7 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SwXTextDocument::getRenderer(
m_pPrintUIOptions->processProperties( rxOptions );
const bool bPrintProspect = m_pPrintUIOptions->getBoolValue( "PrintProspect", false );
const bool bIsSkipEmptyPages = !m_pPrintUIOptions->IsPrintEmptyPages( bIsPDFExport );
+ const bool bPrintPaperFromSetup = m_pPrintUIOptions->getBoolValue( "PrintPaperFromSetup", false );
SwDoc *pDoc = GetRenderDoc( pView, rSelection, bIsPDFExport );
DBG_ASSERT( pDoc && pView, "doc or view shell missing!" );
@@ -2838,7 +2842,21 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SwXTextDocument::getRenderer(
uno::Sequence< beans::PropertyValue > aRenderer;
if (m_pRenderData)
{
+ const USHORT nPage = nRenderer + 1;
+
+ // get paper tray to use ...
+ sal_Int32 nPrinterPaperTray = -1;
+ if (! bPrintPaperFromSetup)
+ {
+ // ... from individual page style (see the page tab in Format/Page dialog)
+ const std::map< sal_Int32, sal_Int32 > &rPaperTrays = m_pRenderData->GetPrinterPaperTrays();
+ std::map< sal_Int32, sal_Int32 >::const_iterator aIt( rPaperTrays.find( nPage ) );
+ if (aIt != rPaperTrays.end())
+ nPrinterPaperTray = aIt->second;
+ }
+
awt::Size aPageSize;
+ awt::Size aPreferredPageSize;
Size aTmpSize;
if (bIsSwSrcView || bPrintProspect)
{
@@ -2856,36 +2874,49 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SwXTextDocument::getRenderer(
Printer *pPrinter = dynamic_cast< Printer * >(lcl_GetOutputDevice( *m_pPrintUIOptions ));
if (pPrinter)
{
+ // HTML source view and prospect adapt to the printer's paper size
+ aTmpSize = pPrinter->GetPaperSize();
+ aTmpSize = pPrinter->LogicToLogic( aTmpSize,
+ pPrinter->GetMapMode(), MapMode( MAP_100TH_MM ));
+ aPageSize = awt::Size( aTmpSize.Width(), aTmpSize.Height() );
if (bPrintProspect)
{
- aTmpSize = pDoc->GetPageSize( USHORT(nRenderer + 1), bIsSkipEmptyPages );
// we just state what output size we would need
- // the rest is nowadays up to vcl
- aPageSize = awt::Size ( TWIP_TO_MM100( 2 * aTmpSize.Width() ),
- TWIP_TO_MM100( aTmpSize.Height() ));
- }
- else
- {
- // printing HTML source view
- aTmpSize = pPrinter->GetPaperSize();
- aTmpSize = pPrinter->LogicToLogic( aTmpSize,
- pPrinter->GetMapMode(), MapMode( MAP_100TH_MM ));
- aPageSize = awt::Size( aTmpSize.Width(), aTmpSize.Height() );
+ // which may cause vcl to set that page size on the printer
+ // (if available and not overriden by the user)
+ aTmpSize = pDoc->GetPageSize( nPage, bIsSkipEmptyPages );
+ aPreferredPageSize = awt::Size ( TWIP_TO_MM100( 2 * aTmpSize.Width() ),
+ TWIP_TO_MM100( aTmpSize.Height() ));
}
}
}
else
{
- aTmpSize = pDoc->GetPageSize( USHORT(nRenderer + 1), bIsSkipEmptyPages );
+ aTmpSize = pDoc->GetPageSize( nPage, bIsSkipEmptyPages );
aPageSize = awt::Size ( TWIP_TO_MM100( aTmpSize.Width() ),
TWIP_TO_MM100( aTmpSize.Height() ));
}
+ sal_Int32 nLen = 2;
aRenderer.realloc(2);
aRenderer[0].Name = OUString( RTL_CONSTASCII_USTRINGPARAM( "PageSize" ) );
aRenderer[0].Value <<= aPageSize;
aRenderer[1].Name = OUString( RTL_CONSTASCII_USTRINGPARAM( "PageIncludesNonprintableArea" ) );
aRenderer[1].Value <<= sal_True;
+ if (aPreferredPageSize.Width && aPreferredPageSize.Height)
+ {
+ ++nLen;
+ aRenderer.realloc( nLen );
+ aRenderer[ nLen - 1 ].Name = OUString( RTL_CONSTASCII_USTRINGPARAM( "PreferredPageSize" ) );
+ aRenderer[ nLen - 1 ].Value <<= aPreferredPageSize;
+ }
+ if (nPrinterPaperTray >= 0)
+ {
+ ++nLen;
+ aRenderer.realloc( nLen );
+ aRenderer[ nLen - 1 ].Name = OUString( RTL_CONSTASCII_USTRINGPARAM( "PrinterPaperTray" ) );
+ aRenderer[ nLen - 1 ].Value <<= nPrinterPaperTray;
+ }
}
m_pPrintUIOptions->appendPrintUIOptions( aRenderer );
@@ -3073,6 +3104,12 @@ void SAL_CALL SwXTextDocument::render(
{
lcl_DisposeView( m_pHiddenViewFrame, pDocShell );
m_pHiddenViewFrame = 0;
+
+ // prevent crash described in #i108805
+ SwDocShell *pRenderDocShell = pDoc->GetDocShell();
+ SfxItemSet *pSet = pRenderDocShell->GetMedium()->GetItemSet();
+ pSet->Put( SfxBoolItem( SID_HIDDEN, sal_False ) );
+
}
}
}
diff --git a/sw/util/makefile.mk b/sw/util/makefile.mk
index c69cec312565..557e871a74e7 100644
--- a/sw/util/makefile.mk
+++ b/sw/util/makefile.mk
@@ -134,7 +134,7 @@ DEFLIB1NAME=swall $(SWLIBFILES:b)
SHL2TARGET= swd$(DLLPOSTFIX)
SHL2IMPLIB= swdimp
-SHL2VERSIONMAP= swd.map
+SHL2VERSIONMAP=$(SOLARENV)/src/component.map
SHL2DEF=$(MISC)$/$(SHL2TARGET).def
DEF2NAME= $(SHL2TARGET)
@@ -342,7 +342,7 @@ TARGET_VBA=vbaswobj
SHL5TARGET=$(TARGET_VBA)$(DLLPOSTFIX).uno
SHL5IMPLIB= i$(TARGET_VBA)
-SHL5VERSIONMAP=$(TARGET_VBA).map
+SHL5VERSIONMAP=$(SOLARENV)/src/component.map
SHL5DEF=$(MISC)$/$(SHL5TARGET).def
DEF5NAME=$(SHL5TARGET)
SHL5STDLIBS= \
diff --git a/sw/util/msword.map b/sw/util/msword.map
index db60fc5ce8c8..16b9d25b0b78 100644..100755
--- a/sw/util/msword.map
+++ b/sw/util/msword.map
@@ -1,4 +1,4 @@
-MSWORD_1_0 {
+UDK_3_0_0 {
global:
ImportRTF;
ExportRTF;
diff --git a/sw/util/sw.map b/sw/util/sw.map
deleted file mode 100644
index 272fab31a03d..000000000000
--- a/sw/util/sw.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SW_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/sw/util/swd.map b/sw/util/swd.map
deleted file mode 100644
index 272fab31a03d..000000000000
--- a/sw/util/swd.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SW_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/sw/util/swui.map b/sw/util/swui.map
index f40bd255fe1d..ad5e33836c7c 100644
--- a/sw/util/swui.map
+++ b/sw/util/swui.map
@@ -1,4 +1,4 @@
-SWUI_1_0 {
+UDK_3_0_0 {
global:
CreateDialogFactory;
local:
diff --git a/sw/util/vbaswobj.map b/sw/util/vbaswobj.map
deleted file mode 100644
index 737cddbfe3df..000000000000
--- a/sw/util/vbaswobj.map
+++ /dev/null
@@ -1,9 +0,0 @@
-OOO_1.1 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/swext/mediawiki/src/description.xml b/swext/mediawiki/src/description.xml
index 30863c07e63c..369efc141274 100644
--- a/swext/mediawiki/src/description.xml
+++ b/swext/mediawiki/src/description.xml
@@ -14,6 +14,6 @@
<OpenOffice.org-minimal-version value="3.0" d:name="OpenOffice.org 3.0 or StarOffice 9"/>
</dependencies>
<publisher>
- <name xlink:href="http://www.sun.com/software/star/staroffice/extensions.jsp?cid=925095" lang="en">Oracle</name>
+ <name xlink:href="http://www.oracle.com/us/products/applications/open-office" lang="en">Oracle</name>
</publisher>
</description>
diff --git a/sysui/desktop/icons/hicolor/16x16/apps/printeradmin.png b/sysui/desktop/icons/hicolor/16x16/apps/printeradmin.png
index 4e8eb0e49dd8..399076c9934d 100644..100755
--- a/sysui/desktop/icons/hicolor/16x16/apps/printeradmin.png
+++ b/sysui/desktop/icons/hicolor/16x16/apps/printeradmin.png
Binary files differ
diff --git a/sysui/desktop/icons/hicolor/32x32/apps/printeradmin.png b/sysui/desktop/icons/hicolor/32x32/apps/printeradmin.png
index 2c7a0c03f8fd..b09999c7d083 100644..100755
--- a/sysui/desktop/icons/hicolor/32x32/apps/printeradmin.png
+++ b/sysui/desktop/icons/hicolor/32x32/apps/printeradmin.png
Binary files differ
diff --git a/sysui/desktop/icons/hicolor/48x48/apps/printeradmin.png b/sysui/desktop/icons/hicolor/48x48/apps/printeradmin.png
index 41971c9652a2..a11cbe5ab107 100644..100755
--- a/sysui/desktop/icons/hicolor/48x48/apps/printeradmin.png
+++ b/sysui/desktop/icons/hicolor/48x48/apps/printeradmin.png
Binary files differ
diff --git a/sysui/desktop/icons/makefile.mk b/sysui/desktop/icons/makefile.mk
index 1af3f4367fee..ac32cdbe453b 100644
--- a/sysui/desktop/icons/makefile.mk
+++ b/sysui/desktop/icons/makefile.mk
@@ -114,6 +114,7 @@ all: \
$(MISC)$/ooo3_math_doc.ico \
$(MISC)$/ooo3_writer_tem.ico \
$(MISC)$/ooo3_empty_tem.ico \
+ $(MISC)$/ooo3_open.ico \
$(MISC)$/ooo11-base-doc.ico \
$(MISC)$/ooo11-calc-doc.ico \
$(MISC)$/ooo11-calc-tem.ico \
@@ -176,6 +177,7 @@ all: \
$(MISC)$/so9_chart_doc.ico \
$(MISC)$/so9_writer_app.ico \
$(MISC)$/so9_draw_app.ico \
+ $(MISC)$/so9_open.ico \
$(MISC)$/so7-base-doc.ico \
$(MISC)$/so7-calc-doc.ico \
$(MISC)$/so7-calc-tem.ico \
diff --git a/sysui/desktop/icons/ooo3_open.ico b/sysui/desktop/icons/ooo3_open.ico
new file mode 100755
index 000000000000..98fcea3748a9
--- /dev/null
+++ b/sysui/desktop/icons/ooo3_open.ico
Binary files differ
diff --git a/sysui/desktop/icons/so9_open.ico b/sysui/desktop/icons/so9_open.ico
new file mode 100755
index 000000000000..90f193d80dd9
--- /dev/null
+++ b/sysui/desktop/icons/so9_open.ico
Binary files differ
diff --git a/sysui/desktop/share/launcher_comment.ulf b/sysui/desktop/share/launcher_comment.ulf
index e3abc7c7ead2..6aeab6d94c36 100644
--- a/sysui/desktop/share/launcher_comment.ulf
+++ b/sysui/desktop/share/launcher_comment.ulf
@@ -17,5 +17,5 @@ en-US = "Create and edit scientific formulas and equations by using Math."
en-US = "Manage databases, create queries and reports to track and manage your information by using Base."
[startcenter]
-en-US = "The office productivity suite compatible to the open and standardized ODF document format. Supported by Sun Microsystems."
+en-US = "The office productivity suite compatible to the open and standardized ODF document format. Supported by Oracle."
diff --git a/sysui/desktop/slackware/makefile.mk b/sysui/desktop/slackware/makefile.mk
index 7327aa469fa6..6fde1caf6528 100644
--- a/sysui/desktop/slackware/makefile.mk
+++ b/sysui/desktop/slackware/makefile.mk
@@ -42,10 +42,6 @@ TARGET=slackware
MENUFILES=$(PKGDIR)$/{$(PRODUCTLIST)}3.3-$(TARGET)-menus-$(PKGVERSION)-noarch-$(PKGREV).tgz
-.IF "$(USE_SHELL)"=="bash"
-ECHOPARAM=-e
-.ENDIF
-
# --- Targets -------------------------------------------------------
.INCLUDE : target.mk
@@ -74,7 +70,7 @@ $(MISC)/$(TARGET)/usr/share/applications/ :
@echo "( cd etc ; ln -snf /opt/$(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//):s/-//) $(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//)) )" >> $@
@echo "( cd usr/bin ; rm -rf soffice )" >> $@
@echo "( cd usr/bin ; ln -sf /etc/$(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//))/program/soffice soffice )" >> $@
- @echo $(ECHOPARAM) $(foreach,i,$(shell @cat $(COMMONMISC)$/$(*:b:s/-/ /:1:s/3.3//)/launcherlist) "\n( cd usr/share/applications ; rm -rf $(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//))-$i )\n( cd usr/share/applications ; ln -sf /etc/$(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//))/share/xdg/$i $(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//))-$i )") >> $@
+ @echo -e $(foreach,i,$(shell @cat $(COMMONMISC)$/$(*:b:s/-/ /:1:s/3.3//)/launcherlist) "\n( cd usr/share/applications ; rm -rf $(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//))-$i )\n( cd usr/share/applications ; ln -sf /etc/$(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//))/share/xdg/$i $(UNIXFILENAME.$(*:b:s/-/ /:1:s/3.3//))-$i )") >> $@
@cat $< >> $@
%$/install$/slack-desc : slack-desc
diff --git a/sal/qa/rtl/textenc/gcc3_export.map b/test/inc/makefile.mk
index e7f19d73264e..c8428466005b 100644
--- a/sal/qa/rtl/textenc/gcc3_export.map
+++ b/test/inc/makefile.mk
@@ -1,5 +1,4 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# Copyright 2000, 2010 Oracle and/or its affiliates.
@@ -22,15 +21,18 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
+
+PRJ = ..
+PRJNAME = test
+TARGET = inc
-UDK_3_0_0 {
- global:
- registerAllTestFunction;
+ENABLE_EXCEPTIONS = TRUE
+VISIBILITY_HIDDEN = TRUE
- _ZN4_STL7num_put*; # STLport
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
- local:
- *;
-};
+.IF "$(ENABLE_PCH)" != ""
+ALLTAR: $(SLO)/precompiled.pch $(SLO)/precompiled_ex.pch
+.ENDIF
diff --git a/test/inc/pch/precompiled_test.cxx b/test/inc/pch/precompiled_test.cxx
new file mode 100644
index 000000000000..7077411c8fc5
--- /dev/null
+++ b/test/inc/pch/precompiled_test.cxx
@@ -0,0 +1,26 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 "precompiled_test.hxx"
diff --git a/test/inc/pch/precompiled_test.hxx b/test/inc/pch/precompiled_test.hxx
new file mode 100644
index 000000000000..d4927944f9c7
--- /dev/null
+++ b/test/inc/pch/precompiled_test.hxx
@@ -0,0 +1,30 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 PRECOMPILED_HEADERS
+
+#include "sal/config.h"
+
+#endif
diff --git a/test/inc/test/detail/testdllapi.hxx b/test/inc/test/detail/testdllapi.hxx
new file mode 100644
index 000000000000..41d5b4d69b8c
--- /dev/null
+++ b/test/inc/test/detail/testdllapi.hxx
@@ -0,0 +1,39 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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_TEST_DETAIL_TESTDLLAPI_HXX
+#define INCLUDED_TEST_DETAIL_TESTDLLAPI_HXX
+
+#include "sal/config.h"
+
+#include "sal/types.h"
+
+#if defined OOO_DLLIMPLEMENTATION_TEST
+#define OOO_DLLPUBLIC_TEST SAL_DLLPUBLIC_EXPORT
+#else
+#define OOO_DLLPUBLIC_TEST SAL_DLLPUBLIC_IMPORT
+#endif
+
+#endif
diff --git a/test/inc/test/getargument.hxx b/test/inc/test/getargument.hxx
new file mode 100644
index 000000000000..1b4df29d2115
--- /dev/null
+++ b/test/inc/test/getargument.hxx
@@ -0,0 +1,44 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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_TEST_GETARGUMENT_HXX
+#define INCLUDED_TEST_GETARGUMENT_HXX
+
+#include "sal/config.h"
+
+#include "test/detail/testdllapi.hxx"
+
+namespace rtl { class OUString; }
+
+namespace test {
+
+// Obtain the value of an argument tunneled in via an "arg-<name>" bootstrap
+// variable:
+OOO_DLLPUBLIC_TEST bool getArgument(
+ rtl::OUString const & name, rtl::OUString * value);
+
+}
+
+#endif
diff --git a/test/inc/test/officeconnection.hxx b/test/inc/test/officeconnection.hxx
new file mode 100644
index 000000000000..99a319d51a7e
--- /dev/null
+++ b/test/inc/test/officeconnection.hxx
@@ -0,0 +1,65 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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_TEST_OFFICECONNECTION_HXX
+#define INCLUDED_TEST_OFFICECONNECTION_HXX
+
+#include "sal/config.h"
+
+#include "boost/noncopyable.hpp"
+#include "com/sun/star/uno/Reference.hxx"
+#include "osl/process.h"
+#include "test/detail/testdllapi.hxx"
+
+namespace com { namespace sun { namespace star { namespace lang {
+ class XMultiServiceFactory;
+} } } }
+
+namespace test {
+
+// Start up and shut down an OOo instance (details about the OOo instance are
+// tunneled in via "arg-..." bootstrap variables):
+class OOO_DLLPUBLIC_TEST OfficeConnection: private boost::noncopyable {
+public:
+ OfficeConnection();
+
+ ~OfficeConnection();
+
+ void setUp();
+
+ void tearDown();
+
+ com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >
+ getFactory() const;
+
+private:
+ oslProcess process_;
+ com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >
+ factory_;
+};
+
+}
+
+#endif
diff --git a/test/inc/test/oustringostreaminserter.hxx b/test/inc/test/oustringostreaminserter.hxx
new file mode 100644
index 000000000000..187b0ebd5f83
--- /dev/null
+++ b/test/inc/test/oustringostreaminserter.hxx
@@ -0,0 +1,48 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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_TEST_OUSTRINGOSTREAMINSERTER_HXX
+#define INCLUDED_TEST_OUSTRINGOSTREAMINSERTER_HXX
+
+#include "sal/config.h"
+
+#include <ostream>
+
+#include "osl/thread.h"
+#include "rtl/ustring.hxx"
+
+// Include this header to support rtl::OUString in CPPUNIT_ASSERT macros.
+
+template< typename charT, typename traits > std::basic_ostream<charT, traits> &
+operator <<(
+ std::basic_ostream<charT, traits> & stream, rtl::OUString const & string)
+{
+ return stream <<
+ rtl::OUStringToOString(string, osl_getThreadTextEncoding()).getStr();
+ // best effort; potentially loses data due to conversion failures and
+ // embedded null characters
+}
+
+#endif
diff --git a/test/inc/test/toabsolutefileurl.hxx b/test/inc/test/toabsolutefileurl.hxx
new file mode 100644
index 000000000000..5828a050fb75
--- /dev/null
+++ b/test/inc/test/toabsolutefileurl.hxx
@@ -0,0 +1,44 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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_TEST_TOABSOLUTEFILEURL_HXX
+#define INCLUDED_TEST_TOABSOLUTEFILEURL_HXX
+
+#include "sal/config.h"
+
+#include "test/detail/testdllapi.hxx"
+
+namespace rtl { class OUString; }
+
+namespace test {
+
+// Convert a pathname in system notation, potentially relative to the process's
+// current working directory, to an absolute file URL:
+OOO_DLLPUBLIC_TEST rtl::OUString toAbsoluteFileUrl(
+ rtl::OUString const & relativePathname);
+
+}
+
+#endif
diff --git a/test/prj/build.lst b/test/prj/build.lst
new file mode 100644
index 000000000000..1bf76d664a7a
--- /dev/null
+++ b/test/prj/build.lst
@@ -0,0 +1,4 @@
+te test : BOOST:boost cppu cppuhelper CPPUNIT:cppunit javaunohelper offuh ridljar sal solenv unoil NULL
+te test\inc nmake - all inc NULL
+te test\source\cpp nmake - all source_cpp inc NULL
+te test\source\java nmake - all source_java NULL
diff --git a/test/prj/d.lst b/test/prj/d.lst
new file mode 100644
index 000000000000..bcea8bee46fe
--- /dev/null
+++ b/test/prj/d.lst
@@ -0,0 +1,12 @@
+mkdir: %_DEST%\inc%_EXT%\test
+mkdir: %_DEST%\inc%_EXT%\test\detail
+..\%__SRC%\bin\test.dll %_DEST%\bin%_EXT%\test.dll
+..\%__SRC%\lib\itest.lib %_DEST%\lib%_EXT%\itest.lib
+..\%__SRC%\lib\libtest.dylib %_DEST%\lib%_EXT%\libtest.dylib
+..\%__SRC%\lib\libtest.so %_DEST%\lib%_EXT%\libtest.so
+..\inc\test\detail\testdllapi.hxx %_DEST%\inc%_EXT%\test\detail\testdllapi.hxx
+..\inc\test\getargument.hxx %_DEST%\inc%_EXT%\test\getargument.hxx
+..\inc\test\officeconnection.hxx %_DEST%\inc%_EXT%\test\officeconnection.hxx
+..\inc\test\oustringostreaminserter.hxx %_DEST%\inc%_EXT%\test\oustringostreaminserter.hxx
+..\inc\test\toabsolutefileurl.hxx %_DEST%\inc%_EXT%\test\toabsolutefileurl.hxx
+..\%__SRC%\class\test.jar %_DEST%\bin%_EXT%\test.jar
diff --git a/test/source/cpp/getargument.cxx b/test/source/cpp/getargument.cxx
new file mode 100644
index 000000000000..339c5c9c797d
--- /dev/null
+++ b/test/source/cpp/getargument.cxx
@@ -0,0 +1,42 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 "sal/config.h"
+
+#include "osl/diagnose.h"
+#include "rtl/bootstrap.hxx"
+#include "rtl/ustring.h"
+#include "rtl/ustring.hxx"
+#include "test/getargument.hxx"
+
+namespace test {
+
+bool getArgument(rtl::OUString const & name, rtl::OUString * value) {
+ OSL_ASSERT(value != 0);
+ return rtl::Bootstrap::get(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("arg-")) + name, *value);
+}
+
+}
diff --git a/testshl2/workben/skeleton/makefile.mk b/test/source/cpp/makefile.mk
index a9025d2717f5..8494bd4aaa05 100644
--- a/testshl2/workben/skeleton/makefile.mk
+++ b/test/source/cpp/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,30 +21,35 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ := ..$/..
-PRJNAME := testshl2
+PRJ = ../..
+PRJNAME = test
+TARGET = cpp
-TARGET := testshl2_workben_skeleton
-
-ENABLE_EXCEPTIONS := TRUE
-
-# --- Settings -----------------------------------------------------
+ENABLE_EXCEPTIONS = TRUE
+VISIBILITY_HIDDEN = TRUE
.INCLUDE: settings.mk
-SHL1TARGET := $(TARGET)
-SHL1OBJS := \
- $(SLO)$/skeleton.obj
-
-SHL1IMPLIB := i$(SHL1TARGET)
-SHL1STDLIBS := $(CPPUNITLIB) $(SALLIB)
-SHL1VERSIONMAP := export.map
-DEF1NAME := $(SHL1TARGET)
-
-# --- Targets ------------------------------------------------------
+CDEFS += -DOOO_DLLIMPLEMENTATION_TEST
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
+SLOFILES = \
+ $(SLO)/getargument.obj \
+ $(SLO)/officeconnection.obj \
+ $(SLO)/toabsolutefileurl.obj
+
+SHL1IMPLIB = i$(SHL1TARGET)
+SHL1OBJS = $(SLOFILES)
+SHL1RPATH = NONE
+SHL1STDLIBS = \
+ $(CPPUHELPERLIB) \
+ $(CPPULIB) \
+ $(CPPUNITLIB) \
+ $(SALLIB)
+SHL1TARGET = test
+SHL1USE_EXPORTS = name
+DEF1NAME = $(SHL1TARGET)
.INCLUDE: target.mk
-.INCLUDE : _cppunit.mk
diff --git a/test/source/cpp/officeconnection.cxx b/test/source/cpp/officeconnection.cxx
new file mode 100644
index 000000000000..0365484ea9c8
--- /dev/null
+++ b/test/source/cpp/officeconnection.cxx
@@ -0,0 +1,159 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 "sal/config.h"
+
+#include "com/sun/star/bridge/UnoUrlResolver.hpp"
+#include "com/sun/star/bridge/XUnoUrlResolver.hpp"
+#include "com/sun/star/connection/NoConnectException.hpp"
+#include "com/sun/star/frame/XDesktop.hpp"
+#include "com/sun/star/lang/DisposedException.hpp"
+#include "com/sun/star/lang/XMultiServiceFactory.hpp"
+#include "com/sun/star/uno/Reference.hxx"
+#include "cppuhelper/bootstrap.hxx"
+#include "cppunit/TestAssert.h"
+#include "osl/process.h"
+#include "osl/time.h"
+#include "sal/types.h"
+#include "test/getargument.hxx"
+#include "test/officeconnection.hxx"
+#include "test/toabsolutefileurl.hxx"
+
+namespace {
+
+namespace css = com::sun::star;
+
+}
+
+namespace test {
+
+OfficeConnection::OfficeConnection(): process_(0) {}
+
+OfficeConnection::~OfficeConnection() {}
+
+void OfficeConnection::setUp() {
+ oslProcessInfo info;
+ info.Size = sizeof info;
+ CPPUNIT_ASSERT_EQUAL(
+ osl_Process_E_None,
+ osl_getProcessInfo(0, osl_Process_IDENTIFIER, &info));
+ rtl::OUString desc(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("pipe,name=oootest")) +
+ rtl::OUString::valueOf(static_cast< sal_Int64 >(info.Ident)) +
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(";urp")));
+ rtl::OUString noquickArg(
+ RTL_CONSTASCII_USTRINGPARAM("-quickstart=no"));
+ rtl::OUString nofirstArg(
+ RTL_CONSTASCII_USTRINGPARAM("-nofirststartwizard"));
+ rtl::OUString norestoreArg(RTL_CONSTASCII_USTRINGPARAM("-norestore"));
+ rtl::OUString acceptArg(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-accept=")) + desc);
+ rtl::OUString argUser;
+ CPPUNIT_ASSERT(
+ getArgument(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("user")), &argUser));
+ rtl::OUString userArg(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-env:UserInstallation=")) +
+ toAbsoluteFileUrl(argUser));
+ rtl::OUString jreArg(
+ RTL_CONSTASCII_USTRINGPARAM("-env:UNO_JAVA_JFW_ENV_JREHOME=true"));
+ rtl::OUString classpathArg(
+ RTL_CONSTASCII_USTRINGPARAM("-env:UNO_JAVA_JFW_ENV_CLASSPATH=true"));
+ rtl_uString * args[] = {
+ noquickArg.pData, nofirstArg.pData, norestoreArg.pData, acceptArg.pData,
+ userArg.pData, jreArg.pData, classpathArg.pData };
+ rtl_uString ** envs = 0;
+ rtl::OUString argEnv;
+ if (getArgument(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("env")), &argEnv))
+ {
+ envs = &argEnv.pData;
+ }
+ rtl::OUString argPath;
+ CPPUNIT_ASSERT(
+ getArgument(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("path")), &argPath));
+ CPPUNIT_ASSERT_EQUAL(
+ osl_Process_E_None,
+ osl_executeProcess(
+ toAbsoluteFileUrl(argPath).pData, args,
+ sizeof args / sizeof args[0], 0, 0, 0, envs, envs == 0 ? 0 : 1,
+ &process_));
+ css::uno::Reference< css::bridge::XUnoUrlResolver > resolver(
+ css::bridge::UnoUrlResolver::create(
+ cppu::defaultBootstrap_InitialComponentContext()));
+ for (int i = 0;; ++i) {
+ try {
+ factory_ =
+ css::uno::Reference< css::lang::XMultiServiceFactory >(
+ resolver->resolve(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:")) +
+ desc +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ";StarOffice.ServiceManager"))),
+ css::uno::UNO_QUERY_THROW);
+ break;
+ } catch (css::connection::NoConnectException &) {}
+ TimeValue delay = { 1, 0 }; // 1 sec
+ CPPUNIT_ASSERT_EQUAL(
+ osl_Process_E_TimedOut,
+ osl_joinProcessWithTimeout(process_, &delay));
+ }
+}
+
+void OfficeConnection::tearDown() {
+ if (factory_.is()) {
+ css::uno::Reference< css::frame::XDesktop > desktop(
+ factory_->createInstance(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.Desktop"))),
+ css::uno::UNO_QUERY_THROW);
+ factory_.clear();
+ try {
+ CPPUNIT_ASSERT(desktop->terminate());
+ desktop.clear();
+ } catch (css::lang::DisposedException &) {}
+ // it appears that DisposedExceptions can already happen while
+ // receiving the response of the terminate call
+ }
+ if (process_ != 0) {
+ CPPUNIT_ASSERT_EQUAL(osl_Process_E_None, osl_joinProcess(process_));
+ oslProcessInfo info;
+ info.Size = sizeof info;
+ CPPUNIT_ASSERT_EQUAL(
+ osl_Process_E_None,
+ osl_getProcessInfo(process_, osl_Process_EXITCODE, &info));
+ CPPUNIT_ASSERT_EQUAL(oslProcessExitCode(0), info.Code);
+ osl_freeProcessHandle(process_);
+ }
+}
+
+css::uno::Reference< css::lang::XMultiServiceFactory >
+OfficeConnection::getFactory() const {
+ return factory_;
+}
+
+}
diff --git a/test/source/cpp/toabsolutefileurl.cxx b/test/source/cpp/toabsolutefileurl.cxx
new file mode 100644
index 000000000000..be7f2ae20921
--- /dev/null
+++ b/test/source/cpp/toabsolutefileurl.cxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 "sal/config.h"
+
+#include "com/sun/star/uno/Reference.hxx"
+#include "com/sun/star/uno/RuntimeException.hpp"
+#include "com/sun/star/uno/XInterface.hpp"
+#include "osl/file.hxx"
+#include "osl/process.h"
+#include "rtl/ustring.hxx"
+#include "test/toabsolutefileurl.hxx"
+
+namespace {
+
+namespace css = com::sun::star;
+
+}
+
+namespace test {
+
+rtl::OUString toAbsoluteFileUrl(rtl::OUString const & relativePathname) {
+ rtl::OUString cwd;
+ oslProcessError e1 = osl_getProcessWorkingDir(&cwd.pData);
+ if (e1 != osl_Process_E_None) {
+ throw css::uno::RuntimeException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "osl_getProcessWorkingDir failed with ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(e1))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ rtl::OUString url;
+ osl::FileBase::RC e2 = osl::FileBase::getFileURLFromSystemPath(
+ relativePathname, url);
+ if (e2 != osl::FileBase::E_None) {
+ throw css::uno::RuntimeException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "osl::FileBase::getFileURLFromSystemPath(")) +
+ relativePathname +
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(") failed with ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(e2))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ rtl::OUString absUrl;
+ e2 = osl::FileBase::getAbsoluteFileURL(cwd, url, absUrl);
+ if (e2 != osl::FileBase::E_None) {
+ throw css::uno::RuntimeException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "osl::FileBase::getAbsoluteFileURL(")) +
+ cwd + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", ")) + url +
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(") failed with ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(e2))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ return absUrl;
+}
+
+}
diff --git a/test/source/java/OfficeConnection.java b/test/source/java/OfficeConnection.java
new file mode 100644
index 000000000000..6a7ecd277758
--- /dev/null
+++ b/test/source/java/OfficeConnection.java
@@ -0,0 +1,207 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.test;
+
+import com.sun.star.bridge.UnoUrlResolver;
+import com.sun.star.bridge.XUnoUrlResolver;
+import com.sun.star.comp.helper.Bootstrap;
+import com.sun.star.connection.NoConnectException;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.lang.DisposedException;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.util.Map;
+import java.util.UUID;
+import static org.junit.Assert.*;
+
+/** Start up and shut down an OOo instance.
+
+ Details about the OOo instance are tunneled in via
+ org.openoffice.test.arg.... system properties.
+*/
+public final class OfficeConnection {
+ /** Start up an OOo instance.
+ */
+ public void setUp() throws Exception {
+ description = "pipe,name=oootest" + UUID.randomUUID();
+ ProcessBuilder pb = new ProcessBuilder(
+ getArgument("path"), "-quickstart=no", "-nofirststartwizard",
+ "-norestore", "-accept=" + description + ";urp",
+ "-env:UserInstallation=" + getArgument("user"),
+ "-env:UNO_JAVA_JFW_ENV_JREHOME=true",
+ "-env:UNO_JAVA_JFW_ENV_CLASSPATH=true");
+ String envArg = getArgument("env");
+ if (envArg != null) {
+ Map<String, String> env = pb.environment();
+ int i = envArg.indexOf("=");
+ if (i == -1) {
+ env.remove(envArg);
+ } else {
+ env.put(envArg.substring(0, i), envArg.substring(i + 1));
+ }
+ }
+ process = pb.start();
+ outForward = new Forward(process.getInputStream(), System.out);
+ outForward.start();
+ errForward = new Forward(process.getErrorStream(), System.err);
+ errForward.start();
+ XUnoUrlResolver resolver = UnoUrlResolver.create(
+ Bootstrap.createInitialComponentContext(null));
+ for (int i = 0;; ++i) {
+ try {
+ factory = UnoRuntime.queryInterface(
+ XMultiServiceFactory.class,
+ resolver.resolve(
+ "uno:" + description +
+ ";urp;StarOffice.ServiceManager"));
+ break;
+ } catch (NoConnectException e) {}
+ assertNull(waitForProcess(process, 1000)); // 1 sec
+ }
+ }
+
+ /** Shut down the OOo instance.
+ */
+ public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ boolean desktopTerminated = true;
+ if (factory != null) {
+ XDesktop desktop = UnoRuntime.queryInterface(
+ XDesktop.class,
+ factory.createInstance("com.sun.star.frame.Desktop"));
+ factory = null;
+ try {
+ desktopTerminated = desktop.terminate();
+ } catch (DisposedException e) {}
+ // it appears that DisposedExceptions can already happen while
+ // receiving the response of the terminate call
+ desktop = null;
+ }
+ int code = 0;
+ if (process != null) {
+ code = process.waitFor();
+ }
+ boolean outTerminated = outForward == null || outForward.terminated();
+ boolean errTerminated = errForward == null || errForward.terminated();
+ assertTrue(desktopTerminated);
+ assertEquals(0, code);
+ assertTrue(outTerminated);
+ assertTrue(errTerminated);
+ }
+
+ /** Obtain the service factory of the running OOo instance.
+ */
+ public XMultiServiceFactory getFactory() {
+ return factory;
+ }
+
+ //TODO: get rid of this hack for legacy qa/unoapi tests
+ public String getDescription() {
+ return description;
+ }
+
+ private static String getArgument(String name) {
+ return System.getProperty("org.openoffice.test.arg." + name);
+ }
+
+ private static Integer waitForProcess(Process process, final long millis)
+ throws InterruptedException
+ {
+ final Thread t1 = Thread.currentThread();
+ Thread t2 = new Thread("waitForProcess") {
+ public void run() {
+ try {
+ Thread.currentThread().sleep(millis);
+ } catch (InterruptedException e) {}
+ t1.interrupt();
+ }
+ };
+ boolean old = Thread.interrupted();
+ // clear interrupted status, get old status
+ t2.start();
+ int n = 0;
+ boolean done = false;
+ try {
+ n = process.waitFor();
+ done = true;
+ } catch (InterruptedException e) {}
+ t2.interrupt();
+ try {
+ t2.join();
+ } catch (InterruptedException e) {
+ t2.join();
+ }
+ Thread.interrupted(); // clear interrupted status
+ if (old) {
+ t1.interrupt(); // reset old status
+ }
+ return done ? new Integer(n) : null;
+ }
+
+ private static final class Forward extends Thread {
+ public Forward(InputStream in, PrintStream out) {
+ super("process output forwarder");
+ this.in = in;
+ this.out = out;
+ }
+
+ public void run() {
+ for (;;) {
+ byte[] buf = new byte[1024];
+ int n;
+ try {
+ n = in.read(buf);
+ } catch (IOException e) {
+ throw new RuntimeException("wrapping", e);
+ }
+ if (n == -1) {
+ break;
+ }
+ out.write(buf, 0, n);
+ }
+ done = true;
+ }
+
+ public boolean terminated() throws InterruptedException {
+ join();
+ return done;
+ }
+
+ InputStream in;
+ PrintStream out;
+ boolean done = false;
+ }
+
+ private String description;
+ private Process process = null;
+ private Forward outForward = null;
+ private Forward errForward = null;
+ private XMultiServiceFactory factory = null;
+}
diff --git a/testshl2/source/testshlrunner/makefile.mk b/test/source/java/makefile.mk
index c29ff16e7c08..a541d532f158 100644
--- a/testshl2/source/testshlrunner/makefile.mk
+++ b/test/source/java/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,23 +21,29 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ = ..$/..
+PRJ = ../..
+PRJNAME = test
+TARGET = java
-PRJNAME = TestShl2Runner
-TARGET = TestShl2Runner
+.IF "$(OOO_JUNIT_JAR)" != ""
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
+PACKAGE = org/openoffice/test
+JAVAFILES = OfficeConnection.java
+JARFILES = juh.jar ridl.jar unoil.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-# JARFILES = ridl.jar unoil.jar jurt.jar juh.jar
-# Tip:
-# why 'grep java$$' the $$ is for a real $ and this is for regexp and stays for line end,
-# so we prevent us for compiling *.java~
-JAVAFILES = $(foreach,j,$(shell @ls | grep java$$) $j)
+JARTARGET = test.jar
+JARCLASSDIRS = $(PACKAGE)
+JARCLASSPATH = $(JARFILES)
+ # expect $(OOO_JUNIT_JAR) to be on CLASSPATH wherever test.jar is used (also,
+ # on Windows, $(OOO_JUNIT_JAR) could be an absolute pathname with drive letter
+ # like X:/path and some JVMs would refuse to load test.jar if its MANIFEST.MF
+ # Class-Path contained such a pathname that looks like an unknown URL with
+ # scheme X)
-# --- Targets ------------------------------------------------------
+.END
-.INCLUDE : target.mk
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
diff --git a/testautomation/chart2/optional/includes/ch2_lvl1a.inc b/testautomation/chart2/optional/includes/ch2_lvl1a.inc
index 42ee8ff48bd1..5f72fd7e32f9 100644..100755
--- a/testautomation/chart2/optional/includes/ch2_lvl1a.inc
+++ b/testautomation/chart2/optional/includes/ch2_lvl1a.inc
@@ -174,7 +174,9 @@ testcase tChartShapes
' Call hToolbarSelect("Drawing", true)
' endif
- printlog " Insert a shape to the chart by <STRG-RETURN>"
+ printlog " Insert a shape to the chart by <STRG-RETURN>"
+ Kontext "DocumentChart"
+ DocumentChart.TypeKeys "<F6>",4
Kontext "DrawBar"
sleep (1)
DrawBar.typekeys "<TAB>",TRUE
diff --git a/testautomation/chart2/tools/ch_tools_select.inc b/testautomation/chart2/tools/ch_tools_select.inc
index 00c86ed8e12e..beeda0d3dcdd 100644..100755
--- a/testautomation/chart2/tools/ch_tools_select.inc
+++ b/testautomation/chart2/tools/ch_tools_select.inc
@@ -127,7 +127,7 @@ function fChartSelectElement ( iObjectPosition as INTEGER ) as boolean
fChartSelectElement = FALSE
try
Kontext "Toolbar"
- sleep (1)
+ sleep (2)
ChartElementSelector.Select (iObjectPosition)
fChartSelectElement = TRUE
catch
diff --git a/testautomation/global/win/edia_p_s.win b/testautomation/global/win/edia_p_s.win
index a95316d03619..a97b3b3ed8be 100644
--- a/testautomation/global/win/edia_p_s.win
+++ b/testautomation/global/win/edia_p_s.win
@@ -257,6 +257,9 @@ RightFieldCell HID_RELATIONDIALOG_RIGHTFIELDCELL
*Relief SID_GRFFILTER_EMBOSS
LightSource HID_GRFFILTER_EMBOSS_LIGHT
+*RenameAutoFormat HID_SC_REN_AFMT_DLG
+RenameAutoFormatName HID_SC_REN_AFMT_NAME
+
*RenameElement HID_MM_ADD_RENAME_ENTRY
FieldTitle sw:Edit:DLG_MM_ADD_RENAME_ENTRY:ED_FIELDNAME
diff --git a/testautomation/spreadsheet/required/includes/c_upd_formatmenu2.inc b/testautomation/spreadsheet/required/includes/c_upd_formatmenu2.inc
index 46b29a7755df..f85969784c39 100644..100755
--- a/testautomation/spreadsheet/required/includes/c_upd_formatmenu2.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_formatmenu2.inc
@@ -436,18 +436,17 @@ testcase tFormatAutoFormat
'/// Select second entry in 'Format' – listbox
printlog " Select second entry in 'Format' – listbox"
FormatListe.Select 2
- qaerrorlog "Due to i85043 the rename button and the rename dialog are not testable"
-' '/// Click on 'Rename' – button
-' printlog " Click on 'Rename' – button"
-' AutoFormatRenameCalc.Click
-' Kontext "AutoFormatRenameCalc"
-' Call DialogTest ( AutoFormatRenameCalc )
-' '/// Set format name to 'Newformat'
-' printlog " Set format name to 'Newformat'"
-' FormatName.SetText "Newformat"
-' '/// Close 'Rename AutoFormat' – dialog with 'Cancel'
-' printlog " Close 'Rename AutoFormat' – dialog with 'Cancel'"
-' AutoFormatRenameCalc.Cancel
+ '/// Click on 'Rename' – button
+ printlog " Click on 'Rename' – button"
+ Umbenennen.Click
+ Kontext "RenameAutoFormat"
+ Call DialogTest ( RenameAutoFormat )
+ '/// Set format name to 'Newformat'
+ printlog " Set format name to 'Newformat'"
+ RenameAutoFormatName.SetText "Newformat"
+ '/// Close 'Rename AutoFormat' – dialog with 'Cancel'
+ printlog " Close 'Rename AutoFormat' – dialog with 'Cancel'"
+ RenameAutoFormat.Cancel
Kontext "AutoformatCalc"
'/// Click on 'Delete' – button
printlog " Click on 'Delete' – button"
diff --git a/testshl2/README b/testshl2/README
deleted file mode 100644
index 03e7475a1d6e..000000000000
--- a/testshl2/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This is the second version of the testshl.
-
-Upper-lower case filenames.
-- I prever lower case filenames. Due to the fact that the cppunit
- code uses mixed upper and lower case I leave the original filenames
- unchanged.
-
-
diff --git a/testshl2/inc/makefile.mk b/testshl2/inc/makefile.mk
deleted file mode 100644
index cbed35c5cbb3..000000000000
--- a/testshl2/inc/makefile.mk
+++ /dev/null
@@ -1,47 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=testshl2
-TARGET=inc
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
-.IF "$(ENABLE_PCH)"!=""
-ALLTAR : \
- $(SLO)$/precompiled.pch \
- $(SLO)$/precompiled_ex.pch
-
-.ENDIF # "$(ENABLE_PCH)"!=""
-
diff --git a/testshl2/inc/pch/precompiled_testshl2.cxx b/testshl2/inc/pch/precompiled_testshl2.cxx
deleted file mode 100644
index c30f5dd27e3e..000000000000
--- a/testshl2/inc/pch/precompiled_testshl2.cxx
+++ /dev/null
@@ -1,29 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 "precompiled_testshl2.hxx"
-
diff --git a/testshl2/inc/testshl/additionalfunc.hxx b/testshl2/inc/testshl/additionalfunc.hxx
deleted file mode 100644
index 463d1ae87280..000000000000
--- a/testshl2/inc/testshl/additionalfunc.hxx
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef ADDITIONALFUNC_HXX
-#define ADDITIONALFUNC_HXX
-
-#include "testshl/autoregister/registertestfunction.h"
-#include "sal/types.h"
-
-extern "C" void SAL_CALL RegisterAdditionalFunctions(FktRegFuncPtr _pFunc);
-
-#define NOADDITIONAL \
-void RegisterAdditionalFunctions(FktRegFuncPtr){}
-
-namespace {
-
-enum T2_OSType {
- T2_OS_WNT32 = 1,
- T2_OS_UNIX,
- T2_OS_OS2
-};
-
-inline T2_OSType getOSType()
-{
-#if defined WNT
- return T2_OS_WNT32;
-#elif defined OS2
- return T2_OS_OS2;
-#else
- return T2_OS_UNIX;
-#endif
-}
-
-}
-
-#define TESTSHL2_UNO_BOOTSTRAP(file) \
-void RegisterAdditionalFunctions(FktRegFuncPtr _pFunc) \
-{ \
- com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory> xMS; \
- com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > xComponentContext; \
- try { \
- if (strlen(#file) > 0) { \
- ::rtl::OUString iniFile(rtl::OUString::createFromAscii(#file)); \
- if (getOSType() == T2_OS_WNT32 || getOSType() == T2_OS_OS2) { \
- iniFile += ::rtl::OUString::createFromAscii(".ini"); \
- } else { \
- iniFile += ::rtl::OUString::createFromAscii("rc"); \
- } \
- xComponentContext = cppu::defaultBootstrap_InitialComponentContext(iniFile); \
- } else { \
- xComponentContext = cppu::defaultBootstrap_InitialComponentContext(); \
- } \
- xMS.set(xComponentContext->getServiceManager(), com::sun::star::uno::UNO_QUERY); \
- comphelper::setProcessServiceFactory(xMS); \
- } \
- catch (::com::sun::star::uno::Exception e ) { \
- rtl::OString aError; \
- aError = rtl::OUStringToOString(e.Message, RTL_TEXTENCODING_ASCII_US); \
- printf("Error at UNO bootstrap time caught: %s\nMust quit.\n", aError.getStr()); \
- exit(1); \
- } \
-}
-
-#endif
diff --git a/testshl2/inc/testshl/autoregister/callbackstructure.h b/testshl2/inc/testshl/autoregister/callbackstructure.h
deleted file mode 100644
index 2bddc43eb003..000000000000
--- a/testshl2/inc/testshl/autoregister/callbackstructure.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 _callbackstructure_h
-#define _callbackstructure_h
-
-#include <sal/types.h>
-#include <cppunit/callbackfunc_fktptr.h>
-#include <testshl/autoregister/registerfunc.h>
-#include <testshl/autoregister/registertestfunction.h>
-#include <testshl/cmdlinebits.hxx>
-
-// this structure will filled by the testshl tool and hand to the testdll
-
-struct CallbackStructure
-{
- // a version number, if we want to change/expand this struct
- sal_Int32 nVersion;
- sal_Int64 nMagic;
-
- FktRegFuncPtr aRegisterFunction;
-
- FktPtr_CallbackDispatch aCallbackDispatch;
-
- //# FktPtr_TestResult_startTest aStartTest;
- //# FktPtr_TestResult_addFailure aAddFailure;
- //# FktPtr_TestResult_addError aAddError;
- //# FktPtr_TestResult_endTest aEndTest;
- //# FktPtr_TestResult_shouldStop aShouldStop;
- //#
- //# FktPtr_TestResult_addInfo aAddInfo;
- //# FktPtr_TestResult_enterNode aEnterNode;
- //# FktPtr_TestResult_leaveNode aLeaveNode;
-
- const char* psForward;
- CmdLineBits nBits;
-
- // void* pJobList;
-
- sal_Int64 nMagic2;
-
- CallbackStructure()
- :nVersion(1),
- nMagic(SAL_CONST_INT64(0x0123456789abcdef)),
- aRegisterFunction(NULL),
- aCallbackDispatch(NULL),
- /* aStartTest(NULL),
- aAddFailure(NULL),
- aAddError(NULL),
- aEndTest(NULL),
- aShouldStop(NULL),
- aAddInfo(NULL),
- aEnterNode(NULL),
- aLeaveNode(NULL), */
- psForward(NULL),
- nBits(0),
- /* pJobList(NULL), */
- nMagic2(0)
- {}
-};
-
-#endif
diff --git a/testshl2/inc/testshl/autoregister/htestresult.h b/testshl2/inc/testshl/autoregister/htestresult.h
deleted file mode 100644
index 46cfbc8b6808..000000000000
--- a/testshl2/inc/testshl/autoregister/htestresult.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef _htestresult_h
-#define _htestresult_h
-
-typedef void* hTestResult;
-
-#endif
diff --git a/testshl2/inc/testshl/autoregister/registerfunc.h b/testshl2/inc/testshl/autoregister/registerfunc.h
deleted file mode 100644
index 7e3ee891c2ec..000000000000
--- a/testshl2/inc/testshl/autoregister/registerfunc.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 _registerfunc_h
-#define _registerfunc_h
-
-#include <sal/types.h>
-#include <testshl/autoregister/htestresult.h>
-#include <cppunit/callbackfunc_fktptr.h>
-#include <testshl/autoregister/testfunc.h>
-
-struct CallbackStructure;
-
-// this function is used to register one function into a Container in the testshl tool.
-extern "C" void SAL_CALL registerFunction(FktPtr aFunc, const char* aFuncName);
-
-// this function is the register function for auto registering
-
-extern "C" void SAL_CALL registerAllTestFunction(CallbackStructure* );
-typedef void (* FktRegAllPtr)(CallbackStructure*);
-
-
-#endif
diff --git a/testshl2/inc/testshl/autoregister/registertestfunction.h b/testshl2/inc/testshl/autoregister/registertestfunction.h
deleted file mode 100644
index 0cab2815f85e..000000000000
--- a/testshl2/inc/testshl/autoregister/registertestfunction.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 _registertestfunction_h
-#define _registertestfunction_h
-
-#include <sal/types.h>
-#include <testshl/autoregister/testfunc.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// function ptr, to register a function
-typedef void (* FktRegFuncPtr)(FktPtr aFunc, const char* aFuncName);
-
-// this function is used in the testdll to register the given function
-// into the testshl
-extern "C" void SAL_CALL RegisterTestFunctions(FktRegFuncPtr aFunc);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/testshl2/inc/testshl/autoregisterhelper.hxx b/testshl2/inc/testshl/autoregisterhelper.hxx
deleted file mode 100644
index 538133ade19d..000000000000
--- a/testshl2/inc/testshl/autoregisterhelper.hxx
+++ /dev/null
@@ -1,62 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 AUTOREGISTER_HXX
-#define AUTOREGISTER_HXX
-
-#include <vector>
-#include <rtl/ustring.hxx>
-
-#include <testshl/autoregister/testfunc.h>
-
-#include "testshl/dynamicregister.hxx"
-#include "testshl/getopt.hxx"
-
-typedef std::vector<FktPtr> FunctionList;
-
-// -----------------------------------------------------------------------------
-class JobList;
-class AutomaticRegisterHelper : public DynamicLibraryHelper
-{
- FunctionList m_aFunctionList;
- bool m_bLoadLibraryOK;
- // GetOpt & m_aOptions; // use getOptions() instead!
-
-public:
- AutomaticRegisterHelper(rtl::OUString const& _sDLLName, GetOpt & _aOptions/* , JobList * _pJobList = NULL */ );
-
- // FunctionList getFunctions(){return m_aFunctionList;}
- void CallAll(hTestResult _hResult) const;
-
- /// @return true, if the given DLLName library could load and initialised.
- bool isOkToStartTests() const {return m_bLoadLibraryOK;}
-
- virtual ~AutomaticRegisterHelper();
-};
-
-#endif
-
diff --git a/testshl2/inc/testshl/checkboom.hxx b/testshl2/inc/testshl/checkboom.hxx
deleted file mode 100644
index 668ce603a429..000000000000
--- a/testshl2/inc/testshl/checkboom.hxx
+++ /dev/null
@@ -1,37 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 CHECKBOOM_HXX
-#define CHECKBOOM_HXX
-
-#include <string>
-#include <rtl/ustring.hxx>
-
-void CheckBoom(bool bCondition, std::string const& msg);
-void CheckBoom(bool bCondition, rtl::OUString const& msg);
-
-#endif
diff --git a/testshl2/inc/testshl/cmdlinebits.hxx b/testshl2/inc/testshl/cmdlinebits.hxx
deleted file mode 100644
index 99c166f2fc83..000000000000
--- a/testshl2/inc/testshl/cmdlinebits.hxx
+++ /dev/null
@@ -1,49 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 CMDLINEBITS_HXX
-#define CMDLINEBITS_HXX
-
-#include <sal/types.h>
-
-typedef sal_uInt32 CmdLineBits;
-const char* getForwardString();
-
-#include <stdarg.h>
-
-enum T_Print_Params {
- T_INFO = 1,
- T_VERBOSE,
- T_DEBUG,
- T_ERROR
-};
-
-// void t_print(const char*);
-void t_print(const char*, ...);
-void t_print(T_Print_Params, const char*, ...);
-
-#endif
diff --git a/testshl2/inc/testshl/dynamicregister.hxx b/testshl2/inc/testshl/dynamicregister.hxx
deleted file mode 100644
index f29ad52e963f..000000000000
--- a/testshl2/inc/testshl/dynamicregister.hxx
+++ /dev/null
@@ -1,64 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 DYNAMICREGISTER_HXX
-#define DYNAMICREGISTER_HXX
-
-#include <rtl/ustring.hxx>
-#include <osl/module.hxx>
-
-#include "testshl/getopt.hxx"
-#include "testshl/nocopy.hxx"
-
-// -------------------------------------------------
-
-class DynamicLibraryHelper : NOCOPY
-{
-protected:
- osl::Module* m_pModule;
- rtl::OUString m_suDLLName;
- GetOpt & m_aOptions;
-
- GetOpt& getOptions() {return m_aOptions;}
-
-public:
- DynamicLibraryHelper(rtl::OUString const& _sDLLName, GetOpt & _aOptions);
- virtual ~DynamicLibraryHelper();
-
-private:
- void showFilenameIfVerbose();
- void realLoadLibrary(rtl::OUString const& _sLibToLoad);
- void loadLibraryFromAbsolutePath();
- void loadLibraryFromLocalPath();
-
- rtl::OUString m_suAbsolutePathFile; // file:///D:/foo/bar/library.dll
- rtl::OUString m_suAbsolutePath; // file:///D:/foo/bar
- rtl::OUString m_suFilename; // library.dll
-};
-
-#endif
-
diff --git a/testshl2/inc/testshl/filehelper.hxx b/testshl2/inc/testshl/filehelper.hxx
deleted file mode 100644
index eefef077f4b5..000000000000
--- a/testshl2/inc/testshl/filehelper.hxx
+++ /dev/null
@@ -1,47 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 FILEHELPER_HXX
-#define FILEHELPER_HXX
-
-#include <string>
-#include <rtl/ustring.hxx>
-#include <rtl/string.hxx>
-#include <testshl/cmdlinebits.hxx>
-#include "getopt.hxx"
-
-namespace FileHelper
-{
-
- std::string getTempPath();
- rtl::OUString convertPath( rtl::OUString const& _suSysPath );
- rtl::OUString convertPath( rtl::OString const& sysPth );
- CmdLineBits createFlags( GetOpt & _aOptions );
-
-}
-#endif
-
diff --git a/testshl2/inc/testshl/getopt.hxx b/testshl2/inc/testshl/getopt.hxx
deleted file mode 100644
index b4feaa7c535b..000000000000
--- a/testshl2/inc/testshl/getopt.hxx
+++ /dev/null
@@ -1,332 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-/*************************************************************************
-#* class GetOpt
-#*
-#*
-#* Implementation getopt.cxx
-#*
-#* Description: class to reflect the commandline options. In addition
-#* it provides functinality to get options from an inifile
-#* ( getIniOptions()), evaluate, test and get options
-#* ( hasOpt(), getOpt() ) and display an usage screen
-#* formated in dependance of the given optionset, as well
-#* as display a status about activ options
-#*
-#*
-#* further descriptions:
-#*
-#* the constructor is called with two parameters:
-#* char* argv[] and char* optionSet[],
-#* the commandline and the available set of options.
-#* Valid optionstrings have to start with a minus '-', otherwise it will
-#* be ignored. Optionstrings consist of one or two arguments divided by a
-#* comma separator, where the second (optional) argument is a short
-#* description of the option, called hint. It will be automatically
-#* formated and displayed in the usage screen if available.
-#* The first argument of the optionstring can consist of two sections,
-#* the name and the optional necessity and format.
-#* The name of the option will be the starting minus followed by a string
-#* like "-src".
-#* One section options will be treated as flag (see '-v' option in example).
-#* The second section consist of '=' or ':' which defines the necessity,
-#* in combination with a character 's' for string or 'n' for numeric and
-#* an optional '@' standing for 'vector of'.
-#* '=' means this option needs an argument, ':' means can take an argument
-#* followed by 's' is, as mentioned above, a single string paramenter,
-#* followed by a 's' in combination with '@' means this argument consists
-#* of one string or a vector of strings separated by commas
-#*
-#* an example for an optionset:
-#*
-#* static char* optionSet[] = {
-#* "-src=s, release or version of sources",
-#* "-ini=s, ini file with additional options",
-#* "-db=s, path of type description database",
-#* "-inPth=s, source path of component descriptions",
-#* "-outPth=s, destination path for testcases",
-#* "-logPth=s, destination path for logging",
-#* "-mdl=s@, name(s) of module(s) to generate",
-#* "-v, enable verbose screen messages",
-#* "-dbg, enable debug messages",
-#* "-h:s, display help or help on option",
-#* "-help:s, see -h",
-#* NULL
-#* };
-#*
-#* As seen a GetOpt class object will be created via:
-#* GetOpt myOptions( argv, optionSet );
-#*
-*************************************************************************/
-#ifndef __QADEV_REGSCAN_GETOPT_HXX__
-#define __QADEV_REGSCAN_GETOPT_HXX__
-
-#include <osl/file.hxx>
-#include <sal/types.h>
-#include <rtl/strbuf.hxx>
-
-
-#include <rtl/string.hxx>
-
-// #ifndef __QADEV_REGSCAN_UTIL_HXX__
-// #include "inc/util.hxx"
-// #endif
-
-
-#ifdef SOLARIS
-#include <sys/time.h>
-#endif
-
-#include <iostream>
-#include <hash_map>
-// #include "rsexception.hxx"
-
-// using namespace std;
-
-struct gstr {
- sal_Bool operator()( const rtl::OString& oStr1,
- const rtl::OString& oStr2 ) const {
- return( oStr1 == oStr2 );
- }
-};
-
-struct ghstr
-{
- sal_uInt32 operator()( const rtl::OString& str ) const {
- return str.hashCode();
- }
-};
-
-struct frmt {
- sal_uInt32 fCol;
- sal_uInt32 sCol;
- sal_uInt32 len;
-};
-
-typedef std::hash_map< rtl::OString, std::vector< rtl::OString >, ghstr, gstr >
- optHashMap;
-
-typedef frmt sFormat;
-typedef sal_uInt16 optType;
-
-#define OT_INVALID 0x0000
-#define OT_BOOL 0x0001
-#define OT_STRING 0x0002
-#define OT_NUMBER 0x0004
-#define OT_SINGLE 0x0010
-#define OT_MULTI 0x0020
-#define OT_OPTIONAL 0x0100
-
-//: Option
-class OptDsc {
-
- rtl::OString m_name;
- rtl::OString m_hint;
- rtl::OString m_legend;
- optType m_type;
-
- /**
- * analysis of optionstring and creation of option description class
- * @param const rtl::OString& opt = optionstring to analyse
- * @return void
- */
- void createOptDsc( const rtl::OString& opt );
-
- /**
- * splitting of an optionstring and creation of a tokenvector
- * in dependance of a charset
- *
- * @param const rtl::OString& opt = optionstring to split
- * @param const rtl::OString& cSet = delimiter charset
- * @param vector< rtl::OString >& optLine = tokenvector to fill
- *
- * @return void
- */
- void split( const rtl::OString& opt, const rtl::OString& charSet,
- std::vector< rtl::OString >& optLine );
-
- /**
- * private default c'tor, copy c'tor and assignment operator
- * to get compiler errors on dumb effords
- */
- OptDsc();
- OptDsc( OptDsc& );
- OptDsc& operator = ( OptDsc& );
-
-public:
-
- //> c'tor
- OptDsc( const rtl::OString& opt )
- : m_name(),
- m_hint(),
- m_legend(),
- m_type( 0 ) {
-
- createOptDsc( opt );
- } ///< c'tor
-
- //> d'tor
- ~OptDsc(){}
-
- /**
- * returns the name of this option
- * @return rtl::OString&
- */
- inline rtl::OString& getName() { return m_name; }
- /**
- * returns the hint of this option
- * @return rtl::OString&
- */
- inline rtl::OString& getHint() { return m_hint; }
- /**
- * returns the legend of this option
- * @return rtl::OString&
- */
- inline rtl::OString& getLegend() { return m_legend; }
-
- /**
- * returns the type of this option
- * @return optType
- */
- inline optType getType() { return m_type; }
-
-
- inline sal_Bool isFlag() {
- return( ( m_type &~ 0xfffe ) == OT_BOOL ) ? sal_True : sal_False;
- }
- inline sal_Bool isString() {
- return( ( m_type &~ 0xfffd ) == OT_STRING ) ? sal_True : sal_False;
- }
- inline sal_Bool isNumber() {
- return( ( m_type &~ 0xfffb ) == OT_NUMBER ) ? sal_True : sal_False;
- }
- inline sal_Bool isSingle() {
- return( ( m_type &~ 0xffef ) == OT_SINGLE ) ? sal_True : sal_False;
- }
- inline sal_Bool isMulti() {
- return( ( m_type &~ 0xffdf ) == OT_MULTI ) ? sal_True : sal_False;
- }
- inline sal_Bool isOptional() {
- return( ( m_type &~ 0xfeff ) == OT_OPTIONAL ) ? sal_True : sal_False;
- }
-
-}; ///:~ Option
-
-class Exception
-{
- rtl::OString m_sAsciiMessage;
-public:
- Exception();
- virtual ~Exception(){}
-
- Exception(char const* sAsciiMessage);
- Exception(rtl::OString const& sAsciiMessage);
-
- virtual rtl::OUString message() const;
- virtual char const* what() const;
-};
-
-class ValueNotFoundException : public Exception
-{
-public:
- ValueNotFoundException();
- ValueNotFoundException(char const* sExit);
-};
-
-//: GetOpt
-class GetOpt {
-
- rtl::OString m_prgname;
- rtl::OString m_vardelim;
- std::vector< rtl::OString > m_cmdline;
- std::vector< rtl::OString > m_param;
- std::vector< rtl::OString > m_varvec;
- std::vector< OptDsc* > m_optionset;
- optHashMap m_opthash;
-
- //> private methods
- void initialize( char* cmdLine[], char const * optSet[] );
- void createCmdLineOptions();
- sal_uInt32 getMaxNameLength();
- sal_uInt32 getMaxLegendLength();
- const rtl::OString optDsc2Str( OptDsc* optDsc , sFormat frm );
- void tokenize( const rtl::OString& opt, const rtl::OString& charSet,
- std::vector< rtl::OString >& optLine, sal_Bool strip = sal_True );
- ///< private methods
-
- GetOpt();
- GetOpt( GetOpt& );
- GetOpt& operator = ( GetOpt& );
-
-public:
-
- //> c'tor
- GetOpt( char* cmdLine[], char const * optSet[], rtl::OString varDelim =
- rtl::OString( "$" ) )
- : m_vardelim( varDelim ) {
-
- initialize( cmdLine, optSet );
- createCmdLineOptions();
- } ///< c'tor
-
- //> d'tor
- ~GetOpt();
- ///< d'tor
-
- //> inline methods
- inline std::vector< rtl::OString >* getCmdLine() { return &m_cmdline; }
- inline optHashMap* getOptions() { return ( &m_opthash ); }
- inline rtl::OString& getName() { return m_prgname; }
- inline rtl::OString& getFirstParam() { return *(m_param.begin()); }
- inline std::vector< rtl::OString >& getParams() { return m_param; }
- rtl::OString& getOpt( const rtl::OString& opt );
- void rmvOpt( rtl::OString& opt ) {
- m_opthash.erase( opt );
- }
- inline std::vector< rtl::OString >& getOptVec( const rtl::OString& opt ) {
- return m_opthash[ opt ];
- }
- ///< inline methods
-
-
- sal_Bool exist( rtl::OString& opt );
- sal_Bool hasParam( std::vector< rtl::OString >::iterator iter );
- sal_Bool hasVars( void );
- sal_Bool evaluateOpt( std::vector< rtl::OString >::iterator iter );
- OptDsc* getOptDsc( rtl::OString& opt );
- sal_Bool hasOpt( const rtl::OString& opt ) const;
- ::osl::FileBase::RC getIniOptions( rtl::OString iniPth );
- void createOpt( rtl::OString& optdsc );
- void str2Opt( rtl::OString iOpts );
- void addOpt( rtl::OString& opt, sal_Bool evaluate = sal_True );
- void replVars( void );
- void showUsage( void );
- void printStatus( void );
-
-}; ///:~ GetOpt
-#endif
diff --git a/testshl2/inc/testshl/joblist.hxx b/testshl2/inc/testshl/joblist.hxx
deleted file mode 100644
index 24f45bc5ec26..000000000000
--- a/testshl2/inc/testshl/joblist.hxx
+++ /dev/null
@@ -1,96 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 CPPUNIT_JOBLIST_HXX
-#define CPPUNIT_JOBLIST_HXX
-
-#include <vector>
-#include <string>
-#include <hash_map>
-#include "sal/types.h"
-
-// #include <testshl/nocopy.hxx>
-
-/*
- struct eqstr
- {
- bool operator()( std::string const & s1, std::string const& s2 ) const
- {
- return ( s1 == s2 );
- }
- };
-*/
-
-/*
- struct hashstr
- {
- sal_uInt32 operator()( std::string const & str ) const
- {
- return str.hashCode();
- }
- };
-*/
-typedef std::hash_map< std::string, int > HashMap;
-
-// typedef std::vector<std::string> StringList;
-
-#define JOB_UNKNOWN 0
-#define JOB_NOT_FOUND 1
-#define JOB_PASSED 2
-#define JOB_FAILED 3
-#define JOB_ACCESS 4
-
-#define JOB_EXCLUDE_LIST 0x1000
-#define JOB_ONLY_LIST 0x1001
-
-typedef sal_Int16 JobType;
-
-class JobList /* : NOCOPY */
-{
- HashMap m_aJobList;
- char** ppsJobList;
-
- // returns true if the given List contains unxlngi or unxsols or wntmsci...
- bool isInCurrentEnvironment(std::string const& _sString);
- std::string trim(std::string const& _sStringToTrim);
-
-public:
- JobList();
- ~JobList();
-
- bool readfile(std::string const& _sFilename, JobType _nJobType);
- const char** getList() const {return (const char**)ppsJobList;}
-
- int getJobListEntry(std::string const& _sIndexName);
- void setJobListEntry(std::string const& _sIndexName, int _nValue);
-
- int size() {return m_aJobList.size();}
- HashMap const& getHashMap() {return m_aJobList;}
-};
-
-#endif
-
diff --git a/testshl2/inc/testshl/log.hxx b/testshl2/inc/testshl/log.hxx
deleted file mode 100644
index abe93c55347f..000000000000
--- a/testshl2/inc/testshl/log.hxx
+++ /dev/null
@@ -1,113 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- *************************************************************************
-
- Source Code Control System - Header
-
- $Header$
-
- Source Code Control System - Update
-
-*************************************************************************/
-#ifndef __QADEV_REGSCAN_LOG_HXX__
-#define __QADEV_REGSCAN_LOG_HXX__
-
-#include <time.h>
-#include <rtl/ustring.hxx>
-#include <rtl/strbuf.hxx>
-#include <sal/types.h>
-#include <osl/thread.h>
-#include <osl/file.hxx>
-
-//!io #include <iostream>
-#include <vector>
-
-// using namespace std;
-
-
-/**
- * Log derives the interface of the ::osl::File class ( is-a relation ).
- * Its members (has-a relation) are the (full qualified)name of the log
- * and an OStringBuffer which represents the content of the logfile.
- * It provides the functionality of easy-to-use open and write logs
- */
-//: Log
-class Log {
-
- ::osl::File* m_logfile; // fileobject
- rtl::OUString m_logurl; // url of log
- rtl::OStringBuffer m_buf; // content of log
-
- Log();
-
-public:
-
- //> c'tor
- /**
- * constructors argument is a full qualified UNC path
- * @param OUString logfile ( full qualified UNC path )
- */
- Log( const rtl::OUString& logURL )
- : m_logfile( new ::osl::File( logURL ))
- , m_logurl(logURL)
- {} ///< c'tor
-
- //> d'tor
- virtual ~Log() {
- m_logfile->close();
- delete( m_logfile );
- } ///< d'tor
-
- //> inline methods
- // returns a reference to name instance
- inline rtl::OUString getLogURL() { return m_logurl; }
- inline rtl::OString getName() { return rtl::OUStringToOString(
- m_logurl, RTL_TEXTENCODING_ASCII_US ); }
- ///< inline methods
-
- // open logfile for overwrite (default) or append
- ::osl::FileBase::RC open( sal_Bool append = sal_False );
- ::osl::FileBase::RC close() { return m_logfile->close(); }
-
-
- // write methods without (default) or with echo on display
- ::osl::FileBase::RC write( const sal_Char* buf, sal_Bool v = sal_False );
- ::osl::FileBase::RC write( const rtl::OString& buf,
- sal_Bool v = sal_False );
- // ::osl::FileBase::RC write( rtl::OStringBuffer const& buf,
- // sal_Bool v = sal_False );
- ::osl::FileBase::RC write( const rtl::OUString& buf,
- rtl_TextEncoding enc = RTL_TEXTENCODING_ASCII_US,
- sal_Bool v = sal_False );
-
-}; ///:~ Log
-
-Log &operator <<( Log &_aLog, const sal_Char * _sValue );
-Log &operator <<( Log &_aLog, rtl::OString const& _sValue );
-Log &operator <<( Log &_aLog, rtl::OUString const& _sValue );
-// Log &operator <<( Log &_aLog, rtl::OStringBuffer const& _sValue );
-
-#endif
diff --git a/testshl2/inc/testshl/nocopy.hxx b/testshl2/inc/testshl/nocopy.hxx
deleted file mode 100644
index 660bb1892e46..000000000000
--- a/testshl2/inc/testshl/nocopy.hxx
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef NOCOPY_HXX
-#define NOCOPY_HXX
-
-// prevent illegal copies
-class NOCOPY
-{
- NOCOPY(NOCOPY const&);
- NOCOPY& operator=(NOCOPY const&);
-public:
- NOCOPY(){}
-};
-
-#endif
diff --git a/testshl2/inc/testshl/result/SynchronizedObject.h b/testshl2/inc/testshl/result/SynchronizedObject.h
deleted file mode 100644
index 6994fdb1692e..000000000000
--- a/testshl2/inc/testshl/result/SynchronizedObject.h
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef CPPUNIT_SYNCHRONIZEDOBJECT_H
-#define CPPUNIT_SYNCHRONIZEDOBJECT_H
-
-#include <cppunit/Portability.h>
-#include <testshl/nocopy.hxx>
-
-namespace CppUnit
-{
-
-/*! \brief Base class for synchronized object.
- *
- * Synchronized object are object which members are used concurrently by mutiple
- * threads.
- *
- * This class define the class SynchronizationObject which must be subclassed
- * to implement an actual lock.
- *
- * Each instance of this class holds a pointer on a lock object.
- *
- * See src/msvc6/MfcSynchronizedObject.h for an example.
- */
-class CPPUNIT_API SynchronizedObject
-{
-public:
- /*! \brief Abstract synchronization object (mutex)
- */
- class SynchronizationObject
- {
- public:
- SynchronizationObject() {}
- virtual ~SynchronizationObject() {}
-
- virtual void lock() {}
- virtual void unlock() {}
- };
-
- /*! Constructs a SynchronizedObject object.
- */
- SynchronizedObject( SynchronizationObject *syncObject =0 );
-
- /// Destructor.
- virtual ~SynchronizedObject();
-
-protected:
- /*! \brief Locks a synchronization object in the current scope.
- */
- class ExclusiveZone : NOCOPY
- {
- SynchronizationObject *m_syncObject;
-
- public:
- ExclusiveZone( SynchronizationObject *syncObject )
- : m_syncObject( syncObject )
- {
- m_syncObject->lock();
- }
-
- ~ExclusiveZone()
- {
- m_syncObject->unlock ();
- }
- };
-
- virtual void setSynchronizationObject( SynchronizationObject *syncObject );
-
-protected:
- SynchronizationObject *m_syncObject;
-
-private:
- /// Prevents the use of the copy constructor.
- SynchronizedObject( const SynchronizedObject &copy );
-
- /// Prevents the use of the copy operator.
- void operator =( const SynchronizedObject &copy );
-};
-
-
-
-} // namespace CppUnit
-
-
-#endif // CPPUNIT_SYNCHRONIZEDOBJECT_H
diff --git a/testshl2/inc/testshl/result/TestListener.h b/testshl2/inc/testshl/result/TestListener.h
deleted file mode 100644
index 0814f21b7e2f..000000000000
--- a/testshl2/inc/testshl/result/TestListener.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef CPPUNIT_TESTLISTENER_H // -*- C++ -*-
-#define CPPUNIT_TESTLISTENER_H
-
-#include <cppunit/Portability.h>
-
-
-namespace CppUnit {
-
-class Exception;
-class Test;
-class TestFailure;
-
-
-/*! \brief Listener for test progress and result.
- * \ingroup TrackingTestExecution
- *
- * Implementing the Observer pattern a TestListener may be registered
- * to a TestResult to obtain information on the testing progress. Use
- * specialized sub classes of TestListener for text output
- * (TextTestProgressListener). Do not use the Listener for the test
- * result output, use a subclass of Outputter instead.
- *
- * The test framework distinguishes between failures and errors.
- * A failure is anticipated and checked for with assertions. Errors are
- * unanticipated problems signified by exceptions that are not generated
- * by the framework.
- *
- * \see TestResult
- */
-class CPPUNIT_API TestListener
-{
-public:
- virtual ~TestListener() {}
-
- /// Called when just before a TestCase is run.
- virtual void startTest( Test *test ) =0 ;
-
- /*! Called when a failure occurs while running a test.
- * \see TestFailure.
- * \warning \a failure is a temporary object that is destroyed after the
- * method call. Use TestFailure::clone() to create a duplicate.
- */
- virtual void addFailure( const TestFailure &failure ) =0;
-
- /// Called just after a TestCase was run (even if a failure occured).
- virtual void endTest( Test *test ) =0;
-
- // additional info
- virtual void addInfo(Test *test, const char*) =0;
-
- // info in which node we are
- // helper functions to create tree structures
- // old: virtual void enterNode( const char* ) =0;
- // old: virtual void leaveNode( const char* ) =0;
-};
-
-
-} // namespace CppUnit
-
-#endif // CPPUNIT_TESTLISTENER_H
-
-
diff --git a/testshl2/inc/testshl/result/TestResult.h b/testshl2/inc/testshl/result/TestResult.h
deleted file mode 100644
index 22b5d2346664..000000000000
--- a/testshl2/inc/testshl/result/TestResult.h
+++ /dev/null
@@ -1,123 +0,0 @@
-#ifndef CPPUNIT_TESTRESULT_H
-#define CPPUNIT_TESTRESULT_H
-
-#include <cppunit/Portability.h>
-
-#if CPPUNIT_NEED_DLL_DECL
-#ifdef _MSC_VER
-#pragma warning( push )
-#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
-#endif
-#endif
-
-#include <testshl/result/SynchronizedObject.h>
-#include <vector>
-#include <string>
-#include <deque>
-//!io #include <iostream>
-
-#include "testshl/result/optionhelper.hxx"
-#include "cppunit/TestFailure.h"
-
-class Outputter;
-namespace CppUnit {
-
-class Exception;
-class Test;
-// class TestFailure;
-class TestListener;
-
-#if CPPUNIT_NEED_DLL_DECL
- template class CPPUNIT_API std::deque<TestListener *>;
-#endif
-
-/*! \brief Manages TestListener.
- * \ingroup TrackingTestExecution
- *
- * A single instance of this class is used when running the test. It is usually
- * created by the test runner (TestRunner).
- *
- * This class shouldn't have to be inherited from. Use a TestListener
- * or one of its subclasses to be informed of the ongoing tests.
- * Use a Outputter to receive a test summary once it has finished
- *
- * TestResult supplies a template method 'setSynchronizationObject()'
- * so that subclasses can provide mutual exclusion in the face of multiple
- * threads. This can be useful when tests execute in one thread and
- * they fill a subclass of TestResult which effects change in another
- * thread. To have mutual exclusion, override setSynchronizationObject()
- * and make sure that you create an instance of ExclusiveZone at the
- * beginning of each method.
- *
- * \see Test, TestListener, TestResultCollector, Outputter.
- */
-class CPPUNIT_API TestResult : protected SynchronizedObject
-{
-protected:
- OptionHelper m_aOptionHelper;
-
-public:
- TestResult( GetOpt & _aOptions, SynchronizationObject *syncObject = 0 );
- virtual ~TestResult();
-
- virtual void addListener( TestListener *listener );
- virtual void removeListener( TestListener *listener );
-
- virtual void reset();
- virtual void stop();
-
- virtual bool shouldStop() const;
-
- virtual void startTest( Test *test );
- virtual void addError( Test *test, Exception *e, ErrorType::num eType=ErrorType::ET_ERROR);
- virtual void addFailure( Test *test, Exception *e );
- virtual void endTest( Test *test );
-
- // LLA: additionals
- virtual void addInfo(Test *test, const char *sInfo);
-
- virtual void enterNode(const char* Node);
- virtual void leaveNode(const char* Node);
- virtual std::string getNodeName();
-
- // if true, execution is allowed.
- virtual bool isAllowedToExecute(std::string const & sName);
- bool isOnlyShowJobs() {return m_aOptionHelper.isOnlyShowJobs();}
- bool isOptionWhereAmI();
-
- virtual void print(Outputter &);
- void setExitValue(int _nValue) {m_nExitValue = _nValue;}
- int getExitValue() {return m_nExitValue;}
-
-protected:
- void addFailure( const TestFailure &failure );
-
-protected:
- typedef std::deque<TestListener *> TestListeners;
- TestListeners m_listeners;
- bool m_stop;
-
- // this vector is used to expand the test name with a current node name
- std::vector<std::string> m_aCurrentNodeNames;
-
- //# std::vector<std::string> m_aNodes;
-
-private:
- TestResult( const TestResult &other );
- TestResult &operator =( const TestResult &other );
- int m_nExitValue;
-};
-
-
-} // namespace CppUnit
-
-
-#if CPPUNIT_NEED_DLL_DECL
-#ifdef _MSC_VER
-#pragma warning( pop )
-#endif
-#endif
-
-#endif // CPPUNIT_TESTRESULT_H
-
-
diff --git a/testshl2/inc/testshl/result/TestResultCollector.h b/testshl2/inc/testshl/result/TestResultCollector.h
deleted file mode 100644
index ddbe517f8935..000000000000
--- a/testshl2/inc/testshl/result/TestResultCollector.h
+++ /dev/null
@@ -1,165 +0,0 @@
-#ifndef CPPUNIT_TESTRESULTCOLLECTOR_H
-#define CPPUNIT_TESTRESULTCOLLECTOR_H
-
-#include <cppunit/Portability.h>
-
-#if CPPUNIT_NEED_DLL_DECL
-#ifdef _MSC_VER
-#pragma warning( push )
-#pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z
-#endif
-#endif
-
-#include <testshl/result/TestResult.h>
-#include <testshl/result/TestSucessListener.h>
-#include <deque>
-#include <vector>
-
-namespace CppUnit
-{
-
-
-#if CPPUNIT_NEED_DLL_DECL
- template class CPPUNIT_API std::deque<TestFailure *>;
- template class CPPUNIT_API std::deque<Test *>;
-#endif
-
-
-/*! \brief Collects test result.
- * \ingroup WritingTestResult
- * \ingroup BrowsingCollectedTestResult
- *
- * A TestResultCollector is a TestListener which collects the results of executing
- * a test case. It is an instance of the Collecting Parameter pattern.
- *
- * The test framework distinguishes between failures and errors.
- * A failure is anticipated and checked for with assertions. Errors are
- * unanticipated problems signified by exceptions that are not generated
- * by the framework.
- * \see TestListener, TestFailure.
- */
-
-class OneStringContainer
-{
- std::string m_sName;
-protected:
- OneStringContainer() {}
-public:
- OneStringContainer(std::string const& _sName)
- :m_sName(_sName){}
- std::string getString() const {return m_sName;}
- virtual ~OneStringContainer(){}
-};
-
-// -----------------------------------------------------------------------------
-class TestEnvelope : public OneStringContainer
-{
- Test* m_pTest;
-public:
- TestEnvelope():m_pTest(NULL){}
-
- TestEnvelope(Test* _pTest, std::string const& _sName)
- : OneStringContainer(_sName),
- m_pTest(_pTest)
- {}
-
- Test* getTest() {return m_pTest;}
- virtual ~TestEnvelope(){}
-
-};
-
-// -----------------------------------------------------------------------------
-class TestInfo : public TestEnvelope
-{
-public:
- TestInfo(Test* _pTest, std::string const& _sName)
- :TestEnvelope(_pTest, _sName)
- {}
-};
-
-// -----------------------------------------------------------------------------
-class TestFailureEnvelope : public OneStringContainer
-{
- TestFailure* m_pTestFailure;
-public:
- TestFailureEnvelope():m_pTestFailure(NULL){}
-
- TestFailureEnvelope(TestFailure* _pTestFailure, std::string const& _sName)
- :OneStringContainer(_sName),
- m_pTestFailure(_pTestFailure)
- {}
-
- TestFailure* getTestFailure() {return m_pTestFailure;}
- virtual ~TestFailureEnvelope(){}
-
-};
-// -----------------------------------------------------------------------------
-
-class CPPUNIT_API TestResultCollector : public TestSucessListener
-{
- TestResult* m_pResult;
-public:
- typedef std::deque<TestFailureEnvelope *> TestFailures;
- typedef std::deque<TestEnvelope *> Tests;
- typedef std::vector<TestInfo *> TestInfos;
-
-
- /*! Constructs a TestResultCollector object.
- */
- TestResultCollector( TestResult *_pResult, SynchronizationObject *syncObject = 0 );
-
- /// Destructor.
- virtual ~TestResultCollector();
-
- void startTest( Test *test );
- void endTest( Test *test );
-
- void addFailure( const TestFailure &failure );
-
- virtual void reset();
-
- virtual int runTests() const;
- virtual int testErrors() const;
- virtual int testFailures() const;
- virtual int testFailuresTotal() const;
-
- virtual const TestFailures& failures() const;
- virtual const Tests &tests() const;
- virtual std::string getInfo(Test*);
-
- virtual void addInfo(Test *test, const char *sInfo);
-
- // virtual void enterNode(const char* Node);
- // virtual void leaveNode(const char* Node);
-
-protected:
- Tests m_tests;
- TestFailures m_failures;
- TestInfos m_aInfos;
-
- int m_testErrors;
-
- // this vector is used to expand the test name with a current node name
- // std::vector<std::string> m_aCurrentNodeNames;
- // std::string getNodeName();
-private:
- /// Prevents the use of the copy constructor.
- TestResultCollector( const TestResultCollector &copy );
-
- /// Prevents the use of the copy operator.
- void operator =( const TestResultCollector &copy );
-};
-
-
-
-} // namespace CppUnit
-
-
-#if CPPUNIT_NEED_DLL_DECL
-#ifdef _MSC_VER
-#pragma warning( pop )
-#endif
-#endif
-
-
-#endif // CPPUNIT_TESTRESULTCOLLECTOR_H
diff --git a/testshl2/inc/testshl/result/TestSucessListener.h b/testshl2/inc/testshl/result/TestSucessListener.h
deleted file mode 100644
index 3eb53b9fc13f..000000000000
--- a/testshl2/inc/testshl/result/TestSucessListener.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef CPPUNIT_TESTSUCESSLISTENER_H
-#define CPPUNIT_TESTSUCESSLISTENER_H
-
-#include <testshl/result/SynchronizedObject.h>
-#include <testshl/result/TestListener.h>
-
-
-namespace CppUnit
-{
-
-/*! \brief TestListener that checks if any test case failed.
- * \ingroup TrackingTestExecution
- */
-class CPPUNIT_API TestSucessListener : public TestListener,
- public SynchronizedObject
-{
-public:
- /*! Constructs a TestSucessListener object.
- */
- TestSucessListener( SynchronizationObject *syncObject = 0 );
-
- /// Destructor.
- virtual ~TestSucessListener();
-
- virtual void reset();
-
- void addFailure( const TestFailure &failure );
-
- /// Returns whether the entire test was successful or not.
- virtual bool wasSuccessful() const;
-
-private:
- bool m_sucess;
-};
-
-
-} // namespace CppUnit
-
-
-#endif // CPPUNIT_TESTSUCESSLISTENER_H
diff --git a/testshl2/inc/testshl/result/TextTestResult.h b/testshl2/inc/testshl/result/TextTestResult.h
deleted file mode 100644
index e2ba0ffba427..000000000000
--- a/testshl2/inc/testshl/result/TextTestResult.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef CPPUNIT_TEXTTESTRESULT_H
-#define CPPUNIT_TEXTTESTRESULT_H
-
-#include <testshl/result/TestResult.h>
-#include <testshl/result/TestResultCollector.h>
-#include <ostream>
-
-class GetOpt;
-namespace CppUnit {
-
-class SourceLine;
-class Exception;
-class Test;
-
-/*! \brief Holds printable test result (DEPRECATED).
- * \ingroup TrackingTestExecution
- *
- * deprecated Use class TextTestProgressListener and TextOutputter instead.
- */
-class CPPUNIT_API TextTestResult : public TestResult
-/* public TestResultCollector*/
-{
- TestResultCollector m_aResulter;
-public:
- TextTestResult(GetOpt& _aOptions);
-
- virtual void addFailure( const TestFailure &failure );
- virtual void startTest( Test *test );
- virtual void endTest( Test *test );
-
- virtual void print( std::ostream &stream );
-protected:
-
- virtual void printFailures( std::ostream &stream );
- virtual void printHeader( std::ostream &stream );
-
- virtual void printFailure( TestFailure *failure,
- int failureNumber,
- std::ostream &stream );
- virtual void printFailureListMark( int failureNumber,
- std::ostream &stream );
- virtual void printFailureTestName( TestFailure *failure,
- std::ostream &stream );
- virtual void printFailureType( TestFailure *failure,
- std::ostream &stream );
- virtual void printFailureLocation( SourceLine sourceLine,
- std::ostream &stream );
- virtual void printFailureDetail( Exception *thrownException,
- std::ostream &stream );
- virtual void printFailureWarning( std::ostream &stream );
- virtual void printStatistics( std::ostream &stream );
-};
-
-/** insertion operator for easy output */
-std::ostream &operator <<( std::ostream &stream,
- TextTestResult &result );
-
-} // namespace CppUnit
-
-#endif // CPPUNIT_TEXTTESTRESULT_H
-
-
diff --git a/testshl2/inc/testshl/result/callbackfunc.h b/testshl2/inc/testshl/result/callbackfunc.h
deleted file mode 100644
index 606bf7179163..000000000000
--- a/testshl2/inc/testshl/result/callbackfunc.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _callbackfunc_h
-#define _callbackfunc_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- // this is the entry point from the DLL back to the executable.
- long CallbackDispatch(int x, ...);
-
-//# void TestResult_startTest(hTestResult _pResult, hTest _pTest);
-//# void TestResult_addFailure( hTestResult _pResult, hTest _pTest, hException _pException );
-//# void TestResult_addError( hTestResult _pResult, hTest _pTest, hException _pException );
-//# void TestResult_endTest( hTestResult _pResult, hTest _pTest );
-//# bool TestResult_shouldStop(hTestResult _pResult);
-//# void TestResult_addInfo( hTestResult _pResult, hTest _pTest, const char* _sInfo );
-//#
-//# void TestResult_enterNode( hTestResult _pResult, const char* _sInfo );
-//# void TestResult_leaveNode( hTestResult _pResult, const char* _sInfo );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/testshl2/inc/testshl/result/emacsTestResult.hxx b/testshl2/inc/testshl/result/emacsTestResult.hxx
deleted file mode 100644
index 3f64060d75cb..000000000000
--- a/testshl2/inc/testshl/result/emacsTestResult.hxx
+++ /dev/null
@@ -1,79 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 cppunit_emacstestresult_h
-#define cppunit_emacstestresult_h
-
-#include <testshl/result/TestResult.h>
-#include <testshl/result/TestResultCollector.h>
-#include <ostream>
-#include "testshl/getopt.hxx"
-
-class Outputter;
-namespace CppUnit {
-
-class SourceLine;
-class Exception;
-class Test;
-
-/*! \brief Holds printable test result (DEPRECATED).
- * \ingroup TrackingTestExecution
- *
- * deprecated Use class TextTestProgressListener and TextOutputter instead.
- */
- class CPPUNIT_API emacsTestResult : public TestResult
-
-/* ,public TestResultCollector*/
- {
- GetOpt & m_aOptions;
- // OptionHelper m_aOptionHelper;
- TestResultCollector m_aResulter;
-
- public:
- emacsTestResult(GetOpt & _aOptions);
-
- // virtual void addFailure( const TestFailure &failure );
- // virtual void startTest( Test *test );
- // virtual void endTest( Test *test );
-
- virtual void print( Outputter &stream );
-
- protected:
- virtual void printHeader( Outputter &stream );
- // virtual void printTestLine( Outputter &stream, Test* pTest, std::string const& _sNodeName, std::string const& _sInfo);
- virtual void printFailureLine( Outputter &stream, TestFailure* pFailure, std::string const& _sNodeName );
- };
-
-/** insertion operator for easy output */
-// std::ostream &operator <<( std::ostream &stream,
-// emacsTestResult &result );
-
-} // namespace CppUnit
-
-#endif // CPPUNIT_testshlTESTRESULT_H
-
-
diff --git a/testshl2/inc/testshl/result/log.hxx b/testshl2/inc/testshl/result/log.hxx
deleted file mode 100644
index f57c9af0e119..000000000000
--- a/testshl2/inc/testshl/result/log.hxx
+++ /dev/null
@@ -1,103 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 __QADEV_REGSCAN_LOG_HXX__
-#define __QADEV_REGSCAN_LOG_HXX__
-
-#include <time.h>
-#include <rtl/ustring.hxx>
-#include <rtl/strbuf.hxx>
-#include <sal/types.h>
-#include <osl/thread.h>
-#include <osl/file.hxx>
-
-#include <testshl/nocopy.hxx>
-
-//!io #include <iostream>
-#include <vector>
-
-// using namespace std;
-
-
-/**
- * Log derives the interface of the ::osl::File class ( is-a relation ).
- * Its members (has-a relation) are the (full qualified)name of the log
- * and an OStringBuffer which represents the content of the logfile.
- * It provides the functionality of easy-to-use open and write logs
- */
-//: Log
-class Log : NOCOPY {
-
- ::osl::File* m_logfile; // fileobject
- rtl::OUString m_logurl; // url of log
- rtl::OStringBuffer m_buf; // content of log
-
- Log();
-
-public:
-
- //> c'tor
- /**
- * constructors argument is a full qualified UNC path
- * @param OUString logfile ( full qualified UNC path )
- */
- Log( const rtl::OUString& logURL )
- : m_logfile( new ::osl::File( logURL ))
- , m_logurl(logURL)
- {} ///< c'tor
-
- //> d'tor
- virtual ~Log()
- {
- m_logfile->close();
- delete( m_logfile );
- } ///< d'tor
-
- //> inline methods
- // returns a reference to name instance
- inline rtl::OUString getLogURL() { return m_logurl; }
- inline rtl::OString getName() { return rtl::OUStringToOString(
- m_logurl, RTL_TEXTENCODING_ASCII_US ); }
- ///< inline methods
-
- // open logfile for overwrite (default) or append
- ::osl::FileBase::RC open( sal_Bool append = sal_False );
- ::osl::FileBase::RC close() { return m_logfile->close(); }
-
-
- // write methods without (default) or with echo on display
- ::osl::FileBase::RC write( const sal_Char* buf, sal_Bool v = sal_False );
- ::osl::FileBase::RC write( const rtl::OString& buf,
- sal_Bool v = sal_False );
- //! ::osl::FileBase::RC write( rtl::OStringBuffer& buf,
- //! sal_Bool v = sal_False );
- ::osl::FileBase::RC write( const rtl::OUString& buf,
- rtl_TextEncoding enc = RTL_TEXTENCODING_ASCII_US,
- sal_Bool v = sal_False );
-
-}; ///:~ Log
-
-#endif
diff --git a/testshl2/inc/testshl/result/optionhelper.hxx b/testshl2/inc/testshl/result/optionhelper.hxx
deleted file mode 100644
index 6b67bacf0472..000000000000
--- a/testshl2/inc/testshl/result/optionhelper.hxx
+++ /dev/null
@@ -1,95 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 optionhelper_hxx
-#define optionhelper_hxx
-
-#include <string>
-
-#include <sal/types.h>
-
-#include "testshl/nocopy.hxx"
-#include "testshl/getopt.hxx"
-#include "testshl/joblist.hxx"
-
-// -----------------------------------------------------------------------------
-
-typedef std::vector<rtl::OString> OStringList;
-
-//!? Better: OptionHelper
-class OptionHelper : NOCOPY
-{
- GetOpt & m_aOption;
- JobList m_aJobOnlyList;
- JobList m_aJobExcludeList;
- OStringList m_aJobFilter;
-
- std::string m_sProjectId;
- std::string m_sBuildId;
-
- std::string getProjectId() const;
- std::string getBuildId() const;
- std::string createDateTag(std::string const& _sProjectId, std::string const& _sBuildId);
-
- void handleJobs();
-public:
- OptionHelper(GetOpt & _aOption)
- :m_aOption(_aOption)
- {
- if (m_aOption.hasOpt("-projectid"))
- m_sProjectId = m_aOption.getOpt("-projectid");
-
- if (m_aOption.hasOpt("-buildid"))
- m_sBuildId = m_aOption.getOpt("-buildid");
-
- handleJobs();
- }
-
- static std::string integerToAscii(sal_Int32 nValue);
- static std::string twoDigits(std::string const& _sValue);
-
- std::string createDateTag();
- bool showErrors();
- bool showTests();
-
- JobList getJobOnlyList() {return m_aJobOnlyList;}
- JobList getJobExcludeList() {return m_aJobExcludeList;}
-
- bool isAllowedToExecute(std::string const& _sNode, std::string const& _sName);
-
- bool isOnlyShowJobs() {return m_aOption.hasOpt("-onlyshowjobs") == sal_True ? true : false;}
- GetOpt& getOptions() {return m_aOption;}
- bool isVerbose() {return m_aOption.hasOpt("-verbose") == sal_True ? true : false;}
- bool isOptionWhereAmI() {return m_aOption.hasOpt("-whereami") == sal_True ? true : false;}
-};
-
-// -----------------------------------------------------------------------------
-
-
-#endif
-
-
diff --git a/testshl2/inc/testshl/result/outputter.hxx b/testshl2/inc/testshl/result/outputter.hxx
deleted file mode 100644
index 9394a39a1ccd..000000000000
--- a/testshl2/inc/testshl/result/outputter.hxx
+++ /dev/null
@@ -1,82 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 outputter_hxx
-#define outputter_hxx
-
-#include <string>
-#include <ostream>
-#include <memory>
-#include "testshl/log.hxx"
-#include <sal/types.h>
-#include "testshl/nocopy.hxx"
-
-// #include <fstream>
-
-class Outputter : NOCOPY
-{
- std::auto_ptr<Log> m_pLog;
- std::ostream* m_pStream;
-
- void writeToAll(const sal_Char* _pStr);
-public:
- class endl
- {
- char c;
- public:
- endl():c('\0'){}
- };
-public:
- Outputter(Log * _pLog )
- :m_pLog(_pLog),
- m_pStream(NULL) {}
-
- Outputter(std::ostream& _aStream)
- :m_pLog(NULL),
- m_pStream(&_aStream) {}
-
- ~Outputter();
-
- void write(const sal_Char*);
- void write(std::string const&);
- void write(sal_Int32);
- // void write(double);
-};
-
-Outputter& operator <<( Outputter &stream, const sal_Char* );
-Outputter& operator <<( Outputter &stream, std::string const& );
-Outputter& operator <<( Outputter &stream, sal_Int32 );
-// Outputter& operator <<( Outputter &stream, double );
-
-Outputter& operator <<( Outputter &stream, Outputter::endl const&);
-
-// Outputter& operator <<( Outputter &stream, const char* );
-
-#endif
-
diff --git a/testshl2/inc/testshl/result/testshlTestResult.h b/testshl2/inc/testshl/result/testshlTestResult.h
deleted file mode 100644
index 22a50a9a841e..000000000000
--- a/testshl2/inc/testshl/result/testshlTestResult.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef cppunit_testshltestresult_h
-#define cppunit_testshltestresult_h
-
-#include <map>
-#include <testshl/result/TestResult.h>
-#include <testshl/result/TestResultCollector.h>
-#include <ostream>
-#include "testshl/getopt.hxx"
-
-class Outputter;
-
-namespace CppUnit {
-
-class SourceLine;
-class Exception;
-class Test;
-
-struct ltstr
-{
- bool operator()(const CppUnit::Test* p1, const CppUnit::Test* p2) const
- {
- return p1 < p2;
- }
-};
-typedef std::map<CppUnit::Test*, bool, ltstr> TestPtrList;
-
-
-/*! \brief Holds printable test result (DEPRECATED).
- * \ingroup TrackingTestExecution
- *
- * deprecated Use class TextTestProgressListener and TextOutputter instead.
- */
- class CPPUNIT_API testshlTestResult : public TestResult
-
-/* ,public TestResultCollector*/
- {
- GetOpt & m_aOptions;
- // OptionHelper m_aOptionHelper;
- TestResultCollector m_aResulter;
-
- public:
- testshlTestResult(GetOpt & _aOptions);
- virtual ~testshlTestResult();
-
- // virtual void addFailure( const TestFailure &failure );
- // virtual void startTest( Test *test );
- // virtual void endTest( Test *test );
-
- virtual void print( Outputter &stream );
-
- protected:
- virtual void printHeader( Outputter &stream );
-
- void printLines(Outputter &stream, HashMap & _aJobList);
- void printFailedTests(Outputter &stream, TestPtrList &aFailedTests);
- void printTestLines(Outputter &stream, TestPtrList &aFailedTests);
- void printUnknownLines(Outputter &stream, HashMap & _aJobList);
-
- virtual void printTestLine( Outputter &stream, Test* pTest, std::string const& _sNodeName, std::string const& _sInfo);
- virtual void printFailureLine( Outputter &stream, TestFailure* pFailure, std::string const& _sNodeName );
- virtual void printUnknownLine( Outputter &stream, std::string const& _sTestName);
- };
-
-/** insertion operator for easy output */
- Outputter &operator <<( Outputter &stream,
- testshlTestResult &result );
-
-} // namespace CppUnit
-
-#endif // CPPUNIT_testshlTESTRESULT_H
-
-
diff --git a/testshl2/inc/testshl/signaltest.h b/testshl2/inc/testshl/signaltest.h
deleted file mode 100644
index 6886d60be906..000000000000
--- a/testshl2/inc/testshl/signaltest.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 SIGNALTEST_H
-#define SIGNALTEST_H
-
-#include <string>
-#include "cppunit/Test.h"
-#include <testshl/autoregister/htestresult.h>
-
-namespace CppUnit
-{
-
-class CPPUNIT_API SignalTest : public Test
-{
-public:
-
- SignalTest( std::string const& Name );
-
- ~SignalTest();
-
- virtual void run(hTestResult pResult);
- virtual int countTestCases() const;
- std::string getName() const;
- std::string toString() const;
-
-private:
- SignalTest( const SignalTest &other );
- SignalTest &operator=( const SignalTest &other );
-
-private:
- const std::string m_sName;
-};
-
-} // namespace CppUnit
-
-
-#endif
diff --git a/testshl2/inc/testshl/simpleheader.hxx b/testshl2/inc/testshl/simpleheader.hxx
deleted file mode 100644
index c910a7bdcd0f..000000000000
--- a/testshl2/inc/testshl/simpleheader.hxx
+++ /dev/null
@@ -1,43 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 CPPUNIT_SIMPLEHEADER_HXX
-#define CPPUNIT_SIMPLEHEADER_HXX
-
-// This file contains only the cppunit header files, for simplification.
-
-#include <cppunit/TestFixture.h>
-#include <cppunit/TestCaller.h>
-#include <cppunit/TestSuite.h>
-#include <cppunit/TestAssert.h>
-#include <testshl/autoregister/registertestfunction.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <testshl/additionalfunc.hxx>
-#include <testshl/cmdlinebits.hxx>
-#include <testshl/checkboom.hxx>
-
-#endif
diff --git a/testshl2/inc/testshl/stringhelper.hxx b/testshl2/inc/testshl/stringhelper.hxx
deleted file mode 100644
index 4e30c2d2d447..000000000000
--- a/testshl2/inc/testshl/stringhelper.hxx
+++ /dev/null
@@ -1,39 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 STRINGHELPER_HXX
-#define STRINGHELPER_HXX
-
-#include <rtl/ustring.hxx>
-#include <rtl/string.hxx>
-
-inline void operator <<= (rtl::OString& _rAsciiString, const rtl::OUString& _rUnicodeString)
-{
- _rAsciiString = rtl::OUStringToOString(_rUnicodeString,RTL_TEXTENCODING_ASCII_US);
-}
-
-#endif
diff --git a/testshl2/inc/testshl/taghelper.hxx b/testshl2/inc/testshl/taghelper.hxx
deleted file mode 100644
index 1100256e6dee..000000000000
--- a/testshl2/inc/testshl/taghelper.hxx
+++ /dev/null
@@ -1,88 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 TAGHELPER_HXX
-#define TAGHELPER_HXX
-
-#include <map>
-#include <sal/types.h>
-#include <testshl/nocopy.hxx>
-#include <cppunit/tagvalues.hxx>
-
-/* Tags are a general mechanism of extensible data arrays for parameter
- * specification and property inquiry. In practice, tags are used in arrays,
- * or chain of arrays.
- *
- */
-
-typedef sal_IntPtr TagData;
-
-//# struct TagItem
-//# {
-//# Tag ti_Tag; /* identifies the type of data */
-//# TagData ti_Data; /* type-specific data */
-//# };
-
-/* constants for Tag.ti_Tag, control tag values */
-#define TAG_DONE (Tag(0L)) /* terminates array of TagItems. ti_Data unused */
-#define TAG_END (Tag(0L)) /* synonym for TAG_DONE */
-#define TAG_IGNORE (Tag(1L)) /* ignore this item, not end of array */
-#define TAG_MORE (Tag(2L)) /* ti_Data is pointer to another array of TagItems
- * note that this tag terminates the current array
- */
-#define TAG_SKIP (Tag(3L)) /* skip this and the next ti_Data items */
-
-/* differentiates user tags from control tags */
-#define TAG_USER (Tag(1L<<31))
-
-// -----------------------------------------------------------------------------
-class TagHelper /* : NOCOPY */
-{
- typedef std::map<Tag, TagData> TagItems;
- TagItems m_aTagItems;
-
-public:
- TagHelper(){}
- void insert(Tag _nTag, TagData _nData)
- {
- m_aTagItems[_nTag] = _nData;
- }
- // const TagItems& get() const { return m_aTagItems; }
-
- TagData GetTagData(Tag _aTagValue, TagData _aDefaultValue = 0 /* NULL */) const
- {
- TagItems::const_iterator it = m_aTagItems.find(_aTagValue);
- if (it != m_aTagItems.end())
- return (*it).second;
- else
- return _aDefaultValue;
- }
-};
-
-#endif
-
-
diff --git a/testshl2/inc/testshl/tresstatewrapper.h b/testshl2/inc/testshl/tresstatewrapper.h
deleted file mode 100644
index 0f6830451caf..000000000000
--- a/testshl2/inc/testshl/tresstatewrapper.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 TESTSTATEWRAPPER_H
-#define TESTSTATEWRAPPER_H
-
-#ifdef _RTL_TRES_H_
-#error "This is old code, please remove the include of rtl/tres.h"
-#endif
-
-#include <sal/types.h>
-#include "testshl/autoregister/registertestfunction.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// typedef void* hTestResult;
-typedef hTestResult rtlTestResult;
-
-// -----------------------------------------------------------------------------
-void c_rtl_tres_state_start(hTestResult _aResult, const sal_Char* _pName);
-void c_rtl_tres_state_end(hTestResult _aResult, const sal_Char* _pName);
-
-// -----------------------------------------------------------------------------
-// the old test state function, which here convert all values for using with the
-// new testshl tool
-
-sal_Bool SAL_CALL c_rtl_tres_state(
- hTestResult pResult,
- sal_Bool bSuccess,
- char const * pTestMsg,
- char const * pFuncName);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/testshl2/inc/testshl/tresstatewrapper.hxx b/testshl2/inc/testshl/tresstatewrapper.hxx
deleted file mode 100644
index c90a5fe2535b..000000000000
--- a/testshl2/inc/testshl/tresstatewrapper.hxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 teststatewrapper_hxx
-#define teststatewrapper_hxx
-
-#include <testshl/nocopy.hxx>
-#include <sal/types.h>
-
-#include <testshl/simpleheader.hxx>
-#include <cppunit/callbackfunc_fktptr.h>
-
-// This is a hack, because it's possible that the testshl directory doesn't exist.
-#ifdef LOAD_TRESSTATEWRAPPER_LOCAL
-#include "tresstatewrapper.h"
-#else
-#include <testshl/tresstatewrapper.h>
-#endif
-
-// -----------------------------------------------------------------------------
-// helper class to mark the start off old test code
-// the name is need in the test result generator
-class rtl_tres_state_start : NOCOPY
-{
- const sal_Char* m_pName;
- hTestResult m_aResult;
-public:
- rtl_tres_state_start(hTestResult _aResult, const sal_Char* _pName);
- ~rtl_tres_state_start();
-};
-
-#endif
-
diff --git a/testshl2/inc/testshl/versionhelper.hxx b/testshl2/inc/testshl/versionhelper.hxx
deleted file mode 100644
index efa28bef0bda..000000000000
--- a/testshl2/inc/testshl/versionhelper.hxx
+++ /dev/null
@@ -1,84 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 AUTOREGISTER_HXX
-#define AUTOREGISTER_HXX
-
-#include <stdio.h>
-#include <vector>
-#include <ostream>
-#include <iostream>
-
-#include <rtl/ustring.hxx>
-#include <rtl/string.hxx>
-
-#include "dynamicregister.hxx"
-
-// -----------------------------------------------------------------------------
-// ---------------------------------- Version ----------------------------------
-// -----------------------------------------------------------------------------
-// extern "C" const struct VersionInfo *GetVersionInfo();
-
-// this is a Hack, but at the moment, no change to handle this behaviour better.
-struct VersionInfo
-{
- const char* pTime;
- const char* pDate;
- const char* pUpd;
- const char* pMinor;
- const char* pBuild;
- const char* pInpath;
-};
-typedef const struct VersionInfo* (*FktGetVersionInfoPtr)();
-
-// -----------------------------------------------------------------------------
-class VersionHelper : public DynamicLibraryHelper
-{
- const VersionInfo *m_pInfo;
-
-public:
- VersionHelper(rtl::OUString const& _sDLLName, GetOpt & _aOptions);
-// void print(std::ostream& _aStream);
- void printall(FILE*);
-
- rtl::OString getTime() const;
- rtl::OString getDate() const;
- rtl::OString getUpd() const;
- rtl::OString getMinor() const;
- rtl::OString getBuild() const;
- rtl::OString getInpath() const;
-
- bool isOk() const;
-};
-
-/** insertion operator for easy output */
-// std::ostream &operator <<( std::ostream &stream,
-// VersionHelper &version );
-
-
-#endif
-
diff --git a/testshl2/inc/testshl/winstuff.hxx b/testshl2/inc/testshl/winstuff.hxx
deleted file mode 100644
index 830275883e0a..000000000000
--- a/testshl2/inc/testshl/winstuff.hxx
+++ /dev/null
@@ -1,40 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 WINSTUFF_HXX
-#define WINSTUFF_HXX
-
-#include <sal/types.h>
-
-// Isolated into own compilation unit, to avoid interference with
-// windows headers
-void WinDebugBreak();
-void WinSleep( sal_uInt32 sec );
-sal_uInt32 WinGetCurrentProcessId();
-void WinTerminateApp( sal_uInt32 dwPID, sal_uInt32 dwTimeout );
-
-#endif
diff --git a/testshl2/prj/build.lst b/testshl2/prj/build.lst
deleted file mode 100644
index 7bbdfa8c1646..000000000000
--- a/testshl2/prj/build.lst
+++ /dev/null
@@ -1,9 +0,0 @@
-t2 testshl2 : cppunit sal NULL
-t2 testshl2 usr1 - all t2_mkout NULL
-t2 testshl2\inc nmake - all t2_inc NULL
-t2 testshl2\source\cppunit\win32 nmake - all t2_src_cppunit_win32 t2_inc NULL
-t2 testshl2\source\cppunit nmake - all t2_src_cppunit t2_src_cppunit_win32 t2_inc NULL
-t2 testshl2\source\cppunit\result nmake - all t2_src_cppunit_result t2_inc NULL
-t2 testshl2\source nmake - all t2_src t2_src_cppunit_result t2_src_cppunit t2_inc NULL
-t2 testshl2\util nmake - all t2_util t2_src NULL
-
diff --git a/testshl2/prj/d.lst b/testshl2/prj/d.lst
deleted file mode 100644
index 67cc1ad8e9e7..000000000000
--- a/testshl2/prj/d.lst
+++ /dev/null
@@ -1,29 +0,0 @@
-../%__SRC%/bin/testshl2.exe %_DEST%/bin%_EXT%/testshl2.exe
-../%__SRC%/bin/testshl2_timeout.exe %_DEST%/bin%_EXT%/testshl2_timeout.exe
-../%__SRC%/bin/testshl2 %_DEST%/bin%_EXT%/testshl2
-../%__SRC%/bin/testshl2_timeout %_DEST%/bin%_EXT%/testshl2_timeout
-../%__SRC%/bin/versioninfo.exe %_DEST%/bin%_EXT%/versioninfo.exe
-../%__SRC%/bin/versioninfo %_DEST%/bin%_EXT%/versioninfo
-
-../source/codegen/codegen.pl %_DEST%/bin%_EXT%/codegen_testshl2.pl
-
-mkdir: %_DEST%/inc%_EXT%/testshl
-mkdir: %_DEST%/inc%_EXT%/testshl/autoregister
-mkdir: %_DEST%/inc%_EXT%/testshl/result
-../inc/testshl/*.hxx %_DEST%/inc%_EXT%/testshl/*.hxx
-../inc/testshl/*.h %_DEST%/inc%_EXT%/testshl/*.h
-../inc/testshl/result/*.hxx %_DEST%/inc%_EXT%/testshl/result/*.hxx
-../inc/testshl/result/*.h %_DEST%/inc%_EXT%/testshl/result/*.h
-../inc/testshl/autoregister/*.h %_DEST%/inc%_EXT%/testshl/autoregister/*.h
-
-../%__SRC%/lib/testshl2.lib %_DEST%/lib%_EXT%/testshl2.lib
-../%__SRC%/lib/*.a %_DEST%/lib%_EXT%/*.a
-../%__SRC%/lib/c5t_*.lib %_DEST%/lib%_EXT%/c5t_*.lib
-
-# The follows is a testshl2 selftest library, which must be delivered for tests.
-# But per default this library doesn't exists.
-# For more information see workben/selftest
-../%__SRC%/bin/delivertest.dll %_DEST%/bin%_EXT%/testshl2_deliver_test.dll
-../%__SRC%/lib/libdelivertest.so %_DEST%/lib%_EXT%/libtestshl2_deliver_test.so
-../%__SRC%/lib/libdelivertest.dylib %_DEST%/lib%_EXT%/libtestshl2_deliver_test.dylib
-
diff --git a/testshl2/source/autoregisterhelper.cxx b/testshl2/source/autoregisterhelper.cxx
deleted file mode 100644
index 62e76804262c..000000000000
--- a/testshl2/source/autoregisterhelper.cxx
+++ /dev/null
@@ -1,140 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "testshl/autoregisterhelper.hxx"
-
-#include <rtl/ustring.hxx>
-
-#include <testshl/autoregister/registerfunc.h>
-#include <testshl/autoregister/callbackstructure.h>
-#include <testshl/result/callbackfunc.h>
-#include <testshl/autoregister/testfunc.h>
-#include "testshl/filehelper.hxx"
-
-FunctionList m_Functions;
-// osl::Mutex m_Mutex;
-
-extern "C" void SAL_CALL registerFunc(FktPtr _pFunc, const char*)
-{
- m_Functions.push_back(_pFunc);
-}
-
-// -----------------------------------------------------------------------------
-AutomaticRegisterHelper::AutomaticRegisterHelper(rtl::OUString const& _sDLLName, GetOpt & _aOptions /*, JobList * _pJobList*/)
- :DynamicLibraryHelper(_sDLLName, _aOptions),
- m_bLoadLibraryOK(false)
-{
- // try to get the entry pointer
- FktRegAllPtr pFunc = (FktRegAllPtr) m_pModule->getFunctionSymbol(
- rtl::OUString::createFromAscii( "registerAllTestFunction" ) );
-
- if (pFunc)
- {
- m_bLoadLibraryOK = true;
- // FktRegFuncPtr pRegisterFunc = &DynamicLibraryHelper::registerFunc;
- // pFunc(pRegisterFunc);
- // osl::Guard aGuard(m_Mutex);
- FktRegFuncPtr pRegisterFunc = &registerFunc;
-
- CallbackStructure aCallback;
- aCallback.aRegisterFunction = pRegisterFunc;
-
- aCallback.aCallbackDispatch = &CallbackDispatch;
-
- // special parameter for API testing
- if (_aOptions.hasOpt("-forward"))
- {
- aCallback.psForward = _aOptions.getOpt("-forward").getStr();
- }
-
- // aCallback.pJobList = _pJobList;
-
- //# aCallback.aStartTest = &TestResult_startTest;
- //# aCallback.aAddFailure = &TestResult_addFailure;
- //# aCallback.aAddError = &TestResult_addError;
- //# aCallback.aEndTest = &TestResult_endTest;
- //# aCallback.aShouldStop = &TestResult_shouldStop;
- //# aCallback.aAddInfo = &TestResult_addInfo;
- //# aCallback.aEnterNode = &TestResult_enterNode;
- //# aCallback.aLeaveNode = &TestResult_leaveNode;
-
- aCallback.nBits = FileHelper::createFlags(_aOptions);
-
- pFunc(&aCallback);
-
- if (aCallback.nMagic == aCallback.nMagic2)
- {
- // ok internal simple test done.
- m_aFunctionList = m_Functions;
- }
- else
- {
- // ERROR, the function seams not to be what we thing it's to be.
- fprintf(stderr, "error: Internal check failed. Structure inconsistent, Value Magic2 != Magic.\nPlease recompile your test libraries.");
- exit(-1);
- }
- }
- else
- {
- fprintf(stderr, "warning: Function 'registerAllTestFunction' not found.\n");
- fprintf(stderr, "If you think, you are right, build testshl2 completly new.\n");
- }
-}
-
-void AutomaticRegisterHelper::CallAll(hTestResult _hResult) const
-{
- // can't load the module, break the tests.
- if (m_bLoadLibraryOK == false)
- {
- return;
- }
-
- for (FunctionList::const_iterator it = m_aFunctionList.begin();
- it != m_aFunctionList.end();
- ++it)
- {
- FktPtr pFunc = *it;
- if (pFunc)
- {
- (pFunc)(_hResult);
- }
- }
-}
-
-AutomaticRegisterHelper::~AutomaticRegisterHelper()
-{
- if (getOptions().hasOpt("-verbose"))
- {
- fprintf(stderr, "Dtor AutomaticRegisterHelper.\n");
- }
-}
diff --git a/testshl2/source/codegen/codegen.pl b/testshl2/source/codegen/codegen.pl
deleted file mode 100644
index ab7a68397aeb..000000000000
--- a/testshl2/source/codegen/codegen.pl
+++ /dev/null
@@ -1,601 +0,0 @@
-eval 'exec perl -wS $0 ${1+"$@"}'
- if 0;
-
-use strict;
-use Cwd;
-
-# #/usr/bin/perl
-
-# @lines
-# push(@lines, $line) append
-# pop(@lines) remove last
-# shift(@lines) remove at first
-# unshift(@lines, $line) insert at first
-# $lines[-1] get last
-# foreach $line (@lines)
-
-# $a eq $b compares strings
-# $a == $b compares digits
-
-# split operator
-# ($vorname, $nachname, $email) = split (/\s+/, $person);
-
-my $sCurrentPackage = "";
-my $sCurrentClass = "";
-my @sMethodNames;
-my @sClassNameStack;
-my @sFilenameStack;
-my $sCurrentFilename;
-my $nNoAdditionalAnyMore = 0;
-my $bShowDemo = 1;
-my $sSrcExt = ".cxx";
-
-my $cwd = getcwd();
-
-sub generateMakefileEntry(*$$);
-
-# ------------------------------------------------------------------------------
-sub createFilename
-{
- my $sPackageName = shift;
- my $sFilenameCounter = "$sPackageName$sSrcExt";
- my $sFilename = "$sPackageName";
- my $nCount = 0;
- while ( -e $sFilenameCounter)
- {
- $nCount ++;
- $sFilename = "$sPackageName" . "_$nCount";
- $sFilenameCounter = "$sFilename$sSrcExt";
- }
- push(@sFilenameStack, $sFilename);
-
- $sCurrentFilename = $sFilenameCounter;
- return $sFilenameCounter;
-}
-# ------------------------------------------------------------------------------
-
-sub generateNewPackage(*$)
-{
- local *CPPFILE = shift;
- my $sPackageName = shift;
-
- my $sFilename = createFilename($sPackageName);
- open(CPPFILE, ">$sFilename") || die "can't create source file";
- print CPPFILE "// autogenerated file with codegen.pl\n";
- print CPPFILE "\n";
- print CPPFILE "#include <testshl/simpleheader.hxx>\n";
- print CPPFILE "\n";
- print CPPFILE "namespace $sPackageName\n";
- print CPPFILE "{\n";
-}
-
-# ------------------------------------------------------------------------------
-sub generateNewClass
-{
- my $sClassName = shift;
- print CPPFILE "\n";
- print CPPFILE "class $sClassName : public CppUnit::TestFixture\n";
- print CPPFILE "{\n";
- print CPPFILE "public:\n";
-}
-# ------------------------------------------------------------------------------
-sub closeMethods
-{
- # due to the fact, that this is a function based code, not object based
- # we have to do some hacks, to prevent us from creating wrong code
- if ($sCurrentClass =~ /^$/ || $sCurrentPackage =~ /^$/ )
- {
- return;
- }
-
- # here we create the methods
- # first the setUp() and tearDown()
- print CPPFILE " // initialise your test code values here.\n";
- print CPPFILE " void setUp()\n";
- print CPPFILE " {\n";
- print CPPFILE " }\n";
- print CPPFILE "\n";
- print CPPFILE " void tearDown()\n";
- print CPPFILE " {\n";
- print CPPFILE " }\n";
- print CPPFILE "\n";
-
- print CPPFILE " // insert your test code here.\n";
-
- my $sMethod;
- if ($#sMethodNames >= 0)
- {
- # all found methods
- foreach $sMethod (@sMethodNames)
- {
- print CPPFILE " void $sMethod()\n";
- print CPPFILE " {\n";
- if ($bShowDemo == 1)
- {
- print CPPFILE " // this is demonstration code\n";
- print CPPFILE " // CPPUNIT_ASSERT_MESSAGE(\"a message\", 1 == 1);\n";
- $bShowDemo = 0;
- }
- print CPPFILE " CPPUNIT_ASSERT_STUB();\n";
- print CPPFILE " }\n";
- print CPPFILE "\n";
- }
- }
- else
- {
- # if no methods found, create at least one
- print CPPFILE " // this is only demonstration code\n";
- print CPPFILE " void EmptyMethod()\n";
- print CPPFILE " {\n";
- print CPPFILE " // CPPUNIT_ASSERT_MESSAGE(\"a message\", 1 == 1);\n";
- print CPPFILE " CPPUNIT_ASSERT_STUB();\n";
- print CPPFILE " }\n";
- print CPPFILE "\n";
- }
-
- # create the autoregister code
- print CPPFILE " // Change the following lines only, if you add, remove or rename \n";
- print CPPFILE " // member functions of the current class, \n";
- print CPPFILE " // because these macros are need by auto register mechanism.\n";
- print CPPFILE "\n";
-
- print CPPFILE " CPPUNIT_TEST_SUITE($sCurrentClass);\n";
- push(@sClassNameStack, $sCurrentClass);
-
- my $nCount = 0;
- if ($#sMethodNames >= 0)
- {
- foreach $sMethod (@sMethodNames)
- {
- print CPPFILE " CPPUNIT_TEST($sMethod);\n";
- $nCount ++;
- }
- # empty the method list
- my $i;
- for ($i = 0;$i < $nCount;$i++)
- {
- pop(@sMethodNames);
- }
- }
- else
- {
- print CPPFILE " CPPUNIT_TEST(EmptyMethod);\n";
- }
- print CPPFILE " CPPUNIT_TEST_SUITE_END();\n";
-}
-
-# ------------------------------------------------------------------------------
-sub closeClass
-{
- # my $sClassName = shift;
- if ($sCurrentClass =~ /^$/)
- {
- return;
- }
- print CPPFILE "}; // class $sCurrentClass\n";
- print CPPFILE "\n";
- $sCurrentClass = "";
-}
-# ------------------------------------------------------------------------------
-
-sub closePackage
-{
- # my $sPackageName = shift;
- if ($sCurrentPackage =~ /^$/)
- {
- return;
- }
- # create the autoregister code
- print CPPFILE "// -----------------------------------------------------------------------------\n";
- my $nCount = 0;
- my $sClassName;
- foreach $sClassName (@sClassNameStack)
- {
- print CPPFILE "CPPUNIT_TEST_SUITE_NAMED_REGISTRATION($sCurrentPackage" . "::" . "$sClassName, \"$sCurrentPackage\");\n";
- $nCount ++;
- }
- # empty the method list
- my $i;
- for ($i = 0;$i < $nCount;$i++)
- {
- pop(@sClassNameStack);
- }
-
- print CPPFILE "} // namespace $sCurrentPackage\n";
- print CPPFILE "\n";
-
- print CPPFILE "
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-";
- # if the variable nNoAdditionalAnyMore is set to one, we insert a remark before
- # the macro NOADDITIONAL; to prevent us from linker problems.
- if ($nNoAdditionalAnyMore == 1)
- {
- print CPPFILE "// ";
- }
- print CPPFILE "NOADDITIONAL;\n";
- print CPPFILE "\n";
-
- close(CPPFILE);
-
- $nNoAdditionalAnyMore = 1;
-
- $sCurrentPackage = "";
-}
-
-# ------------------------------------------------------------------------------
-
-# sub generateCppSource
-# {
-# my $sPackageName = shift;
-# my $sClassName = shift;
-# my $sMethodName = shift;
-#
-#
-# open(CPPFILE, ">$sFilename") || die "can't create cxx source file";
-# print CPPFILE "// autogenerated file\n";
-# close(CPPFILE);
-# }
-# ------------------------------------------------------------------------------
-sub walkThroughJobFile
-{
- my $filename = shift;
-
- open(FILE, $filename) || die "can't open $filename\n";
-
- print "start jobfile interpreter.\n";
- my $line;
- while($line = <FILE>)
- {
- chomp($line);
- # DOS Hack grrrr...
- while ($line =~ /
-$/)
- {
- $line = substr($line, 0, -1);
- }
-
- if ($line =~ /^\#/ || $line =~ /^$/)
- {
- # remark or empty line
- }
- else
- {
- if ($line =~ /^\w+/) # must start with a word character
- {
- # print "$line\n";
- my $sPackageName = "";
- my $sClassName = "";
- my $sMethodName = "";
- my @names;
- @names = split(/\./, $line);
- if (exists $names[0])
- {
- $sPackageName = $names[0];
- }
- if (exists $names[1])
- {
- $sClassName = $names[1];
- }
- if (exists $names[2])
- {
- $sMethodName = $names[2];
- }
-
- if ($sClassName =~ /^$/)
- {
- print "error: in $line, no class name exist. Build no code.\n";
- }
- # test if it also works without methods
- # elsif ($sMethodName =~ /^$/)
- # {
- # print "error: in $line, no method name exist.\n";
- # }
- else
- {
- if ($sMethodName =~ /^$/)
- {
- print "warning: in $line, no method name exist, create only one member function.\n";
- }
-
- print "build code for: ${sPackageName}.${sClassName}.${sMethodName}\n";
-
- if ($sCurrentPackage ne $sPackageName)
- {
- closeMethods();
- closeClass();
- closePackage();
-
- $sCurrentPackage = $sPackageName;
- generateNewPackage(CPPFILE, $sPackageName);
- }
- if ($sCurrentClass ne $sClassName)
- {
- closeMethods();
- closeClass();
- $sCurrentClass = $sClassName;
- generateNewClass($sClassName);
- }
- if ($sMethodName)
- {
- push(@sMethodNames, $sMethodName);
- }
- }
- }
- }
- }
-
- closeMethods();
- closeClass();
- closePackage();
- close(FILE);
-
- print "done.\n\nThe following files have been created in the current directory:\n";
-
- my $sFilename;
- foreach $sFilename (@sFilenameStack)
- {
- print " ${sFilename}${sSrcExt}\n";
- }
- print "\n";
-}
-
-# ------------------------------------------------------------------------------
-sub checkMakefileNumber
-{
- my $sTargetName = shift;
-
- # This function gives back the lowest number for SHL\dTARGET
- open(MAKEFILE, "makefile.mk") || return -1;
-
- my $line;
- my $nNumber;
- my @aNumbers;
- my $i;
- for($i = 1;$i < 10;$i++)
- {
- $aNumbers[$i] = 0;
- }
-
- my $nReplacePos = -1;
- while($line = <MAKEFILE>)
- {
- chomp($line);
-
- if ($line =~ /^SHL(\d)TARGET/)
- {
- $aNumbers[$1] = 1;
- $line =~ /^SHL(\d)TARGET=\s*(\S+)\s*/;
-
- print "Target: $2\n";
- if ($sTargetName eq $2)
- {
- print "info: Targetname already exist.\n";
- $nReplacePos = $1;
- }
- }
- }
- close(MAKEFILE);
-
- my $nFirstFree = 0;
- for($i = 1;$i < 10;$i++)
- {
- if ($aNumbers[$i] == 0)
- {
- $nFirstFree = $i;
- last;
- }
- }
- return $nFirstFree, $nReplacePos;
-}
-# ------------------------------------------------------------------------------
-sub createNewMakefile($$$)
-{
- my $sNewMakefileName = shift;
- my $sTargetName = shift;
- my $nNumber = shift;
- local *MAKEFILE;
-
- # this function split a makefile into two parts,
- open(MAKEFILE, "makefile.mk") || return;
- my @lines = <MAKEFILE>;
- close(MAKEFILE);
-
- # print "info: Makefile has $#lines lines.\n";
-
- # search a point, where to insert the new makefile part.
- my $nTargetMK = -1;
- my $i;
- for ($i = $#lines; $i > 0; $i--)
- {
- if ($lines[$i] =~ /\.INCLUDE.*target.mk\s$/)
- {
- $nTargetMK = $i;
- last;
- }
- }
- if ($nTargetMK > 0)
- {
- # print "info: target.mk found, is in line $nTargetMK\n";
-
- # print "@lines[0]";
- # print "@lines[1]";
- # print "@lines[2]";
- # print "@lines[$nTargetMK - 2]";
- # print "@lines[$nTargetMK - 1]";
- # print "@lines[$nTargetMK]";
-
- local *OUT_MAKEFILE;
- open(OUT_MAKEFILE, ">$sNewMakefileName") || return;
- for ($i = 0;$i < ($nTargetMK - 2); $i++)
- {
- print OUT_MAKEFILE $lines[$i];
- }
-
- generateMakefileEntry(OUT_MAKEFILE, $sTargetName, $nNumber);
-
- for ($i = ($nTargetMK - 2);$i <= $#lines; $i++)
- {
- print OUT_MAKEFILE $lines[$i];
- }
- close(OUT_MAKEFILE);
- }
-}
-# ------------------------------------------------------------------------------
-
-sub generateMakefileEntry(*$$)
-{
- # my MAKEFILE = shift;
- local *_MAKEFILE = shift;
- my $sTargetName = shift;
- my $nNumber = shift;
-
- # open(_MAKEFILE, ">makefile.add") || die "can't open makefile.add";
-
- print _MAKEFILE "# BEGIN ----------------------------------------------------------------\n";
- print _MAKEFILE "# auto generated Target:$sTargetName by codegen.pl \n";
- print _MAKEFILE "SHL${nNumber}OBJS= ";
- my $sFilename;
- foreach $sFilename (@sFilenameStack)
- {
- print _MAKEFILE " \\\n";
- print _MAKEFILE " \$(SLO)\$/$sFilename.obj";
- }
- print _MAKEFILE "\n\n";
-
- # targetname
- print _MAKEFILE "SHL${nNumber}TARGET= $sTargetName\n";
- # additional libraries
- print _MAKEFILE "SHL${nNumber}STDLIBS=\\\n";
- print _MAKEFILE " \$(SALLIB) \\\n";
- # LLA: added by sb 18th jun 2003 (announced)
- print _MAKEFILE " \$(CPPUNITLIB) \n";
- # link static cppunit library
- # print _MAKEFILE ".IF \"\$(GUI)\" == \"WNT\"\n";
- # print _MAKEFILE "SHL${nNumber}STDLIBS+= \$(SOLARLIBDIR)\$/cppunit.lib\n";
- # print _MAKEFILE ".ENDIF\n";
- # print _MAKEFILE ".IF \"\$(GUI)\" == \"UNX\"\n";
- # print _MAKEFILE "SHL${nNumber}STDLIBS+=\$(SOLARLIBDIR)\$/libcppunit\$(DLLPOSTFIX).a\n";
- # print _MAKEFILE ".ENDIF\n";
- print _MAKEFILE "\n";
- print _MAKEFILE "SHL${nNumber}IMPLIB= i\$(SHL${nNumber}TARGET)\n";
- print _MAKEFILE "# SHL${nNumber}DEF= \$(MISC)\$/\$(SHL${nNumber}TARGET).def\n";
- print _MAKEFILE "\n";
- # DEF name
- print _MAKEFILE "DEF${nNumber}NAME =\$(SHL${nNumber}TARGET)\n";
- print _MAKEFILE "# DEF${nNumber}EXPORTFILE= export.exp\n";
- print _MAKEFILE "SHL${nNumber}VERSIONMAP= export.map\n";
- print _MAKEFILE "# auto generated Target:$sTargetName\n";
- print _MAKEFILE "# END ------------------------------------------------------------------\n\n";
-
- # close(_MAKEFILE);
-}
-
-# ------------------------------------------------------------------------------
-sub usage
-{
- print "usage:\ncodegen.pl joblist [targetname]\n";
- print "\n(c) Sun Microsystems Inc. 2003\n";
- print "
-This is a testshl2 codegenerator which creates compilable C++ source files
-with stub functions for all given test routines from the jobfile.
-Also generate a makefile entry which is insert in the makefile.new
-if a makefile.mk already exist or this tool creates a makefile.add. Which
-has to add into a new makefile.mk by hand.
-Also generate a export.map file, if no one exist.
-";
- exit(1);
-}
-# -------------------------------- main function --------------------------------
-
-sub main
-{
- if ($#ARGV < 0)
- {
- usage();
- }
- my $jobfile = $ARGV[0];
- my $sTargetName;
- if ($#ARGV < 2)
- {
- # remove .sce
- $sTargetName = $jobfile;
- $sTargetName =~ s/\.\w*//;
- }
- else
- {
- $sTargetName = $ARGV[1];
- }
- print "Test code generator\n\n";
-
- if (! -e $jobfile)
- {
- print "error: given jobfile '$jobfile' doesn't exist.\n";
- exit(1);
- }
- walkThroughJobFile($jobfile);
-
- # generate makefile
-
- if (-e "makefile.mk")
- {
- my $n;
- my $nReplacePos;
- ($n, $nReplacePos) = checkMakefileNumber($sTargetName);
- # $n == -1 no makefile
- # $n == 0 no free number
- # $n 1..9 ok.
- if ($n > 0)
- {
- my $sNewMakefileName = "makefile.new";
- print "Makefile: Add the 'SHL${n}TARGET' to the file '$sNewMakefileName'\n";
- createNewMakefile($sNewMakefileName, $sTargetName, $n);
- }
- }
- else
- {
- print "warning: No makefile.mk found, please add the content of makefile.add to a makefile.mk file\n";
- local *MAKEFILE;
- open(MAKEFILE, ">makefile.add");
- generateMakefileEntry(MAKEFILE, $sTargetName, 1);
- close(MAKEFILE);
- }
- print "\n";
- # this is the old export.exp method
- # if (! -e "export.exp")
- # {
- # print "info: create export.exp file\n";
- # open(EXPORTEXP, ">export.exp") || die "can't create export.exp";
- # print EXPORTEXP "registerAllTestFunction\n";
- # close(EXPORTEXP);
- # }
- # else
- # {
- # print "The file 'export.exp' file already exist, please make sure that it contains the entry 'registerAllTestFunction'.\n";
- # }
- if (! -e "export.map")
- {
- local *EXPORTMAP;
- print "info: create export.map file\n";
- open(EXPORTMAP, ">export.map") || die "can't create export.map";
- print EXPORTMAP "UDK_3.0 {\n";
- print EXPORTMAP " global:\n";
- print EXPORTMAP " registerAllTestFunction;\n";
- print EXPORTMAP "\n";
- print EXPORTMAP " local:\n";
- print EXPORTMAP " *;\n";
- print EXPORTMAP "};\n";
- close(EXPORTMAP);
- }
- else
- {
- print "The file 'export.map' file already exist, please make sure that it contains the entry 'registerAllTestFunction'.\n";
- }
-}
-
-# ------------------------------------------------------------------------------
-
-main();
diff --git a/testshl2/source/cppunit/cmdlinebits.cxx b/testshl2/source/cppunit/cmdlinebits.cxx
deleted file mode 100644
index 061e82fe2d73..000000000000
--- a/testshl2/source/cppunit/cmdlinebits.cxx
+++ /dev/null
@@ -1,141 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#ifdef WNT
-# define UNDER_WINDOWS_DEBUGGING
-# include "testshl/winstuff.hxx"
-#endif /* WNT */
-
-#include <stdio.h>
-#include <testshl/cmdlinebits.hxx>
-#include "testshl/checkboom.hxx"
-
-#include <testshl/autoregister/callbackstructure.h>
-#include <osl/diagnose.h>
-#include <rtl/tres.h>
-#include <testshl/stringhelper.hxx>
-
-extern CallbackStructure aGlobalStructure;
-
-sal_Bool isBit( CmdLineBits _nBits, CmdLineBits _nFlag );
-
-// sal_Bool isBit( CmdLineBits _nBits, CmdLineBits _nFlag )
-// {
-// return( ( _nBits & _nFlag ) == _nFlag );
-// }
-
-void CheckBoom(bool bCondition, std::string const& msg)
-{
- (void) msg; // avoid warning
- if ( isBit( aGlobalStructure.nBits, rtl_tres_Flag_BOOM ) )
- {
- /* force an assertion on false state */
- if ( !bCondition ) {
-#ifdef UNDER_WINDOWS_DEBUGGING
- WinDebugBreak();
-#else
- OSL_ENSURE( false, msg.c_str() );
-#endif
- }
- }
-}
-
-void CheckBoom(bool bCondition, rtl::OUString const& msg)
-{
- if ( isBit( aGlobalStructure.nBits, rtl_tres_Flag_BOOM ) )
- {
- /* force an assertion on false state */
- rtl::OString sMessage;
- sMessage <<= msg;
- if ( !bCondition ) {
-#ifdef UNDER_WINDOWS_DEBUGGING
- WinDebugBreak();
-#else
- OSL_ENSURE( false, sMessage.getStr() );
-#endif
- }
- }
-}
-
-const char* getForwardString()
-{
- return aGlobalStructure.psForward;
-}
-
-// -----------------------------------------------------------------------------
-// ----------------------------- own printf method -----------------------------
-// -----------------------------------------------------------------------------
-
-// bool isVerbose()
-// {
-// if ( isBit( aGlobalStructure.nBits, rtl_tres_Flag_VERBOSE ) )
-// {
-// return true;
-// }
-// return false;
-// }
-//
-// bool isQuiet()
-// {
-// if ( isBit( aGlobalStructure.nBits, rtl_tres_Flag_QUIET ) )
-// {
-// return true;
-// }
-// return false;
-// }
-//
-// void impl_t_print(const char* _pFormatStr, va_list &args)
-// {
-// if (! isQuiet())
-// {
-// printf("# ");
-// vprintf(_pFormatStr, args);
-// }
-// }
-//
-// void t_print(const char* _pFormatStr, ...)
-// {
-// va_list args;
-// va_start( args, _pFormatStr );
-// impl_t_print(_pFormatStr, args);
-// va_end( args );
-// }
-//
-// void t_print(T_Print_Params _eType, const char* _pFormatStr, ...)
-// {
-// if (_eType == T_VERBOSE && isVerbose())
-// {
-// // if T_VERBOSE and we should be verbose, print info
-// va_list args;
-// va_start( args, _pFormatStr );
-// impl_t_print(_pFormatStr, args);
-// va_end( args );
-// }
-// }
diff --git a/testshl2/source/cppunit/joblist.cxx b/testshl2/source/cppunit/joblist.cxx
deleted file mode 100644
index 18f4c5aff4cd..000000000000
--- a/testshl2/source/cppunit/joblist.cxx
+++ /dev/null
@@ -1,221 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <fstream>
-#include <rtl/string.hxx>
-#include "testshl/joblist.hxx"
-
-#define C_SEPARATOR_LIST " \t,;:#"
-JobList::JobList()
- :ppsJobList(NULL)
-{}
-
-// -----------------------------------------------------------------------------
-bool JobList::isInCurrentEnvironment(std::string const& _sString)
-{
- int nSpace = 0;
- std::string sSearchString = _sString;
- bool bEnd = false;
- // run through the hole given string,
- std::string sEnv;
-
- do {
- nSpace = sSearchString.find_first_of(C_SEPARATOR_LIST);
- if (nSpace < 0)
- {
- sEnv = sSearchString;
- bEnd = true;
- }
- else
- {
- sEnv = sSearchString.substr(0, nSpace);
- sSearchString = sSearchString.substr(nSpace + 1);
- }
- if (sEnv.length() > 0)
- {
- // cout << sEnv << endl;
-#ifdef LINUX
- int nLinux = sEnv.find("unxlng");
- if (nLinux >= 0)
- {
- // found unxlng
- return true;
- }
-#endif
-#ifdef SOLARIS
- int nSolaris = sEnv.find("unxsol");
- if (nSolaris >= 0)
- {
- // found unxsol
- return true;
- }
-#endif
-#ifdef WNT
- int nWindows = sEnv.find("wnt");
- if (nWindows >= 0)
- {
- // found wnt
- return true;
- }
-#endif
- }
- } while ( !bEnd );
- return false;
-}
-
-std::string JobList::trim(std::string const& _sStringToTrim)
-{
- rtl::OString sStr(_sStringToTrim.c_str());
- sStr = sStr.trim();
- return std::string(sStr.getStr());
-}
-
-// -----------------------------------------------------------------------------
-bool JobList::readfile(std::string const& _sFilename, JobType _nJobType)
-{
- // StringList aJobList;
- m_aJobList.clear();
-
- std::ifstream in(_sFilename.c_str(), std::ios::in);
-
- if (!in)
- {
- // fprintf(stderr, "warning: Can't open job file: %s\n", _sFilename.c_str());
- return false;
- }
- else
- {
- if (_nJobType == JOB_EXCLUDE_LIST)
- {
- fprintf(stderr, "warning: There exist a job exclusion list file: %s\n", _sFilename.c_str());
- }
-
- // std::cout << "Check for signal" << std::endl;
- std::string sLine;
- while (std::getline(in, sLine))
- {
- if (sLine.size() > 0)
- {
- char ch = sLine[0];
- if (ch != '#' &&
- isspace(ch) == 0)
- {
- sLine = trim(sLine);
-
- // m_aJobList.push_back( sLine );
- int nSpace = sLine.find_first_of(C_SEPARATOR_LIST);
- if (nSpace < 0)
- {
- m_aJobList[sLine] = JOB_UNKNOWN;
- }
- else
- {
- // found a separator
- std::string sTest = sLine.substr(0, nSpace);
- std::string sRest = sLine.substr(nSpace + 1);
- if (isInCurrentEnvironment(sRest))
- {
- m_aJobList[sTest] = JOB_UNKNOWN;
- }
- }
- }
- }
- }
-
- // inclusion list
-/*
- int nSize = m_aJobList.size();
-
- ppsJobList = (char**) malloc((nSize + 1) * sizeof(char*));
-
- int nIdx = 0;
- StringList::const_iterator aItEnd = m_aJobList.end();
- for(StringList::const_iterator it = m_aJobList.begin();
- it != aItEnd; ++it)
- {
- std::string sValue = *it;
- char* psTestFkt = (char*) malloc(sValue.size() + 1);
- strcpy(psTestFkt, sValue.c_str());
- ppsJobList[nIdx] = psTestFkt;
- ++nIdx;
- }
-
- ppsJobList[nIdx] = NULL;
-*/
- }
- return true;
-}
-
-// -----------------------------------------------------------------------------
-int JobList::getJobListEntry(std::string const& _sIndexName)
-{
- if (m_aJobList.find(_sIndexName) != m_aJobList.end())
- {
- return m_aJobList[_sIndexName];
- }
- return JOB_NOT_FOUND;
-}
-
-// -----------------------------------------------------------------------------
-void JobList::setJobListEntry(std::string const& _sIndexName, int _nValue)
-{
- // if (m_aJobList.find(_sIndexName) == m_aJobList.end())
- // {
- m_aJobList[_sIndexName] = _nValue;
- // }
- // else
- // {
- // fprintf(stderr, "error: test function '%s' already exist.\n", _sIndexName);
- // }
-}
-
-// -----------------------------------------------------------------------------
-JobList::~JobList()
-{
- int nIdx = 0;
- if (ppsJobList)
- {
- while(ppsJobList[nIdx] != NULL)
- {
- free(ppsJobList[nIdx]);
- ++nIdx;
- }
- free(ppsJobList);
- }
-}
-// -----------------------------------------------------------------------------
-/*
- bool JobList::checkFilter(JobList m_aJobFilter, std::string const& _sNodeName, std::string const& _sName)
- {
- std::string sFilter = m_aJobFilter.m_aJobList.begin();
- }
-*/
diff --git a/testshl2/source/cppunit/makefile.mk b/testshl2/source/cppunit/makefile.mk
deleted file mode 100644
index 05e5bfa3fb69..000000000000
--- a/testshl2/source/cppunit/makefile.mk
+++ /dev/null
@@ -1,99 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=testshl2
-TARGET=testshl2
-LIBTARGET=NO
-ENABLE_EXCEPTIONS=TRUE
-# ENABLE_RTTI=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-# CXXFILES = \
-# querytemplate.cxx \
-# stringhelper.cxx
-
-# ENVCFLAGSCXX+=-DCPPUNIT_BUILD_DLL
-
-CPPUNIT_TESTSHL_SLOFILES = \
- $(SLO)$/joblist.obj \
- $(SLO)$/t_print.obj \
- $(SLO)$/signaltest.obj
-
-CPPUNIT_STATIC_SOLFILES = \
- $(SLO)$/cmdlinebits.obj \
- $(SLO)$/tresregister.obj \
- $(SLO)$/tresstatewrapper.obj \
- $(SLO)$/registertestfunction.obj
-
-
-SLOFILES = \
- $(CPPUNIT_TESTSHL_SLOFILES) \
- $(CPPUNIT_STATIC_SOLFILES)
-#-------------------------------------------------------------------------------
-# This is statically cppunit library
-LIB1TARGET= $(LB)$/$(TARGET).lib
-LIB1OBJFILES= \
- $(SLOFILES)
-
-.IF "$(GUI)"=="WNT"
-.IF "$(COM)"=="GCC"
-LIB1ARCHIV=$(LB)$/lib$(TARGET)$(DLLPOSTFIX).a
-.ENDIF
-LIB1FILES=$(LB)$/c5t_winstuff.lib
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-LIB1ARCHIV=$(LB)$/lib$(TARGET)$(DLLPOSTFIX).a
-.ENDIF
-
-#-------------------------------------------------------------------------------
-TARGET2=c5t_no_regallfkt
-LIB2TARGET= $(LB)$/$(TARGET2).lib
-LIB2OBJFILES= \
- $(CPPUNIT_TESTSHL_SLOFILES)
-
-.IF "$(GUI)"=="WNT"
-.IF "$(COM)"=="GCC"
-LIB2ARCHIV=$(LB)$/lib$(TARGET2)$(DLLPOSTFIX).a
-.ENDIF
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-LIB2ARCHIV=$(LB)$/lib$(TARGET2)$(DLLPOSTFIX).a
-.ENDIF
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/testshl2/source/cppunit/registertestfunction.cxx b/testshl2/source/cppunit/registertestfunction.cxx
deleted file mode 100644
index 74c70ee55ab1..000000000000
--- a/testshl2/source/cppunit/registertestfunction.cxx
+++ /dev/null
@@ -1,57 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdlib.h>
-#include <testshl/simpleheader.hxx>
-#include <testshl/additionalfunc.hxx>
-
-extern "C" void SAL_CALL testAllRegisteredFunctions(hTestResult _pResult)
-{
- CppUnit::TestFactoryRegistry::testRegistries(_pResult);
- // CppUnit::Test* tp = CppUnit::TestFactoryRegistry::getRegistry("rtl_OUString").makeTest();
- // tp->run(pResult);
-}
-
-// -----------------------------------------------------------------------------
-// ---------------------------- RegisterTestFunctions ----------------------------
-// -----------------------------------------------------------------------------
-
-extern "C" void SAL_CALL RegisterTestFunctions(FktRegFuncPtr _pFunc)
-{
- if (_pFunc)
- {
- (_pFunc)(&testAllRegisteredFunctions, "");
- }
- else
- {
- // error, FktRegFuncPtr not given
- }
- RegisterAdditionalFunctions(_pFunc);
-}
diff --git a/testshl2/source/cppunit/result/SynchronizedObject.cpp b/testshl2/source/cppunit/result/SynchronizedObject.cpp
deleted file mode 100644
index 73de43b8c543..000000000000
--- a/testshl2/source/cppunit/result/SynchronizedObject.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_testshl2.hxx"
-
-#include <cppunit/SynchronizedObject.h>
-
-
-namespace CppUnit
-{
-
-
-
-
-SynchronizedObject::SynchronizedObject( SynchronizationObject *syncObject )
- : m_syncObject( syncObject == 0 ? new SynchronizationObject() :
- syncObject )
-{
-}
-
-
-SynchronizedObject::~SynchronizedObject()
-{
- delete m_syncObject;
-}
-
-
-/** Accept a new synchronization object for protection of this instance
- * TestResult assumes ownership of the object
- */
-void
-SynchronizedObject::setSynchronizationObject( SynchronizationObject *syncObject )
-{
- delete m_syncObject;
- m_syncObject = syncObject;
-}
-
-
-} // namespace CppUnit
-
diff --git a/testshl2/source/cppunit/result/TestResult.cpp b/testshl2/source/cppunit/result/TestResult.cpp
deleted file mode 100644
index 5fa5e444e540..000000000000
--- a/testshl2/source/cppunit/result/TestResult.cpp
+++ /dev/null
@@ -1,264 +0,0 @@
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_testshl2.hxx"
-
-#include <cppunit/TestFailure.h>
-#include <testshl/result/TestListener.h>
-#include "testshl/getopt.hxx"
-#include <testshl/result/TestResult.h>
-#include <algorithm>
-#include "testshl/result/outputter.hxx"
-#include <cppunit/Test.h>
-#include <testshl/cmdlinebits.hxx>
-
-namespace CppUnit {
-
-/// Construct a TestResult
-TestResult::TestResult( GetOpt &_pOptions, SynchronizationObject *syncObject )
- : SynchronizedObject( syncObject ),
- m_aOptionHelper(_pOptions),
- m_nExitValue(0)
-{
- reset();
-}
-
-
-/// Destroys a test result
-TestResult::~TestResult()
-{
-}
-
-
-/** Resets the result for a new run.
- *
- * Clear the previous run result.
- */
-void
-TestResult::reset()
-{
- ExclusiveZone zone( m_syncObject );
- m_stop = false;
-}
-
-
-/** Adds an error to the list of errors.
- * The passed in exception
- * caused the error
- */
-void
-TestResult::addError( Test *test,
- Exception *e, ErrorType::num _eType )
-{
- TestFailure aTestFailure( test, e, _eType );
- addFailure( aTestFailure );
-}
-
-
-/** Adds a failure to the list of failures. The passed in exception
- * caused the failure.
- */
-void
-TestResult::addFailure( Test *test, Exception *e )
-{
- TestFailure aTestFailure( test, e, ErrorType::ET_FAILURE );
- addFailure( aTestFailure );
-}
-
-
-/** Called to add a failure to the list of failures.
- */
-void
-TestResult::addFailure( const TestFailure &failure )
-{
- ExclusiveZone zone( m_syncObject );
-
- // LLA:
- // this set the global returnvalue, due to the fact, there occurs a failure, we have to return a non zero value
- // at the moment this seams to be a good place.
- setExitValue(1);
-
- for ( TestListeners::iterator it = m_listeners.begin();
- it != m_listeners.end();
- ++it )
- {
- TestListener *pListener = *it;
- pListener->addFailure( failure );
- }
-}
-
-
-/// Informs the result that a test will be started.
-void
-TestResult::startTest( Test *test )
-{
- ExclusiveZone zone( m_syncObject );
- if (m_aOptionHelper.isVerbose())
- {
- std::string aStr;
- if (test)
- {
- aStr = getNodeName();
- aStr += ".";
- aStr += test->getName();
- }
- // fprintf(stderr, "Start test: %s\n", aStr.c_str());
- t_print( T_VERBOSE, "Start test: %s\n", aStr.c_str());
- }
-
- for ( TestListeners::iterator it = m_listeners.begin();
- it != m_listeners.end();
- ++it )
- {
- TestListener *pListener = *it;
- pListener->startTest( test );
- }
-}
-
-
-/// Informs the result that a test was completed.
-void
-TestResult::endTest( Test *test )
-{
- ExclusiveZone zone( m_syncObject );
- for ( TestListeners::iterator it = m_listeners.begin();
- it != m_listeners.end();
- ++it )
- {
- TestListener *pListener = *it;
- pListener->endTest( test );
- }
-}
-
-
-/// Returns whether testing should be stopped
-bool
-TestResult::shouldStop() const
-{
- ExclusiveZone zone( m_syncObject );
- return m_stop;
-}
-
-
-/// Stop testing
-void
-TestResult::stop()
-{
- ExclusiveZone zone( m_syncObject );
- m_stop = true;
-}
-
-
-void
-TestResult::addListener( TestListener *listener )
-{
- ExclusiveZone zone( m_syncObject );
- m_listeners.push_back( listener );
-}
-
-
-void
-TestResult::removeListener ( TestListener *listener )
-{
- ExclusiveZone zone( m_syncObject );
-#if defined(_MSC_VER) && (_MSC_VER >=1400)
- m_listeners.erase( remove( m_listeners.begin(),
-#else
- m_listeners.erase( std::remove( m_listeners.begin(),
-#endif
- m_listeners.end(),
- listener ),
- m_listeners.end());
-}
-
-void
-TestResult::addInfo(Test *test, const char* _aStr)
-{
- ExclusiveZone zone( m_syncObject );
- for ( TestListeners::iterator it = m_listeners.begin();
- it != m_listeners.end();
- ++it )
- {
- TestListener *pListener = *it;
- pListener->addInfo( test, _aStr );
- }
-}
-
-// old: void
-// old: TestResult::enterNode(const char* _aStr)
-// old: {
-// old: ExclusiveZone zone( m_syncObject );
-// old: for ( TestListeners::iterator it = m_listeners.begin();
-// old: it != m_listeners.end();
-// old: ++it )
-// old: {
-// old: TestListener *pListener = *it;
-// old: pListener->enterNode( _aStr );
-// old: }
-// old: }
-// old:
-// old: void
-// old: TestResult::leaveNode(const char* _aStr)
-// old: {
-// old: ExclusiveZone zone( m_syncObject );
-// old:
-// old: for ( TestListeners::iterator it = m_listeners.begin();
-// old: it != m_listeners.end();
-// old: ++it )
-// old: {
-// old: TestListener *pListener = *it;
-// old: pListener->leaveNode( _aStr );
-// old: }
-// old: }
-
-void TestResult::enterNode(const char* _sNode)
-{
- ExclusiveZone zone( m_syncObject );
- m_aCurrentNodeNames.push_back(std::string(_sNode));
-}
-
-void TestResult::leaveNode(const char* /*_sNode*/)
-{
- ExclusiveZone zone( m_syncObject );
- std::string sBack = m_aCurrentNodeNames.back();
- m_aCurrentNodeNames.pop_back();
-
- // due to a -Wall warning, comment out.
- // if (sBack != std::string(_sNode))
- // {
- // volatile int dummy = 0;
- // // problem?!
- // }
-}
-
-std::string TestResult::getNodeName()
-{
- std::string sName;
- for (std::vector<std::string>::const_iterator it = m_aCurrentNodeNames.begin();
- it != m_aCurrentNodeNames.end();
- ++it)
- {
- if (sName.size() != 0)
- {
- sName += ".";
- }
- sName += *it;
- }
- return sName;
-}
-
-// -----------------------------------------------------------------------------
-bool TestResult::isAllowedToExecute(std::string const& _sName)
-{
- return m_aOptionHelper.isAllowedToExecute(getNodeName(), _sName);
-}
-// -----------------------------------------------------------------------------
-bool TestResult::isOptionWhereAmI()
-{
- return m_aOptionHelper.isOptionWhereAmI();
-}
-
-// -----------------------------------------------------------------------------
-void TestResult::print(Outputter&)
-{
-}
-
-} // namespace CppUnit
diff --git a/testshl2/source/cppunit/result/TestResultCollector.cpp b/testshl2/source/cppunit/result/TestResultCollector.cpp
deleted file mode 100644
index e3913219b541..000000000000
--- a/testshl2/source/cppunit/result/TestResultCollector.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_testshl2.hxx"
-
-#include <cppunit/TestFailure.h>
-#include <testshl/result/TestResultCollector.h>
-
-
-namespace CppUnit
-{
-
-
-TestResultCollector::TestResultCollector( TestResult* _pResult, SynchronizationObject *syncObject )
- : TestSucessListener( syncObject ),
- m_pResult(_pResult),
- m_testErrors(0)
-{
- reset();
-}
-
-
-TestResultCollector::~TestResultCollector()
-{
- TestFailures::iterator itFailure = m_failures.begin();
- while ( itFailure != m_failures.end() )
- {
- TestFailureEnvelope *pEnvelope = *itFailure++;
- TestFailure *pFailure = pEnvelope->getTestFailure();
- delete pFailure;
- }
-}
-
-
-void
-TestResultCollector::reset()
-{
- TestSucessListener::reset();
-
- ExclusiveZone zone( m_syncObject );
- m_testErrors = 0;
- m_tests.clear();
- m_failures.clear();
-}
-
-
-void
-TestResultCollector::startTest( Test *test )
-{
- ExclusiveZone zone (m_syncObject);
-
- m_tests.push_back( new TestEnvelope(test, m_pResult->getNodeName()) );
-}
-
-void
-TestResultCollector::endTest( Test * )
-{
- // ExclusiveZone zone (m_syncObject);
- // Nothing!
-}
-
-
-void
-TestResultCollector::addFailure( const TestFailure &failure )
-{
- TestSucessListener::addFailure( failure );
-
- ExclusiveZone zone( m_syncObject );
- if ( failure.isError() )
- ++m_testErrors;
- m_failures.push_back( new TestFailureEnvelope(failure.clone(), m_pResult->getNodeName()) );
-}
-
-
-/// Gets the number of run tests.
-int
-TestResultCollector::runTests() const
-{
- ExclusiveZone zone( m_syncObject );
- return m_tests.size();
-}
-
-
-/// Gets the number of detected errors (uncaught exception).
-int
-TestResultCollector::testErrors() const
-{
- ExclusiveZone zone( m_syncObject );
- return m_testErrors;
-}
-
-
-/// Gets the number of detected failures (failed assertion).
-int
-TestResultCollector::testFailures() const
-{
- ExclusiveZone zone( m_syncObject );
- return m_failures.size() - m_testErrors;
-}
-
-
-/// Gets the total number of detected failures.
-int
-TestResultCollector::testFailuresTotal() const
-{
- ExclusiveZone zone( m_syncObject );
- return m_failures.size();
-}
-
-
-/// Returns a the list failures (random access collection).
-const TestResultCollector::TestFailures &
-TestResultCollector::failures() const
-{
- ExclusiveZone zone( m_syncObject );
- return m_failures;
-}
-
-
-const TestResultCollector::Tests &
-TestResultCollector::tests() const
-{
- ExclusiveZone zone( m_syncObject );
- return m_tests;
-}
-
-void TestResultCollector::addInfo(Test *_pTest, const char* _sInfo)
-{
- ExclusiveZone zone( m_syncObject );
- m_aInfos.push_back(new TestInfo(_pTest, _sInfo));
-}
-
-std::string TestResultCollector::getInfo(Test *_pTest)
-{
- for (TestInfos::const_iterator it = m_aInfos.begin();
- it != m_aInfos.end();
- ++it)
- {
- TestInfo *pInfo = *it;
- Test *pTest = pInfo->getTest();
- if (pTest == _pTest)
- {
- std::string sInfo = pInfo->getString();
- return sInfo;
- }
- }
- return std::string();
-}
-
-
-} // namespace CppUnit
-
diff --git a/testshl2/source/cppunit/result/TestSucessListener.cpp b/testshl2/source/cppunit/result/TestSucessListener.cpp
deleted file mode 100644
index d8f8268f09aa..000000000000
--- a/testshl2/source/cppunit/result/TestSucessListener.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_testshl2.hxx"
-
-
-#include <testshl/result/TestSucessListener.h>
-
-
-
-namespace CppUnit
-{
-
-
-TestSucessListener::TestSucessListener( SynchronizationObject *syncObject )
- : SynchronizedObject( syncObject )
- , m_sucess( true )
-{
-}
-
-
-TestSucessListener::~TestSucessListener()
-{
-}
-
-
-void
-TestSucessListener::reset()
-{
- ExclusiveZone zone( m_syncObject );
- m_sucess = true;
-}
-
-
-void
-TestSucessListener::addFailure( const TestFailure & )
-{
- ExclusiveZone zone( m_syncObject );
- m_sucess = false;
-}
-
-
-bool
-TestSucessListener::wasSuccessful() const
-{
- ExclusiveZone zone( m_syncObject );
- return m_sucess;
-}
-
-
-} // namespace CppUnit
-
diff --git a/testshl2/source/cppunit/result/TextTestResult.cpp b/testshl2/source/cppunit/result/TextTestResult.cpp
deleted file mode 100644
index 2ad271ded7de..000000000000
--- a/testshl2/source/cppunit/result/TextTestResult.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_testshl2.hxx"
-
-#include <cppunit/Exception.h>
-#include <cppunit/NotEqualException.h>
-#include <cppunit/Test.h>
-#include <cppunit/TestFailure.h>
-#include <testshl/result/TextTestResult.h>
-// #include <TextTestResult.h>
-//!io #include <iostream>
-
-namespace CppUnit {
-
-
-TextTestResult::TextTestResult(GetOpt& _aOptions)
- :TestResult(_aOptions),
- m_aResulter(this)
-{
- addListener( &m_aResulter );
-}
-
-
-void
-TextTestResult::addFailure( const TestFailure &failure )
-{
- TestResult::addFailure( failure );
- // std::cerr << ( failure.isError() ? "E" : "F" );
- if (failure.isError())
- fprintf(stderr, "E");
- else
- fprintf(stderr, "F");
-}
-
-
-void
-TextTestResult::startTest( Test *test )
-{
- TestResult::startTest (test);
- // std::cerr << ".";
- fprintf(stderr, ".");
-}
-
-void TextTestResult::endTest( Test *test )
-{
- TestResult::endTest (test);
-}
-
-
-void
-TextTestResult::printFailures( std::ostream &stream )
-{
- TestResultCollector::TestFailures::const_iterator itFailure = m_aResulter.failures().begin();
- int failureNumber = 1;
- while ( itFailure != m_aResulter.failures().end() )
- {
- stream << std::endl;
- TestFailure *pFailure= (*itFailure++)->getTestFailure();
- printFailure( pFailure, failureNumber++, stream );
- }
-}
-
-
-void
-TextTestResult::printFailure( TestFailure *failure,
- int failureNumber,
- std::ostream &stream )
-{
- printFailureListMark( failureNumber, stream );
- stream << ' ';
- printFailureTestName( failure, stream );
- stream << ' ';
- printFailureType( failure, stream );
- stream << ' ';
- printFailureLocation( failure->sourceLine(), stream );
- stream << std::endl;
- printFailureDetail( failure->thrownException(), stream );
- stream << std::endl;
-}
-
-
-void
-TextTestResult::printFailureListMark( int failureNumber,
- std::ostream &stream )
-{
- stream << failureNumber << ")";
-}
-
-
-void
-TextTestResult::printFailureTestName( TestFailure *failure,
- std::ostream &stream )
-{
- Test* pTest = failure->failedTest();
- stream << "test: " << pTest->getName();
-}
-
-
-void
-TextTestResult::printFailureType( TestFailure *failure,
- std::ostream &stream )
-{
- stream << "("
- << (failure->isError() ? "E" : "F")
- << ")";
-}
-
-
-void
-TextTestResult::printFailureLocation( SourceLine sourceLine,
- std::ostream &stream )
-{
- if ( !sourceLine.isValid() )
- return;
-
- stream << "line: " << sourceLine.lineNumber()
- << ' ' << sourceLine.fileName();
-}
-
-
-void
-TextTestResult::printFailureDetail( Exception *thrownException,
- std::ostream &stream )
-{
- if ( thrownException->isInstanceOf( NotEqualException::type() ) )
- {
- NotEqualException *e = (NotEqualException*)thrownException;
- stream << "expected: " << e->expectedValue() << std::endl
- << "but was: " << e->actualValue();
- if ( !e->additionalMessage().empty() )
- {
- stream << std::endl;
- stream << "additional message:" << std::endl
- << e->additionalMessage();
- }
- }
- else
- {
- stream << " \"" << thrownException->what() << "\"";
- }
-}
-
-
-void
-TextTestResult::print( std::ostream& stream )
-{
- printHeader( stream );
- stream << std::endl;
- printFailures( stream );
-}
-
-
-void
-TextTestResult::printHeader( std::ostream &stream )
-{
- if (m_aResulter.wasSuccessful ())
- stream << std::endl << "OK (" << m_aResulter.runTests () << " tests)"
- << std::endl;
- else
- {
- stream << std::endl;
- printFailureWarning( stream );
- printStatistics( stream );
- }
-}
-
-
-void
-TextTestResult::printFailureWarning( std::ostream &stream )
-{
- stream << "!!!FAILURES!!!" << std::endl;
-}
-
-
-void
-TextTestResult::printStatistics( std::ostream &stream )
-{
- stream << "Test Results:" << std::endl;
-
- stream << "Run: " << m_aResulter.runTests()
- << " Failures: " << m_aResulter.testFailures()
- << " Errors: " << m_aResulter.testErrors()
- << std::endl;
-}
-
-
-std::ostream &
-operator <<( std::ostream &stream,
- TextTestResult &result )
-{
- result.print (stream); return stream;
-}
-
-
-} // namespace CppUnit
diff --git a/testshl2/source/cppunit/result/emacsTestResult.cxx b/testshl2/source/cppunit/result/emacsTestResult.cxx
deleted file mode 100644
index 4a4d57b6cee6..000000000000
--- a/testshl2/source/cppunit/result/emacsTestResult.cxx
+++ /dev/null
@@ -1,190 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdlib.h>
-
-#include <map>
-#include <cppunit/Exception.h>
-#include <cppunit/NotEqualException.h>
-#include <cppunit/Test.h>
-#include <cppunit/TestFailure.h>
-#include <testshl/result/emacsTestResult.hxx>
-// #include <TextTestResult.h>
-//!io #include <iostream>
-#include <string>
-
-#include <rtl/string.hxx>
-#include "testshl/result/outputter.hxx"
-
-namespace CppUnit {
-
- emacsTestResult::emacsTestResult(GetOpt & _aOptions)
- :TestResult(_aOptions),
- m_aOptions(_aOptions),
- m_aResulter(this)
- {
- addListener( &m_aResulter );
- }
-
- //# struct ltstr
- //# {
- //# bool operator()(const CppUnit::Test* p1, const CppUnit::Test* p2) const
- //# {
- //# return p1 < p2;
- //# }
- //# };
- //# typedef std::map<CppUnit::Test*, bool, ltstr> TestPtrList;
-
- void
- emacsTestResult::print( Outputter& stream )
- {
- printHeader( stream );
- // stream << std::endl;
- // printFailures( stream );
-
- // TestPtrList aFailedTests;
-
- for (TestResultCollector::TestFailures::const_iterator it2 = m_aResulter.failures().begin();
- it2 != m_aResulter.failures().end();
- ++it2)
- {
- TestFailureEnvelope *pEnvelop = *it2;
- TestFailure *pFailure = pEnvelop->getTestFailure();
- std::string sNodeName = pEnvelop->getString();
-
- // aFailedTests[ pFailure->failedTest() ] = true;
-
- printFailureLine(stream, pFailure, sNodeName);
- }
-
- // only errors are from interest here
- //# for (TestResultCollector::Tests::const_iterator it = m_aResulter.tests().begin();
- //# it != m_aResulter.tests().end();
- //# ++it)
- //# {
- //# TestEnvelope *pEnvelop = *it;
- //# Test* pTest = pEnvelop->getTest();
- //# std::string sNodeName = pEnvelop->getString();
- //#
- //# if (aFailedTests.find(pTest) == aFailedTests.end())
- //# {
- //# std::string sInfo = m_aResulter.getInfo(pTest);
- //# printTestLine(stream, pTest, sNodeName, sInfo);
- //# }
- //# }
- stream << "Test #PASSED#" << Outputter::endl();
- }
-
-
- void
- emacsTestResult::printHeader( Outputter &stream )
- {
- std::string sDate(m_aOptionHelper.createDateTag());
- stream << sDate << Outputter::endl();
- }
-
- void
- emacsTestResult::printFailureLine( Outputter &stream, TestFailure *_pFailure, std::string const& _sNodeName)
- {
- std::string aName;
- aName += _sNodeName;
- aName += ".";
- aName += _pFailure->failedTestName();
-
- SourceLine aLine = _pFailure->sourceLine();
- sal_Int32 nLine = -1;
- std::string sFilename;
- if (aLine.isValid())
- {
- nLine = aLine.lineNumber();
- sFilename = aLine.fileName();
- }
-
- Exception *pExp = _pFailure->thrownException();
- std::string sWhat;
- if (pExp)
- {
- sWhat = pExp->what();
- }
-
- stream << sFilename;
- stream << ":";
- stream << nLine;
- stream << ":";
-
- stream << aName;
- stream << ";#FAILED#";
- // ErrorType::num eErr = _pFailure->getErrorType();
- //# if (isErr)
- //# stream << "FAILED#;";
- //# else
- //# stream << "ERROR#;";
-
- stream << sWhat;
- stream << Outputter::endl();
- }
-
- //# void
- //# emacsTestResult::printTestLine( Outputter &stream, Test* _pTest, std::string const& _sNodeName, std::string const& _sInfo)
- //# {
- //# std::string aName;
- //# aName += _sNodeName;
- //# aName += ".";
- //# aName += _pTest->getName();
- //#
- //# stream << aName;
- //# stream << ";";
- //# stream << _sInfo << "#";
- //# stream << "OK#";
- //# stream << std::endl;
- //# }
-
-
-//# void
-//# emacsTestResult::printStatistics( Outputter &stream )
-//# {
-//# stream << "Test Results:" << std::endl;
-//#
-//# stream << "Run: " << runTests()
-//# << " Failures: " << testFailures()
-//# << " Errors: " << testErrors()
-//# << std::endl;
-//# }
-
-
- Outputter &
- operator <<( Outputter &stream,
- emacsTestResult &result )
- {
- result.print (stream); return stream;
- }
-
-
-} // namespace CppUnit
diff --git a/testshl2/source/cppunit/result/log.cxx b/testshl2/source/cppunit/result/log.cxx
deleted file mode 100644
index 3279d1b2091e..000000000000
--- a/testshl2/source/cppunit/result/log.cxx
+++ /dev/null
@@ -1,122 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include "testshl/log.hxx"
-
-// #include <hash_map>
-// #include <list>
-// #include <set>
-
-using namespace std;
-
-::osl::FileBase::RC Log::open( sal_Bool append ) {
-
- ::osl::FileBase::RC ret;
-
- if ( ! append ) {
- ret = ::osl::File::remove( m_logurl );
- }
-
- if( m_logfile->open( OpenFlag_Write ) == ::osl::FileBase::E_NOENT ) {
- ret = m_logfile->open( OpenFlag_Write | OpenFlag_Create );
- }
- else {
- ret = m_logfile->setPos( Pos_End, 0 );
- }
- return ret;
-}
-
-::osl::FileBase::RC Log::write( const sal_Char* buf, sal_Bool v ) {
- sal_uInt64 uBytes=0;
- sal_uInt32 len = 0;
- const sal_Char* ptr = buf;
-
- if( ptr ) {
- while( *ptr++ ) len++;
- }
-
- if ( v ) {
- // cout << buf << flush;
- printf("%s", buf);
- }
- return m_logfile->write( buf, len , uBytes );
-}
-
-::osl::FileBase::RC Log::write( const rtl::OString& buf, sal_Bool v ) {
- sal_uInt64 uBytes=0;
- if ( v ) {
- // cout << buf.getStr() << flush;
- printf("%s", buf.getStr());
- }
- return m_logfile->write( buf.getStr(), buf.getLength(), uBytes );
-}
-/*
-// LLA: due to a problem with sal/OUStingBuffer getLength() which isn't const, this
-// is so not compilable.
-::osl::FileBase::RC Log::write( rtl::OStringBuffer const& buf, sal_Bool v ) {
- sal_uInt64 uBytes=0;
- if ( v ) {
- cout << buf.getStr() << flush;
- }
- return m_logfile->write( buf.getStr(), buf.getLength(), uBytes );
-}
-*/
-::osl::FileBase::RC Log::write( const rtl::OUString& buf,
- rtl_TextEncoding tenc, sal_Bool v ) {
- sal_uInt64 uBytes=0;
- if ( ! tenc ) {
- tenc = RTL_TEXTENCODING_ASCII_US;
- }
- rtl::OStringBuffer osbuf(
- rtl::OUStringToOString( buf, tenc ).getStr() );
-
- if ( v ) {
- // cout << osbuf.getStr() << flush;
- printf("%s", osbuf.getStr());
- }
- return m_logfile->write( osbuf.getStr(), osbuf.getLength(), uBytes );
-}
-
-Log &operator <<( Log &_aLog, const sal_Char * _sValue )
-{
- _aLog.write(_sValue); return _aLog;
-}
-Log &operator <<( Log &_aLog, rtl::OString const& _sValue )
-{
- _aLog.write(_sValue); return _aLog;
-}
-Log &operator <<( Log &_aLog, rtl::OUString const& _sValue )
-{
- _aLog.write(_sValue); return _aLog;
-}
-//! Log &operator <<( Log &_aLog, rtl::OStringBuffer const& _sValue )
-//! {
-//! _aLog.write(_sValue); return _aLog;
-//! }
diff --git a/testshl2/source/cppunit/result/makefile.mk b/testshl2/source/cppunit/result/makefile.mk
deleted file mode 100644
index 59ff333726db..000000000000
--- a/testshl2/source/cppunit/result/makefile.mk
+++ /dev/null
@@ -1,79 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=testshl2
-TARGET=c5t_testresult
-LIBTARGET=NO
-ENABLE_EXCEPTIONS=TRUE
-# ENABLE_RTTI=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-# --- Files --------------------------------------------------------
-
-# CXXFILES = \
-# querytemplate.cxx \
-# stringhelper.cxx
-
-# ENVCFLAGSCXX+=-DCPPUNIT_BUILD_DLL
-SLOFILES = \
- $(SLO)$/SynchronizedObject.obj \
- $(SLO)$/TestResult.obj \
- $(SLO)$/TestResultCollector.obj \
- $(SLO)$/TestSucessListener.obj \
- $(SLO)$/emacsTestResult.obj \
- $(SLO)$/log.obj \
- $(SLO)$/optionhelper.obj \
- $(SLO)$/outputter.obj \
- $(SLO)$/signal.obj \
- $(SLO)$/testshlTestResult.obj \
- $(SLO)$/treswrapper.obj
-
-# currently unused
-# $(SLO)$/TextTestResult.obj
-
-LIB1TARGET= $(LB)$/$(TARGET).lib
-LIB1OBJFILES= $(SLOFILES)
-
-.IF "$(GUI)"=="WNT"
-.IF "$(COM)"=="GCC"
-LIB1ARCHIV=$(LB)$/lib$(TARGET)$(DLLPOSTFIX).a
-.ENDIF
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-LIB1ARCHIV=$(LB)$/lib$(TARGET)$(DLLPOSTFIX).a
-.ENDIF
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/testshl2/source/cppunit/result/optionhelper.cxx b/testshl2/source/cppunit/result/optionhelper.cxx
deleted file mode 100644
index 90096c8957e7..000000000000
--- a/testshl2/source/cppunit/result/optionhelper.cxx
+++ /dev/null
@@ -1,314 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include "testshl/result/optionhelper.hxx"
-// #include <sstream>
-// #include <string>
-#include <osl/time.h>
-#include "testshl/cmdlinebits.hxx"
-
-// -----------------------------------------------------------------------------
-
-namespace
-{
- void split( const rtl::OString& opt,
- const rtl::OString& _sSeparator,
- OStringList& optLine )
- {
- optLine.clear();
- // const sal_Int32 cSetLen = cSet.getLength();
- sal_Int32 index = 0;
- sal_Int32 oldIndex = 0;
-
- // sal_Int32 i;
- // sal_Int32 j = 0;
- while ( opt.getLength() > 0)
- {
- // for ( i = 0; i < cSetLen; i++ )
- // {
- index = opt.indexOf( _sSeparator, oldIndex);
- if( index != -1 )
- {
- optLine.push_back( opt.copy( oldIndex, index - oldIndex ) );
- oldIndex = index + _sSeparator.getLength();
- }
- // }
- else // if (index == -1)
- {
- optLine.push_back( opt.copy( oldIndex ) );
- break;
- }
- }
- } ///< split
-
- bool match(OStringList const& _aFilter, OStringList const& _aName)
- {
- OStringList::const_iterator aFilterIter = _aFilter.begin();
- OStringList::const_iterator aValueIter = _aName.begin();
-
- bool bMatch = false;
-
- while (aFilterIter != _aFilter.end() && aValueIter != _aName.end())
- {
- rtl::OString sFilter = *aFilterIter;
- rtl::OString sName = *aValueIter;
-
- if (sFilter == sName)
- {
- bMatch = true;
- ++aFilterIter;
- ++aValueIter;
- }
- else if (sFilter == "*")
- {
- bMatch = true;
- break;
- }
- else
- {
- // Filter does not match
- bMatch = false;
- break;
- }
- }
- return bMatch;
- }
-}
-
-/* static */
-std::string OptionHelper::integerToAscii(sal_Int32 nValue)
-{
- sal_Char cBuf[30];
- sal_Char *pBuf = cBuf;
- sprintf(pBuf, "%d", static_cast<int>(nValue));
-//# std::ostringstream sBuf;
-//# sBuf << nValue;
-// rtl::OString sStr;
-// sStr = rtl::OString::valueOf(nValue);
- return std::string(pBuf);
-}
-
-/* static */
-// if a given String is less then 2 char, add a "0" in front.
-std::string OptionHelper::twoDigits(std::string const& _sValue)
-{
- std::string sBack;
- if (_sValue.length() == 0)
- {
- sBack = "00";
- }
- else if (_sValue.length() == 1)
- {
- sBack = "0";
- sBack += _sValue;
- }
- else
- {
- sBack = _sValue;
- }
- return sBack;
-}
-
-
-std::string OptionHelper::createDateTag(std::string const& _sProjectId, std::string const& _sBuildId)
-{
- TimeValue tmv_system;
- TimeValue tmv_local;
- oslDateTime dt;
- osl_getSystemTime( &tmv_system );
- osl_getLocalTimeFromSystemTime(&tmv_system, &tmv_local);
- osl_getDateTimeFromTimeValue( &tmv_local, &dt );
-
- sal_Int32 nYear = dt.Year;
- sal_Int32 nMonth = dt.Month;
- sal_Int32 nDay = dt.Day;
-
- std::string sDate;
- sDate = "# Current Time: ";
- sDate += std::string(twoDigits(integerToAscii(dt.Hours)));
- sDate += ":";
- sDate += std::string(twoDigits(integerToAscii(dt.Minutes)));
- sDate += ":";
- sDate += std::string(twoDigits(integerToAscii(dt.Seconds)));
- sDate += "\n";
-
- sDate += "[";
-
- // sDate += rtl::OString::valueOf(nYear);
- sDate.append(integerToAscii(nYear));
- sDate += ".";
- if (nMonth < 10)
- sDate += "0";
- // sDate += rtl::OString::valueOf(nMonth);
- sDate.append(integerToAscii(nMonth));
- sDate += ".";
- if (nDay < 10)
- sDate += "0";
- // sDate += rtl::OString::valueOf(nDay);
- sDate += std::string(integerToAscii(nDay));
- sDate += "/";
- sDate += _sProjectId;
- sDate += "/";
- sDate += _sBuildId;
- sDate += "]";
-
- return sDate;
-}
-
-//# rtl::OString createDateTag()
-//# {
-//# TimeValue tmv;
-//# oslDateTime dt;
-//# osl_getSystemTime( &tmv );
-//# osl_getDateTimeFromTimeValue( &tmv, &dt );
-//#
-//# sal_Int32 nYear = dt.Year;
-//# sal_Int32 nMonth = dt.Month;
-//# sal_Int32 nDay = dt.Day;
-//#
-//# rtl::OString sDate("[");
-//# sDate += rtl::OString::valueOf(nYear);
-//# sDate += ".";
-//# if (nMonth < 10)
-//# sDate += "0";
-//# sDate += rtl::OString::valueOf(nMonth);
-//# sDate += ".";
-//# if (nDay < 10)
-//# sDate += "0";
-//# sDate += rtl::OString::valueOf(nDay);
-//# sDate += "//]";
-//#
-//# return sDate;
-//# }
-
-std::string OptionHelper::createDateTag()
-{
- return createDateTag(m_sProjectId, m_sBuildId);
-}
-
-bool OptionHelper::showErrors()
-{
- bool bRetValue = true; // default, show all
- if (m_aOption.hasOpt("-noerrors"))
- {
- bRetValue = false;
- }
- return bRetValue;
-}
-
-bool OptionHelper::showTests()
-{
- bool bRetValue = true; // default, show all
- if (m_aOption.hasOpt("-onlyerrors"))
- {
- bRetValue = false;
- }
- return bRetValue;
-}
-
-// Check which parameter is given for handle the jobs.
-// If no parameter is given, all jobs (tests) will run through
-void OptionHelper::handleJobs()
-{
- // load job file, the file contains the functions which we only want to test.
- if (m_aOption.hasOpt("-jobexclude"))
- {
- rtl::OString sJobFile = m_aOption.getOpt("-jobexclude");
- m_aJobExcludeList.readfile(sJobFile.getStr(), JOB_EXCLUDE_LIST);
- }
-
- if (m_aOption.hasOpt("-jobonly"))
- {
- rtl::OString sJobFile = m_aOption.getOpt("-jobonly");
- m_aJobOnlyList.readfile(sJobFile.getStr(), JOB_ONLY_LIST);
- }
-
- //
- if (m_aOption.hasOpt("-jobfilter"))
- {
- rtl::OString sJobFilter = m_aOption.getOpt("-jobfilter");
- split(sJobFilter, ".", m_aJobFilter);
- }
-}
-
-// -----------------------------------------------------------------------------
-// Here will be decide, if a job/test will execute or not.
-// therefore exist some lists, in which stay all jobs (positive list) or a list (negative list) which jobs should not execute
-// or if only specific jobs should execute by a given filter
-
-bool OptionHelper::isAllowedToExecute(std::string const& _sNodeName, std::string const& _sName)
-{
- std::string sJobName = _sNodeName + "." + _sName;
- // t_print(T_VERBOSE, "Jobname %s\n", sJobName.c_str());
- if (isOnlyShowJobs()) // true, if parameter -onlyshowjob
- {
- m_aJobOnlyList.setJobListEntry(sJobName, JOB_ACCESS);
- return false;
- }
-
- if (m_aJobOnlyList.size()) // >0 if parameter -jobonly
- {
- if (m_aJobOnlyList.getJobListEntry(sJobName) != JOB_NOT_FOUND)
- {
- // job entry found, mark as accessed
- m_aJobOnlyList.setJobListEntry(sJobName, JOB_ACCESS);
- return true;
- }
- return false;
- }
- else if (m_aJobFilter.size() > 0) // >0 if parameter -jobfilter
- {
- OStringList aSplitName;
- split(sJobName.c_str(), ".", aSplitName);
- if (! match(m_aJobFilter, aSplitName))
- {
- t_print(T_VERBOSE, "job: '%s' filtered by [-jobfilter]\n", sJobName.c_str());
- return false;
- }
- }
- else if (m_aJobExcludeList.size() > 0) // >0 if parameter -jobexclude
- {
- if (m_aJobExcludeList.getJobListEntry(sJobName) != JOB_NOT_FOUND)
- {
- // job entry found, this job should not executed, so return false
- t_print(T_VERBOSE, "job: '%s' filtered by [-jobexclude]\n", sJobName.c_str());
- return false;
- }
- // m_aJobOnlyList.setJobListEntry(sJobName, JOB_ACCESS);
- return true;
- }
- else
- {
- //! not handled yet
- }
-
- return true;
-}
-
diff --git a/testshl2/source/cppunit/result/outputter.cxx b/testshl2/source/cppunit/result/outputter.cxx
deleted file mode 100644
index 182b9db683e9..000000000000
--- a/testshl2/source/cppunit/result/outputter.cxx
+++ /dev/null
@@ -1,103 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-//
-#include <string>
-#include <sal/types.h>
-#include "testshl/result/outputter.hxx"
-
-// -----------------------------------------------------------------------------
-
-Outputter::~Outputter()
-{
- // delete m_pLog;
-}
-
-void Outputter::writeToAll(const sal_Char* _sCharStr)
-{
- // std::cout << _sCharStr;
- if (m_pStream)
- {
- *m_pStream << _sCharStr;
- }
- if (m_pLog.get())
- {
- m_pLog->write(_sCharStr);
- }
-}
-
-void Outputter::write(const sal_Char* _sCharStr)
-{
- writeToAll(_sCharStr);
-}
-
-void Outputter::write(std::string const& _sStr)
-{
- writeToAll(_sStr.c_str());
-}
-
-void Outputter::write(sal_Int32 _nValue)
-{
- sal_Char cBuf[20];
- sal_Char* pBuf = cBuf;
- sprintf(pBuf, "%d", SAL_STATIC_CAST(int, _nValue));
- writeToAll(pBuf);
-}
-
-// -----------------------------------------------------------------------------
-
-Outputter& operator <<( Outputter &_aStreamWrapper, const sal_Char* _sValue)
-{
- _aStreamWrapper.write(_sValue);
- return _aStreamWrapper;
-}
-
-Outputter& operator <<( Outputter &_aStreamWrapper, std::string const& _sValue)
-{
- _aStreamWrapper.write(_sValue);
- return _aStreamWrapper;
-}
-
-Outputter& operator <<( Outputter &_aStreamWrapper, sal_Int32 _nValue)
-{
- _aStreamWrapper.write(_nValue);
- return _aStreamWrapper;
-}
-
-//# Outputter& operator <<( Outputter &_aStreamWrapper, double )
-//# {
-//# return _aStreamWrapper;
-//# }
-
-Outputter& operator <<( Outputter &_aStreamWrapper, Outputter::endl const&)
-{
- _aStreamWrapper.write("\n");
- return _aStreamWrapper;
-}
diff --git a/testshl2/source/cppunit/result/signal.cxx b/testshl2/source/cppunit/result/signal.cxx
deleted file mode 100644
index 7c96dcfe7589..000000000000
--- a/testshl2/source/cppunit/result/signal.cxx
+++ /dev/null
@@ -1,996 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#if (defined UNX) || (defined OS2)
-#include <signal.h>
-#include <errno.h>
-#endif
-
-#include <fstream>
-#include <vector>
-#include <hash_map>
-
-#include <rtl/tres.h>
-#include <rtl/string.hxx>
-
-#include "testshl/autoregisterhelper.hxx"
-#include "testshl/getopt.hxx"
-#include "signal.hxx"
-#include <cppunit/tagvalues.hxx>
-#include <testshl/taghelper.hxx>
-#include <unistd.h>
-#include "testshl/filehelper.hxx"
-#include <testshl/result/TestResult.h>
-#include "testshl/signaltest.h"
-#include "cppunit/Exception.h"
-
-#ifdef WNT
-#include "testshl/winstuff.hxx"
-#endif
-
-// typedef std::vector<std::string> StringList;
-// StringList sCurrentNodeName;
-CppUnit::TestResult *pTestResult = NULL;
-std::string sSignalFile;
-
-typedef std::hash_map< std::string, int > HashMap;
-HashMap m_aSignalHash;
-bool bSignalsCached = false;
-bool bDoNotTouchSignalFile = false;
-
-// -----------------------------------------------------------------------------
-
-// return 'true' if signalfile doesn't exist.
-// else 'false'
-bool existsSignalFile(std::string const& _sSignalFilename)
-{
- FILE* pFile = fopen(_sSignalFilename.c_str(), "r");
- if (!pFile)
- {
- return false;
- }
- fprintf(stderr, "'%s' exists.\n", _sSignalFilename.c_str());
- fclose(pFile);
- return true;
-}
-
-// -----------------------------------------------------------------------------
-void createEmptySignalFile(std::string const& _sSignalFilename)
-{
- FILE* pFile = fopen(_sSignalFilename.c_str(), "w");
- if (!pFile)
- {
- fprintf(stderr, "error: Could not create signal helper file %s for signal info.\n", _sSignalFilename.c_str());
- }
- else
- {
- fprintf(pFile, "# This is an auto generated helper file for signal handling.\n");
- fprintf(pFile, "# An entry start by '#' is a comment.\n");
- fprintf(pFile, "# All other are test functions which have abort, before this line is removed.\n");
- fprintf(pFile, "# So you have to check this functions by hand.\n");
-
- fclose(pFile);
- }
-}
-
-// -----------------------------------------------------------------------------
-/** get Current PID.
-*/
-inline ::rtl::OUString getCurrentPID( )
-{
- //~ Get current PID and turn it into OUString;
- sal_uInt32 nPID = 0;
-#ifdef WNT
- nPID = WinGetCurrentProcessId();
-#else
- nPID = getpid();
-#endif
- return ( ::rtl::OUString::valueOf( static_cast<long>(nPID ) ) );
-}
-// -----------------------------------------------------------------------------
-static std::string integerToAscii(sal_uInt32 nValue)
-{
- sal_Char cBuf[30];
- sal_Char *pBuf = cBuf;
- sprintf(pBuf, "%d", static_cast<unsigned int>(nValue));
- return std::string(pBuf);
-}
-void my_sleep(int sec);
-
-// -----------------------------------------------------------------------------
-void setSignalFilename(GetOpt & opt)
-{
- if (opt.hasOpt("-dntsf") || opt.hasOpt("-donottouchsignalfile"))
- {
- // special feature, for debugging, so the signal file will not manipulate.
- // but create, if no one exist.
- bDoNotTouchSignalFile = true;
- }
-
- if (opt.hasOpt("-sf") || opt.hasOpt("-signalfile"))
- {
- if (opt.hasOpt("-sf"))
- {
- sSignalFile = opt.getOpt("-sf");
- }
- else if (opt.hasOpt("-signalfile"))
- {
- sSignalFile = opt.getOpt("-signalfile");
- }
- }
- else
- {
- std::string sPath;
- // std::string sPath(FileHelper::getTempPath());
- std::string sFilename("signalfile");
- std::string sFilenameExt(".txt");
- bool bCanQuitLoop = true;
- do
- {
-
-// #ifdef WNT
-// sPath += "\\";
-// #endif
-// #ifdef UNX
-// sPath += "/";
-// #endif
- sPath = sFilename;
- // BUG: i72675
- // add "_12345" where 12345 is the current process ID
-
- TimeValue aTimeValue;
- osl_getSystemTime(&aTimeValue);
-
- sPath += "_";
- sPath += integerToAscii(aTimeValue.Seconds);
- // rtl::OUString suPID = getCurrentPID();
- // rtl::OString sPID = rtl::OUStringToOString(suPID, RTL_TEXTENCODING_ASCII_US);
- // sPath += sPID.getStr();
- sPath += sFilenameExt;
- bCanQuitLoop = true;
- if (existsSignalFile(sPath))
- {
- // there is already a signal file, wait a second, choose an other one.
- my_sleep(1);
- bCanQuitLoop = false;
- }
- }
- while (!(bCanQuitLoop));
-
- sSignalFile = sPath;
- fprintf(stderr, "Use default signal file name '%s'\n", sSignalFile.c_str());
- }
-
- if (opt.hasOpt("-dnrmsf"))
- {
- fprintf(stderr, "'Don't remove signal file' (-dnrmsf) is set.\n");
- }
- else
- {
- if (bDoNotTouchSignalFile == true)
- {
- fprintf(stderr, "warning: 'Don't touch signal file' parameter (-dntsf) is set, will not remove existing signal file.\n");
- }
- else
- {
- // remove signalfile
- createEmptySignalFile(sSignalFile);
- }
- }
-}
-
-// -----------------------------------------------------------------------------
-bool doNotTouchSignalFile() { return bDoNotTouchSignalFile; }
-
-// -----------------------------------------------------------------------------
-std::string buildTestFunctionName(std::string const& _sName)
-{
- std::string sName;
- if (pTestResult)
- {
- sName = pTestResult->getNodeName();
- sName += ".";
- }
-
-/*
- for (StringList::const_iterator it = sCurrentNodeName.begin();
- it != sCurrentNodeName.end();
- ++it)
- {
- sName += *it;
- sName += ".";
- }
-*/
- sName += _sName;
-
- return sName;
-}
-// -----------------------------------------------------------------------------
-// old: void executionPushName(std::string const& _sName)
-// old: {
-// old: sCurrentNodeName.push_back(_sName);
-// old: }
-// old: void executionPopName()
-// old: {
-// old: sCurrentNodeName.pop_back();
-// old: }
-// old:
-
-// -----------------------------------------------------------------------------
-// ------------------------------ Signal Handling ------------------------------
-// -----------------------------------------------------------------------------
-
-// std::string sLastTestFunctionName;
-
-std::string getSignalName(sal_Int32 nSignalNo);
-// -----------------------------------------------------------------------------
-
-std::string getSignalFilename()
-{
- return sSignalFile;
-}
-
-// -----------------------------------------------------------------------------
-// void storeNoSignal(std::string const& _sTestName)
-// {
- // sLastTestFunctionName = buildTestFunctionName(_sTestName);
- // std::ofstream out(getSignalFilename().c_str(), std::ios::out);
- // out << NO_SIGNAL << std::endl; // no signal!
-// }
-
-void markSignalAsAlreadyDone(sal_Int32 _nSignalNo)
-{
- // std::ofstream out(getSignalFilename().c_str(), std::ios::out | std::ios::app);
- FILE *out = fopen(getSignalFilename().c_str(), "a");
- if (out != NULL)
- {
-//# out << "# the previous test function creates signal: "
-//# << getSignalName(_nSignalNo)
-//# << " ("
-//# << _nSignalNo
-//# << ")" << std::endl;
-//# // out << sLastTestFunctionName << std::endl; // SIGNAL!
-
- fprintf(out, "# the previous test function creates signal: %s(%d)\n", getSignalName(_nSignalNo).c_str(), SAL_STATIC_CAST(int, _nSignalNo));
- // fprintf(out, "%s\n", sLastTestFunctionName );
- fclose(out);
- }
- else
- {
- fprintf(stderr, "error: Can't write signal info to file %s \n", getSignalFilename().c_str());
- }
-}
-
-// -----------------------------------------------------------------------------
-
-Signal hasSignaled(std::string const& _sTestName)
-{
- // BACK: true: signal
- // false: nothing
-
- if (bSignalsCached == true)
- {
-
- if (m_aSignalHash.find(buildTestFunctionName(_sTestName)) != m_aSignalHash.end())
- {
- return HAS_SIGNAL;
- }
- return NO_SIGNAL;
- }
-
- std::ifstream in(getSignalFilename().c_str(), std::ios::in);
-
- // std::cout << "Check for signal" << std::endl;
- std::string sLine, sLastLine;
- while (std::getline(in, sLine))
- {
- // std::cout << sTest << std::endl;
- char ch = sLine[0];
- if (isspace(ch) == 0 &&
- sLine.size() > 0)
- {
- if (ch == '#')
- {
- if (sLastLine.size() > 0)
- {
- rtl::OString aStrLine(sLine.c_str());
- sal_Int32 nIdx = aStrLine.indexOf("(") + 1;
- sal_Int32 nIdx2 = aStrLine.indexOf(")");
- sal_Int32 nSignalNo = 0;
- if (nIdx > 0 && nIdx2 > 0)
- {
- rtl::OString sSignalNo = aStrLine.copy(nIdx, nIdx2 - nIdx);
- nSignalNo = sSignalNo.toInt32();
- m_aSignalHash[sLastLine] = nSignalNo;
- }
- sLastLine.clear();
- }
- }
- else
- {
- // if (sTest == buildTestFunctionName(_sTestName))
- m_aSignalHash[sLine] = 1;
- sLastLine = sLine;
- // return HAS_SIGNAL;
- }
- }
- }
-
- bSignalsCached = true;
- return hasSignaled(_sTestName);
- // return NO_SIGNAL;
-}
-
-#ifdef UNX
-
-// -----------------------------------------------------------------------------
-
-void release_signal_Handling();
-
-//# void signalFunction(int value)
-//# {
-//# std::cout << "Signal caught: (" << value << "), please restart." << std::endl;
-//# markSignalAsAlreadyDone();
-//#
-//# release_signal_Handling();
-//# std::cout.flush();
-//# abort();
-//# }
-
-// -----------------------------------------------------------------------------
-extern "C" void SignalHandlerFunction(int _nSignalNo, siginfo_t *, void*)
-{
- // std::cout << "Signal caught: " << getSignalName(_nSignalNo) << " (" << _nSignalNo << "), please restart." << std::endl;
- fprintf(stderr, "Signal caught %s(%d)\n", getSignalName(_nSignalNo).c_str(), _nSignalNo);
- markSignalAsAlreadyDone(_nSignalNo);
-
- release_signal_Handling();
- // std::cout.flush();
- abort();
-}
-
-// -----------------------------------------------------------------------------
-// This is a copy of the osl/signal.c code
-#define ACT_IGNORE 1
-#define ACT_ABORT 2
-#define ACT_EXIT 3
-#define ACT_SYSTEM 4
-#define ACT_HIDE 5
-
-extern "C" {
-static struct SignalAction
-{
- int Signal;
- int Action;
- void (*Handler)(int);
-} Signals[] =
-{
- { SIGHUP, ACT_IGNORE, NULL }, /* hangup */
- { SIGINT, ACT_EXIT, NULL }, /* interrupt (rubout) */
- { SIGQUIT, ACT_ABORT, NULL }, /* quit (ASCII FS) */
- { SIGILL, ACT_SYSTEM, NULL }, /* illegal instruction (not reset when caught) */
-/* changed from ACT_ABOUT to ACT_SYSTEM to try and get collector to run*/
- { SIGTRAP, ACT_ABORT, NULL }, /* trace trap (not reset when caught) */
-#if ( SIGIOT != SIGABRT )
- { SIGIOT, ACT_ABORT, NULL }, /* IOT instruction */
-#endif
-// { SIGABRT, ACT_ABORT, NULL }, /* used by abort, replace SIGIOT in the future */
-#ifdef SIGEMT
- { SIGEMT, ACT_SYSTEM, NULL }, /* EMT instruction */
-/* changed from ACT_ABORT to ACT_SYSTEM to remove handler*/
-/* SIGEMT may also be used by the profiler - so it is probably not a good
- plan to have the new handler use this signal*/
-#endif
- { SIGFPE, ACT_ABORT, NULL }, /* floating point exception */
- { SIGKILL, ACT_SYSTEM, NULL }, /* kill (cannot be caught or ignored) */
- { SIGBUS, ACT_ABORT, NULL }, /* bus error */
- { SIGSEGV, ACT_ABORT, NULL }, /* segmentation violation */
-#ifdef SIGSYS
- { SIGSYS, ACT_ABORT, NULL }, /* bad argument to system call */
-#endif
- { SIGPIPE, ACT_HIDE, NULL }, /* write on a pipe with no one to read it */
- { SIGALRM, ACT_EXIT, NULL }, /* alarm clock */
- { SIGTERM, ACT_EXIT, NULL }, /* software termination signal from kill */
- { SIGUSR1, ACT_SYSTEM, NULL }, /* user defined signal 1 */
- { SIGUSR2, ACT_SYSTEM, NULL }, /* user defined signal 2 */
- { SIGCHLD, ACT_SYSTEM, NULL }, /* child status change */
-#ifdef SIGPWR
- { SIGPWR, ACT_IGNORE, NULL }, /* power-fail restart */
-#endif
- { SIGWINCH, ACT_IGNORE, NULL }, /* window size change */
- { SIGURG, ACT_EXIT, NULL }, /* urgent socket condition */
-#ifdef SIGPOLL
- { SIGPOLL, ACT_EXIT, NULL }, /* pollable event occured */
-#endif
- { SIGSTOP, ACT_SYSTEM, NULL }, /* stop (cannot be caught or ignored) */
- { SIGTSTP, ACT_SYSTEM, NULL }, /* user stop requested from tty */
- { SIGCONT, ACT_SYSTEM, NULL }, /* stopped process has been continued */
- { SIGTTIN, ACT_SYSTEM, NULL }, /* background tty read attempted */
- { SIGTTOU, ACT_SYSTEM, NULL }, /* background tty write attempted */
- { SIGVTALRM, ACT_EXIT, NULL }, /* virtual timer expired */
- { SIGPROF, ACT_SYSTEM, NULL }, /* profiling timer expired */
-/*Change from ACT_EXIT to ACT_SYSTEM for SIGPROF is so that profiling signals do
- not get taken by the new handler - the new handler does not pass on context
- information which causes 'collect' to crash. This is a way of avoiding
- what looks like a bug in the new handler*/
- { SIGXCPU, ACT_ABORT, NULL }, /* exceeded cpu limit */
- { SIGXFSZ, ACT_ABORT, NULL } /* exceeded file size limit */
-};
-}
-
-const int NoSignals = sizeof(Signals) / sizeof(struct SignalAction);
-
-#endif /* UNX */
-
-// -----------------------------------------------------------------------------
-void init_signal_Handling(CppUnit::TestResult *_pResult)
-{
- pTestResult = _pResult;
-#ifdef UNX
-
-// signal(SIGSEGV, signalFunction);
- // signal(SIGSEGV, signalFunction);
- // signal(SIGFPE, signalFunction);
-
-// signal(1, signalFunction);
- // struct sigaction action, oldaction;
- // action.sa_sigaction = signalFunction2;
- // action.sa_flags = SA_ONESHOT /* | SA_SIGINFO */;
-
- struct sigaction act;
- struct sigaction oact;
-
- // act.sa_handler = SignalHandlerFunction;
- act.sa_flags = SA_RESTART;
- // act.sa_flags = SA_ONESHOT /* | SA_SIGINFO */;
- act.sa_sigaction = SignalHandlerFunction;
-
- sigfillset(&(act.sa_mask));
-
- /* Initialize the rest of the signals */
- for (int i = 0; i < NoSignals; i++)
- {
- if (Signals[i].Action != ACT_SYSTEM)
- {
- if (Signals[i].Action == ACT_HIDE)
- {
- struct sigaction ign;
-
- ign.sa_handler = SIG_IGN;
- ign.sa_flags = 0;
- sigemptyset(&ign.sa_mask);
-
- if (sigaction(Signals[i].Signal, &ign, &oact) == 0)
- Signals[i].Handler = oact.sa_handler;
- else
- Signals[i].Handler = SIG_DFL;
- }
- else
- if (sigaction(Signals[i].Signal, &act, &oact) == 0)
- Signals[i].Handler = oact.sa_handler;
- else
- Signals[i].Handler = SIG_DFL;
- }
- }
-#endif
-
- // ------------ signal helper file must exist -----------------
- FILE* pFile = fopen(getSignalFilename().c_str(), "r");
- if (!pFile)
- {
- createEmptySignalFile( getSignalFilename() );
- }
- else
- {
- fclose(pFile);
- }
-}
-
-// -----------------------------------------------------------------------------
-void release_signal_Handling()
-{
- // frees all signals
-#ifdef UNX
- int i;
- struct sigaction act;
-
- act.sa_flags = 0;
- sigemptyset(&(act.sa_mask));
-
- /* Initialize the rest of the signals */
- for (i = NoSignals - 1; i >= 0; i--)
- {
- if (Signals[i].Action != ACT_SYSTEM)
- {
- act.sa_handler = Signals[i].Handler;
-
- sigaction(Signals[i].Signal, &act, NULL);
- }
- }
-#endif
-}
-
-// -----------------------------------------------------------------------------
-Signal signalCheck(CppUnit::TestResult* _pResult, std::string const& _sTestName)
-{
- // BACK: HAS_SIGNAL: the test has already done and signaled
- if (hasSignaled(_sTestName) == HAS_SIGNAL)
- {
- // std::cout << "The Test '" << buildTestFunctionName(_sTestName) << "' is marked as signaled." << std::endl;
- std::string sTestFunctionName = buildTestFunctionName(_sTestName);
- fprintf(stderr, "The Test '%s' is marked as signaled.\n", sTestFunctionName.c_str());
- if (_pResult)
- {
- CppUnit::SignalTest *pTest = new CppUnit::SignalTest(_sTestName);
-
- std::string sErrorText = "Function is marked as signaled: ";
- sal_Int32 nSignalNo = m_aSignalHash[sTestFunctionName];
- sErrorText += getSignalName(nSignalNo);
- sErrorText += " (";
- sErrorText += OptionHelper::integerToAscii(nSignalNo);
- sErrorText += ")";
-
- _pResult->addError(pTest, new CppUnit::SignalException(sErrorText), ErrorType::ET_SIGNAL);
- }
- return HAS_SIGNAL;
- }
-
- // storeNoSignal(_sTestName);
- return NO_SIGNAL;
-}
-
-// -----------------------------------------------------------------------------
-bool copyFile(std::string const& _sFrom, std::string const& _sTo)
-{
- bool bRetValue = false;
- const int MAXBUFSIZE = 1024;
- char buff[MAXBUFSIZE];
- FILE *in = fopen(_sFrom.c_str(), "r");
- if (in == NULL)
- {
- fprintf(stderr, "error: Can't open file %s for read to copy.\n", _sFrom.c_str());
- bRetValue = false;
- }
- else
- {
- FILE *out = fopen(_sTo.c_str(), "w");
- if (out == NULL)
- {
- fclose(in);
- fprintf(stderr, "error: Can't open file %s for write to copy.\n", _sTo.c_str());
- bRetValue = false;
- }
- else
- {
- int nRealGot = 0;
- while(!feof(in))
- {
- nRealGot = fread(buff, sizeof(char), MAXBUFSIZE, in);
- if (nRealGot > 0)
- {
- fwrite(buff, sizeof(char), nRealGot, out);
- }
- }
- bRetValue = true;
- fclose(out);
- fclose(in);
- }
- }
- return bRetValue;
-}
-
-// -----------------------------------------------------------------------------
-void signalStartTest(std::string const& _sName)
-{
- if (doNotTouchSignalFile()) return;
-
- // fprintf(stderr, "### signalStartTest!\n");
- // due to the fact, that functions are vicious, we write the name first.
- // if it isn't vivious, than we removed it.
- std::string sNewName = getSignalFilename();
- sNewName += ".bak";
- if (copyFile(getSignalFilename(), sNewName))
- {
- // std::ofstream out(getSignalFilename().c_str(), std::ios::out | std::ios::app);
- FILE *out = fopen(getSignalFilename().c_str(), "a");
- if (out != NULL)
- {
- // out << buildTestFunctionName(_sName) << std::endl;
- fprintf(out, "%s\n", buildTestFunctionName(_sName).c_str());
- fclose(out);
- }
- else
- {
- fprintf(stderr, "error: Can't open file %s for append.\n", getSignalFilename().c_str());
- }
- }
- else
- {
- fprintf(stderr, "error: Can't copy signal helper from file %s to file %s, %d\n", getSignalFilename().c_str(), sNewName.c_str(), errno);
- }
-}
-
-// -----------------------------------------------------------------------------
-void signalEndTest()
-{
- if (doNotTouchSignalFile()) return;
-
- // fprintf(stderr, "### signalEndTest!\n");
- if (0 != remove(getSignalFilename().c_str()))
- {
- fprintf(stderr, "error: Can't delete file %s\n", getSignalFilename().c_str());
- }
- else
- {
- std::string sNewName = getSignalFilename();
- sNewName += ".bak";
- if (0 != rename(sNewName.c_str(), getSignalFilename().c_str()))
- {
- fprintf(stderr, "error: Can't rename file %s to file %s errno: %d\n", sNewName.c_str(), getSignalFilename().c_str(), errno);
- }
- }
-}
-
-// -----------------------------------------------------------------------------
-void removeSignalFile(GetOpt & opt)
-{
- // fprintf(stderr, "### remove signal file: '%s'\n", sSignalFile.c_str());
- if (opt.hasOpt("-dnrmsf"))
- {
- return;
- }
- if (bDoNotTouchSignalFile == true)
- {
- return;
- }
- remove(getSignalFilename().c_str());
-}
-
-// -----------------------------------------------------------------------------
-
-sal_Int32 SignalHandlerA( TagHelper const& _aTagItems )
-{
- sal_Int32 nRetValue = 0;
- TagData nTagType = _aTagItems.GetTagData(TAG_TYPE, 0);
-// LLA: unused
-// hTestResult hResult = (hTestResult) _aTagItems.GetTagData(TAG_RESULT_PTR, 0 /* NULL */ );
-// CppUnit::TestResult* pResult = (CppUnit::TestResult*)hResult;
-
- try
- {
- switch(nTagType)
- {
- // old: case SIGNAL_PUSH_NAME:
- // old: {
- // old: const char* sName = (const char*) _aTagItems.GetTagData(TAG_NODENAME);
- // old: if (sName != NULL)
- // old: signalPushName(sName);
- // old: break;
- // old: }
- // old:
- // old: case SIGNAL_POP_NAME:
- // old: signalPopName();
- // old: break;
-
- // old: case SIGNAL_CHECK:
- // old: {
- // old: const char* sName = (const char*) _aTagItems.GetTagData(TAG_NODENAME);
- // old: if (sName != NULL)
- // old: {
- // old: nRetValue = signalCheck(sName);
- // old: }
- // old: break;
- // old: }
-
- // old: case INIT_SIGNAL_HANDLING:
- // old: init_signal_Handling();
- // old: break;
- // old:
- // old: case RELEASE_SIGNAL_HANDLING:
- // old: release_signal_Handling();
- // old: break;
-
- case SIGNAL_START_TEST:
- {
- // fprintf(stderr, "### SIGNAL_START_TEST!\n");
- const char* sName = (const char*) _aTagItems.GetTagData(TAG_NODENAME);
- if (sName != NULL)
- {
- signalStartTest(sName);
- }
- break;
- }
-
- case SIGNAL_END_TEST:
- {
- // fprintf(stderr, "### SIGNAL_END_TEST!\n");
- const char* sName = (const char*) _aTagItems.GetTagData(TAG_NODENAME);
- if (sName != NULL)
- {
- signalEndTest();
- }
- break;
- }
-
- default:
- fprintf(stderr, "error: SignalHandlerA: Can't handle the tag type %d\n", SAL_STATIC_CAST(int, nTagType));
- fflush(stderr);
- // throw std::exception(/*std::string("Unknown TYPE_TAG Exception.")*/);
- }
- }
- catch (std::exception &e)
- {
- fprintf(stderr, "error: SignalHandlerA: Exception caught: %s\n", e.what());
- fflush(stderr);
- // throw e;
- }
-
- return nRetValue;
-}
-// -----------------------------------------------------------------------------
-// This a little bit more abstract code, could be easier to modify or expand.
-
-sal_Int32 CheckExecution(CppUnit::TestResult* _pResult, std::string const& _sName)
-{
- // more checks in the corresponding job lists
- if (_pResult)
- {
- if (! _pResult->isAllowedToExecute(_sName))
- {
- return DO_NOT_EXECUTE;
- }
- }
-
- // Check if the given test should be executed.
- if (signalCheck(_pResult, _sName) == HAS_SIGNAL)
- {
- return DO_NOT_EXECUTE;
- }
-
- return GO_EXECUTE;
-}
-
-// -----------------------------------------------------------------------------
-sal_Int32 ExecutionA( TagHelper const& _aTagItems )
-{
- sal_Int32 nRetValue = 0;
- TagData nTagType = _aTagItems.GetTagData(TAG_TYPE, 0);
- hTestResult hResult = (hTestResult) _aTagItems.GetTagData(TAG_RESULT_PTR, 0 /* NULL */ );
- CppUnit::TestResult* pResult = (CppUnit::TestResult*)hResult;
-
- try
- {
- switch(nTagType)
- {
- case EXECUTION_CHECK:
- {
- const char* sName = (const char*) _aTagItems.GetTagData(TAG_NODENAME);
- if (sName)
- {
- nRetValue = CheckExecution(pResult, sName);
- if (nRetValue == GO_EXECUTE)
- {
- if (pResult && pResult->isOptionWhereAmI())
- {
- printf("# This is: %s\n", buildTestFunctionName(sName).c_str());
- }
- }
- }
-
- break;
- }
-
- // old: case EXECUTION_PUSH_NAME:
- // old: {
- // old: const char* sName = (const char*) _aTagItems.GetTagData(TAG_NODENAME);
- // old: if (sName != NULL)
- // old: executionPushName(sName);
- // old: break;
- // old: }
- // old:
- // old: case EXECUTION_POP_NAME:
- // old: executionPopName();
- // old: break;
-
- case INIT_TEST:
- init_signal_Handling(pResult);
- break;
-
- case RELEASE_TEST:
- release_signal_Handling();
- break;
-
- default:
- fprintf(stderr, "ExceptionA: Can't handle the tag type %d\n", SAL_STATIC_CAST(int, nTagType));
- break;
- }
- }
- catch (std::exception &e)
- {
- fprintf(stderr, "ExecutionA: exception caught: %s\n", e.what());
- fflush(stderr);
- // throw e;
- }
- return nRetValue;
-}
-
-// -----------------------------------------------------------------------------
-std::string getSignalName(sal_Int32 nSignalNo)
-{
- std::string sValue;
-#ifdef UNX
- switch(nSignalNo)
- {
- case SIGHUP:
- sValue = "SIGHUP";
- break;
-
- case SIGINT:
- sValue = "SIGINT";
- break;
-
- case SIGQUIT:
- sValue = "SIGQUIT";
- break;
-
- case SIGILL:
- sValue = "SIGILL";
- break;
-
- case SIGTRAP:
- sValue = "SIGTRAP";
- break;
-
-#if ( SIGIOT != SIGABRT )
- case SIGIOT:
- sValue = "SIGIOT";
- break;
-#endif
-// case SIGABRT:
-#ifdef SIGEMT
- case SIGEMT:
- sValue = "SIGEMT";
- break;
-#endif
- case SIGFPE:
- sValue = "SIGFPE";
- break;
-
- case SIGKILL:
- sValue = "SIGKILL";
- break;
-
- case SIGBUS:
- sValue = "SIGBUS";
- break;
-
- case SIGSEGV:
- sValue = "SIGSEGV";
- break;
-
-#ifdef SIGSYS
- case SIGSYS:
- sValue = "SIGSYS";
- break;
-#endif
- case SIGPIPE:
- sValue = "SIGPIPE";
- break;
-
- case SIGALRM:
- sValue = "SIGALRM";
- break;
-
- case SIGTERM:
- sValue = "SIGTERM";
- break;
-
- case SIGUSR1:
- sValue = "SIGUSR1";
- break;
-
- case SIGUSR2:
- sValue = "SIGUSR2";
- break;
-
- case SIGCHLD:
- sValue = "SIGCHLD";
- break;
-
-#ifdef SIGPWR
- case SIGPWR:
- sValue = "SIGPWR";
- break;
-#endif
- case SIGWINCH:
- sValue = "SIGWINCH";
- break;
-
- case SIGURG:
- sValue = "SIGURG";
- break;
-
-#ifdef SIGPOLL
- case SIGPOLL:
- sValue = "SIGPOLL";
- break;
-#endif
- case SIGSTOP:
- sValue = "SIGSTOP";
- break;
-
- case SIGTSTP:
- sValue = "SIGTSTP";
- break;
-
- case SIGCONT:
- sValue = "SIGCONT";
- break;
-
- case SIGTTIN:
- sValue = "SIGTTIN";
- break;
-
- case SIGTTOU:
- sValue = "SIGTTOU";
- break;
-
- case SIGVTALRM:
- sValue = "SIGVTALRM";
- break;
-
- case SIGPROF:
- sValue = "SIGPROF";
- break;
-
- case SIGXCPU:
- sValue = "SIGXCPU";
- break;
-
- case SIGXFSZ:
- sValue = "SIGXFSZ";
- break;
-
- default:
- sValue = "Unhandled Signal.";
- }
-#else
- (void) nSignalNo; // unused
-#endif
- return sValue;
-}
-
-// The following sets variables for GNU EMACS
-// Local Variables:
-// tab-width:4
-// End:
diff --git a/testshl2/source/cppunit/result/signal.hxx b/testshl2/source/cppunit/result/signal.hxx
deleted file mode 100644
index e3f448535014..000000000000
--- a/testshl2/source/cppunit/result/signal.hxx
+++ /dev/null
@@ -1,39 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 SIGNAL_HXX
-#define SIGNAL_HXX
-
-#include <sal/types.h>
-
-#define HAS_SIGNAL 1
-#define NO_SIGNAL 0
-
-typedef sal_Int32 Signal;
-
-#endif
-
diff --git a/testshl2/source/cppunit/result/testshlTestResult.cxx b/testshl2/source/cppunit/result/testshlTestResult.cxx
deleted file mode 100644
index f80b999416ed..000000000000
--- a/testshl2/source/cppunit/result/testshlTestResult.cxx
+++ /dev/null
@@ -1,425 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdlib.h>
-
-#include <map>
-#include <cppunit/Exception.h>
-#include <cppunit/NotEqualException.h>
-#include <cppunit/Test.h>
-#include <cppunit/TestFailure.h>
-#include <testshl/result/testshlTestResult.h>
-// #include <TextTestResult.h>
-//!io #include <iostream>
-#include <string>
-
-#include <rtl/string.hxx>
-#include "testshl/result/outputter.hxx"
-
-namespace CppUnit {
-
- testshlTestResult::testshlTestResult(GetOpt & _aOptions)
- :TestResult(_aOptions),
- m_aOptions(_aOptions),
- // m_aOptionHelper(_aOptions),
- m_aResulter(this)
- {
- addListener( &m_aResulter );
- }
-
- testshlTestResult::~testshlTestResult()
- {
- }
-
-//# void
-//# testshlTestResult::addFailure( const TestFailure &failure )
-//# {
-//# // TestResultCollector::addFailure( failure );
-//# // std::cerr << ( failure.isError() ? "E" : "F" );
-//# m_aResulter.addFailure(failure);
-//# }
-//#
-//#
-//# void
-//# testshlTestResult::startTest( Test *test )
-//# {
-//# // TestResultCollector::startTest (test);
-//# m_aResulter.startTest(test);
-//# // std::cerr << ".";
-//# }
-//#
-//# void testshlTestResult::endTest( Test *test )
-//# {
-//# }
-
-// -----------------------------------------------------------------------------
-
-//# void
-//# testshlTestResult::printFailures( Outputter &stream )
-//# {
-//# TestFailures::const_iterator itFailure = failures().begin();
-//# int failureNumber = 1;
-//# while ( itFailure != failures().end() )
-//# {
-//# stream << std::endl;
-//# printFailure( *itFailure++, failureNumber++, stream );
-//# }
-//# }
-//#
-//#
-//# void
-//# testshlTestResult::printFailure( TestFailure *failure,
-//# int failureNumber,
-//# std::ostream &stream )
-//# {
-//# printFailureListMark( failureNumber, stream );
-//# stream << ' ';
-//# printFailureTestName( failure, stream );
-//# stream << ' ';
-//# printFailureType( failure, stream );
-//# stream << ' ';
-//# printFailureLocation( failure->sourceLine(), stream );
-//# stream << std::endl;
-//# printFailureDetail( failure->thrownException(), stream );
-//# stream << std::endl;
-//# }
-//#
-//#
-//# void
-//# testshlTestResult::printFailureListMark( int failureNumber,
-//# std::ostream &stream )
-//# {
-//# stream << failureNumber << ")";
-//# }
-//#
-//#
-//# void
-//# testshlTestResult::printFailureTestName( TestFailure *failure,
-//# std::ostream &stream )
-//# {
-//# Test* pTest = failure->failedTest();
-//# stream << "test: " << pTest->getName();
-//# }
-//#
-//#
-//# void
-//# testshlTestResult::printFailureType( TestFailure *failure,
-//# std::ostream &stream )
-//# {
-//# stream << "("
-//# << (failure->isError() ? "E" : "F")
-//# << ")";
-//# }
-//#
-//#
-//# void
-//# testshlTestResult::printFailureLocation( SourceLine sourceLine,
-//# std::ostream &stream )
-//# {
-//# if ( !sourceLine.isValid() )
-//# return;
-//#
-//# stream << "line: " << sourceLine.lineNumber()
-//# << ' ' << sourceLine.fileName();
-//# }
-//#
-//#
-//# void
-//# testshlTestResult::printFailureDetail( Exception *thrownException,
-//# std::ostream &stream )
-//# {
-//# if ( thrownException->isInstanceOf( NotEqualException::type() ) )
-//# {
-//# NotEqualException *e = (NotEqualException*)thrownException;
-//# stream << "expected: " << e->expectedValue() << std::endl
-//# << "but was: " << e->actualValue();
-//# if ( !e->additionalMessage().empty() )
-//# {
-//# stream << std::endl;
-//# stream << "additional message:" << std::endl
-//# << e->additionalMessage();
-//# }
-//# }
-//# else
-//# {
-//# stream << " \"" << thrownException->what() << "\"";
-//# }
-//# }
-
-
-// LLA: output format:
-// Header
-// # -- BEGIN
-// Error lines
-// No error lines
-// unknown lines
-// # -- END
-// Text 'Test #PASSED#' or 'Errors only'
-
-void
-testshlTestResult::print( Outputter& stream )
-{
- printHeader( stream );
- // stream << std::endl;
- // printFailures( stream );
-
- bool bPassed = false;
- if (isOnlyShowJobs())
- {
- JobList jl(m_aOptionHelper.getJobOnlyList());
- HashMap aJobList = jl.getHashMap();
- printLines(stream, aJobList);
- }
- else
- {
- stream << "# -- BEGIN:" << Outputter::endl();
-
- TestPtrList aFailedTests;
-
- // List of failures
- printFailedTests(stream, aFailedTests);
-
- if (! m_aOptionHelper.getOptions().hasOpt("-onlyerrors"))
- {
- // List of well done tests
- printTestLines(stream, aFailedTests);
-
- // List of unknown Tests
- JobList jl(m_aOptionHelper.getJobOnlyList());
- HashMap aJobList = jl.getHashMap();
- printUnknownLines(stream, aJobList);
-
- bPassed = true;
- }
- stream << "# -- END:" << Outputter::endl();
-
- if (bPassed)
- {
- stream << "Test #PASSED#" << Outputter::endl();
- }
-
- if (m_aOptionHelper.getOptions().hasOpt("-onlyerrors"))
- {
- stream << "Errors only." << Outputter::endl();
- }
- }
-}
-
-// -----------------------------------------------------------------------------
-void
-testshlTestResult::printLines(Outputter &stream, HashMap & _aJobList)
-{
- int nCount = _aJobList.size();
- if (nCount != 0)
- {
- for (HashMap::const_iterator it = _aJobList.begin();
- it != _aJobList.end();
- ++it)
- {
- std::string aKey = (*it).first;
- if (_aJobList[aKey] == JOB_ACCESS)
- {
- stream << aKey;
- stream << Outputter::endl();
- }
- }
- }
-}
-
-void
-testshlTestResult::printFailedTests(Outputter &stream, TestPtrList &aFailedTests)
-{
- for (TestResultCollector::TestFailures::const_iterator it2 = m_aResulter.failures().begin();
- it2 != m_aResulter.failures().end();
- ++it2)
- {
- TestFailureEnvelope *pEnvelop = *it2;
- TestFailure *pFailure = pEnvelop->getTestFailure();
- std::string sNodeName = pEnvelop->getString();
-
- aFailedTests[ pFailure->failedTest() ] = true;
-
- printFailureLine(stream, pFailure, sNodeName);
- }
-}
-
-void
-testshlTestResult::printTestLines(Outputter &stream, TestPtrList &aFailedTests)
-{
- for (TestResultCollector::Tests::const_iterator it = m_aResulter.tests().begin();
- it != m_aResulter.tests().end();
- ++it)
- {
- TestEnvelope *pEnvelop = *it;
- Test* pTest = pEnvelop->getTest();
- std::string sNodeName = pEnvelop->getString();
-
- if (aFailedTests.find(pTest) == aFailedTests.end())
- {
- std::string sInfo = m_aResulter.getInfo(pTest);
- printTestLine(stream, pTest, sNodeName, sInfo);
- }
- }
-}
-
-void
-testshlTestResult::printUnknownLines(Outputter &stream, HashMap & _aJobList)
-{
- int nCount = _aJobList.size();
- if (nCount != 0)
- {
- for (HashMap::const_iterator it = _aJobList.begin();
- it != _aJobList.end();
- ++it)
- {
- std::string aKey = (*it).first;
- if (_aJobList[aKey] == JOB_UNKNOWN)
- {
- printUnknownLine(stream, aKey);
- }
- }
- }
-}
-
-void
-testshlTestResult::printHeader( Outputter &stream )
-{
- std::string sDate(m_aOptionHelper.createDateTag());
- if (isOnlyShowJobs())
- {
- stream << "# This is an automatically generated job file." << Outputter::endl();
- stream << "# ";
- }
- else
- {
- stream << sDate << Outputter::endl();
- }
-}
-
-void
-testshlTestResult::printFailureLine( Outputter &stream, TestFailure *_pFailure, std::string const& _sNodeName)
-{
- std::string aName;
- aName += _sNodeName;
- aName += ".";
- aName += _pFailure->failedTestName();
-
- SourceLine aLine = _pFailure->sourceLine();
- sal_Int32 nLine = -1;
- std::string sFilename;
- if (aLine.isValid())
- {
- nLine = aLine.lineNumber();
- sFilename = aLine.fileName();
- }
-
- Exception *pExp = _pFailure->thrownException();
- std::string sWhat;
- if (pExp)
- {
- sWhat = pExp->what();
- }
-
- ErrorType::num eErr = _pFailure->getErrorType();
-
- stream << aName;
- stream << ";";
-
- if (eErr == ErrorType::ET_FAILURE)
- stream << "FAILED";
-
- else if (eErr == ErrorType::ET_ERROR)
- stream << "ERROR";
-
- else if (eErr == ErrorType::ET_SIGNAL)
- stream << "SIGNAL";
-
- else
- stream << "UNKNOWN";
-
- stream << "#FAILED#";
-
- stream << sWhat;
- stream << Outputter::endl();
-}
-
-void
-testshlTestResult::printTestLine( Outputter &stream, Test* _pTest, std::string const& _sNodeName, std::string const& _sInfo)
-{
- std::string aName;
- aName += _sNodeName;
- aName += ".";
- aName += _pTest->getName();
-
- stream << aName;
- stream << ";";
- stream << _sInfo << "#";
- if (_sInfo == "PASSED")
- {
- stream << "OK#";
- }
- else
- {
- stream << "FAILED#";
- }
- stream << Outputter::endl();
-}
-
-void
-testshlTestResult::printUnknownLine( Outputter &stream, std::string const& _sTestName)
-{
- stream << _sTestName;
- stream << ";";
- stream << "UNKNOWN#";
- stream << "FAILED#";
- stream << Outputter::endl();
-}
-
-//# void
-//# testshlTestResult::printStatistics( Outputter &stream )
-//# {
-//# stream << "Test Results:" << std::endl;
-//#
-//# stream << "Run: " << runTests()
-//# << " Failures: " << testFailures()
-//# << " Errors: " << testErrors()
-//# << std::endl;
-//# }
-
-
-Outputter &
-operator <<( Outputter &stream,
- testshlTestResult &result )
-{
- result.print (stream); return stream;
-}
-
-
-} // namespace CppUnit
diff --git a/testshl2/source/cppunit/result/treswrapper.cxx b/testshl2/source/cppunit/result/treswrapper.cxx
deleted file mode 100644
index 50d0b7f8ebfe..000000000000
--- a/testshl2/source/cppunit/result/treswrapper.cxx
+++ /dev/null
@@ -1,259 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <cstdarg>
-#include <stdlib.h>
-#include <stdio.h>
-
-#include <sal/types.h>
-#include <cppunit/Test.h>
-#include "testshl/autoregister/htestresult.h"
-#include "cppunit/callbackfunc_fktptr.h"
-#include "testshl/result/callbackfunc.h"
-#include "testshl/result/TestResult.h"
-#include <testshl/taghelper.hxx>
-
-#include <cppunit/tagvalues.hxx>
-
-namespace
-{
- void TestResult_startTest(hTestResult _pResult, hTest _pTest)
- {
- CppUnit::TestResult* pResult = (CppUnit::TestResult*)_pResult;
- CppUnit::Test* pTest = (CppUnit::Test*)_pTest;
-
- std::string sName = pTest->getName();
- CallbackDispatch(0 /* NULL */, TAG_TYPE, SIGNAL_START_TEST, TAG_RESULT_PTR, _pResult, TAG_NODENAME, sName.c_str(), TAG_DONE);
-
- pResult->startTest(pTest);
- }
-
- void TestResult_endTest( hTestResult _pResult, hTest _pTest )
- {
- CppUnit::TestResult* pResult = (CppUnit::TestResult*)_pResult;
- CppUnit::Test* pTest = (CppUnit::Test*)_pTest;
- pResult->endTest(pTest);
-
- std::string sName = pTest->getName();
- CallbackDispatch(0 /* NULL */, TAG_TYPE, SIGNAL_END_TEST, TAG_RESULT_PTR, _pResult, TAG_NODENAME, sName.c_str(), TAG_DONE);
- }
-
-// -----------------------------------------------------------------------------
-
- void TestResult_addFailure( hTestResult _pResult, hTest _pTest, hException _pException )
- {
- CppUnit::TestResult* pResult = (CppUnit::TestResult*)_pResult;
- CppUnit::Test* pTest = (CppUnit::Test*)_pTest;
- CppUnit::Exception* pException = (CppUnit::Exception*)_pException;
- pResult->addFailure(pTest, pException);
- }
-
- void TestResult_addError( hTestResult _pResult, hTest _pTest, hException _pException )
- {
- CppUnit::TestResult* pResult = (CppUnit::TestResult*)_pResult;
- CppUnit::Test* pTest = (CppUnit::Test*)_pTest;
- CppUnit::Exception* pException = (CppUnit::Exception*)_pException;
- pResult->addError(pTest, pException);
- }
-
- sal_Int32 TestResult_shouldStop(hTestResult _pResult)
- {
- CppUnit::TestResult* pResult = (CppUnit::TestResult*)_pResult;
- return pResult->shouldStop() == true ? 1 : 0;
- }
-
-// -----------------------------------------------------------------------------
- void TestResult_addInfo( hTestResult _pResult, hTest _pTest, const char* _sInfo )
- {
- CppUnit::TestResult* pResult = (CppUnit::TestResult*)_pResult;
- CppUnit::Test* pTest = (CppUnit::Test*)_pTest;
- // CppUnit::Exception* pException = (CppUnit::Exception*)_pException;
- pResult->addInfo(pTest, _sInfo);
- }
-// -----------------------------------------------------------------------------
- void TestResult_enterNode( hTestResult _pResult, const char* _sNode )
- {
- // signalPushName(getName());
- // CallbackDispatch(NULL, TAG_TYPE, EXECUTION_PUSH_NAME, TAG_RESULT_PTR, _pResult, TAG_NODENAME, _sNode, TAG_DONE);
-
- CppUnit::TestResult* pResult = (CppUnit::TestResult*)_pResult;
- // CppUnit::Test* pTest = (CppUnit::Test*)_pTest;
- // CppUnit::Exception* pException = (CppUnit::Exception*)_pException;
- pResult->enterNode(_sNode);
- }
- void TestResult_leaveNode( hTestResult _pResult, const char* _sNode )
- {
- CppUnit::TestResult* pResult = (CppUnit::TestResult*)_pResult;
- // CppUnit::Test* pTest = (CppUnit::Test*)_pTest;
- // CppUnit::Exception* pException = (CppUnit::Exception*)_pException;
- pResult->leaveNode(_sNode);
-
- // CallbackDispatch(NULL, TAG_TYPE, EXECUTION_POP_NAME, TAG_RESULT_PTR, _pResult, TAG_DONE);
- }
-
-// -----------------------------------------------------------------------------
- sal_Int32 TestResult_StarterA(TagHelper const& _aTagItems)
- {
- sal_Int32 nRetValue = 0;
- TagData nTagType = _aTagItems.GetTagData(TAG_TYPE, 0);
- hTestResult pResult = (hTestResult) _aTagItems.GetTagData(TAG_RESULT_PTR, 0 /* NULL */);
- CppUnit::Test* pTest = (CppUnit::Test*) _aTagItems.GetTagData(TAG_TEST_PTR, 0 /* NULL */);
-
- try
- {
- switch(nTagType)
- {
- case RESULT_START:
- TestResult_startTest(pResult, pTest);
- break;
-
- case RESULT_END:
- TestResult_endTest(pResult, pTest);
- break;
-
- case RESULT_ADD_FAILURE:
- {
- hException pException = (hException) _aTagItems.GetTagData(TAG_EXCEPTION, 0);
- TestResult_addFailure(pResult, pTest, pException);
- break;
- }
-
- case RESULT_ADD_ERROR:
- {
- hException pException = (hException) _aTagItems.GetTagData(TAG_EXCEPTION, 0);
- TestResult_addError(pResult, pTest, pException);
- break;
- }
-
- case RESULT_ADD_INFO:
- {
- const char* pInfo = (const char* ) _aTagItems.GetTagData(TAG_INFO, 0);
- TestResult_addInfo(pResult, pTest, pInfo);
- break;
- }
-
- case RESULT_ENTER_NODE:
- {
- const char* pNode = (const char* )_aTagItems.GetTagData(TAG_NODENAME, 0);
- TestResult_enterNode(pResult, pNode);
- break;
- }
-
- case RESULT_LEAVE_NODE:
- {
- const char* pNode = (const char* ) _aTagItems.GetTagData(TAG_NODENAME, 0);
- TestResult_leaveNode(pResult, pNode);
- break;
- }
-
- case RESULT_SHOULD_STOP:
- nRetValue = TestResult_shouldStop(pResult);
- break;
-
- default:
- fprintf(stderr, "TestResult_StarterA: Can't handle the tag type %8x\n", SAL_STATIC_CAST(int, nTagType));
- fflush(stderr);
- // throw std::exception(/*std::string("Unknown TYPE_TAG Exception.")*/);
- }
- }
- catch (std::exception &e)
- {
- fprintf(stderr, "TestResult_StarterA: Exception caught: %s\n", e.what());
- // throw e;
- }
-
- return nRetValue;
- }
-} // namespace anonymous
-
-// --------------------------------- Prototypes ---------------------------------
-
-sal_Int32 SignalHandlerA( TagHelper const& _aTagItems );
-sal_Int32 ExecutionA( TagHelper const& _aTagItems );
-
-// -----------------------------------------------------------------------------
-long CallbackDispatch(int x, ...)
-{
- (void) x; // avoid warning
-
- // The idea behind TagItems are from the Amiga OS.
- // Due to the fact that the following code does not find my ok
- // I decide to wrote a simple helper
- //
- // struct TagItem *tags = (struct TagItem *)&x + 1;
-
- TagHelper aTagItems;
-
- // the following code could also be in a #define, so other functions could
- // use this, but at the moment this function a the only one.
-
- // FILL_TAGS(aTagItems, x);
- std::va_list args;
- va_start( args, x );
- Tag nTag;
- do
- {
- nTag = va_arg(args, Tag);
- if (nTag != TAG_DONE)
- {
- TagData nValue = va_arg(args, TagData);
- // printf("Tag: %8x Value:%8x\n", nTag, nValue);
- aTagItems.insert(nTag, nValue);
- }
- } while (nTag != TAG_DONE);
-
- va_end ( args );
-
- // FILL_TAGS:END
-
- // printf(".\n");
-
- long nRetValue = 0;
- Tag nPreTag = aTagItems.GetTagData(TAG_TYPE);
- if ( (nPreTag & TAG_RESULT) == TAG_RESULT)
- {
- nRetValue = TestResult_StarterA( aTagItems );
- }
- else if ((nPreTag & TAG_SIGNAL) == TAG_SIGNAL)
- {
- nRetValue = SignalHandlerA(aTagItems);
- }
- else if (( nPreTag & TAG_EXECUTION) == TAG_EXECUTION)
- {
- nRetValue = ExecutionA(aTagItems);
- }
- else
- {
- fprintf(stderr, "CallbackDispatch: First tag is unknown %8x\n", SAL_STATIC_CAST(int, nPreTag));
- // unknown TAG_TYPE
- }
- return nRetValue;
-}
-
diff --git a/testshl2/source/cppunit/signaltest.cxx b/testshl2/source/cppunit/signaltest.cxx
deleted file mode 100644
index 0fbb24965699..000000000000
--- a/testshl2/source/cppunit/signaltest.cxx
+++ /dev/null
@@ -1,89 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <typeinfo>
-
-#include "testshl/signaltest.h"
-
-namespace CppUnit
-{
-
-/** Constructs a test case for a suite.
- * This TestCase is intended for use by the TestCaller and should not
- * be used by a test case for which run() is called.
- **/
-SignalTest::SignalTest(std::string const& _sName)
- : m_sName( _sName )
-{
-}
-
-
-/// Destructs a test case
-SignalTest::~SignalTest()
-{
-}
-
-
-/// Returns a count of all the tests executed
-int
-SignalTest::countTestCases() const
-{
- return 1;
-}
-
-/// We never need to start this
-void SignalTest::run(hTestResult) {}
-
-
-/// Returns the name of the test case
-std::string
-SignalTest::getName() const
-{
- return m_sName;
-}
-
-
-/// Returns the name of the test case instance
-std::string
-SignalTest::toString() const
-{
- std::string className;
-
-#if CPPUNIT_USE_TYPEINFO_NAME
- const std::type_info& thisClass = typeid( *this );
- className = thisClass.name();
-#else
- className = "SignalTest";
-#endif
-
- return className + "." + getName();
-}
-
-} // namespace CppUnit
diff --git a/testshl2/source/cppunit/t_print.cxx b/testshl2/source/cppunit/t_print.cxx
deleted file mode 100644
index 367a97602012..000000000000
--- a/testshl2/source/cppunit/t_print.cxx
+++ /dev/null
@@ -1,95 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdio.h>
-#include <testshl/cmdlinebits.hxx>
-#include <rtl/tres.h>
-#include <osl/mutex.hxx>
-
-extern CmdLineBits st_nBits;
-
-sal_Bool isBit( CmdLineBits _nBits, CmdLineBits _nFlag )
-{
- return( ( _nBits & _nFlag ) == _nFlag );
-}
-
-// -----------------------------------------------------------------------------
-// ----------------------------- own printf method -----------------------------
-// -----------------------------------------------------------------------------
-
-bool isVerbose()
-{
- if ( isBit( st_nBits, rtl_tres_Flag_VERBOSE ) )
- {
- return true;
- }
- return false;
-}
-
-bool isQuiet()
-{
- if ( isBit( st_nBits, rtl_tres_Flag_QUIET ) )
- {
- return true;
- }
- return false;
-}
-
-// ::osl::Mutex m_aTPrintMutex;
-
-void impl_t_print(const char* _pFormatStr, va_list &args)
-{
- if (! isQuiet())
- {
- // ::osl::MutexGuard g(m_aTPrintMutex);
- printf("# ");
- vprintf(_pFormatStr, args);
- }
-}
-
-void t_print(const char* _pFormatStr, ...)
-{
- va_list args;
- va_start( args, _pFormatStr );
- impl_t_print(_pFormatStr, args);
- va_end( args );
-}
-
-void t_print(T_Print_Params _eType, const char* _pFormatStr, ...)
-{
- if (_eType == T_VERBOSE && isVerbose())
- {
- // if T_VERBOSE and we should be verbose, print info
- va_list args;
- va_start( args, _pFormatStr );
- impl_t_print(_pFormatStr, args);
- va_end( args );
- }
-}
diff --git a/testshl2/source/cppunit/tresregister.cxx b/testshl2/source/cppunit/tresregister.cxx
deleted file mode 100644
index b43f2925b2c5..000000000000
--- a/testshl2/source/cppunit/tresregister.cxx
+++ /dev/null
@@ -1,66 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdio.h>
-#include <sal/types.h>
-#include <testshl/autoregister/registerfunc.h>
-#include <testshl/autoregister/callbackstructure.h>
-#include <testshl/cmdlinebits.hxx>
-
-//! is this global CallbackStructure need?
-CallbackStructure aGlobalStructure;
-CmdLineBits st_nBits;
-
-FktPtr_CallbackDispatch pCallbackFunc = NULL;
-
-// This function is called from the TestShl tool.
-extern "C" void SAL_CALL registerAllTestFunction(CallbackStructure* _pCallback)
-{
- aGlobalStructure = *_pCallback;
-
- st_nBits = aGlobalStructure.nBits;
-
- pCallbackFunc = _pCallback->aCallbackDispatch;
- FktRegFuncPtr pFunc = _pCallback->aRegisterFunction;
- if (pFunc)
- {
- RegisterTestFunctions(pFunc);
- }
- else
- {
- // error, should be echoed
- fprintf(stderr, "error: Callback Structure doesn't contain a test function ptr.\n");
- }
-
- // all is done, copy the magic value
- // this is only a simple internal invariant check,
- // if the called registerAllTestFunctions Function do, what we want.
- _pCallback->nMagic2 = _pCallback->nMagic;
-}
diff --git a/testshl2/source/cppunit/tresstatewrapper.cxx b/testshl2/source/cppunit/tresstatewrapper.cxx
deleted file mode 100644
index 580bb4dd1cf6..000000000000
--- a/testshl2/source/cppunit/tresstatewrapper.cxx
+++ /dev/null
@@ -1,166 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-// this functions build the wrapper, to handle old function calls to rtl_tres_state
-// IMPORTANT: Due to the fact that rtl_tres_state is in the sal.lib
-// you have to rename rtl_tres_state to c_rtl_tres_state
-//
-// return c_rtl_tres_state
-// (
-// hRtlTestResult,
-// pData->length == 0 &&
-// ! *pData->buffer,
-// "New OString containing no characters",
-// "ctor_001"
-// )
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include "cppunit/Test.h"
-#include "testshl/autoregister/htestresult.h"
-#include "cppunit/callbackfunc_fktptr.h"
-#include "cppunit/TestAssert.h"
-#include "testshl/checkboom.hxx"
-
-#define LOAD_TRESSTATEWRAPPER_LOCAL
-#include "testshl/tresstatewrapper.hxx"
-#undef LOAD_TRESSTATEWRAPPER_LOCAL
-
-#include "cppunit/tagvalues.hxx"
-#include "cppunit/externcallbackfunc.hxx"
-
-// -----------------------------------------------------------------------------
-// Wrapper class for the CppUnit::Test, because the new TestResult
-// expect a CppUnit::Test interface
-
-class WrappedTest : public CppUnit::Test
-{
- std::string m_sName;
-public:
- WrappedTest(std::string const& _sName)
- :m_sName(_sName){}
-
- virtual ~WrappedTest () {}
- virtual void run (hTestResult /*pResult*/){}
- virtual int countTestCases () const {return 1;}
- virtual std::string getName () const {return m_sName;}
- virtual std::string toString () const {return "WrappedTest";}
-};
-
-// -----------------------------------------------------------------------------
-rtl_tres_state_start::rtl_tres_state_start(hTestResult _aResult, const sal_Char* _pName)
- :m_pName(_pName),
- m_aResult(_aResult)
-{
- // (pTestResult_EnterNode)(m_aResult, m_pName);
- (pCallbackFunc)( 0 /* NULL */, TAG_TYPE, RESULT_ENTER_NODE, TAG_RESULT_PTR, m_aResult, TAG_NODENAME, m_pName, TAG_DONE);
-}
-rtl_tres_state_start::~rtl_tres_state_start()
-{
- // (pTestResult_LeaveNode)(m_aResult, m_pName);
- (pCallbackFunc)(0 /* NULL */, TAG_TYPE, RESULT_LEAVE_NODE, TAG_RESULT_PTR, m_aResult, TAG_NODENAME, m_pName, TAG_DONE);
-}
-
-// --------------------------------- C-Wrapper ---------------------------------
-typedef std::vector<rtl_tres_state_start*> rtl_tres_states;
-rtl_tres_states m_StateStack;
-
-extern "C" void c_rtl_tres_state_start(hTestResult _aResult, const sal_Char* _pName)
-{
- rtl_tres_state_start* pState = new rtl_tres_state_start(_aResult, _pName);
- m_StateStack.push_back(pState);
-}
-
-extern "C" void c_rtl_tres_state_end(hTestResult, const sal_Char*)
-{
- rtl_tres_state_start* pState = m_StateStack.back();
-
- delete pState;
- m_StateStack.pop_back();
-}
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-
-// -----------------------------------------------------------------------------
-// ------------------------- Wrapper for rtl_tres_state -------------------------
-// -----------------------------------------------------------------------------
-
-sal_Bool SAL_CALL c_rtl_tres_state(
- hTestResult pResult,
- sal_Bool bSuccess,
- char const * pTestMsg,
- char const * pFuncName)
-{
- CppUnit::Test* pTest = new WrappedTest(pFuncName);
-
- sal_Int32 nValue = (pCallbackFunc)(0 /* NULL */, TAG_TYPE, EXECUTION_CHECK, TAG_RESULT_PTR, pResult, TAG_NODENAME, pTest->getName().c_str(), TAG_DONE);
- if (nValue == DO_NOT_EXECUTE)
- {
- return false;
- }
-
- // This code is copied from CppUnit::TestCase and less adapted, to work with the
- // old test code.
- // (pTestResult_StartTest)(pResult, pTest);
- (pCallbackFunc)(0 /* NULL */, TAG_TYPE, RESULT_START, TAG_RESULT_PTR, pResult, TAG_TEST_PTR, pTest, TAG_DONE);
-
- try
- {
- CPPUNIT_ASSERT_MESSAGE( pTestMsg, bSuccess ? true : false );
- // (pTestResult_AddInfo)(pResult, pTest, "#PASSED#");
- (pCallbackFunc)(0 /* NULL */, TAG_TYPE, RESULT_ADD_INFO, TAG_RESULT_PTR, pResult, TAG_TEST_PTR, pTest, TAG_INFO, "PASSED", TAG_DONE);
- }
- catch ( CppUnit::Exception &e )
- {
- CppUnit::Exception *copy = e.clone();
- // (pTestResult_AddFailure)( pResult, pTest, copy );
- (pCallbackFunc)( 0 /* NULL */, TAG_TYPE, RESULT_ADD_FAILURE, TAG_RESULT_PTR, pResult, TAG_TEST_PTR, pTest, TAG_EXCEPTION, copy, TAG_DONE );
- }
- catch ( std::exception &e )
- {
- //(pTestResult_AddError)( pResult, pTest, new CppUnit::Exception( e.what() ) );
- (pCallbackFunc)( 0 /* NULL */, TAG_TYPE, RESULT_ADD_ERROR, TAG_RESULT_PTR, pResult, TAG_TEST_PTR, pTest, TAG_EXCEPTION, new CppUnit::Exception( e.what() ), TAG_DONE );
- }
- catch (...)
- {
- CppUnit::Exception *e = new CppUnit::Exception( "caught unknown exception" );
- // (pTestResult_AddError)( pResult, pTest, e );
- (pCallbackFunc)( 0 /* NULL */, TAG_TYPE, RESULT_ADD_ERROR, TAG_RESULT_PTR, pResult, TAG_TEST_PTR, pTest, TAG_EXCEPTION, e, TAG_DONE );
- }
-
-
- // (pTestResult_EndTest)( pResult, pTest );
- (pCallbackFunc)( 0 /* NULL */, TAG_TYPE, RESULT_END, TAG_RESULT_PTR, pResult, TAG_TEST_PTR, pTest, TAG_DONE );
-
- return bSuccess;
-}
-
diff --git a/testshl2/source/cppunit/win32/makefile.mk b/testshl2/source/cppunit/win32/makefile.mk
deleted file mode 100644
index a7f7f037b738..000000000000
--- a/testshl2/source/cppunit/win32/makefile.mk
+++ /dev/null
@@ -1,60 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=testshl2
-TARGET=c5t_winstuff
-LIBTARGET=NO
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-
-# ------------------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/winstuff.obj
-
-#-------------------------------------------------------------------------------
-# This is a static lib
-LIB1TARGET= $(LB)$/$(TARGET).lib
-LIB1OBJFILES= \
- $(SLOFILES)
-
-.IF "$(GUI)"=="WNT"
-.IF "$(COM)"=="GCC"
-LIB1ARCHIV=$(LB)$/lib$(TARGET)$(DLLPOSTFIX).a
-.ENDIF
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-LIB1ARCHIV=$(LB)$/lib$(TARGET)$(DLLPOSTFIX).a
-.ENDIF
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/testshl2/source/cppunit/win32/winstuff.cxx b/testshl2/source/cppunit/win32/winstuff.cxx
deleted file mode 100644
index f9ffa0c5c972..000000000000
--- a/testshl2/source/cppunit/win32/winstuff.cxx
+++ /dev/null
@@ -1,140 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#ifdef WIN32
-#include "testshl/winstuff.hxx"
-
-#if defined _MSC_VER
-#pragma warning(push, 1)
-#endif
-#include <windows.h>
-#if defined _MSC_VER
-#pragma warning(pop)
-#endif
-#include <MAPIWin.h>
-
-void WinDebugBreak()
-{
- // forward to WinAPI. Note that the whole story is simply to
- // disentangle OOo headers from Windows headers (which are largely
- // incompatible, due to name clashes and macro mess-ups)
- DebugBreak();
-}
-
-void WinSleep( sal_uInt32 sec )
-{
- Sleep(sec * 1000);
-}
-
-sal_uInt32 WinGetCurrentProcessId()
-{
- return GetCurrentProcessId();
-}
-
-#define TA_FAILED 0
-#define TA_SUCCESS_CLEAN 1
-#define TA_SUCCESS_KILL 2
-#define TA_SUCCESS_16 3
-
- // Declare Callback Enum Functions.
-bool CALLBACK TerminateAppEnum( HWND hwnd, LPARAM lParam );
-
-/*----------------------------------------------------------------
- DWORD WINAPI TerminateApp( DWORD dwPID, DWORD dwTimeout )
-
- Purpose:
- Shut down a 32-Bit Process (or 16-bit process under Windows 95)
-
- Parameters:
- dwPID
- Process ID of the process to shut down.
-
- dwTimeout
- Wait time in milliseconds before shutting down the process.
-
- Return Value:
- TA_FAILED - If the shutdown failed.
- TA_SUCCESS_CLEAN - If the process was shutdown using WM_CLOSE.
- TA_SUCCESS_KILL - if the process was shut down with
- TerminateProcess().
- NOTE: See header for these defines.
- ----------------------------------------------------------------*/
-void WinTerminateApp( sal_uInt32 dwPID, sal_uInt32 dwTimeout )
-{
- HANDLE hProc;
- DWORD dwRet;
-
- // If we can't open the process with PROCESS_TERMINATE rights,
- // then we give up immediately.
- hProc = OpenProcess(SYNCHRONIZE|PROCESS_TERMINATE, false,
- dwPID);
-
- if(hProc == NULL)
- return;
-
- // TerminateAppEnum() posts WM_CLOSE to all windows whose PID
- // matches your process's.
- EnumWindows((WNDENUMPROC)TerminateAppEnum, (LPARAM) dwPID);
-
- // Wait on the handle. If it signals, great. If it times out,
- // then you kill it.
- if (WaitForSingleObject(hProc, dwTimeout) != WAIT_OBJECT_0)
- dwRet= (TerminateProcess(hProc,0) ? TA_SUCCESS_KILL : TA_FAILED);
- else
- dwRet = TA_SUCCESS_CLEAN;
-
- CloseHandle(hProc);
-}
-
-bool CALLBACK TerminateAppEnum( HWND hwnd, LPARAM lParam )
-{
- DWORD dwID;
-
- GetWindowThreadProcessId(hwnd, &dwID);
-
- if(dwID == (DWORD)lParam)
- {
- PostMessage(hwnd, WM_CLOSE, 0, 0);
- }
-
- return true;
-}
-#else
-
-// this file is only need within Windows.
-// due to the fact that empty files don't create libraries
-// we store one function in it.
-int WinStuffDummy_this_function_will_never_need()
-{
- return 42; // we need some code
-}
-
-#endif /* WIN32 */
-
diff --git a/testshl2/source/dynamicregister.cxx b/testshl2/source/dynamicregister.cxx
deleted file mode 100644
index 8253fbcb5449..000000000000
--- a/testshl2/source/dynamicregister.cxx
+++ /dev/null
@@ -1,207 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include "testshl/dynamicregister.hxx"
-#include <osl/process.h>
-// #include <osl/mutex.hxx>
-#include <rtl/string.hxx>
-#include <rtl/ustring.hxx>
-#include "testshl/filehelper.hxx"
-
-#include <unistd.h>
-
-#if defined(WIN32)
-#include <direct.h> /* w.g. _chdir() */
-#endif
-
-namespace fixes
-{
- int changedir(const char* _sPath)
- {
-#if defined(WIN32)
- // chdir(_sPath) is marked depricated since Visual C++ 2005
- // use _chdir instead
- return ::_chdir(_sPath);
-#else
- return ::chdir(_sPath);
-#endif
- }
-}
-
-// -----------------------------------------------------------------------------
-
-DynamicLibraryHelper::DynamicLibraryHelper(rtl::OUString const& _suDLLName, GetOpt & _aOptions)
- :m_pModule(new ::osl::Module()),
- m_suDLLName(_suDLLName),
- m_aOptions(_aOptions)
-{
- // create and load the module (shared library)
- m_suAbsolutePathFile = FileHelper::convertPath( _suDLLName );
-
- // due to some problems on mac OS
- // we split the absolute pathname to path and filename
- // change to the path and load the filename direct
- // then change back to the old path.
- rtl::OUString suPathSeparator = rtl::OUString( rtl::OUString::createFromAscii("/"));
- sal_Int32 nPos = m_suAbsolutePathFile.lastIndexOf(suPathSeparator);
- if (nPos != -1)
- {
- m_suAbsolutePath = m_suAbsolutePathFile.copy(0, nPos);
- m_suFilename = m_suAbsolutePathFile.copy(nPos + 1);
- }
- else
- {
- // Should never happen.
- rtl::OString sPath = rtl::OUStringToOString(m_suAbsolutePathFile, RTL_TEXTENCODING_ASCII_US);
- fprintf(stderr, "There is a problem with path '%s'.\n", sPath.getStr());
- exit(1);
- }
-
- if (getOptions().hasOpt("-absolutepath"))
- {
- fprintf(stderr, "Hint: Use absolute path to load test library.\n");
- loadLibraryFromAbsolutePath();
- }
- else if (getOptions().hasOpt("-localpath"))
- {
- fprintf(stderr, "Hint: make a chdir() to the test library, then try to load the test library without given path.\n");
- loadLibraryFromLocalPath();
- }
- else
- {
-
-// PLEASE DON'T CHANGE THIS STUPID STRUCTURE, JUST ADD YOUR ENVIRONMENT
-#if defined(LINUX)
- loadLibraryFromAbsolutePath();
- // will fail if load local
-
-#elif defined(SOLARIS)
- loadLibraryFromAbsolutePath();
- // will also be right if load local
-
-#elif defined(WIN32)
- loadLibraryFromAbsolutePath();
- // will fail if load local
-
-#elif defined(MACOSX)
- loadLibraryFromLocalPath();
- // will fail if local absolute
-#else
- // default is load absolute
- loadLibraryFromAbsolutePath();
-#endif
-}
-}
-
-void DynamicLibraryHelper::showFilenameIfVerbose()
-{
- if (getOptions().hasOpt("-verbose"))
- {
- rtl::OString sFilename = rtl::OUStringToOString(m_suFilename, RTL_TEXTENCODING_ASCII_US);
- rtl::OString sPath = rtl::OUStringToOString(m_suAbsolutePath, RTL_TEXTENCODING_ASCII_US);
- fprintf(stderr, "Try to load '%s' from '%s'.\n", sFilename.getStr(), sPath.getStr());
-
- // check filename
- }
-}
-
-void DynamicLibraryHelper::realLoadLibrary(rtl::OUString const& _suLibToLoad)
-{
- if (! m_pModule->load(_suLibToLoad, SAL_LOADMODULE_LAZY | SAL_LOADMODULE_GLOBAL))
- {
- rtl::OString sDLLName = rtl::OUStringToOString(m_suDLLName, RTL_TEXTENCODING_ASCII_US);
- fprintf(stderr, "warning: Can't load module '%s'.\n", sDLLName.getStr());
- }
-}
-
-void DynamicLibraryHelper::loadLibraryFromAbsolutePath()
-{
- showFilenameIfVerbose();
- realLoadLibrary(m_suAbsolutePathFile);
-}
-
-void DynamicLibraryHelper::loadLibraryFromLocalPath()
-{
- sal_Int32 nPos;
- rtl::OUString suPathSeparator = rtl::OUString( rtl::OUString::createFromAscii("/"));
-#if defined(WIN32)
- suPathSeparator = rtl::OUString( rtl::OUString::createFromAscii("\\"));
-#endif
- rtl::OUString suSystemPathFile;
- osl::FileBase::getSystemPathFromFileURL(m_suAbsolutePathFile, suSystemPathFile);
-
- nPos = suSystemPathFile.lastIndexOf(suPathSeparator);
- rtl::OUString suCurrentDirPath;
- if (nPos != -1)
- {
- // the filename only, no '/' in the path
- rtl::OUString suNewPath = suSystemPathFile.copy(0, nPos );
- if (suNewPath.getLength() > 0)
- {
- rtl::OString sPath = rtl::OUStringToOString(suNewPath, RTL_TEXTENCODING_ASCII_US);
- osl_getProcessWorkingDir( &suCurrentDirPath.pData );
-
- fixes::changedir(sPath.getStr());
-
- // curNewDirPath should be suPath, small self test
- rtl::OUString curNewDirPath;
- osl_getProcessWorkingDir( &curNewDirPath.pData );
- if (! curNewDirPath.equals(m_suAbsolutePath))
- {
- fprintf(stderr, "There is a problem with path '%s'.\n", sPath.getStr());
- }
- }
- }
-
- showFilenameIfVerbose();
- realLoadLibrary(m_suFilename);
-
- // change back to old directory
- if (suCurrentDirPath.getLength() > 0)
- {
- rtl::OString sCurrentDirPath = rtl::OUStringToOString(suCurrentDirPath, RTL_TEXTENCODING_ASCII_US);
- fixes::changedir(sCurrentDirPath.getStr());
- }
-}
-
-DynamicLibraryHelper::~DynamicLibraryHelper()
-{
- if (getOptions().hasOpt("-verbose"))
- {
- fprintf(stderr, "Dtor DynamicLibraryHelper.\n");
- fprintf(stderr, "Delete loaded module.");
- }
- delete m_pModule;
- if (getOptions().hasOpt("-verbose"))
- {
- fprintf(stderr, " [done].\n");
- }
-}
-
diff --git a/testshl2/source/file.cxx b/testshl2/source/file.cxx
deleted file mode 100644
index ca7ec3ad79f4..000000000000
--- a/testshl2/source/file.cxx
+++ /dev/null
@@ -1,74 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string>
-
-// -----------------------------------------------------------------------------
-// taken from setup2
-std::string getTempPath()
-{
- std::string sTempDir;
-
- char* pTmp = getenv( "TEMP" );
- if (pTmp == NULL) pTmp = getenv("temp");
- if (pTmp == NULL) pTmp = getenv("TMP");
- if (pTmp == NULL) pTmp = getenv("tmp");
-
- if( pTmp && strlen(pTmp) >= 2 )
- {
- sTempDir = std::string( pTmp );
- }
- else
- {
-#if (defined UNX) || (defined OS2)
- int nLen;
- pTmp = P_tmpdir;
- nLen = strlen(pTmp);
- if (pTmp[ nLen - 1] == '/')
- {
- char cBuf[256];
- char* pBuf = cBuf;
- strncpy( pBuf, pTmp, nLen - 1 );
- pBuf[nLen - 1] = '\0';
- sTempDir = std::string( pBuf );
- }
- else
- {
- sTempDir = std::string( pTmp );
- }
-#else
- fprintf(stderr, "error: No temp dir found.\n");
-#endif
- }
- return sTempDir;
-}
diff --git a/testshl2/source/filehelper.cxx b/testshl2/source/filehelper.cxx
deleted file mode 100644
index ef2d78dd99ee..000000000000
--- a/testshl2/source/filehelper.cxx
+++ /dev/null
@@ -1,228 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string>
-
-#include "testshl/filehelper.hxx"
-#include "testshl/getopt.hxx"
-
-#include <osl/process.h>
-#include <osl/file.hxx>
-
-#ifndef _SAL_TRES_H_
-#include <rtl/tres.h>
-#endif
-
-namespace FileHelper
-{
-// -----------------------------------------------------------------------------
-// taken from setup2
-std::string getTempPath()
-{
- std::string sTempDir;
-
- char const * pTmp = getenv( "TEMP" );
- if (pTmp == NULL) pTmp = getenv("temp");
- if (pTmp == NULL) pTmp = getenv("TMP");
- if (pTmp == NULL) pTmp = getenv("tmp");
-
- if( pTmp && strlen(pTmp) >= 2 )
- {
- sTempDir = std::string( pTmp );
- }
- else
- {
-#if (defined UNX) || (defined OS2)
- int nLen;
- pTmp = P_tmpdir;
- nLen = strlen(pTmp);
- if (pTmp[ nLen - 1] == '/')
- {
- char cBuf[256];
- char* pBuf = cBuf;
- strncpy( pBuf, pTmp, nLen - 1 );
- pBuf[nLen - 1] = '\0';
- sTempDir = std::string( pBuf );
- }
- else
- {
- sTempDir = std::string( pTmp );
- }
-#else
- fprintf(stderr, "error: No temp dir found.\n");
-#endif
- }
- return sTempDir;
-}
-
-// -----------------------------------------------------------------------------
-rtl::OUString convertPath( rtl::OUString const& _suSysPath )
-{
- // PRE: String should contain a filename, relativ or absolut
- rtl::OUString suURL;
- bool bRelativ = false;
-#ifdef WNT
- sal_Char cFileSep[] = "\\";
-#endif
-#if (defined UNX) || (defined OS2)
- sal_Char cFileSep[] = "/";
-#endif
-
- if ( _suSysPath.indexOf(rtl::OUString::createFromAscii("..")) == 0 )
- {
- bRelativ = true;
- }
- else if ( _suSysPath.indexOf(rtl::OUString::createFromAscii(cFileSep)) != 0 )
- {
- // no fileseparator found at first position found, must be relative
- bRelativ = true;
- }
-
- if (bRelativ)
- {
- // filepath contains '..' so it's a relative path make it absolut.
- rtl::OUString curDirPth;
- osl_getProcessWorkingDir( &curDirPth.pData );
-
- // rtl::OString sCurDirPath = rtl::OUStringToOString(curDirPth, RTL_TEXTENCODING_ASCII_US);
- // fprintf(stderr, "Current Dir '%s'.\n", sCurDirPath.getStr());
-
- osl::FileBase::getAbsoluteFileURL( curDirPth, _suSysPath, suURL );
-
- // rtl::OString sURL = rtl::OUStringToOString(suURL, RTL_TEXTENCODING_ASCII_US);
- // fprintf(stderr, " File URL: '%s'.\n", sURL.getStr());
- }
- else
- {
- osl::FileBase::getFileURLFromSystemPath( _suSysPath, suURL );
- }
- return suURL;
-}
-// -----------------------------------------------------------------------------
-rtl::OUString convertPath( rtl::OString const& sysPth )
-{
- rtl::OUString sysPath( rtl::OUString::createFromAscii( sysPth.getStr() ) );
- return convertPath(sysPath);
-}
-
-/**
- * create bitmap of comandline parameters
- */
-
-//# CmdLineBits createFlags( vector< sal_Char* > const& cmdln )
-//# {
-//# CmdLineBits retflags = rtl_tres_Flag_OK;
-//#
-//# vector< sal_Char* >::const_iterator iter = cmdln.begin();
-//# while( iter != cmdln.end() )
-//# {
-//# fprintf( stderr, "%s\n", *iter );
-//# if ( *iter[0] == '-' )
-//# {
-//# rtl::OString item( *iter );
-//# if ( item == "-boom" ) // stop near error position, exception only
-//# retflags |= rtl_tres_Flag_BOOM;
-//#
-//# if ( item == "-verbose" )
-//# retflags |= rtl_tres_Flag_VERBOSE;
-//#
-//# if ( item == "-skip" )
-//# retflags |= rtl_tres_Flag_SKIP;
-//#
-//# if ( item == "-log" )
-//# retflags |= rtl_tres_Flag_LOG;
-//#
-//# if ( item == "-his" )
-//# retflags |= rtl_tres_Flag_HIS;
-//#
-//# if ( item == "-time" )
-//# retflags |= rtl_tres_Flag_TIME;
-//#
-//# if ( item == "-msg" )
-//# retflags |= rtl_tres_Flag_MSG;
-//# }
-//# iter++;
-//# }
-//#
-//# return retflags;
-//# }
-//#
-//# CmdLineBits createFlags(int argc, char* argv[])
-//# {
-//# vector< sal_Char* > cmdln;
-//# sal_Int32 i;
-//#
-//# /* collect comandline */
-//# for ( i = 1; i < argc; i++ )
-//# cmdln.push_back( argv[i] );
-//#
-//# return createFlags(cmdln);
-//# }
-
-CmdLineBits createFlags( GetOpt & _aOptions )
-{
- CmdLineBits retflags = rtl_tres_Flag_OK;
-
- if (_aOptions.hasOpt("-boom")) // stop near error position, exception only
- {
- retflags |= rtl_tres_Flag_BOOM;
- }
-
- if (_aOptions.hasOpt("-verbose"))
- {
- retflags |= rtl_tres_Flag_VERBOSE;
- }
-
- if (_aOptions.hasOpt("-quiet"))
- {
- retflags |= rtl_tres_Flag_QUIET;
- }
- return retflags;
-}
-// -----------------------------------------------------------------------------
-
-/**
- * display usage screen
- */
-
-//# void usage()
-//# {
-//# fprintf( stdout,
-//# "USAGE: testshl shlname [-boom][-verbose][-log][-his][-msg]\n" );
-//# exit(0);
-//# }
-
-
-} // namespace FileHelper
-
-
diff --git a/testshl2/source/getopt.cxx b/testshl2/source/getopt.cxx
deleted file mode 100644
index 844a151276e1..000000000000
--- a/testshl2/source/getopt.cxx
+++ /dev/null
@@ -1,919 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-#include "testshl/getopt.hxx"
-
-#include "testshl/filehelper.hxx"
-
-using namespace std;
-//----------------------------------------------------------------------------
-// OptDsc
-//----------------------------------------------------------------------------
-//> createOptDsc
-void OptDsc::createOptDsc( const rtl::OString& opt ) {
-
- // analyze type of option
- // in case of flag indicate and set name and hint
- if ( ( opt.indexOf("=") == -1 ) && ( opt.indexOf(":") == -1 ) ) {
- m_type = OT_BOOL;
-
- // extract options dokumentation if any
- sal_Int32 index = opt.indexOf(",");
- if ( index == -1 ) {
- m_name = opt;
- }
- else {
- m_name = opt.copy( 0, index );
- m_hint = ( opt.copy( index + 1 ) ).trim();
- }
- return;
- }
-
- vector < rtl::OString > optLine;
-
- // ':' indicates that option has optional parameter(s)
- if ( opt.indexOf(":") != -1 ) {
- m_type |= OT_OPTIONAL;
- // create optionline tokenvector
- split( opt, ":,", optLine );
- }
- else {
- // create optionline tokenvector
- split( opt, "=,", optLine );
- }
-
- // extract name of option
- m_name = optLine[0];
-
- // parameter(s) of string type
- if ( optLine[1].indexOf("s") != -1 ) {
- m_type |= OT_STRING;
- m_legend += "arg";
- }
- // parameter(s) of numeric type
- if ( optLine[1].indexOf("n") != -1 ) {
- m_type |= OT_NUMBER;
- m_legend += "arg";
- }
- // multiple parameters allowed
- if ( optLine[1].indexOf("@") != -1 ) {
- m_type |= OT_MULTI;
- m_legend += "#1,[arg#n]";
- }
- else {
- m_type |= OT_SINGLE;
- }
-
- // extract options dokumentation if any
- m_hint = optLine[optLine.size()-1].trim();
-
-} ///< createOptDsc
-
-//> split
-void OptDsc::split( const rtl::OString& opt, const rtl::OString& cSet,
- vector< rtl::OString >& optLine ) {
-
- const sal_Int32 cSetLen = cSet.getLength();
- const sal_Char* pcSet = cSet.getStr();
- sal_Int32 index = 0;
- sal_Int32 oldIndex = 0;
-
- sal_Int32 i;
- for ( i = 0; i < cSetLen; i++ ) {
- index = opt.indexOf( pcSet[i] );
- if( index != -1 ) {
- optLine.push_back( opt.copy( oldIndex, index - oldIndex ) );
- oldIndex = index + 1;
- }
- }
- optLine.push_back( opt.copy( oldIndex ) );
-} ///< split
-
-//----------------------------------------------------------------------------
-// GetOpt
-//----------------------------------------------------------------------------
-//> ~GetOpt
-GetOpt::~GetOpt() {
- vector< OptDsc* >::iterator iter = m_optionset.begin();
- while ( iter != m_optionset.end() ) {
- delete (*iter);
- (*iter) = 0;
- iter++;
- }
- m_optionset.clear();
-} ///< ~GetOpt
-
-/**
- * private
- * initialization of GetOpt class means to fill the vector members
- * representing the commandline and optionset
- * @param char* cmdLine[] = comandline
- * @param char* optSet[] = optionset
- *
- * @return void
- */
-//> initialize
-void GetOpt::initialize( char* cmdLine[], char const * optSet[] ) {
-
- while ( *cmdLine ) {
- m_cmdline.push_back( rtl::OString( *cmdLine ) );
- *cmdLine++;
- }
- // insert an empty OString, to mark the end.
- m_cmdline.push_back(rtl::OString());
-
- while ( *optSet && ( rtl::OString( optSet[0] ).indexOf("-") == 0 ) ) {
- m_optionset.push_back( new OptDsc( *optSet ) );
- *optSet++;
- }
-
-} ///< initialize
-
-/**
- * public
- * returns a pointer to an object of type optiondescription (OptDsc)
- *
- * @param rtl::OString& opt = name of option
- *
- * @return OptDsc* = pointer to requested optiondescription
- * or NULL if not found
- */
-//> getOptDsc
-OptDsc* GetOpt::getOptDsc( rtl::OString& opt ) {
-
- vector< OptDsc* >::iterator iter = m_optionset.begin();
- while ( iter != m_optionset.end() ) {
- if ( (*iter)->getName() == opt ) {
- return (*iter);
- }
- iter++;
- }
- return NULL;
-
-} ///< getOptDsc
-
-/**
- * public
- * check if option is already present in optionhash
- * @param const rtl::OString& opt = name of option
- * @return sal_Bool
- */
-//> hasOpt
-sal_Bool GetOpt::hasOpt( const rtl::OString& opt ) const {
-
- if ( m_opthash.find( opt ) != m_opthash.end() ) {
- return sal_True ;
- }
- return sal_False ;
-
-} ///< hasOpt
-
-/**
- * private
- * handles the initialized comandline vector
- * and fill the optionhash with evaluated options
- * @param none
- * @return void
- */
-//> createCmdLineOptions
-void GetOpt::createCmdLineOptions() {
-
- // get iterator of comandline vector
- vector< rtl::OString >::iterator iter = m_cmdline.begin();
-
- // extract first comandlineparameter as program name
- m_prgname = (*iter);
- iter++;
-
- // process the whole vector
- while ( iter != m_cmdline.end() ) {
- // extract following comandline parameter(s) as program parameter(s)
- // int nIdxOfMinus = (*iter).indexOf("-");
- if ( (*iter).indexOf("-") != 0 ) /* start without '-' */
- {
- if ((*iter).getLength() > 0 ) /* is not empty */
- {
- m_param.push_back(*iter);
- }
- iter++;
- continue;
- }
- // option occured
- if ( (*iter).indexOf("-") == 0 )
- {
- // ignore invalid options
- if ( ! evaluateOpt( iter ) )
- {
- iter++;
- // check if wrong option has got a parameter
- // and skip that, too
- if( (iter + 1) != m_cmdline.end() )
- {
- if ( (*(iter + 1)).indexOf("-") != 0 )
- {
- iter++;
- }
- }
- continue;
- }
- rtl::OString opt( (*iter) );
- vector< rtl::OString > optValues;
-
- // option is no flag
- if ( ! getOptDsc( opt )->isFlag() ) {
- // but has optional parameters
- if ( getOptDsc( opt )->isOptional() ) {
- // no parameters present
- if ( ! hasParam( iter ) ) {
- m_opthash[ opt ] = optValues;
- optValues.clear();
- iter++;
- continue;
- }
- }
- iter++;
- // more than one option parameters occured
- if ( (*iter).indexOf( "," ) != -1 ) {
- tokenize( (*iter), "," , optValues );
- }
- else {
- optValues.push_back( (*iter) );
- }
- }
- // create key/value pair in optionhash and clear value vector
- m_opthash[ opt ] = optValues;
- optValues.clear();
- }
- iter++;
- }
-} ///< createCmdLineOptions
-
-/**
- * public
- * check if option has parameter(s)
- * @param vector< rtl::OString >::iterator iter = iterator of
- * comandline vector
- *
- * @return sal_Bool
- */
-//> hasParam
-sal_Bool GetOpt::hasParam( vector< rtl::OString >::iterator iter ) {
- if ( iter+1 == m_cmdline.end() ) {
- return sal_False;
- }
- if ( (*(iter+1)).indexOf("-") == 0 ) {
- return sal_False;
- }
- if ( (*(iter+1)) == "" ) {
- return sal_False;
- }
-
- return sal_True;
-} ///< hasParam
-
-/**
- * public
- * option evaluation in general means to verify if the option occur is
- * a member of optionset say an admitted option, if so does it appear with
- * the right or tolerable usage
- *
- * @param vector< rtl::OString >::iterator iter = iterator of
- * comandline vector
- *
- * @return sal_Bool
- */
-//> evaluateOpt
-sal_Bool GetOpt::evaluateOpt( vector< rtl::OString >::iterator iter ) {
-
- // option is no member of optionset
- if ( ! exist( (*iter) ) ) {
- cout << "Unknown option " << (*iter).getStr()
- << " occurred !" << endl;
- return sal_False;
- }
-
- // option is a flag
- if ( getOptDsc( (*iter) )->isFlag() ) {
- return sal_True;
- }
-
- // parameter not optional
- if ( ! getOptDsc( (*iter) )->isOptional() ) {
-
- // verify that next vectoritem is present and no option
- if ( ( *( iter + 1 ) ).getLength() &&
- ( ( *( iter + 1 ) ).indexOf( "-" ) != 0 ) ) {
-
- // if we are waiting for one single parameter
- if ( getOptDsc( *iter )->isSingle() ) {
- // but find multiple parameters
- if( ( *( iter + 1 ) ).indexOf(",") != -1 ) {
- cout << "Wrong use of option " << (*iter).getStr()
- << " too many parameters !" << endl;
- return sal_False;
- }
- return sal_True;
- }
- return sal_True;
- }
-
- cout << "Wrong use of option " << (*iter).getStr()
- << " parameter missing !" << endl;
- return sal_False;
- }
- // parameter optional
- if ( getOptDsc( *iter )->isSingle() ) {
-
- if ( hasParam( iter ) ) {
- if( ( *( iter + 1 ) ).indexOf(",") != -1 ) {
- cout << "Wrong use of option " << (*iter).getStr()
- << " too many parameters !" << endl;
- return sal_False;
- }
- }
- }
- return sal_True;
-
-} ///< evaluateOpt
-
-
-//> createOpt
-void GetOpt::createOpt( rtl::OString& optDscStr ) {
- m_optionset.push_back( new OptDsc( optDscStr ) );
-} ///< createOpt
-
-/**
- * public
- * conditional addition of an option to optionhash
- * overriding options, already present in optionhash, is not permitted
- *
- * @param rtl::OString& optStr = optionstring which is to break in a
- * key/value pair and to add to optionhash
- *
- * @return void
- */
-//> addOpt
-void GetOpt::addOpt( rtl::OString& optStr, sal_Bool eval ) {
-
- vector< rtl::OString > optTok;
- tokenize( optStr, "=", optTok );
-
- // prevent override of commandline options
- // by options from ini file
- if( hasOpt( optTok[0] ) ) {
- return;
- }
-
- // evaluate rigth usage of option
- if( eval ) {
- if ( ! evaluateOpt( optTok.begin() ) ) {
- return;
- }
- }
- vector< rtl::OString > optValues;
-
- if ( optTok.size() > 1 ) {
- rtl::OString oValStr( optTok[1] );
- // found a variable
- if ( oValStr.indexOf(",") == -1 ) {
- optValues.push_back( oValStr );
- }
- else {
- tokenize( oValStr, ",", optValues );
- }
- }
- m_opthash[ optTok[0] ] = optValues;
- optValues.clear();
- return;
-} ///< addOpt
-
-/**
- * public
- * verify the existance of an option in optionset
- * @param rtl::OString& opt = option name
- * @return sal_Bool
- */
-//> exist
-sal_Bool GetOpt::exist( rtl::OString& opt ) {
- if ( getOptDsc( opt ) ) {
- return sal_True;
- }
- return sal_False;
-} ///< exist
-
-/**
- * public
- * verify the existance of variables inside options
- * @param none
- * @return sal_Bool
- */
-//> hasVars
-sal_Bool GetOpt::hasVars() {
- if ( m_varvec.size() ) {
- return sal_True;
- }
- return sal_False;
-} ///< hasVars
-
-
-/**
- * public
- * proceeds a buffer representing the content of an ini file and adds the
- * options to optionhash. The optionstrings in the file are allowed to contain
- * variables indicated by delimiters described with varDelim
- *
- * @param rtl::OString iOpts = raw filecontent
- * @param const rtl::OString& varDelim = delimiter indicating a variable
- *
- * @return void
- */
-//> str2Opt
-void GetOpt::str2Opt( rtl::OString iOpts ) {
-
- // tokenize filecontent by '\n' to create a vector of lines
- vector< rtl::OString > iniLines;
- tokenize( iOpts, "\n", iniLines );
-
- sal_uInt32 tCnt = iniLines.size();
-
- // process all lines
- sal_uInt32 i;
- for ( i = 1; i < tCnt; i++ ) {
- rtl::OString optLine( iniLines[i] );
- // ignore comments
- if ( ! ( optLine.indexOf("#") == 0 ) ) {
- // filter valid options after trim
- if ( ( optLine.indexOf("-") == 0 ) ) {
- // line contains a variable
- if ( ( optLine.indexOf( m_vardelim ) != -1 ) ) {
- // push to var vector for later process
- m_varvec.push_back( optLine );
- continue;
- }
- addOpt( optLine );
- }
- }
- }
-} ///< str2opt
-
-void GetOpt::replVars() {
-
- // process vector of lines containing variables
- vector< rtl::OString >::iterator iter = m_varvec.begin();
- while ( iter != m_varvec.end() ) {
- sal_Int32 index = 0;
- while ( ( index = (*iter).indexOf( m_vardelim ) ) != -1 ) {
- vector< rtl::OString > varLineTok;
- rtl::OString varKey( "-" );
- tokenize( *iter, m_vardelim, varLineTok );
- varKey += varLineTok[1];
- vector< rtl::OString > keyValues = getOptVec( varKey );
-
- if ( keyValues.size() > 1 ) {
- rtl::OString rplStr;
-
- vector< rtl::OString >::iterator kvi = keyValues.begin();
- while ( kvi != keyValues.end() ) {
- rplStr += (*kvi);
- kvi++;
- if ( kvi != keyValues.end() ) {
- rplStr += ",";
- }
- }
- (*iter ) = (*iter).replaceAt(
- index, varKey.getLength()+1, rplStr );
- }
- else {
- if( *(keyValues[0])) {
- (*iter) = (*iter).replaceAt(
- index, varKey.getLength()+1, keyValues[0] );
- }
- }
- }
- addOpt( (*iter) );
- iter++;
- }
-
-}
-
-/**
- * public
- * displays a formatted usagescreen
- * @param none
- * @return void
- */
-//> showUsage
-void GetOpt::showUsage() {
-
- sFormat frm;
- frm.fCol = getMaxNameLength() + 2;
- frm.sCol = frm.fCol + getMaxLegendLength() + 2 ;
- frm.len = 79;
-
- vector< rtl::OString > nameVec;
- vector< rtl::OString > paramVec;
-
- tokenize( getName(), "/\\", nameVec );
- if ( m_param.empty() ) {
- if ( hasOpt( "-db" ) ) {
- tokenize( getOpt( "-db" ), "/\\", paramVec );
- }
- else {
- paramVec.push_back( rtl::OString( "not available" ) );
- }
- }
- else {
- tokenize( getFirstParam(), "/\\", paramVec );
- }
-
- cout << "\n\n\n\n\nUsage: prgname param [options]\n\nPRGNAME = [path]";
-
- if ( !nameVec.empty() ) {
- cout << (*(nameVec.end()-1)).getStr();
- }
- cout << "\nPARAM = [path]";
- if ( !paramVec.empty() ) {
- cout << (*(paramVec.end()-1)).getStr() << endl;
- }
-
- cout << "\nOPTIONS = [" << flush;
-
- vector< OptDsc* >::iterator iter = m_optionset.begin();
-
- while ( iter != m_optionset.end() ) {
- cout << (*iter)->getName().getStr() << "," << flush;
- iter++;
- }
- cout << "]\n\nOPTIONS:\n" << flush;
-
- iter = m_optionset.begin();
-
- while ( iter != m_optionset.end() ) {
- cout << optDsc2Str( *iter, frm ).getStr() << endl << flush;
-
- iter++;
- }
-
-} ///< showUsage
-
-/**
- * public
- * displays the actual option/parameter status
- * @param none
- * @return void
- */
-//> printStatus
-void GetOpt::printStatus( void ) {
-
- sal_uInt32 maxlen = getMaxNameLength();
- optHashMap::iterator iter = m_opthash.begin();
- cout << endl;
-
- while ( iter != m_opthash.end() ) {
- rtl::OString option( (*iter).first );
-
- cout.setf(ios::left);
- cout.width( maxlen+1 );
- cout << option.getStr() << "= ";
-
- if ( ! getOptDsc( option )->isFlag() ) {
- if ( ! getOptVec( option ).empty() ) {
- sal_uInt32 j;
- for ( j = 0; j < (*iter).second.size(); j++ ) {
- cout << (( (*iter).second )[j]).getStr() << " ";
- }
- cout << endl;
- }
- else {
- cout << "FALSE\n";
- }
- }
- else {
- cout << "TRUE\n";
- }
- iter++;
- }
-}
-
-/**
- * private
- * converts an object of type optiondescription (OptDsc) to a formatted
- * displayable string for usagescreen needs
- * @param OptDsc* optDsc = pointer to option description
- * @param sFormat frm = format structur
- *
- * @return const rtl::OString = formatted string for display purposes
- */
-//> optDsc2Str >>> to be replaced by intelliget algorythm <<<
-const rtl::OString GetOpt::optDsc2Str( OptDsc* optDsc , sFormat frm ) {
-
- sal_Char* buf = new sal_Char[ frm.len + 1 ];
- sal_Char* pBuf = buf;
-
- sal_uInt32 i;
- for ( i = 0; i < frm.len; i++ ) {
- *pBuf++ = ' ';
- }
- *pBuf = '\0';
-
- rtl::OStringBuffer strBuf( buf );
- rtl::OString oStr = strBuf.makeStringAndClear();
-
- oStr = oStr.replaceAt( 0, optDsc->getName().getLength(),
- optDsc->getName() );
- if ( optDsc->isOptional() ) {
- oStr = oStr.replaceAt( frm.fCol-1, 1, "[" );
- }
- oStr = oStr.replaceAt( frm.fCol, optDsc->getLegend().getLength(),
- optDsc->getLegend() );
- if ( optDsc->isOptional() ) {
- oStr = oStr.replaceAt( frm.fCol + optDsc->getLegend().getLength() ,
- 1, "]" );
- }
- if ( ( frm.sCol + optDsc->getHint().getLength() ) >= frm.len ) {
-
- oStr = oStr.replaceAt( frm.sCol, frm.len - frm.sCol,
- optDsc->getHint() );
- }
- else {
- oStr = oStr.replaceAt( frm.sCol,
- optDsc->getHint().getLength(), optDsc->getHint() );
- }
-
- delete [] buf;
-
- return oStr;
-
-} ///< optDsc2Str
-
-/**
- * private
- * returns the maximum length of all optionnames for format purposes
- * @param none
- * @return sal_uInt32 length of longest optionname
- */
-//> getMaxNameLength
-sal_uInt32 GetOpt::getMaxNameLength() {
-
- sal_Int32 len = 0;
- vector< OptDsc* >::iterator iter = m_optionset.begin();
-
- while ( iter != m_optionset.end() ) {
- if( len < (*iter)->getName().getLength() ){
- len = (*iter)->getName().getLength();
- }
- iter++;
- }
- return len;
-} ///< getMaxNameLength
-
-/**
- * private
- * returns the maximum length of all option legends for format purposes
- * @param none
- * @return sal_uInt32 length of longest optionlegend
- */
-//> getMaxLegendLength
-sal_uInt32 GetOpt::getMaxLegendLength() {
-
- sal_Int32 len = 0;
- vector< OptDsc* >::iterator iter = m_optionset.begin();
-
- while ( iter != m_optionset.end() ) {
- if( len < (*iter)->getLegend().getLength() ){
- len = (*iter)->getLegend().getLength();
- }
- iter++;
- }
- return len;
-
-} ///< getMaxLegendLength
-
-/**
- * public
- * reads the filecontent and pass it to str2opt to add valid options
- * to optionhash
- * @param rtl::OString iniPth = full qualified filename
- * @return ::osl::FileBase::RC = to indicate errors
- */
-//> getIniOptions
-::osl::FileBase::RC GetOpt::getIniOptions( rtl::OString iniPth ) {
-
- ::osl::FileStatus fState( FileStatusMask_All );
- ::osl::DirectoryItem dItem;
- rtl::OUString nrmPath( FileHelper::convertPath( iniPth ) );
-
- ::osl::DirectoryItem::get( nrmPath, dItem );
- dItem.getFileStatus( fState );
- rtl::OUString fName( fState.getFileURL() );
- ::osl::File iniFile( fName );
-
- const sal_uInt32 filesize = (sal_uInt32)fState.getFileSize();
-
- ::osl::FileBase::RC ret;
- sal_uInt64 bytesread;
-
- if ( ( ret = iniFile.open( OpenFlag_Read ) ) != ::osl::FileBase::E_None ) {
- return ret;
- }
- char* buf = new char[ filesize + 1 ];
- ret = iniFile.read( buf, filesize, bytesread );
- buf[ filesize ] = '\0';
-
- str2Opt( buf );
- delete [] buf;
- return ret;
-
-} ///< getIniOptions
-
-/**
- * private
- * tokenize a string in dependance of a character set and stores the tokens
- * to a token vector
- * @param const rtl::OString& opt = optionstring to tokenize
- * @param const rtl::OString& cSet = characterset of delimiters
- * @param vector< rtl::OString >& optLine = vector of tokens
- * @param sal_Bool strip = indicates if CR,LF and TAB should be stripped off
- * the token
- * @return void
- */
-//> tokenize
-void GetOpt::tokenize( const rtl::OString& opt, const rtl::OString& cSet,
- vector< rtl::OString >& optLine, sal_Bool strip ) {
-
- const sal_Char* pText; // pointer f. text,
- const sal_Char* pcSet; // charset and
- vector< const sal_Char* > delimVec; // vector of delimiters
-
- // parametercheck for opt ...
- if( ! opt.getLength() ) {
- return;
- }
- // ... and charSet
- if( ! cSet.getLength() ) {
- return;
- }
- // pointer to begin of textinstance
- pText = opt.getStr();
-
- // text
- while( *pText ) {
- // charset-pointer to begin of charset
- pcSet = cSet.getStr();
- // charset
- while( *pcSet ) {
- // delimiter found
- if( ( ( *pText == *pcSet ) ) && ( pText != opt ) ) {
- delimVec.push_back( pText );
- // increment counter
- }
- pcSet++;
- }
- // increment pointer
- pText++;
- }
-
- // save endpointer
- delimVec.push_back( opt + opt.getLength() );
-
- sal_Char* pToken; // ptr to token chars
- const sal_Char* pBegin; // ptr to begin of current,
- const sal_Char* pEnd=opt; // and begin of prev. token
- sal_uInt32 i=0;
-
- while ( pEnd < delimVec[delimVec.size()-1] ) {
-
- pBegin = pEnd;
- if( pBegin > opt.getStr() ) {
- pBegin += 1;
- }
- pEnd = delimVec[i];
- // initialize size
- sal_uInt32 nSize = pEnd - pBegin;
- // allocate memory
-
- // allocate memory for token
- sal_Char* cToken = new sal_Char[ nSize + 1 ];
-
- // get address of allocated memory
- pToken = cToken;
-
- // copy token from text
- sal_uInt32 j;
- for ( j = 0; j < nSize ; ++j ) {
- *pToken++ = *pBegin++;
- }
- // append string end
- *pToken = '\0';
-
- rtl::OString oTok(cToken);
-
- if( strip ) {
- // strip off CR,LF and TAB
- oTok = oTok.replace( 0x0a, 0x20 );
- oTok = oTok.replace( 0x0d, 0x20 );
- oTok = oTok.replace( 0x09, 0x20 );
- oTok = oTok.trim();
- }
- if( oTok != "" ) {
- // push to vector
- optLine.push_back( oTok );
- }
-
- // free memory where cToken points to
- delete [] cToken;
- i++;
- }
- return ;
-} ///< tokenize
-
-// -----------------------------------------------------------------------------
-rtl::OString& GetOpt::getOpt( const rtl::OString& opt )
-{
- if (m_opthash.find( opt ) != m_opthash.end())
- {
- if (!m_opthash[opt].empty())
- {
- return *( m_opthash[opt].begin() );
- }
- rtl::OString aStr;
- aStr = "GetOpt( ";
- aStr += opt;
- aStr += " ): Value not found.";
- throw ValueNotFoundException(aStr.getStr());
- }
- else
- throw ValueNotFoundException(opt);
-}
-
-
-// -----------------------------------------------------------------------------
-
-Exception::Exception()
- : m_sAsciiMessage()
-{
-}
-//---------------------------------------------------------------------
-Exception::Exception(char const* sAsciiMessage)
- : m_sAsciiMessage(sAsciiMessage)
-{
-}
-//---------------------------------------------------------------------
-Exception::Exception(rtl::OString const& sAsciiMessage)
- : m_sAsciiMessage(sAsciiMessage)
-{
-}
-//---------------------------------------------------------------------
-
-rtl::OUString Exception::message() const
-{
- return rtl::OStringToOUString( m_sAsciiMessage, RTL_TEXTENCODING_ASCII_US );
-}
-//---------------------------------------------------------------------
-char const* Exception::what() const
-{
- return m_sAsciiMessage.getLength() ? m_sAsciiMessage.getStr() : "FAILURE in REGSCAN: No description available";
-}
-
-// -----------------------------------------------------------------------------
-static const char c_sValueNotFoundException[] = "GetOpt: Value not Found Exception: ";
-//---------------------------------------------------------------------
-ValueNotFoundException::ValueNotFoundException()
- : Exception( rtl::OString(RTL_CONSTASCII_STRINGPARAM(c_sValueNotFoundException)) )
-{
-}
-//---------------------------------------------------------------------
-
-ValueNotFoundException::ValueNotFoundException(char const* sException)
- : Exception( rtl::OString(RTL_CONSTASCII_STRINGPARAM(c_sValueNotFoundException)) + sException)
-{
-}
-
-
-
diff --git a/testshl2/source/makefile.mk b/testshl2/source/makefile.mk
deleted file mode 100644
index 86a6dc2ca1bc..000000000000
--- a/testshl2/source/makefile.mk
+++ /dev/null
@@ -1,130 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=testshl2
-TARGET=testshl2
-TARGETTYPE=CUI
-PRJINC=.
-
-ENABLE_EXCEPTIONS=TRUE
-#USE_LDUMP2=TRUE
-#LDUMP2=LDUMP3
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-
-# ------------------------------------------------------------------
-
-COMMON_OBJFILES=\
- $(OBJ)$/getopt.obj \
- $(OBJ)$/filehelper.obj \
- $(OBJ)$/dynamicregister.obj
-
-TESTSHL_OBJFILES=\
- $(OBJ)$/autoregisterhelper.obj \
- $(OBJ)$/testshl.obj
-
-VERSIONINFO_OBJFILES=\
- $(OBJ)$/versionhelper.obj \
- $(OBJ)$/versioner.obj
-
-BMSMA_OBJFILES=\
- $(OBJ)$/bmsma.obj
-
-# for right dependencies
-# OBJFILES= $(COMMON_OBJFILES) $(TESTSHL_OBJFILES) $(VERSIONINFO_OBJFILES)
-
-# ------------------------------------------------------------------
-APP1TARGET= $(TARGET)
-APP1OBJS= $(COMMON_OBJFILES) $(TESTSHL_OBJFILES)
-APP1RPATH=NONE
-
-APP1STDLIBS=$(SALLIB)
-
-.IF "$(GUI)" == "WNT"
-.IF "$(COM)" == "GCC"
-APP1STDLIBS+= \
- $(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a \
- $(LB)$/libc5t_testresult$(DLLPOSTFIX).a \
- $(LB)$/libc5t_no_regallfkt$(DLLPOSTFIX).a \
- $(LB)$/libc5t_winstuff$(DLLPOSTFIX).a
-.ELSE
-APP1LIBS= \
- $(SOLARLIBDIR)$/cppunit.lib \
- $(LB)$/c5t_testresult.lib \
- $(LB)$/c5t_no_regallfkt.lib \
- $(LB)$/c5t_winstuff.lib
-.ENDIF
-.ENDIF
-
-.IF "$(GUI)" == "OS2"
-APP1LIBS= \
- $(SOLARLIBDIR)$/cppunit.lib \
- $(LB)$/c5t_no_regallfkt.lib \
- $(LB)$/c5t_testresult.lib
-.ENDIF
-
-.IF "$(GUI)" == "UNX"
-APP1STDLIBS+= \
- $(LB)$/libc5t_testresult$(DLLPOSTFIX).a \
- $(LB)$/libc5t_no_regallfkt$(DLLPOSTFIX).a \
- $(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
-.ENDIF
-
-#
-# ------------------------------------------------------------------
-APP2TARGET= versioninfo
-APP2OBJS= $(COMMON_OBJFILES) $(VERSIONINFO_OBJFILES)
-
-APP2STDLIBS=$(SALLIB)
-
-APP2DEPN=
-APP2LIBS=
-
-# ------------------------------------------------------------------
-APP3TARGET= $(TARGET)_timeout
-APP3OBJS= $(OBJ)$/getopt.obj $(OBJ)$/filehelper.obj $(OBJ)$/terminate.obj
-
-APP3STDLIBS=$(SALLIB)
-
-APP3DEPN=
-APP3LIBS=
-
-.IF "$(GUI)" == "WNT"
-.IF "$(COM)" == "GCC"
-APP3STDLIBS+= \
- $(LB)$/libc5t_winstuff$(DLLPOSTFIX).a
-.ELSE
-APP3LIBS += $(LB)$/c5t_winstuff.lib
-.ENDIF
-.ENDIF
-
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/testshl2/source/terminate.cxx b/testshl2/source/terminate.cxx
deleted file mode 100644
index fcc9f75f83f0..000000000000
--- a/testshl2/source/terminate.cxx
+++ /dev/null
@@ -1,289 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#ifdef SOLARIS
-#include <sys/time.h>
-#include <sys/types.h>
-#endif
-
-#include <signal.h>
-
-#include <iostream>
-#include <string>
-
-#include "testshl/getopt.hxx"
-
-#if (defined UNX) || (defined OS2)
-#include <unistd.h> /* usleep */
-#include <sys/types.h>
-#include <signal.h>
-#endif
-
-#ifdef WNT
-# include "testshl/winstuff.hxx"
-#endif
-
-using namespace std;
-
-// -----------------------------------------------------------------------------
-class ProcessHandler
-{
- std::string m_sProcessIDFilename;
- int m_nPID;
-
- int getPID();
- int readPIDFromFile();
- void sendSignal(int _nPID);
- void write(int);
-public:
- ProcessHandler();
- void setName(std::string const& _sFilename);
-
- ~ProcessHandler();
-
- void waitForPIDFile(int);
- void waitForTimeout(int);
-};
-
-void my_sleep(int sec)
-{
-#ifdef WNT
- WinSleep(sec * 1000);
-#else
- usleep(sec * 1000000); // 10 ms
-#endif
-}
-
-// ------------------------------- ProcessHelper -------------------------------
-ProcessHandler::ProcessHandler():m_nPID(0) {}
-
-void ProcessHandler::setName(std::string const& _sPIDFilename)
-{
- m_sProcessIDFilename = _sPIDFilename;
-}
-
-int ProcessHandler::getPID()
-{
- return m_nPID;
-}
-
-int ProcessHandler::readPIDFromFile()
-{
- // get own PID
- int nPID = 0;
- if (m_sProcessIDFilename.size() > 0)
- {
- FILE* in;
- in = fopen(m_sProcessIDFilename.c_str(), "r");
- if (!in)
- {
- // fprintf(stderr, "warning: (testshl.cxx) can't read own pid.\n");
- return 0;
- // exit(0);
- }
- // if file exist, wait short, maybe the other tool writes it down.
- if (fscanf(in, "%d", &nPID) != 1)
- {
- // fprintf(stderr, "warning: (testshl.cxx) can't read own pid.\n");
- fclose(in);
- return 0;
- // exit(0);
- }
- fclose(in);
- }
- else
- {
- fprintf(stderr, "error: (terminate.cxx) PID Filename empty, must set.\n");
- exit(0);
- }
- return nPID;
-}
-
-ProcessHandler::~ProcessHandler()
-{
-}
-
-void ProcessHandler::sendSignal(int _nPID)
-{
- if (_nPID != 0)
- {
-#ifdef WNT
- WinTerminateApp(_nPID, 100);
-#else
- kill(_nPID, SIGKILL);
-#endif
- }
-}
-
-// -----------------------------------------------------------------------------
-void ProcessHandler::waitForPIDFile(int _nTimeout)
-{
- int nWaitforTimeout = _nTimeout;
- while (getPID() == 0 && nWaitforTimeout > 0)
- {
- int nPID = readPIDFromFile();
- if (nPID != 0)
- {
- m_nPID = nPID;
- break;
- }
-
- my_sleep(1);
- fprintf(stderr, "wait for pid file\n");
- nWaitforTimeout--;
- }
-
- if (nWaitforTimeout <= 0)
- {
- fprintf(stderr, "No PID found, time runs out\n");
- exit(1);
- }
-}
-// -----------------------------------------------------------------------------
-void ProcessHandler::waitForTimeout(int _nTimeout)
-{
- int nTimeout = _nTimeout;
- while (nTimeout > 0)
- {
- my_sleep(1);
- fprintf(stderr, "%d \r", nTimeout);
-
- int nNewPID = readPIDFromFile();
- if ( nNewPID != getPID() )
- {
- fprintf(stderr, "PID has changed.\n");
- if ( nNewPID != 0)
- {
- fprintf(stderr, "new PID is not 0, maybe forgotten to delete old PID file, restart timeout.\n");
- m_nPID = nNewPID;
- nTimeout = _nTimeout;
- }
- else
- {
- break;
- }
- }
- nTimeout --;
- }
- if (nTimeout <= 0)
- {
- fprintf(stderr, "PID: %d\n", getPID());
- sendSignal(getPID());
- write(0);
- }
-}
-
-void ProcessHandler::write(int _nPID)
-{
- // get own PID
-
- if (m_sProcessIDFilename.size() > 0)
- {
- FILE* out;
- out = fopen(m_sProcessIDFilename.c_str(), "w");
- if (!out)
- {
- fprintf(stderr, "warning: (testshl.cxx) can't write own pid.\n");
- return;
- // exit(0);
- }
- fprintf(out, "%d", _nPID);
- fclose(out);
- }
- else
- {
- fprintf(stderr, "warning: (testshl.cxx) PID Filename empty, must set.\n");
- }
-}
-
-// ----------------------------------- Main -----------------------------------
-#if (defined UNX) || (defined OS2)
-int main( int, char* argv[] )
-#else
-int _cdecl main( int, char* argv[] )
-#endif
-{
- static char const * optionSet[] = {
- "-version, shows current program version and exit.",
- "-pid=s, write current process id to file",
- "-time=s, timeout [default is 10 sec]",
- "-h:s, display help or help on option",
- "-help:s, see -h",
- NULL
- };
-
- ProcessHandler aCurrentProcess;
-
- GetOpt opt( argv, optionSet );
- if ( opt.hasOpt("-pid") )
- {
- aCurrentProcess.setName(opt.getOpt("-pid").getStr());
- }
-
- int nTimeout = 10;
- if ( opt.hasOpt("-time"))
- {
- //
- nTimeout = opt.getOpt("-time").toInt32();
- if (nTimeout == 0)
- {
- nTimeout = 10;
- }
- }
-
- if ( opt.hasOpt("-version") )
- {
- fprintf(stderr, "testshl2_timeout $Revision: 1.9 $\n");
- exit(0);
- }
-
- // someone indicates that he needs help
- if ( opt.hasOpt( "-h" ) || opt.hasOpt( "-help" ) )
- {
- opt.showUsage();
- exit(0);
- }
-
- // wait until pid file exist ==============================
-
- aCurrentProcess.waitForPIDFile(10);
-
- printf("Found PID file, wait for timeout %d sec.\n", nTimeout);
-
- // timeout ==================================================
- aCurrentProcess.waitForTimeout(nTimeout);
-
- return 0;
-}
-
diff --git a/testshl2/source/testshl.cxx b/testshl2/source/testshl.cxx
deleted file mode 100644
index 22b90a0f7002..000000000000
--- a/testshl2/source/testshl.cxx
+++ /dev/null
@@ -1,396 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#ifdef SOLARIS
-#include <sys/time.h>
-#endif
-
-#ifdef WNT
-# include "testshl/winstuff.hxx"
-#endif
-
-#include <iostream>
-#include <vector>
-#include <memory> /* auto_ptr */
-#include "sal/main.h"
-#include <rtl/string.hxx>
-
-// #include <rtl/tres.h>
-#include "testshl/autoregisterhelper.hxx"
-// #include "cmdlinebits.hxx"
-#include "testshl/log.hxx"
-#include "testshl/filehelper.hxx"
-#include "testshl/getopt.hxx"
-#include "testshl/result/outputter.hxx"
-#include "testshl/joblist.hxx"
-
-// #include <osl/time.h>
-
-using namespace std;
-
-#include "testshl/result/testshlTestResult.h"
-#include "testshl/result/emacsTestResult.hxx"
-
-// Prototype for signal handling
-void setSignalFilename(GetOpt & opt);
-void removeSignalFile(GetOpt & opt);
-CmdLineBits st_nBits;
-
-void initTPrint(GetOpt & _aOptions)
-{
- st_nBits = FileHelper::createFlags(_aOptions);
-}
-
-void my_sleep(int nCount)
-{
-#ifdef WNT
- WinSleep(nCount * 2);
-#else
- usleep(nCount * 2000);
-#endif
-}
-
-// -----------------------------------------------------------------------------
-class ProcessHandler
-{
- std::string m_sProcessIDFilename;
- void write(int);
- int getPID();
-public:
- ProcessHandler();
- void setName(std::string const& _sFilename);
- ~ProcessHandler();
-};
-
-// ------------------------------- ProcessHelper -------------------------------
-ProcessHandler::ProcessHandler() {}
-
-void ProcessHandler::setName(std::string const& _sPIDFilename)
-{
- m_sProcessIDFilename = _sPIDFilename;
- write(getPID());
-}
-
-int ProcessHandler::getPID()
-{
- int nPID = 0;
-#ifdef WNT
- nPID = WinGetCurrentProcessId();
-#else
- nPID = getpid();
-#endif
-
- return nPID;
-}
-
-void ProcessHandler::write(int _nPID)
-{
- // get own PID
-
- if (m_sProcessIDFilename.size() > 0)
- {
- FILE* out;
- out = fopen(m_sProcessIDFilename.c_str(), "w");
- if (!out)
- {
- fprintf(stderr, "warning: (testshl.cxx) can't write own pid.\n");
- return;
- // exit(0);
- }
- fprintf(out, "%d", _nPID);
- fclose(out);
- my_sleep(2); // short wait, so testshl2_timeout can find this pid.
- }
- else
- {
- fprintf(stderr, "warning: (testshl.cxx) PID Filename empty, must set.\n");
- }
-}
-
-ProcessHandler::~ProcessHandler()
-{
- if (m_sProcessIDFilename.size() > 0)
- {
- write(0);
- my_sleep(2);
- fprintf(stderr, "hint: it is save to remove PID file.\n");
- }
-}
-
-// -----------------------------------------------------------------------------
-std::auto_ptr<CppUnit::TestResult> initResult(GetOpt & _aOptions)
-{
- std::auto_ptr<CppUnit::TestResult> pResult;
- if (_aOptions.hasOpt("-mode"))
- {
- if (_aOptions.getOpt("-mode").equals("emacs") == sal_True)
- {
- pResult.reset(new CppUnit::emacsTestResult(_aOptions));
- }
- }
- else
- {
- pResult.reset(new CppUnit::testshlTestResult(_aOptions));
- }
- return pResult;
-}
-
-// -----------------------------------------------------------------------------
-
-std::auto_ptr<Outputter> initOutputter(GetOpt & _aOptions)
-{
- std::auto_ptr<Outputter> pOutputter;
-
- if (_aOptions.hasOpt("-log"))
- {
- rtl::OString sLogFile = _aOptions.getOpt("-log");
-
- Log* pLog = new Log( FileHelper::convertPath( sLogFile ) );
- if ( pLog->open() != osl::FileBase::E_None )
- {
- // cerr << "could not open LogFile: " << pLog->getName().getStr() << endl;
- fprintf(stderr, "could not open LogFile: %s\n", pLog->getName().getStr());
- exit(1);
- }
- pOutputter.reset(new Outputter(pLog));
- }
- else
- {
- pOutputter.reset(new Outputter(std::cout));
- }
-
- return pOutputter;
-}
-
-int starttest(GetOpt & opt, AutomaticRegisterHelper const& aHelper);
-
-void makeslow()
-{
- sal_Int32 n = 0;
- for (sal_Int32 i=0;i<1024 * 1024;i++)
- {
- ++n;
- }
-}
-// void endless()
-// {
-// sal_Int64 n = 0;
-// while(1)
-// {
-// n++;
-// makeslow();
-// my_sleep(1);
-// }
-// }
-
-// ----------------------------------- Main -----------------------------------
-
-SAL_IMPLEMENT_MAIN_WITH_ARGS(, argv)
-{
- static char const * optionSet[] = {
- "-boom, stop near error position, exception only",
- "-mode=s, the output mode, emacs, xml, old. Default is -mode old",
- "-log=s, destination file for logging",
- "-noerrors, shows all tests, but not it's errors.",
- "-onlyerrors, shows only the failed test functions",
-/* "-tc=s@, name(s) of testcase(s) to generate", */
- "-sf=s, absolute path and name to the signal file.",
-//! new (helpful if at debug time)
- "-dntsf, if given, do not touch signal file, also if one exist.",
- "-dnrmsf, do not remove signalfile. ",
- "-jobonly=s, job control file, these jobs should only executed.",
- "-jobexclude=s, job control file, but contains only job, they not execute.",
- "-jobfilter=s, use a filter for just some tests.",
- "-onlyshowjobs, show only all jobs, do no tests.",
- "-forward=s, this string will forwarded to the test libraries.",
- "-projectid=s, this text is added to the date output line.",
- "-buildid=s, this text is added to the date output line.",
- "-waitforkey, wait until key pressed.",
- "-verbose, be verbose.",
- "-quiet, be quiet. No t_print(...) will create output.",
- "-pid=s, write current process id to file",
- "-endless, testshl runs endless, for test only!!!",
- "-whereami, shows at runtime, which function is tested next.",
- "-noerroronexit, if this is given the program exits with return code 0 even if runtime errors occurs.",
- "-hardexit, Exit the tests without call any dtor.",
- "-absolutepath, Use the given absolute path to local the test library.",
- "-localpath, Make a chdir() to the test library path, then try to load the library without given path.",
- "-h:s, display help or help on option",
- "-help:s, see -h",
- NULL
- };
-
- ProcessHandler aCurrentProcess;
-
- GetOpt opt( argv, optionSet );
- initTPrint(opt);
-
- if ( opt.hasOpt("-pid") )
- {
- aCurrentProcess.setName(opt.getOpt("-pid").getStr());
- }
-
- if ( opt.hasOpt("-verbose") )
- {
- fprintf(stderr, "testshl2 $Revision: 1.25 $\n");
- }
-
- if ( opt.hasOpt("-endless")) // this exists only for self test issues
- {
-// endless();
-
-// With parameter -endless a test is attachable by debuggers
-// Attach to testshl2.exe set a breakpoint in this while (1) loop
-
-// Then you have to set the process pointer (Set next Statement) to
-// the next line outside the while loop.
-// Now it is possible to debug the whole code.
-// Never source this code to a function, because you will
-// lost the variables like opt.
-
- sal_Int64 n = 0;
- while(1)
- {
- n++;
- makeslow();
- my_sleep(1);
- }
- }
-
- int nExitCode = 0;
- bool bLibrary = true;
-
- // someone indicates that he needs help
- if ( opt.hasOpt( "-h" ) || opt.hasOpt( "-help" ) )
- {
- opt.showUsage();
- nExitCode = 0;
- }
- else
- {
- if (opt.getParams().empty())
- {
- // no library is given, but if a jobonly list is given, we should generate UNKNOWN errors.
- if (! opt.hasOpt("-jobonly"))
- {
- // std::cerr << "error: At least a library or a job file should given." << std::endl;
- fprintf(stderr, "error: At least a library or a job file should given.\n");
- opt.showUsage();
- nExitCode = 2;
- }
- else
- {
- bLibrary = false;
- }
- }
- else
- {
- setSignalFilename(opt);
-
- rtl::OUString suLibraryName;
- if (bLibrary)
- {
- suLibraryName = rtl::OStringToOUString(opt.getFirstParam(), osl_getThreadTextEncoding() /* RTL_TEXTENCODING_ASCII_US */ );
- }
-
- AutomaticRegisterHelper aHelper(suLibraryName, opt /*, &aJobs*/);
-
- if (aHelper.isOkToStartTests())
- {
- // start the tests
- nExitCode = starttest(opt, aHelper);
- }
- else
- {
-
- fprintf(stderr, "error: The library '%s' can't initialised, must quit.\n", opt.getFirstParam().getStr());
- nExitCode = 1;
- }
- }
- }
-
- if (opt.hasOpt("-noerroronexit"))
- {
- nExitCode = 0;
- }
- return nExitCode;
-}
-
-// -----------------------------------------------------------------------------
-// this function is only inserted to give a better startpoint for breakpoints
-
-int starttest(GetOpt & _opt, AutomaticRegisterHelper const& aHelper)
-{
- // create a TestResult
- std::auto_ptr<CppUnit::TestResult> pResult = initResult(_opt);
-
- // call all test functions
- aHelper.CallAll(pResult.get());
-
- // create and open log
- std::auto_ptr<Outputter> pOutput = initOutputter(_opt);
-
- // give the output
- pResult->print(*pOutput.get());
-
- // this is a debug extension, so you can read the output and after a key is pressed the program will end.
- if (_opt.hasOpt("-waitforkey"))
- {
- fprintf(stderr, "Press return key.");
- fflush(stderr);
- getchar();
- }
-
- if (_opt.hasOpt("-verbose"))
- {
- fprintf(stderr, "Remove signal handlers");
- }
-
- removeSignalFile(_opt);
-
- if (_opt.hasOpt("-verbose"))
- {
- fprintf(stderr, " [done]\n");
- }
-
- if (_opt.hasOpt("-hardexit"))
- {
- fprintf(stderr, "Hardexit forced.\n");
- abort();
- }
-
- int nExit = pResult->getExitValue();
- return nExit;
-}
-
diff --git a/testshl2/source/testshlrunner/ProcessHandler.java b/testshl2/source/testshlrunner/ProcessHandler.java
deleted file mode 100644
index 373b482d7825..000000000000
--- a/testshl2/source/testshlrunner/ProcessHandler.java
+++ /dev/null
@@ -1,355 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-import java.io.InputStream;
-import java.io.File;
-import java.io.FileFilter;
-import java.util.ArrayList;
-import java.io.PrintWriter;
-import java.io.PrintStream;
-import java.io.LineNumberReader;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-
-/**
- * Class collect information from input stream in
- * background (sparate thread) and outputs it to
- * some log stream. I helps to avoid buffer overflow
- * when output stream has small buffer size (e.g.
- * in case when handling stdout from external
- * <code>Process</code>)
- *
- * This class is currently used by ProcesHandler
- * internally only.
- */
-class Pump extends Thread {
- private LineNumberReader reader;
- private String pref ;
- private Pump thread ;
- private StringBuffer buf = new StringBuffer(256);
- private PrintWriter log ;
-
- /**
- * Creates Pump for specified <code>InputStream</code>.
- * This Pump also synchronously output text read to
- * log by prefixed lines. Constructor immediately
- * starts reading in a separate thread.
- *
- * @param is Stream which requires permanent reading.
- * @param log Writer where prefixed text lines to be output
- * @param outPrefix A prefix which is printed at the
- * beginning of each output line.
- */
- public Pump(InputStream is, PrintWriter log, String outPrefix) {
- this.pref = outPrefix == null ? "" : outPrefix ;
- reader = new LineNumberReader(new InputStreamReader(is));
- this.log = log ;
- start() ;
- }
-
- public void run() {
- try {
- String line = reader.readLine() ;
- while (line != null) {
- log.println(pref + line);
- log.flush();
- buf.append(line).append('\n');
- line = reader.readLine() ;
- }
- } catch (java.io.IOException e) {
- log.println(pref + "Exception occured: " + e) ;
- }
- }
-
- /**
- * Returns the text collected from input stream.
- */
- public String getStringBuffer() {
- return buf.toString();
- }
-}
-
-/**
- * Class provides convenient way for running external program
- * handle its standard streams, control execution and check results.
- * Instance of this class must be created only for a single
- * execution. If you need to execute the same command again you
- * should create a new instance for this.
- */
-public class ProcessHandler {
- private String cmdLine;
- private String[] envVars = null;
- private File workDir = null;
- private PrintWriter log;
-
- private int exitValue = -1;
- private boolean isFinished = false;
- private boolean isStarted = false;
-
- private String stdInBuff = "";
- private Pump stdout = null ;
- private Pump stderr = null ;
- private PrintStream stdIn = null ;
-
- private Process proc = null ;
-
- /**
- * Creates instance with specified external command and
- * log stream where debug info is printed and output
- * of external command.
- */
- public ProcessHandler(String cmdLine, PrintWriter log) {
- this(cmdLine, log, null, null);
- }
- /**
- * Creates instance with specified external command.
- * Debug info and output
- * of external commandis printed to stdout.
- */
- public ProcessHandler(String cmdLine) {
- this(cmdLine, null, null, null);
- }
- /**
- * Creates instance with specified external command which
- * will be executed in the some work directory and
- * log stream where debug info and output
- * of external command is printed .
- * The specified environment variables are set for the new process.
- * If log stream is null, logging is printed to stdout.
- */
- public ProcessHandler(String cmdLine, PrintWriter log,
- File workDir, String[] envVars) {
- this.cmdLine = cmdLine ;
- this.workDir = workDir;
- this.log = log;
- this.cmdLine = cmdLine ;
- this.envVars = envVars;
- if (log == null)
- this.log = new PrintWriter(new OutputStreamWriter(System.out));
- else
- this.log = log;
- }
- /**
- * Creates instance with specified external command which
- * will be executed in the some work directory.
- * Debug info and output
- * of external commandis printed to stdout.
- */
- public ProcessHandler(String cmdLine, File workDir) {
- this(cmdLine, null, workDir, null);
- }
-
- /**
- * Executes the command and returns only when the process
- * exits.
- *
- * @return <code>true</code> if process was successfully
- * started and correcly exits (exit code doesn't affect
- * to this result).
- */
- public boolean executeSynchronously() {
- execute() ;
- return waitFor() ;
- }
-
- /**
- * Executes the command immediately returns. The process
- * remains in running state. Control of its state should
- * be made by <code>waitFor</code> methods.
- *
- * @return <code>true</code> if process was successfully
- * started.
- */
- public boolean executeAsynchronously() {
- execute() ;
- return isStarted() ;
- }
-
- public void kill() {
- if (!isStarted()) return;
- proc.destroy();
- isStarted = false;
- }
-
- protected void execute() {
- if (isStarted()) {
- throw new RuntimeException(
- "The process handler has already been executed.") ;
- }
- Runtime runtime = Runtime.getRuntime() ;
- try {
- log.println("Starting command: " + cmdLine) ;
- if (workDir != null) {
- proc = runtime.exec(cmdLine, envVars, workDir) ;
- } else {
- proc = runtime.exec(cmdLine, envVars) ;
- }
-
- isStarted = true ;
- } catch (java.io.IOException e) {
- log.println("The command "+cmdLine+" can't be started: " + e);
- return;
- }
- stdout = new Pump(proc.getInputStream(), log, "out > ");
- stderr = new Pump(proc.getErrorStream(), log, "err > ");
- stdIn = new PrintStream(proc.getOutputStream()) ;
-
- flushInput() ;
- }
-
- /**
- * This method is useful when the process was executed
- * asynchronously. Waits for process to exit and return
- * its result.
- *
- * @return <code>true</code> if process correctly exited
- * (exit code doesn't affect to this result).
- */
- public boolean waitFor() {
- return waitFor(0) ;
- }
-
- /**
- * This method is useful when the process was executed
- * asynchronously. Waits during specified time for process
- * to exit and return its status.
- *
- * @return <code>true</code> if process correctly exited
- * (exit code doesn't affect to this result).
- */
- public boolean waitFor(long timeout) {
- if (isFinished()) return true ;
- if (!isStarted()) return false ;
-
- if (timeout == 0) {
- try {
- proc.waitFor() ;
- } catch (InterruptedException e) {
- log.println("The process was interrupted: " + e);
- }
- isFinished = true ;
- try {
- exitValue = proc.exitValue() ;
- } catch (IllegalThreadStateException e) {}
- } else {
- try {
- while (!isFinished && timeout > 0) {
- isFinished = true ;
- Thread.sleep(1000);
- timeout -= 1000 ;
- try {
- exitValue = proc.exitValue() ;
- } catch (IllegalThreadStateException e) {
- isFinished = false ;
- }
- }
- } catch (InterruptedException ex) {
- log.println("The process was interrupted: " + ex);
- }
- }
-
- if (!isFinished) {
- proc.destroy();
- }
-
- try {
- stdout.join();
- stderr.join();
- } catch (InterruptedException e) {}
-
- return isFinished() ;
- }
-
- protected void flushInput() {
- if (stdIn == null) return ;
-
- synchronized(stdInBuff) {
- stdIn.print(stdInBuff);
- stdIn.flush();
- stdInBuff = "" ;
- }
- }
-
- /**
- * Returns the text output by external command to stdout.
- */
- public String getOutputText() {
- return stdout.getStringBuffer();
- }
- /**
- * Returns the text output by external command to stderr.
- */
- public String getErrorText() {
- return stderr.getStringBuffer();
- }
-
- /**
- * Prints the string specified to sdtin of external
- * command. '\n' is not added so if you need you
- * should terminate the string with '\n'. <p>
- *
- * The method can also be called before the command
- * starts its execution. Then the text is buffered
- * and transfered to command when it will be started.
- */
- public void printInputText(String str) {
- stdInBuff += str ;
- flushInput();
- }
-
- /**
- * Returns information about was the command started or
- * not.
- *
- * @return <code>true</code> if the external command was
- * found and successfully started.
- */
- public boolean isStarted() {
- return isStarted ;
- }
-
- /**
- * Returns the information about the final state of command
- * execution.
- *
- * @return <code>true</code> if the command correctly starts,
- * exits and was not interrupted due to timeout.
- */
- public boolean isFinished() {
- return isFinished ;
- }
-
- /**
- * Returns exit code of the external command.
- *
- * @return exit code of command if it was finished,
- * -1 if not.
- */
- public int getExitCode() {
- return exitValue ;
- }
-}
diff --git a/testshl2/source/testshlrunner/TestShl2Runner.java b/testshl2/source/testshlrunner/TestShl2Runner.java
deleted file mode 100644
index 295648121042..000000000000
--- a/testshl2/source/testshlrunner/TestShl2Runner.java
+++ /dev/null
@@ -1,937 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 main;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.RandomAccessFile;
-import java.io.PrintWriter;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.Statement;
-import java.sql.ResultSet;
-
-import java.util.HashMap;
-import java.util.Set;
-import java.util.Iterator;
-import java.util.Properties;
-
-import java.io.FileInputStream;
-
-// -----------------------------------------------------------------------------
-/**
- * This class offers helper function, to easily connect to a database
- * delete values and insert values.
- */
-
-class PropertyHelper
-{
- public static Properties getProperties(String name)
- {
- Properties prop = new Properties();
- FileInputStream propFile = null;
- try {
- propFile = new FileInputStream(name);
- prop.load(propFile);
- propFile.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return prop;
- }
-
- public static void setProperties(Properties prop, String name) {
- FileOutputStream propFile = null;
- try {
- propFile = new FileOutputStream(name);
- prop.store(propFile,"");
- propFile.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
-
-class DBHelper
-{
- /**
- * This method inserts given values into<br>
- * the table 'states'
- * @param values a set of comma separated values to be inserted
- */
-
- public static void SQLinsertValues(String values)
- {
- Statement oStmt = null;
- Connection oCon = null;
- try
- {
- oCon = getMySQLConnection();
- oStmt = oCon.createStatement();
- ResultSet oResult = oStmt.executeQuery("insert into states values ("
- + values + ")");
- }
- catch(Exception e)
- {
- System.out.println("Couldn't insert values to db");
- e.printStackTrace();
- } finally
- {
- try
- {
- oCon.close();
- oCon = null;
- }
- catch (Exception e) {}
- }
- }
- /**
- * This method establishes a Connection<br>
- * with the database 'module_unit' on jakobus
- */
-
- public static Connection getMySQLConnection() throws Exception
- {
- Class.forName("org.gjt.mm.mysql.Driver");
- Connection mysql = DriverManager.getConnection(
- "jdbc:mysql://jakobus:3306/module_unit","admin","admin");
- return mysql;
- }
- /**
- * This method removes all entries of the given<br>
- * module/platform combination
- * @param mdl the name of the module, e.g. sal
- * @param os the name of the platform, e.g. unxsols
- */
-
- public static void SQLdeleteValues(String _sModulName, String _sEnvironment)
- {
- Statement oStmt = null;
- Connection oCon = null;
- try
- {
- oCon = getMySQLConnection();
- oStmt = oCon.createStatement();
- ResultSet oResult = oStmt.executeQuery("delete from states where mdl='"
- + _sModulName + "' AND pf='" + _sEnvironment + "'");
- }
- catch(Exception e)
- {
- System.out.println("Couldn't delete values from db");
- }
- finally
- {
- try
- {
- oCon.close();
- oCon = null;
- }
- catch (Exception e) {}
- }
- }
-}
-
-// -----------------------------------------------------------------------------
-
-/**
- * This class helps to build only one output line if the classname and the methodname are the same.
- */
-
-class CurrentEntry
-{
- public String m_sDate;
- public String m_sClassName;
- public String m_sMethodName;
-
- ArrayList m_sMethodTestNames = new ArrayList();
- ArrayList m_sComments = new ArrayList();
- ArrayList m_sStates = new ArrayList();
-
- public String m_sCommentContainer = "";
-
- CurrentEntry()
- {}
-
- public String getState()
- {
- // build the right State
- String sAllIsRight = "PASSED#OK#";
- ArrayList sFailedStates = new ArrayList();
- boolean bFailed = false;
- for (int i=0; i<m_sStates.size();i++)
- {
- String sStatus = (String) m_sStates.get(i);
- if (!sStatus.equals(sAllIsRight))
- {
- bFailed = true;
- sFailedStates.add(sStatus);
- }
- }
- if (bFailed == false)
- {
- return "PASSED#OK#";
- }
-
- // interpret the failures
- return "PASSED#FAILED#";
- }
-
- public void add(String _sDate, String _sClassName, String _sMethodName, String _sMethodTestName, String _sState, String _sComment)
- {
- m_sDate = _sDate;
- m_sClassName = _sClassName;
- m_sMethodName = _sMethodName;
- m_sMethodTestNames.add(_sMethodTestName);
- m_sStates.add(_sState);
-
- if (_sComment.length() > 0)
- {
- String sComment = _sComment.replace('\'',' ');
-
- m_sComments.add(sComment);
-
- if (m_sCommentContainer.length() > 0)
- {
- m_sCommentContainer += ";<BR>";
- }
- m_sCommentContainer += _sMethodTestName + "(): " + _sComment;
- }
- }
-
-}
-// -----------------------------------------------------------------------------
-
-/**
- * HashMap Helper. At the moment classname and Methodname build a key value
- * if they already exist, we store additional information into the already existing value
- * if not, build an new entry.
- */
-
-class DatabaseEntry
-{
- HashMap aMap = new HashMap();
-
- public DatabaseEntry()
- {
- }
-
- public String Quote(String _sToQuote)
- {
- String ts = "'";
- return ts + _sToQuote + ts;
- }
-
- /**
- * Write down all collected lines into the database.
- */
- public void writeDown(String _sProjectName, String _sEnvironment)
- {
- System.out.println(" ");
- Set aSet = (Set)aMap.keySet();
- Iterator aIter = aSet.iterator();
- String sComma = ",";
-
- while (aIter.hasNext())
- {
- String sKey = (String)aIter.next();
- CurrentEntry aEntry = (CurrentEntry)aMap.get(sKey);
-
- String db_line= Quote(_sProjectName) + sComma +
- Quote( aEntry.m_sClassName) + sComma +
- Quote( aEntry.m_sMethodName) + sComma +
- Quote( aEntry.getState()) + sComma +
- Quote( _sEnvironment) + sComma +
- Quote( aEntry.m_sDate) + sComma +
- Quote( aEntry.m_sCommentContainer);
- System.out.println(db_line);
- DBHelper.SQLinsertValues(db_line);
- }
- }
-
-
- public void add(String _sDate, String _sClassName,
- String _sMethodName, String _sMethodTestName,
- String _sState, String _sComment)
- {
- String sKey = _sClassName + "." + _sMethodName;
- if (aMap.containsKey(sKey))
- {
- CurrentEntry aEntry = (CurrentEntry)aMap.get(sKey);
- aEntry.add(_sDate, _sClassName, _sMethodName, _sMethodTestName, _sState, _sComment);
- }
- else
- {
- CurrentEntry aEntry = new CurrentEntry();
- aEntry.add(_sDate, _sClassName, _sMethodName, _sMethodTestName, _sState, _sComment);
- aMap.put(sKey, aEntry);
- }
- }
-}
-
-/**
- *
- * This class will run the testshl2 script
- *
- * According to a given baseDir it'll first
- * get all scenario files, clean them up<br>
- * Then all sources will be compiled and
- * the scenarios started.<br>
- * After the a scenarios are finished the result
- * will be stored in the database.
- * @version 0.1
- */
-public class TestShl2Runner
-{
-
- Properties m_aProps;
-
- String m_sVersion = "udk399";
- String m_sExtension = "";
- String m_sProjectDir = "";
- String m_sEnvironment = "";
- String m_sProjectName = "";
- String m_sShellExecutable="";
- String m_sLocalEnv="";
-
- /**
- * The constructor to use this class from any other java-class
- * @param bdir the base directory where the qa-subfolder can be found
- * @param pf the platform e.g. unxsols
- * @param mod the module e.g. sal
- * @param ver the version e.g. udk304
- * @param pre the path to the shell, may be "", but is needed on Windows<br>
- * Systems to ensure that the created scripts run in an 4NT-shell
- */
-
-// public TestShl2Runner(String bdir, String pf, String project, String ver, String pre, String localenv)
- public TestShl2Runner(String filename)
- {
- String fs = System.getProperty("file.separator");
-
- m_aProps = PropertyHelper.getProperties(filename);
-
- m_sEnvironment = m_aProps.getProperty("ENV"); // unxsols3.pro
- m_sProjectName = m_aProps.getProperty("PROJECTNAME"); // sal
- m_sProjectDir = m_aProps.getProperty("BASEDIR") + fs + m_sProjectName; // /usr/qaapi/projects/udk/sal
- m_sVersion = m_aProps.getProperty("BUILD"); // udk305
- m_sShellExecutable = m_aProps.getProperty("SHELL"); // /bin/tcsh
- m_sLocalEnv = m_aProps.getProperty("LOCALENV"); // /usr/qaapi/projects/solartmp
-
- // if (m_sVersion.indexOf("-pro") > 1) m_sExtension=".pro";
-
- startAll();
- }
-
- /**
- * The main Method makes it possible to run this class standalone
- * @param args the command line arguments
- */
- public static void main(String args[])
- {
- if (args.length != 1)
- {
- System.out.println("Usage: TestShl2Runner <config.file>");
- System.out.println("Example: TestShl2Runner /usr/qaapi/projects/udk/sal/qa/configfile");
- System.exit(1);
- }
-
- TestShl2Runner aRunner = new TestShl2Runner(args[0]);
- }
-
- // -----------------------------------------------------------------------------
-
- ArrayList getJobs()
- {
- String fs = System.getProperty("file.separator");
- String sJobFile = m_sProjectDir + fs + m_aProps.getProperty("INPUT") + fs + m_aProps.getProperty("JOBFILE");
- ArrayList aLines = getLines(sJobFile);
- return aLines;
- }
-
- // -----------------------------------------------------------------------------
-
- public void startAll()
- {
- String fs = System.getProperty("file.separator");
-
- //get all scenario-files
- System.out.println("Getting jobs");
- ArrayList aJobList = getJobs();
-
- //cleanup scenorio-files and return a working array
- // Object[] the_array = cleanup(m_sProjectDir + fs + "qa" + fs + "sce" + fs,scene_files);
- // System.out.println("...done");
-
- //create a script to build the sources and run the tests
- System.out.println("creating start script for testprocess");
- String scriptName = createScript(aJobList);
- System.out.println("...done");
-
- //start the script
- System.out.println("starting script for testprocess");
- String sScript = m_sShellExecutable + " " + getOutputDir() + fs + scriptName;
- executeScript(sScript);
- System.out.println("...done");
-
- //remove old values from db-table
- DBHelper.SQLdeleteValues(m_sProjectName,m_sEnvironment);
- DBHelper.SQLdeleteValues(m_sProjectName,m_sEnvironment);
-
- //parse the output and store it
- parseOut (aJobList, m_sProjectName, m_sEnvironment, m_sProjectDir);
- }
-
- /**
- * This method reads the lines of a file and puts<br>
- * them into an ArrayList
- * @param filename the name of the file to be read
- */
-
- public ArrayList getLines(String filename)
- {
- File the_file = new File(filename);
- ArrayList the_lines = new ArrayList();
- if (! the_file.exists())
- {
- System.out.println("couldn't find file " + filename);
- return the_lines;
- }
- RandomAccessFile the_reader = null;
- try
- {
- the_reader = new RandomAccessFile(the_file,"r");
- String aLine = "";
- while (aLine != null)
- {
- aLine = the_reader.readLine();
- if ( (aLine != null) &&
- (! (aLine.length() < 2) ) &&
- (! aLine.startsWith("#")))
- {
- the_lines.add(aLine);
- }
- }
- }
- catch (java.io.FileNotFoundException fne)
- {
- System.out.println("couldn't open file " + filename);
- System.out.println("Message: " + fne.getMessage());
- }
- catch (java.io.IOException ie)
- {
- System.out.println("Exception while reading file " + filename);
- System.out.println("Message: " + ie.getMessage());
- }
- try
- {
- the_reader.close();
- }
- catch (java.io.IOException ie)
- {
- System.out.println("Couldn't close file " + filename);
- System.out.println("Message: " + ie.getMessage());
- }
- return the_lines;
- }
-
-
-
- /**
- * This method calls the createScript-methods<br>
- * for the given platform
- * @param basedir the name of the base-directory, e.g. /usr/qaapi/projects/udk/sal
- * @param qajobs jobs to be done
- */
-
- public String createScript(ArrayList _aJobList)
- {
- String res = "";
- if (m_sEnvironment.startsWith("wnt"))
- {
- try
- {
- res = createwntmsci(_aJobList);
- }
- catch (IOException ioe)
- {
- System.out.println("Couldn't create Script");
- }
- }
- else if (m_sEnvironment.startsWith("unx"))
- {
- try
- {
- res = createunx(_aJobList);
- }
- catch (IOException ioe)
- {
- System.out.println("Couldn't create Script");
- }
- }
- else
- {
- // can't handle unknown environment
- }
- return res;
- }
-
- public String getSignalFileParameter()
- {
- String sParameter;
- sParameter = " -sf /var/tmp/signalfile_" + m_sProjectName + "_" + m_sEnvironment + ".txt ";
- return sParameter;
- }
-
- public String getLogParameter(String job)
- {
- String sParameter = " -log " + getLogName(job) + " ";
- return sParameter;
- }
-
- public String getLogName(String job)
- {
- // create the ' -log file '
- String fs = System.getProperty("file.separator");
- String sLogName = getOutputDir() + fs + job + ".log";
- return sLogName;
- }
-
- public String getInputDir()
- {
- String fs = System.getProperty("file.separator");
- String sInputDir = m_sProjectDir + fs + m_aProps.getProperty("INPUT");
- return sInputDir;
- }
-
-
- public String getOutputDir()
- {
- String fs = System.getProperty("file.separator");
- String sOutputDir = m_sProjectDir + fs + m_sEnvironment + fs + m_aProps.getProperty("OUTPUT");
-
- File aFile = new File(sOutputDir);
- aFile.mkdirs();
- return sOutputDir;
- }
-
- public String getCAXParameter()
- {
- String sCAX = " ";
- // Due to the fu....g java that we havn't access to our well formed ;-)
- // environment variables the simple switch -cax do not longer work :-(
-
- // String sSolTmp = System.getenv("SOL_TMP");
- if (m_sLocalEnv.length() > 0)
- {
- sCAX = " -cax -tmp " + m_sLocalEnv;
- }
- // else
- // {
- // due to the fact that we don't want to get hole lokal env if no one exist, do nothing here.
- // }
- return sCAX;
- }
-
- public String getProParameter()
- {
- String sPro = " ";
- if (m_sEnvironment.endsWith(".pro"))
- {
- sPro = " -pro ";
- }
- return sPro;
- }
-
- public String getCompEnvName()
- {
- String sCompEnv;
- if (m_sEnvironment.endsWith(".pro"))
- {
- sCompEnv = String.copyValueOf(m_sEnvironment.toCharArray(), 0, 8);
- }
- else
- {
- sCompEnv = m_sEnvironment;
- }
- return " " + sCompEnv;
- }
-
- /**
- * This method create the script needed to compile and run the<br>
- * the tests on the Windows platform
- * @param basedir the name of the base-directory, e.g. /usr/qaapi/projects/udk/sal
- * @param qajobs jobs to be done
- */
-
- public void PreNPost(FileWriter out, String _sWhat) throws IOException
- {
- String ls = System.getProperty("line.separator");
-
- out.write(getRemark() + " do " + _sWhat + ls);
- for (int i = 1;i<9;i++)
- {
- String sWhat = m_aProps.getProperty(_sWhat + i);
- if (sWhat != null)
- {
- out.write(sWhat + ls);
- }
- }
- out.write(ls);
- }
-
- public String getChangeDirFkt()
- {
- if (m_sEnvironment.startsWith("wnt"))
- {
- return "cdd";
- }
- return "cd";
- }
- public String getRemark()
- {
- if (m_sEnvironment.startsWith("wnt"))
- {
- return "rem ";
- }
- return "# ";
- }
-
- public void do_setsolar(FileWriter out, String _sPreExec) throws IOException
- {
- String ls = System.getProperty("line.separator");
-
- out.write(getRemark() + " do a setsolar" + ls);
- out.write(_sPreExec + " setsolar -" + m_sVersion + getCAXParameter() + getProParameter() + getCompEnvName() + ls);
- out.write(ls);
- }
-
- public void do_cvs(FileWriter out, String _sPreExec, ArrayList _aJobList) throws IOException
- {
- String fs = System.getProperty("file.separator");
- String ls = System.getProperty("line.separator");
- out.write(getChangeDirFkt() + " " + getInputDir() + ls);
- out.write(getRemark() + " do a cvs and a dmake" + ls);
-
- out.write(_sPreExec + " " + "cvs -d" + m_aProps.getProperty("CVSROOT") + " update -d" + ls);
-
- for (int i=0; i<_aJobList.size();i++)
- {
- String sJob = (String) _aJobList.get(i);
-
- out.write(getChangeDirFkt() + " " + getInputDir() + fs + sJob + ls);
- // setenv VCSID lla
- // set VCSID=lla
- out.write(_sPreExec + " " + "dmake -u" + ls);
- }
- out.write(ls);
- }
-
- public void do_testtool(FileWriter out, String _sPreExec, ArrayList _aJobList) throws IOException
- {
- String ls = System.getProperty("line.separator");
- out.write(getRemark() + " call the test tool" + ls);
- out.write(getChangeDirFkt() + " " + getOutputDir() + ls);
- if (m_sEnvironment.startsWith("wnt"))
- {
- out.write("set DISABLE_SAL_DBGBOX=t" + ls);
- }
-
- for (int i=0; i<_aJobList.size();i++)
- {
- String sLine = (String) _aJobList.get(i);
- // String sJob = getJob(sLine);
- out.write(_sPreExec + " " + m_aProps.getProperty("TESTTOOL") + " " + getLibName(sLine, m_sEnvironment) + getLogParameter(sLine) + getSignalFileParameter() + ls);
- }
- out.write(ls);
- }
-
- public String createwntmsci(ArrayList _aJobList) throws IOException
- {
- String fs = System.getProperty("file.separator");
- String ls = System.getProperty("line.separator");
-
- String sBatchFile = m_aProps.getProperty("BATCHFILE");
- File outputFile = new File(getOutputDir(), sBatchFile);
- FileWriter out = new FileWriter(outputFile.toString());
-
- out.write("rem do not edit, will be created automatically by TestShl2Runner.java" + ls);
-
- // String sBuildEnvironment = "wntmsci9";
- PreNPost(out, "PRE");
-
- String sBatchPreExec = "call";
- do_setsolar(out, sBatchPreExec);
- do_cvs(out, sBatchPreExec, _aJobList);
- do_testtool(out, sBatchPreExec, _aJobList);
-
- PreNPost(out, "POST");
-
- // the exit is alsolute need here, because we do not get back, until
- // shell is stopped with exit.
- out.write("exit" + ls);
- out.close();
- return sBatchFile;
- }
-
- /**
- * This method create the script needed to compile and run the<br>
- * the tests on the Unix platform
- * @param basedir the name of the base-directory, e.g. /usr/qaapi/projects/udk/sal
- * @param qajobs jobs to be done
- */
-
- public String createunx(ArrayList _aJobList) throws IOException
- {
- String fs = System.getProperty("file.separator");
- String ls = System.getProperty("line.separator");
-
- String sBatchFile = m_aProps.getProperty("BATCHFILE");
- File outputFile = new File(getOutputDir(), sBatchFile);
- FileWriter out = new FileWriter(outputFile.toString());
-
- out.write("#!/bin/tcsh" + ls); // shebang
- out.write("# do not edit, will be created automatically by TestShl2Runner.java" + ls);
-
- PreNPost(out, "PRE");
-
- String sBatchPreExec = "";
- do_setsolar(out, sBatchPreExec);
- do_cvs(out, sBatchPreExec, _aJobList);
- do_testtool(out, sBatchPreExec, _aJobList);
-
- PreNPost(out, "POST");
-
- out.write("exit" + ls);
- out.close();
-
- // set excution bits
- String sExec = "chmod u+x " + getOutputDir() + fs + sBatchFile;
- Runtime.getRuntime().exec(sExec);
- return sBatchFile;
- }
-
- // -----------------------------------------------------------------------------
-
- /**
- * This method extracts the libname from a given<br>
- * job and adds a relative path based on the platform
- * @param job the job to be done
- * @param os the platform
- */
-
- public String getLibName(String job, String _sEnvironment)
- {
- String fs = System.getProperty("file.separator");
- // BACK: String like "../wntmsci9.pro/bin/rtl_OString.dll"
-
- String res = "";
- int nIndex = job.indexOf(".");
- // if (nIndex > 0)
- // {
- // }
- String sPureFilename = job;
- String purelibname = "";
- if (_sEnvironment.startsWith("wnt"))
- {
- purelibname = "bin" + fs + sPureFilename + ".dll";
- }
- else if (_sEnvironment.startsWith("unx"))
- {
- purelibname = "lib" + fs + "lib" + sPureFilename + ".so";
- }
- else
- {
- // _sEnvironment unknown
- // throw ...
- }
-
- // we are in the wntmsci9[.pro]/qa directory
- // to go to the bin directory we have to go to
- // ../bin or ../lib
- res = m_sProjectDir + fs + m_sEnvironment + fs + purelibname;
- return res;
- }
-
- // -----------------------------------------------------------------------------
-
-/*
- public Object[] cleanup(String sceneDir, String[] scene_files)
- {
- ArrayList res = new ArrayList();
- for (int j=0;j<scene_files.length;j++)
- {
- if (scene_files[j].endsWith(".sce"))
- {
- try
- {
- removeRemark(sceneDir,scene_files[j]);
- }
- catch (IOException ioe)
- {
- System.out.println("Couldn't cleanup Scene-File " + scene_files[j]);
- }
- String pure = scene_files[j].substring(0,
- scene_files[j].indexOf("."));
- res.add(pure + ".qadev");
- }
- }
- return res.toArray();
- }
-
-
- public void removeRemark(String sceneDir,String scene_file)
- throws IOException
- {
- ArrayList org = getLines(sceneDir + scene_file);
- String pure = scene_file.substring(0,scene_file.indexOf("."));
- String ls = System.getProperty("line.separator");
- File outputFile = new File(sceneDir,pure + ".qadev");
- FileWriter out = new FileWriter(outputFile.toString());
- for (int k=0;k<org.size();k++)
- {
- String toWrite = (String)org.get(k);
- if (toWrite.startsWith("#"))
- {
- toWrite=toWrite.substring(1);
- }
- out.write(toWrite + ls);
- }
- out.close();
- }
-*/
-
- public void parseOut (ArrayList sJobList, String _sProjectName, String _sEnvironment, String basedir)
- {
- //parse the out-files and store the data
- String fs = System.getProperty("file.separator");
- for (int i=0; i<sJobList.size();i++)
- {
- String sJob = (String) sJobList.get(i);
- String outFile = getLogName(sJob);
- ArrayList out_lines = getLines(outFile);
- String date="";
-
- DatabaseEntry aEntry = new DatabaseEntry();
-
- for (int j=0;j<out_lines.size();j++)
- {
- String sLine = (String)out_lines.get(j);
- if (sLine.startsWith("["))
- {
- date = sLine.substring(1, 11);
- date = date.replace('.','-');
- }
- else
- {
- if (sLine.startsWith("Test #PASSED#")) break;
- // if (out_lines.get(j).equals(
- // " ---------- ")) break;
-
- try
- {
- String sName = sLine.substring(0, sLine.indexOf(';'));
-
- // count dot's
- int nFirstDot = sName.indexOf('.');
- int nSecondDot = sName.indexOf('.', nFirstDot + 1);
- String sClassName = "";
- String sMethodName = "";
- String sMethodTestName = "";
-
- if (nFirstDot > 0)
- {
- sClassName = sName.substring(0, nFirstDot);
- if (nSecondDot > 0)
- {
- sMethodName = sName.substring(nFirstDot + 1, nSecondDot);
- sMethodTestName = sName.substring(nSecondDot + 1);
- }
- else
- {
- sMethodName = sName.substring(nFirstDot);
- }
- }
- else
- {
- // no FirstDot, also no secondDot!
- sClassName = sName;
- }
-
- String sComment = sLine.substring(sLine.lastIndexOf('#') + 1);
-
- // get state
- int nSecondNo = sLine.indexOf('#');
- nSecondNo = sLine.indexOf('#', nSecondNo + 1);
- String sState = sLine.substring(sLine.indexOf(";") + 1, nSecondNo + 1);
-
- aEntry.add(date, sClassName, sMethodName, sMethodTestName, sState, sComment);
- }
- catch(IndexOutOfBoundsException e)
- {
- System.out.println("IndexOutOfBoundException: caught in parseOut()");
- }
- }
- }
- aEntry.writeDown(_sProjectName, _sEnvironment);
- }
- }
-
- // -----------------------------------------------------------------------------
-
- private void shortWait(int nMilliSec)
- {
- try
- {
- Thread.sleep(nMilliSec);
- }
- catch (InterruptedException ex)
- {
- }
-
- }
-
- // -----------------------------------------------------------------------------
-
- public boolean executeScript(String scriptFile)
- {
- System.out.println("Running " + scriptFile);
-
- // Process testshl = Runtime.getRuntime().exec(scriptFile);
- ProcessHandler aHandler = new ProcessHandler(scriptFile);
- boolean bBackValue = aHandler.executeSynchronously();
- return bBackValue;
- // return false;
- }
-}
-
diff --git a/testshl2/source/versioner.cxx b/testshl2/source/versioner.cxx
deleted file mode 100644
index 10040ff8cd5f..000000000000
--- a/testshl2/source/versioner.cxx
+++ /dev/null
@@ -1,117 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string>
-
-#include "testshl/versionhelper.hxx"
-
-#include <rtl/ustring.hxx>
-#include <iostream>
-
-// ----------------------------------- Main -----------------------------------
-#if (defined UNX) || (defined OS2)
-int main( int, char* argv[] )
-#else
-int _cdecl main( int, char* argv[] )
-#endif
-{
- static char const * optionSet[] = {
- "-time, display time only",
- "-date, display date only",
- "-upd, display UPD only",
- "-minor, display minor only",
- "-build, display build only",
- "-inpath, display inpath only",
- "-verbose, be verbose",
- "-h:s, display help or help on option",
- "-help:s, see -h",
- NULL
- };
-
- GetOpt opt( argv, optionSet );
-
- // someone indicates that he needs help
- if ( opt.hasOpt( "-h" ) || opt.hasOpt( "-help" ) )
- {
- opt.showUsage();
- exit(0);
- }
-
- if (opt.getParams().empty())
- {
- // std::cerr << "error: At least a library should given." << std::endl;
- fprintf(stderr, "error: At least a library should given.\n");
- opt.showUsage();
- exit(0);
- }
-
- rtl::OUString suLibraryName = rtl::OStringToOUString(opt.getFirstParam(), RTL_TEXTENCODING_ASCII_US );
- VersionHelper aHelper(suLibraryName, opt);
-
- if (! aHelper.isOk() )
- {
- fprintf(stderr, "error: No version info found.\n");
- exit(1);
- }
-
- if (opt.hasOpt("-time"))
- {
- fprintf(stdout, "%s\n", aHelper.getTime().getStr());
- }
- else if (opt.hasOpt("-date"))
- {
- fprintf(stdout, "%s\n", aHelper.getDate().getStr());
- }
- else if (opt.hasOpt("-upd"))
- {
- fprintf(stdout, "%s\n", aHelper.getUpd().getStr());
- }
- else if (opt.hasOpt("-minor"))
- {
- fprintf(stdout, "%s\n", aHelper.getMinor().getStr());
- }
- else if (opt.hasOpt("-build"))
- {
- fprintf(stdout, "%s\n", aHelper.getBuild().getStr());
- }
- else if (opt.hasOpt("-inpath"))
- {
- fprintf(stdout, "%s\n", aHelper.getInpath().getStr());
- }
- else
- {
- // std::cout << aHelper << std::endl;
- aHelper.printall(stdout);
- }
-
- return 0;
-}
diff --git a/testshl2/source/versionhelper.cxx b/testshl2/source/versionhelper.cxx
deleted file mode 100644
index 2a2f77fbbc6e..000000000000
--- a/testshl2/source/versionhelper.cxx
+++ /dev/null
@@ -1,124 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdlib.h>
-#include "testshl/versionhelper.hxx"
-
-#include <rtl/ustring.hxx>
-#include <rtl/string.hxx>
-
-// -----------------------------------------------------------------------------
-VersionHelper::VersionHelper(rtl::OUString const& _sDLLName, GetOpt & _aOptions)
- :DynamicLibraryHelper(_sDLLName, _aOptions),
- m_pInfo(NULL)
-{
- // try to get the entry pointer
- FktGetVersionInfoPtr pFunc = (FktGetVersionInfoPtr)
- m_pModule->getFunctionSymbol(
- rtl::OUString::createFromAscii( "GetVersionInfo" ) );
-
- if (pFunc)
- {
- const VersionInfo *pVersion = (pFunc)();
- m_pInfo = pVersion;
- }
-}
-
-//# void VersionHelper::print(std::ostream &stream)
-//# {
-//# stream << " Time:" << getTime() << std::endl;
-//# stream << " Date:" << getDate() << std::endl;
-//# stream << " Upd:" << getUpd() << std::endl;
-//# stream << " Minor:" << getMinor() << std::endl;
-//# stream << " Build:" << getBuild() << std::endl;
-//# stream << "Inpath:" << getInpath() << std::endl;
-//# }
-//#
-//# std::ostream & operator <<( std::ostream &stream, VersionHelper &_aVersion )
-//# {
-//# _aVersion.print (stream);
-//# return stream;
-//# }
-//#
-// -----------------------------------------------------------------------------
-
-bool VersionHelper::isOk() const
-{
- if (m_pInfo != NULL) return true;
- return false;
-}
-
-rtl::OString VersionHelper::getTime() const
-{
- return m_pInfo->pTime;
-}
-rtl::OString VersionHelper::getDate() const
-{
- return m_pInfo->pDate;
-}
-rtl::OString VersionHelper::getUpd() const
-{
- return m_pInfo->pUpd;
-}
-rtl::OString VersionHelper::getMinor() const
-{
- return m_pInfo->pMinor;
-}
-rtl::OString VersionHelper::getBuild() const
-{
- return m_pInfo->pBuild;
-}
-rtl::OString VersionHelper::getInpath() const
-{
- return m_pInfo->pInpath;
-}
-
-
-
-void VersionHelper::printall(FILE * out)
-{
- if (isOk())
- {
- rtl::OString aStr = getTime();
- fprintf(out, " Time:%s\n", aStr.getStr() );
- fprintf(out, " Date:%s\n", getDate().getStr() );
- fprintf(out, " Upd:%s\n", getUpd().getStr() );
- fprintf(out, " Minor:%s\n", getMinor().getStr() );
- fprintf(out, " Build:%s\n", getBuild().getStr() );
- fprintf(out, "Inpath:%s\n", getInpath().getStr());
-
- fflush(out);
- }
- else
- {
- fprintf(stderr, "error: No version info found.\n");
- }
-}
-
diff --git a/testshl2/workben/codegen/README b/testshl2/workben/codegen/README
deleted file mode 100644
index 0c24b4a05856..000000000000
--- a/testshl2/workben/codegen/README
+++ /dev/null
@@ -1,9 +0,0 @@
-This directory contains a simple code generator self test.
-Within UNIX simply start ./selftest
-
-You will get lot of output.
-The code generator creates some files,
-dmake compiles the generated code,
-testshl2 checks the code.
-
-If something goes wrong, you will hopefully get an informal error message.
diff --git a/testshl2/workben/codegen/checkfile b/testshl2/workben/codegen/checkfile
deleted file mode 100644
index 228642da52af..000000000000
--- a/testshl2/workben/codegen/checkfile
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/csh
-
-if ( -e $1 ) then
- echo "$1 exist."
-else
- echo "$1 doesn't exist."
-endif
diff --git a/testshl2/workben/codegen/cleanup b/testshl2/workben/codegen/cleanup
deleted file mode 100644
index a3fb82312cdf..000000000000
--- a/testshl2/workben/codegen/cleanup
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/csh
-
-# cleanup
-rm -f *.cxx *.new *.exp
-
-if ( -e makefile.mk_orig ) then
- rm -f makefile.mk
- # rename original makefile back
- mv makefile.mk_orig makefile.mk
-endif
diff --git a/testshl2/workben/codegen/makefile.mk b/testshl2/workben/codegen/makefile.mk
deleted file mode 100644
index 24039e69a548..000000000000
--- a/testshl2/workben/codegen/makefile.mk
+++ /dev/null
@@ -1,45 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=testshl2
-TARGET=codegen
-# this is removed at the moment because we need some enhancements
-# TESTDIR=TRUE
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-#------------------------------- All object files -------------------------------
-
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/testshl2/workben/codegen/selftest b/testshl2/workben/codegen/selftest
deleted file mode 100644
index cf5e80e513ce..000000000000
--- a/testshl2/workben/codegen/selftest
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/csh
-
-echo "========== Generate code =========="
-echo
-
-perl ../../source/codegen/codegen.pl test.job
-
-echo
-echo "========== check files =========="
-echo
-
-./checkfile makefile.new
-./checkfile export.exp
-./checkfile skeleton.cxx
-./checkfile nomethod.cxx
-
-echo
-echo "========== backup makefile =========="
-echo
-
-# backup original makefile
-mv makefile.mk makefile.mk_orig
-mv makefile.new makefile.mk
-
-echo
-echo "========== build new sources =========="
-echo
-
-dmake debug=t
-
-echo
-echo "========== call testshl2 =========="
-echo
-
-
-if ( -e ../../${INPATH}/bin/testshl2 ) then
- ../../${INPATH}/bin/testshl2 -jobonly test.job
-
- echo
- ../../${INPATH}/bin/testshl2 ../../${INPATH}/lib/libtest.so
-else
- echo "testshl2 doesn't exist, test canceled."
-endif
-
-echo
-echo "========== cleanup =========="
-echo
-
-./cleanup
diff --git a/testshl2/workben/codegen/test.job b/testshl2/workben/codegen/test.job
deleted file mode 100644
index 07c47329705b..000000000000
--- a/testshl2/workben/codegen/test.job
+++ /dev/null
@@ -1,17 +0,0 @@
-# Jobfile
-# this is a job file which contain functions, which should exist
-
-skeleton.bones.bone_001
-skeleton.bones.bone_002
-
-skeleton.bones2.bone_001
-skeleton.bones2.bone_002
-
-nomethod.blah
-illegal
-
-# blah.fasel.suelz
-
-
-# rtl_OUStringBuffer.*
-
diff --git a/testshl2/workben/codegen/w32/checkfile.btm b/testshl2/workben/codegen/w32/checkfile.btm
deleted file mode 100644
index 091ecfbf9faf..000000000000
--- a/testshl2/workben/codegen/w32/checkfile.btm
+++ /dev/null
@@ -1,7 +0,0 @@
-rem %1 is the filename
-
-iff exist %1 then
-echo Ok: %1 exist.
-else
-echo ERROR: %1 does not exist.
-endiff
diff --git a/testshl2/workben/codegen/w32/cleanup.btm b/testshl2/workben/codegen/w32/cleanup.btm
deleted file mode 100644
index 5073ef887bac..000000000000
--- a/testshl2/workben/codegen/w32/cleanup.btm
+++ /dev/null
@@ -1,9 +0,0 @@
-rem cleanup
-del *.cxx *.new *.exp
-
-iff exist makefile.mk_orig then
- del makefile.mk
- rem rename original makefile back
- ren makefile.mk_orig makefile.mk
-endiff
-
diff --git a/testshl2/workben/codegen/w32/makefile.mk b/testshl2/workben/codegen/w32/makefile.mk
deleted file mode 100644
index d0ab5baf4afb..000000000000
--- a/testshl2/workben/codegen/w32/makefile.mk
+++ /dev/null
@@ -1,45 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=testshl2
-TARGET=codegen
-# this is removed at the moment because we need some enhancements
-# TESTDIR=TRUE
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-#------------------------------- All object files -------------------------------
-
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/testshl2/workben/codegen/w32/selftest.btm b/testshl2/workben/codegen/w32/selftest.btm
deleted file mode 100644
index e181ecc3158b..000000000000
--- a/testshl2/workben/codegen/w32/selftest.btm
+++ /dev/null
@@ -1,47 +0,0 @@
-
-rem demo
-
-echo "========== Generate code =========="
-echo
-
-perl ..\..\..\source\codegen\codegen.pl test.job
-
-echo
-echo "========== check files =========="
-echo
-
-call checkfile makefile.new
-call checkfile export.exp
-call checkfile skeleton.cxx
-call checkfile nomethod.cxx
-
-echo
-echo "========== backup makefile =========="
-echo
-
-ren makefile.mk makefile.mk_orig
-ren makefile.new makefile.mk
-
-echo
-echo "========== build new sources =========="
-echo
-
-call dmake debug=t
-
-echo
-echo "========== call testshl2 =========="
-echo
-
-iff exist ..\..\..\%INPATH%\bin\testshl2.exe then
-call ..\..\..\%INPATH%\bin\testshl2 -jobonly test.job
-call ..\..\..\%INPATH%\bin\testshl2 ..\..\..\%INPATH%\bin\test.dll
-else
- echo "testshl2 doesn't exist, test canceled."
-endiff
-
-echo
-echo "========== cleanup =========="
-echo
-
-call cleanup.btm
-
diff --git a/testshl2/workben/codegen/w32/test.job b/testshl2/workben/codegen/w32/test.job
deleted file mode 100644
index 07c47329705b..000000000000
--- a/testshl2/workben/codegen/w32/test.job
+++ /dev/null
@@ -1,17 +0,0 @@
-# Jobfile
-# this is a job file which contain functions, which should exist
-
-skeleton.bones.bone_001
-skeleton.bones.bone_002
-
-skeleton.bones2.bone_001
-skeleton.bones2.bone_002
-
-nomethod.blah
-illegal
-
-# blah.fasel.suelz
-
-
-# rtl_OUStringBuffer.*
-
diff --git a/testshl2/workben/dlltest/export.exp b/testshl2/workben/dlltest/export.exp
deleted file mode 100644
index a13529da5876..000000000000
--- a/testshl2/workben/dlltest/export.exp
+++ /dev/null
@@ -1 +0,0 @@
-registerAllTestFunction
diff --git a/testshl2/workben/dlltest/makefile.mk b/testshl2/workben/dlltest/makefile.mk
deleted file mode 100644
index fdbd8ce4b456..000000000000
--- a/testshl2/workben/dlltest/makefile.mk
+++ /dev/null
@@ -1,126 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=..$/..
-PRJINC=
-
-PRJNAME=testshl2
-TARGET=onefunc
-TARGETTYPE=CUI
-
-ENABLE_EXCEPTIONS=TRUE
-#USE_LDUMP2=TRUE
-#LDUMP2=LDUMP3
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-
-# ------------------------------------------------------------------
-#--------------------------------- Objectfiles ---------------------------------
-OBJFILES=$(OBJ)$/onefuncstarter.obj
-SLOFILES=$(SLO)$/onefunc.obj
-
-# -------------------------------------------------------------------------------
-
-LIB1TARGET= $(LB)$/$(TARGET)_libfile.lib
-LIB1OBJFILES= $(SLOFILES)
-
-.IF "$(GUI)" == "UNX"
-LIB1ARCHIV=$(LB)$/lib$(TARGET)$(DLLPOSTFIX).a
-.ENDIF
-
-# ------------------------------------------------------------------
-SHL2OBJS = $(SLOFILES)
-
-SHL2TARGET= $(TARGET)_DLL
-SHL2STDLIBS+=\
- $(SALLIB)
-
-SHL2DEPN=
-SHL2IMPLIB= i$(SHL2TARGET)
-SHL2DEF= $(MISC)$/$(SHL2TARGET).def
-
-DEF2NAME =$(SHL2TARGET)
-DEF2EXPORTFILE= export.exp
-
-#----------------------------- prog with *.lib file -----------------------------
-
-APP1TARGET= $(TARGET)starter
-APP1OBJS=$(OBJFILES)
-
-APP1STDLIBS=$(SALLIB)
-
-APP1DEPN= $(APP1OBJS) $(LIB1TARGET)
-APP1LIBS= $(LIB1TARGET)
-
-#-------------------------- executable with LIBARCHIV --------------------------
-
-APP2TARGET= $(TARGET)starter2
-APP2OBJS= $(OBJFILES)
-
-APP2STDLIBS=$(SALLIB)
-.IF "$(GUI)" == "UNX"
-APP2STDLIBS+=$(LB)$/lib$(TARGET)$(DLLPOSTFIX).a
-.ENDIF
-.IF "$(GUI)" == "WNT"
-APP2STDLIBS+=$(LIB1TARGET)
-.ENDIF
-
-APP2DEPN= $(APP1OBJS) $(LIB1TARGET)
-APP2LIBS=
-
-#----------------------- executable with dynamic library -----------------------
-
-APP3TARGET= $(TARGET)starter3
-APP3OBJS= $(OBJFILES)
-
-APP3STDLIBS=$(SALLIB)
-
-.IF "$(GUI)" == "WNT"
-APP3STDLIBS+=i$(SHL2TARGET).lib
-.ENDIF
-.IF "$(GUI)" == "UNX"
-APP3STDLIBS+=-l$(SHL2TARGET)
-.ENDIF
-
-APP3DEPN= $(APP1OBJS) $(LIB1TARGET)
-APP3LIBS=
-# APP3DEF=
-
-#----------------------- executable without any other files -----------------------
-
-APP4TARGET= $(TARGET)starter4
-APP4OBJS= $(OBJFILES)
-
-APP4STDLIBS=$(SALLIB)
-
-APP4DEPN= $(APP1OBJS)
-APP4LIBS=
-# APP3DEF=
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : _cppunit.mk
diff --git a/testshl2/workben/dlltest/onefuncstarter.cxx b/testshl2/workben/dlltest/onefuncstarter.cxx
deleted file mode 100644
index b62a1169d15a..000000000000
--- a/testshl2/workben/dlltest/onefuncstarter.cxx
+++ /dev/null
@@ -1,140 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <vector>
-#include <stdio.h>
-#include "registerfunc.h"
-#include <osl/module.hxx>
-#include <osl/process.h>
-#include <osl/file.hxx>
-
-#include <rtl/string.hxx>
-#include <rtl/ustring.hxx>
-
-typedef std::vector<FktPtr> FunctionList;
-FunctionList m_Functions;
-
-extern "C" bool SAL_CALL registerFunc(FktPtr _pFunc, const char* _sFuncName)
-{
- printf("Function register call for func(%s) successful.\n", _sFuncName);
- m_Functions.push_back(_pFunc);
- // FktPtr pFunc = _pFunc;
- // if (_pFunc)
- // {
- // (_pFunc)();
- // }
-
- return true;
-}
-
-void callAll()
-{
- for(FunctionList::const_iterator it = m_Functions.begin();
- it != m_Functions.end();
- ++it)
- {
- FktPtr pFunc = *it;
- if (pFunc)
- {
- (pFunc)();
- }
- }
-}
-
-// void test_link_at_compiletime()
-// {
-// FktRegFuncPtr pRegisterFunc = &registerFunc;
-// registerAll(pRegisterFunc);
-// callAll();
-// }
-
-
-// -----------------------------------------------------------------------------
-rtl::OUString convertPath( rtl::OString const& sysPth )
-{
- // PRE: String should contain a filename, relativ or absolut
- rtl::OUString sysPath( rtl::OUString::createFromAscii( sysPth.getStr() ) );
- rtl::OUString fURL;
- if ( sysPth.indexOf("..") == 0 )
- {
- // filepath contains '..' so it's a relative path make it absolut.
- rtl::OUString curDirPth;
- osl_getProcessWorkingDir( &curDirPth.pData );
- osl::FileBase::getAbsoluteFileURL( curDirPth, sysPath, fURL );
- }
- else
- {
- osl::FileBase::getFileURLFromSystemPath( sysPath, fURL );
- }
- return fURL;
-}
-// -----------------------------------------------------------------------------
-
-void test_link_at_runtime()
-{
- ::osl::Module* pModule;
- pModule = new ::osl::Module();
- // create and load the module (shared library)
- // pModule = new ::osl::Module();
-#if (defined WNT) || (defined OS2)
- pModule->load( convertPath( rtl::OString( "onefunc_DLL.dll" ) ) );
-#endif
-#ifdef UNX
- pModule->load( convertPath( rtl::OString( "libonefunc_DLL.so" ) ) );
-#endif
-
- // get entry pointer
- FktRegAllPtr pFunc = (FktRegAllPtr) pModule->getSymbol( rtl::OUString::createFromAscii( "registerAllTestFunction" ) );
-
- if (pFunc)
- {
- FktRegFuncPtr pRegisterFunc = &registerFunc;
- pFunc(pRegisterFunc);
- callAll();
- }
-
- delete pModule;
-}
-
-
-
-// ----------------------------------- Main -----------------------------------
-#if (defined UNX) || (defined OS2)
-int main( int argc, char* argv[] )
-#else
-int _cdecl main( int argc, char* argv[] )
-#endif
-{
- (void) argc;
- (void) argv;
-// test_link_at_compiletime();
- test_link_at_runtime();
- return 0;
-}
diff --git a/testshl2/workben/dlltest/registerfunc.h b/testshl2/workben/dlltest/registerfunc.h
deleted file mode 100644
index 805b84bc7ddd..000000000000
--- a/testshl2/workben/dlltest/registerfunc.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 _register_h
-#define _register_h
-
-#include <sal/types.h>
-
-typedef void (* FktPtr)(void);
-// register the given void* as a function pointer, true, if successful
-extern "C" bool SAL_CALL registerFunc(FktPtr aFunc, const char* aFuncName);
-
-typedef bool (* FktRegFuncPtr)(FktPtr aFunc, const char* aFuncName);
-extern "C" void SAL_CALL registerAllTestFunction(FktRegFuncPtr aFunc);
-
-typedef void (* FktRegAllPtr)(FktRegFuncPtr aFunc);
-#endif
diff --git a/testshl2/workben/examples/makefile.mk b/testshl2/workben/examples/makefile.mk
deleted file mode 100644
index 3ab358d2dc92..000000000000
--- a/testshl2/workben/examples/makefile.mk
+++ /dev/null
@@ -1,64 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=..$/..
-PRJINC=
-
-PRJNAME=testshl2
-TARGET=demotest
-TARGETTYPE=CUI
-
-ENABLE_EXCEPTIONS=TRUE
-#USE_LDUMP2=TRUE
-#LDUMP2=LDUMP3
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-
-# ------------------------------------------------------------------
-
-#--------------------------------- Objectfiles ---------------------------------
-SLOFILES=$(SLO)$/testshl_test.obj
-
-# ------------------------------------------------------------------
-SHL2OBJS = $(SLOFILES)
-
-SHL2TARGET= $(TARGET)
-SHL2STDLIBS=\
- $(SALLIB) \
- $(SOLARLIBDIR)$/cppunit.lib
-
-SHL2DEPN=
-SHL2IMPLIB= i$(SHL2TARGET)
-SHL2DEF= $(MISC)$/$(SHL2TARGET).def
-
-DEF2NAME =$(SHL2TARGET)
-DEF2EXPORTFILE= export.exp
-
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/testshl2/workben/examples/testshl_test.cxx b/testshl2/workben/examples/testshl_test.cxx
deleted file mode 100644
index 2452f8310660..000000000000
--- a/testshl2/workben/examples/testshl_test.cxx
+++ /dev/null
@@ -1,286 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdio.h>
-
-#ifdef WNT
-// #define UNDER_WINDOWS_DEBUGGING
-// Nice feature, to debug under windows, install msdev locally and use DebugBreak() to stop a new process at a point you want.
-#ifdef UNDER_WINDOWS_DEBUGGING
-#include <tools/presys.h>
-#include <windows.h>
-#include <tools/postsys.h>
-
-#define VCL_NEED_BASETSD
-
-#endif /* UNDER_WINDOWS_DEBUGGING */
-#endif /* WNT */
-
-
-#include <vector>
-
-
-#ifndef _SAL_TRES_H_
-#include <rtl/tres.h>
-#endif
-
-#ifndef _TESTSHL_TSTMGR_H_
-#include "tstmgr.h"
-#endif
-
-#ifndef _RTL_STRING_HXX_
- #include <rtl/string.hxx>
-#endif
-
-#include <osl/time.h>
-
-using namespace std;
-
-
-/**
- * create bitmap of comandline parameters
- */
-sal_uInt32 createFlags( vector< sal_Char* > const& cmdln )
-{
- sal_uInt32 retflags = rtl_tres_Flag_OK;
-
- vector< sal_Char* >::const_iterator iter = cmdln.begin();
- while( iter != cmdln.end() )
- {
- fprintf( stderr, "%s\n", *iter );
- if ( *iter[0] == '-' )
- {
- rtl::OString item( *iter );
- if ( item == "-boom" )
- retflags |= rtl_tres_Flag_BOOM;
-
- if ( item == "-verbose" )
- retflags |= rtl_tres_Flag_VERBOSE;
-
- if ( item == "-skip" )
- retflags |= rtl_tres_Flag_SKIP;
-
- if ( item == "-log" )
- retflags |= rtl_tres_Flag_LOG;
-
- if ( item == "-his" )
- retflags |= rtl_tres_Flag_HIS;
-
- if ( item == "-time" )
- retflags |= rtl_tres_Flag_TIME;
-
- if ( item == "-msg" )
- retflags |= rtl_tres_Flag_MSG;
-
- if ( item == "-quiet" )
- retflags |= rtl_tres_Flag_QUIET;
- }
- iter++;
- }
-
- return retflags;
-}
-
-sal_uInt32 createFlags(int argc, char* argv[])
-{
- vector< sal_Char* > cmdln;
- sal_Int32 i;
-
- /* collect comandline */
- for ( i = 1; i < argc; i++ )
- cmdln.push_back( argv[i] );
-
- return createFlags(cmdln);
-}
-
-// -----------------------------------------------------------------------------
-
-/**
- * display usage screen
- */
-
-void usage()
-{
- fprintf( stdout,
- "USAGE: testshl shlname scename [-boom][-verbose][-log][-his][-msg]\n" );
- exit(0);
-}
-
-
-#include <fstream>
-#include <cppunit/TestFixture.h>
-#include <cppunit/TestCaller.h>
-#include <cppunit/TestSuite.h>
-#include <cppunit/TestResult.h>
-#include <cppunit/TestResultCollector.h>
-#include <cppunit/TestAssert.h>
-#include <cppunit/TextTestResult.h>
-
-namespace CppunitTest
-{
- class AStringTest : public CppUnit::TestCase
- {
- rtl::OString *m_pStr;
- public:
- AStringTest()
- :m_pStr(NULL) {}
-
- void setUp()
- {
- m_pStr = new rtl::OString("test1");
- // throw std::exception("initialization failed.");
- }
-
- void tearDown()
- {
- delete m_pStr;
- }
-
- void testEquality()
- {
- CPPUNIT_ASSERT( *m_pStr == "test1" );
- CPPUNIT_ASSERT( (*m_pStr).equalsIgnoreAsciiCase("Test1") );
- CPPUNIT_ASSERT( (*m_pStr).equalsIgnoreAsciiCase("Test2") );
- CPPUNIT_ASSERT( *m_pStr == "test1" );
- CPPUNIT_ASSERT( *m_pStr == "must also fail" );
- }
- void testEquality2()
- {
- rtl::OString aStr("test2");
- CPPUNIT_ASSERT( aStr == "test2" );
- CPPUNIT_ASSERT_MESSAGE("ein vergleichstest", aStr == "test2");
- CPPUNIT_ASSERT( aStr == "must also fail" );
- }
- void testThrow()
- {
- throw std::exception("an own exception!");
- CPPUNIT_ASSERT( *m_pStr == "test2" );
- }
- };
-
- CppUnit::TestSuite *suite1()
- {
- CppUnit::TestSuite *suite = new CppUnit::TestSuite( "AStringTest" );
-
- // CppUnit::TestSuite suite;
- // CppUnit::TextTestResult result;
-
- suite->addTest( new CppUnit::TestCaller<AStringTest>( "throw test", &AStringTest::testThrow ));
-// suite->addTest( new CppUnit::TestCaller<AStringTest>( "test op eq", &AStringTest::testEquality ));
-// suite->addTest( new CppUnit::TestCaller<AStringTest>( "test op eq", &AStringTest::testEquality2 ));
-
- return suite;
- }
-
- // -----------------------------------------------------------------------------
-
- class ASimpleTest : public CppUnit::TestCase
- {
- public:
- void testEqual()
- {
- CPPUNIT_ASSERT( 1 == 1 );
- }
- };
-
- CppUnit::TestSuite *suite2()
- {
- CppUnit::TestSuite *suite = new CppUnit::TestSuite( "A simple test" );
-
- // CppUnit::TestSuite suite;
- // CppUnit::TextTestResult result;
-
- suite->addTest( new CppUnit::TestCaller<ASimpleTest>( "1 == 1", &ASimpleTest::testEqual ));
-
- return suite;
- }
-
- // -----------------------------------------------------------------------------
-
- CppUnit::TestSuite *suite()
- {
- CppUnit::TestSuite *suite = new CppUnit::TestSuite( "A simple test" );
-
- // CppUnit::TestSuite suite;
- // CppUnit::TextTestResult result;
-
- suite->addTest( suite1() );
-// suite->addTest( suite2() );
-
- return suite;
- }
-}
-
-void cppunitbased_test()
-{
- {
- // ofstream out("c:\\temp\\output.txt", ios::out);
- CppUnit::TextTestResult aResult;
-
- CppUnit::TestSuite* pSuite = CppunitTest::suite();
-
- int nTests = pSuite->countTestCases();
- pSuite->run(&aResult);
-
- // aResult.print(out);
- cout << aResult;
-
- delete pSuite;
- }
-
- exit(1);
-}
-
-// ----------------------------------- Main -----------------------------------
-#if (defined UNX) || (defined OS2)
-int main( int argc, char* argv[] )
-#else
-int _cdecl main( int argc, char* argv[] )
-#endif
-{
- cppunitbased_test();
-
- tslTestManager hMgr = 0;
-
- /* show usage screen if too less parameters */
- if ( argc < 3 )
- usage();
-
-#ifdef UNDER_WINDOWS_DEBUGGING
- DebugBreak();
-#endif
-
- sal_uInt32 nCmdlinebitflags = createFlags( argc, argv );
-
- hMgr = tsl_TestManager_create( argv, argc, nCmdlinebitflags );
- tsl_TestManager_run( hMgr );
- tsl_TestManager_destroy( hMgr );
- return 0;
-}
diff --git a/testshl2/workben/garbage_dump/float.cxx b/testshl2/workben/garbage_dump/float.cxx
deleted file mode 100644
index 30b5b7c2aebd..000000000000
--- a/testshl2/workben/garbage_dump/float.cxx
+++ /dev/null
@@ -1,137 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-#include <stdio.h>
-#include <double>
-#include <math.h> // fabs()
-// #include <sal/types.h>
-
-#define sal_Int16 short
-#define SAL_CALL
-
-// LLA: from kernel.h
-/*
- * min()/max() macros that also do
- * strict type-checking.. See the
- * "unnecessary" pointer comparison.
- */
-#define MIN(x,y) ({ \
- const typeof(x) _x = (x); \
- const typeof(y) _y = (y); \
- (void) (&_x == &_y); \
- _x < _y ? _x : _y; })
-
-#define MAX(x,y) ({ \
- const typeof(x) _x = (x); \
- const typeof(y) _y = (y); \
- (void) (&_x == &_y); \
- _x > _y ? _x : _y; })
-
-//------------------------------------------------------------------------
-// testing the method toDouble()
-//------------------------------------------------------------------------
-template<class T>
-sal_Int16 SAL_CALL test_rtl_OString_checkPrecisionSize()
-{
- sal_Int16 nSize = sizeof(T);
- T nCalcValue = 1.0;
-
- // (i + 1) is the current precision
- sal_Int16 i = 0;
- for (i=0;i<50;i++)
- {
- nCalcValue *= 10;
- T nValue = nCalcValue + 0.1;
- T dSub = nValue - nCalcValue;
- // ----- 0.11 ---- 0.1 ---- 0.09 -----
- if (0.11 > dSub && dSub < 0.09)
- {
- // due to the fact, that the value is break down we sub 1 from the precision value
- // but to suppress this, we start at zero, precision is i+1 till here --i;
- break;
- }
- }
-
- sal_Int16 j= 0;
- nCalcValue = 1.0;
- for (j=0;j<50;j++)
- {
- nCalcValue /= 10;
- T nValue = nCalcValue + 1.0;
- T dSub = nValue - 1.0;
- // ---- 0.02 ----- 0.01 ---- 0 --- -0.99 ---- -0.98 ----
- T dSubAbsolut = fabs(dSub);
- // ---- 0.02 ----- 0.01 ---- 0 (cut)
- if ( dSub == 0)
- break;
- }
- if (i != j)
- {
- // hmmm....
- // imho i +- 1 == j is a good value
- int n = i - j;
- if (n < 0) n = -n;
- if (n <= 1)
- {
- return MIN(i,j);
- }
- else
- {
- printf("warning: presision differs more than 1");
- }
- }
-
- return i;
-}
-
-void SAL_CALL test_precision( )
-{
- sal_Int16 nPrecision;
- nPrecision = test_rtl_OString_checkPrecisionSize<float>();
- nPrecision = test_rtl_OString_checkPrecisionSize<double>();
- nPrecision = test_rtl_OString_checkPrecisionSize<long double>();
- nPrecision = test_rtl_OString_checkPrecisionSize<Double>();
-}
-
-// ----------------------------------- Main -----------------------------------
-#if (defined UNX) || (defined OS2)
-int main( int argc, char* argv[] )
-#else
-int main( int argc, char* argv[] )
-#endif
-{
- test_precision();
- return 0;
-}
-
-// The following sets variables for GNU EMACS
-// Local Variables:
-// tab-width:4
-// End:
diff --git a/testshl2/workben/garbage_dump/nippondir.cxx b/testshl2/workben/garbage_dump/nippondir.cxx
deleted file mode 100644
index 8cde8c227f22..000000000000
--- a/testshl2/workben/garbage_dump/nippondir.cxx
+++ /dev/null
@@ -1,316 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <iostream>
-#include<osl/file.hxx>
-
-#include<osl/thread.hxx>
-#include <tools/string.hxx>
-
-// -----------------------------------------------------------------------------
-// ---------------------------------- defines ----------------------------------
-// -----------------------------------------------------------------------------
-#ifndef ASCII
-#define ASCII(x) OUString::createFromAscii(x)
-#endif
-
-using namespace osl;
-using namespace rtl;
-using namespace std;
-
-
-ostream& operator << (ostream& out, rtl::OUString const& aStr)
-{
- sal_Unicode const* const pStr = aStr.getStr();
- sal_Unicode const* const pEnd = pStr + aStr.getLength();
- for (sal_Unicode const* p = pStr; p < pEnd; ++p)
- if (0 < *p && *p < 127) // ASCII
- out << char(*p);
- else
- out << "[\\u" << hex << *p << "]";
- return out;
-}
-
-
-inline void operator <<= (::rtl::OUString& _rUnicodeString, const sal_Char* _pAsciiString)
-{
- _rUnicodeString = ::rtl::OUString::createFromAscii(_pAsciiString);
-}
-
-inline void operator <<= (::rtl::OUString& _rUnicodeString, const ::rtl::OString& _rAsciiString)
-{
- _rUnicodeString <<= _rAsciiString.getStr();
-}
-
-/*
-inline void operator <<= (Any& _rUnoValue, const sal_Char* _pAsciiString)
-{
- _rUnoValue <<= ::rtl::OUString::createFromAscii(_pAsciiString);
-}
-
-inline void operator <<= (Any& _rUnoValue, const ::rtl::OString& _rAsciiString)
-{
- _rUnoValue <<= _rAsciiString.getStr();
-}
-*/
-
-inline void operator <<= (::rtl::OString& _rAsciiString, ::rtl::OUString const& _rUnicodeString )
-{
- _rAsciiString = rtl::OUStringToOString(_rUnicodeString, RTL_TEXTENCODING_ASCII_US).getStr();
-}
-// -----------------------------------------------------------------------------
-
-namespace FileHelper
-{
- rtl::OUString createOSLErrorString(FileBase::RC eError)
- {
- rtl::OUString aRet;
- switch(eError)
- {
- case osl_File_E_None:
- break;
-
- case osl_File_E_PERM:
- aRet = ASCII("Operation not permitted");
- break;
-
- case osl_File_E_NOENT:
- aRet = ASCII("No such file or directory");
- break;
-
- case osl_File_E_SRCH:
- aRet = ASCII("unknown error: osl_File_E_SRCH");
- break;
-
- case osl_File_E_INTR:
- aRet = ASCII("function call was interrupted");
- break;
-
- case osl_File_E_IO:
- aRet = ASCII("I/O error");
- break;
-
- case osl_File_E_NXIO:
- aRet = ASCII("No such device or address");
- break;
-
- case osl_File_E_2BIG:
- aRet = ASCII("unknown error: osl_File_E_2BIG");
- break;
-
- case osl_File_E_NOEXEC:
- aRet = ASCII("unknown error: osl_File_E_NOEXEC");
- break;
-
- case osl_File_E_BADF:
- aRet = ASCII("Bad file");
- break;
-
- case osl_File_E_CHILD:
- aRet = ASCII("unknown error: osl_File_E_CHILD");
- break;
-
- case osl_File_E_AGAIN:
- aRet = ASCII("Operation would block");
- break;
-
- case osl_File_E_NOMEM:
- aRet = ASCII("not enough memory for allocating structures");
- break;
-
- case osl_File_E_ACCES:
- aRet = ASCII("Permission denied");
- break;
-
- case osl_File_E_FAULT:
- aRet = ASCII("Bad address");
- break;
-
- case osl_File_E_BUSY:
- aRet = ASCII("Text file busy");
- break;
-
- case osl_File_E_EXIST:
- aRet = ASCII("File exists");
- break;
-
- case osl_File_E_XDEV:
- aRet = ASCII("unknown error: osl_File_E_XDEV");
- break;
-
- case osl_File_E_NODEV:
- aRet = ASCII("No such device");
- break;
-
- case osl_File_E_NOTDIR:
- aRet = ASCII("Not a directory");
- break;
-
- case osl_File_E_ISDIR:
- aRet = ASCII("Is a director");
- break;
-
- case osl_File_E_INVAL:
- aRet = ASCII("the format of the parameters was not valid");
- break;
-
- case osl_File_E_NFILE:
- aRet = ASCII("too many open files in the system");
- break;
-
- case osl_File_E_MFILE:
- aRet = ASCII("too many open files used by the process");
- break;
-
- case osl_File_E_NOTTY:
- aRet = ASCII("unknown error: osl_File_E_NOTTY");
- break;
-
- case osl_File_E_FBIG:
- aRet = ASCII("File too large");
- break;
-
- case osl_File_E_NOSPC:
- aRet = ASCII("No space left on device");
- break;
-
- case osl_File_E_SPIPE:
- aRet = ASCII("unknown error: osl_File_E_SPIPE");
- break;
-
- case osl_File_E_ROFS:
- aRet = ASCII("Read-only file system");
- break;
-
- case osl_File_E_MLINK:
- aRet = ASCII("Too many links");
- break;
-
- case osl_File_E_PIPE:
- aRet = ASCII("unknown error: osl_File_E_PIPE");
- break;
-
- case osl_File_E_DOM:
- aRet = ASCII("unknown error: osl_File_E_DOM");
- break;
-
- case osl_File_E_RANGE:
- aRet = ASCII("unknown error: osl_File_E_RANGE");
- break;
-
- case osl_File_E_DEADLK:
- aRet = ASCII("unknown error: osl_File_E_DEADLK");
- break;
-
- case osl_File_E_NAMETOOLONG:
- aRet = ASCII("File name too long");
- break;
-
- case osl_File_E_NOLCK:
- aRet = ASCII("No record locks available");
- break;
-
- case osl_File_E_NOSYS:
- aRet = ASCII("Function not implemente");
- break;
-
- case osl_File_E_NOTEMPTY:
- aRet = ASCII("Directory not empt");
- break;
-
- case osl_File_E_LOOP:
- aRet = ASCII("Too many symbolic links encountered");
- break;
-
- case osl_File_E_ILSEQ:
- aRet = ASCII("unknown error: osl_File_E_ILSEQ");
- break;
-
- case osl_File_E_NOLINK:
- aRet = ASCII("Link has been severed");
- break;
-
- case osl_File_E_MULTIHOP:
- aRet = ASCII("Multihop attempted");
- break;
-
- case osl_File_E_USERS:
- aRet = ASCII("unknown error: osl_File_E_USERS");
- break;
-
- case osl_File_E_OVERFLOW:
- aRet = ASCII("Value too large for defined data type");
- break;
-
- /* unmapped error: always last entry in enum! */
- case osl_File_E_invalidError:
- aRet = ASCII("unmapped Error");
- break;
- }
- return aRet;
- }
-} // namespace FileHelper
-
-
-#if (defined UNX) || (defined OS2)
-void main( int argc, char * argv[] )
-#else
-void _cdecl main( int argc, char * argv[] )
-#endif
-{
-
- OUString aDirectory(OUString::createFromAscii("file:///C:/%E6%96%B0%E3%81%97%E3%81%84%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80"));
-// OUString aDirex(OUString::createFromAscii("file:///C:/%C2%90V%E2%80%9A%C2%B5%E2%80%9A%C2%A2%C6%92t%C6%92H%C6%92%E2%80%B9%C6%92_"));
-
- osl::FileBase::RC eError = osl::Directory::create(aDirectory);
- if (eError != osl::FileBase::E_None)
- {
- OUString aUStr = FileHelper::createOSLErrorString(eError);
- OString aStr;
- aStr <<= aUStr;
- OSL_ENSURE(false, aStr.getStr());
- }
-
-// OUString suSystemPath, aTmp;
-// FileBase::RC aRC = FileBase::getSystemPathFromFileURL( aDirectory, suSystemPath );
-//
-// String suSystemPathAsString(suSystemPath);
-// ByteString sSystemPath(suSystemPathAsString, osl_getThreadTextEncoding());
-//
-//
-// ByteString sSystemPathNew = sSystemPath;
-// UniString suSystemPathNew(sSystemPathNew, osl_getThreadTextEncoding());
-// FileBase::RC aRC2 = FileBase::getFileURLFromSystemPath( suSystemPathNew, aTmp );
-
-//
-// aRC = FileBase::getSystemPathFromFileURL( aDirex, aTmp );
-// aRC2 = FileBase::getFileURLFromSystemPath( aTmp, aTmp2 );
-}
-
diff --git a/testshl2/workben/garbage_dump/some_tips.cxx b/testshl2/workben/garbage_dump/some_tips.cxx
deleted file mode 100644
index be29a2cdaee1..000000000000
--- a/testshl2/workben/garbage_dump/some_tips.cxx
+++ /dev/null
@@ -1,126 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-#include <cppunit/simpleheader.hxx>
-
-namespace rtl_ByteSequence
-{
-// -----------------------------------------------------------------------
-// call this before any other classes
-// -----------------------------------------------------------------------
-class OSingleton
-{
-public:
- static OSingleton * GetSingleton();
- virtual ~OSingleton() {}
-protected :
- OSingleton()
- {
- printf("Do something before.\n");
- }
-
- static OSingleton * m_pSingleton;
-};
-
-OSingleton * OSingleton::m_pSingleton = NULL;
-OSingleton * OSingleton::GetSingleton()
-{
- if(m_pSingleton == NULL )
- {
- m_pSingleton = new OSingleton;
- }
- return m_pSingleton;
-}
-
-// -----------------------------------------------------------------------------
-
-class before : public CppUnit::TestFixture
-{
-protected:
- before()
- {
- OSingleton::GetSingleton();
- }
-};
-
-// -----------------------------------------------------------------------------
-
-class GlobalObject
-{
-public:
- GlobalObject()
- {
- // do nothing here
- }
- ~GlobalObject()
- {
- printf("shutdown");
- }
-};
-
-GlobalObject theGlobalObject;
-
-// -----------------------------------------------------------------------------
-class assign : public before
-{
-public:
- // initialise your test code values here.
- void setUp()
- {
- }
-
- void tearDown()
- {
- }
-
- // insert your test code here.
- void assign_001()
- {
- }
-
- CPPUNIT_TEST_SUITE(assign);
- CPPUNIT_TEST(assign_001);
- CPPUNIT_TEST_SUITE_END();
-}; // class operator=
-
-// -----------------------------------------------------------------------------
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_ByteSequence::assign, "rtl_ByteSequence");
-} // namespace ByteSequence
-
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-void RegisterAdditionalFunctions(FktRegFuncPtr _pFunc)
-{
- printf("init your work here\n");
-}
-// NOADDITIONAL;
diff --git a/testshl2/workben/getopt/makefile.mk b/testshl2/workben/getopt/makefile.mk
deleted file mode 100644
index 21b563da16a9..000000000000
--- a/testshl2/workben/getopt/makefile.mk
+++ /dev/null
@@ -1,60 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=..$/..
-PRJINC=
-
-PRJNAME=testshl2
-TARGET=test_getopt
-TARGETTYPE=CUI
-
-ENABLE_EXCEPTIONS=TRUE
-#USE_LDUMP2=TRUE
-#LDUMP2=LDUMP3
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-
-# ------------------------------------------------------------------
-#--------------------------------- Objectfiles ---------------------------------
-OBJFILES=\
- $(OBJ)$/getopt.obj \
- $(OBJ)$/filehelper.obj \
- $(OBJ)$/test_getopt.obj
-
-#----------------------------- prog with *.lib file -----------------------------
-
-APP1TARGET= $(TARGET)
-APP1OBJS=$(OBJFILES)
-
-APP1STDLIBS=$(SALLIB)
-
-APP1DEPN= $(APP1OBJS)
-APP1LIBS=
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/testshl2/workben/getopt/test_getopt.cxx b/testshl2/workben/getopt/test_getopt.cxx
deleted file mode 100644
index af2ae1095d8a..000000000000
--- a/testshl2/workben/getopt/test_getopt.cxx
+++ /dev/null
@@ -1,140 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#ifdef SOLARIS
-#include <sys/time.h>
-#endif
-
-#ifdef WNT
-// #define UNDER_WINDOWS_DEBUGGING
-// Nice feature, to debug under windows, install msdev locally and use DebugBreak() to stop a new process at a point you want.
-#ifdef UNDER_WINDOWS_DEBUGGING
-#include <tools/presys.h>
-#include <windows.h>
-#include <tools/postsys.h>
-
-#define VCL_NEED_BASETSD
-
-#endif /* UNDER_WINDOWS_DEBUGGING */
-#endif /* WNT */
-
-#include <iostream>
-#include <vector>
-#include <rtl/string.hxx>
-
-#include "filehelper.hxx"
-#include "getopt.hxx"
-
-// #include <osl/time.h>
-
-using namespace std;
-
-// -----------------------------------------------------------------------------
-
-/**
- * display usage screen
- */
-
-void usage()
-{
- fprintf( stdout,
- "USAGE: testshl shlname [-boom][-verbose][-log][-his][-msg]\n" );
- exit(0);
-}
-
-// ----------------------------------- Main -----------------------------------
-#if (defined UNX) || (defined OS2)
-int main( int argc, char* argv[] )
-#else
-int _cdecl main( int argc, char* argv[] )
-#endif
-{
- (void) argc;
- static char const* optionSet[] = {
- "-boom, stop near error position, exception only",
- "-mode=s, the output mode, emacs, xml, old. Default is -mode old",
- "-logPath=s, destination path for logging",
- "-tc=s@, name(s) of testcase(s) to generate",
- "-h:s, display help or help on option",
- "-help:s, see -h",
- NULL
- };
-
- GetOpt opt( argv, optionSet );
-
- // someone indicates that he needs help
- if ( opt.hasOpt( "-h" ) || opt.hasOpt( "-help" ) )
- {
- opt.showUsage();
- // exit(0);
- }
-
- // get path for logging stuff..
- rtl::OString logPth;
- // ...if available
- if ( opt.hasOpt( "-logPth" ))
- {
- logPth = opt.getOpt( "-logPth" );
- }
-
- rtl::OString param;
- if ( ! opt.getParams().empty() ) {
- param = opt.getFirstParam();
-
- std::cout << "all non '-' Parameter values" << std::endl;
-
- vector<rtl::OString>& aVec = opt.getParams();
- for(vector<rtl::OString>::const_iterator it = aVec.begin();
- it != aVec.end();
- ++it)
- {
- std::cout << (*it).getStr() << std::endl;
- }
- }
-
- if ( opt.hasOpt("-tc"))
- {
- std::cout << "Parameter -tc" << std::endl;
- vector<rtl::OString>& aVec = opt.getOptVec( "-tc" );
-
- for(vector<rtl::OString>::const_iterator it = aVec.begin();
- it != aVec.end();
- ++it)
- {
- std::cout << (*it).getStr() << std::endl;
- }
- }
-
- return 0;
-}
-
diff --git a/testshl2/workben/makefile.mk b/testshl2/workben/makefile.mk
deleted file mode 100644
index 682793c7724b..000000000000
--- a/testshl2/workben/makefile.mk
+++ /dev/null
@@ -1,126 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=..
-PRJINC=
-
-PRJNAME=testshl2
-TARGET=test_autoptr
-TARGETTYPE=CUI
-
-ENABLE_EXCEPTIONS=TRUE
-#USE_LDUMP2=TRUE
-#LDUMP2=LDUMP3
-
-# --- Settings -----------------------------------------------------
-.INCLUDE : settings.mk
-
-# ------------------------------------------------------------------
-#--------------------------------- Objectfiles ---------------------------------
-OBJFILES=\
- $(OBJ)$/test_autoptr.obj \
- $(OBJ)$/test_ostringstream.obj
-
-#----------------------------- prog with *.lib file -----------------------------
-
-APP1TARGET= $(TARGET)
-APP1OBJS=$(OBJ)$/test_autoptr.obj
-
-APP1STDLIBS=$(SALLIB)
-
-APP1DEPN= $(APP1OBJS)
-APP1LIBS=
-
-#-------------------------------------------------------------------------------
-
-APP2TARGET= test_ostringstream
-APP2OBJS=$(OBJ)$/test_ostringstream.obj
-
-APP2STDLIBS=$(SALLIB)
-
-APP2DEPN= $(APP1OBJS)
-APP2LIBS=
-#-------------------------------------------------------------------------------
-
-APP3TARGET= test_filter
-APP3OBJS=$(OBJ)$/test_filter.obj
-
-APP3STDLIBS=$(SALLIB)
-
-APP3DEPN= $(APP1OBJS)
-APP3LIBS=
-#-------------------------------------------------------------------------------
-
-# APP4TARGET= test_member
-# APP4OBJS=$(OBJ)$/test_member.obj
-#
-# APP4STDLIBS=$(SALLIB)
-#
-# APP4DEPN=
- # APP4LIBS=
-
-
-#-------------------------------------------------------------------------------
-
-# APP5TARGET= test_very_long_names
-# APP5OBJS=$(OBJ)$/test_very_long_names.obj
-#
-# APP5STDLIBS=$(SALLIB)
-#
-# APP5DEPN=
-# APP5LIBS=
-
-
-#-------------------------------------------------------------------------------
-
-APP6TARGET= test_string
-APP6OBJS=$(OBJ)$/test_string.obj
-
-APP6STDLIBS=$(SALLIB)
-
-APP6DEPN=
-APP6LIBS=
-#-------------------------------------------------------------------------------
-
-APP7TARGET= test_printf
-APP7OBJS=$(OBJ)$/test_printf.obj
-
-APP7STDLIBS=$(SALLIB)
-
-APP7DEPN=
-APP7LIBS=
-#-------------------------------------------------------------------------------
-
-APP8TARGET= test_preproc
-APP8OBJS=$(OBJ)$/test_preproc.obj
-
-APP8STDLIBS=$(SALLIB)
-
-APP8DEPN=
-APP8LIBS=
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
diff --git a/testshl2/workben/runner/unxlngi4.config.file b/testshl2/workben/runner/unxlngi4.config.file
deleted file mode 100644
index 783b56950e20..000000000000
--- a/testshl2/workben/runner/unxlngi4.config.file
+++ /dev/null
@@ -1,34 +0,0 @@
-# Testshl2Runner
-
-# what is need to start?
-
-PRE1 = setenv SHELL /bin/tcsh
-PRE2 = source ~/staroffice.cshrc
-
-SHELL = /bin/tcsh
-BUILD = udk305
-ENV = unxlngi4
-LOCALENV = /usr/qaapi/projects/solartmp
-BASEDIR = /usr/qaapi/projects
-PROJECTNAME= sal
-INPUT = qa
-OUTPUT = qa
-
-# JOBFILE = $(PROJECTDIR)/$(PROJECTNAME)/$(INPUT)/jobs.txt
-JOBFILE = jobs.txt
-
-TESTTOOL = testshl2
-BATCHFILE = runTestshl.sh
-
-# Hardcoded
-# if ENV == "wnt..."
-# bin
-# if ENV == "unx..."
-# lib
-# PRJLIB = bin
-
-# nothing to do for post
-# POST1 =
-
-
-
diff --git a/testshl2/workben/runner/unxsols3.config.file b/testshl2/workben/runner/unxsols3.config.file
deleted file mode 100644
index 5af1aa49f0c1..000000000000
--- a/testshl2/workben/runner/unxsols3.config.file
+++ /dev/null
@@ -1,34 +0,0 @@
-# Testshl2Runner
-
-# what is need to start?
-
-PRE1 = setenv SHELL /bin/tcsh
-PRE2 =
-
-SHELL = /bin/tcsh
-BUILD = udk305
-ENV = unxsols3
-LOCALENV = /usr/qaapi/projects/solartemp
-BASEDIR = /usr/qaapi/projects/udk
-PROJECTNAME= sal
-INPUT = qa
-OUTPUT = qa
-
-# JOBFILE = $(PROJECTDIR)/$(PROJECTNAME)/$(INPUT)/jobs.txt
-JOBFILE = jobs.txt
-
-TESTTOOL = testshl2
-BATCHFILE = runTestshl.sh
-
-# Hardcoded
-# if ENV == "wnt..."
-# bin
-# if ENV == "unx..."
-# lib
-# PRJLIB = bin
-
-# nothing to do for post
-# POST1 =
-
-
-
diff --git a/testshl2/workben/runner/wntmsci9.config.file b/testshl2/workben/runner/wntmsci9.config.file
deleted file mode 100644
index 12aefabcd29c..000000000000
--- a/testshl2/workben/runner/wntmsci9.config.file
+++ /dev/null
@@ -1,46 +0,0 @@
-# Testshl2Runner
-
-# what is need to start?
-
-# path to find setsolar
-PRE1 = set path=r:\\etw;%PATH%
-
-SHELL = c:\\programme\\4nt\\4nt.exe
-BUILD = udk305
-ENV = wntmsci9
-
-# where to find the output directory
-LOCALENV = d:\\local\\305
-
-# the basedirectory to the sources, before a project
-BASEDIR = d:\\local\\305\\UDK305
-
-# name of the project
-PROJECTNAME= sal
-
-# PROJECTDIR is build within the following: $(BASEDIR)/$(PROJECTNAME)
-
-# INPUT is found in $(PROJECTDIR)
-INPUT = qa_work
-
-# OUTPUT is found in $(PROJECTDIR)/$(ENV)
-OUTPUT = qa_work
-
-# JOBFILE is found in $(PROJECTDIR)/$(INPUT)
-JOBFILE = jobs.txt
-
-TESTTOOL = testshl2
-BATCHFILE = runTestshl.btm
-
-# Hardcoded
-# if ENV == "wnt..."
-# bin
-# if ENV == "unx..."
-# lib
-# PRJLIB = bin
-
-# nothing to do for post
-# POST1 =
-
-
-
diff --git a/testshl2/workben/selftest/README.txt b/testshl2/workben/selftest/README.txt
deleted file mode 100644
index dbf9cce433d7..000000000000
--- a/testshl2/workben/selftest/README.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-There seems to be some problems with load test libraries from the right path,
-if the libraries are stored also in the solver directory.
-
-To test this:
-Call dmake to build the libraries in this selftest directory.
-Call deliver to copy one test library into the solver tree.
-Call dmake test to simply test the behaviour.
-
-Some more words:
-
-Per default the test libraries should not deliver but if:
-
-- Linux and Windows will use an absolute path to load the test libraries
- by dlopen().
-- MacOSX will use local path per default to load the test libraries by
- dlopen();
-
-If there are problems, there exists 2 new parameters like
--absolutepath
--localpath
-
-Just call
-'dmake test TESTOPTADD="-absolutepath"' or
-'dmake test TESTOPTADD="-localpath"' from this directory and see which
-behaviour is the right for your environment.
-
-There exist some environment variables to manipulate the default behaviour
-of load libraries. These are
-LD_LIBRARY_PATH
-DYLD_LIBRARY_PATH (Mac OS X)
diff --git a/testshl2/workben/selftest/delivertest.cxx b/testshl2/workben/selftest/delivertest.cxx
deleted file mode 100644
index b24cda0bccd9..000000000000
--- a/testshl2/workben/selftest/delivertest.cxx
+++ /dev/null
@@ -1,61 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-#include <cppunit/simpleheader.hxx>
-
-namespace delivertest
-{
-//------------------------------------------------------------------------
-// testing constructors
-//------------------------------------------------------------------------
-
- class ctor : public CppUnit::TestFixture
- {
- public:
- void ctor_001()
- {
- CPPUNIT_ASSERT_MESSAGE("Simple testshl2 self test, You have loaded the delivered library, PER DEFAULT THIS IS ABSOLUTLY WRONG. If you have start this test by 'dmake test' please change the behaviour in 'source/dynamicregister.cxx' in the DynamicLibraryHelper::CTor.", sal_False);
- }
-
- CPPUNIT_TEST_SUITE(ctor);
- CPPUNIT_TEST(ctor_001);
- CPPUNIT_TEST_SUITE_END();
- };
-
- // -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(delivertest::ctor, "delivertest");
-} // delivertest
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-
-NOADDITIONAL;
diff --git a/testshl2/workben/selftest/export.map b/testshl2/workben/selftest/export.map
deleted file mode 100644
index 2718fd9a5cc4..000000000000
--- a/testshl2/workben/selftest/export.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3.0 {
- global:
- registerAllTestFunction;
-
- local:
- *;
-};
-
diff --git a/testshl2/workben/selftest/makefile.mk b/testshl2/workben/selftest/makefile.mk
deleted file mode 100644
index 974b3beda526..000000000000
--- a/testshl2/workben/selftest/makefile.mk
+++ /dev/null
@@ -1,87 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=sal
-TARGET=selftest_testshl2
-# this is removed at the moment because we need some enhancements
-# TESTDIR=TRUE
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-# SLOFILES= \
-# $(SLO)$/unotest.obj
-
-#----------------------------------- deliver test -----------------------------------
-
-SHL1OBJS= \
- $(SLO)$/notdeliveredtest.obj
-
-SHL1TARGET= testshl2_deliver_test
-SHL1STDLIBS=\
- $(SALLIB) \
- $(CPPUHELPERLIB) \
- $(COMPHELPERLIB) \
- $(CPPULIB) \
- $(CPPUNITLIB)
-
-SHL1IMPLIB= i$(SHL1TARGET)
-
-DEF1NAME =$(SHL1TARGET)
-SHL1VERSIONMAP = export.map
-
-#----------------------------------- deliver test -----------------------------------
-
-SHL2OBJS= \
- $(SLO)$/delivertest.obj
-
-SHL2TARGET= delivertest
-SHL2STDLIBS=\
- $(SALLIB) \
- $(CPPUHELPERLIB) \
- $(COMPHELPERLIB) \
- $(CPPULIB) \
- $(CPPUNITLIB)
-
-SHL2IMPLIB= i$(SHL2TARGET)
-
-DEF2NAME =$(SHL2TARGET)
-SHL2VERSIONMAP = export.map
-
-
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : _cppunit.mk
-
diff --git a/testshl2/workben/selftest/notdeliveredtest.cxx b/testshl2/workben/selftest/notdeliveredtest.cxx
deleted file mode 100644
index 93a5532a42ac..000000000000
--- a/testshl2/workben/selftest/notdeliveredtest.cxx
+++ /dev/null
@@ -1,61 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-#include <cppunit/simpleheader.hxx>
-
-namespace delivertest
-{
-//------------------------------------------------------------------------
-// testing constructors
-//------------------------------------------------------------------------
-
- class ctor : public CppUnit::TestFixture
- {
- public:
- void ctor_001()
- {
- CPPUNIT_ASSERT_MESSAGE("Simple testshl2 self test, if you see this error message, the load library test is ok.", sal_False);
- }
-
- CPPUNIT_TEST_SUITE(ctor);
- CPPUNIT_TEST(ctor_001);
- CPPUNIT_TEST_SUITE_END();
- };
-
- // -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(delivertest::ctor, "delivertest");
-} // delivertest
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-
-NOADDITIONAL;
diff --git a/testshl2/workben/singleton.cxx b/testshl2/workben/singleton.cxx
deleted file mode 100644
index 055e3525410a..000000000000
--- a/testshl2/workben/singleton.cxx
+++ /dev/null
@@ -1,49 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-class OSingleton
-{
-public:
- static OSingleton * GetSingleton();
- virtual ~OSingleton(){}
-protected :
- OSingleton(){}
- static OSingleton * m_pSingleton;
-};
-
-OSingleton * OSingleton::m_pSingleton = NULL;
-OSingleton * OSingleton::GetSingleton()
-{
- if(m_pSingleton == NULL )
- {
- m_pSingleton = new OSingleton;
- }
- return m_pSingleton;
-}
diff --git a/testshl2/workben/skeleton/export.map b/testshl2/workben/skeleton/export.map
deleted file mode 100644
index 4ca70fa85463..000000000000
--- a/testshl2/workben/skeleton/export.map
+++ /dev/null
@@ -1,7 +0,0 @@
-UDK_3.0 {
- global:
- registerAllTestFunction;
-
- local:
- *;
-};
diff --git a/testshl2/workben/skeleton/skeleton.cxx b/testshl2/workben/skeleton/skeleton.cxx
deleted file mode 100644
index 0e7d006ee714..000000000000
--- a/testshl2/workben/skeleton/skeleton.cxx
+++ /dev/null
@@ -1,79 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-/*
- * LLA: 20040527
- */
-#include <cppunit/simpleheader.hxx>
-
-namespace skeleton
-{
-//------------------------------------------------------------------------
-// testing constructors
-//------------------------------------------------------------------------
-
- class ctor : public CppUnit::TestFixture
- {
- public:
- ctor()
- {
- printf("ctor: called\n");
- }
-
- void ctor_test()
- {
- printf("ctor test: called\n");
- }
- void ctor_test2()
- {
- printf("ctor test2: called\n");
- }
- void ctor_test3()
- {
- printf("ctor test3: called\n");
- }
-
- CPPUNIT_TEST_SUITE(ctor);
- CPPUNIT_TEST(ctor_test);
- CPPUNIT_TEST(ctor_test2);
- CPPUNIT_TEST(ctor_test3);
- CPPUNIT_TEST_SUITE_END();
- };
-
- // -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(skeleton::ctor, "skeleton");
-} // unotest
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-
-NOADDITIONAL;
diff --git a/testshl2/workben/test_autoptr.cxx b/testshl2/workben/test_autoptr.cxx
deleted file mode 100644
index 076924a61fca..000000000000
--- a/testshl2/workben/test_autoptr.cxx
+++ /dev/null
@@ -1,100 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdlib.h>
-#include <memory>
-#include <iostream>
-
-#include <stdio.h>
-
-#include <rtl/string.hxx>
-#include <rtl/ustring.hxx>
-
-class AutoPtrTest
-{
- int m_nValue;
-
- // NOCOPY
- AutoPtrTest(AutoPtrTest const& );
- AutoPtrTest& operator =(AutoPtrTest const& );
-
-public:
- AutoPtrTest(int _nValue = 1)
- :m_nValue(_nValue)
- {
- std::cout << "build Value" << std::endl;
- }
- ~AutoPtrTest()
- {
- std::cout << "release Value" << std::endl;
- m_nValue = 0;
- }
-// int operator int() const {return m_nValue;}
- int getValue() const {return m_nValue;}
-};
-
-std::auto_ptr<AutoPtrTest> getPtr()
-{
- return std::auto_ptr<AutoPtrTest>(new AutoPtrTest(2));
-}
-
-// auto_ptr get() gibt den Pointer ohne das ownership
-// auto_ptr release()gibt den Pointer und (!) das ownership
-
-void test_autoptr()
-{
- AutoPtrTest *pValuePtr;
- std::cout << "start test" << std::endl;
- {
- std::auto_ptr<AutoPtrTest> pValue = getPtr();
- std::cout << "Value with getValue() " << pValue->getValue() << std::endl;
- // std::cout << "Value operator int() " << *pValue << std::endl;
- // ownership weiterreichen
- pValuePtr = pValue.release();
- }
- std::cout << "ValuePtr with getValue() " << pValuePtr->getValue() << std::endl;
-
- // ownership an neuen Pointer uebergeben
- std::auto_ptr<AutoPtrTest> pValue2(pValuePtr);
-
- // AutoPtrTest *pStr = getPtr();
- std::cout << "end test" << std::endl;
-}
-
-// ----------------------------------- Main -----------------------------------
-#if (defined UNX) || (defined OS2)
-int main( int /* argc */ , char* /* argv */ [] )
-#else
- int _cdecl main( int /* argc*/ , char* /*argv*/ [] )
-#endif
-{
- test_autoptr();
- return 0;
-}
diff --git a/testshl2/workben/test_filter.cxx b/testshl2/workben/test_filter.cxx
deleted file mode 100644
index a22e60182ef2..000000000000
--- a/testshl2/workben/test_filter.cxx
+++ /dev/null
@@ -1,230 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <vector>
-#include <string>
-#include <iostream>
-#include <rtl/string.hxx>
-
-typedef std::vector<std::string> StringList;
-typedef std::vector<rtl::OString> OStringList;
-
-void split( const rtl::OString& opt,
- const rtl::OString& _sSeparator,
- OStringList& optLine )
-{
- optLine.clear();
- // const sal_Int32 cSetLen = cSet.getLength();
- sal_Int32 index = 0;
- sal_Int32 oldIndex = 0;
-
- // sal_Int32 i;
- // sal_Int32 j = 0;
- while ( opt.getLength() > 0)
- {
- // for ( i = 0; i < cSetLen; i++ )
- // {
- index = opt.indexOf( _sSeparator, oldIndex);
- if( index != -1 )
- {
- optLine.push_back( opt.copy( oldIndex, index - oldIndex ) );
- oldIndex = index + _sSeparator.getLength();
- }
- // }
- else // if (index == -1)
- {
- optLine.push_back( opt.copy( oldIndex ) );
- break;
- }
- }
-} ///< split
-
-// -----------------------------------------------------------------------------
-
-StringList splitNameAtDot(rtl::OString const& _sName)
-{
- StringList aList;
- int nIndex = 0;
- // int nLastIndex = 0;
- while ((nIndex = _sName.indexOf(".")) != -1)
- {
- rtl::OString nValue;
- }
-
- return aList;
-}
-
-// -----------------------------------------------------------------------------
-/*
-bool checkFilter(JobList m_aJobFilter, std::string const& _sNodeName, std::string const& _sName)
-{
- std::string sFilter = m_aJobFilter.m_aJobList.begin();
-
- StringList aFilter;
- aFilter.push_back("rtl_OUString");
- aFilter.push_back("ctors");
- aFilter.push_back("*");
-
- StringList aMyName;
- aMyName.push_back("rtl_OUString");
- aMyName.push_back("ctors");
- aMyName.push_back("ctor_001");
-
-}
-*/
-
-void showList(OStringList const& _sList)
-{
- for(OStringList::const_iterator it = _sList.begin();
- it != _sList.end();
- ++it)
- {
- rtl::OString aStr = *it;
- std::cout << aStr.getStr() << std::endl;
- }
-}
-
-bool match(OStringList const& _aFilter, OStringList const& _aName)
-{
- OStringList::const_iterator aFilterIter = _aFilter.begin();
- OStringList::const_iterator aValueIter = _aName.begin();
-
- bool bMatch = false;
-
- while (aFilterIter != _aFilter.end() && aValueIter != _aName.end())
- {
- rtl::OString sFilter = *aFilterIter;
- rtl::OString sName = *aValueIter;
-
- if (sFilter == sName)
- {
- bMatch = true;
- ++aFilterIter;
- ++aValueIter;
- }
- else if (sFilter == "*")
- {
- bMatch = true;
- break;
- }
- else
- {
- // Filter does not match
- bMatch = false;
- break;
- }
- }
- return bMatch;
-}
-
-// -----------------------------------------------------------------------------
-void test_normal_filter()
-{
- OStringList aFilter;
- split("rtl_OUString.ctors.*", ".", aFilter);
- showList(aFilter);
-
- OStringList aName;
- split("rtl_OUString.ctors.ctor_001", ".", aName);
- showList(aName);
-
- if (match(aFilter, aName))
- {
- std::cout << "Name matches filter." << std::endl;
- }
-}
-
-void test_normal_filter_other_sep()
-{
- OStringList aFilter;
- split("rtl_OUString::ctors::*", "::", aFilter);
- showList(aFilter);
-
- OStringList aName;
- split("rtl_OUString::ctors::ctor_001", "::", aName);
- showList(aName);
-
- if (match(aFilter, aName))
- {
- std::cout << "Name matches filter." << std::endl;
- }
-}
-
-void test_no_name()
-{
- OStringList aFilter;
- split("rtl_OUString.*", ".", aFilter);
- showList(aFilter);
-
- OStringList aName;
- split("", ".", aName);
- showList(aName);
-
- if (match(aFilter, aName))
- {
- std::cout << "Name matches filter." << std::endl;
- }
-}
-
-void test_name_longer_filter()
-{
- OStringList aFilter;
- split("rtl_OUString.*", ".", aFilter);
- showList(aFilter);
-
- OStringList aName;
- split("rtl_OUString.ctor.ctor_001", ".", aName);
- showList(aName);
-
- if (match(aFilter, aName))
- {
- std::cout << "Name matches filter." << std::endl;
- }
-}
-
-// ----------------------------------- Main -----------------------------------
-#if (defined UNX) || (defined OS2)
-int main( int /* argc */ , char* /* argv */ [] )
-#else
- int _cdecl main( int /* argc */, char* /* argv */ [] )
-#endif
-{
- test_normal_filter();
- test_normal_filter_other_sep();
- test_no_name();
- test_name_longer_filter();
-
- // split("rtl_OUString.*", ".", aFilter);
- // showList(aFilter);
-
-
- // test_autoptr();
- return 0;
-}
diff --git a/testshl2/workben/test_member.cxx b/testshl2/workben/test_member.cxx
deleted file mode 100644
index 11cf2bbc742a..000000000000
--- a/testshl2/workben/test_member.cxx
+++ /dev/null
@@ -1,97 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-#include <iostream>
-#include <string>
-
-using namespace std;
-
-class Aint
-{
- int n;
-
-public:
-
- Aint():n(0)
- {
- cout << "ctor Aint()" << endl;
- }
- Aint(int _n):n(_n)
- {
- cout << "ctor Aint(int(" << _n << "))" << endl;
- }
- int getA() {return n;}
- ~Aint()
- {
- cout << "dtor Aint()" << endl;
- }
-
-};
-
-// -----------------------------------------------------------------------------
-
-class B
-{
- Aint a;
- Aint b;
- std::string aStr;
-
-public:
-
- B()
- :a(2)
- {
- cout << "ctor B()" << endl;
- }
- B(int _a)
- :a(_a)
- {
- cout << "ctor B(int)" << endl;
- }
-
- void foo()
- {
- cout << "a.getA() := " << a.getA() << endl;
- cout << "b.getA() := " << b.getA() << endl;
- }
-
-};
-
-
-// ----------------------------------- Main -----------------------------------
-#if (defined UNX) || (defined OS2)
-int main( int argc, char* argv[] )
-#else
-int _cdecl main( int argc, char* argv[] )
-#endif
-{
- B b(4);
- b.foo();
-}
diff --git a/testshl2/workben/test_ostringstream.cxx b/testshl2/workben/test_ostringstream.cxx
deleted file mode 100644
index f49b54cd6a9f..000000000000
--- a/testshl2/workben/test_ostringstream.cxx
+++ /dev/null
@@ -1,116 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-
-#include <stdlib.h>
-#include <memory>
-#include <sstream>
-#include <iostream>
-#include <bitset>
-
-#include <sal/types.h>
-
-
-class TestFactoryRegistry
-{
-public:
- void checkFunc(char* foo);
- void checkFunc2(char* foo);
- void checkFunc3(char* foo);
-};
-
-
-void TestFactoryRegistry::checkFunc(char* /* foo */ )
-{
- static int serialNumber = 1;
-
- std::ostringstream ost;
-//! could this be the problem?
- ost << "@Dummy@" << serialNumber++;
- std::cout << ost.str() << std::endl;
-}
-
-void TestFactoryRegistry::checkFunc2(char* /* foo */)
-{
- static int serialNumber = 1;
-
- std::ostringstream ost;
-//! could this be the problem?
- ost << "@Dummy@" << serialNumber;
- serialNumber++;
- std::cout << ost.str() << std::endl;
-}
-
-void TestFactoryRegistry::checkFunc3(char* /* foo */)
-{
- static int serialNumber = 1;
-
- int nValue = serialNumber;
- std::ostringstream ost;
-//! could this be the problem?
- ost << "@Dummy@" << nValue;
- serialNumber++;
- std::cout << ost.str() << std::endl;
-}
-
-static TestFactoryRegistry a;
-static TestFactoryRegistry b;
-static TestFactoryRegistry c;
-
-// ----------------------------------- Main -----------------------------------
-#if (defined UNX) || (defined OS2)
-int main( int /* argc */ , char* /* argv */ [] )
-#else
- int _cdecl main( int /* argc */, char* /* argv */ [] )
-#endif
-{
- std::ostringstream ost;
- // sal_Int32 nValue = 1;
-
- // ost << "@Dummy@" << nValue;
- // ost << "dec: " << 15 << std::hex << " hex: " << 15 << std::endl;
-
- // std::cout << ost.str() << std::endl;
-
- char* cFoo = NULL;
-
- a.checkFunc(cFoo);
- a.checkFunc2(cFoo);
- a.checkFunc3(cFoo);
-
- b.checkFunc(cFoo);
- b.checkFunc2(cFoo);
- b.checkFunc3(cFoo);
-
- c.checkFunc(cFoo);
- c.checkFunc2(cFoo);
- c.checkFunc3(cFoo);
-
- return 0;
-}
diff --git a/testshl2/workben/test_preproc.cxx b/testshl2/workben/test_preproc.cxx
deleted file mode 100644
index 4614a9783ab5..000000000000
--- a/testshl2/workben/test_preproc.cxx
+++ /dev/null
@@ -1,55 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-#include <iostream>
-#include <string>
-#include <rtl/string.hxx>
-
-using namespace std;
-
-#define atest(name) \
- { \
- /*if (strlen(#name))*/ { \
- cout << "String len: " << strlen(#name) << " string: " << #name << endl; \
- }}
-
-
-// ----------------------------------- Main -----------------------------------
-#if (defined UNX) || (defined OS2)
-int main( int /* argc */, char* /* argv */ [] )
-#else
- int _cdecl main( int /* argc */, char* /* argv */ [] )
-#endif
-{
- cout << "test preprocessor: " << endl;
- atest(fuck);
- // atest(); compiler error, use "" instead
- atest("");
-}
diff --git a/testshl2/workben/test_string.cxx b/testshl2/workben/test_string.cxx
deleted file mode 100644
index 0d8d83d83192..000000000000
--- a/testshl2/workben/test_string.cxx
+++ /dev/null
@@ -1,138 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-#include <iostream>
-#include <string>
-#include <rtl/string.hxx>
-
-using namespace std;
-
-const char* g_cSeparatorList = " \t,;:#";
-
-std::string trim(std::string const& _sStringToTrim)
-{
- rtl::OString sStr(_sStringToTrim.c_str());
- sStr = sStr.trim();
- return std::string(sStr.getStr());
-}
-
-bool isInCurrentEnvironment(std::string const& _sString)
-{
- int nSpace = 0;
- std::string sSearchString = _sString;
- bool bEnd = false;
- // run through the hole given string,
- std::string sEnv;
-
- do {
- nSpace = sSearchString.find_first_of(g_cSeparatorList);
- if (nSpace < 0)
- {
- sEnv = sSearchString;
- bEnd = true;
- }
- else
- {
- sEnv = sSearchString.substr(0, nSpace);
- sSearchString = sSearchString.substr(nSpace + 1);
- }
- if (sEnv.length() > 0)
- {
- cout << sEnv << endl;
-#ifdef LINUX
- int nLinux = sEnv.find("unxlng");
- if (nLinux >= 0)
- {
- // found unxlng
- return true;
- }
-#endif
-#ifdef SOLARIS
- int nSolaris = sEnv.find("unxsol");
- if (nSolaris >= 0)
- {
- // found unxsol
- return true;
- }
-#endif
-#ifdef WNT
- int nWindows = sEnv.find("wnt");
- if (nWindows >= 0)
- {
- // found wnt
- return true;
- }
-#endif
- }
- } while ( !bEnd );
- return false;
-}
-
-// ----------------------------------- Main -----------------------------------
-#if (defined UNX) || (defined OS2)
-int main( int /* argc */, char* /* argv */ [] )
-#else
- int _cdecl main( int /* argc */ , char* /* argv */ [] )
-#endif
-{
- string sLine1 = "osl_Socket.ctor.ctors_001";
- string sLine = "osl_Socket.ctor.ctors_001 unxlngi5.pro unxsols4.pro wntmsci ";
-
- int nSpace = sLine.find_first_of(g_cSeparatorList);
- cout << "Space: " << nSpace << endl;
- std::string sTest;
-
- if (nSpace > 0)
- {
- sLine = trim(sLine);
- // check environment
- sTest = sLine.substr(0, nSpace);
- std::string sRest = sLine.substr(nSpace + 1);
- if (isInCurrentEnvironment(sRest))
- {
- cout << "new string: " << sTest << endl;
- }
- }
- else
- {
- // every environment
- cout << "new string: " << sLine << endl;
- }
-
- // cout << "rest string: " << sRest << endl;
-
- int nCount = 10;
- do {
- cout << nCount << endl;
- nCount --;
- }
- while (nCount >= 0);
- cout << nCount << endl;
-}
diff --git a/testshl2/workben/uno/export.exp b/testshl2/workben/uno/export.exp
deleted file mode 100644
index a13529da5876..000000000000
--- a/testshl2/workben/uno/export.exp
+++ /dev/null
@@ -1 +0,0 @@
-registerAllTestFunction
diff --git a/testshl2/workben/uno/export.map b/testshl2/workben/uno/export.map
deleted file mode 100755
index 2718fd9a5cc4..000000000000
--- a/testshl2/workben/uno/export.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3.0 {
- global:
- registerAllTestFunction;
-
- local:
- *;
-};
-
diff --git a/testshl2/workben/uno/makefile.mk b/testshl2/workben/uno/makefile.mk
deleted file mode 100644
index ea4cc1c0b758..000000000000
--- a/testshl2/workben/uno/makefile.mk
+++ /dev/null
@@ -1,79 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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=sal
-TARGET=qa_uno
-# this is removed at the moment because we need some enhancements
-# TESTDIR=TRUE
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-#------------------------------- All object files -------------------------------
-# do this here, so we get right dependencies
-# SLOFILES= \
-# $(SLO)$/unotest.obj
-
-#----------------------------------- ByteSequence -----------------------------------
-
-SHL1OBJS= \
- $(SLO)$/unotest.obj
-
-SHL1TARGET= unotest
-SHL1STDLIBS=\
- $(SALLIB) \
- $(CPPUHELPERLIB) \
- $(COMPHELPERLIB) \
- $(CPPULIB) \
- $(CPPUNITLIB)
-
-# link $(CPPUNIT) to SHL1STDLIBS instead
-# .IF "$(GUI)" == "WNT"
-# SHL1STDLIBS+= $(SOLARLIBDIR)$/cppunit.lib
-# .ENDIF
-# .IF "$(GUI)" == "UNX"
-# SHL1STDLIBS+=$(SOLARLIBDIR)$/libcppunit$(DLLPOSTFIX).a
-# .ENDIF
-
-SHL1IMPLIB= i$(SHL1TARGET)
-# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-
-DEF1NAME =$(SHL1TARGET)
-# DEF1EXPORTFILE= export.exp
-SHL1VERSIONMAP = export.map
-
-
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
-.INCLUDE : _cppunit.mk
-
diff --git a/testshl2/workben/uno/unotest.cxx b/testshl2/workben/uno/unotest.cxx
deleted file mode 100644
index d4d3f78f56b6..000000000000
--- a/testshl2/workben/uno/unotest.cxx
+++ /dev/null
@@ -1,114 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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_testshl2.hxx"
-#include "rtl/bootstrap.hxx"
-#include <comphelper/processfactory.hxx>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <cppunit/simpleheader.hxx>
-#include <cppuhelper/bootstrap.hxx>
-#include <com/sun/star/xml/sax/XParser.hpp>
-
-namespace css = com::sun::star;
-namespace lang = css::lang;
-namespace uno = css::uno;
-namespace sax = css::xml::sax;
-
-
-// StringHelper
-inline void operator <<= (rtl::OString& _rAsciiString, const rtl::OUString& _rUnicodeString)
-{
- _rAsciiString = rtl::OUStringToOString(_rUnicodeString,RTL_TEXTENCODING_ASCII_US);
-}
-
-
-namespace unotest
-{
-//------------------------------------------------------------------------
-// testing constructors
-//------------------------------------------------------------------------
-
- class ctor : public CppUnit::TestFixture
- {
- public:
- void ctor_001()
- {
- uno::Reference< lang::XMultiServiceFactory > xFactory( ::comphelper::getProcessServiceFactory() );
- if (xFactory.is())
- {
- // sample, get a xParser instance
- uno::Reference< sax::XParser > xParser;
- xParser = uno::Reference< sax::XParser > (
- xFactory->createInstance(
- ::rtl::OUString::createFromAscii("com.sun.star.xml.sax.Parser")), uno::UNO_QUERY);
-
- CPPUNIT_ASSERT_MESSAGE("can't get sax::Parser", xParser.is());
- }
- }
- void ctor_002()
- {
- CPPUNIT_ASSERT_MESSAGE("Simple testshl2 test, MUST fail.", sal_False);
- }
-
- CPPUNIT_TEST_SUITE(ctor);
- CPPUNIT_TEST(ctor_001);
- CPPUNIT_TEST(ctor_002);
- CPPUNIT_TEST_SUITE_END();
- };
-
- // -----------------------------------------------------------------------------
- CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(unotest::ctor, "unotest");
-} // unotest
-
-// -----------------------------------------------------------------------------
-
-// this macro creates an empty function, which will called by the RegisterAllFunctions()
-// to let the user the possibility to also register some functions by hand.
-
-
-void RegisterAdditionalFunctions(FktRegFuncPtr _pFunc)
-{
- (void) _pFunc;
- uno::Reference<lang::XMultiServiceFactory> xMS;
-
- try
- {
- uno::Reference< uno::XComponentContext > xComponentContext = cppu::defaultBootstrap_InitialComponentContext();
- xMS.set(xComponentContext->getServiceManager(), uno::UNO_QUERY);
- comphelper::setProcessServiceFactory(xMS);
- }
- catch (::com::sun::star::uno::Exception e )
- {
- rtl::OString aError;
- aError <<= e.Message;
- printf("Error: %s\n", aError.getStr());
- }
-}
-// NOADDITIONAL;
diff --git a/testtools/source/bridgetest/component.gcc3.map b/testtools/source/bridgetest/component.gcc3.map
deleted file mode 100644
index 609b64e1e0ca..000000000000
--- a/testtools/source/bridgetest/component.gcc3.map
+++ /dev/null
@@ -1,38 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
-
- _ZN4_STL7num_put*; # STLport
-
- local:
- *;
-};
diff --git a/testtools/source/bridgetest/component.map b/testtools/source/bridgetest/component.map
deleted file mode 100644
index e4b038369818..000000000000
--- a/testtools/source/bridgetest/component.map
+++ /dev/null
@@ -1,36 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General 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:
- component_getFactory;
- component_getImplementationEnvironment;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/testtools/source/bridgetest/makefile.mk b/testtools/source/bridgetest/makefile.mk
index afaacb3e1c4a..9b75a1aed1e3 100644
--- a/testtools/source/bridgetest/makefile.mk
+++ b/testtools/source/bridgetest/makefile.mk
@@ -80,11 +80,7 @@ SHL1STDLIBS= \
SHL1LIBS= $(LIB1TARGET)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
-.IF "$(COMNAME)" == "gcc3"
-SHL1VERSIONMAP = component.gcc3.map
-.ELSE
-SHL1VERSIONMAP = component.map
-.ENDIF
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
# ---- test object ----
@@ -103,16 +99,12 @@ SHL2STDLIBS= \
SHL2LIBS= $(LIB2TARGET)
SHL2DEF= $(MISC)$/$(SHL2TARGET).def
DEF2NAME= $(SHL2TARGET)
-.IF "$(COMNAME)" == "gcc3"
-SHL2VERSIONMAP = component.gcc3.map
-.ELSE
-SHL2VERSIONMAP = component.map
-.ENDIF
+SHL2VERSIONMAP = $(SOLARENV)/src/component.map
SHL3TARGET = constructors.uno
SHL3OBJS = $(SLO)$/constructors.obj
SHL3STDLIBS = $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB)
-SHL3VERSIONMAP = component.map
+SHL3VERSIONMAP = $(SOLARENV)/src/component.map
SHL3IMPLIB = i$(SHL3TARGET)
DEF3NAME = $(SHL3TARGET)
@@ -154,24 +146,16 @@ $(DLLDEST)$/uno_types.rdb : $(SOLARBINDIR)$/udkapi.rdb
$(REGMERGE) $@ / $(BIN)$/bridgetest.rdb
$(DLLDEST)$/bridgetest_client$(BATCH_SUFFIX) .ERRREMOVE: makefile.mk
-.IF "$(USE_SHELL)" == "bash"
echo '$(AUGMENT_LIBRARY_PATH)' '$(SOLARBINDIR)'/uno -ro uno_services.rdb -ro uno_types.rdb \
-s com.sun.star.test.bridge.BridgeTest -- \
-u \''uno:socket,host=127.0.0.1,port=2002;urp;test'\' > $@
-.ELSE
- echo ERROR: this script can only be created properly for USE_SHELL=bash > $@
-.ENDIF
$(GIVE_EXEC_RIGHTS) $@
$(DLLDEST)$/bridgetest_server$(BATCH_SUFFIX) .ERRREMOVE: makefile.mk
-.IF "$(USE_SHELL)" == "bash"
echo '$(AUGMENT_LIBRARY_PATH)' '$(SOLARBINDIR)'/uno -ro uno_services.rdb -ro uno_types.rdb \
-s com.sun.star.test.bridge.CppTestObject \
-u \''uno:socket,host=127.0.0.1,port=2002;urp;test'\' --singleaccept \
> $@
-.ELSE
- echo ERROR: this script can only be created properly for USE_SHELL=bash > $@
-.ENDIF
$(GIVE_EXEC_RIGHTS) $@
@@ -191,14 +175,10 @@ $(DLLDEST)$/bridgetest_javaserver$(BATCH_SUFFIX) : makefile.mk
$(GIVE_EXEC_RIGHTS) $@
$(DLLDEST)$/bridgetest_inprocess_java$(BATCH_SUFFIX) .ERRREMOVE: makefile.mk
-.IF "$(USE_SHELL)" == "bash"
echo '$(AUGMENT_LIBRARY_PATH)' '$(SOLARBINDIR)'/uno -ro uno_services.rdb -ro uno_types.rdb \
-s com.sun.star.test.bridge.BridgeTest \
-env:URE_INTERNAL_JAVA_DIR=$(MY_URE_INTERNAL_JAVA_DIR) \
-- com.sun.star.test.bridge.JavaTestObject noCurrentContext > $@
-.ELSE
- echo ERROR: this script can only be created properly for USE_SHELL=bash > $@
-.ENDIF
$(GIVE_EXEC_RIGHTS) $@
.ENDIF
diff --git a/testtools/source/bridgetest/pyuno/makefile.mk b/testtools/source/bridgetest/pyuno/makefile.mk
index d7172edae3f0..fb7a78f71f4a 100644
--- a/testtools/source/bridgetest/pyuno/makefile.mk
+++ b/testtools/source/bridgetest/pyuno/makefile.mk
@@ -41,11 +41,6 @@ ENABLE_EXCEPTIONS=TRUE
PYEXC=$(DLLDEST)$/python$(EXECPOST)
REGEXC=$(DLLDEST)$/regcomp$(EXECPOST)
-DOLLAR_SIGN=\$$
-.IF "$(USE_SHELL)" != "tcsh"
-DOLLAR_SIGN=$$
-.ENDIF
-
.IF "$(SYSTEM_PYTHON)"!="YES"
PYTHON=$(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(SOLARBINDIR)/python
.ELSE # "$(SYSTEM_PYTHON)"!="YES"
@@ -59,25 +54,13 @@ PYTHONPATH:=$(SOLARLIBDIR)$/pyuno:$(PWD):$(SOLARLIBDIR):$(SOLARLIBDIR)$/python:$
.EXPORT: PYTHONPATH
.IF "$(GUI)"!="WNT" && "$(GUI)"!="OS2"
-.IF "$(USE_SHELL)"=="bash"
TEST_ENV=export FOO=file://$(shell @pwd)$/$(DLLDEST) \
UNO_TYPES=pyuno_regcomp.rdb UNO_SERVICES=pyuno_regcomp.rdb
-.ELSE
-TEST_ENV=\
- setenv FOO file://$(shell @pwd)$/$(DLLDEST) && \
- setenv UNO_TYPES pyuno_regcomp.rdb && setenv UNO_SERVICES pyuno_regcomp.rdb
-.ENDIF
.ELSE # "$(GUI)" != "WNT"
# aaaaaa, how to get the current working directory on windows ???
CWD_TMP=$(strip $(shell @echo "import os;print os.getcwd()" | $(PYTHON)))
-.IF "$(USE_SHELL)" == "tcsh"
-TEST_ENV=setenv FOO file:///$(strip $(subst,\,/ $(CWD_TMP)/$(DLLDEST))) && \
- setenv UNO_TYPES pyuno_regcomp.rdb && setenv UNO_SERVICES pyuno_regcomp.rdb
-.ELSE
TEST_ENV=export FOO=file:///$(strip $(subst,\,/ $(CWD_TMP)$/$(DLLDEST))) && \
export UNO_TYPES=pyuno_regcomp.rdb && export UNO_SERVICES=pyuno_regcomp.rdb
-.ENDIF "$(USE_SHELL)" == "tcsh"
-
.ENDIF # "$(GUI)"!="WNT"
PYFILES = \
$(DLLDEST)$/core.py \
@@ -120,6 +103,6 @@ runtest : ALL
cd $(DLLDEST) && $(TEST_ENV) && $(WRAPCMD) $(REGCOMP) -register -br pyuno_regcomp.rdb -r dummy.rdb \
-l com.sun.star.loader.Python $(foreach,i,$(PYCOMPONENTS) -c vnd.openoffice.pymodule:$(i))
cd $(DLLDEST) && $(TEST_ENV) && $(WRAPCMD) $(REGCOMP) -register -br pyuno_regcomp.rdb -r dummy2.rdb \
- -l com.sun.star.loader.Python -c vnd.sun.star.expand:$(DOLLAR_SIGN)FOO/samplecomponent.py
+ -l com.sun.star.loader.Python -c vnd.sun.star.expand:$$FOO/samplecomponent.py
.ENDIF # L10N_framework
diff --git a/tomcat/download/jakarta-tomcat-5.0.30-src.tar.gz b/tomcat/download/jakarta-tomcat-5.0.30-src.tar.gz
deleted file mode 100644
index 5882f95b0c24..000000000000
--- a/tomcat/download/jakarta-tomcat-5.0.30-src.tar.gz
+++ /dev/null
Binary files differ
diff --git a/tomcat/makefile.mk b/tomcat/makefile.mk
index f7c3dd7724d1..a4d8236b267f 100755
--- a/tomcat/makefile.mk
+++ b/tomcat/makefile.mk
@@ -39,6 +39,7 @@ TARGET=servlet
# --- Files --------------------------------------------------------
TARFILE_NAME=jakarta-tomcat-5.0.30-src
+TARFILE_MD5=2a177023f9ea8ec8bd00837605c5df1b
TARFILE_ROOTDIR=jakarta-tomcat-5.0.30-src
diff --git a/toolkit/prj/build.lst b/toolkit/prj/build.lst
index 304d0e7c978f..126eea24c66c 100644
--- a/toolkit/prj/build.lst
+++ b/toolkit/prj/build.lst
@@ -11,3 +11,4 @@ ti toolkit\source\controls\grid nmake - all ti_grid NULL
ti toolkit\source\layout\core nmake - all ti_layout_core NULL
ti toolkit\source\layout\vcl nmake - all ti_layout_vcl NULL
ti toolkit\util nmake - all ti_util ti_awt ti_controls ti_layout_core ti_helper ti_tree ti_grid ti_layout_vcl NULL
+ti toolkit\qa\unoapi nmake - all ti_qa_unoapi NULL
diff --git a/toolkit/qa/unoapi/Test.java b/toolkit/qa/unoapi/Test.java
new file mode 100644
index 000000000000..f27d882314d2
--- /dev/null
+++ b/toolkit/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.toolkit.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "toolkit.sce", "-xcl", "knownissues.xcl", "-tdoc",
+ "testdocuments", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/toolkit/qa/unoapi/knownissues.xcl b/toolkit/qa/unoapi/knownissues.xcl
index ef954f00eeeb..6f57f37536a2 100644
--- a/toolkit/qa/unoapi/knownissues.xcl
+++ b/toolkit/qa/unoapi/knownissues.xcl
@@ -90,11 +90,6 @@ toolkit.AccessibleRadioButton
toolkit.AccessibleToolBox
# -> disabled in toolkit.sce
-### i80788 ###
-toolkit.Toolkit
-toolkit.UnoControlDialog
-# -> disabled in toolkit.sce
-
### i86011 ###
toolkit.UnoControlFileControl
# -> disabled in toolkit.sce
@@ -239,4 +234,9 @@ toolkit.AccessibleScrollBar::com::sun::star::accessibility::XAccessibleComponent
toolkit.UnoScrollBarControl::com::sun::star::awt::XScrollBar
### i94344 ###
-toolkit.AccessibleTabPage::com::sun::star::accessibility::XAccessibleText \ No newline at end of file
+toolkit.AccessibleTabPage::com::sun::star::accessibility::XAccessibleText
+
+### i109643 ###
+toolkit.AccessibleMenu::com::sun::star::accessibility::XAccessibleValue
+toolkit.AccessibleMenuBar::com::sun::star::accessibility::XAccessibleEventBroadcaster
+toolkit.AccessibleMenuBar::com::sun::star::accessibility::XAccessibleSelection
diff --git a/toolkit/qa/unoapi/makefile.mk b/toolkit/qa/unoapi/makefile.mk
index a24f81d7c6ef..9517601c3917 100644
--- a/toolkit/qa/unoapi/makefile.mk
+++ b/toolkit/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,22 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=toolkit
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = toolkit
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/toolkit/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce toolkit.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
- @echo =======================================================================
- @echo In case you noticed a failures of toolkit.AccessibleToolBoxItem make sure that the object bar is configured as text and not as icons
- @echo =======================================================================
+.END
diff --git a/toolkit/qa/unoapi/toolkit.sce b/toolkit/qa/unoapi/toolkit.sce
index dad24165e2d2..1c8ad0c95181 100644
--- a/toolkit/qa/unoapi/toolkit.sce
+++ b/toolkit/qa/unoapi/toolkit.sce
@@ -17,8 +17,8 @@
-o toolkit.AccessibleScrollBar
-o toolkit.AccessibleStatusBar
-o toolkit.AccessibleStatusBarItem
--o toolkit.AccessibleTabControl
--o toolkit.AccessibleTabPage
+#i109643 -o toolkit.AccessibleTabControl
+#i109643 -o toolkit.AccessibleTabPage
#i86287 -o toolkit.AccessibleToolBox
#i88605 -o toolkit.AccessibleToolBoxItem
-o toolkit.AccessibleWindow
@@ -26,7 +26,7 @@
-o toolkit.MutableTreeNode
-o toolkit.TabController
-o toolkit.TabControllerModel
-#i80788 -o toolkit.Toolkit
+-o toolkit.Toolkit
-o toolkit.UnoControlButton
-o toolkit.UnoControlButtonModel
-o toolkit.UnoControlCheckBox
@@ -39,7 +39,7 @@
-o toolkit.UnoControlCurrencyFieldModel
-o toolkit.UnoControlDateField
-o toolkit.UnoControlDateFieldModel
-#i80788 -o toolkit.UnoControlDialog
+#allegedly was i80788, but still broken: -o toolkit.UnoControlDialog
-o toolkit.UnoControlDialogModel
-o toolkit.UnoControlEdit
-o toolkit.UnoControlEditModel
diff --git a/tools/bootstrp/command.cxx b/tools/bootstrp/command.cxx
index 605965339b0e..2ab0cc8dc4a6 100644
--- a/tools/bootstrp/command.cxx
+++ b/tools/bootstrp/command.cxx
@@ -355,7 +355,7 @@ CCommand::CCommand( ByteString &rString )
{
rString.SearchAndReplace( '\t', ' ' );
aCommand = rString.GetToken( 0, ' ' );
- aCommandLine = Search();
+ aCommandLine = Search( "PATH" );
#ifndef UNX
aCommandLine += " /c ";
#else
@@ -365,7 +365,7 @@ CCommand::CCommand( ByteString &rString )
ByteString sCmd( rString.GetToken( 0, ' ' ));
ByteString sParam( rString.Copy( sCmd.Len()));
- aCommandLine += Search( thePath, sCmd );
+ aCommandLine += Search( "PATH", sCmd );
aCommandLine += sParam;
ImplInit();
@@ -379,7 +379,7 @@ CCommand::CCommand( const char *pChar )
aString.SearchAndReplace( '\t', ' ' );
aCommand = aString.GetToken( 0, ' ' );
- aCommandLine = Search();
+ aCommandLine = Search( "PATH" );
#ifndef UNX
aCommandLine += " /c ";
#else
@@ -390,7 +390,7 @@ CCommand::CCommand( const char *pChar )
ByteString sCmd( rString.GetToken( 0, ' ' ));
ByteString sParam( rString.Copy( sCmd.Len()));
- aCommandLine += Search( thePath, sCmd );
+ aCommandLine += Search( "PATH", sCmd );
aCommandLine += sParam;
ImplInit();
diff --git a/tools/bootstrp/rscdep.cxx b/tools/bootstrp/rscdep.cxx
index 35968654b5cd..5c18793c9833 100644
--- a/tools/bootstrp/rscdep.cxx
+++ b/tools/bootstrp/rscdep.cxx
@@ -36,6 +36,7 @@
#include <string.h>
#include "bootstrp/prj.hxx"
+#include "sal/main.h"
#include <tools/string.hxx>
#include <tools/list.hxx>
@@ -78,12 +79,7 @@ static int optopt = 0;
static int opterr = 0;
#endif
-
-int
-#ifdef WNT
-_cdecl
-#endif
-main( int argc, char **argv )
+SAL_IMPLEMENT_MAIN_WITH_ARGS( argc, argv )
{
int c;
char aBuf[255];
diff --git a/tools/inc/bootstrp/command.hxx b/tools/inc/bootstrp/command.hxx
index e0d8f1e39aeb..638beb6cce1f 100644
--- a/tools/inc/bootstrp/command.hxx
+++ b/tools/inc/bootstrp/command.hxx
@@ -92,8 +92,6 @@ public:
void Print();
};
-static ByteString thePath( "PATH" );
-
/** Declares and spawns a child process.
The spawned programm could be a native executable or a schell script.
*/
@@ -127,7 +125,7 @@ public:
@param sItem specifies the system shell
@return the Location (when programm was found)
*/
- static ByteString Search( ByteString sEnv = thePath,
+ static ByteString Search( ByteString sEnv,
ByteString sItem = COMMAND_SHELL );
/** Spawns the Process
diff --git a/tools/inc/tools/debug.hxx b/tools/inc/tools/debug.hxx
index e764ed2fc79a..b8aa1c8b59fe 100644
--- a/tools/inc/tools/debug.hxx
+++ b/tools/inc/tools/debug.hxx
@@ -125,19 +125,18 @@ struct DbgDataType
#define DBG_FUNC_SAVEDATA 5
#define DBG_FUNC_SETPRINTMSGBOX 6
#define DBG_FUNC_SETPRINTWINDOW 7
-#define DBG_FUNC_SETPRINTSHELL 8
-#define DBG_FUNC_SETPRINTTESTTOOL 9
-#define DBG_FUNC_MEMTEST 10
-#define DBG_FUNC_XTORINFO 11
-#define DBG_FUNC_MEMINFO 12
-#define DBG_FUNC_COREDUMP 13
-#define DBG_FUNC_ALLERROROUT 14
-#define DBG_FUNC_SETTESTSOLARMUTEX 15
-#define DBG_FUNC_TESTSOLARMUTEX 16
-#define DBG_FUNC_PRINTFILE 17
-#define DBG_FUNC_GETPRINTMSGBOX 18
-#define DBG_FUNC_FILTERMESSAGE 19 // new for #i38967
-#define DBG_FUNC_UPDATEOSLHOOK 20
+#define DBG_FUNC_SETPRINTTESTTOOL 8
+#define DBG_FUNC_MEMTEST 9
+#define DBG_FUNC_XTORINFO 10
+#define DBG_FUNC_MEMINFO 11
+#define DBG_FUNC_COREDUMP 12
+#define DBG_FUNC_ALLERROROUT 13
+#define DBG_FUNC_SETTESTSOLARMUTEX 14
+#define DBG_FUNC_TESTSOLARMUTEX 15
+#define DBG_FUNC_PRINTFILE 16
+#define DBG_FUNC_GETPRINTMSGBOX 17
+#define DBG_FUNC_FILTERMESSAGE 18 // new for #i38967
+#define DBG_FUNC_UPDATEOSLHOOK 19
TOOLS_DLLPUBLIC void* DbgFunc( USHORT nAction, void* pData = NULL );
@@ -176,11 +175,6 @@ inline void DbgSetPrintWindow( DbgPrintLine pProc )
DbgFunc( DBG_FUNC_SETPRINTWINDOW, (void*)(long)pProc );
}
-inline void DbgSetPrintShell( DbgPrintLine pProc )
-{
- DbgFunc( DBG_FUNC_SETPRINTSHELL, (void*)(long)pProc );
-}
-
inline void DbgSetPrintTestTool( DbgPrintLine pProc )
{
DbgFunc( DBG_FUNC_SETPRINTTESTTOOL, (void*)(long)pProc );
@@ -344,6 +338,7 @@ void DbgPrintStackTree( void* p );
TOOLS_DLLPUBLIC void DbgOut( const sal_Char* pMsg, USHORT nOutType = DBG_OUT_TRACE,
const sal_Char* pFile = NULL, USHORT nLine = 0 );
+TOOLS_DLLPUBLIC void DbgPrintShell(char const * message);
TOOLS_DLLPUBLIC void DbgOutTypef( USHORT nOutType, const sal_Char* pFStr, ... );
TOOLS_DLLPUBLIC void DbgOutf( const sal_Char* pFStr, ... );
TOOLS_DLLPUBLIC void ImpDbgOutfBuf( sal_Char* pBuf, const sal_Char* pFStr, ... );
diff --git a/testshl2/inc/pch/precompiled_testshl2.hxx b/tools/inc/tools/postextstl.h
index 4de524c0c650..81a21e25c15b 100644
--- a/testshl2/inc/pch/precompiled_testshl2.hxx
+++ b/tools/inc/tools/postextstl.h
@@ -25,8 +25,12 @@
*
************************************************************************/
-// MARKER(update_precomp.py): Generated on 2006-09-01 17:50:13.576513
-
-#ifdef PRECOMPILED_HEADERS
+#ifdef std_was_redefined_as_stlport
+// put things back the way they were
+# define std std_was_redefined_as_stlport
+# undef _STLP_OUTERMOST_HEADER_ID
+// force config to be re-read
+# undef _STLP_NOTHROW_INHERENTLY
+# undef _STLP_CONFIG_H
+# include <stddef.h>
#endif
-
diff --git a/tools/inc/tools/preextstl.h b/tools/inc/tools/preextstl.h
new file mode 100644
index 000000000000..4d0418d01c57
--- /dev/null
+++ b/tools/inc/tools/preextstl.h
@@ -0,0 +1,64 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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(ADAPT_EXT_STL)
+# include <ostream>
+# include <istream>
+# include <fstream>
+# include <iostream>
+# include <vector>
+# include <list>
+# include <map>
+# include <algorithm>
+# if defined(std)
+# define std_was_redefined_as_stlport std
+# undef std
+# define _STLP_OUTERMOST_HEADER_ID 0xdeadbeaf
+# pragma GCC visibility push(default)
+# include _STLP_NATIVE_HEADER(exception_defines.h)
+# include _STLP_NATIVE_HEADER(limits)
+# include _STLP_NATIVE_HEADER(memory)
+# include _STLP_NATIVE_HEADER(exception)
+# include _STLP_NATIVE_HEADER(iosfwd)
+# include _STLP_NATIVE_HEADER(algorithm)
+# include _STLP_NATIVE_HEADER(string)
+# include _STLP_NATIVE_HEADER(streambuf)
+# include _STLP_NATIVE_HEADER(ios)
+# include _STLP_NATIVE_HEADER(locale)
+# include _STLP_NATIVE_HEADER(stdexcept)
+# include _STLP_NATIVE_HEADER(ostream)
+# include _STLP_NATIVE_HEADER(istream)
+# include _STLP_NATIVE_HEADER(iostream)
+# include _STLP_NATIVE_HEADER(vector)
+# include _STLP_NATIVE_HEADER(list)
+# include _STLP_NATIVE_HEADER(map)
+# pragma GCC visibility pop
+# endif
+#endif
+//ext_std resolves to the std that external c++ libs, e.g. Graphite were built
+//against regardless of whether that is stlport or system stl
+namespace ext_std = std;
diff --git a/tools/prj/d.lst b/tools/prj/d.lst
index 76cb0107453c..6b4a99a3a676 100644
--- a/tools/prj/d.lst
+++ b/tools/prj/d.lst
@@ -34,6 +34,9 @@ mkdir: %_DEST%\inc%_EXT%\bootstrp
..\inc\tools\postx.h %_DEST%\inc%_EXT%\tools\postx.h
..\inc\tools\prex.h %_DEST%\inc%_EXT%\tools\prex.h
+..\inc\tools\postextstl.h %_DEST%\inc%_EXT%\tools\postextstl.h
+..\inc\tools\preextstl.h %_DEST%\inc%_EXT%\tools\preextstl.h
+
..\inc\tools\solarmutex.hxx %_DEST%\inc%_EXT%\tools\solarmutex.hxx
..\inc\tools\wintypes.hxx %_DEST%\inc%_EXT%\tools\wintypes.hxx
..\inc\tools\mapunit.hxx %_DEST%\inc%_EXT%\tools\mapunit.hxx
diff --git a/tools/qa/makefile.mk b/tools/qa/makefile.mk
index 66ed19e20737..abaea848c1db 100644
--- a/tools/qa/makefile.mk
+++ b/tools/qa/makefile.mk
@@ -32,6 +32,7 @@ ENABLE_EXCEPTIONS = TRUE
.INCLUDE: settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
DLLPRE = # no leading "lib" on .so files
SHL1TARGET = test_pathutils
diff --git a/tools/source/debug/debug.cxx b/tools/source/debug/debug.cxx
index 62f36e662ea9..e17457c60525 100644
--- a/tools/source/debug/debug.cxx
+++ b/tools/source/debug/debug.cxx
@@ -151,7 +151,6 @@ struct DebugData
USHORT bInit;
DbgPrintLine pDbgPrintMsgBox;
DbgPrintLine pDbgPrintWindow;
- DbgPrintLine pDbgPrintShell;
DbgPrintLine pDbgPrintTestTool;
::std::vector< DbgPrintLine >
aDbgPrintUserChannels;
@@ -166,7 +165,6 @@ struct DebugData
:bInit( FALSE )
,pDbgPrintMsgBox( FALSE )
,pDbgPrintWindow( NULL )
- ,pDbgPrintShell( NULL )
,pDbgPrintTestTool( NULL )
,pProfList( NULL )
,pXtorList( NULL )
@@ -1037,9 +1035,7 @@ static void DebugDeInit()
pData->aDbgData.nTestFlags &= (DBG_TEST_MEM | DBG_TEST_PROFILING);
pData->aDbgPrintUserChannels.clear();
pData->pDbgPrintTestTool = NULL;
- pData->pDbgPrintShell = NULL;
pData->pDbgPrintWindow = NULL;
- pData->pDbgPrintShell = NULL;
pData->pOldDebugMessageFunc = NULL;
ImplDbgDeInitLock();
}
@@ -1199,10 +1195,6 @@ void* DbgFunc( USHORT nAction, void* pParam )
pDebugData->pDbgPrintWindow = (DbgPrintLine)(long)pParam;
break;
- case DBG_FUNC_SETPRINTSHELL:
- pDebugData->pDbgPrintShell = (DbgPrintLine)(long)pParam;
- break;
-
case DBG_FUNC_SETPRINTTESTTOOL:
pDebugData->pDbgPrintTestTool = (DbgPrintLine)(long)pParam;
break;
@@ -1739,14 +1731,6 @@ void DbgOut( const sal_Char* pMsg, USHORT nDbgOut, const sal_Char* pFile, USHORT
if ( pData->pDbgPrintMsgBox )
pData->pDbgPrintMsgBox( aBufOut );
else
- nOut = DBG_OUT_SHELL;
- }
-
- if ( nOut == DBG_OUT_SHELL )
- {
- if ( pData->pDbgPrintShell )
- pData->pDbgPrintShell( aBufOut );
- else
nOut = DBG_OUT_WINDOW;
}
@@ -1758,14 +1742,28 @@ void DbgOut( const sal_Char* pMsg, USHORT nDbgOut, const sal_Char* pFile, USHORT
nOut = DBG_OUT_FILE;
}
- if ( nOut == DBG_OUT_FILE )
+ switch ( nOut )
+ {
+ case DBG_OUT_SHELL:
+ DbgPrintShell( aBufOut );
+ break;
+ case DBG_OUT_FILE:
ImplDbgPrintFile( aBufOut );
+ break;
+ }
ImplDbgUnlock();
bIn = FALSE;
}
+void DbgPrintShell(char const * message) {
+ fprintf(stderr, "%s\n", message);
+#if defined WNT
+ OutputDebugStringA(message);
+#endif
+}
+
// -----------------------------------------------------------------------
void DbgOutTypef( USHORT nDbgOut, const sal_Char* pFStr, ... )
diff --git a/tools/source/fsys/tdir.cxx b/tools/source/fsys/tdir.cxx
index 429835d35ab3..b6bf48a8cdf9 100644
--- a/tools/source/fsys/tdir.cxx
+++ b/tools/source/fsys/tdir.cxx
@@ -266,7 +266,7 @@ void Dir::Construct( DirEntryKind nKindFlags )
strcpy( pBuffer, aTStr.GetBuffer() );
CharLowerBuff( pBuffer, aTStr.Len() );
aNameMask = WildCard( String(pBuffer, osl_getThreadTextEncoding()), ';' );
- delete pBuffer;
+ delete [] pBuffer;
}
#else
aNameMask = WildCard( CutName(), ';' );
diff --git a/tools/source/stream/strmunx.cxx b/tools/source/stream/strmunx.cxx
index 8a3504a417c0..9e4f501d1823 100644
--- a/tools/source/stream/strmunx.cxx
+++ b/tools/source/stream/strmunx.cxx
@@ -91,7 +91,7 @@ InternalStreamLock::InternalStreamLock(
#if OSL_DEBUG_LEVEL > 1
fprintf( stderr, "locked %s", aFileName.GetBuffer() );
if( m_nStartPos || m_nEndPos )
- fprintf(stderr, " [ %d ... %d ]", m_nStartPos, m_nEndPos );
+ fprintf(stderr, " [ %ld ... %ld ]", m_nStartPos, m_nEndPos );
fprintf( stderr, "\n" );
#endif
}
@@ -103,7 +103,7 @@ InternalStreamLock::~InternalStreamLock()
ByteString aFileName(m_pStream->GetFileName(), osl_getThreadTextEncoding());
fprintf( stderr, "unlocked %s", aFileName.GetBuffer() );
if( m_nStartPos || m_nEndPos )
- fprintf(stderr, " [ %d ... %d ]", m_nStartPos, m_nEndPos );
+ fprintf(stderr, " [ %ld ... %ld ]", m_nStartPos, m_nEndPos );
fprintf( stderr, "\n" );
#endif
}
@@ -514,7 +514,7 @@ sal_Bool SvFileStream::LockRange( sal_Size nByteOffset, sal_Size nBytes )
if( ! InternalStreamLock::LockFile( nByteOffset, nByteOffset+nBytes, this ) )
{
#if OSL_DEBUG_LEVEL > 1
- fprintf( stderr, "InternalLock on %s [ %d ... %d ] failed\n",
+ fprintf( stderr, "InternalLock on %s [ %ld ... %ld ] failed\n",
ByteString(aFilename, osl_getThreadTextEncoding()).GetBuffer(), nByteOffset, nByteOffset+nBytes );
#endif
return sal_False;
diff --git a/tools/test/export.map b/tools/test/export.map
index 709047ae63e5..7321bbca16ad 100644
--- a/tools/test/export.map
+++ b/tools/test/export.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-UDK_3.1 {
+UDK_3_0_0 {
global:
registerAllTestFunction;
diff --git a/tools/test/makefile.mk b/tools/test/makefile.mk
index 5dea8ce6f960..ab2cfd8e6676 100644
--- a/tools/test/makefile.mk
+++ b/tools/test/makefile.mk
@@ -36,6 +36,8 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# --- Common ----------------------------------------------------------
SHL1OBJS= \
diff --git a/ucb/prj/build.lst b/ucb/prj/build.lst
index f0eb0da8395e..a4d7ef6b4f6b 100644
--- a/ucb/prj/build.lst
+++ b/ucb/prj/build.lst
@@ -14,3 +14,4 @@ uc ucb\source\ucp\webdav nmake - all uc_webdav uc_inc NULL
uc ucb\source\ucp\package nmake - all uc_package uc_inc NULL
uc ucb\source\ucp\tdoc nmake - all uc_tdoc uc_inc NULL
uc ucb\source\ucp\expand nmake - all uc_expand uc_inc NULL
+uc ucb\qa\unoapi nmake - all uc_qa_unoapi NULL
diff --git a/ucb/qa/unoapi/Test.java b/ucb/qa/unoapi/Test.java
new file mode 100644
index 000000000000..145716d871d4
--- /dev/null
+++ b/ucb/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.ucb.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "ucb.sce", "-xcl", "knownissues.xcl", "-cs",
+ connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/ucb/qa/unoapi/makefile.mk b/ucb/qa/unoapi/makefile.mk
index 1ceb8eb64112..80c7caae73b7 100644
--- a/ucb/qa/unoapi/makefile.mk
+++ b/ucb/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,19 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=ucb
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = ucb
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/ucb/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce ucb.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
+.END
diff --git a/ucb/source/cacher/exports.map b/ucb/source/cacher/exports.map
deleted file mode 100644
index bd32ad4747a6..000000000000
--- a/ucb/source/cacher/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-CAC_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucb/source/cacher/makefile.mk b/ucb/source/cacher/makefile.mk
index 20179f8ce7a2..600fefc174f7 100644
--- a/ucb/source/cacher/makefile.mk
+++ b/ucb/source/cacher/makefile.mk
@@ -59,7 +59,7 @@ SHL1STDLIBS=\
SHL1LIBS=$(LIB1TARGET)
SHL1IMPLIB=i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
.ENDIF # L10N_framework
diff --git a/ucb/source/core/exports.map b/ucb/source/core/exports.map
deleted file mode 100644
index 5ab48b9e42c0..000000000000
--- a/ucb/source/core/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UCB_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucb/source/core/makefile.mk b/ucb/source/core/makefile.mk
index 5095dbef947d..34765eb74289 100644
--- a/ucb/source/core/makefile.mk
+++ b/ucb/source/core/makefile.mk
@@ -65,7 +65,7 @@ SHL1IMPLIB=i$(TARGET)
.IF "$(GUI)" == "OS2"
DEF1EXPORTFILE=exports2.dxp
.ELSE
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
.ENDIF
DEF1NAME=$(SHL1TARGET)
diff --git a/ucb/source/sorter/exports.map b/ucb/source/sorter/exports.map
deleted file mode 100644
index 953380b4a923..000000000000
--- a/ucb/source/sorter/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-SRT_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucb/source/sorter/makefile.mk b/ucb/source/sorter/makefile.mk
index 5077be80b411..68a9959589d2 100644
--- a/ucb/source/sorter/makefile.mk
+++ b/ucb/source/sorter/makefile.mk
@@ -54,7 +54,7 @@ SHL1STDLIBS=\
SHL1LIBS=$(LIB1TARGET)
SHL1IMPLIB=i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
.ENDIF # L10N_framework
diff --git a/ucb/source/ucp/expand/makefile.mk b/ucb/source/ucp/expand/makefile.mk
index aaa7b85edbf1..32de160318f2 100644
--- a/ucb/source/ucp/expand/makefile.mk
+++ b/ucb/source/ucp/expand/makefile.mk
@@ -46,7 +46,7 @@ SHL1STDLIBS = \
$(CPPULIB) \
$(SALLIB)
-SHL1VERSIONMAP = $(TARGET).map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1TARGET = $(TARGET)
SHL1DEPN =
diff --git a/ucb/source/ucp/expand/ucpexpand1.uno.map b/ucb/source/ucp/expand/ucpexpand1.uno.map
deleted file mode 100644
index 563b3d86a5d0..000000000000
--- a/ucb/source/ucp/expand/ucpexpand1.uno.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucb/source/ucp/file/exports.map b/ucb/source/ucp/file/exports.map
deleted file mode 100644
index a8bd267fc9e9..000000000000
--- a/ucb/source/ucp/file/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-FIL_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucb/source/ucp/file/makefile.mk b/ucb/source/ucp/file/makefile.mk
index b11fdd8081dc..8007a2492399 100644
--- a/ucb/source/ucp/file/makefile.mk
+++ b/ucb/source/ucp/file/makefile.mk
@@ -67,7 +67,7 @@ SHL1STDLIBS=\
$(SALLIB) \
$(UCBHELPERLIB)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
.IF "$(GUI)" == "OS2"
DEF1EXPORTFILE=exports2.dxp
diff --git a/ucb/source/ucp/ftp/makefile.mk b/ucb/source/ucp/ftp/makefile.mk
index d9b674b78604..a0f141004089 100644
--- a/ucb/source/ucp/ftp/makefile.mk
+++ b/ucb/source/ucp/ftp/makefile.mk
@@ -68,7 +68,7 @@ LIB1OBJFILES=$(SLOFILES1)
SHL1TARGET=$(TARGET)$(UCPFTP_MAJOR)
SHL1IMPLIB=i$(TARGET)
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS=\
$(CPPUHELPERLIB) \
diff --git a/ucb/source/ucp/ftp/ucpftp.map b/ucb/source/ucp/ftp/ucpftp.map
deleted file mode 100644
index 0ce3cd3ad8cc..000000000000
--- a/ucb/source/ucp/ftp/ucpftp.map
+++ /dev/null
@@ -1,8 +0,0 @@
-FTP_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucb/source/ucp/gio/exports.map b/ucb/source/ucp/gio/exports.map
deleted file mode 100644
index 5ec50ad779c1..000000000000
--- a/ucb/source/ucp/gio/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucb/source/ucp/gio/makefile.mk b/ucb/source/ucp/gio/makefile.mk
index e6ebe2413e44..86b32fbc0739 100644
--- a/ucb/source/ucp/gio/makefile.mk
+++ b/ucb/source/ucp/gio/makefile.mk
@@ -73,7 +73,7 @@ SHL1STDLIBS=\
SHL1STDLIBS+=$(PKGCONFIG_LIBS)
-SHL1VERSIONMAP= exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
.ENDIF # "$(ENABLE_GIO)"!=""
.ENDIF # L10N_framework
diff --git a/ucb/source/ucp/gvfs/exports.map b/ucb/source/ucp/gvfs/exports.map
deleted file mode 100644
index 5ec50ad779c1..000000000000
--- a/ucb/source/ucp/gvfs/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucb/source/ucp/gvfs/makefile.mk b/ucb/source/ucp/gvfs/makefile.mk
index b69455777c62..a0e8a0bda3bb 100644
--- a/ucb/source/ucp/gvfs/makefile.mk
+++ b/ucb/source/ucp/gvfs/makefile.mk
@@ -77,7 +77,7 @@ SHL1STDLIBS=\
SHL1STDLIBS+=$(PKGCONFIG_LIBS)
-SHL1VERSIONMAP= exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
.ENDIF # "$(ENABLE_GNOMEVFS)"!=""
.ENDIF # L10N_framework
diff --git a/ucb/source/ucp/hierarchy/makefile.mk b/ucb/source/ucp/hierarchy/makefile.mk
index a968537873dc..00b481b5e7a1 100644
--- a/ucb/source/ucp/hierarchy/makefile.mk
+++ b/ucb/source/ucp/hierarchy/makefile.mk
@@ -61,7 +61,7 @@ LIB1OBJFILES=$(SLOFILES)
SHL1TARGET=$(TARGET)$(UCPHIER_MAJOR)
SHL1IMPLIB=i$(TARGET)
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS=\
$(CPPUHELPERLIB) \
diff --git a/ucb/source/ucp/hierarchy/ucphier.map b/ucb/source/ucp/hierarchy/ucphier.map
deleted file mode 100644
index 319e7b11a9a7..000000000000
--- a/ucb/source/ucp/hierarchy/ucphier.map
+++ /dev/null
@@ -1,8 +0,0 @@
-HIER_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucb/source/ucp/odma/exports.map b/ucb/source/ucp/odma/exports.map
deleted file mode 100644
index 14a2531f23ad..000000000000
--- a/ucb/source/ucp/odma/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-VERS_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucb/source/ucp/odma/makefile.mk b/ucb/source/ucp/odma/makefile.mk
index d9ddcbfdf01b..14a7d3d45c3d 100644
--- a/ucb/source/ucp/odma/makefile.mk
+++ b/ucb/source/ucp/odma/makefile.mk
@@ -64,7 +64,7 @@ LIB1OBJFILES=$(SLOFILES)
SHL1TARGET=$(TARGET)$(UCP_VERSION)
SHL1IMPLIB=i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS=\
$(CPPUHELPERLIB) \
diff --git a/ucb/source/ucp/package/exports.map b/ucb/source/ucp/package/exports.map
deleted file mode 100644
index 7e12f34d1b86..000000000000
--- a/ucb/source/ucp/package/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-PKG_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucb/source/ucp/package/makefile.mk b/ucb/source/ucp/package/makefile.mk
index bd4707ccccc9..8c6dcda31829 100644
--- a/ucb/source/ucp/package/makefile.mk
+++ b/ucb/source/ucp/package/makefile.mk
@@ -65,7 +65,7 @@ LIB1OBJFILES=$(SLOFILES)
SHL1TARGET=$(TARGET)$(UCP_VERSION)
SHL1IMPLIB=i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS=\
$(CPPUHELPERLIB) \
diff --git a/ucb/source/ucp/tdoc/exports.map b/ucb/source/ucp/tdoc/exports.map
deleted file mode 100644
index 5ec50ad779c1..000000000000
--- a/ucb/source/ucp/tdoc/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucb/source/ucp/tdoc/makefile.mk b/ucb/source/ucp/tdoc/makefile.mk
index 2c85514ef91f..83e9599eed72 100644
--- a/ucb/source/ucp/tdoc/makefile.mk
+++ b/ucb/source/ucp/tdoc/makefile.mk
@@ -66,7 +66,7 @@ LIB1OBJFILES=$(SLOFILES)
SHL1TARGET=$(TARGET)
SHL1IMPLIB=i$(TARGET)
-SHL1VERSIONMAP= exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS=\
$(COMPHELPERLIB) \
diff --git a/ucb/source/ucp/webdav/exports.map b/ucb/source/ucp/webdav/exports.map
deleted file mode 100644
index 73671aa97840..000000000000
--- a/ucb/source/ucp/webdav/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-DAV_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucb/source/ucp/webdav/makefile.mk b/ucb/source/ucp/webdav/makefile.mk
index 551efb6f06b8..73ee298697e8 100644
--- a/ucb/source/ucp/webdav/makefile.mk
+++ b/ucb/source/ucp/webdav/makefile.mk
@@ -113,7 +113,7 @@ LIB1OBJFILES=$(SLOFILES)
SHL1TARGET=$(TARGET)$(UCP_VERSION)
SHL1IMPLIB=i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS=\
$(CPPUHELPERLIB) \
diff --git a/ucbhelper/workben/myucp/exports.map b/ucbhelper/workben/myucp/exports.map
deleted file mode 100644
index f4ed78b9e970..000000000000
--- a/ucbhelper/workben/myucp/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/ucbhelper/workben/myucp/makefile.mk b/ucbhelper/workben/myucp/makefile.mk
index 0d7f273fe877..77faad2e0396 100644
--- a/ucbhelper/workben/myucp/makefile.mk
+++ b/ucbhelper/workben/myucp/makefile.mk
@@ -68,7 +68,7 @@ LIB1OBJFILES=$(SLOFILES)
SHL1TARGET=$(TARGET)
SHL1IMPLIB=i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# @@@ Add additional libs here.
SHL1STDLIBS=\
diff --git a/unotools/source/misc/desktopterminationobserver.cxx b/unotools/source/misc/desktopterminationobserver.cxx
index 23d5089f545e..3900449f03c9 100644
--- a/unotools/source/misc/desktopterminationobserver.cxx
+++ b/unotools/source/misc/desktopterminationobserver.cxx
@@ -211,12 +211,6 @@ namespace utl
void DesktopTerminationObserver::revokeTerminationListener( ITerminationListener* _pListener )
{
::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
- if ( getListenerAdminData().bAlreadyTerminated )
- {
- _pListener->notifyTermination();
- return;
- }
-
Listeners& rListeners = getListenerAdminData().aListeners;
for ( Listeners::iterator lookup = rListeners.begin();
lookup != rListeners.end();
diff --git a/unoxml/source/rdf/makefile.mk b/unoxml/source/rdf/makefile.mk
index 39741bda15b1..1fd36f45ce0b 100644
--- a/unoxml/source/rdf/makefile.mk
+++ b/unoxml/source/rdf/makefile.mk
@@ -58,7 +58,7 @@ SHL1OBJS= $(SLOFILES)
SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
SHL1IMPLIB= i$(TARGET)
-SHL1VERSIONMAP=../service/exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/unoxml/source/service/exports.map b/unoxml/source/service/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/unoxml/source/service/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/unoxml/source/service/makefile.mk b/unoxml/source/service/makefile.mk
index bbce7e913f09..93aec0746323 100644
--- a/unoxml/source/service/makefile.mk
+++ b/unoxml/source/service/makefile.mk
@@ -53,7 +53,7 @@ SHL1OBJS= $(SLOFILES)
SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
SHL1IMPLIB= i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
diff --git a/unoxml/test/export.map b/unoxml/test/export.map
index 709047ae63e5..7321bbca16ad 100644
--- a/unoxml/test/export.map
+++ b/unoxml/test/export.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-UDK_3.1 {
+UDK_3_0_0 {
global:
registerAllTestFunction;
diff --git a/unoxml/test/makefile.mk b/unoxml/test/makefile.mk
index 8fcba9ff328a..11fe8884befd 100644
--- a/unoxml/test/makefile.mk
+++ b/unoxml/test/makefile.mk
@@ -37,6 +37,8 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# --- Common ----------------------------------------------------------
# BEGIN ----------------------------------------------------------------
diff --git a/ure/source/uretest/version.map b/ure/source/uretest/version.map
index a93667d9da82..82a89b6b28fc 100644
--- a/ure/source/uretest/version.map
+++ b/ure/source/uretest/version.map
@@ -34,6 +34,8 @@ UDK_3_0_0 {
_ZTI*;
_ZTS*;
+ _ZN4_STL7num_put*; # for STLport
+
local:
*;
};
diff --git a/uui/util/exports.map b/uui/util/exports.map
deleted file mode 100644
index ba501f9ae076..000000000000
--- a/uui/util/exports.map
+++ /dev/null
@@ -1,10 +0,0 @@
-UDK_3_0_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/uui/util/makefile.mk b/uui/util/makefile.mk
index 78d726d0eec6..163a7bb5502e 100644
--- a/uui/util/makefile.mk
+++ b/uui/util/makefile.mk
@@ -38,7 +38,7 @@ NO_BSYMBOLIC = true
SHL1TARGET = $(TARGET)$(DLLPOSTFIX)
SHL1IMPLIB = i$(TARGET)
-SHL1VERSIONMAP = exports.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1DEF = $(MISC)$/$(SHL1TARGET).def
DEF1NAME = $(SHL1TARGET)
diff --git a/vbahelper/util/makefile.mk b/vbahelper/util/makefile.mk
index 09f3866c5439..98adae420ed9 100644
--- a/vbahelper/util/makefile.mk
+++ b/vbahelper/util/makefile.mk
@@ -72,7 +72,7 @@ TARGET_MSFORMS=msforms
SHL2TARGET=$(TARGET_MSFORMS)$(DLLPOSTFIX).uno
SHL2IMPLIB= i$(TARGET_MSFORMS)
-SHL2VERSIONMAP=$(TARGET_MSFORMS).map
+SHL2VERSIONMAP=$(SOLARENV)/src/component.map
SHL2DEF=$(MISC)$/$(SHL2TARGET).def
DEF2NAME=$(SHL2TARGET)
SHL2STDLIBS= \
diff --git a/vbahelper/util/msforms.map b/vbahelper/util/msforms.map
deleted file mode 100644
index 737cddbfe3df..000000000000
--- a/vbahelper/util/msforms.map
+++ /dev/null
@@ -1,9 +0,0 @@
-OOO_1.1 {
- global:
- component_getImplementationEnvironment;
- component_getFactory;
- component_writeInfo;
-
- local:
- *;
-};
diff --git a/vcl/aqua/source/dtrans/aqua_clipboard.cxx b/vcl/aqua/source/dtrans/aqua_clipboard.cxx
index d3a4e9bc604c..52fb13e1e11f 100644
--- a/vcl/aqua/source/dtrans/aqua_clipboard.cxx
+++ b/vcl/aqua/source/dtrans/aqua_clipboard.cxx
@@ -189,6 +189,10 @@ void SAL_CALL AquaClipboard::setContents(const Reference<XTransferable>& xTransf
const Reference<XClipboardOwner>& xClipboardOwner)
throw( RuntimeException )
{
+ NSArray* types = xTransferable.is() ?
+ mpDataFlavorMapper->flavorSequenceToTypesArray(xTransferable->getTransferDataFlavors()) :
+ [NSArray array];
+
ClearableMutexGuard aGuard(m_aMutex);
Reference<XClipboardOwner> oldOwner(mXClipboardOwner);
@@ -197,11 +201,10 @@ void SAL_CALL AquaClipboard::setContents(const Reference<XTransferable>& xTransf
Reference<XTransferable> oldContent(mXClipboardContent);
mXClipboardContent = xTransferable;
- NSArray* types = mXClipboardContent.is() ?
- mpDataFlavorMapper->flavorSequenceToTypesArray(mXClipboardContent->getTransferDataFlavors()) :
- [NSArray array];
mPasteboardChangeCount = [mPasteboard declareTypes: types owner: mEventListener];
+ aGuard.clear();
+
// if we are already the owner of the clipboard
// then fire lost ownership event
if (oldOwner.is())
@@ -253,7 +256,7 @@ void SAL_CALL AquaClipboard::removeClipboardListener(const Reference< XClipboard
void AquaClipboard::applicationDidBecomeActive(NSNotification* aNotification)
{
- MutexGuard aGuard(m_aMutex);
+ ClearableMutexGuard aGuard(m_aMutex);
int currentPboardChgCount = [mPasteboard changeCount];
@@ -270,6 +273,8 @@ void AquaClipboard::applicationDidBecomeActive(NSNotification* aNotification)
Reference<XTransferable> oldContent(mXClipboardContent);
mXClipboardContent = Reference<XTransferable>();
+ aGuard.clear();
+
if (oldOwner.is())
{
fireLostClipboardOwnershipEvent(oldOwner, oldContent);
diff --git a/vcl/aqua/source/gdi/aquaprintaccessoryview.mm b/vcl/aqua/source/gdi/aquaprintaccessoryview.mm
index 74c66ab1401d..d00fc9a6cd0e 100644
--- a/vcl/aqua/source/gdi/aquaprintaccessoryview.mm
+++ b/vcl/aqua/source/gdi/aquaprintaccessoryview.mm
@@ -318,6 +318,12 @@ class ControllerProperties
double fScaleX = double(aLogicSize.Width())/double(aPageSize.aSize.Width());
double fScaleY = double(aLogicSize.Height())/double(aPageSize.aSize.Height());
double fScale = (fScaleX < fScaleY) ? fScaleX : fScaleY;
+ // #i104784# if we render the page too small then rounding issues result in
+ // layout artifacts looking really bad. So scale the page unto a device that is not
+ // full page size but not too small either. This also results in much better visual
+ // quality of the preview, e.g. when its height approaches the number of text lines
+ if( fScale < 0.1 )
+ fScale = 0.1;
aMtf.WindStart();
aMtf.Scale( fScale, fScale );
aMtf.WindStart();
@@ -358,9 +364,10 @@ class ControllerProperties
NSSize aMargins = [mpPreviewBox contentViewMargins];
aPreviewFrame.origin.x = 0;
aPreviewFrame.origin.y = 34;
+ aPreviewFrame.size.width -= 2*(aMargins.width+1);
aPreviewFrame.size.height -= 61;
mpPreview = [[NSImageView alloc] initWithFrame: aPreviewFrame];
- [mpPreview setImageScaling: NSScaleNone];
+ [mpPreview setImageScaling: NSScaleProportionally];
[mpPreview setImageAlignment: NSImageAlignCenter];
[mpPreview setImageFrameStyle: NSImageFrameNone];
[mpPreviewBox addSubview: [mpPreview autorelease]];
diff --git a/vcl/aqua/source/gdi/salgdi.cxx b/vcl/aqua/source/gdi/salgdi.cxx
index a54a7fad7ac5..38fb068bb353 100644
--- a/vcl/aqua/source/gdi/salgdi.cxx
+++ b/vcl/aqua/source/gdi/salgdi.cxx
@@ -1095,7 +1095,8 @@ void AquaSalGraphics::copyBits( const SalTwoRect *pPosAry, SalGraphics *pSrcGrap
DBG_ASSERT( pSrc->mxLayer!=NULL, "AquaSalGraphics::copyBits() from non-layered graphics" );
const CGPoint aDstPoint = { +pPosAry->mnDestX - pPosAry->mnSrcX, pPosAry->mnDestY - pPosAry->mnSrcY };
- if( !mnBitmapDepth || (aDstPoint.x + pSrc->mnWidth) <= mnWidth ) // workaround a Quartz crasher
+ if( (pPosAry->mnSrcWidth == pPosAry->mnDestWidth && pPosAry->mnSrcHeight == pPosAry->mnDestHeight) &&
+ (!mnBitmapDepth || (aDstPoint.x + pSrc->mnWidth) <= mnWidth) ) // workaround a Quartz crasher
{
// in XOR mode the drawing context is redirected to the XOR mask
// if source and target are identical then copyBits() paints onto the target context though
diff --git a/vcl/aqua/source/gdi/salprn.cxx b/vcl/aqua/source/gdi/salprn.cxx
index cee243093ff3..1c0401f769b5 100644
--- a/vcl/aqua/source/gdi/salprn.cxx
+++ b/vcl/aqua/source/gdi/salprn.cxx
@@ -532,8 +532,6 @@ BOOL AquaSalInfoPrinter::StartJob( const String* i_pFileName,
PrintAccessoryViewState aAccViewState;
sal_Int32 nAllPages = 0;
- aAccViewState.bNeedRestart = true;
-
// reset IsLastPage
i_rController.setLastPage( sal_False );
@@ -549,111 +547,133 @@ BOOL AquaSalInfoPrinter::StartJob( const String* i_pFileName,
if( ! i_rController.isShowDialogs() )
bShowProgressPanel = sal_False;
+ // possibly create one job for collated output
+ sal_Bool bSinglePrintJobs = sal_False;
+ beans::PropertyValue* pSingleValue = i_rController.getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintCollateAsSingleJobs" ) ) );
+ if( pSingleValue )
+ {
+ pSingleValue->Value >>= bSinglePrintJobs;
+ }
+
// FIXME: jobStarted() should be done after the print dialog has ended (if there is one)
// how do I know when that might be ?
i_rController.jobStarted();
- do
- {
- if( aAccViewState.bNeedRestart )
- {
- mnCurPageRangeStart = 0;
- mnCurPageRangeCount = 0;
- nAllPages = i_rController.getFilteredPageCount();
- }
- aAccViewState.bNeedRestart = false;
- Size aCurSize( 21000, 29700 );
- if( nAllPages > 0 )
+ int nCopies = i_rController.getPrinter()->GetCopyCount();
+ int nJobs = 1;
+ if( bSinglePrintJobs )
+ {
+ nJobs = nCopies;
+ nCopies = 1;
+ }
+
+ for( int nCurJob = 0; nCurJob < nJobs; nCurJob++ )
+ {
+ aAccViewState.bNeedRestart = true;
+ do
{
- mnCurPageRangeCount = 1;
- aCurSize = getPageSize( i_rController, mnCurPageRangeStart );
- Size aNextSize( aCurSize );
+ if( aAccViewState.bNeedRestart )
+ {
+ mnCurPageRangeStart = 0;
+ mnCurPageRangeCount = 0;
+ nAllPages = i_rController.getFilteredPageCount();
+ }
- // print pages up to a different size
- while( mnCurPageRangeCount + mnCurPageRangeStart < nAllPages )
+ aAccViewState.bNeedRestart = false;
+
+ Size aCurSize( 21000, 29700 );
+ if( nAllPages > 0 )
{
- aNextSize = getPageSize( i_rController, mnCurPageRangeStart + mnCurPageRangeCount );
- if( aCurSize == aNextSize // same page size
- ||
- (aCurSize.Width() == aNextSize.Height() && aCurSize.Height() == aNextSize.Width()) // same size, but different orientation
- )
+ mnCurPageRangeCount = 1;
+ aCurSize = getPageSize( i_rController, mnCurPageRangeStart );
+ Size aNextSize( aCurSize );
+
+ // print pages up to a different size
+ while( mnCurPageRangeCount + mnCurPageRangeStart < nAllPages )
{
- mnCurPageRangeCount++;
+ aNextSize = getPageSize( i_rController, mnCurPageRangeStart + mnCurPageRangeCount );
+ if( aCurSize == aNextSize // same page size
+ ||
+ (aCurSize.Width() == aNextSize.Height() && aCurSize.Height() == aNextSize.Width()) // same size, but different orientation
+ )
+ {
+ mnCurPageRangeCount++;
+ }
+ else
+ break;
}
- else
- break;
}
- }
- else
- mnCurPageRangeCount = 0;
-
- // now for the current run
- mnStartPageOffsetX = mnStartPageOffsetY = 0;
- // setup the paper size and orientation
- // do this on our associated Printer object, since that is
- // out interface to the applications which occasionally rely on the paper
- // information (e.g. brochure printing scales to the found paper size)
- // also SetPaperSizeUser has the advantage that we can share a
- // platform independent paper matching algorithm
- boost::shared_ptr<Printer> pPrinter( i_rController.getPrinter() );
- pPrinter->SetMapMode( MapMode( MAP_100TH_MM ) );
- pPrinter->SetPaperSizeUser( aCurSize, true );
-
- // create view
- NSView* pPrintView = [[AquaPrintView alloc] initWithController: &i_rController withInfoPrinter: this];
-
- NSMutableDictionary* pPrintDict = [mpPrintInfo dictionary];
-
- // set filename
- if( i_pFileName )
- {
- [mpPrintInfo setJobDisposition: NSPrintSaveJob];
- NSString* pPath = CreateNSString( *i_pFileName );
- [pPrintDict setObject: pPath forKey: NSPrintSavePath];
- [pPath release];
- }
+ else
+ mnCurPageRangeCount = 0;
+
+ // now for the current run
+ mnStartPageOffsetX = mnStartPageOffsetY = 0;
+ // setup the paper size and orientation
+ // do this on our associated Printer object, since that is
+ // out interface to the applications which occasionally rely on the paper
+ // information (e.g. brochure printing scales to the found paper size)
+ // also SetPaperSizeUser has the advantage that we can share a
+ // platform independent paper matching algorithm
+ boost::shared_ptr<Printer> pPrinter( i_rController.getPrinter() );
+ pPrinter->SetMapMode( MapMode( MAP_100TH_MM ) );
+ pPrinter->SetPaperSizeUser( aCurSize, true );
+
+ // create view
+ NSView* pPrintView = [[AquaPrintView alloc] initWithController: &i_rController withInfoPrinter: this];
+
+ NSMutableDictionary* pPrintDict = [mpPrintInfo dictionary];
+
+ // set filename
+ if( i_pFileName )
+ {
+ [mpPrintInfo setJobDisposition: NSPrintSaveJob];
+ NSString* pPath = CreateNSString( *i_pFileName );
+ [pPrintDict setObject: pPath forKey: NSPrintSavePath];
+ [pPath release];
+ }
- [pPrintDict setObject: [[NSNumber numberWithInt: (int)i_rController.getPrinter()->GetCopyCount()] autorelease] forKey: NSPrintCopies];
- [pPrintDict setObject: [[NSNumber numberWithBool: YES] autorelease] forKey: NSPrintDetailedErrorReporting];
- [pPrintDict setObject: [[NSNumber numberWithInt: 1] autorelease] forKey: NSPrintFirstPage];
- // #i103253# weird: for some reason, autoreleasing the value below like the others above
- // leads do a double free malloc error. Why this value should behave differently from all the others
- // is a mystery.
- [pPrintDict setObject: [NSNumber numberWithInt: mnCurPageRangeCount] forKey: NSPrintLastPage];
+ [pPrintDict setObject: [[NSNumber numberWithInt: nCopies] autorelease] forKey: NSPrintCopies];
+ [pPrintDict setObject: [[NSNumber numberWithBool: YES] autorelease] forKey: NSPrintDetailedErrorReporting];
+ [pPrintDict setObject: [[NSNumber numberWithInt: 1] autorelease] forKey: NSPrintFirstPage];
+ // #i103253# weird: for some reason, autoreleasing the value below like the others above
+ // leads do a double free malloc error. Why this value should behave differently from all the others
+ // is a mystery.
+ [pPrintDict setObject: [NSNumber numberWithInt: mnCurPageRangeCount] forKey: NSPrintLastPage];
- // create print operation
- NSPrintOperation* pPrintOperation = [NSPrintOperation printOperationWithView: pPrintView printInfo: mpPrintInfo];
+ // create print operation
+ NSPrintOperation* pPrintOperation = [NSPrintOperation printOperationWithView: pPrintView printInfo: mpPrintInfo];
- if( pPrintOperation )
- {
- NSObject* pReleaseAfterUse = nil;
- bool bShowPanel = (! i_rController.isDirectPrint() && getUseNativeDialog() && i_rController.isShowDialogs() );
- [pPrintOperation setShowsPrintPanel: bShowPanel ? YES : NO ];
- [pPrintOperation setShowsProgressPanel: bShowProgressPanel ? YES : NO];
-
- // set job title (since MacOSX 10.5)
- if( [pPrintOperation respondsToSelector: @selector(setJobTitle:)] )
- [pPrintOperation performSelector: @selector(setJobTitle:) withObject: [CreateNSString( i_rJobName ) autorelease]];
-
- if( bShowPanel && mnCurPageRangeStart == 0 ) // only the first range of pages gets the accesory view
- pReleaseAfterUse = [AquaPrintAccessoryView setupPrinterPanel: pPrintOperation withController: &i_rController withState: &aAccViewState];
-
- bSuccess = TRUE;
- mbJob = true;
- pInst->startedPrintJob();
- [pPrintOperation runOperation];
- pInst->endedPrintJob();
- bWasAborted = [[[pPrintOperation printInfo] jobDisposition] compare: NSPrintCancelJob] == NSOrderedSame;
- mbJob = false;
- if( pReleaseAfterUse )
- [pReleaseAfterUse release];
- }
+ if( pPrintOperation )
+ {
+ NSObject* pReleaseAfterUse = nil;
+ bool bShowPanel = (! i_rController.isDirectPrint() && getUseNativeDialog() && i_rController.isShowDialogs() );
+ [pPrintOperation setShowsPrintPanel: bShowPanel ? YES : NO ];
+ [pPrintOperation setShowsProgressPanel: bShowProgressPanel ? YES : NO];
+
+ // set job title (since MacOSX 10.5)
+ if( [pPrintOperation respondsToSelector: @selector(setJobTitle:)] )
+ [pPrintOperation performSelector: @selector(setJobTitle:) withObject: [CreateNSString( i_rJobName ) autorelease]];
+
+ if( bShowPanel && mnCurPageRangeStart == 0 && nCurJob == 0) // only the first range of pages (in the first job) gets the accesory view
+ pReleaseAfterUse = [AquaPrintAccessoryView setupPrinterPanel: pPrintOperation withController: &i_rController withState: &aAccViewState];
+
+ bSuccess = TRUE;
+ mbJob = true;
+ pInst->startedPrintJob();
+ [pPrintOperation runOperation];
+ pInst->endedPrintJob();
+ bWasAborted = [[[pPrintOperation printInfo] jobDisposition] compare: NSPrintCancelJob] == NSOrderedSame;
+ mbJob = false;
+ if( pReleaseAfterUse )
+ [pReleaseAfterUse release];
+ }
- mnCurPageRangeStart += mnCurPageRangeCount;
- mnCurPageRangeCount = 1;
- } while( aAccViewState.bNeedRestart || mnCurPageRangeStart + mnCurPageRangeCount < nAllPages );
+ mnCurPageRangeStart += mnCurPageRangeCount;
+ mnCurPageRangeCount = 1;
+ } while( aAccViewState.bNeedRestart || mnCurPageRangeStart + mnCurPageRangeCount < nAllPages );
+ }
// inform application that it can release its data
// this is awkward, but the XRenderable interface has no method for this,
diff --git a/vcl/inc/postgraphitestl.h b/vcl/inc/postgraphitestl.h
deleted file mode 100644
index 736aa248b7ff..000000000000
--- a/vcl/inc/postgraphitestl.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifdef std_was_redefined_as_stlport
-// put things back the way they were
-# define std std_was_redefined_as_stlport
-# undef _STLP_OUTERMOST_HEADER_ID
-// force config to be re-read
-# undef _STLP_NOTHROW_INHERENTLY
-# undef _STLP_CONFIG_H
-# include <stddef.h>
-#endif
diff --git a/vcl/inc/pregraphitestl.h b/vcl/inc/pregraphitestl.h
deleted file mode 100644
index ece0af477113..000000000000
--- a/vcl/inc/pregraphitestl.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#if defined(GRAPHITEADAPTSTL) && defined(std)
-# include <ostream>
-# include <istream>
-# include <fstream>
-# include <iostream>
-# include <vector>
-# include <algorithm>
-# define std_was_redefined_as_stlport std
-# undef std
-# define _STLP_OUTERMOST_HEADER_ID 0xdeadbeaf
-# pragma GCC visibility push(default)
-# include _STLP_NATIVE_HEADER(exception_defines.h)
-# include _STLP_NATIVE_HEADER(limits)
-# include _STLP_NATIVE_HEADER(memory)
-# include _STLP_NATIVE_HEADER(exception)
-# include _STLP_NATIVE_HEADER(iosfwd)
-# include _STLP_NATIVE_HEADER(algorithm)
-# include _STLP_NATIVE_HEADER(string)
-# include _STLP_NATIVE_HEADER(streambuf)
-# include _STLP_NATIVE_HEADER(ios)
-# include _STLP_NATIVE_HEADER(locale)
-# include _STLP_NATIVE_HEADER(stdexcept)
-# include _STLP_NATIVE_HEADER(ostream)
-# include _STLP_NATIVE_HEADER(istream)
-# include _STLP_NATIVE_HEADER(iostream)
-# include _STLP_NATIVE_HEADER(vector)
-# pragma GCC visibility pop
-#endif
-//sil_std resolves to the std that Graphite was built with
-namespace sil_std = std;
diff --git a/vcl/inc/vcl/graphite_adaptors.hxx b/vcl/inc/vcl/graphite_adaptors.hxx
index 0b5f88184ce4..43c2e37a5fb2 100644
--- a/vcl/inc/vcl/graphite_adaptors.hxx
+++ b/vcl/inc/vcl/graphite_adaptors.hxx
@@ -55,11 +55,11 @@
#include "vcl/dllapi.h"
// Libraries
-#include "pregraphitestl.h"
+#include <tools/preextstl.h>
#include <graphite/GrClient.h>
#include <graphite/Font.h>
#include <graphite/ITextSource.h>
-#include "postgraphitestl.h"
+#include <tools/postextstl.h>
// Module type definitions and forward declarations.
//
@@ -119,7 +119,7 @@ public:
const grutils::GrFeatureParser * features() const { return mpFeatures; };
private:
- virtual void UniqueCacheInfo(sil_std::wstring &, bool &, bool &);
+ virtual void UniqueCacheInfo(ext_std::wstring &, bool &, bool &);
FreetypeServerFont& mrFont;
FontProperties maFontProperties;
diff --git a/vcl/inc/vcl/graphite_features.hxx b/vcl/inc/vcl/graphite_features.hxx
index 9f63a029eb5f..47f4c3a01e7f 100644
--- a/vcl/inc/vcl/graphite_features.hxx
+++ b/vcl/inc/vcl/graphite_features.hxx
@@ -29,11 +29,11 @@
// Parse a string of features specified as ; separated pairs.
// e.g.
// 1001=1&2002=2&fav1=0
-#include "pregraphitestl.h"
+#include <tools/preextstl.h>
#include <graphite/GrClient.h>
#include <graphite/Font.h>
#include <graphite/GrFeature.h>
-#include "postgraphitestl.h"
+#include <tools/postextstl.h>
namespace grutils
{
diff --git a/vcl/inc/vcl/graphite_layout.hxx b/vcl/inc/vcl/graphite_layout.hxx
index b3a3814e9ce6..1fbb11211ca0 100644
--- a/vcl/inc/vcl/graphite_layout.hxx
+++ b/vcl/inc/vcl/graphite_layout.hxx
@@ -40,13 +40,13 @@
#include <vector>
#include <utility>
// Libraries
-#include "pregraphitestl.h"
+#include <tools/preextstl.h>
#include <graphite/GrClient.h>
#include <graphite/Font.h>
#include <graphite/GrConstants.h>
#include <graphite/GrAppData.h>
#include <graphite/SegmentAux.h>
-#include "postgraphitestl.h"
+#include <tools/postextstl.h>
// Platform
#include <vcl/sallayout.hxx>
#include <vcl/dllapi.h>
diff --git a/vcl/inc/vcl/ppdparser.hxx b/vcl/inc/vcl/ppdparser.hxx
index 12e8a16f6264..c7a1e09b81e4 100644
--- a/vcl/inc/vcl/ppdparser.hxx
+++ b/vcl/inc/vcl/ppdparser.hxx
@@ -221,7 +221,7 @@ public:
bool isType42Capable() const { return m_bType42Capable; }
ULONG getLanguageLevel() const { return m_nLanguageLevel; }
- const String& getDefaultPaperDimension() const;
+ String getDefaultPaperDimension() const;
void getDefaultPaperDimension( int& rWidth, int& rHeight ) const
{ getPaperDimension( getDefaultPaperDimension(), rWidth, rHeight ); }
bool getPaperDimension( const String& rPaperName,
@@ -230,12 +230,12 @@ public:
// returns false if paper not found
int getPaperDimensions() const
{ return m_pPaperDimensions ? m_pPaperDimensions->countValues() : 0; }
- const String& getPaperDimension( int ) const;
- const String& getPaperDimensionCommand( int ) const;
- const String& getPaperDimensionCommand( const String & ) const;
+ String getPaperDimension( int ) const;
+ String getPaperDimensionCommand( int ) const;
+ String getPaperDimensionCommand( const String & ) const;
// match the best paper for width and height
- const String& matchPaper( int nWidth, int nHeight ) const;
+ String matchPaper( int nWidth, int nHeight ) const;
bool getMargins( const String& rPaperName,
int &rLeft, int& rRight,
@@ -245,27 +245,27 @@ public:
// values int pt
- const String& getDefaultInputSlot() const;
+ String getDefaultInputSlot() const;
int getInputSlots() const
{ return m_pInputSlots ? m_pInputSlots->countValues() : 0; }
- const String& getSlot( int ) const;
- const String& getSlotCommand( int ) const;
- const String& getSlotCommand( const String& ) const;
+ String getSlot( int ) const;
+ String getSlotCommand( int ) const;
+ String getSlotCommand( const String& ) const;
void getDefaultResolution( int& rXRes, int& rYRes ) const;
int getResolutions() const;
void getResolution( int, int& rXRes, int& rYRes ) const;
- const String& getResolutionCommand( int nXRes, int nYRes ) const;
+ String getResolutionCommand( int nXRes, int nYRes ) const;
// values in dpi
void getResolutionFromString( const String&, int&, int& ) const;
// helper function
- const String& getDefaultDuplexType() const;
+ String getDefaultDuplexType() const;
int getDuplexTypes() const
{ return m_pDuplexTypes ? m_pDuplexTypes->countValues() : 0; }
- const String& getDuplex( int ) const;
- const String& getDuplexCommand( int ) const;
- const String& getDuplexCommand( const String& ) const;
+ String getDuplex( int ) const;
+ String getDuplexCommand( int ) const;
+ String getDuplexCommand( const String& ) const;
int getFonts() const
{ return m_pFontList ? m_pFontList->countValues() : 0; }
@@ -275,7 +275,7 @@ public:
void getFontAttributes( const String&,
String& rEncoding,
String& rCharset ) const;
- const String& getFont( int ) const;
+ String getFont( int ) const;
rtl::OUString translateKey( const rtl::OUString& i_rKey,
diff --git a/vcl/inc/vcl/prndlg.hxx b/vcl/inc/vcl/prndlg.hxx
index bec612b65593..fdaf06c9854e 100644
--- a/vcl/inc/vcl/prndlg.hxx
+++ b/vcl/inc/vcl/prndlg.hxx
@@ -55,9 +55,12 @@ namespace vcl
{
GDIMetaFile maMtf;
Size maOrigSize;
+ Size maPreviewSize;
VirtualDevice maPageVDev;
rtl::OUString maReplacementString;
rtl::OUString maToolTipString;
+
+ bool useHCColorReplacement() const;
public:
PrintPreviewWindow( Window* pParent, const ResId& );
virtual ~PrintPreviewWindow();
@@ -293,6 +296,7 @@ namespace vcl
bool isPrintToFile();
int getCopyCount();
bool isCollate();
+ bool isSingleJobs();
void previewForward();
void previewBackward();
@@ -321,6 +325,7 @@ namespace vcl
bool isCanceled() const { return mbCanceled; }
void setProgress( int i_nCurrent, int i_nMax = -1 );
void tick();
+ void reset();
virtual void Paint( const Rectangle& );
};
diff --git a/vcl/source/app/dbggui.cxx b/vcl/source/app/dbggui.cxx
index b22a7d21f357..dd9a5b4a15ee 100644
--- a/vcl/source/app/dbggui.cxx
+++ b/vcl/source/app/dbggui.cxx
@@ -1783,8 +1783,6 @@ void DbgDialogTest( Window* pWindow )
}
// =======================================================================
-void DbgPrintShell( const char* pLine );
-
#ifndef WNT
#define USE_VCL_MSGBOX
#define COPY_BUTTON_ID 25
@@ -1963,27 +1961,6 @@ void DbgPrintWindow( const char* pLine )
bIn = FALSE;
}
-// -----------------------------------------------------------------------
-
-void DbgPrintShell( const char* pLine )
-{
-#if defined( WNT )
- // TODO: Shouldn't this be a IsDebuggerPresent()?
- if ( GetSystemMetrics( SM_DEBUG ) )
- {
- strcpy( aDbgOutBuf, pLine );
- strcat( aDbgOutBuf, "\r\n" );
- OutputDebugString( aDbgOutBuf );
- return;
- }
-
- DbgPrintWindow( pLine );
-#endif
-#ifdef UNX
- fprintf( stderr, "%s\n", pLine );
-#endif
-}
-
// =======================================================================
#ifdef WNT
@@ -1996,7 +1973,6 @@ void DbgGUIInit()
{
DbgSetPrintMsgBox( DbgPrintMsgBox );
DbgSetPrintWindow( DbgPrintWindow );
- DbgSetPrintShell( DbgPrintShell );
#ifdef WNT
DbgSetTestSolarMutex( ImplDbgTestSolarMutex );
#endif
@@ -2008,7 +1984,6 @@ void DbgGUIDeInit()
{
DbgSetPrintMsgBox( NULL );
DbgSetPrintWindow( NULL );
- DbgSetPrintShell( NULL );
#ifdef WNT
DbgSetTestSolarMutex( NULL );
#endif
diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx
index e13ae6cbe64a..630e58a1f2bf 100644
--- a/vcl/source/gdi/outdev3.cxx
+++ b/vcl/source/gdi/outdev3.cxx
@@ -2091,11 +2091,14 @@ ImplDevFontListData* ImplDevFontList::FindDefaultFont() const
ImplDevFontList* ImplDevFontList::Clone( bool bScalable, bool bEmbeddable ) const
{
ImplDevFontList* pClonedList = new ImplDevFontList;
- pClonedList->mbMatchData = mbMatchData;
+// pClonedList->mbMatchData = mbMatchData;
pClonedList->mbMapNames = mbMapNames;
pClonedList->mpPreMatchHook = mpPreMatchHook;
pClonedList->mpFallbackHook = mpFallbackHook;
+ // TODO: clone the config-font attributes too?
+ pClonedList->mbMatchData = false;
+
DevFontList::const_iterator it = maDevFontList.begin();
for(; it != maDevFontList.end(); ++it )
{
diff --git a/vcl/source/gdi/print3.cxx b/vcl/source/gdi/print3.cxx
index de7cd2e139da..191f8f26dc75 100644
--- a/vcl/source/gdi/print3.cxx
+++ b/vcl/source/gdi/print3.cxx
@@ -36,6 +36,7 @@
#include "vcl/svids.hrc"
#include "vcl/metaact.hxx"
#include "vcl/msgbox.hxx"
+#include "vcl/configsettings.hxx"
#include "tools/urlobj.hxx"
@@ -171,13 +172,15 @@ public:
// set by user through printer config dialog
// if set, pages are centered and trimmed onto the fixed page
Size maFixedPageSize;
+ sal_Int32 mnDefaultPaperBin;
ImplPrinterControllerData() :
mbFirstPage( sal_True ),
mbLastPage( sal_False ),
mbReversePageOrder( sal_False ),
meJobState( view::PrintableState_JOB_STARTED ),
- mpProgress( NULL )
+ mpProgress( NULL ),
+ mnDefaultPaperBin( -1 )
{}
~ImplPrinterControllerData() { delete mpProgress; }
@@ -327,9 +330,25 @@ void Printer::ImplPrintJob( const boost::shared_ptr<PrinterController>& i_pContr
// setup printer
// if no specific printer is already set, create one
+
+ // #i108686#
+ // in case of a UI (platform independent or system dialog) print job, make the printer persistent over jobs
+ // however if no printer was already set by the print job's originator,
+ // and this is an API job, then use the system default location (because
+ // this is the only sensible default available if the user has no means of changing
+ // the destination
if( ! pController->getPrinter() )
{
- boost::shared_ptr<Printer> pPrinter( new Printer( i_rInitSetup.GetPrinterName() ) );
+ rtl::OUString aPrinterName( i_rInitSetup.GetPrinterName() );
+ if( ! aPrinterName.getLength() && pController->isShowDialogs() && ! pController->isDirectPrint() )
+ {
+ // get printer name from configuration
+ SettingsConfigItem* pItem = SettingsConfigItem::get();
+ aPrinterName = pItem->getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintDialog" ) ),
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LastPrinterUsed" ) ) );
+ }
+
+ boost::shared_ptr<Printer> pPrinter( new Printer( aPrinterName ) );
pController->setPrinter( pPrinter );
}
@@ -440,7 +459,12 @@ void Printer::ImplPrintJob( const boost::shared_ptr<PrinterController>& i_pContr
return;
}
pController->setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LocalFileName" ) ),
- makeAny( aFile ) );
+ makeAny( aFile ) );
+ }
+ else if( aDlg.isSingleJobs() )
+ {
+ pController->setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintCollateAsSingleJobs" ) ),
+ makeAny( sal_True ) );
}
}
catch( std::bad_alloc& )
@@ -501,6 +525,13 @@ bool Printer::StartJob( const rtl::OUString& i_rJobName, boost::shared_ptr<vcl::
if ( !mpPrinter )
return FALSE;
+ sal_Bool bSinglePrintJobs = sal_False;
+ beans::PropertyValue* pSingleValue = i_pController->getValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintCollateAsSingleJobs" ) ) );
+ if( pSingleValue )
+ {
+ pSingleValue->Value >>= bSinglePrintJobs;
+ }
+
// remark: currently it is still possible to use EnablePrintFile and
// SetPrintFileName to redirect printout into file
// it can be argued that those methods should be removed in favor
@@ -514,6 +545,7 @@ bool Printer::StartJob( const rtl::OUString& i_rJobName, boost::shared_ptr<vcl::
{
mbPrintFile = TRUE;
maPrintFile = aFile;
+ bSinglePrintJobs = sal_False;
}
}
@@ -561,49 +593,90 @@ bool Printer::StartJob( const rtl::OUString& i_rJobName, boost::shared_ptr<vcl::
i_pController->setJobState( view::PrintableState_JOB_STARTED );
i_pController->jobStarted();
- if( mpPrinter->StartJob( pPrintFile,
- i_rJobName,
- Application::GetDisplayName(),
- nCopies,
- bCollateCopy,
- i_pController->isDirectPrint(),
- maJobSetup.ImplGetConstData() ) )
+ int nJobs = 1;
+ int nRepeatCount = bUserCopy ? mnCopyCount : 1;
+ if( bSinglePrintJobs )
{
- mbJobActive = TRUE;
- i_pController->createProgressDialog();
- int nPages = i_pController->getFilteredPageCount();
- int nRepeatCount = bUserCopy ? mnCopyCount : 1;
- for( int nIteration = 0; nIteration < nRepeatCount; nIteration++ )
+ nJobs = mnCopyCount;
+ nCopies = 1;
+ nRepeatCount = 1;
+ }
+
+ for( int nJobIteration = 0; nJobIteration < nJobs; nJobIteration++ )
+ {
+ bool bError = false;
+ if( mpPrinter->StartJob( pPrintFile,
+ i_rJobName,
+ Application::GetDisplayName(),
+ nCopies,
+ bCollateCopy,
+ i_pController->isDirectPrint(),
+ maJobSetup.ImplGetConstData() ) )
{
- for( int nPage = 0; nPage < nPages; nPage++ )
+ mbJobActive = TRUE;
+ i_pController->createProgressDialog();
+ int nPages = i_pController->getFilteredPageCount();
+ for( int nIteration = 0; nIteration < nRepeatCount; nIteration++ )
{
- if( nPage == nPages-1 && nIteration == nRepeatCount-1 )
- i_pController->setLastPage( sal_True );
- i_pController->printFilteredPage( nPage );
+ for( int nPage = 0; nPage < nPages; nPage++ )
+ {
+ if( nPage == nPages-1 && nIteration == nRepeatCount-1 && nJobIteration == nJobs-1 )
+ i_pController->setLastPage( sal_True );
+ i_pController->printFilteredPage( nPage );
+ }
+ // FIXME: duplex ?
+ }
+ EndJob();
+
+ if( nJobIteration < nJobs-1 )
+ {
+ mpPrinter = pSVData->mpDefInst->CreatePrinter( mpInfoPrinter );
+
+ if ( mpPrinter )
+ {
+ maJobName = i_rJobName;
+ mnCurPage = 1;
+ mnCurPrintPage = 1;
+ mbPrinting = TRUE;
+ }
+ else
+ bError = true;
}
- // FIXME: duplex ?
}
- EndJob();
+ else
+ bError = true;
- if( i_pController->getJobState() == view::PrintableState_JOB_STARTED )
- i_pController->setJobState( view::PrintableState_JOB_SPOOLED );
+ if( bError )
+ {
+ mnError = ImplSalPrinterErrorCodeToVCL( mpPrinter->GetErrorCode() );
+ if ( !mnError )
+ mnError = PRINTER_GENERALERROR;
+ i_pController->setJobState( mnError == PRINTER_ABORT
+ ? view::PrintableState_JOB_ABORTED
+ : view::PrintableState_JOB_FAILED );
+ if( mpPrinter )
+ pSVData->mpDefInst->DestroyPrinter( mpPrinter );
+ mnCurPage = 0;
+ mnCurPrintPage = 0;
+ mbPrinting = FALSE;
+ mpPrinter = NULL;
+
+ return false;
+ }
}
- else
- {
- mnError = ImplSalPrinterErrorCodeToVCL( mpPrinter->GetErrorCode() );
- if ( !mnError )
- mnError = PRINTER_GENERALERROR;
- i_pController->setJobState( mnError == PRINTER_ABORT
- ? view::PrintableState_JOB_ABORTED
- : view::PrintableState_JOB_FAILED );
- pSVData->mpDefInst->DestroyPrinter( mpPrinter );
- mnCurPage = 0;
- mnCurPrintPage = 0;
- mbPrinting = FALSE;
- mpPrinter = NULL;
- return false;
- }
+ if( i_pController->getJobState() == view::PrintableState_JOB_STARTED )
+ i_pController->setJobState( view::PrintableState_JOB_SPOOLED );
+ }
+
+ // make last used printer persistent for UI jobs
+ if( i_pController->isShowDialogs() && ! i_pController->isDirectPrint() )
+ {
+ SettingsConfigItem* pItem = SettingsConfigItem::get();
+ pItem->setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PrintDialog" ) ),
+ rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "LastPrinterUsed" ) ),
+ GetName()
+ );
}
return true;
@@ -634,6 +707,7 @@ void PrinterController::setPrinter( const boost::shared_ptr<Printer>& i_rPrinter
mpImplData->mpPrinter = i_rPrinter;
setValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Name" ) ),
makeAny( rtl::OUString( i_rPrinter->GetName() ) ) );
+ mpImplData->mnDefaultPaperBin = mpImplData->mpPrinter->GetPaperBin();
}
bool PrinterController::setupPrinter( Window* i_pParent )
@@ -668,27 +742,55 @@ PrinterController::PageSize vcl::ImplPrinterControllerData::modifyJobSetup( cons
{
PrinterController::PageSize aPageSize;
aPageSize.aSize = mpPrinter->GetPaperSize();
+ awt::Size aSetSize, aIsSize;
+ sal_Int32 nPaperBin = mnDefaultPaperBin;
for( sal_Int32 nProperty = 0, nPropertyCount = i_rProps.getLength(); nProperty < nPropertyCount; ++nProperty )
{
- if( i_rProps[ nProperty ].Name.equalsAscii( "PageSize" ) )
+ if( i_rProps[ nProperty ].Name.equalsAscii( "PreferredPageSize" ) )
{
- awt::Size aSize;
- i_rProps[ nProperty].Value >>= aSize;
- aPageSize.aSize.Width() = aSize.Width;
- aPageSize.aSize.Height() = aSize.Height;
-
- Size aCurSize( mpPrinter->GetPaperSize() );
- Size aRealPaperSize( getRealPaperSize( aPageSize.aSize ) );
- if( aRealPaperSize != aCurSize )
- mpPrinter->SetPaperSizeUser( aRealPaperSize, ! isFixedPageSize() );
+ i_rProps[ nProperty ].Value >>= aSetSize;
}
- if( i_rProps[ nProperty ].Name.equalsAscii( "PageIncludesNonprintableArea" ) )
+ else if( i_rProps[ nProperty ].Name.equalsAscii( "PageSize" ) )
+ {
+ i_rProps[ nProperty ].Value >>= aIsSize;
+ }
+ else if( i_rProps[ nProperty ].Name.equalsAscii( "PageIncludesNonprintableArea" ) )
{
sal_Bool bVal = sal_False;
- i_rProps[ nProperty].Value >>= bVal;
+ i_rProps[ nProperty ].Value >>= bVal;
aPageSize.bFullPaper = static_cast<bool>(bVal);
}
+ else if( i_rProps[ nProperty ].Name.equalsAscii( "PrinterPaperTray" ) )
+ {
+ sal_Int32 nBin = -1;
+ i_rProps[ nProperty ].Value >>= nBin;
+ if( nBin >= 0 && nBin < mpPrinter->GetPaperBinCount() )
+ nPaperBin = nBin;
+ }
+ }
+
+ Size aCurSize( mpPrinter->GetPaperSize() );
+ if( aSetSize.Width && aSetSize.Height )
+ {
+ Size aSetPaperSize( aSetSize.Width, aSetSize.Height );
+ Size aRealPaperSize( getRealPaperSize( aSetPaperSize ) );
+ if( aRealPaperSize != aCurSize )
+ aIsSize = aSetSize;
}
+
+ if( aIsSize.Width && aIsSize.Height )
+ {
+ aPageSize.aSize.Width() = aIsSize.Width;
+ aPageSize.aSize.Height() = aIsSize.Height;
+
+ Size aRealPaperSize( getRealPaperSize( aPageSize.aSize ) );
+ if( aRealPaperSize != aCurSize )
+ mpPrinter->SetPaperSizeUser( aRealPaperSize, ! isFixedPageSize() );
+ }
+
+ if( nPaperBin != -1 && nPaperBin != mpPrinter->GetPaperBin() )
+ mpPrinter->SetPaperBin( nPaperBin );
+
return aPageSize;
}
@@ -1393,6 +1495,8 @@ void PrinterController::createProgressDialog()
mpImplData->mpProgress->Show();
}
}
+ else
+ mpImplData->mpProgress->reset();
}
void PrinterController::setMultipage( const MultiPageSetup& i_rMPS )
diff --git a/vcl/source/glyphs/graphite_adaptors.cxx b/vcl/source/glyphs/graphite_adaptors.cxx
index 4afced765612..f66f5b48e39e 100644
--- a/vcl/source/glyphs/graphite_adaptors.cxx
+++ b/vcl/source/glyphs/graphite_adaptors.cxx
@@ -168,7 +168,7 @@ GraphiteFontAdaptor::~GraphiteFontAdaptor() throw()
mpFeatures = NULL;
}
-void GraphiteFontAdaptor::UniqueCacheInfo(sil_std::wstring & face_name_out, bool & bold_out, bool & italic_out)
+void GraphiteFontAdaptor::UniqueCacheInfo(ext_std::wstring & face_name_out, bool & bold_out, bool & italic_out)
{
face_name_out = maFontProperties.szFaceName;
bold_out = maFontProperties.fBold;
diff --git a/vcl/source/glyphs/graphite_cache.cxx b/vcl/source/glyphs/graphite_cache.cxx
index 713f3c1ed088..64bbb0a38d60 100644
--- a/vcl/source/glyphs/graphite_cache.cxx
+++ b/vcl/source/glyphs/graphite_cache.cxx
@@ -36,10 +36,10 @@
#include <tools/debug.hxx>
#include <vcl/sallayout.hxx>
-#include "pregraphitestl.h"
+#include <tools/preextstl.h>
#include <graphite/GrClient.h>
#include <graphite/Segment.h>
-#include "postgraphitestl.h"
+#include <tools/postextstl.h>
#include <rtl/ustring.hxx>
#include <vcl/graphite_layout.hxx>
diff --git a/vcl/source/glyphs/graphite_features.cxx b/vcl/source/glyphs/graphite_features.cxx
index bae96642da30..1cb25306c4ee 100644
--- a/vcl/source/glyphs/graphite_features.cxx
+++ b/vcl/source/glyphs/graphite_features.cxx
@@ -88,7 +88,7 @@ GrFeatureParser::GrFeatureParser(gr::Font & font, const std::string features, co
gr::isocode aLang = maLang;
for (size_t i = pos; i < nFeatEnd; i++)
aLang.rgch[i-pos] = features[i];
- sil_std::pair<gr::LanguageIterator,gr::LanguageIterator> aSupported
+ ext_std::pair<gr::LanguageIterator,gr::LanguageIterator> aSupported
= font.getSupportedLanguages();
gr::LanguageIterator iL = aSupported.first;
while (iL != aSupported.second)
@@ -139,7 +139,7 @@ void GrFeatureParser::setLang(gr::Font & font, const std::string & lang)
if (lang[i] == '-') break;
aLang.rgch[i] = lang[i];
}
- sil_std::pair<gr::LanguageIterator,gr::LanguageIterator> aSupported
+ ext_std::pair<gr::LanguageIterator,gr::LanguageIterator> aSupported
= font.getSupportedLanguages();
gr::LanguageIterator iL = aSupported.first;
while (iL != aSupported.second)
@@ -186,7 +186,7 @@ bool GrFeatureParser::isValid(gr::Font & font, gr::FeatureSetting & setting)
{
return false;
}
- sil_std::pair< gr::FeatureSettingIterator, gr::FeatureSettingIterator >
+ ext_std::pair< gr::FeatureSettingIterator, gr::FeatureSettingIterator >
validValues = font.getFeatureSettings(i);
gr::FeatureSettingIterator j = validValues.first;
while (j != validValues.second)
diff --git a/vcl/source/glyphs/graphite_layout.cxx b/vcl/source/glyphs/graphite_layout.cxx
index 25ea77dd07a3..6e75d1fde868 100644
--- a/vcl/source/glyphs/graphite_layout.cxx
+++ b/vcl/source/glyphs/graphite_layout.cxx
@@ -63,13 +63,13 @@
#include <unicode/uscript.h>
// Graphite Libraries (must be after vcl headers on windows)
-#include "pregraphitestl.h"
+#include <tools/preextstl.h>
#include <graphite/GrClient.h>
#include <graphite/Font.h>
#include <graphite/ITextSource.h>
#include <graphite/Segment.h>
#include <graphite/SegmentPainter.h>
-#include "postgraphitestl.h"
+#include <tools/postextstl.h>
#include <vcl/graphite_layout.hxx>
#include <vcl/graphite_features.hxx>
@@ -104,8 +104,8 @@ FILE * grLog()
namespace
{
- typedef sil_std::pair<gr::GlyphIterator, gr::GlyphIterator> glyph_range_t;
- typedef sil_std::pair<gr::GlyphSetIterator, gr::GlyphSetIterator> glyph_set_range_t;
+ typedef ext_std::pair<gr::GlyphIterator, gr::GlyphIterator> glyph_range_t;
+ typedef ext_std::pair<gr::GlyphSetIterator, gr::GlyphSetIterator> glyph_set_range_t;
inline long round(const float n) {
return long(n + (n < 0 ? -0.5 : 0.5));
@@ -170,7 +170,7 @@ GraphiteLayout::Glyphs::fill_from(gr::Segment & rSegment, ImplLayoutArgs &rArgs,
bool bRtl, long &rWidth, float fScaling, std::vector<int> & rChar2Base, std::vector<int> & rGlyph2Char, std::vector<int> & rCharDxs)
{
// Create a glyph item for each of the glyph and append it to the base class glyph list.
- typedef sil_std::pair< gr::GlyphSetIterator, gr::GlyphSetIterator > GrGlyphSet;
+ typedef ext_std::pair< gr::GlyphSetIterator, gr::GlyphSetIterator > GrGlyphSet;
int nChar = rArgs.mnEndCharPos - rArgs.mnMinCharPos;
glyph_range_t iGlyphs = rSegment.glyphs();
int nGlyphs = iGlyphs.second - iGlyphs.first;
@@ -585,7 +585,7 @@ public:
sal_Int32 hashCode(const grutils::GrFeatureParser * mpFeatures)
{
// is this sufficient?
- sil_std::wstring aFace;
+ ext_std::wstring aFace;
bool bBold;
bool bItalic;
UniqueCacheInfo(aFace, bBold, bItalic);
diff --git a/vcl/source/glyphs/graphite_textsrc.cxx b/vcl/source/glyphs/graphite_textsrc.cxx
index d7547662e065..5764ba9454c9 100644
--- a/vcl/source/glyphs/graphite_textsrc.cxx
+++ b/vcl/source/glyphs/graphite_textsrc.cxx
@@ -135,16 +135,16 @@ gr::isocode TextSourceAdaptor::getLanguage(gr::toffset)
return unknown;
}
-sil_std::pair<gr::toffset, gr::toffset> TextSourceAdaptor::propertyRange(gr::toffset nCharIdx)
+ext_std::pair<gr::toffset, gr::toffset> TextSourceAdaptor::propertyRange(gr::toffset nCharIdx)
{
if (nCharIdx < unsigned(maLayoutArgs.mnMinCharPos))
- return sil_std::make_pair(0, maLayoutArgs.mnMinCharPos);
+ return ext_std::make_pair(0, maLayoutArgs.mnMinCharPos);
if (nCharIdx < mnEnd)
- return sil_std::make_pair(maLayoutArgs.mnMinCharPos, mnEnd);
+ return ext_std::make_pair(maLayoutArgs.mnMinCharPos, mnEnd);
- return sil_std::make_pair(mnEnd, maLayoutArgs.mnLength);
+ return ext_std::make_pair(mnEnd, maLayoutArgs.mnLength);
}
size_t TextSourceAdaptor::getFontFeatures(gr::toffset, gr::FeatureSetting * settings)
@@ -156,7 +156,7 @@ size_t TextSourceAdaptor::getFontFeatures(gr::toffset, gr::FeatureSetting * sett
bool TextSourceAdaptor::sameSegment(gr::toffset char_idx1, gr::toffset char_idx2)
{
- const sil_std::pair<gr::toffset, gr::toffset>
+ const ext_std::pair<gr::toffset, gr::toffset>
range1 = propertyRange(char_idx1),
range2 = propertyRange(char_idx2);
diff --git a/vcl/source/glyphs/graphite_textsrc.hxx b/vcl/source/glyphs/graphite_textsrc.hxx
index 2397d6a5f701..2b9c705a5ea7 100644
--- a/vcl/source/glyphs/graphite_textsrc.hxx
+++ b/vcl/source/glyphs/graphite_textsrc.hxx
@@ -59,11 +59,11 @@
#include "vcl/dllapi.h"
// Libraries
-#include "pregraphitestl.h"
+#include <tools/preextstl.h>
#include <graphite/GrClient.h>
#include <graphite/Font.h>
#include <graphite/ITextSource.h>
-#include "postgraphitestl.h"
+#include <tools/postextstl.h>
// Module type definitions and forward declarations.
//
@@ -90,7 +90,7 @@ public:
virtual float getVerticalOffset(gr::toffset ich);
virtual gr::isocode getLanguage(gr::toffset ich);
- virtual sil_std::pair<gr::toffset, gr::toffset> propertyRange(gr::toffset ich);
+ virtual ext_std::pair<gr::toffset, gr::toffset> propertyRange(gr::toffset ich);
virtual size_t getFontFeatures(gr::toffset ich, gr::FeatureSetting * prgfset);
virtual bool sameSegment(gr::toffset ich1, gr::toffset ich2);
diff --git a/vcl/source/helper/xconnection.cxx b/vcl/source/helper/xconnection.cxx
index 19ac9103bf96..caf7ee237d67 100644
--- a/vcl/source/helper/xconnection.cxx
+++ b/vcl/source/helper/xconnection.cxx
@@ -141,12 +141,16 @@ bool DisplayConnection::dispatchEvent( void* pThis, void* pData, int nBytes )
SolarMutexReleaser aRel;
DisplayConnection* This = (DisplayConnection*)pThis;
- MutexGuard aGuard( This->m_aMutex );
Sequence< sal_Int8 > aSeq( (sal_Int8*)pData, nBytes );
Any aEvent;
aEvent <<= aSeq;
- for( ::std::list< Reference< XEventHandler > >::const_iterator it = This->m_aHandlers.begin(); it != This->m_aHandlers.end(); ++it )
+ ::std::list< Reference< XEventHandler > > handlers;
+ {
+ MutexGuard aGuard( This->m_aMutex );
+ handlers = This->m_aHandlers;
+ }
+ for( ::std::list< Reference< XEventHandler > >::const_iterator it = handlers.begin(); it != handlers.end(); ++it )
if( (*it)->handleEvent( aEvent ) )
return true;
return false;
@@ -157,12 +161,16 @@ bool DisplayConnection::dispatchErrorEvent( void* pThis, void* pData, int nBytes
SolarMutexReleaser aRel;
DisplayConnection* This = (DisplayConnection*)pThis;
- MutexGuard aGuard( This->m_aMutex );
Sequence< sal_Int8 > aSeq( (sal_Int8*)pData, nBytes );
Any aEvent;
aEvent <<= aSeq;
- for( ::std::list< Reference< XEventHandler > >::const_iterator it = This->m_aErrorHandlers.begin(); it != This->m_aErrorHandlers.end(); ++it )
+ ::std::list< Reference< XEventHandler > > handlers;
+ {
+ MutexGuard aGuard( This->m_aMutex );
+ handlers = This->m_aErrorHandlers;
+ }
+ for( ::std::list< Reference< XEventHandler > >::const_iterator it = handlers.begin(); it != handlers.end(); ++it )
if( (*it)->handleEvent( aEvent ) )
return true;
diff --git a/vcl/source/window/printdlg.cxx b/vcl/source/window/printdlg.cxx
index caf5705cbcd9..33e58b51d6d0 100644
--- a/vcl/source/window/printdlg.cxx
+++ b/vcl/source/window/printdlg.cxx
@@ -42,16 +42,22 @@
#include "vcl/help.hxx"
#include "vcl/decoview.hxx"
#include "vcl/svapp.hxx"
+#include "vcl/unohelp.hxx"
#include "unotools/localedatawrapper.hxx"
#include "rtl/ustrbuf.hxx"
+#include "com/sun/star/lang/XMultiServiceFactory.hpp"
+#include "com/sun/star/container/XNameAccess.hpp"
+#include "com/sun/star/beans/PropertyValue.hpp"
#include "com/sun/star/awt/Size.hpp"
using namespace vcl;
using namespace com::sun::star;
using namespace com::sun::star::uno;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::container;
using namespace com::sun::star::beans;
#define HELPID_PREFIX ".HelpId:vcl:PrintDialog"
@@ -66,7 +72,7 @@ PrintDialog::PrintPreviewWindow::PrintPreviewWindow( Window* i_pParent, const Re
{
SetPaintTransparent( TRUE );
SetBackground();
- if( GetSettings().GetStyleSettings().GetHighContrastMode() )
+ if( useHCColorReplacement() )
maPageVDev.SetBackground( GetSettings().GetStyleSettings().GetWindowColor() );
else
maPageVDev.SetBackground( Color( COL_WHITE ) );
@@ -76,12 +82,76 @@ PrintDialog::PrintPreviewWindow::~PrintPreviewWindow()
{
}
+bool PrintDialog::PrintPreviewWindow::useHCColorReplacement() const
+{
+ bool bRet = false;
+ if( GetSettings().GetStyleSettings().GetHighContrastMode() )
+ {
+ try
+ {
+ // get service provider
+ Reference< XMultiServiceFactory > xSMgr( unohelper::GetMultiServiceFactory() );
+ // create configuration hierachical access name
+ if( xSMgr.is() )
+ {
+ try
+ {
+ Reference< XMultiServiceFactory > xConfigProvider(
+ Reference< XMultiServiceFactory >(
+ xSMgr->createInstance( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.configuration.ConfigurationProvider" ))),
+ UNO_QUERY )
+ );
+ if( xConfigProvider.is() )
+ {
+ Sequence< Any > aArgs(1);
+ PropertyValue aVal;
+ aVal.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "nodepath" ) );
+ aVal.Value <<= rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/org.openoffice.Office.Common/Accessibility" ) );
+ aArgs.getArray()[0] <<= aVal;
+ Reference< XNameAccess > xConfigAccess(
+ Reference< XNameAccess >(
+ xConfigProvider->createInstanceWithArguments( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.configuration.ConfigurationAccess" )),
+ aArgs ),
+ UNO_QUERY )
+ );
+ if( xConfigAccess.is() )
+ {
+ try
+ {
+ sal_Bool bValue = sal_False;
+ Any aAny = xConfigAccess->getByName( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsForPagePreviews" ) ) );
+ if( aAny >>= bValue )
+ bRet = bool(bValue);
+ }
+ catch( NoSuchElementException& )
+ {
+ }
+ catch( WrappedTargetException& )
+ {
+ }
+ }
+ }
+ }
+ catch( Exception& )
+ {
+ }
+ }
+ }
+ catch( WrappedTargetException& )
+ {
+ }
+ }
+ return bRet;
+}
+
void PrintDialog::PrintPreviewWindow::DataChanged( const DataChangedEvent& i_rDCEvt )
{
// react on settings changed
if( i_rDCEvt.GetType() == DATACHANGED_SETTINGS )
{
- if( GetSettings().GetStyleSettings().GetHighContrastMode() )
+ if( useHCColorReplacement() )
maPageVDev.SetBackground( GetSettings().GetStyleSettings().GetWindowColor() );
else
maPageVDev.SetBackground( Color( COL_WHITE ) );
@@ -118,6 +188,23 @@ void PrintDialog::PrintPreviewWindow::Resize()
}
aScaledSize.Width() = long(aScaledSize.Width()*fScale);
aScaledSize.Height() = long(aScaledSize.Height()*fScale);
+
+ maPreviewSize = aScaledSize;
+
+ // #i104784# if we render the page too small then rounding issues result in
+ // layout artifacts looking really bad. So scale the page unto a device that is not
+ // full page size but not too small either. This also results in much better visual
+ // quality of the preview, e.g. when its height approaches the number of text lines
+ // find a good scaling factor
+ Size aPreviewMMSize( maPageVDev.PixelToLogic( aScaledSize, MapMode( MAP_100TH_MM ) ) );
+ double fZoom = double(maOrigSize.Height())/double(aPreviewMMSize.Height());
+ while( fZoom > 10 )
+ {
+ aScaledSize.Width() *= 2;
+ aScaledSize.Height() *= 2;
+ fZoom /= 2.0;
+ }
+
maPageVDev.SetOutputSizePixel( aScaledSize, FALSE );
}
@@ -129,9 +216,14 @@ void PrintDialog::PrintPreviewWindow::Paint( const Rectangle& )
// replacement is active
Push();
Rectangle aTextRect( Point( 0, 0 ), aSize );
- Font aFont( GetSettings().GetStyleSettings().GetFieldFont() );
- aFont.SetSize( Size( 0, aSize.Height()/12 ) );
- SetFont( aFont );
+ DecorationView aVw( this );
+ aVw.DrawFrame( aTextRect, FRAME_DRAW_GROUP );
+ aTextRect.Left() += 2;
+ aTextRect.Top() += 2;
+ aTextRect.Right() -= 2;
+ aTextRect.Bottom() -= 2;
+ Font aFont( GetSettings().GetStyleSettings().GetLabelFont() );
+ SetZoomedPointFont( aFont );
DrawText( aTextRect, maReplacementString,
TEXT_DRAW_CENTER | TEXT_DRAW_VCENTER | TEXT_DRAW_WORDBREAK | TEXT_DRAW_MULTILINE
);
@@ -141,11 +233,11 @@ void PrintDialog::PrintPreviewWindow::Paint( const Rectangle& )
{
GDIMetaFile aMtf( maMtf );
- Size aPreviewSize = maPageVDev.GetOutputSizePixel();
- Point aOffset( (aSize.Width() - aPreviewSize.Width()) / 2,
- (aSize.Height() - aPreviewSize.Height()) / 2 );
+ Point aOffset( (aSize.Width() - maPreviewSize.Width()) / 2,
+ (aSize.Height() - maPreviewSize.Height()) / 2 );
- const Size aLogicSize( maPageVDev.PixelToLogic( aPreviewSize, MapMode( MAP_100TH_MM ) ) );
+ Size aVDevSize( maPageVDev.GetOutputSizePixel() );
+ const Size aLogicSize( maPageVDev.PixelToLogic( aVDevSize, MapMode( MAP_100TH_MM ) ) );
Size aOrigSize( maOrigSize );
if( aOrigSize.Width() < 1 )
aOrigSize.Width() = aLogicSize.Width();
@@ -165,11 +257,11 @@ void PrintDialog::PrintPreviewWindow::Paint( const Rectangle& )
SetMapMode( MAP_PIXEL );
maPageVDev.SetMapMode( MAP_PIXEL );
- DrawOutDev( aOffset, aPreviewSize, Point( 0, 0 ), aPreviewSize, maPageVDev );
+ DrawOutDev( aOffset, maPreviewSize, Point( 0, 0 ), aVDevSize, maPageVDev );
DecorationView aVw( this );
- aOffset.X() -= 1; aOffset.Y() -=1; aPreviewSize.Width() += 2; aPreviewSize.Height() += 2;
- aVw.DrawFrame( Rectangle( aOffset, aPreviewSize ), FRAME_DRAW_GROUP );
+ Rectangle aFrame( aOffset + Point( -1, -1 ), Size( maPreviewSize.Width() + 2, maPreviewSize.Height() + 2 ) );
+ aVw.DrawFrame( aFrame, FRAME_DRAW_GROUP );
}
}
@@ -211,9 +303,7 @@ void PrintDialog::PrintPreviewWindow::setPreview( const GDIMetaFile& i_rNewPrevi
#endif
SetQuickHelpText( aBuf.makeStringAndClear() );
maMtf = i_rNewPreview;
- if( GetSettings().GetStyleSettings().GetHighContrastMode() &&
- GetSettings().GetStyleSettings().GetWindowColor().IsDark()
- )
+ if( useHCColorReplacement() )
{
maMtf.ReplaceColors( Color( COL_BLACK ), Color( COL_WHITE ), 30 );
}
@@ -834,6 +924,7 @@ PrintDialog::PrintDialog( Window* i_pParent, const boost::shared_ptr<PrinterCont
maNUpPage.maBorderCB.SetClickHdl( LINK( this, PrintDialog, ClickHdl ) );
maOptionsPage.maToFileBox.SetToggleHdl( LINK( this, PrintDialog, ClickHdl ) );
maOptionsPage.maReverseOrderBox.SetToggleHdl( LINK( this, PrintDialog, ClickHdl ) );
+ maOptionsPage.maCollateSingleJobsBox.SetToggleHdl( LINK( this, PrintDialog, ClickHdl ) );
maNUpPage.maPagesBtn.SetToggleHdl( LINK( this, PrintDialog, ClickHdl ) );
// setup modify hdl
@@ -1027,6 +1118,11 @@ bool PrintDialog::isCollate()
return maJobPage.maCopyCountField.GetValue() > 1 ? maJobPage.maCollateBox.IsChecked() : FALSE;
}
+bool PrintDialog::isSingleJobs()
+{
+ return maOptionsPage.maCollateSingleJobsBox.IsChecked();
+}
+
static void setSmartId( Window* i_pWindow, const char* i_pType, sal_Int32 i_nId = -1, const rtl::OUString& i_rPropName = rtl::OUString() )
{
rtl::OUStringBuffer aBuf( 256 );
@@ -1049,10 +1145,17 @@ static void setSmartId( Window* i_pWindow, const char* i_pType, sal_Int32 i_nId
i_pWindow->SetSmartHelpId( SmartId( aBuf.makeStringAndClear(), HID_PRINTDLG ) );
}
-static void setHelpText( Window* i_pWindow, const Sequence< rtl::OUString >& i_rHelpTexts, sal_Int32 i_nIndex )
+static void setHelpText( Window* /*i_pWindow*/, const Sequence< rtl::OUString >& /*i_rHelpTexts*/, sal_Int32 /*i_nIndex*/ )
{
+ // without a help text set and the correct smartID,
+ // help texts will be retrieved from the online help system
+
+ // passed help texts for optional UI is used only for native dialogs which currently
+ // cannot access the same (rather implicit) mechanism
+ #if 0
if( i_nIndex >= 0 && i_nIndex < i_rHelpTexts.getLength() )
i_pWindow->SetHelpText( i_rHelpTexts.getConstArray()[i_nIndex] );
+ #endif
}
void updateMaxSize( const Size& i_rCheckSize, Size& o_rMaxSize )
@@ -1572,6 +1675,12 @@ void PrintDialog::setupOptionalUI()
maJobPage.maLayout.setBorders( nIndex-1, 0, 0, 0, aBorder.Width() );
#endif
+ // create auto mnemomnics now so they can be calculated in layout
+ ImplWindowAutoMnemonic( &maJobPage );
+ ImplWindowAutoMnemonic( &maNUpPage );
+ ImplWindowAutoMnemonic( &maOptionsPage );
+ ImplWindowAutoMnemonic( this );
+
// calculate job page
Size aMaxSize = maJobPage.maLayout.getOptimalSize( WINDOWSIZE_PREFERRED );
// and layout page
@@ -1654,6 +1763,7 @@ void PrintDialog::checkControlDependencies()
maJobPage.maCollateImage.SetSizePixel( aImgSize );
maJobPage.maCollateImage.SetImage( bHC ? aHCImg : aImg );
maJobPage.maCollateImage.SetModeImage( aHCImg, BMP_COLOR_HIGHCONTRAST );
+ maJobPage.maLayout.resize();
// enable setup button only for printers that can be setup
bool bHaveSetup = maPController->getPrinter()->HasSupport( SUPPORT_SETUPDIALOG );
@@ -2444,6 +2554,11 @@ void PrintProgressDialog::tick()
setProgress( ++mnCur );
}
+void PrintProgressDialog::reset()
+{
+ setProgress( 0 );
+}
+
void PrintProgressDialog::Paint( const Rectangle& )
{
if( maProgressRect.IsEmpty() )
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 8906edaa5046..b47aa50a2e72 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -8154,7 +8154,7 @@ const XubString& Window::GetHelpText() const
{
rtl::OUStringBuffer aTxt( 64+mpWindowImpl->maHelpText.Len() );
aTxt.append( mpWindowImpl->maHelpText );
- aTxt.appendAscii( "\n+++++++++++++++\n" );
+ aTxt.appendAscii( "\n------------------\n" );
if( bStrHelpId )
aTxt.append( rtl::OUString( aStrHelpId ) );
else
diff --git a/vcl/unx/headless/svpinst.cxx b/vcl/unx/headless/svpinst.cxx
index 485062bf0617..466b56868900 100644
--- a/vcl/unx/headless/svpinst.cxx
+++ b/vcl/unx/headless/svpinst.cxx
@@ -55,6 +55,19 @@ extern "C"
}
}
+bool SvpSalInstance::isFrameAlive( const SalFrame* pFrame ) const
+{
+ for( std::list< SalFrame* >::const_iterator it = m_aFrames.begin();
+ it != m_aFrames.end(); ++it )
+ {
+ if( *it == pFrame )
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
SvpSalInstance* SvpSalInstance::s_pDefaultInstance = NULL;
SvpSalInstance::SvpSalInstance()
@@ -346,12 +359,15 @@ void SvpSalInstance::Yield( bool bWait, bool bHandleAllCurrentEvents )
{
for( std::list<SalUserEvent>::const_iterator it = aEvents.begin(); it != aEvents.end(); ++it )
{
- it->m_pFrame->CallCallback( it->m_nEvent, it->m_pData );
- if( it->m_nEvent == SALEVENT_RESIZE )
+ if ( isFrameAlive( it->m_pFrame ) )
{
- // this would be a good time to post a paint
- const SvpSalFrame* pSvpFrame = static_cast<const SvpSalFrame*>(it->m_pFrame);
- pSvpFrame->PostPaint();
+ it->m_pFrame->CallCallback( it->m_nEvent, it->m_pData );
+ if( it->m_nEvent == SALEVENT_RESIZE )
+ {
+ // this would be a good time to post a paint
+ const SvpSalFrame* pSvpFrame = static_cast<const SvpSalFrame*>(it->m_pFrame);
+ pSvpFrame->PostPaint();
+ }
}
}
}
diff --git a/vcl/unx/headless/svpinst.hxx b/vcl/unx/headless/svpinst.hxx
index d37c1c7e126e..284a2d11cd82 100644
--- a/vcl/unx/headless/svpinst.hxx
+++ b/vcl/unx/headless/svpinst.hxx
@@ -108,6 +108,9 @@ class SvpSalInstance : public SalInstance
std::list< SalUserEvent > m_aUserEvents;
std::list< SalFrame* > m_aFrames;
+
+ bool isFrameAlive( const SalFrame* pFrame ) const;
+
public:
static SvpSalInstance* s_pDefaultInstance;
diff --git a/vcl/unx/source/printer/ppdparser.cxx b/vcl/unx/source/printer/ppdparser.cxx
index 971db860cf42..b2549573d099 100644
--- a/vcl/unx/source/printer/ppdparser.cxx
+++ b/vcl/unx/source/printer/ppdparser.cxx
@@ -258,7 +258,6 @@ using namespace rtl;
std::list< PPDParser* > PPDParser::aAllParsers;
std::hash_map< OUString, OUString, OUStringHash >* PPDParser::pAllPPDFiles = NULL;
-static String aEmptyString;
class PPDDecompressStream
{
@@ -1284,12 +1283,12 @@ void PPDParser::parseConstraint( const ByteString& rLine )
m_aConstraints.push_back( aConstraint );
}
-const String& PPDParser::getDefaultPaperDimension() const
+String PPDParser::getDefaultPaperDimension() const
{
if( m_pDefaultPaperDimension )
return m_pDefaultPaperDimension->m_aOption;
- return aEmptyString;
+ return String();
}
bool PPDParser::getMargins(
@@ -1356,10 +1355,10 @@ bool PPDParser::getPaperDimension(
return true;
}
-const String& PPDParser::matchPaper( int nWidth, int nHeight ) const
+String PPDParser::matchPaper( int nWidth, int nHeight ) const
{
if( ! m_pPaperDimensions )
- return aEmptyString;
+ return String();
int nPDim = -1;
double PDWidth, PDHeight;
@@ -1393,51 +1392,51 @@ const String& PPDParser::matchPaper( int nWidth, int nHeight ) const
{
// swap portrait/landscape and try again
bDontSwap = true;
- const String& rRet = matchPaper( nHeight, nWidth );
+ String rRet = matchPaper( nHeight, nWidth );
bDontSwap = false;
return rRet;
}
- return nPDim != -1 ? m_pPaperDimensions->getValue( nPDim )->m_aOption : aEmptyString;
+ return nPDim != -1 ? m_pPaperDimensions->getValue( nPDim )->m_aOption : String();
}
-const String& PPDParser::getDefaultInputSlot() const
+String PPDParser::getDefaultInputSlot() const
{
if( m_pDefaultInputSlot )
return m_pDefaultInputSlot->m_aValue;
- return aEmptyString;
+ return String();
}
-const String& PPDParser::getSlot( int nSlot ) const
+String PPDParser::getSlot( int nSlot ) const
{
if( ! m_pInputSlots )
- return aEmptyString;
+ return String();
if( nSlot > 0 && nSlot < m_pInputSlots->countValues() )
return m_pInputSlots->getValue( nSlot )->m_aOption;
else if( m_pInputSlots->countValues() > 0 )
return m_pInputSlots->getValue( (ULONG)0 )->m_aOption;
- return aEmptyString;
+ return String();
}
-const String& PPDParser::getSlotCommand( int nSlot ) const
+String PPDParser::getSlotCommand( int nSlot ) const
{
if( ! m_pInputSlots )
- return aEmptyString;
+ return String();
if( nSlot > 0 && nSlot < m_pInputSlots->countValues() )
return m_pInputSlots->getValue( nSlot )->m_aValue;
else if( m_pInputSlots->countValues() > 0 )
return m_pInputSlots->getValue( (ULONG)0 )->m_aValue;
- return aEmptyString;
+ return String();
}
-const String& PPDParser::getSlotCommand( const String& rSlot ) const
+String PPDParser::getSlotCommand( const String& rSlot ) const
{
if( ! m_pInputSlots )
- return aEmptyString;
+ return String();
for( int i=0; i < m_pInputSlots->countValues(); i++ )
{
@@ -1445,39 +1444,39 @@ const String& PPDParser::getSlotCommand( const String& rSlot ) const
if( pValue->m_aOption == rSlot )
return pValue->m_aValue;
}
- return aEmptyString;
+ return String();
}
-const String& PPDParser::getPaperDimension( int nPaperDimension ) const
+String PPDParser::getPaperDimension( int nPaperDimension ) const
{
if( ! m_pPaperDimensions )
- return aEmptyString;
+ return String();
if( nPaperDimension > 0 && nPaperDimension < m_pPaperDimensions->countValues() )
return m_pPaperDimensions->getValue( nPaperDimension )->m_aOption;
else if( m_pPaperDimensions->countValues() > 0 )
return m_pPaperDimensions->getValue( (ULONG)0 )->m_aOption;
- return aEmptyString;
+ return String();
}
-const String& PPDParser::getPaperDimensionCommand( int nPaperDimension ) const
+String PPDParser::getPaperDimensionCommand( int nPaperDimension ) const
{
if( ! m_pPaperDimensions )
- return aEmptyString;
+ return String();
if( nPaperDimension > 0 && nPaperDimension < m_pPaperDimensions->countValues() )
return m_pPaperDimensions->getValue( nPaperDimension )->m_aValue;
else if( m_pPaperDimensions->countValues() > 0 )
return m_pPaperDimensions->getValue( (ULONG)0 )->m_aValue;
- return aEmptyString;
+ return String();
}
-const String& PPDParser::getPaperDimensionCommand( const String& rPaperDimension ) const
+String PPDParser::getPaperDimensionCommand( const String& rPaperDimension ) const
{
if( ! m_pPaperDimensions )
- return aEmptyString;
+ return String();
for( int i=0; i < m_pPaperDimensions->countValues(); i++ )
{
@@ -1485,7 +1484,7 @@ const String& PPDParser::getPaperDimensionCommand( const String& rPaperDimension
if( pValue->m_aOption == rPaperDimension )
return pValue->m_aValue;
}
- return aEmptyString;
+ return String();
}
void PPDParser::getResolutionFromString(
@@ -1543,13 +1542,13 @@ void PPDParser::getResolution( int nNr, int& rXRes, int& rYRes ) const
rXRes, rYRes );
}
-const String& PPDParser::getResolutionCommand( int nXRes, int nYRes ) const
+String PPDParser::getResolutionCommand( int nXRes, int nYRes ) const
{
if( ( ! m_pResolutions || m_pResolutions->countValues() == 0 ) && m_pDefaultResolution )
return m_pDefaultResolution->m_aValue;
if( ! m_pResolutions )
- return aEmptyString;
+ return String();
int nX, nY;
for( int i = 0; i < m_pResolutions->countValues(); i++ )
@@ -1559,46 +1558,46 @@ const String& PPDParser::getResolutionCommand( int nXRes, int nYRes ) const
if( nX == nXRes && nY == nYRes )
return m_pResolutions->getValue( i )->m_aValue;
}
- return aEmptyString;
+ return String();
}
-const String& PPDParser::getDefaultDuplexType() const
+String PPDParser::getDefaultDuplexType() const
{
if( m_pDefaultDuplexType )
return m_pDefaultDuplexType->m_aValue;
- return aEmptyString;
+ return String();
}
-const String& PPDParser::getDuplex( int nDuplex ) const
+String PPDParser::getDuplex( int nDuplex ) const
{
if( ! m_pDuplexTypes )
- return aEmptyString;
+ return String();
if( nDuplex > 0 && nDuplex < m_pDuplexTypes->countValues() )
return m_pDuplexTypes->getValue( nDuplex )->m_aOption;
else if( m_pDuplexTypes->countValues() > 0 )
return m_pDuplexTypes->getValue( (ULONG)0 )->m_aOption;
- return aEmptyString;
+ return String();
}
-const String& PPDParser::getDuplexCommand( int nDuplex ) const
+String PPDParser::getDuplexCommand( int nDuplex ) const
{
if( ! m_pDuplexTypes )
- return aEmptyString;
+ return String();
if( nDuplex > 0 && nDuplex < m_pDuplexTypes->countValues() )
return m_pDuplexTypes->getValue( nDuplex )->m_aValue;
else if( m_pDuplexTypes->countValues() > 0 )
return m_pDuplexTypes->getValue( (ULONG)0 )->m_aValue;
- return aEmptyString;
+ return String();
}
-const String& PPDParser::getDuplexCommand( const String& rDuplex ) const
+String PPDParser::getDuplexCommand( const String& rDuplex ) const
{
if( ! m_pDuplexTypes )
- return aEmptyString;
+ return String();
for( int i=0; i < m_pDuplexTypes->countValues(); i++ )
{
@@ -1606,7 +1605,7 @@ const String& PPDParser::getDuplexCommand( const String& rDuplex ) const
if( pValue->m_aOption == rDuplex )
return pValue->m_aValue;
}
- return aEmptyString;
+ return String();
}
void PPDParser::getFontAttributes(
@@ -1636,14 +1635,14 @@ void PPDParser::getFontAttributes(
}
}
-const String& PPDParser::getFont( int nFont ) const
+String PPDParser::getFont( int nFont ) const
{
if( ! m_pFontList )
- return aEmptyString;
+ return String();
if( nFont >=0 && nFont < m_pFontList->countValues() )
return m_pFontList->getValue( nFont )->m_aOption;
- return aEmptyString;
+ return String();
}
rtl::OUString PPDParser::translateKey( const rtl::OUString& i_rKey,
diff --git a/vcl/util/makefile2.pmk b/vcl/util/makefile2.pmk
index 56102a256ea3..df9ba1a214d7 100644
--- a/vcl/util/makefile2.pmk
+++ b/vcl/util/makefile2.pmk
@@ -36,6 +36,6 @@ CFLAGSCXX+=$(OBJCXXFLAGS)
#building with stlport, but graphite was not built with stlport
.IF "$(USE_SYSTEM_STL)"!="YES"
.IF "$(SYSTEM_GRAPHITE)"=="YES"
-CDEFS += -DGRAPHITEADAPTSTL
+CDEFS += -DADAPT_EXT_STL
.ENDIF
.ENDIF
diff --git a/vigra/makefile.mk b/vigra/makefile.mk
index b598de27152a..db08373faf52 100644
--- a/vigra/makefile.mk
+++ b/vigra/makefile.mk
@@ -47,6 +47,7 @@ all:
# --- Files --------------------------------------------------------
TARFILE_NAME=vigra1.4.0
+TARFILE_MD5=ea91f2fb4212a21d708aced277e6e85a
PATCH_FILES=$(TARFILE_NAME).patch
CONFIGURE_DIR=
diff --git a/wizards/com/sun/star/wizards/makefile.mk b/wizards/com/sun/star/wizards/makefile.mk
index 50dc0713945c..fb9c3e18558d 100644
--- a/wizards/com/sun/star/wizards/makefile.mk
+++ b/wizards/com/sun/star/wizards/makefile.mk
@@ -37,7 +37,7 @@ PACKAGE = com$/sun$/star$/wizards
JARFILES= unoil.jar jurt.jar ridl.jar juh.jar jut.jar java_uno.jar java_uno_accessbridge
.IF "$(SYSTEM_SAXON)" == "YES"
-XCLASSPATH!:=$(XCLASSPATH)$(PATH_SEPERATOR)$(SAXON_JAR)
+EXTRAJARFILES = $(SAXON_JAR)
.ELSE
JARFILES += saxon9.jar
.ENDIF
diff --git a/wizards/com/sun/star/wizards/web/data/makefile.mk b/wizards/com/sun/star/wizards/web/data/makefile.mk
index 89362269fadc..1bfc02cf8351 100644
--- a/wizards/com/sun/star/wizards/web/data/makefile.mk
+++ b/wizards/com/sun/star/wizards/web/data/makefile.mk
@@ -38,7 +38,7 @@ PACKAGE = com$/sun$/star$/wizards$/web$/data
JARFILES= unoil.jar jurt.jar ridl.jar juh.jar jut.jar java_uno.jar java_uno_accessbridge commonwizards.jar
.IF "$(SYSTEM_SAXON)" == "YES"
-XCLASSPATH!:=$(XCLASSPATH)$(PATH_SEPERATOR)$(SAXON_JAR)
+EXTRAJARFILES = $(SAXON_JAR)
.ELSE
JARFILES += saxon9.jar
.ENDIF
diff --git a/wizards/com/sun/star/wizards/web/export/makefile.mk b/wizards/com/sun/star/wizards/web/export/makefile.mk
index b123fdc6d255..46cd65044e81 100644
--- a/wizards/com/sun/star/wizards/web/export/makefile.mk
+++ b/wizards/com/sun/star/wizards/web/export/makefile.mk
@@ -38,7 +38,7 @@ PACKAGE = com$/sun$/star$/wizards$/web$/export
JARFILES= unoil.jar jurt.jar ridl.jar juh.jar java_uno.jar java_uno_accessbridge commonwizards.jar
.IF "$(SYSTEM_SAXON)" == "YES"
-XCLASSPATH!:=$(XCLASSPATH)$(PATH_SEPERATOR)$(SAXON_JAR)
+EXTRAJARFILES = $(SAXON_JAR)
.ELSE
JARFILES += saxon9.jar
.ENDIF
diff --git a/wizards/com/sun/star/wizards/web/makefile.mk b/wizards/com/sun/star/wizards/web/makefile.mk
index a452e7683d21..9cc97e1b88ab 100644
--- a/wizards/com/sun/star/wizards/web/makefile.mk
+++ b/wizards/com/sun/star/wizards/web/makefile.mk
@@ -37,7 +37,7 @@ PACKAGE = com$/sun$/star$/wizards$/web
JARFILES= unoil.jar jurt.jar ridl.jar juh.jar jut.jar java_uno.jar java_uno_accessbridge commonwizards.jar
.IF "$(SYSTEM_SAXON)" == "YES"
-XCLASSPATH!:=$(XCLASSPATH)$(PATH_SEPERATOR)$(SAXON_JAR)
+EXTRAJARFILES = $(SAXON_JAR)
.ELSE
JARFILES += saxon9.jar
.ENDIF
diff --git a/writerfilter/inc/resourcemodel/Protocol.hxx b/writerfilter/inc/resourcemodel/Protocol.hxx
new file mode 100644
index 000000000000..d0405861f695
--- /dev/null
+++ b/writerfilter/inc/resourcemodel/Protocol.hxx
@@ -0,0 +1,98 @@
+/*************************************************************************
+ *
+ * DO NOT 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 INCLUDE_WRITERFILTER_PROTOCOL_HXX
+#define INCLUDE_WRITERFILTER_PROTOCOL_HXX
+
+#include <boost/shared_ptr.hpp>
+#include "WW8ResourceModel.hxx"
+#include "TagLogger.hxx"
+namespace writerfilter
+{
+
+class StreamProtocol : public Stream
+{
+ Stream * m_pStream;
+ TagLogger::Pointer_t m_pTagLogger;
+
+public:
+ typedef boost::shared_ptr<StreamProtocol> Pointer_t;
+
+ StreamProtocol(Stream * pStream, TagLogger::Pointer_t pTagLogger);
+ virtual ~StreamProtocol();
+
+ virtual void startSectionGroup();
+ virtual void endSectionGroup();
+ virtual void startParagraphGroup();
+ virtual void endParagraphGroup();
+ virtual void startCharacterGroup();
+ virtual void endCharacterGroup();
+ virtual void text(const sal_uInt8 * data, size_t len);
+ virtual void utext(const sal_uInt8 * data, size_t len);
+ virtual void props(writerfilter::Reference<Properties>::Pointer_t ref);
+ virtual void table(Id name,
+ writerfilter::Reference<Table>::Pointer_t ref);
+ virtual void substream(Id name,
+ writerfilter::Reference<Stream>::Pointer_t ref);
+ virtual void info(const string & rInfo);
+ virtual void startShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
+ virtual void endShape();
+};
+
+class PropertiesProtocol : public Properties
+{
+ Properties * m_pProperties;
+ TagLogger::Pointer_t m_pTagLogger;
+
+public:
+ typedef boost::shared_ptr<PropertiesProtocol> Pointer_t;
+
+ PropertiesProtocol(Properties * pProperties, TagLogger::Pointer_t pTagLogger);
+ virtual ~PropertiesProtocol();
+
+ virtual void attribute(Id name, Value & val);
+ virtual void sprm(Sprm & sprm);
+};
+
+class TableProtocol : public Table
+{
+ Table * m_pTable;
+ TagLogger::Pointer_t m_pTagLogger;
+
+public:
+ typedef boost::shared_ptr<TableProtocol> Pointer_t;
+
+ TableProtocol(Table * pTable, TagLogger::Pointer_t pTagLogger);
+ virtual ~TableProtocol();
+
+ virtual void entry(int pos, writerfilter::Reference<Properties>::Pointer_t ref);
+};
+
+}
+#endif // INCLUDE_WRITERFILTER_PROTOCOL_HXX
diff --git a/writerfilter/inc/resourcemodel/TableData.hxx b/writerfilter/inc/resourcemodel/TableData.hxx
index 50f28d2bc5bf..aca4fce71064 100644
--- a/writerfilter/inc/resourcemodel/TableData.hxx
+++ b/writerfilter/inc/resourcemodel/TableData.hxx
@@ -208,6 +208,15 @@ public:
}
/**
+ Add properties to the last cell of the row.
+ */
+ void insertCellProperties(PropertiesPointer pProps)
+ {
+ if (! mCells.empty())
+ mCells.back()->insertProperties(pProps);
+ }
+
+ /**
Return number of cells in the row.
*/
unsigned int getCellCount()
@@ -330,17 +339,35 @@ public:
mpRow->addCell(start, pProps);
}
+ /**
+ End the current cell of the current row.
+
+ @parm end end handle of the cell
+ */
void endCell(const T & end)
{
mpRow->endCell(end);
}
+ /**
+ Return if the current cell of the current row is open.
+ */
bool isCellOpen() const
{
return mpRow->isCellOpen();
}
/**
+ Insert properties to the current cell of the current row.
+
+ @param pProps the properties to add
+ */
+ void insertCellProperties(PropertiesPointer pProps)
+ {
+ mpRow->insertCellProperties(pProps);
+ }
+
+ /**
Add properties to a cell of the current row.
@param i index of the cell
diff --git a/writerfilter/inc/resourcemodel/TableManager.hxx b/writerfilter/inc/resourcemodel/TableManager.hxx
index 45fadad42351..fe43694d25d2 100644
--- a/writerfilter/inc/resourcemodel/TableManager.hxx
+++ b/writerfilter/inc/resourcemodel/TableManager.hxx
@@ -42,6 +42,8 @@
#include <boost/shared_ptr.hpp>
#include <stack>
+#include "util.hxx"
+#include "TagLogger.hxx"
namespace writerfilter
{
@@ -100,11 +102,6 @@ public:
@param rT end handle of cell
*/
virtual void endCell(const T & rT) = 0;
-
- virtual T* getTable( )
- {
- return NULL;
- };
};
template <typename T, typename PropertiesPointer>
@@ -118,59 +115,300 @@ template <typename T, typename PropertiesPointer>
*/
class TableManager
{
- typedef boost::shared_ptr<T> T_p;
+#ifdef DEBUG_TABLE
+ TagLogger::Pointer_t mpTableLogger;
+#endif
+
+ class TableManagerState
+ {
+ /**
+ properties at the current point in document
+ */
+ PropertiesPointer mpProps;
+
+ /**
+ properties of the current cell
+ */
+ PropertiesPointer mpCellProps;
+
+ /**
+ properties of the current row
+ */
+ PropertiesPointer mpRowProps;
+
+ /**
+ properties of the current table
+ */
+ stack<PropertiesPointer> mTableProps;
+
+ /**
+ true if at the end of a row
+ */
+ bool mbRowEnd;
+
+ /**
+ true when in a cell
+ */
+ bool mbInCell;
+
+ /**
+ true when at the end of a cell
+ */
+ bool mbCellEnd;
+
+ public:
+ /**
+ Constructor
+ */
+ TableManagerState()
+ : mbRowEnd(false), mbInCell(false), mbCellEnd(false)
+ {
+ }
+
+ virtual ~TableManagerState()
+ {
+ }
+
+ void startLevel()
+ {
+ PropertiesPointer pProps;
+ mTableProps.push(pProps);
+ }
+
+ void endLevel()
+ {
+ mTableProps.pop();
+ }
+
+ /**
+ Reset to initial state at beginning of row.
+ */
+ void resetCellSpecifics()
+ {
+ mbRowEnd = false;
+ mbInCell = false;
+ mbCellEnd = false;
+ }
+
+ void resetProps()
+ {
+ mpProps.reset();
+ }
+
+ void setProps(PropertiesPointer pProps)
+ {
+ mpProps = pProps;
+ }
+
+ PropertiesPointer getProps()
+ {
+ return mpProps;
+ }
+
+ void resetCellProps()
+ {
+ mpCellProps.reset();
+ }
+
+ void setCellProps(PropertiesPointer pProps)
+ {
+ mpCellProps = pProps;
+ }
+
+ PropertiesPointer getCellProps()
+ {
+ return mpCellProps;
+ }
+
+ void resetRowProps()
+ {
+ mpCellProps.reset();
+ }
+
+ void setRowProps(PropertiesPointer pProps)
+ {
+ mpRowProps = pProps;
+ }
+
+ PropertiesPointer getRowProps()
+ {
+ return mpRowProps;
+ }
+
+ void resetTableProps()
+ {
+ if (mTableProps.size() > 0)
+ mTableProps.top().reset();
+ }
+
+ void setTableProps(PropertiesPointer pProps)
+ {
+ if (mTableProps.size() > 0)
+ mTableProps.top() = pProps;
+ }
+
+ PropertiesPointer getTableProps()
+ {
+ PropertiesPointer pResult;
+
+ if (mTableProps.size() > 0)
+ pResult = mTableProps.top();
+
+ return pResult;
+ }
+
+ void setInCell(bool bInCell)
+ {
+ mbInCell = bInCell;
+ }
+
+ bool isInCell() const
+ {
+ return mbInCell;
+ }
+
+ void setCellEnd(bool bCellEnd)
+ {
+ mbCellEnd = bCellEnd;
+ }
+
+ bool isCellEnd() const
+ {
+ return mbCellEnd;
+ }
+
+ void setRowEnd(bool bRowEnd)
+ {
+ mbRowEnd = bRowEnd;
+ }
+
+ bool isRowEnd() const
+ {
+ return mbRowEnd;
+ }
+ };
/**
- true if at the end of a row
+ handle for the current position in document
*/
- bool mbRowEnd;
+ T mCurHandle;
- /**
- true when in a cell
- */
- bool mbInCell;
+ TableManagerState mState;
- /**
- true when at the end of a cell
- */
- bool mbCellEnd;
+protected:
+ PropertiesPointer getProps()
+ {
+ return mState.getProps();
+ }
- /**
- depth of the current cell
- */
- sal_uInt32 mnTableDepthNew;
+ void setProps(PropertiesPointer pProps)
+ {
+ mState.setProps(pProps);
+ }
- /**
- depth of the previous cell
- */
- sal_uInt32 mnTableDepth;
+ void resetProps()
+ {
+ mState.resetProps();
+ }
- /**
- properties at the current point in document
- */
- PropertiesPointer mpProps;
+ PropertiesPointer getCellProps()
+ {
+ return mState.getCellProps();
+ }
- /**
- properties of the current cell
- */
- vector< PropertiesPointer > mpCellProps;
+ void setCellProps(PropertiesPointer pProps)
+ {
+ mState.setCellProps(pProps);
+ }
- /**
- properties of the current row
- */
- vector< PropertiesPointer > mpRowProps;
+ void resetCellProps()
+ {
+ mState.resetCellProps();
+ }
+
+ PropertiesPointer getRowProps()
+ {
+ return mState.getRowProps();
+ }
+
+ void setRowProps(PropertiesPointer pProps)
+ {
+ mState.setRowProps(pProps);
+ }
+
+ void resetRowProps()
+ {
+ mState.resetRowProps();
+ }
+
+ void setInCell(bool bInCell)
+ {
+ mState.setInCell(bInCell);
+ }
+
+ bool isInCell() const
+ {
+ return mState.isInCell();
+ }
+
+ void setCellEnd(bool bCellEnd)
+ {
+ mState.setCellEnd(bCellEnd);
+ }
+
+ bool isCellEnd() const
+ {
+ return mState.isCellEnd();
+ }
+
+ void setRowEnd(bool bRowEnd)
+ {
+ mState.setRowEnd(bRowEnd);
+ }
+
+ bool isRowEnd() const
+ {
+ return mState.isRowEnd();
+ }
+
+ PropertiesPointer getTableProps()
+ {
+ return mState.getTableProps();
+ }
+
+ void setTableProps(PropertiesPointer pProps)
+ {
+ mState.setTableProps(pProps);
+ }
+
+ void resetTableProps()
+ {
+ mState.resetTableProps();
+ }
+
+ T getHandle()
+ {
+ return mCurHandle;
+ }
+
+ void setHandle(const T & rHandle)
+ {
+ mCurHandle = rHandle;
+ }
+
+private:
+ typedef boost::shared_ptr<T> T_p;
/**
- properties of the current table: don't use them directly.
- */
- PropertiesPointer mpTableProps;
+ depth of the current cell
+ */
+ sal_uInt32 mnTableDepthNew;
/**
- handle for the current position in document
+ depth of the previous cell
*/
- T mCurHandle;
+ sal_uInt32 mnTableDepth;
- T* mpInnerTable;
/**
stack of table data
@@ -212,6 +450,22 @@ class TableManager
*/
void resolveCurrentTable();
+ /**
+ Open a cell at current level.
+ */
+
+ void openCell(const T & handle, PropertiesPointer pProps);
+
+ /**
+ Close a cell at current level.
+ */
+ void closeCell(const T & handle);
+
+ /**
+ Ensure a cell is open at the current level.
+ */
+ void ensureOpenCell(PropertiesPointer pProps);
+
protected:
/**
@@ -234,6 +488,7 @@ protected:
*/
virtual void clearData();
+
public:
TableManager();
virtual ~TableManager(){}
@@ -348,25 +603,48 @@ public:
only control information, e.g. end of row.
*/
virtual bool isIgnore() const;
+
+
+#ifdef DEBUG_TABLE
+ void setTagLogger(TagLogger::Pointer_t _tagLogger)
+ {
+ mpTableLogger = _tagLogger;
+ }
+#endif
};
template <typename T, typename PropertiesPointer>
TableManager<T, PropertiesPointer>::TableManager()
-: mbRowEnd(false), mbInCell(false), mbCellEnd(false), mnTableDepthNew(0),
- mnTableDepth(0), mpInnerTable( NULL )
+: mnTableDepthNew(0), mnTableDepth(0)
{
+ setRowEnd(false);
+ setInCell(false);
+ setCellEnd(false);
}
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::cellDepth(sal_uInt32 nDepth)
{
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ {
+ mpTableLogger->startElement("tablemanager.cellDepth");
+ mpTableLogger->attribute("depth", nDepth);
+ mpTableLogger->endElement("tablemanager.cellDepth");
+ }
+#endif
+
mnTableDepthNew = nDepth;
}
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::inCell()
{
- mbInCell = true;
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->element("tablemanager.inCell");
+#endif
+ setInCell(true);
if (mnTableDepthNew < 1)
mnTableDepthNew = 1;
@@ -375,13 +653,23 @@ void TableManager<T, PropertiesPointer>::inCell()
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::endCell()
{
- mbCellEnd = true;
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->element("tablemanager.endCell");
+#endif
+
+ setCellEnd(true);
}
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::endRow()
{
- mbRowEnd = true;
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->element("tablemanager.endRow");
+#endif
+
+ setRowEnd(true);
}
template <typename T, typename PropertiesPointer>
@@ -394,44 +682,80 @@ void TableManager<T, PropertiesPointer>::setHandler
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::handle(const T & rHandle)
{
- mCurHandle = rHandle;
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get())
+ {
+ mpTableLogger->startElement("tablemanager.handle");
+ mpTableLogger->chars(toString(rHandle));
+ mpTableLogger->endElement("tablemanager.handle");
+ }
+#endif
+
+ setHandle(rHandle);
}
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::startLevel()
{
-#if DEBUG
- std::clog << "TableManager::startLevel()" << std::endl;
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ {
+ typename TableData<T, PropertiesPointer>::Pointer_t pTableData;
+
+ if (mTableDataStack.size() > 0)
+ pTableData = mTableDataStack.top();
+
+ mpTableLogger->startElement("tablemanager.startLevel");
+ mpTableLogger->attribute("level", mTableDataStack.size());
+
+ if (pTableData.get() != NULL)
+ mpTableLogger->attribute("openCell",
+ pTableData->isCellOpen() ? "yes" : "no");
+
+ mpTableLogger->endElement("tablemanager.startLevel");
+ }
#endif
+
typename TableData<T, PropertiesPointer>::Pointer_t pTableData
(new TableData<T, PropertiesPointer>(mTableDataStack.size()));
mTableDataStack.push(pTableData);
-
- PropertiesPointer pEmptyProps;
- cellProps( pEmptyProps );
+ mState.startLevel();
}
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::endLevel()
{
-#if DEBUG
- std::clog << "TableManager::endLevel()" << std::endl;
-#endif
if (mpTableDataHandler.get() != NULL)
resolveCurrentTable();
+
+ mState.endLevel();
mTableDataStack.pop();
- if ( mpCellProps.size( ) > 0 )
- mpCellProps.pop_back( );
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ {
+ typename TableData<T, PropertiesPointer>::Pointer_t pTableData;
+
+ if (mTableDataStack.size() > 0)
+ pTableData = mTableDataStack.top();
+
+ mpTableLogger->startElement("tablemanager.endLevel");
+ mpTableLogger->attribute("level", mTableDataStack.size());
+
+ if (pTableData.get() != NULL)
+ mpTableLogger->attribute("openCell",
+ pTableData->isCellOpen() ? "yes" : "no");
+
+ mpTableLogger->endElement("tablemanager.endLevel");
+ }
+#endif
}
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::startParagraphGroup()
{
- mbRowEnd = false;
- mbInCell = false;
- mbCellEnd = false;
+ mState.resetCellSpecifics();
mnTableDepthNew = 0;
}
@@ -439,6 +763,16 @@ template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::endParagraphGroup()
{
sal_Int32 nTableDepthDifference = mnTableDepthNew - mnTableDepth;
+
+ PropertiesPointer pEmptyProps;
+
+ while (nTableDepthDifference > 0)
+ {
+ ensureOpenCell(pEmptyProps);
+ startLevel();
+
+ --nTableDepthDifference;
+ }
while (nTableDepthDifference < 0)
{
endLevel();
@@ -448,38 +782,30 @@ void TableManager<T, PropertiesPointer>::endParagraphGroup()
mnTableDepth = mnTableDepthNew;
- typename TableData<T, PropertiesPointer>::Pointer_t pTableData =
+ if (mnTableDepth > 0)
+ {
+ typename TableData<T, PropertiesPointer>::Pointer_t pTableData =
mTableDataStack.top();
- if (mbRowEnd)
- {
- endOfRowAction();
- pTableData->endRow( mpRowProps.back( ) );
- mpRowProps.back( ).reset();
- }
- else if ( mbInCell )
- {
- if (! pTableData->isCellOpen())
+ if (isRowEnd())
{
- if ( mpInnerTable )
- {
- pTableData->addCell( *mpInnerTable, mpCellProps.back( ) );
- mpInnerTable = NULL;
- }
- else
- {
- pTableData->addCell( mCurHandle, mpCellProps.back( ) );
- }
+ endOfRowAction();
+ pTableData->endRow(getRowProps());
+ resetRowProps();
}
- if (mbCellEnd)
+ else if (isInCell())
{
- endOfCellAction();
- pTableData->endCell(mCurHandle);
+ ensureOpenCell(getCellProps());
+
+ if (isCellEnd())
+ {
+ endOfCellAction();
+ closeCell(getHandle());
+ }
}
+ resetCellProps();
}
- if ( mpCellProps.size( ) > 0 )
- mpCellProps.back().reset( );
}
template <typename T, typename PropertiesPointer>
@@ -513,19 +839,29 @@ bool TableManager<T, PropertiesPointer>::sprm(Sprm & rSprm)
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::props(PropertiesPointer pProps)
{
- mpProps = pProps;
+ setProps(pProps);
}
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::handle0x7()
{
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->startElement("tablemanager.handle0x7");
+#endif
+
if (mnTableDepthNew < 1)
mnTableDepthNew = 1;
- if (mbInCell)
+ if (isInCell())
endCell();
else
endRow();
+
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->endElement("tablemanager.handle0x7");
+#endif
}
template <typename T, typename PropertiesPointer>
@@ -555,50 +891,85 @@ void TableManager<T, PropertiesPointer>::utext(const sal_uInt8 * data, size_t le
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::cellProps(PropertiesPointer pProps)
{
- if ( mpCellProps.size( ) == mTableDataStack.size( ) )
- {
- if ( mpCellProps.back( ).get( ) )
- mpCellProps.back()->insert( pProps );
- else
- mpCellProps.back( ) = pProps;
- }
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->startElement("tablemanager.cellProps");
+#endif
+
+ if(getCellProps().get())
+ getCellProps()->insert( pProps );
else
- mpCellProps.push_back( pProps );
+ setCellProps(pProps);
+
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->endElement("tablemanager.cellProps");
+#endif
}
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::cellPropsByCell
(unsigned int i, PropertiesPointer pProps)
{
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->startElement("tablemanager.cellPropsByCell");
+#endif
+
mTableDataStack.top()->insertCellProperties(i, pProps);
+
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->endElement("tablemanager.cellPropsByCell");
+#endif
}
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::insertRowProps(PropertiesPointer pProps)
{
- if ( mpRowProps.size( ) == ( mTableDataStack.size( ) - 1 ) )
- {
- if( mpRowProps.back( ).get( ) )
- mpRowProps.back( )->insert( pProps );
- else
- mpRowProps.back( ) = pProps;
- }
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->startElement("tablemanager.insertRowProps");
+#endif
+
+ if( getRowProps().get() )
+ getRowProps()->insert( pProps );
else
- mpRowProps.push_back( pProps );
+ setRowProps(pProps);
+
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->endElement("tablemanager.insertRowProps");
+#endif
}
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::insertTableProps(PropertiesPointer pProps)
{
- typename TableData<T, PropertiesPointer>::Pointer_t
- pTableData = mTableDataStack.top();
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->startElement("tablemanager.insertTableProps");
+#endif
- pTableData->insertTableProperties( pProps );
+ if( getTableProps().get() )
+ getTableProps()->insert( pProps );
+ else
+ setTableProps(pProps);
+
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->endElement("tablemanager.insertTableProps");
+#endif
}
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::resolveCurrentTable()
{
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->startElement("tablemanager.resolveCurrentTable");
+#endif
+
if (mpTableDataHandler.get() != NULL)
{
typename TableData<T, PropertiesPointer>::Pointer_t
@@ -606,7 +977,7 @@ void TableManager<T, PropertiesPointer>::resolveCurrentTable()
unsigned int nRows = pTableData->getRowCount();
- mpTableDataHandler->startTable(nRows, pTableData->getDepth(), pTableData->getTableProperties( ) );
+ mpTableDataHandler->startTable(nRows, pTableData->getDepth(), getTableProps());
for (unsigned int nRow = 0; nRow < nRows; ++nRow)
{
@@ -629,13 +1000,14 @@ void TableManager<T, PropertiesPointer>::resolveCurrentTable()
}
mpTableDataHandler->endTable();
-
- // The inner table has to be stored only if there is something in the stack
- // The 0 depth is the dummy table for the whole stream
- if ( pTableData->getDepth( ) > 1 )
- mpInnerTable = mpTableDataHandler->getTable( );
}
+ resetTableProps();
clearData();
+
+#ifdef DEBUG_TABLE
+ if (mpTableLogger.get() != NULL)
+ mpTableLogger->endElement("tablemanager.resolveCurrentTable");
+#endif
}
template <typename T, typename PropertiesPointer>
@@ -651,13 +1023,77 @@ void TableManager<T, PropertiesPointer>::endOfRowAction()
template <typename T, typename PropertiesPointer>
bool TableManager<T, PropertiesPointer>::isIgnore() const
{
- return mbRowEnd;
+ return isRowEnd();
}
+
template <typename T, typename PropertiesPointer>
void TableManager<T, PropertiesPointer>::clearData()
{
}
+template <typename T, typename PropertiesPointer>
+void TableManager<T, PropertiesPointer>::openCell
+(const T & rHandle, PropertiesPointer pProps)
+{
+#ifdef DEBUG_TABLE
+ mpTableLogger->startElement("tablemanager.openCell");
+ mpTableLogger->chars(toString(rHandle));
+ mpTableLogger->endElement("tablemanager.openCell");
+#endif
+
+ if (mTableDataStack.size() > 0)
+ {
+ typename TableData<T, PropertiesPointer>::Pointer_t
+ pTableData = mTableDataStack.top();
+
+ pTableData->addCell(rHandle, pProps);
+ }
+}
+
+template <typename T, typename PropertiesPointer>
+void TableManager<T, PropertiesPointer>::closeCell
+(const T & rHandle)
+{
+#ifdef DEBUG_TABLE
+ mpTableLogger->startElement("tablemanager.closeCell");
+ mpTableLogger->chars(toString(rHandle));
+ mpTableLogger->endElement("tablemanager.closeCell");
+#endif
+
+ if (mTableDataStack.size() > 0)
+ {
+ typename TableData<T, PropertiesPointer>::Pointer_t
+ pTableData = mTableDataStack.top();
+
+ pTableData->endCell(rHandle);
+ }
+}
+
+template <typename T, typename PropertiesPointer>
+void TableManager<T, PropertiesPointer>::ensureOpenCell(PropertiesPointer pProps)
+{
+#ifdef DEBUG_TABLE
+ mpTableLogger->startElement("tablemanager.ensureOpenCell");
+#endif
+
+ if (mTableDataStack.size() > 0)
+ {
+ typename TableData<T, PropertiesPointer>::Pointer_t
+ pTableData = mTableDataStack.top();
+
+ if (pTableData.get() != NULL)
+ {
+ if (!pTableData->isCellOpen())
+ openCell(getHandle(), pProps);
+ else
+ pTableData->insertCellProperties(pProps);
+ }
+ }
+#ifdef DEBUG_TABLE
+ mpTableLogger->endElement("tablemanager.ensureOpenCell");
+#endif
+}
+
}
#endif // INCLUDED_TABLE_MANAGER_HXX
diff --git a/writerfilter/inc/resourcemodel/TagLogger.hxx b/writerfilter/inc/resourcemodel/TagLogger.hxx
index c846779df456..cf58dc3be8c3 100644
--- a/writerfilter/inc/resourcemodel/TagLogger.hxx
+++ b/writerfilter/inc/resourcemodel/TagLogger.hxx
@@ -74,6 +74,8 @@ namespace writerfilter
XMLTag(string sTag, eMode mode = COMPLETE) : mTag(sTag), mMode(mode) {}
void addAttr(string name, string value);
+ void addAttr(string name, const ::rtl::OUString & value);
+ void addAttr(string name, sal_uInt32 nValue);
void addTag(Pointer_t pTag);
void chars(const string & rChars);
const string & getTag() const;
@@ -90,6 +92,7 @@ namespace writerfilter
private:
stack<XMLTag::Pointer_t> mTags;
XMLTag::Pointer_t currentTag() const;
+ XMLTag::Pointer_t mpRoot;
TagLogger();
@@ -103,6 +106,7 @@ namespace writerfilter
void startElement(const string & name);
void attribute(const string & name, const string & value);
void attribute(const string & name, const ::rtl::OUString & value);
+ void attribute(const string & name, sal_uInt32 value);
void addTag(XMLTag::Pointer_t pTag);
void chars(const string & chars);
void chars(const ::rtl::OUString & chars);
diff --git a/writerfilter/inc/resourcemodel/WW8ResourceModel.hxx b/writerfilter/inc/resourcemodel/WW8ResourceModel.hxx
index 387527f09e06..4dabea550a9d 100644
--- a/writerfilter/inc/resourcemodel/WW8ResourceModel.hxx
+++ b/writerfilter/inc/resourcemodel/WW8ResourceModel.hxx
@@ -150,6 +150,7 @@ public:
class WRITERFILTER_DLLPUBLIC Table
{
public:
+ typedef boost::shared_ptr<Table> Pointer_t;
/**
Receives an entry of the table.
diff --git a/writerfilter/inc/resourcemodel/util.hxx b/writerfilter/inc/resourcemodel/util.hxx
index 4b57a77326b8..360dfc3d4113 100644
--- a/writerfilter/inc/resourcemodel/util.hxx
+++ b/writerfilter/inc/resourcemodel/util.hxx
@@ -28,6 +28,7 @@
#ifndef INCLUDED_RESOURCEMODEL_UTIL_HXX
#define INCLUDED_RESOURCEMODEL_UTIL_HXX
#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/text/XTextRange.hpp>
#include <WriterFilterDllApi.hxx>
#include <string>
@@ -41,5 +42,7 @@ namespace writerfilter
string WRITERFILTER_DLLPUBLIC propertysetToString
(uno::Reference<beans::XPropertySet> const & rProps);
+ string toString(uno::Reference< text::XTextRange > textRange);
+ string toString(const string & rString);
}
#endif // INCLUDED_RESOURCEMODEL_UTIL_HXX
diff --git a/writerfilter/prj/build.lst b/writerfilter/prj/build.lst
index 2ba4dc7301a4..e70b99a052c5 100644
--- a/writerfilter/prj/build.lst
+++ b/writerfilter/prj/build.lst
@@ -4,7 +4,7 @@ wf writerfilter\source\resourcemodel nmake - all wf_resourcemodel NULL
wf writerfilter\source\doctok nmake - all wf_doctok wf_resourcemodel NULL
wf writerfilter\source\ooxml nmake - all wf_ooxml wf_resourcemodel NULL
wf writerfilter\source\filter nmake - all wf_filter NULL
-wf writerfilter\source\dmapper nmake - all wf_dmapper wf_resourcemodel wf_ooxml NULL
+wf writerfilter\source\dmapper nmake - all wf_dmapper wf_doctok wf_ooxml wf_resourcemodel NULL
wf writerfilter\unocomponent\debugservices\doctok nmake - all wf_debugservicesdoctok NULL
wf writerfilter\unocomponent\debugservices\ooxml nmake - all wf_debugservicesooxml NULL
wf writerfilter\unocomponent nmake - all wf_unocomponent wf_doctok wf_ooxml wf_resourcemodel wf_debugservicesdoctok wf_debugservicesooxml NULL
diff --git a/writerfilter/qa/cppunittests/doctok/export.map b/writerfilter/qa/cppunittests/doctok/export.map
index 4ca70fa85463..879fa8953788 100644
--- a/writerfilter/qa/cppunittests/doctok/export.map
+++ b/writerfilter/qa/cppunittests/doctok/export.map
@@ -1,4 +1,4 @@
-UDK_3.0 {
+UDK_3_0_0 {
global:
registerAllTestFunction;
diff --git a/writerfilter/qa/cppunittests/doctok/makefile.mk b/writerfilter/qa/cppunittests/doctok/makefile.mk
index 6ee065ee6161..298bb4da906b 100644
--- a/writerfilter/qa/cppunittests/doctok/makefile.mk
+++ b/writerfilter/qa/cppunittests/doctok/makefile.mk
@@ -37,6 +37,7 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
# BEGIN ----------------------------------------------------------------
# auto generated Target:doctok by codegen.pl
diff --git a/writerfilter/qa/cppunittests/odiapi/export.map b/writerfilter/qa/cppunittests/odiapi/export.map
index 0e4fe0c88ff2..7321bbca16ad 100644
--- a/writerfilter/qa/cppunittests/odiapi/export.map
+++ b/writerfilter/qa/cppunittests/odiapi/export.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-UDK_3.0 {
+UDK_3_0_0 {
global:
registerAllTestFunction;
diff --git a/writerfilter/qa/cppunittests/odiapi/makefile.mk b/writerfilter/qa/cppunittests/odiapi/makefile.mk
index 2843771e166f..6fc9adcd2f51 100644
--- a/writerfilter/qa/cppunittests/odiapi/makefile.mk
+++ b/writerfilter/qa/cppunittests/odiapi/makefile.mk
@@ -34,6 +34,8 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:testjob by codegen.pl
diff --git a/writerfilter/qa/cppunittests/qname/export.map b/writerfilter/qa/cppunittests/qname/export.map
index 0e4fe0c88ff2..7321bbca16ad 100644
--- a/writerfilter/qa/cppunittests/qname/export.map
+++ b/writerfilter/qa/cppunittests/qname/export.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-UDK_3.0 {
+UDK_3_0_0 {
global:
registerAllTestFunction;
diff --git a/writerfilter/qa/cppunittests/qname/makefile.mk b/writerfilter/qa/cppunittests/qname/makefile.mk
index 0eb0e16053db..c2e989d91beb 100644
--- a/writerfilter/qa/cppunittests/qname/makefile.mk
+++ b/writerfilter/qa/cppunittests/qname/makefile.mk
@@ -37,6 +37,8 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:testjob by codegen.pl
diff --git a/writerfilter/qa/cppunittests/sl/export.map b/writerfilter/qa/cppunittests/sl/export.map
index 0e4fe0c88ff2..7321bbca16ad 100644
--- a/writerfilter/qa/cppunittests/sl/export.map
+++ b/writerfilter/qa/cppunittests/sl/export.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-UDK_3.0 {
+UDK_3_0_0 {
global:
registerAllTestFunction;
diff --git a/writerfilter/qa/cppunittests/sl/makefile.mk b/writerfilter/qa/cppunittests/sl/makefile.mk
index 2bea9e16b792..b7a943e376e9 100644
--- a/writerfilter/qa/cppunittests/sl/makefile.mk
+++ b/writerfilter/qa/cppunittests/sl/makefile.mk
@@ -37,6 +37,8 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:testjob by codegen.pl
diff --git a/writerfilter/qa/cppunittests/xxml/export.map b/writerfilter/qa/cppunittests/xxml/export.map
index 0e4fe0c88ff2..7321bbca16ad 100644
--- a/writerfilter/qa/cppunittests/xxml/export.map
+++ b/writerfilter/qa/cppunittests/xxml/export.map
@@ -25,7 +25,7 @@
#
#*************************************************************************
-UDK_3.0 {
+UDK_3_0_0 {
global:
registerAllTestFunction;
diff --git a/writerfilter/qa/cppunittests/xxml/makefile.mk b/writerfilter/qa/cppunittests/xxml/makefile.mk
index 78022b6e59ba..32d0febc1c85 100644
--- a/writerfilter/qa/cppunittests/xxml/makefile.mk
+++ b/writerfilter/qa/cppunittests/xxml/makefile.mk
@@ -37,6 +37,8 @@ ENABLE_EXCEPTIONS=TRUE
.INCLUDE : settings.mk
+CFLAGSCXX += $(CPPUNIT_CFLAGS)
+
# BEGIN ----------------------------------------------------------------
# auto generated Target:testjob by codegen.pl
diff --git a/writerfilter/qa/documents/HeaderFooter.doc b/writerfilter/qa/documents/HeaderFooter.doc
new file mode 100644
index 000000000000..9b023b485761
--- /dev/null
+++ b/writerfilter/qa/documents/HeaderFooter.doc
Binary files differ
diff --git a/writerfilter/qa/documents/HeaderFooter.docx b/writerfilter/qa/documents/HeaderFooter.docx
new file mode 100644
index 000000000000..1c550b4d547b
--- /dev/null
+++ b/writerfilter/qa/documents/HeaderFooter.docx
Binary files differ
diff --git a/writerfilter/qa/documents/Paragraph with footnote.doc b/writerfilter/qa/documents/Paragraph with footnote.doc
new file mode 100644
index 000000000000..eaf22b5ef699
--- /dev/null
+++ b/writerfilter/qa/documents/Paragraph with footnote.doc
Binary files differ
diff --git a/writerfilter/qa/documents/Paragraph with footnote.docx b/writerfilter/qa/documents/Paragraph with footnote.docx
new file mode 100644
index 000000000000..fbaac59dc283
--- /dev/null
+++ b/writerfilter/qa/documents/Paragraph with footnote.docx
Binary files differ
diff --git a/writerfilter/qa/documents/docx/tables/Table in B2.docx b/writerfilter/qa/documents/docx/tables/Table in B2.docx
new file mode 100644
index 000000000000..4295cec35ff4
--- /dev/null
+++ b/writerfilter/qa/documents/docx/tables/Table in B2.docx
Binary files differ
diff --git a/writerfilter/qa/documents/docx/tables/table in A1.docx b/writerfilter/qa/documents/docx/tables/table in A1.docx
new file mode 100644
index 000000000000..d4161eaaa1ff
--- /dev/null
+++ b/writerfilter/qa/documents/docx/tables/table in A1.docx
Binary files differ
diff --git a/writerfilter/qa/documents/docx/tables/~$sted-tables3.docx b/writerfilter/qa/documents/docx/tables/~$sted-tables3.docx
new file mode 100644
index 000000000000..bfea337b7db7
--- /dev/null
+++ b/writerfilter/qa/documents/docx/tables/~$sted-tables3.docx
Binary files differ
diff --git a/writerfilter/source/dmapper/BorderHandler.cxx b/writerfilter/source/dmapper/BorderHandler.cxx
index 66ca373b6465..df2503793884 100644
--- a/writerfilter/source/dmapper/BorderHandler.cxx
+++ b/writerfilter/source/dmapper/BorderHandler.cxx
@@ -26,12 +26,15 @@
************************************************************************/
#include <BorderHandler.hxx>
#include <PropertyMap.hxx>
+#include <resourcemodel/QNameToString.hxx>
#include <doctok/resourceids.hxx>
#include <ConversionHelper.hxx>
#include <com/sun/star/table/BorderLine.hpp>
#include <ooxml/resourceids.hxx>
+#include <dmapperLoggers.hxx>
namespace writerfilter {
+
namespace dmapper {
using namespace ::com::sun::star;
@@ -60,6 +63,12 @@ BorderHandler::~BorderHandler()
-----------------------------------------------------------------------*/
void BorderHandler::attribute(Id rName, Value & rVal)
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("BorderHandler.attribute");
+ dmapper_logger->attribute("id", (*QNameToString::Instance())(rName));
+ dmapper_logger->endElement("BorderHandler.attribute");
+#endif
+
sal_Int32 nIntValue = rVal.getInt();
/* WRITERFILTERSTATUS: table: BorderHandler_attributedata */
switch( rName )
@@ -113,6 +122,11 @@ void BorderHandler::attribute(Id rName, Value & rVal)
-----------------------------------------------------------------------*/
void BorderHandler::sprm(Sprm & rSprm)
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("BorderHandler.sprm");
+ dmapper_logger->attribute("sprm", rSprm.toString());
+#endif
+
/* WRITERFILTERSTATUS: table: BorderHandler_sprm */
switch( rSprm.getId())
{
@@ -140,6 +154,11 @@ void BorderHandler::sprm(Sprm & rSprm)
break;
default:;
}
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("BorderHandler.sprm");
+#endif
+
}
/*-- 24.04.2007 09:09:01---------------------------------------------------
diff --git a/writerfilter/source/dmapper/CellColorHandler.cxx b/writerfilter/source/dmapper/CellColorHandler.cxx
index 8220a55a60fd..2de4554e06dc 100644
--- a/writerfilter/source/dmapper/CellColorHandler.cxx
+++ b/writerfilter/source/dmapper/CellColorHandler.cxx
@@ -66,32 +66,32 @@ void CellColorHandler::attribute(Id rName, Value & rVal)
/* WRITERFILTERSTATUS: table: CellColor_attributedata */
switch( rName )
{
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_cellTopColor:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_cellLeftColor:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_cellBottomColor:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_cellRightColor:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
// nIntValue contains the color, directly
break;
- /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Shd_val:
+ /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
{
//might be clear, pct5...90, some hatch types
//TODO: The values need symbolic names!
m_nShadowType = nIntValue; //clear == 0, solid: 1, pct5: 2, pct50:8, pct95: x3c, horzStripe:0x0e, thinVertStripe: 0x15
}
break;
- /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Shd_fill:
+ /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
if( nIntValue == OOXML_COLOR_AUTO )
nIntValue = 0xffffff; //fill color auto means white
m_nFillColor = nIntValue;
break;
- /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Shd_color:
+ /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
if( nIntValue == OOXML_COLOR_AUTO )
nIntValue = 0; //shading color auto means black
//color of the shading
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 8e5fb325d2e9..81a02461971a 100644..100755
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -154,10 +154,6 @@ DomainMapper::DomainMapper( const uno::Reference< uno::XComponentContext >& xCon
{
(void)rEx;
}
-
-#ifdef DEBUG_DOMAINMAPPER
- dmapper_logger->startElement("domainmapper");
-#endif
}
/*-- 09.06.2006 09:52:12---------------------------------------------------
@@ -186,10 +182,6 @@ DomainMapper::~DomainMapper()
}
delete m_pImpl;
-
-#ifdef DEBUG_DOMAINMAPPER
- dmapper_logger->endElement("domainmapper");
-#endif
}
/*-- 09.06.2006 09:52:12---------------------------------------------------
@@ -200,6 +192,7 @@ void DomainMapper::attribute(Id nName, Value & val)
dmapper_logger->startElement("attribute");
dmapper_logger->attribute("name", (*QNameToString::Instance())(nName));
dmapper_logger->attribute("value", val.toString());
+ dmapper_logger->endElement("attribute");
#endif
static ::rtl::OUString sLocalBookmarkName;
sal_Int32 nIntValue = val.getInt();
@@ -215,12 +208,6 @@ void DomainMapper::attribute(Id nName, Value & val)
switch( nName )
{
/* attributes to be ignored */
- case NS_rtf::LN_UNUSED4:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-
- case NS_rtf::LN_UNUSED8:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-
case NS_rtf::LN_UNUSED1_3:
/* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
@@ -582,16 +569,13 @@ void DomainMapper::attribute(Id nName, Value & val)
case NS_rtf::LN_FNORESTART:
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
- case NS_rtf::LN_FPREV:
+ case NS_rtf::LN_FIDENTSAV:
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
- case NS_rtf::LN_FPREVSPACE:
+ case NS_rtf::LN_FCONVERTED:
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
- case NS_rtf::LN_FWORD6:
- /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
- break;
- case NS_rtf::LN_UNUSED5_7:
+ case NS_rtf::LN_FTENTATIVE:
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
case NS_rtf::LN_RGBXCHNUMS:
@@ -624,10 +608,10 @@ void DomainMapper::attribute(Id nName, Value & val)
case NS_rtf::LN_FSIMPLELIST:
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
- case NS_rtf::LN_FRESTARTHDN:
+ case NS_rtf::LN_fAutoNum:
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
- case NS_rtf::LN_UNSIGNED26_2:
+ case NS_rtf::LN_fHybrid:
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
case NS_rtf::LN_ILVL:
@@ -642,7 +626,7 @@ void DomainMapper::attribute(Id nName, Value & val)
case NS_rtf::LN_UNSIGNED4_6:
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
- case NS_rtf::LN_CLFOLVL:
+ case NS_rtf::LN_clfolvl:
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
case NS_rtf::LN_CBFFNM1:
@@ -1447,7 +1431,7 @@ void DomainMapper::attribute(Id nName, Value & val)
case NS_rtf::LN_LISTLEVEL:
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
- case NS_rtf::LN_LFO:
+ case NS_rtf::LN_LFOData:
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
case NS_rtf::LN_F:
@@ -1944,6 +1928,7 @@ void DomainMapper::attribute(Id nName, Value & val)
case NS_sprm::LN_PWHeightAbs:
case NS_sprm::LN_PDxaFromText:
case NS_sprm::LN_PDyaFromText:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
{
ParagraphProperties* pParaProperties = dynamic_cast< ParagraphProperties*>(m_pImpl->GetTopContext().get());
if( pParaProperties )
@@ -2036,8 +2021,8 @@ void DomainMapper::attribute(Id nName, Value & val)
pParaProperties->SethRule( nIntValue );
break;
case NS_sprm::LN_PWr:
- {
/* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
+ {
//should be either LN_Value_wordprocessingml_ST_Wrap_notBeside or LN_Value_wordprocessingml_ST_Wrap_around
OSL_ENSURE( sal::static_int_cast<Id>(nIntValue) == NS_ooxml::LN_Value_wordprocessingml_ST_Wrap_around ||
sal::static_int_cast<Id>(nIntValue) == NS_ooxml::LN_Value_wordprocessingml_ST_Wrap_notBeside,
@@ -2055,11 +2040,11 @@ void DomainMapper::attribute(Id nName, Value & val)
pParaProperties->Seth(ConversionHelper::convertTwipToMM100(nIntValue));
break;
case NS_sprm::LN_PDxaFromText:
- /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
pParaProperties->SethSpace( ConversionHelper::convertTwipToMM100(nIntValue ));
break;
case NS_sprm::LN_PDyaFromText:
- /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
pParaProperties->SetvSpace( ConversionHelper::convertTwipToMM100(nIntValue ));
break;
default:;
@@ -2103,15 +2088,19 @@ void DomainMapper::attribute(Id nName, Value & val)
switch( nName )
{
case NS_ooxml::LN_CT_LineNumber_countBy:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
aSettings.nInterval = nIntValue;
break;
case NS_ooxml::LN_CT_LineNumber_start:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
aSettings.nStartValue = nIntValue; // todo: has to be set at (each) first paragraph
break;
case NS_ooxml::LN_CT_LineNumber_distance:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
aSettings.nDistance = ConversionHelper::convertTwipToMM100( nIntValue );
break;
case NS_ooxml::LN_CT_LineNumber_restart:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
//page:empty, probably 0,section:1,continuous:2;
aSettings.bRestartAtEachPage = nIntValue < 1;
break;
@@ -2124,12 +2113,15 @@ void DomainMapper::attribute(Id nName, Value & val)
/* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
m_pImpl->SetCustomFtnMark( true );
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
case NS_ooxml::LN_CT_FtnEdnRef_id:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
// footnote or endnote reference id - not needed
case NS_ooxml::LN_CT_Color_themeColor:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Color_themeTint:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Color_themeShade:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
//unsupported
break;
case NS_ooxml::LN_endtrackchange:
@@ -2154,9 +2146,6 @@ void DomainMapper::attribute(Id nName, Value & val)
}
}
}
-#ifdef DEBUG_DOMAINMAPPER
- dmapper_logger->endElement("attribute");
-#endif
}
/*-- 09.06.2006 09:52:12---------------------------------------------------
@@ -2217,6 +2206,7 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
case NS_sprm::LN_PJcExtra: // sprmPJc Asian (undocumented)
/* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
case NS_sprm::LN_PJc: // sprmPJc
+ /* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
handleParaJustification(nIntValue, rContext, bExchangeLeftRight);
break;
case NS_sprm::LN_PFSideBySide:
@@ -2322,9 +2312,9 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
case NS_sprm::LN_PNest: // sprmPNest
//not handled in the old WW8 filter
break;
- case 0x8460: //first line indent Asian - undocumented
+ case NS_sprm::LN_PDxaLeft1: // sprmPDxaLeft1
case 19:
- case NS_sprm::LN_PDxaLeft1: // sprmPDxaLeft1
+ case NS_sprm::LN_PDxaLeft180: // sprmPDxaLeft180
/* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 1 */
rContext->Insert(
eSprmType == SPRM_DEFAULT ? PROP_PARA_FIRST_LINE_INDENT : PROP_FIRST_LINE_OFFSET,
@@ -2426,8 +2416,8 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
/* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
break; // sprmPWr
- /* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
case NS_ooxml::LN_CT_PrBase_pBdr: //paragraph border
+ /* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
resolveSprmProps(rSprm);
break;
/* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
@@ -2460,22 +2450,27 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
switch( nSprmId )
{
case NS_sprm::LN_PBrcTop:
+ /* WRITERFILTERSTATUS: */
eBorderId = PROP_TOP_BORDER;
eBorderDistId = PROP_TOP_BORDER_DISTANCE;
break;
case NS_sprm::LN_PBrcLeft:
+ /* WRITERFILTERSTATUS: */
eBorderId = PROP_LEFT_BORDER;
eBorderDistId = PROP_LEFT_BORDER_DISTANCE;
break;
case NS_sprm::LN_PBrcBottom:
+ /* WRITERFILTERSTATUS: */
eBorderId = PROP_BOTTOM_BORDER ;
eBorderDistId = PROP_BOTTOM_BORDER_DISTANCE;
break;
case NS_sprm::LN_PBrcRight:
+ /* WRITERFILTERSTATUS: */
eBorderId = PROP_RIGHT_BORDER;
eBorderDistId = PROP_RIGHT_BORDER_DISTANCE ;
break;
case NS_sprm::LN_PBrcBetween:
+ /* WRITERFILTERSTATUS: */
//not supported
break;
default:;
@@ -2495,21 +2490,26 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
switch( nSprmId )
{
case NS_sprm::LN_PBrcBetween: // sprmPBrcBetween
+ /* WRITERFILTERSTATUS: */
OSL_ENSURE( false, "TODO: inner border is not handled");
break;
case NS_sprm::LN_PBrcLeft: // sprmPBrcLeft
+ /* WRITERFILTERSTATUS: */
eBorderId = PROP_LEFT_BORDER;
eBorderDistId = PROP_LEFT_BORDER_DISTANCE ;
break;
case NS_sprm::LN_PBrcRight: // sprmPBrcRight
+ /* WRITERFILTERSTATUS: */
eBorderId = PROP_RIGHT_BORDER ;
eBorderDistId = PROP_RIGHT_BORDER_DISTANCE ;
break;
case NS_sprm::LN_PBrcTop: // sprmPBrcTop
+ /* WRITERFILTERSTATUS: */
eBorderId = PROP_TOP_BORDER ;
eBorderDistId = PROP_TOP_BORDER_DISTANCE;
break;
case NS_sprm::LN_PBrcBottom: // sprmPBrcBottom
+ /* WRITERFILTERSTATUS: */
default:
eBorderId = PROP_BOTTOM_BORDER ;
eBorderDistId = PROP_BOTTOM_BORDER_DISTANCE;
@@ -2537,6 +2537,7 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
/* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
break; // sprmPBrcBar
case NS_sprm::LN_PFNoAutoHyph: // sprmPFNoAutoHyph
+ /* WRITERFILTERSTATUS: done: 100, planned: 1, spent: 0 */
rContext->Insert(PROP_PARA_IS_HYPHENATION, true, uno::makeAny( nIntValue ? false : true ));
break;
case NS_sprm::LN_PWHeightAbs:
@@ -2547,8 +2548,8 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
break; // sprmPDcs
case NS_sprm::LN_PShd: // sprmPShd
- {
/* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 2 */
+ {
//contains fore color, back color and shadow percentage, results in a brush
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
if( pProperties.get())
@@ -2571,8 +2572,8 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
break; // sprmPFLocked
case NS_sprm::LN_PFWidowControl:
case NS_ooxml::LN_CT_PPrBase_widowControl:
- {
/* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
+ {
uno::Any aVal( uno::makeAny( sal_Int8(nIntValue ? 2 : 0 )));
rContext->Insert( PROP_PARA_WIDOWS, true, aVal );
rContext->Insert( PROP_PARA_ORPHANS, true, aVal );
@@ -2588,6 +2589,7 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
/* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
break; // sprmPFWordWrap
case NS_sprm::LN_PFOverflowPunct: ; // sprmPFOverflowPunct - hanging punctuation
+ /* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
rContext->Insert(PROP_PARA_IS_HANGING_PUNCTUATION, true, uno::makeAny( nIntValue ? false : true ));
break;
case NS_sprm::LN_PFTopLinePunct:
@@ -2726,6 +2728,7 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
case NS_sprm::LN_CFItalicBi:// sprmCFItalicBi (offset 0x27 to normal italic)
/* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
case NS_sprm::LN_CFBold: //sprmCFBold
+ /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
case 61: /*sprmCFItalic*/
/* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */
case NS_sprm::LN_CFItalic: //sprmCFItalic
@@ -2751,31 +2754,39 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
case 60:// sprmCFBold
case NS_sprm::LN_CFBoldBi: // sprmCFBoldBi
case NS_sprm::LN_CFBold: /*sprmCFBold*/
+ /* WRITERFILTERSTATUS: */
ePropertyId = nSprmId != NS_sprm::LN_CFBoldBi ? PROP_CHAR_WEIGHT : PROP_CHAR_WEIGHT_COMPLEX;
break;
case 61: /*sprmCFItalic*/
case NS_sprm::LN_CFItalicBi: // sprmCFItalicBi
case NS_sprm::LN_CFItalic: /*sprmCFItalic*/
+ /* WRITERFILTERSTATUS: */
ePropertyId = nSprmId == 0x836 ? PROP_CHAR_POSTURE : PROP_CHAR_POSTURE_COMPLEX;
break;
case NS_sprm::LN_CFStrike: /*sprmCFStrike*/
case NS_sprm::LN_CFDStrike : /*sprmCFDStrike double strike through*/
+ /* WRITERFILTERSTATUS: */
ePropertyId = PROP_CHAR_STRIKEOUT;
break;
case NS_sprm::LN_CFOutline: /*sprmCFOutline*/
+ /* WRITERFILTERSTATUS: */
ePropertyId = PROP_CHAR_CONTOURED;
break;
case NS_sprm::LN_CFShadow: /*sprmCFShadow*/
+ /* WRITERFILTERSTATUS: */
ePropertyId = PROP_CHAR_SHADOWED;
break;
case NS_sprm::LN_CFSmallCaps: /*sprmCFSmallCaps*/
case NS_sprm::LN_CFCaps: /*sprmCFCaps*/
+ /* WRITERFILTERSTATUS: */
ePropertyId = PROP_CHAR_CASE_MAP;
break;
case NS_sprm::LN_CFVanish: /*sprmCFVanish*/
+ /* WRITERFILTERSTATUS: */
ePropertyId = PROP_CHAR_HIDDEN;
break;
case NS_sprm::LN_CFEmboss: /*sprmCFEmboss*/
+ /* WRITERFILTERSTATUS: */
ePropertyId = PROP_CHAR_RELIEF;
break;
}
@@ -2817,6 +2828,7 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
case 60:/*sprmCFBold*/
case NS_sprm::LN_CFBold: /*sprmCFBold*/
case NS_sprm::LN_CFBoldBi: // sprmCFBoldBi
+ /* WRITERFILTERSTATUS: */
{
uno::Any aBold( uno::makeAny( nIntValue ? awt::FontWeight::BOLD : awt::FontWeight::NORMAL ) );
rContext->Insert(ePropertyId, true, aBold );
@@ -2827,6 +2839,7 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
case 61: /*sprmCFItalic*/
case NS_sprm::LN_CFItalic: /*sprmCFItalic*/
case NS_sprm::LN_CFItalicBi: // sprmCFItalicBi
+ /* WRITERFILTERSTATUS: */
{
uno::Any aPosture( uno::makeAny( nIntValue ? awt::FontSlant_ITALIC : awt::FontSlant_NONE ) );
rContext->Insert( ePropertyId, true, aPosture );
@@ -2835,27 +2848,33 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
}
break;
case NS_sprm::LN_CFStrike: /*sprmCFStrike*/
+ /* WRITERFILTERSTATUS: */
rContext->Insert(ePropertyId, true,
uno::makeAny( nIntValue ? awt::FontStrikeout::SINGLE : awt::FontStrikeout::NONE ) );
break;
case NS_sprm::LN_CFDStrike : /*sprmCFDStrike double strike through*/
+ /* WRITERFILTERSTATUS: */
rContext->Insert(ePropertyId, true,
uno::makeAny( awt::FontStrikeout::DOUBLE ) );
break;
case NS_sprm::LN_CFOutline: /*sprmCFOutline*/
case NS_sprm::LN_CFShadow: /*sprmCFShadow*/
case NS_sprm::LN_CFVanish: /*sprmCFVanish*/
+ /* WRITERFILTERSTATUS: */
rContext->Insert(ePropertyId, true, uno::makeAny( nIntValue ? true : false ));
break;
case NS_sprm::LN_CFSmallCaps: /*sprmCFSmallCaps*/
+ /* WRITERFILTERSTATUS: */
rContext->Insert(ePropertyId, true,
uno::makeAny( nIntValue ? style::CaseMap::SMALLCAPS : style::CaseMap::NONE));
break;
case NS_sprm::LN_CFCaps: /*sprmCFCaps*/
+ /* WRITERFILTERSTATUS: */
rContext->Insert(ePropertyId, true,
uno::makeAny( nIntValue ? style::CaseMap::UPPERCASE : style::CaseMap::NONE));
break;
case NS_sprm::LN_CFEmboss: /*sprmCFEmboss*/
+ /* WRITERFILTERSTATUS: */
rContext->Insert(ePropertyId, true,
uno::makeAny( nIntValue ? awt::FontRelief::EMBOSSED : awt::FontRelief::NONE ));
break;
@@ -3021,7 +3040,7 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
eFontPitch = PROP_CHAR_FONT_PITCH_COMPLEX;
break;
}
- const FontEntry* pFontEntry = pFontTable->getFontEntry(sal_uInt32(nIntValue));
+ const FontEntry::Pointer_t pFontEntry(pFontTable->getFontEntry(sal_uInt32(nIntValue)));
rContext->Insert(eFontName, true, uno::makeAny( pFontEntry->sFontName ));
// rContext->Insert(eFontStyle, uno::makeAny( pFontEntry-> ));
// rContext->Insert(eFontFamily, uno::makeAny( pFontEntry-> ));
@@ -3048,13 +3067,13 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
/* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
break; // sprmCPropRMark
case NS_sprm::LN_CSfxText:
+ /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
// The file-format has many character animations. We have only
// one, so we use it always. Suboptimal solution though.
if (nIntValue)
rContext->Insert(PROP_CHAR_FLASH, true, uno::makeAny( true ));
else
rContext->Insert(PROP_CHAR_FLASH, true, uno::makeAny( false ));
- /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
break; // sprmCSfxText
case NS_sprm::LN_CFBiDi:
/* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
@@ -3091,7 +3110,7 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
break; // sprmCCpg
case NS_sprm::LN_CLidBi: // sprmCLidBi language complex
/* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
- case 0x4873: //sprmCRgLid
+ case NS_sprm::LN_CRgLid0_80: //sprmCRgLid0_80
/* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 1 */
//undocumented but interpreted as western language
case NS_sprm::LN_CRgLid0: // sprmCRgLid0 language Western
@@ -3197,8 +3216,8 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
case 143:
case NS_sprm::LN_SFTitlePage: // sprmSFTitlePage
case NS_ooxml::LN_EG_SectPrContents_titlePg:
- {
/* WRITERFILTERSTATUS: done: 100, planned: 2, spent: 0 */
+ {
OSL_ENSURE(pSectionContext, "SectionContext unavailable!");
if(pSectionContext)
pSectionContext->SetTitlePage( nIntValue > 0 ? true : false );//section has title page
@@ -3689,14 +3708,14 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
resolveSprmProps(rSprm);
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
case NS_ooxml::LN_CT_Tabs_tab:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
resolveSprmProps(rSprm);
m_pImpl->IncorporateTabStop(m_pImpl->m_aCurrentTabStop);
m_pImpl->m_aCurrentTabStop = DeletableTabStop();
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
case NS_ooxml::LN_CT_PPrBase_tabs:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
{
// Initialize tab stop vector from style sheet
if( !m_pImpl->IsStyleSheetImport() )
@@ -3749,10 +3768,10 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
resolveSprmProps(rSprm);
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
case NS_ooxml::LN_EG_SectPrContents_footnotePr:
- /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
+ /* WRITERFILTERSTATUS: done: 1ß0, planned: 0.5, spent: 0 */
case NS_ooxml::LN_EG_SectPrContents_endnotePr:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
m_pImpl->SetInFootnoteProperties( NS_ooxml::LN_EG_SectPrContents_footnotePr == nSprmId );
resolveSprmProps(rSprm);
break;
@@ -3783,8 +3802,8 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
}
break;
case NS_ooxml::LN_CT_PPrBase_framePr:
- {
/* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
+ {
PropertyMapPtr pContext = m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH);
if( pContext.get() )
{
@@ -3893,8 +3912,8 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
break;
case NS_ooxml::LN_CT_PPrBase_pStyle:
- {
/* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
+ {
m_pImpl->SetCurrentParaStyleId( sStringValue );
StyleSheetTablePtr pStyleTable = m_pImpl->GetStyleSheetTable();
const ::rtl::OUString sConvertedStyleName = pStyleTable->ConvertStyleName( sStringValue, true );
@@ -3932,14 +3951,14 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
resolveSprmProps(rSprm);//contains LN_CT_TblCellMar_top, LN_CT_TblCellMar_left, LN_CT_TblCellMar_bottom, LN_CT_TblCellMar_right
}
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_TblCellMar_top:
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_TblCellMar_left:
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_TblCellMar_bottom:
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_TblCellMar_right:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
{
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
if( pProperties.get())
@@ -3951,14 +3970,18 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
switch(nSprmId)
{
case NS_ooxml::LN_CT_TblCellMar_top:
+ /* WRITERFILTERSTATUS: */
break;
case NS_ooxml::LN_CT_TblCellMar_left:
+ /* WRITERFILTERSTATUS: */
eId = META_PROP_CELL_MAR_LEFT;
break;
case NS_ooxml::LN_CT_TblCellMar_bottom:
+ /* WRITERFILTERSTATUS: */
eId = META_PROP_CELL_MAR_BOTTOM;
break;
case NS_ooxml::LN_CT_TblCellMar_right:
+ /* WRITERFILTERSTATUS: */
eId = META_PROP_CELL_MAR_RIGHT;
break;
default:;
@@ -4016,18 +4039,18 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
// case NS_ooxml::LN_CT_FtnEdn_id
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
// case NS_ooxml::LN_EG_FtnEdnNumProps_numRestart
- /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
case NS_ooxml::LN_CT_FtnProps_pos:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
//footnotes in word can be at page end or beneath text - writer supports only the first
//endnotes in word can be at section end or document end - writer supports only the latter
// -> so this property can be ignored
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
case NS_ooxml::LN_EG_FtnEdnNumProps_numStart:
- /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
case NS_ooxml::LN_CT_FtnProps_numFmt:
- /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
case NS_ooxml::LN_CT_EdnProps_numFmt:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
{
try
{
@@ -4122,23 +4145,24 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
/* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
break;
case NS_ooxml::LN_EG_RPrBase_snapToGrid: // "Use document grid settings for inter-paragraph spacing"
+ /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
case NS_sprm::LN_PContextualSpacing:
//TODO: determines whether top/bottom paragraph spacing is added if equal styles are following - unsupported
break;
case NS_ooxml::LN_EG_SectPrContents_formProt: //section protection, only form editing is enabled - unsupported
+ /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
case NS_ooxml::LN_CT_Lvl_pStyle:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
//TODO: numbering style should apply current numbering level - not yet supported
break;
default:
{
-#if OSL_DEBUG_LEVEL > 0
- ::rtl::OString sMessage( "DomainMapper::sprm() - Id: ");
- sMessage += ::rtl::OString::valueOf( sal_Int32( nSprmId ), 10 );
- sMessage += ::rtl::OString(" / 0x");
- sMessage += ::rtl::OString::valueOf( sal_Int32( nSprmId ), 16 );
- OSL_ENSURE( false, sMessage.getStr()); //
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("unhandled");
+ dmapper_logger->attribute("id", nSprmId);
+ dmapper_logger->endElement("unhandled");
#endif
}
}
@@ -4153,7 +4177,15 @@ void DomainMapper::sprm( Sprm& rSprm, PropertyMapPtr rContext, SprmType eSprmTyp
void DomainMapper::entry(int /*pos*/,
writerfilter::Reference<Properties>::Pointer_t ref)
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("entry");
+#endif
+
ref->resolve(*this);
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("entry");
+#endif
}
/*-- 09.06.2006 09:52:13---------------------------------------------------
@@ -4258,12 +4290,19 @@ void DomainMapper::endParagraphGroup()
void DomainMapper::startShape( uno::Reference< drawing::XShape > xShape )
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("shape");
+#endif
m_pImpl->PushShapeContext( xShape );
}
void DomainMapper::endShape( )
{
m_pImpl->PopShapeContext( );
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("shape");
+#endif
}
/*-- 13.06.2007 16:15:55---------------------------------------------------
@@ -4399,6 +4438,9 @@ void DomainMapper::text(const sal_uInt8 * data_, size_t len)
//sal_uInt32 nSize = pContext->size();
//<--
+ if (pContext == NULL)
+ pContext.reset(new PropertyMap());
+
m_pImpl->appendTextPortion( sText, pContext );
#ifdef DEBUG_DOMAINMAPPER
dmapper_logger->startElement("text");
@@ -4421,6 +4463,13 @@ void DomainMapper::utext(const sal_uInt8 * data_, size_t len)
OUStringBuffer aBuffer = OUStringBuffer(len);
aBuffer.append( (const sal_Unicode *) data_, len);
sText = aBuffer.makeStringAndClear();
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("utext");
+ dmapper_logger->chars(sText);
+ dmapper_logger->endElement("utext");
+#endif
+
try
{
m_pImpl->getTableManager().utext(data_, len);
@@ -4449,7 +4498,7 @@ void DomainMapper::utext(const sal_uInt8 * data_, size_t len)
//otherwise ignore sText
}
else */
- if( pContext->GetFootnote().is() )
+ if( pContext && pContext->GetFootnote().is() )
{
if( !pContext->GetFootnoteSymbol() )
pContext->GetFootnote()->setLabel( sText );
@@ -4462,13 +4511,13 @@ void DomainMapper::utext(const sal_uInt8 * data_, size_t len)
set at the field or directly inserted into the text*/
m_pImpl->SetFieldResult( sText );
else
+ {
+ if (pContext == NULL)
+ pContext.reset(new PropertyMap());
+
m_pImpl->appendTextPortion( sText, pContext );
+ }
-#ifdef DEBUG_DOMAINMAPPER
- dmapper_logger->startElement("utext");
- dmapper_logger->chars(sText);
- dmapper_logger->endElement("utext");
-#endif
}
}
catch( const uno::RuntimeException& )
@@ -4548,8 +4597,9 @@ void DomainMapper::table(Id name, writerfilter::Reference<Table>::Pointer_t ref)
case NS_ooxml::LN_THEMETABLE:
ref->resolve ( *m_pImpl->GetThemeTable() );
break;
- case NS_ooxml::LN_SETTINGS:
- ref->resolve( *m_pImpl->GetSettingsTable( ) );
+ case NS_ooxml::LN_settings_settings:
+ ref->resolve ( *m_pImpl->GetSettingsTable() );
+ m_pImpl->ApplySettingsTable();
break;
default:
OSL_ENSURE( false, "which table is to be filled here?");
diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
index e88d8d1d5a67..e070a42a3289 100644
--- a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
+++ b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx
@@ -30,8 +30,10 @@
#include <com/sun/star/table/TableBorderDistances.hpp>
#include <com/sun/star/table/TableBorder.hpp>
#include <com/sun/star/text/HoriOrientation.hpp>
-#if OSL_DEBUG_LEVEL > 1
-#include <iostream>
+#include <dmapperLoggers.hxx>
+
+#ifdef DEBUG_DOMAINMAPPER
+#include <PropertyMapHelper.hxx>
#endif
namespace writerfilter {
@@ -43,21 +45,13 @@ using namespace ::std;
#define DEF_BORDER_DIST 190 //0,19cm
#define DEFAULT_CELL_MARGIN 108 //default cell margin, not documented
-#ifdef DEBUG
-static void lcl_printHandle(const Handle_t rHandle)
-{
- if (!rHandle.get())
- return;
- rtl::OUString aOUStr = rHandle->getString();
- rtl::OString aOStr(aOUStr.getStr(), aOUStr.getLength(), RTL_TEXTENCODING_ASCII_US );
-
- clog << aOStr.getStr() << endl;
-}
+#ifdef DEBUG_DOMAINMAPPER
static void lcl_printProperties( PropertyMapPtr pProps )
{
if( pProps.get() )
{
- clog << "<properties>";
+ dmapper_logger->startElement("properties");
+
PropertyMap::const_iterator aMapIter = pProps->begin();
PropertyMap::const_iterator aEndIter = pProps->end();
PropertyNameSupplier& rPropSupplier = PropertyNameSupplier::GetPropertyNameSupplier();
@@ -71,18 +65,21 @@ static void lcl_printProperties( PropertyMapPtr pProps )
sal_Int32 nColor;
if ( aMapIter->second >>= aLine )
{
- clog << ": BorderLine ( Color: " << aLine.Color;
- clog << ", Inner: " << aLine.InnerLineWidth;
- clog << ", Outer: " << aLine.OuterLineWidth << ") ";
+ dmapper_logger->startElement("borderline");
+ dmapper_logger->attribute("color", aLine.Color);
+ dmapper_logger->attribute("inner", aLine.InnerLineWidth);
+ dmapper_logger->attribute("outer", aLine.OuterLineWidth);
+ dmapper_logger->endElement("borderline");
}
else if ( aMapIter->second >>= nColor )
{
- clog << ": Color ( " << nColor << " ) ";
+ dmapper_logger->startElement("color");
+ dmapper_logger->attribute("number", nColor);
+ dmapper_logger->endElement("color");
}
-
- clog << " - ";
}
- clog << endl;
+
+ dmapper_logger->endElement("properties");
}
}
#endif
@@ -107,11 +104,12 @@ void DomainMapperTableHandler::startTable(unsigned int nRows,
m_pTableSeq = TableSequencePointer_t(new TableSequence_t(nRows));
m_nRowIndex = 0;
-#if OSL_DEBUG_LEVEL > 1
- char sBuffer[256];
- snprintf(sBuffer, sizeof(sBuffer), "%d", nRows);
- clog << "<table rows=\"" << sBuffer << "\">" << endl;
- lcl_printProperties( pProps );
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("tablehandler.table");
+ dmapper_logger->attribute("rows", nRows);
+
+ if (pProps.get() != NULL)
+ dmapper_logger->addTag(pProps->toTag());
#endif
}
@@ -120,6 +118,11 @@ void DomainMapperTableHandler::startTable(unsigned int nRows,
-----------------------------------------------------------------------*/
PropertyMapPtr lcl_SearchParentStyleSheetAndMergeProperties(const StyleSheetEntryPtr pStyleSheet, StyleSheetTablePtr pStyleSheetTable)
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("lcl_SearchParentStyleSheetAndMergeProperties");
+ dmapper_logger->addTag(pStyleSheet->toTag());
+#endif
+
PropertyMapPtr pRet;
if( pStyleSheet->sBaseStyleIdentifier.getLength())
{
@@ -132,6 +135,11 @@ PropertyMapPtr lcl_SearchParentStyleSheetAndMergeProperties(const StyleSheetEntr
}
pRet->insert( pStyleSheet->pProperties, true );
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("lcl_SearchParentStyleSheetAndMergeProperties");
+#endif
+
return pRet;
}
@@ -233,46 +241,65 @@ void lcl_computeCellBorders( PropertyMapPtr pTableBorders, PropertyMapPtr pCellP
}
}
-void DomainMapperTableHandler::endTable()
-{
-#if OSL_DEBUG_LEVEL > 1
+#ifdef DEBUG_DOMAINMAPPER
+
+void lcl_debug_BorderLine(table::BorderLine & rLine)
{
- clog << "</table>" << endl;
- sal_uInt32 nCells = 0;
- sal_uInt32 nRows = m_aRowProperties.size();
- if( nRows == m_aCellProperties.size() )
- {
- for( sal_uInt32 nRow = 0; nRow < nRows; ++nRow )
- nCells += m_aCellProperties[nRow].size();
- }
- sal_uInt32 nTblPropSize = m_aTableProperties.get() ? m_aTableProperties->size() : 0;
- (void)nTblPropSize;
+ dmapper_logger->startElement("BorderLine");
+ dmapper_logger->attribute("Color", rLine.Color);
+ dmapper_logger->attribute("InnerLineWidth", rLine.InnerLineWidth);
+ dmapper_logger->attribute("OuterLineWidth", rLine.OuterLineWidth);
+ dmapper_logger->attribute("LineDistance", rLine.LineDistance);
+ dmapper_logger->endElement("BorderLine");
+}
- ::rtl::OUString sNames;
- if( nTblPropSize )
- {
- const beans::PropertyValues aDebugTbl = m_aTableProperties->GetPropertyValues();
- for( sal_uInt32 nDebug = 0; nDebug < nTblPropSize; ++nDebug)
- {
- const ::rtl::OUString sName = aDebugTbl[nDebug].Name;
- sNames += sName;
- sNames += ::rtl::OUString('-');
- }
- m_aTableProperties->Invalidate();
- sNames += ::rtl::OUString(' ');
- clog << "Props: " << rtl::OUStringToOString( sNames, RTL_TEXTENCODING_UTF8 ).getStr( ) << endl;
- }
+void lcl_debug_TableBorder(table::TableBorder & rBorder)
+{
+ dmapper_logger->startElement("TableBorder");
+ lcl_debug_BorderLine(rBorder.TopLine);
+ dmapper_logger->attribute("IsTopLineValid", rBorder.IsTopLineValid);
+ lcl_debug_BorderLine(rBorder.BottomLine);
+ dmapper_logger->attribute("IsBottomLineValid", rBorder.IsBottomLineValid);
+ lcl_debug_BorderLine(rBorder.LeftLine);
+ dmapper_logger->attribute("IsLeftLineValid", rBorder.IsLeftLineValid);
+ lcl_debug_BorderLine(rBorder.RightLine);
+ dmapper_logger->attribute("IsRightLineValid", rBorder.IsRightLineValid);
+ lcl_debug_BorderLine(rBorder.VerticalLine);
+ dmapper_logger->attribute("IsVerticalLineValid", rBorder.IsVerticalLineValid);
+ lcl_debug_BorderLine(rBorder.HorizontalLine);
+ dmapper_logger->attribute("IsHorizontalLineValid", rBorder.IsHorizontalLineValid);
+ dmapper_logger->attribute("Distance", rBorder.Distance);
+ dmapper_logger->attribute("IsDistanceValid", rBorder.IsDistanceValid);
+ dmapper_logger->endElement("TableBorder");
}
#endif
- TablePropertyValues_t aTableProperties;
- sal_Int32 nLeftBorderDistance, nRightBorderDistance, nTopBorderDistance, nBottomBorderDistance;
- nLeftBorderDistance = nRightBorderDistance = DEF_BORDER_DIST;
- nTopBorderDistance = nBottomBorderDistance = 0;
+struct TableInfo
+{
+ sal_Int32 nLeftBorderDistance;
+ sal_Int32 nRightBorderDistance;
+ sal_Int32 nTopBorderDistance;
+ sal_Int32 nBottomBorderDistance;
+ PropertyMapPtr pTableDefaults;
+ PropertyMapPtr pTableBorders;
+ TableStyleSheetEntry* pTableStyle;
+ TablePropertyValues_t aTableProperties;
+
+ TableInfo()
+ : nLeftBorderDistance(DEF_BORDER_DIST)
+ , nRightBorderDistance(DEF_BORDER_DIST)
+ , nTopBorderDistance(0)
+ , nBottomBorderDistance(0)
+ , pTableDefaults(new PropertyMap)
+ , pTableBorders(new PropertyMap)
+ , pTableStyle(NULL)
+ {
+ }
- PropertyMapPtr pTableDefaults( new PropertyMap );
- PropertyMapPtr pTableBorders( new PropertyMap );
+};
+TableStyleSheetEntry * DomainMapperTableHandler::endTableGetTableStyle(TableInfo & rInfo)
+{
// will receive the table style if any
TableStyleSheetEntry* pTableStyle = NULL;
@@ -286,7 +313,7 @@ void DomainMapperTableHandler::endTable()
sal_Int32 nTableWidth = 0;
PropertyMap::iterator aTableStyleIter =
- m_aTableProperties->find( PropertyDefinition( META_PROP_TABLE_STYLE_NAME, false ) );
+ m_aTableProperties->find( PropertyDefinition( META_PROP_TABLE_STYLE_NAME, false ) );
if(aTableStyleIter != m_aTableProperties->end())
{
// Apply table style properties recursively
@@ -294,7 +321,7 @@ void DomainMapperTableHandler::endTable()
aTableStyleIter->second >>= sTableStyleName;
StyleSheetTablePtr pStyleSheetTable = m_rDMapper_Impl.GetStyleSheetTable();
const StyleSheetEntryPtr pStyleSheet = pStyleSheetTable->FindStyleSheetByISTD( sTableStyleName );
- pTableStyle = static_cast<TableStyleSheetEntry*>( pStyleSheet.get( ) );
+ pTableStyle = dynamic_cast<TableStyleSheetEntry*>( pStyleSheet.get( ) );
m_aTableProperties->erase( aTableStyleIter );
if( pStyleSheet )
@@ -307,31 +334,53 @@ void DomainMapperTableHandler::endTable()
PropertyMapPtr pMergedProperties = lcl_SearchParentStyleSheetAndMergeProperties(pStyleSheet, pStyleSheetTable);
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("mergedProps");
+ dmapper_logger->addTag(pMergedProperties->toTag());
+ dmapper_logger->endElement("mergedProps");
+#endif
+
m_aTableProperties->insert( pMergedProperties );
m_aTableProperties->insert( pTableProps );
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("TableProperties");
+ dmapper_logger->addTag(m_aTableProperties->toTag());
+ dmapper_logger->endElement("TableProperties");
+#endif
}
}
// Set the table default attributes for the cells
- pTableDefaults->insert( m_aTableProperties );
+ rInfo.pTableDefaults->insert( m_aTableProperties );
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("TableDefaults");
+ dmapper_logger->addTag(rInfo.pTableDefaults->toTag());
+ dmapper_logger->endElement("TableDefaults");
+#endif
m_aTableProperties->getValue( TablePropertyMap::GAP_HALF, nGapHalf );
m_aTableProperties->getValue( TablePropertyMap::LEFT_MARGIN, nLeftMargin );
- m_aTableProperties->getValue( TablePropertyMap::CELL_MAR_LEFT, nLeftBorderDistance );
- m_aTableProperties->getValue( TablePropertyMap::CELL_MAR_RIGHT, nRightBorderDistance );
- m_aTableProperties->getValue( TablePropertyMap::CELL_MAR_TOP, nTopBorderDistance );
- m_aTableProperties->getValue( TablePropertyMap::CELL_MAR_BOTTOM, nBottomBorderDistance );
+ m_aTableProperties->getValue( TablePropertyMap::CELL_MAR_LEFT,
+ rInfo.nLeftBorderDistance );
+ m_aTableProperties->getValue( TablePropertyMap::CELL_MAR_RIGHT,
+ rInfo.nRightBorderDistance );
+ m_aTableProperties->getValue( TablePropertyMap::CELL_MAR_TOP,
+ rInfo.nTopBorderDistance );
+ m_aTableProperties->getValue( TablePropertyMap::CELL_MAR_BOTTOM,
+ rInfo.nBottomBorderDistance );
table::TableBorderDistances aDistances;
aDistances.IsTopDistanceValid =
- aDistances.IsBottomDistanceValid =
- aDistances.IsLeftDistanceValid =
- aDistances.IsRightDistanceValid = sal_True;
- aDistances.TopDistance = static_cast<sal_Int16>( nTopBorderDistance );
- aDistances.BottomDistance = static_cast<sal_Int16>( nBottomBorderDistance );
- aDistances.LeftDistance = static_cast<sal_Int16>( nLeftBorderDistance );
- aDistances.RightDistance = static_cast<sal_Int16>( nRightBorderDistance );
+ aDistances.IsBottomDistanceValid =
+ aDistances.IsLeftDistanceValid =
+ aDistances.IsRightDistanceValid = sal_True;
+ aDistances.TopDistance = static_cast<sal_Int16>( rInfo.nTopBorderDistance );
+ aDistances.BottomDistance = static_cast<sal_Int16>( rInfo.nBottomBorderDistance );
+ aDistances.LeftDistance = static_cast<sal_Int16>( rInfo.nLeftBorderDistance );
+ aDistances.RightDistance = static_cast<sal_Int16>( rInfo.nRightBorderDistance );
m_aTableProperties->Insert( PROP_TABLE_BORDER_DISTANCES, false, uno::makeAny( aDistances ) );
@@ -345,10 +394,11 @@ void DomainMapperTableHandler::endTable()
aTableBorder.IsTopLineValid = true;
m_aTableProperties->erase( aTblBorderIter );
- pTableBorders->Insert( PROP_TOP_BORDER, false, uno::makeAny( aTableBorder.TopLine ) );
- PropertyMap::iterator pIt = pTableDefaults->find( PropertyDefinition( PROP_TOP_BORDER, false ) );
- if ( pIt != pTableDefaults->end( ) )
- pTableDefaults->erase( pIt );
+ rInfo.pTableBorders->Insert( PROP_TOP_BORDER, false,
+ uno::makeAny( aTableBorder.TopLine ) );
+ PropertyMap::iterator pIt = rInfo.pTableDefaults->find( PropertyDefinition( PROP_TOP_BORDER, false ) );
+ if ( pIt != rInfo.pTableDefaults->end( ) )
+ rInfo.pTableDefaults->erase( pIt );
}
aTblBorderIter = m_aTableProperties->find( PropertyDefinition(PROP_BOTTOM_BORDER, false) );
if( aTblBorderIter != m_aTableProperties->end() )
@@ -357,10 +407,11 @@ void DomainMapperTableHandler::endTable()
aTableBorder.IsBottomLineValid = true;
m_aTableProperties->erase( aTblBorderIter );
- pTableBorders->Insert( PROP_BOTTOM_BORDER, false, uno::makeAny( aTableBorder.BottomLine ) );
- PropertyMap::iterator pIt = pTableDefaults->find( PropertyDefinition( PROP_BOTTOM_BORDER, false ) );
- if ( pIt != pTableDefaults->end( ) )
- pTableDefaults->erase( pIt );
+ rInfo.pTableBorders->Insert( PROP_BOTTOM_BORDER, false,
+ uno::makeAny( aTableBorder.BottomLine));
+ PropertyMap::iterator pIt = rInfo.pTableDefaults->find( PropertyDefinition( PROP_BOTTOM_BORDER, false ) );
+ if ( pIt != rInfo.pTableDefaults->end( ) )
+ rInfo.pTableDefaults->erase( pIt );
}
aTblBorderIter = m_aTableProperties->find( PropertyDefinition(PROP_LEFT_BORDER, false) );
if( aTblBorderIter != m_aTableProperties->end() )
@@ -369,10 +420,11 @@ void DomainMapperTableHandler::endTable()
aTableBorder.IsLeftLineValid = true;
m_aTableProperties->erase( aTblBorderIter );
- pTableBorders->Insert( PROP_LEFT_BORDER, false, uno::makeAny( aTableBorder.LeftLine ) );
- PropertyMap::iterator pIt = pTableDefaults->find( PropertyDefinition( PROP_LEFT_BORDER, false ) );
- if ( pIt != pTableDefaults->end( ) )
- pTableDefaults->erase( pIt );
+ rInfo.pTableBorders->Insert( PROP_LEFT_BORDER, false,
+ uno::makeAny( aTableBorder.LeftLine ) );
+ PropertyMap::iterator pIt = rInfo.pTableDefaults->find( PropertyDefinition( PROP_LEFT_BORDER, false ) );
+ if ( pIt != rInfo.pTableDefaults->end( ) )
+ rInfo.pTableDefaults->erase( pIt );
}
aTblBorderIter = m_aTableProperties->find( PropertyDefinition(PROP_RIGHT_BORDER, false) );
if( aTblBorderIter != m_aTableProperties->end() )
@@ -381,10 +433,11 @@ void DomainMapperTableHandler::endTable()
aTableBorder.IsRightLineValid = true;
m_aTableProperties->erase( aTblBorderIter );
- pTableBorders->Insert( PROP_RIGHT_BORDER, false, uno::makeAny( aTableBorder.RightLine ) );
- PropertyMap::iterator pIt = pTableDefaults->find( PropertyDefinition( PROP_RIGHT_BORDER, false ) );
- if ( pIt != pTableDefaults->end( ) )
- pTableDefaults->erase( pIt );
+ rInfo.pTableBorders->Insert( PROP_RIGHT_BORDER, false,
+ uno::makeAny( aTableBorder.RightLine ) );
+ PropertyMap::iterator pIt = rInfo.pTableDefaults->find( PropertyDefinition( PROP_RIGHT_BORDER, false ) );
+ if ( pIt != rInfo.pTableDefaults->end( ) )
+ rInfo.pTableDefaults->erase( pIt );
}
aTblBorderIter = m_aTableProperties->find( PropertyDefinition(META_PROP_HORIZONTAL_BORDER, false) );
if( aTblBorderIter != m_aTableProperties->end() )
@@ -393,10 +446,12 @@ void DomainMapperTableHandler::endTable()
aTableBorder.IsHorizontalLineValid = true;
m_aTableProperties->erase( aTblBorderIter );
- pTableBorders->Insert( META_PROP_HORIZONTAL_BORDER, false, uno::makeAny( aTableBorder.HorizontalLine ) );
- PropertyMap::iterator pIt = pTableDefaults->find( PropertyDefinition( META_PROP_HORIZONTAL_BORDER, false ) );
- if ( pIt != pTableDefaults->end( ) )
- pTableDefaults->erase( pIt );
+ rInfo.pTableBorders->Insert
+ (META_PROP_HORIZONTAL_BORDER, false,
+ uno::makeAny( aTableBorder.HorizontalLine ) );
+ PropertyMap::iterator pIt = rInfo.pTableDefaults->find( PropertyDefinition( META_PROP_HORIZONTAL_BORDER, false ) );
+ if ( pIt != rInfo.pTableDefaults->end( ) )
+ rInfo.pTableDefaults->erase( pIt );
}
aTblBorderIter = m_aTableProperties->find( PropertyDefinition(META_PROP_VERTICAL_BORDER, false) );
if( aTblBorderIter != m_aTableProperties->end() )
@@ -405,17 +460,23 @@ void DomainMapperTableHandler::endTable()
aTableBorder.IsVerticalLineValid = true;
m_aTableProperties->erase( aTblBorderIter );
- pTableBorders->Insert( META_PROP_VERTICAL_BORDER, false, uno::makeAny( aTableBorder.VerticalLine ) );
- PropertyMap::iterator pIt = pTableDefaults->find( PropertyDefinition( META_PROP_VERTICAL_BORDER, false ) );
- if ( pIt != pTableDefaults->end( ) )
- pTableDefaults->erase( pIt );
+ rInfo.pTableBorders->Insert
+ (META_PROP_VERTICAL_BORDER, false,
+ uno::makeAny( aTableBorder.VerticalLine ) );
+ PropertyMap::iterator pIt = rInfo.pTableDefaults->find( PropertyDefinition( META_PROP_VERTICAL_BORDER, false ) );
+ if ( pIt != rInfo.pTableDefaults->end( ) )
+ rInfo.pTableDefaults->erase( pIt );
}
aTableBorder.Distance = 0;
aTableBorder.IsDistanceValid = false;
m_aTableProperties->Insert( PROP_TABLE_BORDER, false, uno::makeAny( aTableBorder ) );
- m_aTableProperties->Insert( PROP_LEFT_MARGIN, false, uno::makeAny( nLeftMargin - nGapHalf - nLeftBorderDistance));
+#ifdef DEBUG_DOMAINMAPPER
+ lcl_debug_TableBorder(aTableBorder);
+#endif
+
+ m_aTableProperties->Insert( PROP_LEFT_MARGIN, false, uno::makeAny( nLeftMargin - nGapHalf - rInfo.nLeftBorderDistance));
m_aTableProperties->getValue( TablePropertyMap::TABLE_WIDTH, nTableWidth );
if( nTableWidth > 0 )
@@ -427,22 +488,37 @@ void DomainMapperTableHandler::endTable()
//fill default value - if not available
const PropertyMap::const_iterator aRepeatIter =
- m_aTableProperties->find( PropertyDefinition( PROP_HEADER_ROW_COUNT, false ) );
+ m_aTableProperties->find( PropertyDefinition( PROP_HEADER_ROW_COUNT, false ) );
if( aRepeatIter == m_aTableProperties->end() )
m_aTableProperties->Insert( PROP_HEADER_ROW_COUNT, false, uno::makeAny( (sal_Int32)0 ));
// Remove the PROP_HEADER_ROW_COUNT from the table default to avoid
// propagating it to the cells
PropertyMap::iterator aDefaultRepeatIt =
- pTableDefaults->find( PropertyDefinition( PROP_HEADER_ROW_COUNT, false ) );
- if ( aDefaultRepeatIt != pTableDefaults->end( ) )
- pTableDefaults->erase( aDefaultRepeatIt );
+ rInfo.pTableDefaults->find( PropertyDefinition( PROP_HEADER_ROW_COUNT, false ) );
+ if ( aDefaultRepeatIt != rInfo.pTableDefaults->end( ) )
+ rInfo.pTableDefaults->erase( aDefaultRepeatIt );
+
+ rInfo.aTableProperties = m_aTableProperties->GetPropertyValues();
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("debug.tableprops");
+ dmapper_logger->addTag(m_aTableProperties->toTag());
+ dmapper_logger->endElement("debug.tableprops");
+#endif
- aTableProperties = m_aTableProperties->GetPropertyValues();
}
- // expands to uno::Sequence< Sequence< beans::PropertyValues > >
- CellPropertyValuesSeq_t aCellProperties( m_aCellProperties.size() );
+ return pTableStyle;
+}
+
+CellPropertyValuesSeq_t DomainMapperTableHandler::endTableGetCellProperties(TableInfo & rInfo)
+{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("getCellProperties");
+#endif
+
+ CellPropertyValuesSeq_t aCellProperties( m_aCellProperties.size() );
// std::vector< std::vector<PropertyMapPtr> > m_aCellProperties
PropertyMapVector2::const_iterator aRowOfCellsIterator = m_aCellProperties.begin();
@@ -467,7 +543,7 @@ void DomainMapperTableHandler::endTable()
PropertyMap::iterator pTcCnfStyleIt = pRowProps->find( PropertyDefinition( PROP_CNF_STYLE, true ) );
if ( pTcCnfStyleIt != pRowProps->end( ) )
{
- if ( pTableStyle )
+ if ( rInfo.pTableStyle )
{
rtl::OUString sMask;
pTcCnfStyleIt->second >>= sMask;
@@ -490,26 +566,26 @@ void DomainMapperTableHandler::endTable()
//aCellIterator points to a PropertyMapPtr;
if( aCellIterator->get() )
{
- if ( pTableDefaults->size( ) )
- pAllCellProps->insert( pTableDefaults );
+ if ( rInfo.pTableDefaults->size( ) )
+ pAllCellProps->insert( rInfo.pTableDefaults );
- // Fill the cell properties with the ones of the style
- sal_Int32 nCellStyleMask = 0;
- const PropertyMap::iterator aCnfStyleIter =
+ // Fill the cell properties with the ones of the style
+ sal_Int32 nCellStyleMask = 0;
+ const PropertyMap::iterator aCnfStyleIter =
aCellIterator->get()->find( PropertyDefinition( PROP_CNF_STYLE, false ) );
- if ( aCnfStyleIter != aCellIterator->get( )->end( ) )
- {
- if ( pTableStyle ) {
- rtl::OUString sMask;
- aCnfStyleIter->second >>= sMask;
- nCellStyleMask = sMask.toInt32( 2 );
+ if ( aCnfStyleIter != aCellIterator->get( )->end( ) )
+ {
+ if ( rInfo.pTableStyle ) {
+ rtl::OUString sMask;
+ aCnfStyleIter->second >>= sMask;
+ nCellStyleMask = sMask.toInt32( 2 );
+ }
+ aCellIterator->get( )->erase( aCnfStyleIter );
}
- aCellIterator->get( )->erase( aCnfStyleIter );
- }
- if ( pTableStyle )
+ if ( rInfo.pTableStyle )
{
- PropertyMapPtr pStyleProps = pTableStyle->GetProperties( nCellStyleMask + nRowStyleMask );
+ PropertyMapPtr pStyleProps = rInfo.pTableStyle->GetProperties( nCellStyleMask + nRowStyleMask );
pAllCellProps->insert( pStyleProps );
}
@@ -517,43 +593,48 @@ void DomainMapperTableHandler::endTable()
pAllCellProps->insert( *aCellIterator );
aCellIterator->get( )->swap( *pAllCellProps.get( ) );
-#if DEBUG
- clog << "Cell #" << nCell << ", Row #" << nRow << endl;
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("cell");
+ dmapper_logger->attribute("cell", nCell);
+ dmapper_logger->attribute("row", nRow);
#endif
- lcl_computeCellBorders( pTableBorders, *aCellIterator, nCell, nRow, bIsEndCol, bIsEndRow );
+ lcl_computeCellBorders( rInfo.pTableBorders, *aCellIterator, nCell, nRow, bIsEndCol, bIsEndRow );
//now set the default left+right border distance TODO: there's an sprm containing the default distance!
const PropertyMap::const_iterator aLeftDistanceIter =
- aCellIterator->get()->find( PropertyDefinition(PROP_LEFT_BORDER_DISTANCE, false) );
+ aCellIterator->get()->find( PropertyDefinition(PROP_LEFT_BORDER_DISTANCE, false) );
if( aLeftDistanceIter == aCellIterator->get()->end() )
aCellIterator->get()->Insert( PROP_LEFT_BORDER_DISTANCE, false,
- uno::makeAny(nLeftBorderDistance ) );
+ uno::makeAny(rInfo.nLeftBorderDistance ) );
const PropertyMap::const_iterator aRightDistanceIter =
- aCellIterator->get()->find( PropertyDefinition(PROP_RIGHT_BORDER_DISTANCE, false) );
+ aCellIterator->get()->find( PropertyDefinition(PROP_RIGHT_BORDER_DISTANCE, false) );
if( aRightDistanceIter == aCellIterator->get()->end() )
aCellIterator->get()->Insert( PROP_RIGHT_BORDER_DISTANCE, false,
- uno::makeAny((sal_Int32) nRightBorderDistance ) );
+ uno::makeAny((sal_Int32) rInfo.nRightBorderDistance ) );
const PropertyMap::const_iterator aTopDistanceIter =
- aCellIterator->get()->find( PropertyDefinition(PROP_TOP_BORDER_DISTANCE, false) );
+ aCellIterator->get()->find( PropertyDefinition(PROP_TOP_BORDER_DISTANCE, false) );
if( aTopDistanceIter == aCellIterator->get()->end() )
aCellIterator->get()->Insert( PROP_TOP_BORDER_DISTANCE, false,
- uno::makeAny((sal_Int32) nTopBorderDistance ) );
+ uno::makeAny((sal_Int32) rInfo.nTopBorderDistance ) );
const PropertyMap::const_iterator aBottomDistanceIter =
- aCellIterator->get()->find( PropertyDefinition(PROP_BOTTOM_BORDER_DISTANCE, false) );
+ aCellIterator->get()->find( PropertyDefinition(PROP_BOTTOM_BORDER_DISTANCE, false) );
if( aBottomDistanceIter == aCellIterator->get()->end() )
aCellIterator->get()->Insert( PROP_BOTTOM_BORDER_DISTANCE, false,
- uno::makeAny((sal_Int32) nBottomBorderDistance ) );
+ uno::makeAny((sal_Int32) rInfo.nBottomBorderDistance ) );
pSingleCellProperties[nCell] = aCellIterator->get()->GetPropertyValues();
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("cell");
+#endif
}
++nCell;
++aCellIterator;
}
-#if OSL_DEBUG_LEVEL > 1
-//-->debug cell properties
+#ifdef DEBUG_DOMAINMAPPER
+ //-->debug cell properties
{
::rtl::OUString sNames;
const uno::Sequence< beans::PropertyValues > aDebugCurrentRow = aCellProperties[nRow];
@@ -573,91 +654,101 @@ void DomainMapperTableHandler::endTable()
}
(void)sNames;
}
-//--<
+ //--<
#endif
++nRow;
++aRowOfCellsIterator;
}
-#if OSL_DEBUG_LEVEL > 1
-//-->debug cell properties of all rows
- {
- ::rtl::OUString sNames;
- for( sal_Int32 nDebugRow = 0; nDebugRow < aCellProperties.getLength(); ++nDebugRow)
- {
- const uno::Sequence< beans::PropertyValues > aDebugCurrentRow = aCellProperties[nDebugRow];
- sal_Int32 nDebugCells = aDebugCurrentRow.getLength();
- (void) nDebugCells;
- for( sal_Int32 nDebugCell = 0; nDebugCell < nDebugCells; ++nDebugCell)
- {
- const uno::Sequence< beans::PropertyValue >& aDebugCellProperties = aDebugCurrentRow[nDebugCell];
- sal_Int32 nDebugCellProperties = aDebugCellProperties.getLength();
- for( sal_Int32 nDebugProperty = 0; nDebugProperty < nDebugCellProperties; ++nDebugProperty)
- {
- const ::rtl::OUString sName = aDebugCellProperties[nDebugProperty].Name;
- sNames += sName;
- sNames += ::rtl::OUString('-');
- }
- sNames += ::rtl::OUString('+');
- }
- sNames += ::rtl::OUString('|');
- }
- (void)sNames;
- }
-//--<
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("getCellProperties");
+#endif
+
+ return aCellProperties;
+}
+
+RowPropertyValuesSeq_t DomainMapperTableHandler::endTableGetRowProperties()
+{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("getRowProperties");
#endif
- RowPropertyValuesSeq_t aRowProperties( m_aRowProperties.size() );
+ RowPropertyValuesSeq_t aRowProperties( m_aRowProperties.size() );
PropertyMapVector1::const_iterator aRowIter = m_aRowProperties.begin();
PropertyMapVector1::const_iterator aRowIterEnd = m_aRowProperties.end();
- nRow = 0;
+ sal_Int32 nRow = 0;
while( aRowIter != aRowIterEnd )
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("rowProps.row");
+#endif
if( aRowIter->get() )
{
//set default to 'break across pages"
if( aRowIter->get()->find( PropertyDefinition( PROP_IS_SPLIT_ALLOWED, false )) == aRowIter->get()->end())
aRowIter->get()->Insert( PROP_IS_SPLIT_ALLOWED, false, uno::makeAny(sal_True ) );
- aRowProperties[nRow] = aRowIter->get()->GetPropertyValues();
+ aRowProperties[nRow] = (*aRowIter)->GetPropertyValues();
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->addTag((*aRowIter)->toTag());
+ dmapper_logger->addTag(lcl_PropertyValuesToTag(aRowProperties[nRow]));
+#endif
}
++nRow;
++aRowIter;
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("rowProps.row");
+#endif
}
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("getRowProperties");
+#endif
+
+ return aRowProperties;
+}
+
+void DomainMapperTableHandler::endTable()
+{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("tablehandler.endTable");
+#endif
+
+ TableInfo aTableInfo;
+ aTableInfo.pTableStyle = endTableGetTableStyle(aTableInfo);
+ // expands to uno::Sequence< Sequence< beans::PropertyValues > >
+
+ CellPropertyValuesSeq_t aCellProperties = endTableGetCellProperties(aTableInfo);
+
+ RowPropertyValuesSeq_t aRowProperties = endTableGetRowProperties();
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->addTag(lcl_PropertyValueSeqToTag(aRowProperties));
+#endif
+
if (m_pTableSeq->getLength() > 0)
{
try
{
-#if OSL_DEBUG_LEVEL > 1
- {
- sal_Int32 nCellPropertiesRows = aCellProperties.getLength();
- sal_Int32 nCellPropertiesCells = aCellProperties[0].getLength();
- sal_Int32 nCellPropertiesProperties = aCellProperties[0][0].getLength();
- (void) nCellPropertiesRows;
- (void) nCellPropertiesCells;
- (void) nCellPropertiesProperties;
- ++nCellPropertiesProperties;
- }
- clog << "Converting table" << endl;
-#endif
-
uno::Reference<text::XTextTable> xTable = m_xText->convertToTable(*m_pTableSeq,
aCellProperties,
aRowProperties,
- aTableProperties);
+ aTableInfo.aTableProperties);
m_xTableRange = xTable->getAnchor( );
}
catch (lang::IllegalArgumentException e)
{
-#if OSL_DEBUG_LEVEL > 1
- clog << "failed to import table!" << endl;
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->chars("failed to import table!");
#endif
}
-#if OSL_DEBUG_LEVEL > 1
+#ifdef DEBUG_DOMAINMAPPER
catch ( uno::Exception e )
{
- clog << "Caught an other exception: " << rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_UTF8 ).getStr( ) << endl;
+ dmapper_logger->startElement("exception");
+ dmapper_logger->chars(rtl::OUStringToOString( e.Message, RTL_TEXTENCODING_UTF8 ).getStr( ));
+ dmapper_logger->endElement("exeception");
}
#endif
}
@@ -665,6 +756,11 @@ void DomainMapperTableHandler::endTable()
m_aTableProperties.reset();
m_aCellProperties.clear();
m_aRowProperties.clear();
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("tablehandler.endTable");
+ dmapper_logger->endElement("tablehandler.table");
+#endif
}
void DomainMapperTableHandler::startRow(unsigned int nCells,
@@ -673,12 +769,11 @@ void DomainMapperTableHandler::startRow(unsigned int nCells,
m_aRowProperties.push_back( pProps );
m_aCellProperties.push_back( PropertyMapVector1() );
-#if OSL_DEBUG_LEVEL > 1
- char sBuffer[256];
- snprintf(sBuffer, sizeof(sBuffer), "%d", nCells);
-
- clog << "<table.row cells=\"" << sBuffer << "\">" << endl;
- lcl_printProperties( pProps );
+#if DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("table.row");
+ dmapper_logger->attribute("cells", nCells);
+ if (pProps != NULL)
+ dmapper_logger->addTag(pProps->toTag());
#endif
m_pRowSeq = RowSequencePointer_t(new RowSequence_t(nCells));
@@ -690,8 +785,8 @@ void DomainMapperTableHandler::endRow()
(*m_pTableSeq)[m_nRowIndex] = *m_pRowSeq;
++m_nRowIndex;
m_nCellIndex = 0;
-#if OSL_DEBUG_LEVEL > 1
- clog << "</table.row>" << endl;
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("table.row");
#endif
}
@@ -709,11 +804,12 @@ void DomainMapperTableHandler::startCell(const Handle_t & start,
m_aCellProperties[nRow - 1].push_back( pEmptyProps );
}
-#if OSL_DEBUG_LEVEL > 1
- clog << "<table.cell>";
- lcl_printHandle(start);
+#if DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("table.cell");
+ dmapper_logger->startElement("table.cell.start");
+ dmapper_logger->chars(toString(start));
+ dmapper_logger->endElement("table.cell.start");
lcl_printProperties( pProps );
- clog << ",";
#endif
//add a new 'row' of properties
@@ -728,8 +824,11 @@ void DomainMapperTableHandler::startCell(const Handle_t & start,
void DomainMapperTableHandler::endCell(const Handle_t & end)
{
-#if OSL_DEBUG_LEVEL > 1
- lcl_printHandle(end);
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("table.cell.end");
+ dmapper_logger->chars(toString(end));
+ dmapper_logger->endElement("table.cell.end");
+ dmapper_logger->endElement("table.cell");
clog << "</table.cell>" << endl;
#endif
diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.hxx b/writerfilter/source/dmapper/DomainMapperTableHandler.hxx
index a71475f6eaa1..b5a1628a0725 100644
--- a/writerfilter/source/dmapper/DomainMapperTableHandler.hxx
+++ b/writerfilter/source/dmapper/DomainMapperTableHandler.hxx
@@ -54,6 +54,8 @@ typedef std::vector<PropertyMapPtr> PropertyMapVector1;
typedef std::vector<PropertyMapVector1> PropertyMapVector2;
class DomainMapper_Impl;
+class TableStyleSheetEntry;
+struct TableInfo;
class DomainMapperTableHandler : public TableDataHandler<Handle_t , TablePropertyMapPtr >
{
TextReference_t m_xText;
@@ -72,6 +74,10 @@ class DomainMapperTableHandler : public TableDataHandler<Handle_t , TablePropert
sal_Int32 m_nCellIndex;
sal_Int32 m_nRowIndex;
+ TableStyleSheetEntry * endTableGetTableStyle(TableInfo & rInfo);
+ CellPropertyValuesSeq_t endTableGetCellProperties(TableInfo & rInfo);
+ RowPropertyValuesSeq_t endTableGetRowProperties();
+
public:
typedef boost::shared_ptr<DomainMapperTableHandler> Pointer_t;
diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.cxx b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
index f49bf9ea93b1..452391fe6300 100644
--- a/writerfilter/source/dmapper/DomainMapperTableManager.cxx
+++ b/writerfilter/source/dmapper/DomainMapperTableManager.cxx
@@ -38,6 +38,7 @@
#include <com/sun/star/text/VertOrientation.hpp>
#include <ooxml/resourceids.hxx>
#include <doctok/sprmids.hxx>
+#include <dmapperLoggers.hxx>
namespace writerfilter {
namespace dmapper {
@@ -50,6 +51,7 @@ using namespace ::std;
DomainMapperTableManager::DomainMapperTableManager(bool bOOXML) :
m_nRow(0),
m_nCell(0),
+ m_nGridSpan(1),
m_nCellBorderIndex(0),
m_nHeaderRepeat(0),
m_nTableWidth(0),
@@ -57,6 +59,12 @@ DomainMapperTableManager::DomainMapperTableManager(bool bOOXML) :
m_pTablePropsHandler( new TablePropertiesHandler( bOOXML ) )
{
m_pTablePropsHandler->SetTableManager( this );
+
+#ifdef DEBUG_DOMAINMAPPER
+#ifdef DEBUG_TABLE
+ setTagLogger(dmapper_logger);
+#endif
+#endif
}
/*-- 23.04.2007 14:57:49---------------------------------------------------
@@ -71,6 +79,12 @@ DomainMapperTableManager::~DomainMapperTableManager()
-----------------------------------------------------------------------*/
bool DomainMapperTableManager::sprm(Sprm & rSprm)
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("tablemanager.sprm");
+ string sSprm = rSprm.toString();
+ dmapper_logger->chars(sSprm);
+ dmapper_logger->endElement("tablemanager.sprm");
+#endif
bool bRet = DomainMapperTableManager_Base_t::sprm(rSprm);
if( !bRet )
{
@@ -111,6 +125,9 @@ bool DomainMapperTableManager::sprm(Sprm & rSprm)
if( m_nTableWidth )
pPropMap->setValue( TablePropertyMap::TABLE_WIDTH, m_nTableWidth );
}
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->addTag(pPropMap->toTag());
+#endif
insertTableProps(pPropMap);
}
}
@@ -239,18 +256,12 @@ bool DomainMapperTableManager::sprm(Sprm & rSprm)
/* WRITERFILTERSTATUS: done: 1, planned: 2, spent: 0 */
case NS_ooxml::LN_CT_TcPrBase_gridSpan: //number of grid positions spanned by this cell
{
-#if DEBUG
- clog << "GridSpan: " << nIntValue << endl;
+#if DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("tablemanager.GridSpan");
+ dmapper_logger->attribute("gridSpan", nIntValue);
+ dmapper_logger->endElement("tablemanager.GridSpan");
#endif
- //the cell width is determined by its position in the table grid
- //it takes 'gridSpan' grid elements
- IntVectorPtr pCurrentSpans = getCurrentSpans( );
- if( pCurrentSpans->size() < m_nCell)
- {
- //fill missing elements with '1'
- pCurrentSpans->insert( pCurrentSpans->end(), m_nCell - pCurrentSpans->size(), 1 );
- }
- pCurrentSpans->push_back( nIntValue );
+ m_nGridSpan = nIntValue;
}
break;
/* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */
@@ -276,13 +287,12 @@ bool DomainMapperTableManager::sprm(Sprm & rSprm)
cellProps( pProps );
}
break;
- case NS_ooxml::LN_tblStart:
- {
- startLevel( );
- }
- break;
default:
bRet = false;
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->element("unhandled");
+#endif
}
}
return bRet;
@@ -313,8 +323,17 @@ void DomainMapperTableManager::endLevel( )
{
m_aTableGrid.pop_back( );
m_aGridSpans.pop_back( );
+ m_nTableWidth = 0;
DomainMapperTableManager_Base_t::endLevel( );
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("dmappertablemanager.endLevel");
+ PropertyMapPtr pProps = getTableProps();
+ if (pProps.get() != NULL)
+ dmapper_logger->addTag(getTableProps()->toTag());
+
+ dmapper_logger->endElement("dmappertablemanager.endLevel");
+#endif
}
/*-- 02.05.2007 14:36:26---------------------------------------------------
@@ -322,6 +341,12 @@ void DomainMapperTableManager::endLevel( )
-----------------------------------------------------------------------*/
void DomainMapperTableManager::endOfCellAction()
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->element("endOFCellAction");
+#endif
+
+ getCurrentSpans()->push_back(m_nGridSpan);
+ m_nGridSpan = 1;
++m_nCell;
}
/*-- 02.05.2007 14:36:26---------------------------------------------------
@@ -329,12 +354,30 @@ void DomainMapperTableManager::endOfCellAction()
-----------------------------------------------------------------------*/
void DomainMapperTableManager::endOfRowAction()
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("endOfRowAction");
+#endif
+
IntVectorPtr pTableGrid = getCurrentGrid( );
if(!m_nTableWidth && pTableGrid->size())
{
::std::vector<sal_Int32>::const_iterator aCellIter = pTableGrid->begin();
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("tableWidth");
+#endif
+
while( aCellIter != pTableGrid->end() )
+ {
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("col");
+ dmapper_logger->attribute("width", *aCellIter);
+ dmapper_logger->endElement("col");
+#endif
+
m_nTableWidth += *aCellIter++;
+ }
+
if( m_nTableWidth > 0)
{
TablePropertyMapPtr pPropMap( new TablePropertyMap );
@@ -342,6 +385,10 @@ void DomainMapperTableManager::endOfRowAction()
pPropMap->setValue( TablePropertyMap::TABLE_WIDTH, m_nTableWidth );
insertTableProps(pPropMap);
}
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("tableWidth");
+#endif
}
IntVectorPtr pCurrentSpans = getCurrentSpans( );
@@ -350,6 +397,25 @@ void DomainMapperTableManager::endOfRowAction()
//fill missing elements with '1'
pCurrentSpans->insert( pCurrentSpans->end( ), m_nCell - pCurrentSpans->size(), 1 );
}
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("gridSpans");
+ {
+ ::std::vector<sal_Int32>::const_iterator aGridSpanIter = pCurrentSpans->begin();
+ ::std::vector<sal_Int32>::const_iterator aGridSpanIterEnd = pCurrentSpans->end();
+
+ while (aGridSpanIter != aGridSpanIterEnd)
+ {
+ dmapper_logger->startElement("gridSpan");
+ dmapper_logger->attribute("span", *aGridSpanIter);
+ dmapper_logger->endElement("gridSpan");
+
+ aGridSpanIter++;
+ }
+ }
+ dmapper_logger->endElement("gridSpans");
+#endif
+
//calculate number of used grids - it has to match the size of m_aTableGrid
size_t nGrids = 0;
::std::vector<sal_Int32>::const_iterator aGridSpanIter = pCurrentSpans->begin();
@@ -387,6 +453,12 @@ void DomainMapperTableManager::endOfRowAction()
}
TablePropertyMapPtr pPropMap( new TablePropertyMap );
pPropMap->Insert( PROP_TABLE_COLUMN_SEPARATORS, false, uno::makeAny( aSeparators ) );
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("rowProperties");
+ dmapper_logger->addTag(pPropMap->toTag());
+ dmapper_logger->endElement("rowProperties");
+#endif
insertRowProps(pPropMap);
}
@@ -394,6 +466,10 @@ void DomainMapperTableManager::endOfRowAction()
m_nCell = 0;
m_nCellBorderIndex = 0;
pCurrentSpans->clear();
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("endOfRowAction");
+#endif
}
/*-- 18.06.2007 10:34:37---------------------------------------------------
@@ -442,4 +518,6 @@ void DomainMapperTableManager::CopyTextProperties(PropertyMapPtr pContext, Style
}
pContext->insert( m_pTableStyleTextProperies );
}
+
+
}}
diff --git a/writerfilter/source/dmapper/DomainMapperTableManager.hxx b/writerfilter/source/dmapper/DomainMapperTableManager.hxx
index 3d1e7f66effa..8f4fa082881e 100644
--- a/writerfilter/source/dmapper/DomainMapperTableManager.hxx
+++ b/writerfilter/source/dmapper/DomainMapperTableManager.hxx
@@ -44,6 +44,7 @@ class DomainMapperTableManager : public DomainMapperTableManager_Base_t
sal_uInt32 m_nRow;
sal_uInt32 m_nCell;
+ sal_uInt32 m_nGridSpan;
sal_uInt32 m_nCellBorderIndex; //borders are provided for all cells and need counting
sal_Int32 m_nHeaderRepeat; //counter of repeated headers - if == -1 then the repeating stops
sal_Int32 m_nTableWidth; //might be set directly or has to be calculated from the column positions
@@ -114,6 +115,7 @@ public:
else
DomainMapperTableManager_Base_t::insertTableProps( pProps );
};
+
};
}}
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 596682cf9b46..4d9a9bd83c35 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -74,6 +74,7 @@
#ifdef DEBUG_DOMAINMAPPER
#include <resourcemodel/QNameToString.hxx>
#include <resourcemodel/util.hxx>
+#include <dmapperLoggers.hxx>
#endif
#include <ooxml/OOXMLFastTokens.hxx>
@@ -419,15 +420,12 @@ DomainMapper_Impl::DomainMapper_Impl(
TableDataHandler_t::Pointer_t pTableHandler
(new DomainMapperTableHandler(xBodyTextAppendAndConvert, *this));
m_TableManager.setHandler(pTableHandler);
-
- m_TableManager.startLevel();
}
/*-- 01.09.2006 10:22:28---------------------------------------------------
-----------------------------------------------------------------------*/
DomainMapper_Impl::~DomainMapper_Impl()
{
- m_TableManager.endLevel();
}
/*-------------------------------------------------------------------------
@@ -843,14 +841,20 @@ void lcl_AddRangeAndStyle(
void DomainMapper_Impl::finishParagraph( PropertyMapPtr pPropertyMap )
{
-#if DEBUG
- clog << "finishParagraph" << endl;
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("finishParagraph");
#endif
ParagraphPropertyMap* pParaContext = dynamic_cast< ParagraphPropertyMap* >( pPropertyMap.get() );
TextAppendContext& rAppendContext = m_aTextAppendStack.top();
uno::Reference< text::XTextAppend > xTextAppend = rAppendContext.xTextAppend;
PropertyNameSupplier& rPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier();
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->attribute("isTextAppend", xTextAppend.is());
+ dmapper_logger->attribute("isIgnor", m_TableManager.isIgnore());
+#endif
+
if(xTextAppend.is() && ! m_TableManager.isIgnore())
{
try
@@ -1096,6 +1100,10 @@ void DomainMapper_Impl::finishParagraph( PropertyMapPtr pPropertyMap )
//OSL_ENSURE( false, "ArgumentException in DomainMapper_Impl::finishParagraph" );
}
}
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("finishParagraph");
+#endif
}
/*-------------------------------------------------------------------------
@@ -1359,7 +1367,7 @@ void DomainMapper_Impl::PushFootOrEndnote( bool bIsFootnote )
uno::Sequence< beans::PropertyValue > aFontProperties;
if( pFontTable && pTopContext->GetFootnoteFontId() >= 0 && pFontTable->size() > (size_t)pTopContext->GetFootnoteFontId() )
{
- const FontEntry* pFontEntry = pFontTable->getFontEntry(sal_uInt32(pTopContext->GetFootnoteFontId()));
+ const FontEntry::Pointer_t pFontEntry(pFontTable->getFontEntry(sal_uInt32(pTopContext->GetFootnoteFontId())));
PropertyMapPtr aFontProps( new PropertyMap );
aFontProps->Insert(PROP_CHAR_FONT_NAME, true, uno::makeAny( pFontEntry->sFontName ));
aFontProps->Insert(PROP_CHAR_FONT_CHAR_SET, true, uno::makeAny( (sal_Int16)pFontEntry->nTextEncoding ));
@@ -3719,4 +3727,23 @@ void DomainMapper_Impl::ResetParaRedline( )
}
}
+/*-- 22.09.2009 10:26:19---------------------------------------------------
+
+-----------------------------------------------------------------------*/
+void DomainMapper_Impl::ApplySettingsTable()
+{
+ if( m_pSettingsTable )
+ {
+ try
+ {
+ uno::Reference< beans::XPropertySet > xTextDefaults(
+ m_xTextFactory->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.Defaults"))), uno::UNO_QUERY_THROW );
+ sal_Int32 nDefTab = m_pSettingsTable->GetDefaultTabStop();
+ xTextDefaults->setPropertyValue( PropertyNameSupplier::GetPropertyNameSupplier().GetName( PROP_TAB_STOP_DISTANCE ), uno::makeAny(nDefTab) );
+ }
+ catch(const uno::Exception& )
+ {
+ }
+ }
+}
}}
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx
index ae0dec6e1e54..d5493440ea48 100644..100755
--- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx
@@ -48,6 +48,7 @@
#include <ListTable.hxx>
#include <LFOTable.hxx>
#include <StyleSheetTable.hxx>
+#include <SettingsTable.hxx>
#include <ThemeTable.hxx>
#include <SettingsTable.hxx>
#include <GraphicImport.hxx>
@@ -306,8 +307,9 @@ private:
LFOTablePtr m_pLFOTable;
StyleSheetTablePtr m_pStyleSheetTable;
ThemeTablePtr m_pThemeTable;
- GraphicImportPtr m_pGraphicImport;
SettingsTablePtr m_pSettingsTable;
+ GraphicImportPtr m_pGraphicImport;
+
PropertyMapPtr m_pTopContext;
@@ -433,10 +435,10 @@ public:
return m_pThemeTable;
}
- SettingsTablePtr GetSettingsTable( )
+ SettingsTablePtr GetSettingsTable()
{
- if ( !m_pSettingsTable )
- m_pSettingsTable.reset( new SettingsTable );
+ if( !m_pSettingsTable )
+ m_pSettingsTable.reset( new SettingsTable( m_rDMapper, m_xTextFactory ) );
return m_pSettingsTable;
}
@@ -533,6 +535,8 @@ public:
void RemoveCurrentRedline( );
void ResetParaRedline( );
+ void ApplySettingsTable();
+
};
} //namespace dmapper
} //namespace writerfilter
diff --git a/writerfilter/source/dmapper/FontTable.cxx b/writerfilter/source/dmapper/FontTable.cxx
index c5a800769078..20f3d602156b 100644
--- a/writerfilter/source/dmapper/FontTable.cxx
+++ b/writerfilter/source/dmapper/FontTable.cxx
@@ -39,10 +39,9 @@ namespace dmapper
struct FontTable_Impl
{
- std::vector< FontEntry > aFontEntries;
- FontEntry* pCurrentEntry;
- FontTable_Impl() :
- pCurrentEntry(0){}
+ std::vector< FontEntry > aFontEntries;
+ FontEntry::Pointer_t pCurrentEntry;
+ FontTable_Impl() {}
};
/*-- 19.06.2006 12:04:32---------------------------------------------------
@@ -494,14 +493,14 @@ void FontTable::attribute(Id Name, Value & val)
// case NS_rtf::LN_LFO: break;
case NS_rtf::LN_F:
break;
- /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
case NS_rtf::LN_ALTFONTNAME:
+ /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
m_pImpl->pCurrentEntry->sAlternativeFont = sValue;
break;
- /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
case NS_rtf::LN_XSZFFN:
- /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
+ /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Font_name:
+ /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
m_pImpl->pCurrentEntry->sFontName = sValue;
break;
// case NS_rtf::LN_XSTZNAME: break;
@@ -566,11 +565,11 @@ void FontTable::entry(int /*pos*/, writerfilter::Reference<Properties>::Pointer_
{
//create a new font entry
OSL_ENSURE( !m_pImpl->pCurrentEntry, "current entry has to be NULL here");
- m_pImpl->pCurrentEntry = new FontEntry ;
+ m_pImpl->pCurrentEntry.reset(new FontEntry);
ref->resolve(*this);
//append it to the table
m_pImpl->aFontEntries.push_back( *m_pImpl->pCurrentEntry );
- m_pImpl->pCurrentEntry = 0;
+ m_pImpl->pCurrentEntry.reset();
}
/*-- 19.06.2006 12:04:34---------------------------------------------------
@@ -656,12 +655,12 @@ void FontTable::endShape( )
/*-- 21.06.2006 11:21:38---------------------------------------------------
-----------------------------------------------------------------------*/
-const FontEntry* FontTable::getFontEntry(sal_uInt32 nIndex)
+const FontEntry::Pointer_t FontTable::getFontEntry(sal_uInt32 nIndex)
{
- const FontEntry* pRet = 0;
+ FontEntry::Pointer_t pRet;
if(m_pImpl->aFontEntries.size() > nIndex)
{
- pRet = &m_pImpl->aFontEntries[nIndex];
+ pRet.reset(&m_pImpl->aFontEntries[nIndex]);
}
return pRet;
}
diff --git a/writerfilter/source/dmapper/FontTable.hxx b/writerfilter/source/dmapper/FontTable.hxx
index f63d0cf0ee1a..a2fa967d85fe 100644
--- a/writerfilter/source/dmapper/FontTable.hxx
+++ b/writerfilter/source/dmapper/FontTable.hxx
@@ -28,6 +28,7 @@
#ifndef INCLUDED_FONTTABLE_HXX
#define INCLUDED_FONTTABLE_HXX
+#include <boost/shared_ptr.hpp>
#include <WriterFilterDllApi.hxx>
#include <resourcemodel/WW8ResourceModel.hxx>
#include <com/sun/star/lang/XComponent.hpp>
@@ -39,6 +40,8 @@ namespace dmapper
struct FontTable_Impl;
struct FontEntry
{
+ typedef boost::shared_ptr<FontEntry> Pointer_t;
+
::rtl::OUString sFontName;
::rtl::OUString sFontName1;
bool bTrueType;
@@ -97,7 +100,7 @@ public:
virtual void startShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape );
virtual void endShape( );
- const FontEntry* getFontEntry(sal_uInt32 nIndex);
+ const FontEntry::Pointer_t getFontEntry(sal_uInt32 nIndex);
sal_uInt32 size();
};
typedef boost::shared_ptr< FontTable > FontTablePtr;
diff --git a/writerfilter/source/dmapper/GraphicImport.cxx b/writerfilter/source/dmapper/GraphicImport.cxx
index 308ce90ace65..c8d94f8302c2 100644
--- a/writerfilter/source/dmapper/GraphicImport.cxx
+++ b/writerfilter/source/dmapper/GraphicImport.cxx
@@ -379,46 +379,40 @@ void GraphicImport::attribute(Id nName, Value & val)
/* WRITERFILTERSTATUS: table: PICFattribute */
switch( nName )
{
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_LCB: break;//byte count
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_CBHEADER: break;//ignored
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_MFP: //MetafilePict
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_DffRecord: //dff record - expands to an sprm which expands to ...
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_shpopt: //shape options
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_shpfbse: //BLIP store entry
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_BRCTOP: //top border
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_BRCLEFT: //left border
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_BRCBOTTOM: //bottom border
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_BRCRIGHT: //right border
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_shape: //shape
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_blip: //the binary graphic data in a shape
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
{
switch(nName)
{
case NS_rtf::LN_BRCTOP: //top border
+ /* WRITERFILTERSTATUS: */
m_pImpl->nCurrentBorderLine = BORDER_TOP;
break;
case NS_rtf::LN_BRCLEFT: //left border
+ /* WRITERFILTERSTATUS: */
m_pImpl->nCurrentBorderLine = BORDER_LEFT;
break;
case NS_rtf::LN_BRCBOTTOM: //bottom border
+ /* WRITERFILTERSTATUS: */
m_pImpl->nCurrentBorderLine = BORDER_BOTTOM;
break;
case NS_rtf::LN_BRCRIGHT: //right border
+ /* WRITERFILTERSTATUS: */
m_pImpl->nCurrentBorderLine = BORDER_RIGHT;
break;
case NS_rtf::LN_shpopt:
+ /* WRITERFILTERSTATUS: */
m_pImpl->bInShapeOptionMode = true;
break;
default:;
@@ -431,6 +425,7 @@ void GraphicImport::attribute(Id nName, Value & val)
switch(nName)
{
case NS_rtf::LN_shpopt:
+ /* WRITERFILTERSTATUS: */
m_pImpl->bInShapeOptionMode = false;
break;
default:;
@@ -438,80 +433,97 @@ void GraphicImport::attribute(Id nName, Value & val)
}
break;
case NS_rtf::LN_payload :
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
{
writerfilter::Reference<BinaryObj>::Pointer_t pPictureData = val.getBinary();
if( pPictureData.get())
pPictureData->resolve(*this);
}
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
case NS_rtf::LN_BM_RCWINMF: //windows bitmap structure - if it's a bitmap
+ /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_DXAGOAL: //x-size in twip
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_DYAGOAL: //y-size in twip
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_MX: m_pImpl->nHoriScaling = nIntValue; break;// hori scaling in 0.001%
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_MY: m_pImpl->nVertScaling = nIntValue; break;// vert scaling in 0.001%
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_DXACROPLEFT: m_pImpl->nLeftCrop = ConversionHelper::convertTwipToMM100(nIntValue); break;// left crop in twips
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_DYACROPTOP: m_pImpl->nTopCrop = ConversionHelper::convertTwipToMM100(nIntValue); break;// top crop in twips
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_DXACROPRIGHT: m_pImpl->nRightCrop = ConversionHelper::convertTwipToMM100(nIntValue); break;// right crop in twips
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_DYACROPBOTTOM: m_pImpl->nBottomCrop = ConversionHelper::convertTwipToMM100(nIntValue); break;// bottom crop in twips
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_BRCL: break;//border type - legacy -
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_FFRAMEEMPTY: break;// picture consists of a single frame
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_rtf::LN_MX:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nHoriScaling = nIntValue;
+ break;// hori scaling in 0.001%
+ case NS_rtf::LN_MY:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nVertScaling = nIntValue;
+ break;// vert scaling in 0.001%
+ case NS_rtf::LN_DXACROPLEFT:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nLeftCrop = ConversionHelper::convertTwipToMM100(nIntValue);
+ break;// left crop in twips
+ case NS_rtf::LN_DYACROPTOP:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nTopCrop = ConversionHelper::convertTwipToMM100(nIntValue);
+ break;// top crop in twips
+ case NS_rtf::LN_DXACROPRIGHT:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nRightCrop = ConversionHelper::convertTwipToMM100(nIntValue);
+ break;// right crop in twips
+ case NS_rtf::LN_DYACROPBOTTOM:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nBottomCrop = ConversionHelper::convertTwipToMM100(nIntValue);
+ break;// bottom crop in twips
+ case NS_rtf::LN_BRCL:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;//border type - legacy -
+ case NS_rtf::LN_FFRAMEEMPTY:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;// picture consists of a single frame
case NS_rtf::LN_FBITMAP:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
m_pImpl->bIsBitmap = nIntValue > 0 ? true : false;
break;//1 if it's a bitmap ???
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_FDRAWHATCH: break;//1 if it's an active OLE object
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_FERROR: break;// 1 if picture is an error message
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_BPP: m_pImpl->nBitsPerPixel = nIntValue; break;//bits per pixel 0 - unknown, 1- mono, 4 - VGA
+ case NS_rtf::LN_FDRAWHATCH:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;//1 if it's an active OLE object
+ case NS_rtf::LN_FERROR:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;// 1 if picture is an error message
+ case NS_rtf::LN_BPP:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nBitsPerPixel = nIntValue;
+ break;//bits per pixel 0 - unknown, 1- mono, 4 - VGA
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_DXAORIGIN: //horizontal offset of hand annotation origin
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_DYAORIGIN: //vertical offset of hand annotation origin
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_CPROPS:break;// unknown - ignored
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
//metafilepict
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_MM:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
// according to the documentation 99 or 98 are provided - but they are not!
// m_pImpl->bIsBitmap = 99 == nIntValue ? true : false;
// m_pImpl->bIsTiff = 98 == nIntValue ? true : false;
break; //mapmode
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_XEXT:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->setXSize(nIntValue);
break; // x-size
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_YEXT:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->setYSize(nIntValue);
break; // y-size
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_HMF: break; //identifier - ignored
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
//sprm 0xf004 and 0xf008, 0xf00b
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_dfftype://
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
m_pImpl->nDffType = nIntValue;
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_dffinstance:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
//todo: does this still work for PICF?
//in case of LN_dfftype == 0xf01f the instance contains the bitmap type:
if(m_pImpl->nDffType == 0xf01f)
@@ -549,62 +561,80 @@ void GraphicImport::attribute(Id nName, Value & val)
}
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_dffversion:// ignored
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
break;
//sprm 0xf008
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shptype: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpid: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpfGroup: break;// This shape is a group shape
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpfChild: break;// Not a top-level shape
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpfPatriarch: break;// This is the topmost group shape. Exactly one of these per drawing.
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpfDeleted: break;// The shape has been deleted
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpfOleShape: break;// The shape is an OLE object
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpfHaveMaster: break;// Shape has a hspMaster property
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ case NS_rtf::LN_shptype:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+ case NS_rtf::LN_shpid:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+ case NS_rtf::LN_shpfGroup:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;// This shape is a group shape
+ case NS_rtf::LN_shpfChild:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;// Not a top-level shape
+ case NS_rtf::LN_shpfPatriarch:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;// This is the topmost group shape. Exactly one of these per drawing.
+ case NS_rtf::LN_shpfDeleted:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;// The shape has been deleted
+ case NS_rtf::LN_shpfOleShape:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;// The shape is an OLE object
+ case NS_rtf::LN_shpfHaveMaster:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;// Shape has a hspMaster property
case NS_rtf::LN_shpfFlipH: // Shape is flipped horizontally
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->bHoriFlip = nIntValue ? true : false;
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_shpfFlipV: // Shape is flipped vertically
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->bVertFlip = nIntValue ? true : false;
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpfConnector: break;// Connector type of shape
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpfHaveAnchor: break;// Shape has an anchor of some kind
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpfBackground: break;// Background shape
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpfHaveSpt: break;// Shape has a shape type property
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shptypename: break;// shape type name
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_shppid: m_pImpl->nShapeOptionType = nIntValue; break; //type of shape option
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_shpfBid: break; //ignored
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpfComplex:break;
- /* WRITERFILTERSTATUS: done: 50, planned: 10, spent: 5 */
+ case NS_rtf::LN_shpfConnector:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;// Connector type of shape
+ case NS_rtf::LN_shpfHaveAnchor:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;// Shape has an anchor of some kind
+ case NS_rtf::LN_shpfBackground:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;// Background shape
+ case NS_rtf::LN_shpfHaveSpt:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;// Shape has a shape type property
+ case NS_rtf::LN_shptypename:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;// shape type name
+ case NS_rtf::LN_shppid:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nShapeOptionType = nIntValue;
+ break; //type of shape option
+ case NS_rtf::LN_shpfBid:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ break; //ignored
+ case NS_rtf::LN_shpfComplex:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
case NS_rtf::LN_shpop:
+ /* WRITERFILTERSTATUS: done: 50, planned: 10, spent: 5 */
{
if(NS_dff::LN_shpwzDescription != sal::static_int_cast<Id>(m_pImpl->nShapeOptionType) )
ProcessShapeOptions( val );
}
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpname: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_rtf::LN_shpname:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
case NS_rtf::LN_shpvalue:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
{
if( NS_dff::LN_shpwzDescription == sal::static_int_cast<Id>(m_pImpl->nShapeOptionType) )
ProcessShapeOptions( val );
@@ -612,95 +642,94 @@ void GraphicImport::attribute(Id nName, Value & val)
break;
//BLIP store entry
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpbtWin32: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpbtMacOS: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shprgbUid: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shptag: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpsize: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpcRef: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpfoDelay: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpusage: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpcbName: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpunused2: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpunused3: break;
+ case NS_rtf::LN_shpbtWin32:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+ case NS_rtf::LN_shpbtMacOS:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+ case NS_rtf::LN_shprgbUid:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+ case NS_rtf::LN_shptag:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+ case NS_rtf::LN_shpsize:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+ case NS_rtf::LN_shpcRef:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+ case NS_rtf::LN_shpfoDelay:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+ case NS_rtf::LN_shpusage:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+ case NS_rtf::LN_shpcbName:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+ case NS_rtf::LN_shpunused2:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+ case NS_rtf::LN_shpunused3:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
//border properties
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_shpblipbname : break;
+ case NS_rtf::LN_shpblipbname :
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
- /* WRITERFILTERSTATUS: done: 100, planned: 1, spent: 1 */
case NS_rtf::LN_DPTLINEWIDTH: // 0x1759
+ /* WRITERFILTERSTATUS: done: 100, planned: 1, spent: 1 */
m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].nLineWidth = nIntValue;
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_BRCTYPE: // 0x175a
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
//graphic borders don't support different line types
//m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].nLineType = nIntValue;
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 1, spent: 1 */
case NS_rtf::LN_ICO: // 0x175b
+ /* WRITERFILTERSTATUS: done: 100, planned: 1, spent: 1 */
m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].nLineColor = ConversionHelper::ConvertColor( nIntValue );
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 1, spent: 1 */
case NS_rtf::LN_DPTSPACE: // 0x175c
+ /* WRITERFILTERSTATUS: done: 100, planned: 1, spent: 1 */
m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].nLineDistance = nIntValue;
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 1, spent: 0 */
case NS_rtf::LN_FSHADOW: // 0x175d
+ /* WRITERFILTERSTATUS: done: 0, planned: 1, spent: 0 */
m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].bHasShadow = nIntValue ? true : false;
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_FFRAME: // ignored
/* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_UNUSED2_15: break;// ignored
-
-// const QName_t LN_shpoptextraoffset = 20028;
-// const QName_t LN_shptypename = 20029;
-// const QName_t LN_shpblipbname = 20031;
-// const QName_t LN_binary = 20032;
-
-
-
-// case NS_rtf::LN_shpblipbname = 20031;
-// case NS_rtf::LN_binary = 20032;
-// case NS_rtf::LN_shpdgg = 10492;
-// case NS_rtf::LN_shpfbse = 10493;
-
-
-// case NS_rtf::LN_CPROPS: //unused
-
-
-
-// case NS_rtf::LN_LINECOLOR = 10372;
-// case NS_rtf::LN_LINEWIDTH = 10373;
-// case NS_rtf::LN_LINETYPE = 10374;
-
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_SPID: break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_XALEFT: m_pImpl->nLeftPosition = ConversionHelper::convertTwipToMM100(nIntValue); break; //left position
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_YATOP: m_pImpl->nTopPosition = ConversionHelper::convertTwipToMM100(nIntValue); break; //top position
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_XARIGHT: m_pImpl->nRightPosition = ConversionHelper::convertTwipToMM100(nIntValue); break; //right position
+ case NS_rtf::LN_UNUSED2_15: // ignored
/* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_YABOTTOM: m_pImpl->nBottomPosition = ConversionHelper::convertTwipToMM100(nIntValue); break;//bottom position
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+
+ case NS_rtf::LN_SPID:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break;
+ case NS_rtf::LN_XALEFT:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nLeftPosition = ConversionHelper::convertTwipToMM100(nIntValue);
+ break; //left position
+ case NS_rtf::LN_YATOP:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nTopPosition = ConversionHelper::convertTwipToMM100(nIntValue);
+ break; //top position
+ case NS_rtf::LN_XARIGHT:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nRightPosition = ConversionHelper::convertTwipToMM100(nIntValue);
+ break; //right position
+ case NS_rtf::LN_YABOTTOM:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nBottomPosition = ConversionHelper::convertTwipToMM100(nIntValue);
+ break;//bottom position
case NS_rtf::LN_FHDR:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_XAlign:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
/*
static const SwHoriOrient aHoriOriTab[ nCntXAlign ] =
{
@@ -729,6 +758,7 @@ void GraphicImport::attribute(Id nName, Value & val)
}
break;
case NS_rtf::LN_YAlign:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
/*
static const SwVertOrient aVertOriTab[ nCntYAlign ] =
{
@@ -795,9 +825,10 @@ void GraphicImport::attribute(Id nName, Value & val)
default:m_pImpl->nHoriRelation = text::RelOrientation::CHAR;
}
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_YRelTo:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_BY: //vert orient relation
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
switch( nIntValue )
{
case 0: m_pImpl->nVertRelation = text::RelOrientation::PAGE_PRINT_AREA; break;
@@ -808,8 +839,8 @@ void GraphicImport::attribute(Id nName, Value & val)
}
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_WR: //wrapping
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
switch( nIntValue )
{
case 0: //0 like 2, but doesn't require absolute object
@@ -832,8 +863,8 @@ void GraphicImport::attribute(Id nName, Value & val)
default:;
}
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_WRK:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
if( !m_pImpl->bIgnoreWRK )
switch( nIntValue )
{
@@ -855,21 +886,18 @@ void GraphicImport::attribute(Id nName, Value & val)
default:;
}
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_FRCASIMPLE:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_FBELOWTEXT:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_FANCHORLOCK:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_CTXBX:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
// {
// sal_Int32 nValue1 = val.getInt();
// nValue1++;
// }
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_shptxt:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
//todo: text content
break;
/* case NS_rtf::LN_CH = 10421;
@@ -881,6 +909,7 @@ void GraphicImport::attribute(Id nName, Value & val)
case NS_rtf::LN_dffheader: break;
case NS_ooxml::LN_CT_PositiveSize2D_cx:// 90407;
case NS_ooxml::LN_CT_PositiveSize2D_cy:// 90408;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
{
sal_Int32 nDim = ConversionHelper::convertEMUToMM100( nIntValue );
if( nName == NS_ooxml::LN_CT_PositiveSize2D_cx )
@@ -893,46 +922,58 @@ void GraphicImport::attribute(Id nName, Value & val)
case NS_ooxml::LN_CT_EffectExtent_t:// 90908;
case NS_ooxml::LN_CT_EffectExtent_r:// 90909;
case NS_ooxml::LN_CT_EffectExtent_b:// 90910;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
//todo: extends the wrapping size of the object, e.g. if shadow is added
break;
case NS_ooxml::LN_CT_NonVisualDrawingProps_id:// 90650;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
//id of the object - ignored
break;
case NS_ooxml::LN_CT_NonVisualDrawingProps_name:// 90651;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
//name of the object
m_pImpl->sName = val.getString();
break;
case NS_ooxml::LN_CT_NonVisualDrawingProps_descr:// 90652;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
//alternative text
m_pImpl->sAlternativeText = val.getString();
break;
case NS_ooxml::LN_CT_GraphicalObjectFrameLocking_noChangeAspect://90644;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
//disallow aspect ratio change - ignored
break;
case NS_ooxml::LN_CT_GraphicalObjectFrameLocking_noMove:// 90645;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
m_pImpl->bPositionProtected = true;
break;
case NS_ooxml::LN_CT_GraphicalObjectFrameLocking_noResize: // 90646;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
m_pImpl->bSizeProtected = true;
break;
case NS_ooxml::LN_CT_Anchor_distT: // 90983;
case NS_ooxml::LN_CT_Anchor_distB: // 90984;
case NS_ooxml::LN_CT_Anchor_distL: // 90985;
case NS_ooxml::LN_CT_Anchor_distR: // 90986;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
{
//redirect to shape option processing
switch( nName )
{
case NS_ooxml::LN_CT_Anchor_distT: // 90983;
+ /* WRITERFILTERSTATUS: */
m_pImpl->nShapeOptionType = NS_dff::LN_shpdyWrapDistTop;
break;
case NS_ooxml::LN_CT_Anchor_distB: // 90984;
+ /* WRITERFILTERSTATUS: */
m_pImpl->nShapeOptionType = NS_dff::LN_shpdyWrapDistBottom;
break;
case NS_ooxml::LN_CT_Anchor_distL: // 90985;
+ /* WRITERFILTERSTATUS: */
m_pImpl->nShapeOptionType = NS_dff::LN_shpdxWrapDistLeft;
break;
case NS_ooxml::LN_CT_Anchor_distR: // 90986;
+ /* WRITERFILTERSTATUS: */
m_pImpl->nShapeOptionType = NS_dff::LN_shpdxWrapDistRight;
break;
//m_pImpl->nShapeOptionType = NS_dff::LN_shpcropFromTop
@@ -942,25 +983,30 @@ void GraphicImport::attribute(Id nName, Value & val)
}
break;
case NS_ooxml::LN_CT_Anchor_simplePos_attr: // 90987;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
m_pImpl->bUseSimplePos = nIntValue > 0;
break;
case NS_ooxml::LN_CT_Anchor_relativeHeight: // 90988;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
//z-order
break;
case NS_ooxml::LN_CT_Anchor_behindDoc: // 90989; - in background
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
if( nIntValue > 0 )
m_pImpl->bOpaque = false;
break;
case NS_ooxml::LN_CT_Anchor_locked: // 90990; - ignored
case NS_ooxml::LN_CT_Anchor_layoutInCell: // 90991; - ignored
- //true: inside cell, cell resizes, false: table is resized or relocated, object might be outside of the table
case NS_ooxml::LN_CT_Anchor_hidden: // 90992; - ignored
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
break;
case NS_ooxml::LN_CT_Anchor_allowOverlap: // 90993;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
//enable overlapping - ignored
break;
case NS_ooxml::LN_CT_Point2D_x: // 90405;
case NS_ooxml::LN_CT_Point2D_y: // 90406;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
if( m_pImpl->bUseSimplePos )
{
//todo: absolute positioning
@@ -970,9 +1016,11 @@ void GraphicImport::attribute(Id nName, Value & val)
}
break;
case NS_ooxml::LN_CT_WrapTight_wrapText: // 90934;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
m_pImpl->bContour = true;
//no break;
case NS_ooxml::LN_CT_WrapSquare_wrapText: //90928;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
switch ( val.getInt() )
{
case NS_ooxml::LN_Value_wordprocessingDrawing_ST_WrapText_bothSides: // 90920;
@@ -991,7 +1039,7 @@ void GraphicImport::attribute(Id nName, Value & val)
}
break;
case NS_ooxml::LN_shape:
- /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
{
uno::Reference< drawing::XShape> xShape;
val.getAny( ) >>= xShape;
@@ -1070,16 +1118,14 @@ void GraphicImport::attribute(Id nName, Value & val)
}
break;
case NS_ooxml::LN_CT_Inline_distT:
- /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
case NS_ooxml::LN_CT_Inline_distB:
- /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
case NS_ooxml::LN_CT_Inline_distL:
- /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
case NS_ooxml::LN_CT_Inline_distR:
/* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */
//TODO: need to be handled
break;
case NS_ooxml::LN_CT_GraphicalObjectData_uri:
+ /* WRITERFILTERSTATUS: done: 50, planned: 0.5, spent: 0 */
val.getString();
//TODO: does it need to be handled?
break;
@@ -1122,121 +1168,30 @@ void GraphicImport::ProcessShapeOptions(Value& val)
/* WRITERFILTERSTATUS: table: ShapeOptionsAttribute */
switch( m_pImpl->nShapeOptionType )
{
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shprotation /*4*/: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfLockRotation /*119*/: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfLockAspectRatio /*120*/: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfLockPosition /*121*/: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfLockAgainstSelect /*122*/: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfLockCropping /*123*/: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfLockVertices /*124*/: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfLockText /*125*/: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfLockAdjustHandles /*126*/: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfLockAgainstGrouping /*127*/: break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfLockAgainstGrouping /*127*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplTxid /*128*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpdxTextLeft /*129*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpdyTextTop /*130*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpdxTextRight /*131*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpdyTextBottom /*132*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpWrapText /*133*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpscaleText /*134*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpanchorText /*135*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shptxflTextFlow /*136*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpcdirFont /*137*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shphspNext /*138*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shptxdir /*139*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfSelectText /*187*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfAutoTextMargin /*188*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfRotateText /*189*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfFitShapeToText /*190*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfFitTextToShape /*191*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextUNICODE /*192*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextRTF /*193*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextAlign /*194*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextSize /*195*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextSpacing /*196*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFont /*197*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFReverseRows /*240*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfGtext /*241*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFVertical /*242*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFKern /*243*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFTight /*244*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFStretch /*245*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFShrinkFit /*246*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFBestFit /*247*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFNormalize /*248*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFDxMeasure /*249*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFBold /*250*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFItalic /*251*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFUnderline /*252*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFShadow /*253*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFSmallcaps /*254*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgtextFStrikethrough /*255*/:
-
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_dff::LN_shpcropFromTop /*256*/ : m_pImpl->nTopCrop = nTwipValue; break;// rtf:shpcropFromTop
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_dff::LN_shpcropFromBottom /*257*/ : m_pImpl->nBottomCrop= nTwipValue; break;// rtf:shpcropFromBottom
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_dff::LN_shpcropFromLeft /*258*/ : m_pImpl->nLeftCrop = nTwipValue; break;// rtf:shpcropFromLeft
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_dff::LN_shpcropFromRight/*259*/ : m_pImpl->nRightCrop = nTwipValue;break;// rtf:shpcropFromRight
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_dff::LN_shppib/*260*/: break; // rtf:shppib
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_dff::LN_shppibName/*261*/: break; // rtf:shppibName
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_dff::LN_shpcropFromTop /*256*/ :
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nTopCrop = nTwipValue;
+ break;// rtf:shpcropFromTop
+ case NS_dff::LN_shpcropFromBottom /*257*/ :
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nBottomCrop= nTwipValue;
+ break;// rtf:shpcropFromBottom
+ case NS_dff::LN_shpcropFromLeft /*258*/ :
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nLeftCrop = nTwipValue;
+ break;// rtf:shpcropFromLeft
+ case NS_dff::LN_shpcropFromRight/*259*/ :
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ m_pImpl->nRightCrop = nTwipValue;
+ break;// rtf:shpcropFromRight
+ case NS_dff::LN_shppib/*260*/:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break; // rtf:shppib
+ case NS_dff::LN_shppibName/*261*/:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break; // rtf:shppibName
case NS_dff::LN_shppibFlags/*262*/: // rtf:shppibFlags
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
/*
* // MSOBLIPFLAGS ñ flags for pictures
typedef enum
@@ -1258,10 +1213,8 @@ void GraphicImport::ProcessShapeOptions(Value& val)
*
* */
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shppictureTransparent /*263*/:
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_dff::LN_shppictureContrast/*264*/: // rtf:shppictureContrast docu: "1<<16"
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
/*
0x10000 is msoffice 50%
< 0x10000 is in units of 1/50th of 0x10000 per 1%
@@ -1291,38 +1244,30 @@ void GraphicImport::ProcessShapeOptions(Value& val)
m_pImpl->nContrast -= 100;
}
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_dff::LN_shppictureBrightness/*265*/: // rtf:shppictureBrightness
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->nBrightness = ( (sal_Int32) nIntValue / 327 );
break;
- /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
case NS_dff::LN_shppictureGamma/*266*/: // rtf:shppictureGamma
+ /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
//todo check gamma value with _real_ document
m_pImpl->fGamma = double(nIntValue/655);
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_dff::LN_shppictureId /*267*/: break; // rtf:shppictureId
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_dff::LN_shppictureDblCrMod /*268*/: break; // rtf:shppictureDblCrMod
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_dff::LN_shppictureFillCrMod /*269*/: break; // rtf:shppictureFillCrMod
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_dff::LN_shppictureLineCrMod /*270*/: break; // rtf:shppictureLineCrMod
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shppibPrint /*271*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shppibPrintName /*272*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shppibPrintFlags /*273*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfNoHitTestPicture /*316*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shppictureGray /*317*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shppictureBiLevel /*318*/:
+ case NS_dff::LN_shppictureId /*267*/:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break; // rtf:shppictureId
+ case NS_dff::LN_shppictureDblCrMod /*268*/:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break; // rtf:shppictureDblCrMod
+ case NS_dff::LN_shppictureFillCrMod /*269*/:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break; // rtf:shppictureFillCrMod
+ case NS_dff::LN_shppictureLineCrMod /*270*/:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break; // rtf:shppictureLineCrMod
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_dff::LN_shppictureActive/*319*/: // rtf:shppictureActive
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
switch( nIntValue & 0x06 )
{
case 0 : m_pImpl->eColorMode = drawing::ColorMode_STANDARD; break;
@@ -1331,162 +1276,31 @@ void GraphicImport::ProcessShapeOptions(Value& val)
default:;
}
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgeoLeft /*320*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgeoTop /*321*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgeoRight /*322*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpgeoBottom /*323*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshapePath /*324*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shppVertices /*325*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shppSegmentInfo /*326*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpadjustValue /*327*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpadjust2Value /*328*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpadjust3Value /*329*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpadjust4Value /*330*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpadjust5Value /*331*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpadjust6Value /*332*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpadjust7Value /*333*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpadjust8Value /*334*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpadjust9Value /*335*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpadjust10Value /*336*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfShadowOK /*378*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpf3DOK /*379*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfLineOK /*380*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfGtextOK /*381*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfFillShadeShapeOK /*382*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfFillOK /*383*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillType /*384*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_dff::LN_shpfillColor /*385*/:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
m_pImpl->nFillColor = (m_pImpl->nFillColor & 0xff000000) + ConversionHelper::ConvertColor( nIntValue );
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_dff::LN_shpfillOpacity /*386*/:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
{
sal_Int32 nTrans = 0xff - ( nIntValue * 0xff ) / 0xffff;
m_pImpl->nFillColor = (nTrans << 0x18 ) + (m_pImpl->nFillColor & 0xffffff);
}
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillBackColor /*387*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillBackOpacity /*388*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillCrMod /*389*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillBlip /*390*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillBlipName /*391*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillBlipFlags /*392*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillWidth /*393*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillHeight /*394*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillAngle /*395*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillFocus /*396*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillToLeft /*397*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillToTop /*398*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillToRight /*399*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillToBottom /*400*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillRectLeft /*401*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillRectTop /*402*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillRectRight /*403*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillRectBottom /*404*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillDztype /*405*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillShadePreset /*406*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillShadeColors /*407*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillOriginX /*408*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillOriginY /*409*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillShapeOriginX /*410*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillShapeOriginY /*411*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillShadeType /*412*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfFilled /*443*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfHitTestFill /*444*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillShape /*445*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfillUseRect /*446*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_dff::LN_shpfNoFillHitTest /*447*/: break; // rtf:shpfNoFillHitTest
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ case NS_dff::LN_shpfNoFillHitTest /*447*/:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break; // rtf:shpfNoFillHitTest
case NS_dff::LN_shplineColor /*448*/:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].nLineColor = ConversionHelper::ConvertColor( nIntValue );
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineOpacity /*449*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineBackColor /*450*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineCrMod /*451*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineType /*452*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineFillBlip /*453*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineFillBlipName /*454*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineFillBlipFlags /*455*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineFillWidth /*456*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineFillHeight /*457*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineFillDztype /*458*/:
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_dff::LN_shplineWidth /*459*/:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
//1pt == 12700 units
m_pImpl->aBorders[m_pImpl->nCurrentBorderLine].nLineWidth = ConversionHelper::convertTwipToMM100(nIntValue / 635);
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineMiterLimit /*460*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineStyle /*461*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_dff::LN_shplineDashing /*462*/:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
//graphic borders don't support different dashing
/*MSOLINEDASHING
msolineSolid, // Solid (continuous) pen
@@ -1502,283 +1316,40 @@ void GraphicImport::ProcessShapeOptions(Value& val)
msolineLongDashDotDotGEL // long dash short dash short dash*/
//m_pImpl->aBorders[nCurrentBorderLine].nLineType = nIntValue;
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineDashStyle /*463*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineStartArrowhead /*464*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineEndArrowhead /*465*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineStartArrowWidth /*466*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineStartArrowLength /*467*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineEndArrowWidth /*468*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineEndArrowLength /*469*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineJoinStyle /*470*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineEndCapStyle /*471*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfArrowheadsOK /*507*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfLine /*508*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfHitTestLine /*509*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplineFillShape /*510*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_dff::LN_shpfNoLineDrawDash /*511*/: break; // rtf:shpfNoLineDrawDash
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowType /*512*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowColor /*513*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowHighlight /*514*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowCrMod /*515*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowOpacity /*516*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowOffsetX /*517*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowOffsetY /*518*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowSecondOffsetX /*519*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowSecondOffsetY /*520*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowScaleXToX /*521*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowScaleYToX /*522*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowScaleXToY /*523*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowScaleYToY /*524*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowPerspectiveX /*525*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowPerspectiveY /*526*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowWeight /*527*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowOriginX /*528*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpshadowOriginY /*529*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfShadow /*574*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfshadowObscured /*575*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpperspectiveType /*576*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpperspectiveOffsetX /*577*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpperspectiveOffsetY /*578*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpperspectiveScaleXToX /*579*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpperspectiveScaleYToX /*580*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpperspectiveScaleXToY /*581*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpperspectiveScaleYToY /*582*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpperspectivePerspectiveX /*583*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpperspectivePerspectiveY /*584*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpperspectiveWeight /*585*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpperspectiveOriginX /*586*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpperspectiveOriginY /*587*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfPerspective /*639*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DSpecularAmt /*640*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DDiffuseAmt /*641*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DShininess /*642*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DEdgeThickness /*643*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DExtrudeForward /*644*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DExtrudeBackward /*645*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DExtrudePlane /*646*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DExtrusionColor /*647*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DCrMod /*648*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpf3D /*700*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfc3DMetallic /*701*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfc3DUseExtrusionColor /*702*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfc3DLightFace /*703*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DYRotationAngle /*704*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DXRotationAngle /*705*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DRotationAxisX /*706*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DRotationAxisY /*707*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DRotationAxisZ /*708*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DRotationAngle /*709*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DRotationCenterX /*710*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DRotationCenterY /*711*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DRotationCenterZ /*712*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DRenderMode /*713*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DTolerance /*714*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DXViewpoint /*715*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DYViewpoint /*716*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DZViewpoint /*717*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DOriginX /*718*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DOriginY /*719*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DSkewAngle /*720*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DSkewAmount /*721*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DAmbientIntensity /*722*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DKeyX /*723*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DKeyY /*724*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DKeyZ /*725*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DKeyIntensity /*726*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DFillX /*727*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DFillY /*728*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DFillZ /*729*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpc3DFillIntensity /*730*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfc3DConstrainRotation /*763*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfc3DRotationCenterAuto /*764*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfc3DParallel /*765*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfc3DKeyHarsh /*766*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfc3DFillHarsh /*767*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shphspMaster /*769*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpcxstyle /*771*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpbWMode /*772*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpbWModePureBW /*773*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpbWModeBW /*774*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfOleIcon /*826*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfPreferRelativeResize /*827*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfLockShapeType /*828*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfDeleteAttachedObject /*830*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfBackground /*831*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpspcot /*832*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpdxyCalloutGap /*833*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpspcoa /*834*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpspcod /*835*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpdxyCalloutDropSpecified /*836*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpdxyCalloutLengthSpecified /*837*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfCallout /*889*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfCalloutAccentBar /*890*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfCalloutTextBorder /*891*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfCalloutMinusX /*892*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfCalloutMinusY /*893*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfCalloutDropAuto /*894*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfCalloutLengthSpecified /*895*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpwzName /*896*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_dff::LN_shpfNoLineDrawDash /*511*/:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break; // rtf:shpfNoLineDrawDash
case NS_dff::LN_shpwzDescription /*897*/: //alternative text
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
m_pImpl->sAlternativeText = val.getString();
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
// case NS_dff::LN_shppihlShape /*898*/:
- case NS_dff::LN_shppWrapPolygonVertices/*899*/: break; // rtf:shppWrapPolygonVertices
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_dff::LN_shppWrapPolygonVertices/*899*/:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ break; // rtf:shppWrapPolygonVertices
case NS_dff::LN_shpdxWrapDistLeft /*900*/: // contains a twip/635 value
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
//todo: changes have to be applied depending on the orientation, see SwWW8ImplReader::AdjustLRWrapForWordMargins()
m_pImpl->nLeftMargin = nIntValue / 360;
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_dff::LN_shpdyWrapDistTop /*901*/: // contains a twip/635 value
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
//todo: changes have to be applied depending on the orientation, see SwWW8ImplReader::AdjustULWrapForWordMargins()
m_pImpl->nTopMargin = nIntValue / 360;
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_dff::LN_shpdxWrapDistRight /*902*/:// contains a twip/635 value
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
//todo: changes have to be applied depending on the orientation, see SwWW8ImplReader::AdjustLRWrapForWordMargins()
m_pImpl->nRightMargin = nIntValue / 360;
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_dff::LN_shpdyWrapDistBottom /*903*/:// contains a twip/635 value
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
//todo: changes have to be applied depending on the orientation, see SwWW8ImplReader::AdjustULWrapForWordMargins()
m_pImpl->nBottomMargin = nIntValue / 360;
break;
+ case NS_dff::LN_shpfPrint /*959*/:
/* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shplidRegroup /*904*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfEditedWrap /*953*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfBehindDocument /*954*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfOnDblClickNotify /*955*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfIsButton /*956*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfOneD /*957*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
-// case NS_dff::LN_shpfHidden /*958*/:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_dff::LN_shpfPrint /*959*/: break; // rtf:shpfPrint
-
+ break; // rtf:shpfPrint
default:
OSL_ENSURE( false, "shape option unsupported?");
}
@@ -1823,6 +1394,7 @@ void GraphicImport::sprm(Sprm & rSprm)
case NS_ooxml::LN_CT_WrapTight_wrapPolygon: // 90933;
case NS_ooxml::LN_graphic_graphic:
case NS_ooxml::LN_pic_pic:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
{
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
if( pProperties.get())
@@ -1873,13 +1445,16 @@ void GraphicImport::sprm(Sprm & rSprm)
}
break;
case NS_ooxml::LN_EG_WrapType_wrapNone: // 90944; - doesn't contain attributes
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
//depending on the behindDoc attribute text wraps through behind or in fron of the object
m_pImpl->nWrap = text::WrapTextMode_THROUGHT;
break;
case NS_ooxml::LN_EG_WrapType_wrapTopAndBottom: // 90948;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
m_pImpl->nWrap = text::WrapTextMode_NONE;
break;
case NS_ooxml::LN_EG_WrapType_wrapThrough: // 90947;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
m_pImpl->nWrap = text::WrapTextMode_THROUGHT;
break;
case 0xf010:
@@ -1887,6 +1462,7 @@ void GraphicImport::sprm(Sprm & rSprm)
//ignore - doesn't contain useful members
break;
case NS_ooxml::LN_CT_GraphicalObject_graphicData:// 90660;
+ /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0 */
{
m_pImpl->bIsGraphic = true;
diff --git a/writerfilter/source/dmapper/LFOTable.cxx b/writerfilter/source/dmapper/LFOTable.cxx
index 82d2b032b761..51ecafd2662e 100644
--- a/writerfilter/source/dmapper/LFOTable.cxx
+++ b/writerfilter/source/dmapper/LFOTable.cxx
@@ -94,434 +94,47 @@ void LFOTable::attribute(Id Name, Value & val)
switch( Name )
{
// case NS_rtf::LN_ISTD: break;//index of applied style
- /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
case NS_rtf::LN_ISTARTAT:
- /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
case NS_rtf::LN_ILVL:
- /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
case NS_rtf::LN_FSTARTAT:
- /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
case NS_rtf::LN_FFORMATTING:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
if(m_pImpl->m_pCurrentEntry->aLFOLevels.size())
{
vector< LFOLevelPtr >::reverse_iterator aEndIter = m_pImpl->m_pCurrentEntry->aLFOLevels.rbegin();
switch( Name )
{
case NS_rtf::LN_ISTARTAT:
+ /* WRITERFILTERSTATUS:*/
(*aEndIter)->nIStartAt = nIntValue;
break;
case NS_rtf::LN_ILVL:
+ /* WRITERFILTERSTATUS:*/
(*aEndIter)->sILevel = val.getString();
break;
case NS_rtf::LN_FSTARTAT:
+ /* WRITERFILTERSTATUS:*/
(*aEndIter)->nFStartAt = nIntValue;
break;
case NS_rtf::LN_FFORMATTING:
+ /* WRITERFILTERSTATUS:*/
(*aEndIter)->nFFormatting = nIntValue;
break;
default:;
}
}
break;
-// case NS_rtf::LN_NFC: break;
-// case NS_rtf::LN_JC: break;
-// case NS_rtf::LN_FLEGAL: break;
-// case NS_rtf::LN_FNORESTART: break;
-// case NS_rtf::LN_FPREV: break;
-// case NS_rtf::LN_FPREVSPACE: break;
-// case NS_rtf::LN_FWORD6: break;
-// case NS_rtf::LN_UNUSED5_7: break;
-// case NS_rtf::LN_RGBXCHNUMS: break;
-// case NS_rtf::LN_IXCHFOLLOW: break;
-// case NS_rtf::LN_DXASPACE: break;
-// case NS_rtf::LN_DXAINDENT: break;
-// case NS_rtf::LN_CBGRPPRLCHPX: break;
-// case NS_rtf::LN_CBGRPPRLPAPX: break;
- /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
case NS_rtf::LN_LSID:
+ /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->nListId = nIntValue;
break;
-// case NS_rtf::LN_TPLC: break;
-// case NS_rtf::LN_RGISTD: break;
-// case NS_rtf::LN_FSIMPLELIST: break;
-// case NS_rtf::LN_FRESTARTHDN: break;
-// case NS_rtf::LN_UNSIGNED26_2: break;
-// case NS_rtf::LN_UNSIGNED4_6: break;
- /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
- case NS_rtf::LN_UNUSED4:
- /* WRITERFILTERSTATUS: done: 1, planned: 0, spent: 0 */
- case NS_rtf::LN_UNUSED8:
- // as the names state they are unused
- break;
+ case NS_rtf::LN_clfolvl:
/* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
- case NS_rtf::LN_CLFOLVL:
m_pImpl->m_pCurrentEntry->nCLFOLevel = nIntValue;
break;
-// case NS_rtf::LN_CBFFNM1: break;
-// case NS_rtf::LN_PRQ: break;
-// case NS_rtf::LN_FTRUETYPE: break;
-// case NS_rtf::LN_UNUSED1_3: break;
-// case NS_rtf::LN_FF: break;
-// case NS_rtf::LN_UNUSED1_7: break;
-// case NS_rtf::LN_WWEIGHT: break;
-// case NS_rtf::LN_CHS: break;
-// case NS_rtf::LN_IXCHSZALT: break;
-// case NS_rtf::LN_PANOSE: break;
-// case NS_rtf::LN_FS: break;
-// case NS_rtf::LN_STI: break;
-// case NS_rtf::LN_FSCRATCH: break;
-// case NS_rtf::LN_FINVALHEIGHT: break;
-// case NS_rtf::LN_FHASUPE: break;
-// case NS_rtf::LN_FMASSCOPY: break;
-// case NS_rtf::LN_SGC: break;
-// case NS_rtf::LN_ISTDBASE: break;
-// case NS_rtf::LN_CUPX: break;
-// case NS_rtf::LN_ISTDNEXT: break;
-// case NS_rtf::LN_BCHUPE: break;
-// case NS_rtf::LN_FAUTOREDEF: break;
-// case NS_rtf::LN_FHIDDEN: break;
-// case NS_rtf::LN_UNUSED8_3: break;
-// case NS_rtf::LN_CSTD: break;
-// case NS_rtf::LN_CBSTDBASEINFILE: break;
-// case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break;
-// case NS_rtf::LN_UNUSED4_2: break;
-// case NS_rtf::LN_STIMAXWHENSAVED: break;
-// case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break;
-// case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break;
-// case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break;
-// case NS_rtf::LN_WIDENT: break;
-// case NS_rtf::LN_NFIB: break;
-// case NS_rtf::LN_NPRODUCT: break;
-// case NS_rtf::LN_LID: break;
-// case NS_rtf::LN_PNNEXT: break;
-// case NS_rtf::LN_FDOT: break;
-// case NS_rtf::LN_FGLSY: break;
-// case NS_rtf::LN_FCOMPLEX: break;
-// case NS_rtf::LN_FHASPIC: break;
-// case NS_rtf::LN_CQUICKSAVES: break;
-// case NS_rtf::LN_FENCRYPTED: break;
-// case NS_rtf::LN_FWHICHTBLSTM: break;
-// case NS_rtf::LN_FREADONLYRECOMMENDED: break;
-// case NS_rtf::LN_FWRITERESERVATION: break;
-// case NS_rtf::LN_FEXTCHAR: break;
-// case NS_rtf::LN_FLOADOVERRIDE: break;
-// case NS_rtf::LN_FFAREAST: break;
-// case NS_rtf::LN_FCRYPTO: break;
-// case NS_rtf::LN_NFIBBACK: break;
-// case NS_rtf::LN_LKEY: break;
-// case NS_rtf::LN_ENVR: break;
-// case NS_rtf::LN_FMAC: break;
-// case NS_rtf::LN_FEMPTYSPECIAL: break;
-// case NS_rtf::LN_FLOADOVERRIDEPAGE: break;
-// case NS_rtf::LN_FFUTURESAVEDUNDO: break;
-// case NS_rtf::LN_FWORD97SAVED: break;
-// case NS_rtf::LN_FSPARE0: break;
-// case NS_rtf::LN_CHSTABLES: break;
-// case NS_rtf::LN_FCMIN: break;
-// case NS_rtf::LN_FCMAC: break;
-// case NS_rtf::LN_CSW: break;
-// case NS_rtf::LN_WMAGICCREATED: break;
-// case NS_rtf::LN_WMAGICREVISED: break;
-// case NS_rtf::LN_WMAGICCREATEDPRIVATE: break;
-// case NS_rtf::LN_WMAGICREVISEDPRIVATE: break;
-// case NS_rtf::LN_PNFBPCHPFIRST_W6: break;
-// case NS_rtf::LN_PNCHPFIRST_W6: break;
-// case NS_rtf::LN_CPNBTECHP_W6: break;
-// case NS_rtf::LN_PNFBPPAPFIRST_W6: break;
-// case NS_rtf::LN_PNPAPFIRST_W6: break;
-// case NS_rtf::LN_CPNBTEPAP_W6: break;
-// case NS_rtf::LN_PNFBPLVCFIRST_W6: break;
-// case NS_rtf::LN_PNLVCFIRST_W6: break;
-// case NS_rtf::LN_CPNBTELVC_W6: break;
-// case NS_rtf::LN_LIDFE: break;
-// case NS_rtf::LN_CLW: break;
-// case NS_rtf::LN_CBMAC: break;
-// case NS_rtf::LN_LPRODUCTCREATED: break;
-// case NS_rtf::LN_LPRODUCTREVISED: break;
-// case NS_rtf::LN_CCPTEXT: break;
-// case NS_rtf::LN_CCPFTN: break;
-// case NS_rtf::LN_CCPHDD: break;
-// case NS_rtf::LN_CCPMCR: break;
-// case NS_rtf::LN_CCPATN: break;
-// case NS_rtf::LN_CCPEDN: break;
-// case NS_rtf::LN_CCPTXBX: break;
-// case NS_rtf::LN_CCPHDRTXBX: break;
-// case NS_rtf::LN_PNFBPCHPFIRST: break;
-// case NS_rtf::LN_PNCHPFIRST: break;
-// case NS_rtf::LN_CPNBTECHP: break;
-// case NS_rtf::LN_PNFBPPAPFIRST: break;
-// case NS_rtf::LN_PNPAPFIRST: break;
-// case NS_rtf::LN_CPNBTEPAP: break;
-// case NS_rtf::LN_PNFBPLVCFIRST: break;
-// case NS_rtf::LN_PNLVCFIRST: break;
-// case NS_rtf::LN_CPNBTELVC: break;
-// case NS_rtf::LN_FCISLANDFIRST: break;
-// case NS_rtf::LN_FCISLANDLIM: break;
-// case NS_rtf::LN_CFCLCB: break;
-// case NS_rtf::LN_FCSTSHFORIG: break;
-// case NS_rtf::LN_LCBSTSHFORIG: break;
-// case NS_rtf::LN_FCSTSHF: break;
-// case NS_rtf::LN_LCBSTSHF: break;
-// case NS_rtf::LN_FCPLCFFNDREF: break;
-// case NS_rtf::LN_LCBPLCFFNDREF: break;
-// case NS_rtf::LN_FCPLCFFNDTXT: break;
-// case NS_rtf::LN_LCBPLCFFNDTXT: break;
-// case NS_rtf::LN_FCPLCFANDREF: break;
-// case NS_rtf::LN_LCBPLCFANDREF: break;
-// case NS_rtf::LN_FCPLCFANDTXT: break;
-// case NS_rtf::LN_LCBPLCFANDTXT: break;
-// case NS_rtf::LN_FCPLCFSED: break;
-// case NS_rtf::LN_LCBPLCFSED: break;
-// case NS_rtf::LN_FCPLCFPAD: break;
-// case NS_rtf::LN_LCBPLCFPAD: break;
-// case NS_rtf::LN_FCPLCFPHE: break;
-// case NS_rtf::LN_LCBPLCFPHE: break;
-// case NS_rtf::LN_FCSTTBFGLSY: break;
-// case NS_rtf::LN_LCBSTTBFGLSY: break;
-// case NS_rtf::LN_FCPLCFGLSY: break;
-// case NS_rtf::LN_LCBPLCFGLSY: break;
-// case NS_rtf::LN_FCPLCFHDD: break;
-// case NS_rtf::LN_LCBPLCFHDD: break;
-// case NS_rtf::LN_FCPLCFBTECHPX: break;
-// case NS_rtf::LN_LCBPLCFBTECHPX: break;
-// case NS_rtf::LN_FCPLCFBTEPAPX: break;
-// case NS_rtf::LN_LCBPLCFBTEPAPX: break;
-// case NS_rtf::LN_FCPLCFSEA: break;
-// case NS_rtf::LN_LCBPLCFSEA: break;
-// case NS_rtf::LN_FCSTTBFFFN: break;
-// case NS_rtf::LN_LCBSTTBFFFN: break;
-// case NS_rtf::LN_FCPLCFFLDMOM: break;
-// case NS_rtf::LN_LCBPLCFFLDMOM: break;
-// case NS_rtf::LN_FCPLCFFLDHDR: break;
-// case NS_rtf::LN_LCBPLCFFLDHDR: break;
-// case NS_rtf::LN_FCPLCFFLDFTN: break;
-// case NS_rtf::LN_LCBPLCFFLDFTN: break;
-// case NS_rtf::LN_FCPLCFFLDATN: break;
-// case NS_rtf::LN_LCBPLCFFLDATN: break;
-// case NS_rtf::LN_FCPLCFFLDMCR: break;
-// case NS_rtf::LN_LCBPLCFFLDMCR: break;
-// case NS_rtf::LN_FCSTTBFBKMK: break;
-// case NS_rtf::LN_LCBSTTBFBKMK: break;
-// case NS_rtf::LN_FCPLCFBKF: break;
-// case NS_rtf::LN_LCBPLCFBKF: break;
-// case NS_rtf::LN_FCPLCFBKL: break;
-// case NS_rtf::LN_LCBPLCFBKL: break;
-// case NS_rtf::LN_FCCMDS: break;
-// case NS_rtf::LN_LCBCMDS: break;
-// case NS_rtf::LN_FCPLCMCR: break;
-// case NS_rtf::LN_LCBPLCMCR: break;
-// case NS_rtf::LN_FCSTTBFMCR: break;
-// case NS_rtf::LN_LCBSTTBFMCR: break;
-// case NS_rtf::LN_FCPRDRVR: break;
-// case NS_rtf::LN_LCBPRDRVR: break;
-// case NS_rtf::LN_FCPRENVPORT: break;
-// case NS_rtf::LN_LCBPRENVPORT: break;
-// case NS_rtf::LN_FCPRENVLAND: break;
-// case NS_rtf::LN_LCBPRENVLAND: break;
-// case NS_rtf::LN_FCWSS: break;
-// case NS_rtf::LN_LCBWSS: break;
-// case NS_rtf::LN_FCDOP: break;
-// case NS_rtf::LN_LCBDOP: break;
-// case NS_rtf::LN_FCSTTBFASSOC: break;
-// case NS_rtf::LN_LCBSTTBFASSOC: break;
-// case NS_rtf::LN_FCCLX: break;
-// case NS_rtf::LN_LCBCLX: break;
-// case NS_rtf::LN_FCPLCFPGDFTN: break;
-// case NS_rtf::LN_LCBPLCFPGDFTN: break;
-// case NS_rtf::LN_FCAUTOSAVESOURCE: break;
-// case NS_rtf::LN_LCBAUTOSAVESOURCE: break;
-// case NS_rtf::LN_FCGRPXSTATNOWNERS: break;
-// case NS_rtf::LN_LCBGRPXSTATNOWNERS: break;
-// case NS_rtf::LN_FCSTTBFATNBKMK: break;
-// case NS_rtf::LN_LCBSTTBFATNBKMK: break;
-// case NS_rtf::LN_FCPLCDOAMOM: break;
-// case NS_rtf::LN_LCBPLCDOAMOM: break;
-// case NS_rtf::LN_FCPLCDOAHDR: break;
-// case NS_rtf::LN_LCBPLCDOAHDR: break;
-// case NS_rtf::LN_FCPLCSPAMOM: break;
-// case NS_rtf::LN_LCBPLCSPAMOM: break;
-// case NS_rtf::LN_FCPLCSPAHDR: break;
-// case NS_rtf::LN_LCBPLCSPAHDR: break;
-// case NS_rtf::LN_FCPLCFATNBKF: break;
-// case NS_rtf::LN_LCBPLCFATNBKF: break;
-// case NS_rtf::LN_FCPLCFATNBKL: break;
-// case NS_rtf::LN_LCBPLCFATNBKL: break;
-// case NS_rtf::LN_FCPMS: break;
-// case NS_rtf::LN_LCBPMS: break;
-// case NS_rtf::LN_FCFORMFLDSTTBF: break;
-// case NS_rtf::LN_LCBFORMFLDSTTBF: break;
-// case NS_rtf::LN_FCPLCFENDREF: break;
-// case NS_rtf::LN_LCBPLCFENDREF: break;
-// case NS_rtf::LN_FCPLCFENDTXT: break;
-// case NS_rtf::LN_LCBPLCFENDTXT: break;
-// case NS_rtf::LN_FCPLCFFLDEDN: break;
-// case NS_rtf::LN_LCBPLCFFLDEDN: break;
-// case NS_rtf::LN_FCPLCFPGDEDN: break;
-// case NS_rtf::LN_LCBPLCFPGDEDN: break;
-// case NS_rtf::LN_FCDGGINFO: break;
-// case NS_rtf::LN_LCBDGGINFO: break;
-// case NS_rtf::LN_FCSTTBFRMARK: break;
-// case NS_rtf::LN_LCBSTTBFRMARK: break;
-// case NS_rtf::LN_FCSTTBFCAPTION: break;
-// case NS_rtf::LN_LCBSTTBFCAPTION: break;
-// case NS_rtf::LN_FCSTTBFAUTOCAPTION: break;
-// case NS_rtf::LN_LCBSTTBFAUTOCAPTION: break;
-// case NS_rtf::LN_FCPLCFWKB: break;
-// case NS_rtf::LN_LCBPLCFWKB: break;
-// case NS_rtf::LN_FCPLCFSPL: break;
-// case NS_rtf::LN_LCBPLCFSPL: break;
-// case NS_rtf::LN_FCPLCFTXBXTXT: break;
-// case NS_rtf::LN_LCBPLCFTXBXTXT: break;
-// case NS_rtf::LN_FCPLCFFLDTXBX: break;
-// case NS_rtf::LN_LCBPLCFFLDTXBX: break;
-// case NS_rtf::LN_FCPLCFHDRTXBXTXT: break;
-// case NS_rtf::LN_LCBPLCFHDRTXBXTXT: break;
-// case NS_rtf::LN_FCPLCFFLDHDRTXBX: break;
-// case NS_rtf::LN_LCBPLCFFLDHDRTXBX: break;
-// case NS_rtf::LN_FCSTWUSER: break;
-// case NS_rtf::LN_LCBSTWUSER: break;
-// case NS_rtf::LN_FCSTTBTTMBD: break;
-// case NS_rtf::LN_LCBSTTBTTMBD: break;
-// case NS_rtf::LN_FCUNUSED: break;
-// case NS_rtf::LN_LCBUNUSED: break;
-// case NS_rtf::LN_FCPGDMOTHER: break;
-// case NS_rtf::LN_LCBPGDMOTHER: break;
-// case NS_rtf::LN_FCBKDMOTHER: break;
-// case NS_rtf::LN_LCBBKDMOTHER: break;
-// case NS_rtf::LN_FCPGDFTN: break;
-// case NS_rtf::LN_LCBPGDFTN: break;
-// case NS_rtf::LN_FCBKDFTN: break;
-// case NS_rtf::LN_LCBBKDFTN: break;
-// case NS_rtf::LN_FCPGDEDN: break;
-// case NS_rtf::LN_LCBPGDEDN: break;
-// case NS_rtf::LN_FCBKDEDN: break;
-// case NS_rtf::LN_LCBBKDEDN: break;
-// case NS_rtf::LN_FCSTTBFINTLFLD: break;
-// case NS_rtf::LN_LCBSTTBFINTLFLD: break;
-// case NS_rtf::LN_FCROUTESLIP: break;
-// case NS_rtf::LN_LCBROUTESLIP: break;
-// case NS_rtf::LN_FCSTTBSAVEDBY: break;
-// case NS_rtf::LN_LCBSTTBSAVEDBY: break;
-// case NS_rtf::LN_FCSTTBFNM: break;
-// case NS_rtf::LN_LCBSTTBFNM: break;
-// case NS_rtf::LN_FCPLCFLST: break;
-// case NS_rtf::LN_LCBPLCFLST: break;
-// case NS_rtf::LN_FCPLFLFO: break;
-// case NS_rtf::LN_LCBPLFLFO: break;
-// case NS_rtf::LN_FCPLCFTXBXBKD: break;
-// case NS_rtf::LN_LCBPLCFTXBXBKD: break;
-// case NS_rtf::LN_FCPLCFTXBXHDRBKD: break;
-// case NS_rtf::LN_LCBPLCFTXBXHDRBKD: break;
-// case NS_rtf::LN_FCDOCUNDO: break;
-// case NS_rtf::LN_LCBDOCUNDO: break;
-// case NS_rtf::LN_FCRGBUSE: break;
-// case NS_rtf::LN_LCBRGBUSE: break;
-// case NS_rtf::LN_FCUSP: break;
-// case NS_rtf::LN_LCBUSP: break;
-// case NS_rtf::LN_FCUSKF: break;
-// case NS_rtf::LN_LCBUSKF: break;
-// case NS_rtf::LN_FCPLCUPCRGBUSE: break;
-// case NS_rtf::LN_LCBPLCUPCRGBUSE: break;
-// case NS_rtf::LN_FCPLCUPCUSP: break;
-// case NS_rtf::LN_LCBPLCUPCUSP: break;
-// case NS_rtf::LN_FCSTTBGLSYSTYLE: break;
-// case NS_rtf::LN_LCBSTTBGLSYSTYLE: break;
-// case NS_rtf::LN_FCPLGOSL: break;
-// case NS_rtf::LN_LCBPLGOSL: break;
-// case NS_rtf::LN_FCPLCOCX: break;
-// case NS_rtf::LN_LCBPLCOCX: break;
-// case NS_rtf::LN_FCPLCFBTELVC: break;
-// case NS_rtf::LN_LCBPLCFBTELVC: break;
-// case NS_rtf::LN_DWLOWDATETIME: break;
-// case NS_rtf::LN_DWHIGHDATETIME: break;
-// case NS_rtf::LN_FCPLCFLVC: break;
-// case NS_rtf::LN_LCBPLCFLVC: break;
-// case NS_rtf::LN_FCPLCASUMY: break;
-// case NS_rtf::LN_LCBPLCASUMY: break;
-// case NS_rtf::LN_FCPLCFGRAM: break;
-// case NS_rtf::LN_LCBPLCFGRAM: break;
-// case NS_rtf::LN_FCSTTBLISTNAMES: break;
-// case NS_rtf::LN_LCBSTTBLISTNAMES: break;
-// case NS_rtf::LN_FCSTTBFUSSR: break;
-// case NS_rtf::LN_LCBSTTBFUSSR: break;
-// case NS_rtf::LN_FN: break;
-// case NS_rtf::LN_FCSEPX: break;
-// case NS_rtf::LN_FNMPR: break;
-// case NS_rtf::LN_FCMPR: break;
-// case NS_rtf::LN_ICOFORE: break;
-// case NS_rtf::LN_ICOBACK: break;
-// case NS_rtf::LN_IPAT: break;
-// case NS_rtf::LN_SHDFORECOLOR: break;
-// case NS_rtf::LN_SHDBACKCOLOR: break;
-// case NS_rtf::LN_SHDPATTERN: break;
-// case NS_rtf::LN_DPTLINEWIDTH: break;
-// case NS_rtf::LN_BRCTYPE: break;
-// case NS_rtf::LN_ICO: break;
-// case NS_rtf::LN_DPTSPACE: break;
-// case NS_rtf::LN_FSHADOW: break;
-// case NS_rtf::LN_FFRAME: break;
-// case NS_rtf::LN_UNUSED2_15: break;
-// case NS_rtf::LN_FFIRSTMERGED: break;
-// case NS_rtf::LN_FMERGED: break;
-// case NS_rtf::LN_FVERTICAL: break;
-// case NS_rtf::LN_FBACKWARD: break;
-// case NS_rtf::LN_FROTATEFONT: break;
-// case NS_rtf::LN_FVERTMERGE: break;
-// case NS_rtf::LN_FVERTRESTART: break;
-// case NS_rtf::LN_VERTALIGN: break;
-// case NS_rtf::LN_FUNUSED: break;
-// case NS_rtf::LN_WUNUSED: break;
-// case NS_rtf::LN_BRCTOP: break;
-// case NS_rtf::LN_BRCLEFT: break;
-// case NS_rtf::LN_BRCBOTTOM: break;
-// case NS_rtf::LN_BRCRIGHT: break;
-// case NS_rtf::LN_IBKL: break;
-// case NS_rtf::LN_ITCFIRST: break;
-// case NS_rtf::LN_FPUB: break;
-// case NS_rtf::LN_ITCLIM: break;
-// case NS_rtf::LN_FCOL: break;
-// case NS_rtf::LN_LINECOLOR: break;
-// case NS_rtf::LN_LINEWIDTH: break;
-// case NS_rtf::LN_LINETYPE: break;
-// case NS_rtf::LN_MM: break;
-// case NS_rtf::LN_XEXT: break;
-// case NS_rtf::LN_YEXT: break;
-// case NS_rtf::LN_HMF: break;
-// case NS_rtf::LN_LCB: break;
-// case NS_rtf::LN_CBHEADER: break;
-// case NS_rtf::LN_MFP: break;
-// case NS_rtf::LN_BM_RCWINMF: break;
-// case NS_rtf::LN_DXAGOAL: break;
-// case NS_rtf::LN_DYAGOAL: break;
-// case NS_rtf::LN_MX: break;
-// case NS_rtf::LN_MY: break;
-// case NS_rtf::LN_DXACROPLEFT: break;
-// case NS_rtf::LN_DYACROPTOP: break;
-// case NS_rtf::LN_DXACROPRIGHT: break;
-// case NS_rtf::LN_DYACROPBOTTOM: break;
-// case NS_rtf::LN_BRCL: break;
-// case NS_rtf::LN_FFRAMEEMPTY: break;
-// case NS_rtf::LN_FBITMAP: break;
-// case NS_rtf::LN_FDRAWHATCH: break;
-// case NS_rtf::LN_FERROR: break;
-// case NS_rtf::LN_BPP: break;
-// case NS_rtf::LN_DXAORIGIN: break;
-// case NS_rtf::LN_DYAORIGIN: break;
-// case NS_rtf::LN_CPROPS: break;
-// case NS_rtf::LN_LINEPROPSTOP: break;
-// case NS_rtf::LN_LINEPROPSLEFT: break;
-// case NS_rtf::LN_LINEPROPSBOTTOM: break;
-// case NS_rtf::LN_LINEPROPSRIGHT: break;
-// case NS_rtf::LN_LINEPROPSHORIZONTAL: break;
-// case NS_rtf::LN_LINEPROPSVERTICAL: break;
-// case NS_rtf::LN_headerr: break;
-// case NS_rtf::LN_footerr: break;
-// case NS_rtf::LN_endnote: break;
-// case NS_rtf::LN_BOOKMARKNAME: break;
-
-// case NS_rtf::LN_LISTLEVEL: break;
- /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
- case NS_rtf::LN_LFO:
+#if 0
+ case NS_rtf::LN_LFOLevel:
+ /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
{
writerfilter::Reference<Properties>::Pointer_t pProperties;
if(m_pImpl->m_pCurrentEntry && (pProperties = val.getProperties()).get())
@@ -531,27 +144,7 @@ void LFOTable::attribute(Id Name, Value & val)
}
}
break;
-// case NS_rtf::LN_F: break;
-// case NS_rtf::LN_ALTFONTNAME: break;
-// case NS_rtf::LN_XSZFFN: break;
-// case NS_rtf::LN_XSTZNAME: break;
-// case NS_rtf::LN_XSTZNAME1: break;
-// case NS_rtf::LN_UPXSTART: break;
-// case NS_rtf::LN_UPX: break;
-// case NS_rtf::LN_sed: break;
-// case NS_rtf::LN_picf: break;
-// case NS_rtf::LN_rgbrc: break;
-// case NS_rtf::LN_shd: break;
-// case NS_rtf::LN_cellShd: break;
-// case NS_rtf::LN_cellTopColor: break;
-// case NS_rtf::LN_cellLeftColor: break;
-// case NS_rtf::LN_cellBottomColor: break;
-// case NS_rtf::LN_cellRightColor: break;
-
-// case NS_rtf::LN_LISTTABLE: break;
-// case NS_rtf::LN_LFOTABLE: break;
-// case NS_rtf::LN_FONTTABLE: break;
-// case NS_rtf::LN_STYLESHEET: break;
+#endif
default:
{
OSL_ENSURE( false, "LFOTable::attribute: default statement");
diff --git a/writerfilter/source/dmapper/ListTable.cxx b/writerfilter/source/dmapper/ListTable.cxx
index bd3c9da4e567..36cb4d8bdb47 100644
--- a/writerfilter/source/dmapper/ListTable.cxx
+++ b/writerfilter/source/dmapper/ListTable.cxx
@@ -340,13 +340,13 @@ void ListTable::attribute(Id nName, Value & rVal)
/* WRITERFILTERSTATUS: table: ListTable_attributedata */
switch(nName)
{
- /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
case NS_rtf::LN_RGBXCHNUMS:
+ /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
if(m_pImpl->m_pCurrentEntry->pCurrentProperties.get())
m_pImpl->m_pCurrentEntry->pCurrentProperties->sRGBXchNums += rVal.getString();
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_LevelText_val:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
{
//this strings contains the definition of the level
//the level number is marked as %n
@@ -360,429 +360,45 @@ void ListTable::attribute(Id nName, Value & rVal)
}
break;
// case NS_rtf::LN_ISTD: break;
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
case NS_rtf::LN_ISTARTAT:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
case NS_rtf::LN_NFC:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
case NS_rtf::LN_JC:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
case NS_rtf::LN_FLEGAL:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
case NS_rtf::LN_FNORESTART:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
- case NS_rtf::LN_FPREV:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
- case NS_rtf::LN_FPREVSPACE:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
- case NS_rtf::LN_FWORD6:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
+ case NS_rtf::LN_FIDENTSAV:
+ case NS_rtf::LN_FCONVERTED:
+ case NS_rtf::LN_FTENTATIVE:
case NS_rtf::LN_IXCHFOLLOW:
+ /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
ApplyLevelValues( nName, nIntValue);
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_rtf::LN_UNUSED5_7:
- //unused
- break;
-// case NS_rtf::LN_DXASPACE: break;
-// case NS_rtf::LN_DXAINDENT: break;
-// case NS_rtf::LN_CBGRPPRLCHPX: break;
-// case NS_rtf::LN_CBGRPPRLPAPX: break;
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
case NS_rtf::LN_LSID:
+ /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->nListId = nIntValue;
break;
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
case NS_rtf::LN_TPLC:
+ /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->nTPLC = nIntValue;
break;
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
case NS_rtf::LN_RGISTD:
+ /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->sRGISTD += rVal.getString();
break;
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
case NS_rtf::LN_FSIMPLELIST:
+ /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->nSimpleList = nIntValue;
break;
+ case NS_rtf::LN_fAutoNum:
/* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
- case NS_rtf::LN_FRESTARTHDN:
m_pImpl->m_pCurrentEntry->nRestart = nIntValue;
break;
+ case NS_rtf::LN_fHybrid:
/* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
- case NS_rtf::LN_UNSIGNED26_2:
m_pImpl->m_pCurrentEntry->nUnsigned = nIntValue;
break;
-// case NS_rtf::LN_ILVL: break;
-// case NS_rtf::LN_FSTARTAT: break;
-// case NS_rtf::LN_FFORMATTING: break;
-// case NS_rtf::LN_UNSIGNED4_6: break;
-// case NS_rtf::LN_UNUSED4: break;
-// case NS_rtf::LN_UNUSED8: break;
-// case NS_rtf::LN_CLFOLVL: break;
-// case NS_rtf::LN_CBFFNM1: break;
-// case NS_rtf::LN_PRQ: break;
-// case NS_rtf::LN_FTRUETYPE: break;
-// case NS_rtf::LN_UNUSED1_3: break;
-// case NS_rtf::LN_FF: break;
-// case NS_rtf::LN_UNUSED1_7: break;
-// case NS_rtf::LN_WWEIGHT: break;
-// case NS_rtf::LN_CHS: break;
-// case NS_rtf::LN_IXCHSZALT: break;
-// case NS_rtf::LN_PANOSE: break;
-// case NS_rtf::LN_FS: break;
-// case NS_rtf::LN_STI: break;
-// case NS_rtf::LN_FSCRATCH: break;
-// case NS_rtf::LN_FINVALHEIGHT: break;
-// case NS_rtf::LN_FHASUPE: break;
-// case NS_rtf::LN_FMASSCOPY: break;
-// case NS_rtf::LN_SGC: break;
-// case NS_rtf::LN_ISTDBASE: break;
-// case NS_rtf::LN_CUPX: break;
-// case NS_rtf::LN_ISTDNEXT: break;
-// case NS_rtf::LN_BCHUPE: break;
-// case NS_rtf::LN_FAUTOREDEF: break;
-// case NS_rtf::LN_FHIDDEN: break;
-// case NS_rtf::LN_UNUSED8_3: break;
-// case NS_rtf::LN_CSTD: break;
-// case NS_rtf::LN_CBSTDBASEINFILE: break;
-// case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break;
-// case NS_rtf::LN_UNUSED4_2: break;
-// case NS_rtf::LN_STIMAXWHENSAVED: break;
-// case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break;
-// case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break;
-// case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break;
-// case NS_rtf::LN_WIDENT: break;
-// case NS_rtf::LN_NFIB: break;
-// case NS_rtf::LN_NPRODUCT: break;
-// case NS_rtf::LN_LID: break;
-// case NS_rtf::LN_PNNEXT: break;
-// case NS_rtf::LN_FDOT: break;
-// case NS_rtf::LN_FGLSY: break;
-// case NS_rtf::LN_FCOMPLEX: break;
-// case NS_rtf::LN_FHASPIC: break;
-// case NS_rtf::LN_CQUICKSAVES: break;
-// case NS_rtf::LN_FENCRYPTED: break;
-// case NS_rtf::LN_FWHICHTBLSTM: break;
-// case NS_rtf::LN_FREADONLYRECOMMENDED: break;
-// case NS_rtf::LN_FWRITERESERVATION: break;
-// case NS_rtf::LN_FEXTCHAR: break;
-// case NS_rtf::LN_FLOADOVERRIDE: break;
-// case NS_rtf::LN_FFAREAST: break;
-// case NS_rtf::LN_FCRYPTO: break;
-// case NS_rtf::LN_NFIBBACK: break;
-// case NS_rtf::LN_LKEY: break;
-// case NS_rtf::LN_ENVR: break;
-// case NS_rtf::LN_FMAC: break;
-// case NS_rtf::LN_FEMPTYSPECIAL: break;
-// case NS_rtf::LN_FLOADOVERRIDEPAGE: break;
-// case NS_rtf::LN_FFUTURESAVEDUNDO: break;
-// case NS_rtf::LN_FWORD97SAVED: break;
-// case NS_rtf::LN_FSPARE0: break;
-// case NS_rtf::LN_CHSTABLES: break;
-// case NS_rtf::LN_FCMIN: break;
-// case NS_rtf::LN_FCMAC: break;
-// case NS_rtf::LN_CSW: break;
-// case NS_rtf::LN_WMAGICCREATED: break;
-// case NS_rtf::LN_WMAGICREVISED: break;
-// case NS_rtf::LN_WMAGICCREATEDPRIVATE: break;
-// case NS_rtf::LN_WMAGICREVISEDPRIVATE: break;
-// case NS_rtf::LN_PNFBPCHPFIRST_W6: break;
-// case NS_rtf::LN_PNCHPFIRST_W6: break;
-// case NS_rtf::LN_CPNBTECHP_W6: break;
-// case NS_rtf::LN_PNFBPPAPFIRST_W6: break;
-// case NS_rtf::LN_PNPAPFIRST_W6: break;
-// case NS_rtf::LN_CPNBTEPAP_W6: break;
-// case NS_rtf::LN_PNFBPLVCFIRST_W6: break;
-// case NS_rtf::LN_PNLVCFIRST_W6: break;
-// case NS_rtf::LN_CPNBTELVC_W6: break;
-// case NS_rtf::LN_LIDFE: break;
-// case NS_rtf::LN_CLW: break;
-// case NS_rtf::LN_CBMAC: break;
-// case NS_rtf::LN_LPRODUCTCREATED: break;
-// case NS_rtf::LN_LPRODUCTREVISED: break;
-// case NS_rtf::LN_CCPTEXT: break;
-// case NS_rtf::LN_CCPFTN: break;
-// case NS_rtf::LN_CCPHDD: break;
-// case NS_rtf::LN_CCPMCR: break;
-// case NS_rtf::LN_CCPATN: break;
-// case NS_rtf::LN_CCPEDN: break;
-// case NS_rtf::LN_CCPTXBX: break;
-// case NS_rtf::LN_CCPHDRTXBX: break;
-// case NS_rtf::LN_PNFBPCHPFIRST: break;
-// case NS_rtf::LN_PNCHPFIRST: break;
-// case NS_rtf::LN_CPNBTECHP: break;
-// case NS_rtf::LN_PNFBPPAPFIRST: break;
-// case NS_rtf::LN_PNPAPFIRST: break;
-// case NS_rtf::LN_CPNBTEPAP: break;
-// case NS_rtf::LN_PNFBPLVCFIRST: break;
-// case NS_rtf::LN_PNLVCFIRST: break;
-// case NS_rtf::LN_CPNBTELVC: break;
-// case NS_rtf::LN_FCISLANDFIRST: break;
-// case NS_rtf::LN_FCISLANDLIM: break;
-// case NS_rtf::LN_CFCLCB: break;
-// case NS_rtf::LN_FCSTSHFORIG: break;
-// case NS_rtf::LN_LCBSTSHFORIG: break;
-// case NS_rtf::LN_FCSTSHF: break;
-// case NS_rtf::LN_LCBSTSHF: break;
-// case NS_rtf::LN_FCPLCFFNDREF: break;
-// case NS_rtf::LN_LCBPLCFFNDREF: break;
-// case NS_rtf::LN_FCPLCFFNDTXT: break;
-// case NS_rtf::LN_LCBPLCFFNDTXT: break;
-// case NS_rtf::LN_FCPLCFANDREF: break;
-// case NS_rtf::LN_LCBPLCFANDREF: break;
-// case NS_rtf::LN_FCPLCFANDTXT: break;
-// case NS_rtf::LN_LCBPLCFANDTXT: break;
-// case NS_rtf::LN_FCPLCFSED: break;
-// case NS_rtf::LN_LCBPLCFSED: break;
-// case NS_rtf::LN_FCPLCFPAD: break;
-// case NS_rtf::LN_LCBPLCFPAD: break;
-// case NS_rtf::LN_FCPLCFPHE: break;
-// case NS_rtf::LN_LCBPLCFPHE: break;
-// case NS_rtf::LN_FCSTTBFGLSY: break;
-// case NS_rtf::LN_LCBSTTBFGLSY: break;
-// case NS_rtf::LN_FCPLCFGLSY: break;
-// case NS_rtf::LN_LCBPLCFGLSY: break;
-// case NS_rtf::LN_FCPLCFHDD: break;
-// case NS_rtf::LN_LCBPLCFHDD: break;
-// case NS_rtf::LN_FCPLCFBTECHPX: break;
-// case NS_rtf::LN_LCBPLCFBTECHPX: break;
-// case NS_rtf::LN_FCPLCFBTEPAPX: break;
-// case NS_rtf::LN_LCBPLCFBTEPAPX: break;
-// case NS_rtf::LN_FCPLCFSEA: break;
-// case NS_rtf::LN_LCBPLCFSEA: break;
-// case NS_rtf::LN_FCSTTBFFFN: break;
-// case NS_rtf::LN_LCBSTTBFFFN: break;
-// case NS_rtf::LN_FCPLCFFLDMOM: break;
-// case NS_rtf::LN_LCBPLCFFLDMOM: break;
-// case NS_rtf::LN_FCPLCFFLDHDR: break;
-// case NS_rtf::LN_LCBPLCFFLDHDR: break;
-// case NS_rtf::LN_FCPLCFFLDFTN: break;
-// case NS_rtf::LN_LCBPLCFFLDFTN: break;
-// case NS_rtf::LN_FCPLCFFLDATN: break;
-// case NS_rtf::LN_LCBPLCFFLDATN: break;
-// case NS_rtf::LN_FCPLCFFLDMCR: break;
-// case NS_rtf::LN_LCBPLCFFLDMCR: break;
-// case NS_rtf::LN_FCSTTBFBKMK: break;
-// case NS_rtf::LN_LCBSTTBFBKMK: break;
-// case NS_rtf::LN_FCPLCFBKF: break;
-// case NS_rtf::LN_LCBPLCFBKF: break;
-// case NS_rtf::LN_FCPLCFBKL: break;
-// case NS_rtf::LN_LCBPLCFBKL: break;
-// case NS_rtf::LN_FCCMDS: break;
-// case NS_rtf::LN_LCBCMDS: break;
-// case NS_rtf::LN_FCPLCMCR: break;
-// case NS_rtf::LN_LCBPLCMCR: break;
-// case NS_rtf::LN_FCSTTBFMCR: break;
-// case NS_rtf::LN_LCBSTTBFMCR: break;
-// case NS_rtf::LN_FCPRDRVR: break;
-// case NS_rtf::LN_LCBPRDRVR: break;
-// case NS_rtf::LN_FCPRENVPORT: break;
-// case NS_rtf::LN_LCBPRENVPORT: break;
-// case NS_rtf::LN_FCPRENVLAND: break;
-// case NS_rtf::LN_LCBPRENVLAND: break;
-// case NS_rtf::LN_FCWSS: break;
-// case NS_rtf::LN_LCBWSS: break;
-// case NS_rtf::LN_FCDOP: break;
-// case NS_rtf::LN_LCBDOP: break;
-// case NS_rtf::LN_FCSTTBFASSOC: break;
-// case NS_rtf::LN_LCBSTTBFASSOC: break;
-// case NS_rtf::LN_FCCLX: break;
-// case NS_rtf::LN_LCBCLX: break;
-// case NS_rtf::LN_FCPLCFPGDFTN: break;
-// case NS_rtf::LN_LCBPLCFPGDFTN: break;
-// case NS_rtf::LN_FCAUTOSAVESOURCE: break;
-// case NS_rtf::LN_LCBAUTOSAVESOURCE: break;
-// case NS_rtf::LN_FCGRPXSTATNOWNERS: break;
-// case NS_rtf::LN_LCBGRPXSTATNOWNERS: break;
-// case NS_rtf::LN_FCSTTBFATNBKMK: break;
-// case NS_rtf::LN_LCBSTTBFATNBKMK: break;
-// case NS_rtf::LN_FCPLCDOAMOM: break;
-// case NS_rtf::LN_LCBPLCDOAMOM: break;
-// case NS_rtf::LN_FCPLCDOAHDR: break;
-// case NS_rtf::LN_LCBPLCDOAHDR: break;
-// case NS_rtf::LN_FCPLCSPAMOM: break;
-// case NS_rtf::LN_LCBPLCSPAMOM: break;
-// case NS_rtf::LN_FCPLCSPAHDR: break;
-// case NS_rtf::LN_LCBPLCSPAHDR: break;
-// case NS_rtf::LN_FCPLCFATNBKF: break;
-// case NS_rtf::LN_LCBPLCFATNBKF: break;
-// case NS_rtf::LN_FCPLCFATNBKL: break;
-// case NS_rtf::LN_LCBPLCFATNBKL: break;
-// case NS_rtf::LN_FCPMS: break;
-// case NS_rtf::LN_LCBPMS: break;
-// case NS_rtf::LN_FCFORMFLDSTTBF: break;
-// case NS_rtf::LN_LCBFORMFLDSTTBF: break;
-// case NS_rtf::LN_FCPLCFENDREF: break;
-// case NS_rtf::LN_LCBPLCFENDREF: break;
-// case NS_rtf::LN_FCPLCFENDTXT: break;
-// case NS_rtf::LN_LCBPLCFENDTXT: break;
-// case NS_rtf::LN_FCPLCFFLDEDN: break;
-// case NS_rtf::LN_LCBPLCFFLDEDN: break;
-// case NS_rtf::LN_FCPLCFPGDEDN: break;
-// case NS_rtf::LN_LCBPLCFPGDEDN: break;
-// case NS_rtf::LN_FCDGGINFO: break;
-// case NS_rtf::LN_LCBDGGINFO: break;
-// case NS_rtf::LN_FCSTTBFRMARK: break;
-// case NS_rtf::LN_LCBSTTBFRMARK: break;
-// case NS_rtf::LN_FCSTTBFCAPTION: break;
-// case NS_rtf::LN_LCBSTTBFCAPTION: break;
-// case NS_rtf::LN_FCSTTBFAUTOCAPTION: break;
-// case NS_rtf::LN_LCBSTTBFAUTOCAPTION: break;
-// case NS_rtf::LN_FCPLCFWKB: break;
-// case NS_rtf::LN_LCBPLCFWKB: break;
-// case NS_rtf::LN_FCPLCFSPL: break;
-// case NS_rtf::LN_LCBPLCFSPL: break;
-// case NS_rtf::LN_FCPLCFTXBXTXT: break;
-// case NS_rtf::LN_LCBPLCFTXBXTXT: break;
-// case NS_rtf::LN_FCPLCFFLDTXBX: break;
-// case NS_rtf::LN_LCBPLCFFLDTXBX: break;
-// case NS_rtf::LN_FCPLCFHDRTXBXTXT: break;
-// case NS_rtf::LN_LCBPLCFHDRTXBXTXT: break;
-// case NS_rtf::LN_FCPLCFFLDHDRTXBX: break;
-// case NS_rtf::LN_LCBPLCFFLDHDRTXBX: break;
-// case NS_rtf::LN_FCSTWUSER: break;
-// case NS_rtf::LN_LCBSTWUSER: break;
-// case NS_rtf::LN_FCSTTBTTMBD: break;
-// case NS_rtf::LN_LCBSTTBTTMBD: break;
-// case NS_rtf::LN_FCUNUSED: break;
-// case NS_rtf::LN_LCBUNUSED: break;
-// case NS_rtf::LN_FCPGDMOTHER: break;
-// case NS_rtf::LN_LCBPGDMOTHER: break;
-// case NS_rtf::LN_FCBKDMOTHER: break;
-// case NS_rtf::LN_LCBBKDMOTHER: break;
-// case NS_rtf::LN_FCPGDFTN: break;
-// case NS_rtf::LN_LCBPGDFTN: break;
-// case NS_rtf::LN_FCBKDFTN: break;
-// case NS_rtf::LN_LCBBKDFTN: break;
-// case NS_rtf::LN_FCPGDEDN: break;
-// case NS_rtf::LN_LCBPGDEDN: break;
-// case NS_rtf::LN_FCBKDEDN: break;
-// case NS_rtf::LN_LCBBKDEDN: break;
-// case NS_rtf::LN_FCSTTBFINTLFLD: break;
-// case NS_rtf::LN_LCBSTTBFINTLFLD: break;
-// case NS_rtf::LN_FCROUTESLIP: break;
-// case NS_rtf::LN_LCBROUTESLIP: break;
-// case NS_rtf::LN_FCSTTBSAVEDBY: break;
-// case NS_rtf::LN_LCBSTTBSAVEDBY: break;
-// case NS_rtf::LN_FCSTTBFNM: break;
-// case NS_rtf::LN_LCBSTTBFNM: break;
-// case NS_rtf::LN_FCPLCFLST: break;
-// case NS_rtf::LN_LCBPLCFLST: break;
-// case NS_rtf::LN_FCPLFLFO: break;
-// case NS_rtf::LN_LCBPLFLFO: break;
-// case NS_rtf::LN_FCPLCFTXBXBKD: break;
-// case NS_rtf::LN_LCBPLCFTXBXBKD: break;
-// case NS_rtf::LN_FCPLCFTXBXHDRBKD: break;
-// case NS_rtf::LN_LCBPLCFTXBXHDRBKD: break;
-// case NS_rtf::LN_FCDOCUNDO: break;
-// case NS_rtf::LN_LCBDOCUNDO: break;
-// case NS_rtf::LN_FCRGBUSE: break;
-// case NS_rtf::LN_LCBRGBUSE: break;
-// case NS_rtf::LN_FCUSP: break;
-// case NS_rtf::LN_LCBUSP: break;
-// case NS_rtf::LN_FCUSKF: break;
-// case NS_rtf::LN_LCBUSKF: break;
-// case NS_rtf::LN_FCPLCUPCRGBUSE: break;
-// case NS_rtf::LN_LCBPLCUPCRGBUSE: break;
-// case NS_rtf::LN_FCPLCUPCUSP: break;
-// case NS_rtf::LN_LCBPLCUPCUSP: break;
-// case NS_rtf::LN_FCSTTBGLSYSTYLE: break;
-// case NS_rtf::LN_LCBSTTBGLSYSTYLE: break;
-// case NS_rtf::LN_FCPLGOSL: break;
-// case NS_rtf::LN_LCBPLGOSL: break;
-// case NS_rtf::LN_FCPLCOCX: break;
-// case NS_rtf::LN_LCBPLCOCX: break;
-// case NS_rtf::LN_FCPLCFBTELVC: break;
-// case NS_rtf::LN_LCBPLCFBTELVC: break;
-// case NS_rtf::LN_DWLOWDATETIME: break;
-// case NS_rtf::LN_DWHIGHDATETIME: break;
-// case NS_rtf::LN_FCPLCFLVC: break;
-// case NS_rtf::LN_LCBPLCFLVC: break;
-// case NS_rtf::LN_FCPLCASUMY: break;
-// case NS_rtf::LN_LCBPLCASUMY: break;
-// case NS_rtf::LN_FCPLCFGRAM: break;
-// case NS_rtf::LN_LCBPLCFGRAM: break;
-// case NS_rtf::LN_FCSTTBLISTNAMES: break;
-// case NS_rtf::LN_LCBSTTBLISTNAMES: break;
-// case NS_rtf::LN_FCSTTBFUSSR: break;
-// case NS_rtf::LN_LCBSTTBFUSSR: break;
-// case NS_rtf::LN_FN: break;
-// case NS_rtf::LN_FCSEPX: break;
-// case NS_rtf::LN_FNMPR: break;
-// case NS_rtf::LN_FCMPR: break;
-// case NS_rtf::LN_ICOFORE: break;
-// case NS_rtf::LN_ICOBACK: break;
-// case NS_rtf::LN_IPAT: break;
-// case NS_rtf::LN_SHDFORECOLOR: break;
-// case NS_rtf::LN_SHDBACKCOLOR: break;
-// case NS_rtf::LN_SHDPATTERN: break;
-// case NS_rtf::LN_DPTLINEWIDTH: break;
-// case NS_rtf::LN_BRCTYPE: break;
-// case NS_rtf::LN_ICO: break;
-// case NS_rtf::LN_DPTSPACE: break;
-// case NS_rtf::LN_FSHADOW: break;
-// case NS_rtf::LN_FFRAME: break;
-// case NS_rtf::LN_UNUSED2_15: break;
-// case NS_rtf::LN_FFIRSTMERGED: break;
-// case NS_rtf::LN_FMERGED: break;
-// case NS_rtf::LN_FVERTICAL: break;
-// case NS_rtf::LN_FBACKWARD: break;
-// case NS_rtf::LN_FROTATEFONT: break;
-// case NS_rtf::LN_FVERTMERGE: break;
-// case NS_rtf::LN_FVERTRESTART: break;
-// case NS_rtf::LN_VERTALIGN: break;
-// case NS_rtf::LN_FUNUSED: break;
-// case NS_rtf::LN_WUNUSED: break;
-// case NS_rtf::LN_BRCTOP: break;
-// case NS_rtf::LN_BRCLEFT: break;
-// case NS_rtf::LN_BRCBOTTOM: break;
-// case NS_rtf::LN_BRCRIGHT: break;
-// case NS_rtf::LN_IBKL: break;
-// case NS_rtf::LN_ITCFIRST: break;
-// case NS_rtf::LN_FPUB: break;
-// case NS_rtf::LN_ITCLIM: break;
-// case NS_rtf::LN_FCOL: break;
-// case NS_rtf::LN_LINECOLOR: break;
-// case NS_rtf::LN_LINEWIDTH: break;
-// case NS_rtf::LN_LINETYPE: break;
-// case NS_rtf::LN_MM: break;
-// case NS_rtf::LN_XEXT: break;
-// case NS_rtf::LN_YEXT: break;
-// case NS_rtf::LN_HMF: break;
-// case NS_rtf::LN_LCB: break;
-// case NS_rtf::LN_CBHEADER: break;
-// case NS_rtf::LN_MFP: break;
-// case NS_rtf::LN_BM_RCWINMF: break;
-// case NS_rtf::LN_DXAGOAL: break;
-// case NS_rtf::LN_DYAGOAL: break;
-// case NS_rtf::LN_MX: break;
-// case NS_rtf::LN_MY: break;
-// case NS_rtf::LN_DXACROPLEFT: break;
-// case NS_rtf::LN_DYACROPTOP: break;
-// case NS_rtf::LN_DXACROPRIGHT: break;
-// case NS_rtf::LN_DYACROPBOTTOM: break;
-// case NS_rtf::LN_BRCL: break;
-// case NS_rtf::LN_FFRAMEEMPTY: break;
-// case NS_rtf::LN_FBITMAP: break;
-// case NS_rtf::LN_FDRAWHATCH: break;
-// case NS_rtf::LN_FERROR: break;
-// case NS_rtf::LN_BPP: break;
-// case NS_rtf::LN_DXAORIGIN: break;
-// case NS_rtf::LN_DYAORIGIN: break;
-// case NS_rtf::LN_CPROPS: break;
-// case NS_rtf::LN_LINEPROPSTOP: break;
-// case NS_rtf::LN_LINEPROPSLEFT: break;
-// case NS_rtf::LN_LINEPROPSBOTTOM: break;
-// case NS_rtf::LN_LINEPROPSRIGHT: break;
-// case NS_rtf::LN_LINEPROPSHORIZONTAL: break;
-// case NS_rtf::LN_LINEPROPSVERTICAL: break;
-// case NS_rtf::LN_headerr: break;
-// case NS_rtf::LN_footerr: break;
-// case NS_rtf::LN_endnote: break;
-// case NS_rtf::LN_BOOKMARKNAME: break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_LISTLEVEL:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
{
//add a new level to the level vector and make it the current one
m_pImpl->AddLevel();
@@ -792,30 +408,8 @@ void ListTable::attribute(Id nName, Value & rVal)
pProperties->resolve(*this);
}
break;
-// case NS_rtf::LN_LFO: break;
-// case NS_rtf::LN_F: break;
-// case NS_rtf::LN_ALTFONTNAME: break;
-// case NS_rtf::LN_XSZFFN: break;
-// case NS_rtf::LN_XSTZNAME: break;
-// case NS_rtf::LN_XSTZNAME1: break;
-// case NS_rtf::LN_UPXSTART: break;
-// case NS_rtf::LN_UPX: break;
-// case NS_rtf::LN_sed: break;
-// case NS_rtf::LN_picf: break;
-// case NS_rtf::LN_rgbrc: break;
-// case NS_rtf::LN_shd: break;
-// case NS_rtf::LN_cellShd: break;
-// case NS_rtf::LN_cellTopColor: break;
-// case NS_rtf::LN_cellLeftColor: break;
-// case NS_rtf::LN_cellBottomColor: break;
-// case NS_rtf::LN_cellRightColor: break;
-
-// case NS_rtf::LN_LISTTABLE: break;
-// case NS_rtf::LN_LFOTABLE: break;
-// case NS_rtf::LN_FONTTABLE: break;
-// case NS_rtf::LN_STYLESHEET: break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_AbstractNum_abstractNumId:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
{
sal_Int32 nVal = rVal.getString().toInt32();
m_pImpl->m_pCurrentEntry->nAbstractNumId = nVal;
@@ -878,8 +472,8 @@ void ListTable::sprm(Sprm & rSprm)
/* WRITERFILTERSTATUS: table: ListTable_sprm */
switch( nSprmId )
{
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Numbering_abstractNum:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
{
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
if(pProperties.get())
@@ -894,8 +488,8 @@ void ListTable::sprm(Sprm & rSprm)
}
}
break;
- /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Numbering_num:
+ /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
{
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
if(pProperties.get())
@@ -908,15 +502,15 @@ void ListTable::sprm(Sprm & rSprm)
}
}
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_AbstractNum_multiLevelType:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
break;
- /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
case NS_rtf::LN_TPLC:
+ /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->nTPLC = nIntValue;
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_AbstractNum_lvl:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
{
m_pImpl->AddLevel();
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
@@ -928,30 +522,24 @@ void ListTable::sprm(Sprm & rSprm)
// case NS_rtf::LN_LSID:
// m_pImpl->m_pCurrentEntry->nListId = nIntValue;
// break;
+ case NS_rtf::LN_RGBXCHNUMS:
/* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
- case NS_rtf::LN_RGBXCHNUMS: break;
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
+ break;
case NS_rtf::LN_ISTARTAT:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
case NS_rtf::LN_NFC:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
case NS_rtf::LN_JC:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
case NS_rtf::LN_FLEGAL:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
case NS_rtf::LN_FNORESTART:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
- case NS_rtf::LN_FPREV:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
- case NS_rtf::LN_FPREVSPACE:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
- case NS_rtf::LN_FWORD6:
- /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
+ case NS_rtf::LN_FIDENTSAV:
+ case NS_rtf::LN_FCONVERTED:
+ case NS_rtf::LN_FTENTATIVE:
case NS_rtf::LN_IXCHFOLLOW:
+ /* WRITERFILTERSTATUS: done: 75, planned: 0, spent: 0 */
ApplyLevelValues( nSprmId, nIntValue );
break;
case NS_ooxml::LN_CT_Lvl_lvlText:
case NS_ooxml::LN_CT_Lvl_rPr : //contains LN_EG_RPrBase_rFonts
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
{
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
if(pProperties.get())
@@ -959,6 +547,7 @@ void ListTable::sprm(Sprm & rSprm)
}
break;
case NS_ooxml::LN_CT_NumLvl_lvl:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
{
// overwrite level
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
@@ -981,6 +570,7 @@ void ListTable::sprm(Sprm & rSprm)
break;
case NS_ooxml::LN_CT_Lvl_pPr:
case NS_ooxml::LN_CT_PPrBase_ind:
+ /* WRITERFILTERSTATUS: done: 50, planned: 0, spent: 0 */
{
//todo: how to handle paragraph properties within numbering levels (except LeftIndent and FirstLineIndent)?
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
@@ -997,6 +587,7 @@ void ListTable::sprm(Sprm & rSprm)
}
break;
case NS_ooxml::LN_CT_Lvl_suff:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
//todo: currently unsupported suffix
//can be: "none", "space", "tab"
break;
@@ -1006,6 +597,7 @@ void ListTable::sprm(Sprm & rSprm)
case NS_sprm::LN_CHps: // sprmCHps
case NS_ooxml::LN_EG_RPrBase_lang:
case NS_ooxml::LN_EG_RPrBase_eastAsianLayout:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
//no break!
default:
if(m_pImpl->m_pCurrentEntry->pCurrentProperties.get())
@@ -1026,30 +618,41 @@ void ListTable::ApplyLevelValues( sal_Int32 nId, sal_Int32 nIntValue)
switch(nId)
{
case NS_rtf::LN_ISTARTAT:
+ /* WRITERFILTERSTATUS: */
m_pImpl->m_pCurrentEntry->pCurrentProperties->nIStartAt = nIntValue;
break;
case NS_rtf::LN_NFC:
+ /* WRITERFILTERSTATUS: */
m_pImpl->m_pCurrentEntry->pCurrentProperties->nNFC = nIntValue;
break;
case NS_rtf::LN_JC:
+ /* WRITERFILTERSTATUS: */
m_pImpl->m_pCurrentEntry->pCurrentProperties->nJC = nIntValue;
break;
case NS_rtf::LN_FLEGAL:
+ /* WRITERFILTERSTATUS: */
m_pImpl->m_pCurrentEntry->pCurrentProperties->nFLegal = nIntValue;
break;
case NS_rtf::LN_FNORESTART:
+ /* WRITERFILTERSTATUS: */
m_pImpl->m_pCurrentEntry->pCurrentProperties->nFNoRestart = nIntValue;
break;
- case NS_rtf::LN_FPREV:
+ case NS_rtf::LN_FIDENTSAV:
+ /* WRITERFILTERSTATUS: */
m_pImpl->m_pCurrentEntry->pCurrentProperties->nFPrev = nIntValue;
break;
- case NS_rtf::LN_FPREVSPACE:
+ case NS_rtf::LN_FCONVERTED:
+ /* WRITERFILTERSTATUS: */
m_pImpl->m_pCurrentEntry->pCurrentProperties->nFPrevSpace = nIntValue;
break;
+#if 0
case NS_rtf::LN_FWORD6:
+ /* WRITERFILTERSTATUS: */
m_pImpl->m_pCurrentEntry->pCurrentProperties->nFWord6 = nIntValue;
break;
+#endif
case NS_rtf::LN_IXCHFOLLOW:
+ /* WRITERFILTERSTATUS: */
m_pImpl->m_pCurrentEntry->pCurrentProperties->nXChFollow = nIntValue;
break;
default:
diff --git a/writerfilter/source/dmapper/PropertyIds.cxx b/writerfilter/source/dmapper/PropertyIds.cxx
index 896bc1a06e94..04dcf594339c 100644
--- a/writerfilter/source/dmapper/PropertyIds.cxx
+++ b/writerfilter/source/dmapper/PropertyIds.cxx
@@ -312,6 +312,7 @@ const rtl::OUString& PropertyNameSupplier::GetName( PropertyIds eId ) const
case PROP_STREAM_NAME: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("StreamName")); break;
case PROP_BITMAP : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Bitmap")); break;
case PROP_IS_DATE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IsDate")); break;
+ case PROP_TAB_STOP_DISTANCE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TabStopDistance")); break;
case PROP_CNF_STYLE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CnfStyle")); break;
case PROP_INDENT_AT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IndentAt")); break;
case PROP_FIRST_LINE_INDENT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FirstLineIndent")); break;
diff --git a/writerfilter/source/dmapper/PropertyIds.hxx b/writerfilter/source/dmapper/PropertyIds.hxx
index 461373c23a45..f9c4c333e8ea 100644
--- a/writerfilter/source/dmapper/PropertyIds.hxx
+++ b/writerfilter/source/dmapper/PropertyIds.hxx
@@ -275,12 +275,13 @@ enum PropertyIds
/*239*/ ,PROP_STREAM_NAME
/*240*/ ,PROP_BITMAP
/*241*/ ,PROP_IS_DATE
-/*242*/ ,PROP_CNF_STYLE
-/*243*/ ,PROP_INDENT_AT
-/*244*/ ,PROP_FIRST_LINE_INDENT
-/*245*/ ,PROP_NUMBERING_STYLE_NAME
-/*246*/ ,PROP_LISTTAB_STOP_POSITION
-/*247*/ ,PROP_POSITION_AND_SPACE_MODE
+/*242*/ ,PROP_TAB_STOP_DISTANCE
+/*243*/ ,PROP_CNF_STYLE
+/*244*/ ,PROP_INDENT_AT
+/*245*/ ,PROP_FIRST_LINE_INDENT
+/*246*/ ,PROP_NUMBERING_STYLE_NAME
+/*247*/ ,PROP_LISTTAB_STOP_POSITION
+/*248*/ ,PROP_POSITION_AND_SPACE_MODE
};
struct PropertyNameSupplier_Impl;
class PropertyNameSupplier
diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx
index d0928f1bac8f..8d9c1fa84a7f 100644
--- a/writerfilter/source/dmapper/PropertyMap.cxx
+++ b/writerfilter/source/dmapper/PropertyMap.cxx
@@ -38,6 +38,8 @@
#include <com/sun/star/text/WritingMode.hpp>
#include <com/sun/star/text/XTextColumns.hpp>
#include <com/sun/star/text/XText.hpp>
+#include "dmapperLoggers.hxx"
+#include "PropertyMapHelper.hxx"
using namespace ::com::sun::star;
@@ -125,6 +127,47 @@ void PropertyMap::Insert( PropertyIds eId, bool bIsTextProperty, const uno::Any&
rAny ));
Invalidate();
}
+
+#ifdef DEBUG_DOMAINMAPPER
+XMLTag::Pointer_t PropertyMap::toTag() const
+{
+ XMLTag::Pointer_t pResult(new XMLTag("PropertyMap"));
+
+ PropertyNameSupplier& rPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier();
+ PropertyMap::const_iterator aMapIter = begin();
+ while (aMapIter != end())
+ {
+ XMLTag::Pointer_t pTag(new XMLTag("property"));
+
+ pTag->addAttr("name", rPropNameSupplier.GetName( aMapIter->first.eId ));
+
+ switch (aMapIter->first.eId)
+ {
+ case PROP_TABLE_COLUMN_SEPARATORS:
+ pTag->addTag(lcl_TableColumnSeparatorsToTag(aMapIter->second));
+ break;
+ default:
+ {
+ try {
+ sal_Int32 aInt;
+ aMapIter->second >>= aInt;
+ pTag->addAttr("value", aInt);
+ }
+ catch (...) {
+ }
+ }
+ break;
+ }
+
+ pResult->addTag(pTag);
+
+ ++aMapIter;
+ }
+
+ return pResult;
+}
+#endif
+
/*-- 13.12.2006 10:46:42---------------------------------------------------
-----------------------------------------------------------------------*/
@@ -152,6 +195,8 @@ void PropertyMap::insert( const PropertyMapPtr pMap, bool bOverwrite )
::std::for_each( pMap->begin(), pMap->end(), removeExistingElements<PropertyMap::value_type>(*this) );
_PropertyMap::insert(pMap->begin(), pMap->end());
insertTableProperties(pMap.get());
+
+ Invalidate();
}
}
/*-- 06.06.2007 15:49:09---------------------------------------------------
@@ -166,6 +211,9 @@ const uno::Reference< text::XFootnote>& PropertyMap::GetFootnote() const
-----------------------------------------------------------------------*/
void PropertyMap::insertTableProperties( const PropertyMap* )
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->element("PropertyMap.insertTableProperties");
+#endif
}
/*-- 24.07.2006 08:29:01---------------------------------------------------
@@ -1043,6 +1091,11 @@ void TablePropertyMap::setValue( TablePropertyMapTarget eWhich, sal_Int32 nSet )
-----------------------------------------------------------------------*/
void TablePropertyMap::insertTableProperties( const PropertyMap* pMap )
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("TablePropertyMap.insertTableProperties");
+ dmapper_logger->addTag(pMap->toTag());
+#endif
+
const TablePropertyMap* pSource = dynamic_cast< const TablePropertyMap* >(pMap);
if( pSource )
{
@@ -1056,6 +1109,10 @@ void TablePropertyMap::insertTableProperties( const PropertyMap* pMap )
}
}
}
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->addTag(toTag());
+ dmapper_logger->endElement("TablePropertyMap.insertTableProperties");
+#endif
}
diff --git a/writerfilter/source/dmapper/PropertyMap.hxx b/writerfilter/source/dmapper/PropertyMap.hxx
index be6209cd1f30..0f934b37d7d8 100644
--- a/writerfilter/source/dmapper/PropertyMap.hxx
+++ b/writerfilter/source/dmapper/PropertyMap.hxx
@@ -39,6 +39,10 @@
#include <map>
#include <vector>
+#ifdef DEBUG_DOMAINMAPPER
+#include <resourcemodel/TagLogger.hxx>
+#endif
+
namespace com{namespace sun{namespace star{
namespace beans{
struct PropertyValue;
@@ -99,9 +103,16 @@ class PropertyMap : public _PropertyMap
::rtl::OUString m_sFootnoteFontName;
::com::sun::star::uno::Reference< ::com::sun::star::text::XFootnote > m_xFootnote;
- public:
- PropertyMap();
- virtual ~PropertyMap();
+protected:
+ void Invalidate()
+ {
+ if(m_aValues.getLength())
+ m_aValues.realloc( 0 );
+ }
+
+public:
+ PropertyMap();
+ virtual ~PropertyMap();
::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > GetPropertyValues();
bool hasEmptyPropertyValues() const {return !m_aValues.getLength();}
@@ -111,12 +122,6 @@ class PropertyMap : public _PropertyMap
using _PropertyMap::insert;
void insert(const boost::shared_ptr<PropertyMap> pMap, bool bOverwrite = true);
- void Invalidate()
- {
- if(m_aValues.getLength())
- m_aValues.realloc( 0 );
- }
-
const ::com::sun::star::uno::Reference< ::com::sun::star::text::XFootnote>& GetFootnote() const;
void SetFootnote( ::com::sun::star::uno::Reference< ::com::sun::star::text::XFootnote> xF ) { m_xFootnote = xF; }
@@ -131,6 +136,10 @@ class PropertyMap : public _PropertyMap
virtual void insertTableProperties( const PropertyMap* );
+#ifdef DEBUG_DOMAINMAPPER
+ virtual XMLTag::Pointer_t toTag() const;
+#endif
+
};
typedef boost::shared_ptr<PropertyMap> PropertyMapPtr;
diff --git a/writerfilter/source/dmapper/PropertyMapHelper.cxx b/writerfilter/source/dmapper/PropertyMapHelper.cxx
new file mode 100644
index 000000000000..555003774113
--- /dev/null
+++ b/writerfilter/source/dmapper/PropertyMapHelper.cxx
@@ -0,0 +1,129 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: PropertyMap.hxx,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.
+ *
+ ************************************************************************/
+
+#include <com/sun/star/text/TableColumnSeparator.hpp>
+#include <resourcemodel/TagLogger.hxx>
+#include "PropertyMapHelper.hxx"
+
+namespace writerfilter
+{
+namespace dmapper
+{
+
+using namespace ::com::sun::star;
+
+ XMLTag::Pointer_t lcl_TableColumnSeparatorsToTag(const uno::Any & rTableColumnSeparators)
+{
+ uno::Sequence<text::TableColumnSeparator> aSeq;
+ rTableColumnSeparators >>= aSeq;
+
+ XMLTag::Pointer_t pResult(new XMLTag("property.TableColumnSeparators"));
+
+ sal_uInt32 nLength = aSeq.getLength();
+ for (sal_uInt32 n = 0; n < nLength; ++n)
+ {
+ XMLTag::Pointer_t pTagSeparator(new XMLTag("separator"));
+
+ pTagSeparator->addAttr("position", aSeq[n].Position);
+ pTagSeparator->addAttr("visible", aSeq[n].IsVisible);
+
+ pResult->addTag(pTagSeparator);
+ }
+
+ return pResult;
+}
+
+XMLTag::Pointer_t lcl_PropertyValuesToTag(beans::PropertyValues & rValues)
+{
+ XMLTag::Pointer_t pResult(new XMLTag("propertyValues"));
+
+ beans::PropertyValue * pValues = rValues.getArray();
+
+ for (sal_Int32 n = 0; n < rValues.getLength(); ++n)
+ {
+ XMLTag::Pointer_t pTag(new XMLTag("propertyValue"));
+
+ pTag->addAttr("name", pValues[n].Name);
+
+ try
+ {
+ sal_Int32 aInt = 0;
+ pValues[n].Value >>= aInt;
+ pTag->addAttr("value", aInt);
+ }
+ catch (...)
+ {
+ }
+
+ if (pValues[n].Name.equalsAscii("TableColumnSeparators"))
+ {
+ pTag->addTag(lcl_TableColumnSeparatorsToTag(pValues[n].Value));
+ }
+
+ pResult->addTag(pTag);
+ }
+
+ return pResult;
+}
+
+XMLTag::Pointer_t lcl_PropertyValueSeqToTag(PropertyValueSeq_t & rPropValSeq)
+{
+ XMLTag::Pointer_t pResult(new XMLTag("PropertyValueSeq"));
+
+ beans::PropertyValues * pValues = rPropValSeq.getArray();
+
+ for (sal_Int32 n = 0; n < rPropValSeq.getLength(); ++n)
+ {
+ XMLTag::Pointer_t pTag(lcl_PropertyValuesToTag(pValues[n]));
+
+ pResult->addTag(pTag);
+ }
+
+ return pResult;
+}
+
+XMLTag::Pointer_t lcl_PropertyValueSeqSeqToTag(PropertyValueSeqSeq_t rPropValSeqSeq)
+{
+ XMLTag::Pointer_t pResult(new XMLTag("PropertyValueSeq"));
+
+ PropertyValueSeq_t * pValues = rPropValSeqSeq.getArray();
+
+ for (sal_Int32 n = 0; n < rPropValSeqSeq.getLength(); ++n)
+ {
+ XMLTag::Pointer_t pTag(lcl_PropertyValueSeqToTag(pValues[n]));
+
+ pResult->addTag(pTag);
+ }
+
+ return pResult;
+}
+
+}
+}
diff --git a/testshl2/workben/dlltest/onefunc.cxx b/writerfilter/source/dmapper/PropertyMapHelper.hxx
index 081018cab85f..fc9ea0a85bb4 100644
--- a/testshl2/workben/dlltest/onefunc.cxx
+++ b/writerfilter/source/dmapper/PropertyMapHelper.hxx
@@ -2,10 +2,13 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2000, 2010 Oracle and/or its affiliates.
+ * Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
+ * $RCSfile: PropertyMap.hxx,v $
+ * $Revision: 1.18 $
+ *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -25,27 +28,21 @@
*
************************************************************************/
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_testshl2.hxx"
-
-#include <stdio.h>
-#include <sal/types.h>
-#include "registerfunc.h"
+#include "PropertyMap.hxx"
+#include <com/sun/star/beans/PropertyValues.hpp>
-extern "C" void SAL_CALL firstfunc()
+namespace writerfilter
{
- printf("first func called.\n");
-}
-extern "C" void SAL_CALL secondfunc()
+namespace dmapper
{
- printf("second func called.\n");
-}
-extern "C" void SAL_CALL registerAllTestFunction(FktRegFuncPtr _pFunc)
-{
- if (_pFunc)
- {
- (_pFunc)(&firstfunc, "firstfunc");
- (_pFunc)(&secondfunc, "secondfunc");
- }
+XMLTag::Pointer_t lcl_TableColumnSeparatorsToTag(const uno::Any & rTableColumnSeparators);
+XMLTag::Pointer_t lcl_PropertyValuesToTag(beans::PropertyValues & rValues);
+
+typedef uno::Sequence<beans::PropertyValues> PropertyValueSeq_t;
+XMLTag::Pointer_t lcl_PropertyValueSeqToTag(PropertyValueSeq_t & rPropValSeq);
+
+typedef uno::Sequence<PropertyValueSeq_t> PropertyValueSeqSeq_t;
+XMLTag::Pointer_t lcl_PropertyValueSeqSeqToTag(PropertyValueSeqSeq_t & rPropValSeqSeq);
+}
}
diff --git a/writerfilter/source/dmapper/SettingsTable.cxx b/writerfilter/source/dmapper/SettingsTable.cxx
index dd5796a22ceb..10fc83e22dea 100644..100755
--- a/writerfilter/source/dmapper/SettingsTable.cxx
+++ b/writerfilter/source/dmapper/SettingsTable.cxx
@@ -1,79 +1,226 @@
-#include "SettingsTable.hxx"
-
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: SettingsTable.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.
+ *
+ ************************************************************************/
+
+#include <SettingsTable.hxx>
+#include <doctok/resourceids.hxx>
#include <ooxml/resourceids.hxx>
+#include <stdio.h>
+#include <ListTable.hxx>
+#include <ConversionHelper.hxx>
+#include <rtl/ustring.hxx>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/text/XTextDocument.hpp>
+namespace writerfilter {
+namespace dmapper
+{
-#if DEBUG
-#include <iostream>
-#endif
+struct SettingsTable_Impl
+{
+ DomainMapper& m_rDMapper;
+ const uno::Reference< lang::XMultiServiceFactory > m_xTextFactory;
-using namespace com::sun::star;
-using namespace rtl;
+ ListTablePtr m_pListTable;
-namespace writerfilter {
-namespace dmapper {
+ ::rtl::OUString m_sCharacterSpacing;
+ ::rtl::OUString m_sDecimalSymbol;
+ ::rtl::OUString m_sListSeparatorForFields; //2.15.1.56 listSeparator (List Separator for Field Code Evaluation)
-SettingsTable_Impl::SettingsTable_Impl( ) :
- m_bRecordChanges( false )
-{
-}
+ int m_nDefaultTabStop;
+ int m_nHyphenationZone;
-SettingsTable_Impl::~SettingsTable_Impl( )
-{
-}
+ bool m_bNoPunctuationKerning;
+ bool m_doNotIncludeSubdocsInStats; // Do Not Include Content in Text Boxes, Footnotes, and Endnotes in Document Statistics)
+ bool m_bRecordChanges;
+
+ SettingsTable_Impl( DomainMapper& rDMapper, const uno::Reference< lang::XMultiServiceFactory > xTextFactory ) :
+ m_rDMapper( rDMapper )
+ , m_xTextFactory( xTextFactory )
+ , m_nDefaultTabStop( 720 ) //default is 1/2 in
+ , m_nHyphenationZone(0)
+ , m_bNoPunctuationKerning(false)
+ , m_doNotIncludeSubdocsInStats(false)
+ , m_bRecordChanges(false)
+ {}
+
+ ListTablePtr GetListTable()
+ {
+ if(!m_pListTable)
+ m_pListTable.reset(
+ new ListTable( m_rDMapper, m_xTextFactory ));
+ return m_pListTable;
+ }
+};
-SettingsTable::SettingsTable( ) :
- m_pImpl( new SettingsTable_Impl )
+SettingsTable::SettingsTable(DomainMapper& rDMapper, const uno::Reference< lang::XMultiServiceFactory > xTextFactory) :
+m_pImpl( new SettingsTable_Impl(rDMapper, xTextFactory) )
{
+ // printf("SettingsTable::SettingsTable()\n");
}
-SettingsTable::~SettingsTable( )
+SettingsTable::~SettingsTable()
{
- delete m_pImpl, m_pImpl = NULL;
+ delete m_pImpl;
}
-void SettingsTable::attribute( Id /*nName*/, Value& /*rVal*/ )
+void SettingsTable::attribute(Id /*Name*/, Value & val)
{
-#if DEBUG
- clog << "SettingsTable::attribute( )" << endl;
+ int nIntValue = val.getInt();
+ (void)nIntValue;
+ ::rtl::OUString sValue = val.getString();
+ (void)sValue;
+ //printf ( "SettingsTable::attribute(0x%.4x, 0x%.4x) [%s]\n", (unsigned int)Name, (unsigned int)nIntValue, ::rtl::OUStringToOString(sValue, RTL_TEXTENCODING_DONTKNOW).getStr());
+ /* WRITERFILTERSTATUS: table: SettingsTable_attributedata */
+#if 0 //no values known, yet
+
+ switch(Name)
+ {
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml:::
+ break;
+ default:
+ {
+ }
+ }
#endif
}
-void SettingsTable::sprm( Sprm& rSprm )
+void SettingsTable::sprm(Sprm& rSprm)
{
- switch ( rSprm.getId( ) )
+ sal_uInt32 nSprmId = rSprm.getId();
+
+ Value::Pointer_t pValue = rSprm.getValue();
+ sal_Int32 nIntValue = pValue->getInt();
+ (void)nIntValue;
+ rtl::OUString sStringValue = pValue->getString();
+
+ //printf ( "SettingsTable::sprm(0x%.4x, 0x%.4x) [%s]\n", (unsigned int)nSprmId, (unsigned int)nIntValue, ::rtl::OUStringToOString(sStringValue, RTL_TEXTENCODING_DONTKNOW).getStr());
+
+ /* WRITERFILTERSTATUS: table: SettingsTable_sprm */
+ switch(nSprmId)
{
- case NS_ooxml::LN_CT_Settings_trackRevisions:
- {
- m_pImpl->m_bRecordChanges = bool(rSprm.getValue( )->getInt( ) );
- }
- break;
- default:
- {
-#if DEBUG
- clog << __FILE__ << ":" << __LINE__;
- clog << ": unknown SPRM: " << rSprm.getName( ) << endl;
-#endif
- }
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_zoom: // 92469;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_proofState: // 92489;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_attachedTemplate: // 92491;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_hdrShapeDefaults: // 92544;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_footnotePr: // 92545;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_endnotePr: // 92546;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_compat: // 92547;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_themeFontLang: // 92552;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_shapeDefaults: // 92560;
+
+ //PropertySetValues - need to be resolved
+ {
+ writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
+ if( pProperties.get())
+ pProperties->resolve(*this);
+ }
+ break;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Numbering_num: // 92613;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Numbering_abstractNum: // 92612;
+ {
+ m_pImpl->GetListTable()->sprm( rSprm );
+ }
+ break;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_stylePaneFormatFilter: // 92493;
+ break;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_defaultTabStop: // 92505;
+ m_pImpl->m_nDefaultTabStop = nIntValue;
+ break;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_noPunctuationKerning: // 92526;
+ m_pImpl->m_bNoPunctuationKerning = nIntValue ? true : false;
+ break;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_characterSpacingControl: // 92527;
+ m_pImpl->m_sCharacterSpacing = sStringValue; // doNotCompress, compressPunctuation, compressPunctuationAndJapaneseKana
+ break;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_doNotIncludeSubdocsInStats: // 92554; // Do Not Include Content in Text Boxes, Footnotes, and Endnotes in Document Statistics)
+ m_pImpl->m_doNotIncludeSubdocsInStats = nIntValue? true : false;
+ break;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_decimalSymbol: // 92562;
+ m_pImpl->m_sDecimalSymbol = sStringValue;
+ break;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_listSeparator: // 92563;
+ m_pImpl->m_sListSeparatorForFields = sStringValue;
+ break;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_rsids: // 92549; revision save Ids - probably not necessary
+ break;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Settings_hyphenationZone: // 92508;
+ m_pImpl->m_nHyphenationZone = nIntValue;
+ break;
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Compat_useFELayout: // 92422;
+ // useFELayout (Do Not Bypass East Asian/Complex Script Layout Code - support of old versions of Word - ignored)
+ break;
+ case NS_ooxml::LN_CT_Settings_trackRevisions:
+ {
+ m_pImpl->m_bRecordChanges = bool(rSprm.getValue( )->getInt( ) );
+ }
+ break;
+ default:
+ {
+ OSL_ENSURE( false, "unknown sprmid in SettingsTable::sprm()");
+ }
}
}
-void SettingsTable::entry( int nPos, writerfilter::Reference<Properties>::Pointer_t pRef )
+void SettingsTable::entry(int /*pos*/, writerfilter::Reference<Properties>::Pointer_t ref)
{
- (void)nPos;
-#if DEBUG
- fprintf( stderr, "SettingsTable::entry( ), pos: %d\n", nPos );
-#endif
- pRef->resolve( *this );
+ // printf ( "SettingsTable::entry\n");
+ ref->resolve(*this);
}
+//returns default TabStop in 1/100th mm
+
+/*-- 22.09.2009 10:29:32---------------------------------------------------
-void SettingsTable::resolveSprmProps( Sprm& rSprm )
+ -----------------------------------------------------------------------*/
+int SettingsTable::GetDefaultTabStop() const
{
- writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
- if( pProperties.get())
- pProperties->resolve(*this);
+ return ConversionHelper::convertTwipToMM100( m_pImpl->m_nDefaultTabStop );
}
void SettingsTable::ApplyProperties( uno::Reference< text::XTextDocument > xDoc )
@@ -81,7 +228,9 @@ void SettingsTable::ApplyProperties( uno::Reference< text::XTextDocument > xDoc
uno::Reference< beans::XPropertySet> xDocProps( xDoc, uno::UNO_QUERY );
// Record changes value
- xDocProps->setPropertyValue( OUString::createFromAscii( "RecordChanges" ), uno::makeAny( m_pImpl->m_bRecordChanges ) );
+ xDocProps->setPropertyValue( ::rtl::OUString::createFromAscii( "RecordChanges" ), uno::makeAny( m_pImpl->m_bRecordChanges ) );
}
-} }
+
+}//namespace dmapper
+} //namespace writerfilter
diff --git a/writerfilter/source/dmapper/SettingsTable.hxx b/writerfilter/source/dmapper/SettingsTable.hxx
index fb5ba5a8b010..cb3e7913c5e7 100644..100755
--- a/writerfilter/source/dmapper/SettingsTable.hxx
+++ b/writerfilter/source/dmapper/SettingsTable.hxx
@@ -1,31 +1,67 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: SettingsTable.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_SETTINGSTABLE_HXX
#define INCLUDED_SETTINGSTABLE_HXX
#include <WriterFilterDllApi.hxx>
#include <resourcemodel/WW8ResourceModel.hxx>
-
+#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/text/XTextDocument.hpp>
+#include <map>
+
+namespace com{ namespace sun{ namespace star{
+namespace lang{
+class XMultiServiceFactory;
+struct Locale;
+}
+}}}
namespace writerfilter {
namespace dmapper
{
+class DomainMapper;
-struct SettingsTable_Impl
-{
-public:
- bool m_bRecordChanges;
+using namespace std;
- SettingsTable_Impl( );
- ~SettingsTable_Impl( );
-};
+struct SettingsTable_Impl;
-class WRITERFILTER_DLLPRIVATE SettingsTable: public Properties, public Table
+class WRITERFILTER_DLLPRIVATE SettingsTable : public Properties, public Table
{
-public:
- SettingsTable_Impl* m_pImpl;
+ SettingsTable_Impl *m_pImpl;
- SettingsTable( );
- ~SettingsTable( );
+ public:
+ SettingsTable( DomainMapper& rDMapper,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xTextFactory
+ );
+ virtual ~SettingsTable();
// Properties
virtual void attribute(Id Name, Value & val);
@@ -34,13 +70,13 @@ public:
// Table
virtual void entry(int pos, writerfilter::Reference<Properties>::Pointer_t ref);
- void resolveSprmProps( Sprm& rSprm );
-
- void ApplyProperties( com::sun::star::uno::Reference< com::sun::star::text::XTextDocument > xDoc );
-};
-typedef boost::shared_ptr< SettingsTable > SettingsTablePtr;
+ //returns default TabStop in 1/100th mm
+ int GetDefaultTabStop() const;
+ void ApplyProperties( uno::Reference< text::XTextDocument > xDoc );
-} }
+};
+typedef boost::shared_ptr< SettingsTable > SettingsTablePtr;
+}}
-#endif
+#endif //
diff --git a/writerfilter/source/dmapper/StyleSheetTable.cxx b/writerfilter/source/dmapper/StyleSheetTable.cxx
index 118dc7c3bf60..cbf6240c15ce 100644
--- a/writerfilter/source/dmapper/StyleSheetTable.cxx
+++ b/writerfilter/source/dmapper/StyleSheetTable.cxx
@@ -46,6 +46,11 @@
#include <stdio.h>
#include <rtl/ustrbuf.hxx>
+#ifdef DEBUG_DOMAINMAPPER
+#include <dmapperLoggers.hxx>
+#include <resourcemodel/QNameToString.hxx>
+#endif
+
using namespace ::com::sun::star;
namespace writerfilter {
namespace dmapper
@@ -66,8 +71,37 @@ StyleSheetEntry::StyleSheetEntry() :
,sBaseStyleIdentifier()
,sNextStyleIdentifier()
,pProperties(new StyleSheetPropertyMap)
- {
- }
+{
+#if OSL_DEBUG_LEVEL > 1
+ nStyleTypeCode = STYLE_TYPE_PARA;
+#endif
+}
+
+StyleSheetEntry::~StyleSheetEntry()
+{
+}
+
+#ifdef DEBUG_DOMAINMAPPER
+XMLTag::Pointer_t StyleSheetEntry::toTag()
+{
+ XMLTag::Pointer_t pResult(new XMLTag("StyleSheetEntry"));
+
+ pResult->addAttr("identifierI", sStyleIdentifierI);
+ pResult->addAttr("identifierD", sStyleIdentifierD);
+ pResult->addAttr("default", bIsDefaultStyle ? "true" : "false");
+ pResult->addAttr("invalidHeight", bInvalidHeight ? "true" : "false");
+ pResult->addAttr("hasUPE", bHasUPE ? "true" : "false");
+ pResult->addAttr("styleType", nStyleTypeCode);
+ pResult->addAttr("baseStyle", sBaseStyleIdentifier);
+ pResult->addAttr("nextStyle", sNextStyleIdentifier);
+ pResult->addAttr("styleName", sStyleName);
+ pResult->addAttr("styleName1", sStyleName1);
+ pResult->addAttr("convertedName", sConvertedStyleName);
+ pResult->addTag(pProperties->toTag());
+
+ return pResult;
+}
+#endif
TableStyleSheetEntry::TableStyleSheetEntry( StyleSheetEntry& rEntry, StyleSheetTable* pStyles ):
StyleSheetEntry( ),
@@ -93,6 +127,13 @@ TableStyleSheetEntry::~TableStyleSheetEntry( )
void TableStyleSheetEntry::AddTblStylePr( TblStyleType nType, PropertyMapPtr pProps )
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("AddTblStylePr");
+ dmapper_logger->attribute("type", nType);
+ dmapper_logger->addTag(pProps->toTag());
+ dmapper_logger->endElement("AddTblStylePr");
+#endif
+
static TblStyleType pTypesToFix[] =
{
TBL_STYLE_FIRSTROW,
@@ -157,6 +198,24 @@ PropertyMapPtr TableStyleSheetEntry::GetProperties( sal_Int32 nMask )
return pProps;
}
+#ifdef DEBUG_DOMAINMAPPER
+XMLTag::Pointer_t TableStyleSheetEntry::toTag()
+{
+ XMLTag::Pointer_t pResult(StyleSheetEntry::toTag());
+
+ for (sal_Int32 nBit = 0; nBit < 13; ++nBit)
+ {
+ PropertyMapPtr pMap = GetProperties(1 << nBit);
+
+ XMLTag::Pointer_t pTag = pMap->toTag();
+ pTag->addAttr("kind", nBit);
+ pResult->addTag(pTag);
+ }
+
+ return pResult;
+}
+#endif
+
void lcl_mergeProps( PropertyMapPtr pToFill, PropertyMapPtr pToAdd, TblStyleType nStyleId )
{
static PropertyIds pPropsToCheck[] =
@@ -215,7 +274,8 @@ PropertyMapPtr TableStyleSheetEntry::GetLocalPropertiesFromMask( sal_Int32 nMask
TBL_STYLE_LASTCOL,
TBL_STYLE_FIRSTCOL,
TBL_STYLE_LASTROW,
- TBL_STYLE_FIRSTROW
+ TBL_STYLE_FIRSTROW,
+ TBL_STYLE_UNKNOWN
};
// Get the properties applying according to the mask
@@ -233,7 +293,7 @@ PropertyMapPtr TableStyleSheetEntry::GetLocalPropertiesFromMask( sal_Int32 nMask
nBit++;
}
- while ( nBit < 12 );
+ while ( nBit < 13 );
return pProps;
}
@@ -353,6 +413,11 @@ StyleSheetTable::~StyleSheetTable()
-----------------------------------------------------------------------*/
void StyleSheetTable::attribute(Id Name, Value & val)
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("StyleSheetTable.attribute");
+ dmapper_logger->attribute("name", (*QNameToString::Instance())(Name));
+#endif
+
OSL_ENSURE( m_pImpl->m_pCurrentEntry, "current entry has to be set here");
if(!m_pImpl->m_pCurrentEntry)
return ;
@@ -363,51 +428,12 @@ void StyleSheetTable::attribute(Id Name, Value & val)
/* WRITERFILTERSTATUS: table: StyleSheetTable_attributedata */
switch(Name)
{
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_ISTD:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->sStyleIdentifierD = ::rtl::OUString::valueOf(static_cast<sal_Int32>(nIntValue), 16);
break;
-// case NS_rtf::LN_ISTARTAT: break;
-// case NS_rtf::LN_NFC: break;
-// case NS_rtf::LN_JC: break;
-// case NS_rtf::LN_FLEGAL: break;
-// case NS_rtf::LN_FNORESTART: break;
-// case NS_rtf::LN_FPREV: break;
-// case NS_rtf::LN_FPREVSPACE: break;
-// case NS_rtf::LN_FWORD6: break;
-// case NS_rtf::LN_UNUSED5_7: break;
-// case NS_rtf::LN_RGBXCHNUMS: break;
-// case NS_rtf::LN_IXCHFOLLOW: break;
-// case NS_rtf::LN_DXASPACE: break;
-// case NS_rtf::LN_DXAINDENT: break;
-// case NS_rtf::LN_CBGRPPRLCHPX: break;
-// case NS_rtf::LN_CBGRPPRLPAPX: break;
-// case NS_rtf::LN_LSID: break;
-// case NS_rtf::LN_TPLC: break;
-// case NS_rtf::LN_RGISTD: break;
-// case NS_rtf::LN_FSIMPLELIST: break;
-// case NS_rtf::LN_FRESTARTHDN: break;
-// case NS_rtf::LN_UNSIGNED26_2: break;
-// case NS_rtf::LN_ILVL: break;
-// case NS_rtf::LN_FSTARTAT: break;
-// case NS_rtf::LN_FFORMATTING: break;
-// case NS_rtf::LN_UNSIGNED4_6: break;
-// case NS_rtf::LN_UNUSED4: break;
-// case NS_rtf::LN_UNUSED8: break;
-// case NS_rtf::LN_CLFOLVL: break;
-// case NS_rtf::LN_CBFFNM1: break;
-// case NS_rtf::LN_PRQ: break;
-// case NS_rtf::LN_FTRUETYPE: break;
-// case NS_rtf::LN_UNUSED1_3: break;
-// case NS_rtf::LN_FF: break;
-// case NS_rtf::LN_UNUSED1_7: break;
-// case NS_rtf::LN_WWEIGHT: break;
-// case NS_rtf::LN_CHS: break;
-// case NS_rtf::LN_IXCHSZALT: break;
-// case NS_rtf::LN_PANOSE: break;
-// case NS_rtf::LN_FS: break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_STI:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
{
::rtl::OUString tempStyleIdentifier = GetStyleIdFromIndex(static_cast<sal_uInt32>(nIntValue));
if (tempStyleIdentifier.getLength())
@@ -416,21 +442,20 @@ void StyleSheetTable::attribute(Id Name, Value & val)
m_pImpl->m_pCurrentEntry->bIsDefaultStyle = true;
}
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_SGC:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->nStyleTypeCode = (StyleType)nIntValue;
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_ISTDBASE:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
if (static_cast<sal_uInt32>(nIntValue) != 0xfff)
m_pImpl->m_pCurrentEntry->sBaseStyleIdentifier = ::rtl::OUString::valueOf(static_cast<sal_Int32>(nIntValue), 16);
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_ISTDNEXT:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
if (static_cast<sal_uInt32>(nIntValue) != 0xfff)
m_pImpl->m_pCurrentEntry->sNextStyleIdentifier = ::rtl::OUString::valueOf(static_cast<sal_Int32>(nIntValue), 16);
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_FSCRATCH:
/* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_FINVALHEIGHT:
@@ -448,385 +473,27 @@ void StyleSheetTable::attribute(Id Name, Value & val)
case NS_rtf::LN_FHIDDEN:
/* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_rtf::LN_UNUSED8_3:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
//noone seems to care about it
break;
-// case NS_rtf::LN_CSTD: break;
-// case NS_rtf::LN_CBSTDBASEINFILE: break;
-// case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break;
-// case NS_rtf::LN_UNUSED4_2: break;
-// case NS_rtf::LN_STIMAXWHENSAVED: break;
-// case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break;
-// case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break;
-// case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break;
-// case NS_rtf::LN_WIDENT: break;
-// case NS_rtf::LN_NFIB: break;
-// case NS_rtf::LN_NPRODUCT: break;
-// case NS_rtf::LN_LID: break;
-// case NS_rtf::LN_PNNEXT: break;
-// case NS_rtf::LN_FDOT: break;
-// case NS_rtf::LN_FGLSY: break;
-// case NS_rtf::LN_FCOMPLEX: break;
-// case NS_rtf::LN_FHASPIC: break;
-// case NS_rtf::LN_CQUICKSAVES: break;
-// case NS_rtf::LN_FENCRYPTED: break;
-// case NS_rtf::LN_FWHICHTBLSTM: break;
-// case NS_rtf::LN_FREADONLYRECOMMENDED: break;
-// case NS_rtf::LN_FWRITERESERVATION: break;
-// case NS_rtf::LN_FEXTCHAR: break;
-// case NS_rtf::LN_FLOADOVERRIDE: break;
-// case NS_rtf::LN_FFAREAST: break;
-// case NS_rtf::LN_FCRYPTO: break;
-// case NS_rtf::LN_NFIBBACK: break;
-// case NS_rtf::LN_LKEY: break;
-// case NS_rtf::LN_ENVR: break;
-// case NS_rtf::LN_FMAC: break;
-// case NS_rtf::LN_FEMPTYSPECIAL: break;
-// case NS_rtf::LN_FLOADOVERRIDEPAGE: break;
-// case NS_rtf::LN_FFUTURESAVEDUNDO: break;
-// case NS_rtf::LN_FWORD97SAVED: break;
-// case NS_rtf::LN_FSPARE0: break;
-// case NS_rtf::LN_CHSTABLES: break;
-// case NS_rtf::LN_FCMIN: break;
-// case NS_rtf::LN_FCMAC: break;
-// case NS_rtf::LN_CSW: break;
-// case NS_rtf::LN_WMAGICCREATED: break;
-// case NS_rtf::LN_WMAGICREVISED: break;
-// case NS_rtf::LN_WMAGICCREATEDPRIVATE: break;
-// case NS_rtf::LN_WMAGICREVISEDPRIVATE: break;
-// case NS_rtf::LN_PNFBPCHPFIRST_W6: break;
-// case NS_rtf::LN_PNCHPFIRST_W6: break;
-// case NS_rtf::LN_CPNBTECHP_W6: break;
-// case NS_rtf::LN_PNFBPPAPFIRST_W6: break;
-// case NS_rtf::LN_PNPAPFIRST_W6: break;
-// case NS_rtf::LN_CPNBTEPAP_W6: break;
-// case NS_rtf::LN_PNFBPLVCFIRST_W6: break;
-// case NS_rtf::LN_PNLVCFIRST_W6: break;
-// case NS_rtf::LN_CPNBTELVC_W6: break;
-// case NS_rtf::LN_LIDFE: break;
-// case NS_rtf::LN_CLW: break;
-// case NS_rtf::LN_CBMAC: break;
-// case NS_rtf::LN_LPRODUCTCREATED: break;
-// case NS_rtf::LN_LPRODUCTREVISED: break;
-// case NS_rtf::LN_CCPTEXT: break;
-// case NS_rtf::LN_CCPFTN: break;
-// case NS_rtf::LN_CCPHDD: break;
-// case NS_rtf::LN_CCPMCR: break;
-// case NS_rtf::LN_CCPATN: break;
-// case NS_rtf::LN_CCPEDN: break;
-// case NS_rtf::LN_CCPTXBX: break;
-// case NS_rtf::LN_CCPHDRTXBX: break;
-// case NS_rtf::LN_PNFBPCHPFIRST: break;
-// case NS_rtf::LN_PNCHPFIRST: break;
-// case NS_rtf::LN_CPNBTECHP: break;
-// case NS_rtf::LN_PNFBPPAPFIRST: break;
-// case NS_rtf::LN_PNPAPFIRST: break;
-// case NS_rtf::LN_CPNBTEPAP: break;
-// case NS_rtf::LN_PNFBPLVCFIRST: break;
-// case NS_rtf::LN_PNLVCFIRST: break;
-// case NS_rtf::LN_CPNBTELVC: break;
-// case NS_rtf::LN_FCISLANDFIRST: break;
-// case NS_rtf::LN_FCISLANDLIM: break;
-// case NS_rtf::LN_CFCLCB: break;
-// case NS_rtf::LN_FCSTSHFORIG: break;
-// case NS_rtf::LN_LCBSTSHFORIG: break;
-// case NS_rtf::LN_FCSTSHF: break;
-// case NS_rtf::LN_LCBSTSHF: break;
-// case NS_rtf::LN_FCPLCFFNDREF: break;
-// case NS_rtf::LN_LCBPLCFFNDREF: break;
-// case NS_rtf::LN_FCPLCFFNDTXT: break;
-// case NS_rtf::LN_LCBPLCFFNDTXT: break;
-// case NS_rtf::LN_FCPLCFANDREF: break;
-// case NS_rtf::LN_LCBPLCFANDREF: break;
-// case NS_rtf::LN_FCPLCFANDTXT: break;
-// case NS_rtf::LN_LCBPLCFANDTXT: break;
-// case NS_rtf::LN_FCPLCFSED: break;
-// case NS_rtf::LN_LCBPLCFSED: break;
-// case NS_rtf::LN_FCPLCFPAD: break;
-// case NS_rtf::LN_LCBPLCFPAD: break;
-// case NS_rtf::LN_FCPLCFPHE: break;
-// case NS_rtf::LN_LCBPLCFPHE: break;
-// case NS_rtf::LN_FCSTTBFGLSY: break;
-// case NS_rtf::LN_LCBSTTBFGLSY: break;
-// case NS_rtf::LN_FCPLCFGLSY: break;
-// case NS_rtf::LN_LCBPLCFGLSY: break;
-// case NS_rtf::LN_FCPLCFHDD: break;
-// case NS_rtf::LN_LCBPLCFHDD: break;
-// case NS_rtf::LN_FCPLCFBTECHPX: break;
-// case NS_rtf::LN_LCBPLCFBTECHPX: break;
-// case NS_rtf::LN_FCPLCFBTEPAPX: break;
-// case NS_rtf::LN_LCBPLCFBTEPAPX: break;
-// case NS_rtf::LN_FCPLCFSEA: break;
-// case NS_rtf::LN_LCBPLCFSEA: break;
-// case NS_rtf::LN_FCSTTBFFFN: break;
-// case NS_rtf::LN_LCBSTTBFFFN: break;
-// case NS_rtf::LN_FCPLCFFLDMOM: break;
-// case NS_rtf::LN_LCBPLCFFLDMOM: break;
-// case NS_rtf::LN_FCPLCFFLDHDR: break;
-// case NS_rtf::LN_LCBPLCFFLDHDR: break;
-// case NS_rtf::LN_FCPLCFFLDFTN: break;
-// case NS_rtf::LN_LCBPLCFFLDFTN: break;
-// case NS_rtf::LN_FCPLCFFLDATN: break;
-// case NS_rtf::LN_LCBPLCFFLDATN: break;
-// case NS_rtf::LN_FCPLCFFLDMCR: break;
-// case NS_rtf::LN_LCBPLCFFLDMCR: break;
-// case NS_rtf::LN_FCSTTBFBKMK: break;
-// case NS_rtf::LN_LCBSTTBFBKMK: break;
-// case NS_rtf::LN_FCPLCFBKF: break;
-// case NS_rtf::LN_LCBPLCFBKF: break;
-// case NS_rtf::LN_FCPLCFBKL: break;
-// case NS_rtf::LN_LCBPLCFBKL: break;
-// case NS_rtf::LN_FCCMDS: break;
-// case NS_rtf::LN_LCBCMDS: break;
-// case NS_rtf::LN_FCPLCMCR: break;
-// case NS_rtf::LN_LCBPLCMCR: break;
-// case NS_rtf::LN_FCSTTBFMCR: break;
-// case NS_rtf::LN_LCBSTTBFMCR: break;
-// case NS_rtf::LN_FCPRDRVR: break;
-// case NS_rtf::LN_LCBPRDRVR: break;
-// case NS_rtf::LN_FCPRENVPORT: break;
-// case NS_rtf::LN_LCBPRENVPORT: break;
-// case NS_rtf::LN_FCPRENVLAND: break;
-// case NS_rtf::LN_LCBPRENVLAND: break;
-// case NS_rtf::LN_FCWSS: break;
-// case NS_rtf::LN_LCBWSS: break;
-// case NS_rtf::LN_FCDOP: break;
-// case NS_rtf::LN_LCBDOP: break;
-// case NS_rtf::LN_FCSTTBFASSOC: break;
-// case NS_rtf::LN_LCBSTTBFASSOC: break;
-// case NS_rtf::LN_FCCLX: break;
-// case NS_rtf::LN_LCBCLX: break;
-// case NS_rtf::LN_FCPLCFPGDFTN: break;
-// case NS_rtf::LN_LCBPLCFPGDFTN: break;
-// case NS_rtf::LN_FCAUTOSAVESOURCE: break;
-// case NS_rtf::LN_LCBAUTOSAVESOURCE: break;
-// case NS_rtf::LN_FCGRPXSTATNOWNERS: break;
-// case NS_rtf::LN_LCBGRPXSTATNOWNERS: break;
-// case NS_rtf::LN_FCSTTBFATNBKMK: break;
-// case NS_rtf::LN_LCBSTTBFATNBKMK: break;
-// case NS_rtf::LN_FCPLCDOAMOM: break;
-// case NS_rtf::LN_LCBPLCDOAMOM: break;
-// case NS_rtf::LN_FCPLCDOAHDR: break;
-// case NS_rtf::LN_LCBPLCDOAHDR: break;
-// case NS_rtf::LN_FCPLCSPAMOM: break;
-// case NS_rtf::LN_LCBPLCSPAMOM: break;
-// case NS_rtf::LN_FCPLCSPAHDR: break;
-// case NS_rtf::LN_LCBPLCSPAHDR: break;
-// case NS_rtf::LN_FCPLCFATNBKF: break;
-// case NS_rtf::LN_LCBPLCFATNBKF: break;
-// case NS_rtf::LN_FCPLCFATNBKL: break;
-// case NS_rtf::LN_LCBPLCFATNBKL: break;
-// case NS_rtf::LN_FCPMS: break;
-// case NS_rtf::LN_LCBPMS: break;
-// case NS_rtf::LN_FCFORMFLDSTTBF: break;
-// case NS_rtf::LN_LCBFORMFLDSTTBF: break;
-// case NS_rtf::LN_FCPLCFENDREF: break;
-// case NS_rtf::LN_LCBPLCFENDREF: break;
-// case NS_rtf::LN_FCPLCFENDTXT: break;
-// case NS_rtf::LN_LCBPLCFENDTXT: break;
-// case NS_rtf::LN_FCPLCFFLDEDN: break;
-// case NS_rtf::LN_LCBPLCFFLDEDN: break;
-// case NS_rtf::LN_FCPLCFPGDEDN: break;
-// case NS_rtf::LN_LCBPLCFPGDEDN: break;
-// case NS_rtf::LN_FCDGGINFO: break;
-// case NS_rtf::LN_LCBDGGINFO: break;
-// case NS_rtf::LN_FCSTTBFRMARK: break;
-// case NS_rtf::LN_LCBSTTBFRMARK: break;
-// case NS_rtf::LN_FCSTTBFCAPTION: break;
-// case NS_rtf::LN_LCBSTTBFCAPTION: break;
-// case NS_rtf::LN_FCSTTBFAUTOCAPTION: break;
-// case NS_rtf::LN_LCBSTTBFAUTOCAPTION: break;
-// case NS_rtf::LN_FCPLCFWKB: break;
-// case NS_rtf::LN_LCBPLCFWKB: break;
-// case NS_rtf::LN_FCPLCFSPL: break;
-// case NS_rtf::LN_LCBPLCFSPL: break;
-// case NS_rtf::LN_FCPLCFTXBXTXT: break;
-// case NS_rtf::LN_LCBPLCFTXBXTXT: break;
-// case NS_rtf::LN_FCPLCFFLDTXBX: break;
-// case NS_rtf::LN_LCBPLCFFLDTXBX: break;
-// case NS_rtf::LN_FCPLCFHDRTXBXTXT: break;
-// case NS_rtf::LN_LCBPLCFHDRTXBXTXT: break;
-// case NS_rtf::LN_FCPLCFFLDHDRTXBX: break;
-// case NS_rtf::LN_LCBPLCFFLDHDRTXBX: break;
-// case NS_rtf::LN_FCSTWUSER: break;
-// case NS_rtf::LN_LCBSTWUSER: break;
-// case NS_rtf::LN_FCSTTBTTMBD: break;
-// case NS_rtf::LN_LCBSTTBTTMBD: break;
-// case NS_rtf::LN_FCUNUSED: break;
-// case NS_rtf::LN_LCBUNUSED: break;
-// case NS_rtf::LN_FCPGDMOTHER: break;
-// case NS_rtf::LN_LCBPGDMOTHER: break;
-// case NS_rtf::LN_FCBKDMOTHER: break;
-// case NS_rtf::LN_LCBBKDMOTHER: break;
-// case NS_rtf::LN_FCPGDFTN: break;
-// case NS_rtf::LN_LCBPGDFTN: break;
-// case NS_rtf::LN_FCBKDFTN: break;
-// case NS_rtf::LN_LCBBKDFTN: break;
-// case NS_rtf::LN_FCPGDEDN: break;
-// case NS_rtf::LN_LCBPGDEDN: break;
-// case NS_rtf::LN_FCBKDEDN: break;
-// case NS_rtf::LN_LCBBKDEDN: break;
-// case NS_rtf::LN_FCSTTBFINTLFLD: break;
-// case NS_rtf::LN_LCBSTTBFINTLFLD: break;
-// case NS_rtf::LN_FCROUTESLIP: break;
-// case NS_rtf::LN_LCBROUTESLIP: break;
-// case NS_rtf::LN_FCSTTBSAVEDBY: break;
-// case NS_rtf::LN_LCBSTTBSAVEDBY: break;
-// case NS_rtf::LN_FCSTTBFNM: break;
-// case NS_rtf::LN_LCBSTTBFNM: break;
-// case NS_rtf::LN_FCPLCFLST: break;
-// case NS_rtf::LN_LCBPLCFLST: break;
-// case NS_rtf::LN_FCPLFLFO: break;
-// case NS_rtf::LN_LCBPLFLFO: break;
-// case NS_rtf::LN_FCPLCFTXBXBKD: break;
-// case NS_rtf::LN_LCBPLCFTXBXBKD: break;
-// case NS_rtf::LN_FCPLCFTXBXHDRBKD: break;
-// case NS_rtf::LN_LCBPLCFTXBXHDRBKD: break;
-// case NS_rtf::LN_FCDOCUNDO: break;
-// case NS_rtf::LN_LCBDOCUNDO: break;
-// case NS_rtf::LN_FCRGBUSE: break;
-// case NS_rtf::LN_LCBRGBUSE: break;
-// case NS_rtf::LN_FCUSP: break;
-// case NS_rtf::LN_LCBUSP: break;
-// case NS_rtf::LN_FCUSKF: break;
-// case NS_rtf::LN_LCBUSKF: break;
-// case NS_rtf::LN_FCPLCUPCRGBUSE: break;
-// case NS_rtf::LN_LCBPLCUPCRGBUSE: break;
-// case NS_rtf::LN_FCPLCUPCUSP: break;
-// case NS_rtf::LN_LCBPLCUPCUSP: break;
-// case NS_rtf::LN_FCSTTBGLSYSTYLE: break;
-// case NS_rtf::LN_LCBSTTBGLSYSTYLE: break;
-// case NS_rtf::LN_FCPLGOSL: break;
-// case NS_rtf::LN_LCBPLGOSL: break;
-// case NS_rtf::LN_FCPLCOCX: break;
-// case NS_rtf::LN_LCBPLCOCX: break;
-// case NS_rtf::LN_FCPLCFBTELVC: break;
-// case NS_rtf::LN_LCBPLCFBTELVC: break;
-// case NS_rtf::LN_DWLOWDATETIME: break;
-// case NS_rtf::LN_DWHIGHDATETIME: break;
-// case NS_rtf::LN_FCPLCFLVC: break;
-// case NS_rtf::LN_LCBPLCFLVC: break;
-// case NS_rtf::LN_FCPLCASUMY: break;
-// case NS_rtf::LN_LCBPLCASUMY: break;
-// case NS_rtf::LN_FCPLCFGRAM: break;
-// case NS_rtf::LN_LCBPLCFGRAM: break;
-// case NS_rtf::LN_FCSTTBLISTNAMES: break;
-// case NS_rtf::LN_LCBSTTBLISTNAMES: break;
-// case NS_rtf::LN_FCSTTBFUSSR: break;
-// case NS_rtf::LN_LCBSTTBFUSSR: break;
-// case NS_rtf::LN_FN: break;
-// case NS_rtf::LN_FCSEPX: break;
-// case NS_rtf::LN_FNMPR: break;
-// case NS_rtf::LN_FCMPR: break;
-// case NS_rtf::LN_ICOFORE: break;
-// case NS_rtf::LN_ICOBACK: break;
-// case NS_rtf::LN_IPAT: break;
-// case NS_rtf::LN_SHDFORECOLOR: break;
-// case NS_rtf::LN_SHDBACKCOLOR: break;
-// case NS_rtf::LN_SHDPATTERN: break;
-// case NS_rtf::LN_DPTLINEWIDTH: break;
-// case NS_rtf::LN_BRCTYPE: break;
-// case NS_rtf::LN_ICO: break;
-// case NS_rtf::LN_DPTSPACE: break;
-// case NS_rtf::LN_FSHADOW: break;
-// case NS_rtf::LN_FFRAME: break;
-// case NS_rtf::LN_UNUSED2_15: break;
-// case NS_rtf::LN_FFIRSTMERGED: break;
-// case NS_rtf::LN_FMERGED: break;
-// case NS_rtf::LN_FVERTICAL: break;
-// case NS_rtf::LN_FBACKWARD: break;
-// case NS_rtf::LN_FROTATEFONT: break;
-// case NS_rtf::LN_FVERTMERGE: break;
-// case NS_rtf::LN_FVERTRESTART: break;
-// case NS_rtf::LN_VERTALIGN: break;
-// case NS_rtf::LN_FUNUSED: break;
-// case NS_rtf::LN_WUNUSED: break;
-// case NS_rtf::LN_BRCTOP: break;
-// case NS_rtf::LN_BRCLEFT: break;
-// case NS_rtf::LN_BRCBOTTOM: break;
-// case NS_rtf::LN_BRCRIGHT: break;
-// case NS_rtf::LN_IBKL: break;
-// case NS_rtf::LN_ITCFIRST: break;
-// case NS_rtf::LN_FPUB: break;
-// case NS_rtf::LN_ITCLIM: break;
-// case NS_rtf::LN_FCOL: break;
-// case NS_rtf::LN_LINECOLOR: break;
-// case NS_rtf::LN_LINEWIDTH: break;
-// case NS_rtf::LN_LINETYPE: break;
-// case NS_rtf::LN_MM: break;
-// case NS_rtf::LN_XEXT: break;
-// case NS_rtf::LN_YEXT: break;
-// case NS_rtf::LN_HMF: break;
-// case NS_rtf::LN_LCB: break;
-// case NS_rtf::LN_CBHEADER: break;
-// case NS_rtf::LN_MFP: break;
-// case NS_rtf::LN_BM_RCWINMF: break;
-// case NS_rtf::LN_DXAGOAL: break;
-// case NS_rtf::LN_DYAGOAL: break;
-// case NS_rtf::LN_MX: break;
-// case NS_rtf::LN_MY: break;
-// case NS_rtf::LN_DXACROPLEFT: break;
-// case NS_rtf::LN_DYACROPTOP: break;
-// case NS_rtf::LN_DXACROPRIGHT: break;
-// case NS_rtf::LN_DYACROPBOTTOM: break;
-// case NS_rtf::LN_BRCL: break;
-// case NS_rtf::LN_FFRAMEEMPTY: break;
-// case NS_rtf::LN_FBITMAP: break;
-// case NS_rtf::LN_FDRAWHATCH: break;
-// case NS_rtf::LN_FERROR: break;
-// case NS_rtf::LN_BPP: break;
-// case NS_rtf::LN_DXAORIGIN: break;
-// case NS_rtf::LN_DYAORIGIN: break;
-// case NS_rtf::LN_CPROPS: break;
-// case NS_rtf::LN_LINEPROPSTOP: break;
-// case NS_rtf::LN_LINEPROPSLEFT: break;
-// case NS_rtf::LN_LINEPROPSBOTTOM: break;
-// case NS_rtf::LN_LINEPROPSRIGHT: break;
-// case NS_rtf::LN_LINEPROPSHORIZONTAL: break;
-// case NS_rtf::LN_LINEPROPSVERTICAL: break;
-// case NS_rtf::LN_headerr: break;
-// case NS_rtf::LN_footerr: break;
-// case NS_rtf::LN_endnote: break;
-// case NS_rtf::LN_BOOKMARKNAME: break;
-
-// case NS_rtf::LN_LISTLEVEL: break;
-// case NS_rtf::LN_LFO: break;
-// case NS_rtf::LN_F: break;
-// case NS_rtf::LN_ALTFONTNAME: break;
-// case NS_rtf::LN_XSZFFN: break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_XSTZNAME:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->sStyleName1 = sValue;
if (m_pImpl->m_pCurrentEntry->sStyleIdentifierI.getLength())
m_pImpl->m_pCurrentEntry->sStyleIdentifierI = sValue;
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_XSTZNAME1:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->sStyleName = sValue;
if (m_pImpl->m_pCurrentEntry->sStyleIdentifierI.getLength())
m_pImpl->m_pCurrentEntry->sStyleIdentifierI = sValue;
break;
-// case NS_rtf::LN_UPXSTART: break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_rtf::LN_UPX:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
resolveAttributeProperties(val);
break;
-// case NS_rtf::LN_sed: break;
-// case NS_rtf::LN_picf: break;
-
-// case NS_rtf::LN_rgbrc: break;
-// case NS_rtf::LN_shd: break;
-// case NS_rtf::LN_cellShd: break;
-// case NS_rtf::LN_cellTopColor: break;
-// case NS_rtf::LN_cellLeftColor: break;
-// case NS_rtf::LN_cellBottomColor: break;
-// case NS_rtf::LN_cellRightColor: break;
-
-// case NS_rtf::LN_LISTTABLE: break;
-// case NS_rtf::LN_LFOTABLE: break;
-// case NS_rtf::LN_StyleSheetTable: break;
-// case NS_rtf::LN_STYLESHEET: break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_type:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
{
/* defaults should be set at the service "com.sun.star.text.Defaults"
if (nIntValue == 1)
@@ -842,26 +509,26 @@ void StyleSheetTable::attribute(Id Name, Value & val)
}
else
m_pImpl->m_pCurrentEntry->nStyleTypeCode = (StyleType)nIntValue;
- break;
}
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ break;
case NS_ooxml::LN_CT_Style_default:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->bIsDefaultStyle = (nIntValue != 0);
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_customStyle:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_styleId:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->sStyleIdentifierI = sValue;
m_pImpl->m_pCurrentEntry->sStyleIdentifierD = sValue;
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_TblWidth_w:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
dynamic_cast< StyleSheetPropertyMap* >( m_pImpl->m_pCurrentEntry->pProperties.get() )->SetCT_TblWidth_w( nIntValue );
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_TblWidth_type:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
dynamic_cast< StyleSheetPropertyMap* >( m_pImpl->m_pCurrentEntry->pProperties.get() )->SetCT_TblWidth_type( nIntValue );
break;
default:
@@ -873,12 +540,21 @@ void StyleSheetTable::attribute(Id Name, Value & val)
}
break;
}
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("StyleSheetTable.attribute");
+#endif
}
/*-- 19.06.2006 12:04:33---------------------------------------------------
-----------------------------------------------------------------------*/
void StyleSheetTable::sprm(Sprm & rSprm)
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("StyleSheetTable.sprm");
+ dmapper_logger->attribute("sprm", rSprm.toString());
+#endif
+
sal_uInt32 nSprmId = rSprm.getId();
Value::Pointer_t pValue = rSprm.getValue();
sal_Int32 nIntValue = pValue.get() ? pValue->getInt() : 0;
@@ -889,51 +565,44 @@ void StyleSheetTable::sprm(Sprm & rSprm)
/* WRITERFILTERSTATUS: table: StyleSheetTable_sprm */
switch(nSprmId)
{
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_name:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
//this is only a UI name!
m_pImpl->m_pCurrentEntry->sStyleName = sStringValue;
m_pImpl->m_pCurrentEntry->sStyleName1 = sStringValue;
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_basedOn:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->sBaseStyleIdentifier = sStringValue;
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_next:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->sNextStyleIdentifier = sStringValue;
break;
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_aliases:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_link:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_autoRedefine:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_hidden:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_uiPriority:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_semiHidden:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_unhideWhenUsed:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_qFormat:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_locked:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_personal:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_personalCompose:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_personalReply:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_rsid:
- /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_trPr:
+ case NS_ooxml::LN_CT_Style_tcPr:
+ /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
+ case NS_ooxml::LN_CT_Style_tblPr: //contains table properties
case NS_ooxml::LN_CT_Style_tblStylePr: //contains to table properties
+ case NS_ooxml::LN_CT_DocDefaults_pPrDefault:
+ case NS_ooxml::LN_CT_DocDefaults_rPrDefault:
+ case NS_ooxml::LN_CT_TblPrBase_tblInd: //table properties - at least width value and type
+ case NS_ooxml::LN_EG_RPrBase_rFonts: //table fonts
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
{
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
if( pProperties.get())
@@ -944,50 +613,46 @@ void StyleSheetTable::sprm(Sprm & rSprm)
// Add the properties to the table style
TblStyleType nType = pTblStylePrHandler->getType( );
PropertyMapPtr pProps = pTblStylePrHandler->getProperties( );
- StyleSheetEntryPtr pEntry = m_pImpl->m_pCurrentEntry;
- TableStyleSheetEntry* pTableEntry = static_cast<TableStyleSheetEntry*>( pEntry.get( ) );
- pTableEntry->AddTblStylePr( nType, pProps );
+ StyleSheetEntry * pEntry = m_pImpl->m_pCurrentEntry.get();
+
+ if (nType == TBL_STYLE_UNKNOWN)
+ {
+ pEntry->pProperties->insert(pProps);
+ }
+ else
+ {
+ TableStyleSheetEntry * pTableEntry = dynamic_cast<TableStyleSheetEntry*>( pEntry );
+ if (pTableEntry != NULL)
+ pTableEntry->AddTblStylePr( nType, pProps );
+ }
}
break;
}
- case NS_ooxml::LN_CT_Style_tcPr:
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_ooxml::LN_CT_Style_tblPr: //contains table properties
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_ooxml::LN_CT_DocDefaults_pPrDefault:
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_ooxml::LN_CT_DocDefaults_rPrDefault:
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_ooxml::LN_CT_TblPrBase_tblInd: //table properties - at least width value and type
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
- case NS_ooxml::LN_EG_RPrBase_rFonts: //table fonts
- resolveSprmProps(rSprm);
- break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_PPrDefault_pPr:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->m_rDMapper.PushStyleSheetProperties( m_pImpl->m_pDefaultParaProps );
m_pImpl->m_rDMapper.sprm( rSprm );
m_pImpl->m_rDMapper.PopStyleSheetProperties();
applyDefaults( true );
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_RPrDefault_rPr:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->m_rDMapper.PushStyleSheetProperties( m_pImpl->m_pDefaultCharProps );
m_pImpl->m_rDMapper.sprm( rSprm );
m_pImpl->m_rDMapper.PopStyleSheetProperties();
applyDefaults( false );
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_TblPrBase_jc: //table alignment - row properties!
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
m_pImpl->m_pCurrentEntry->pProperties->Insert( PROP_HORI_ORIENT, false,
uno::makeAny( ConversionHelper::convertTableJustification( nIntValue )));
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_TrPrBase_jc: //table alignment - row properties!
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
dynamic_cast< StyleSheetPropertyMap* >( m_pImpl->m_pCurrentEntry->pProperties.get() )->SetCT_TrPrBase_jc(nIntValue);
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_TblPrBase_tblBorders: //table borders, might be defined in table style
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
{
writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
if( pProperties.get())
@@ -1011,11 +676,13 @@ void StyleSheetTable::sprm(Sprm & rSprm)
pTEntry->m_nColBandSize = nIntValue;
}
}
+ case NS_ooxml::LN_CT_TblPrBase_tblCellMar:
+ //no cell margins in styles
break;
- /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_pPr:
/* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
case NS_ooxml::LN_CT_Style_rPr:
+ /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 0 */
default:
if (!m_pImpl->m_pCurrentEntry)
break;
@@ -1028,12 +695,20 @@ void StyleSheetTable::sprm(Sprm & rSprm)
m_pImpl->m_rDMapper.PopStyleSheetProperties( );
}
}
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("StyleSheetTable.sprm");
+#endif
}
/*-- 19.06.2006 12:04:33---------------------------------------------------
-----------------------------------------------------------------------*/
void StyleSheetTable::entry(int /*pos*/, writerfilter::Reference<Properties>::Pointer_t ref)
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("StyleSheetTable.entry");
+#endif
+
//create a new style entry
// printf("StyleSheetTable::entry(...)\n");
OSL_ENSURE( !m_pImpl->m_pCurrentEntry, "current entry has to be NULL here");
@@ -1052,8 +727,17 @@ void StyleSheetTable::entry(int /*pos*/, writerfilter::Reference<Properties>::Po
{
//TODO: this entry contains the default settings - they have to be added to the settings
}
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->addTag(m_pImpl->m_pCurrentEntry->toTag());
+#endif
+
StyleSheetEntryPtr pEmptyEntry;
m_pImpl->m_pCurrentEntry = pEmptyEntry;
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("StyleSheetTable.entry");
+#endif
}
/*-- 21.06.2006 15:34:49---------------------------------------------------
sorting helper
@@ -1154,7 +838,8 @@ void StyleSheetTable::ApplyStyleSheets( FontTablePtr rFontTable )
{
//TODO: Handle cases where a paragraph <> character style relation is needed
StyleSheetEntryPtr pParent = FindStyleSheetByISTD( pEntry->sBaseStyleIdentifier );
- xStyle->setParentStyle(ConvertStyleName( pParent->sStyleName ));
+ if (pParent.get() != NULL)
+ xStyle->setParentStyle(ConvertStyleName( pParent->sStyleName ));
}
catch( const uno::RuntimeException& )
{
@@ -1175,18 +860,18 @@ void StyleSheetTable::ApplyStyleSheets( FontTablePtr rFontTable )
// font size to 240 twip (12 pts) for all if not set
pEntry->pProperties->Insert(PROP_CHAR_HEIGHT, true, aTwoHundredFortyTwip, false);
// western font not already set -> apply first font
- const FontEntry* pWesternFontEntry = rFontTable->getFontEntry( 0 );
+ const FontEntry::Pointer_t pWesternFontEntry(rFontTable->getFontEntry( 0 ));
rtl::OUString sWesternFontName = pWesternFontEntry->sFontName;
pEntry->pProperties->Insert(PROP_CHAR_FONT_NAME, true, uno::makeAny( sWesternFontName ), false);
// CJK ... apply second font
- const FontEntry* pCJKFontEntry = rFontTable->getFontEntry( 2 );
+ const FontEntry::Pointer_t pCJKFontEntry(rFontTable->getFontEntry( 2 ));
pEntry->pProperties->Insert(PROP_CHAR_FONT_NAME_ASIAN, true, uno::makeAny( pCJKFontEntry->sFontName ), false);
pEntry->pProperties->Insert(PROP_CHAR_HEIGHT_ASIAN, true, aTwoHundredFortyTwip, false);
// CTL ... apply third font, if available
if( nFontCount > 3 )
{
- const FontEntry* pCTLFontEntry = rFontTable->getFontEntry( 3 );
+ const FontEntry::Pointer_t pCTLFontEntry(rFontTable->getFontEntry( 3 ));
pEntry->pProperties->Insert(PROP_CHAR_FONT_NAME_COMPLEX, true, uno::makeAny( pCTLFontEntry->sFontName ), false);
pEntry->pProperties->Insert(PROP_CHAR_HEIGHT_COMPLEX, true, aTwoHundredFortyTwip, false);
}
@@ -1306,14 +991,26 @@ void StyleSheetTable::ApplyStyleSheets( FontTablePtr rFontTable )
uno::Reference< beans::XMultiPropertySet > xMultiPropertySet( xStyle, uno::UNO_QUERY_THROW);
xMultiPropertySet->setPropertyValues( aSortedPropVals.getNames(), aSortedPropVals.getValues() );
}
- catch( const beans::UnknownPropertyException& rUnknown)
- {
- (void) rUnknown;
- OSL_ENSURE( false, "Some style properties could not be set");
- }
catch( const lang::WrappedTargetException& rWrapped)
{
(void) rWrapped;
+ rtl::OString aMessage("Some style properties could not be set");
+#if OSL_DEBUG_LEVEL > 0
+ beans::UnknownPropertyException aUnknownPropertyException;
+
+ if( rWrapped.TargetException >>= aUnknownPropertyException )
+ {
+ aMessage += rtl::OString(": " );
+ ::rtl::OString sTemp;
+ aUnknownPropertyException.Message.convertToString(&sTemp, RTL_TEXTENCODING_ASCII_US, 0 );
+ aMessage += sTemp;
+ }
+#endif
+ OSL_ENSURE( false, aMessage.getStr());
+ }
+ catch( const uno::Exception& rEx)
+ {
+ (void) rEx;
OSL_ENSURE( false, "Some style properties could not be set");
}
}
diff --git a/writerfilter/source/dmapper/StyleSheetTable.hxx b/writerfilter/source/dmapper/StyleSheetTable.hxx
index 0dd31ed52f9d..6eef483289ec 100644
--- a/writerfilter/source/dmapper/StyleSheetTable.hxx
+++ b/writerfilter/source/dmapper/StyleSheetTable.hxx
@@ -36,6 +36,10 @@
#include <FontTable.hxx>
#include <resourcemodel/WW8ResourceModel.hxx>
+#ifdef DEBUG_DOMAINMAPPER
+#include <resourcemodel/TagLogger.hxx>
+#endif
+
namespace com{ namespace sun { namespace star { namespace text{
class XTextDocument;
}}}}
@@ -56,8 +60,9 @@ enum StyleType
};
struct StyleSheetTable_Impl;
-struct StyleSheetEntry
+class StyleSheetEntry
{
+public:
::rtl::OUString sStyleIdentifierI;
::rtl::OUString sStyleIdentifierD;
bool bIsDefaultStyle;
@@ -70,7 +75,13 @@ struct StyleSheetEntry
::rtl::OUString sStyleName1;
PropertyMapPtr pProperties;
::rtl::OUString sConvertedStyleName;
+
+#ifdef DEBUG_DOMAINMAPPER
+ virtual XMLTag::Pointer_t toTag();
+#endif
+
StyleSheetEntry();
+ virtual ~StyleSheetEntry();
};
typedef boost::shared_ptr<StyleSheetEntry> StyleSheetEntryPtr;
@@ -137,8 +148,12 @@ public:
// + from the parent styles
PropertyMapPtr GetProperties( sal_Int32 nMask );
+#ifdef DEBUG_DOMAINMAPPER
+ virtual XMLTag::Pointer_t toTag();
+#endif
+
TableStyleSheetEntry( StyleSheetEntry& aEntry, StyleSheetTable* pStyles );
- ~TableStyleSheetEntry( );
+ virtual ~TableStyleSheetEntry( );
protected:
PropertyMapPtr GetLocalPropertiesFromMask( sal_Int32 nMask );
diff --git a/writerfilter/source/dmapper/TablePropertiesHandler.cxx b/writerfilter/source/dmapper/TablePropertiesHandler.cxx
index e3739b56e636..10b2eed97a81 100644
--- a/writerfilter/source/dmapper/TablePropertiesHandler.cxx
+++ b/writerfilter/source/dmapper/TablePropertiesHandler.cxx
@@ -11,6 +11,7 @@
#include <com/sun/star/text/SizeType.hpp>
#include <com/sun/star/text/VertOrientation.hpp>
+#include <dmapperLoggers.hxx>
namespace writerfilter {
@@ -31,6 +32,11 @@ namespace dmapper {
bool TablePropertiesHandler::sprm(Sprm & rSprm)
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("TablePropertiesHandler.sprm");
+ dmapper_logger->attribute("sprm", rSprm.toString());
+#endif
+
bool bRet = true;
sal_uInt32 nSprmId = rSprm.getId();
Value::Pointer_t pValue = rSprm.getValue();
@@ -133,6 +139,10 @@ namespace dmapper {
pProperties->resolve(*pBorderHandler);
TablePropertyMapPtr pTablePropMap( new TablePropertyMap );
pTablePropMap->insert( pBorderHandler->getProperties() );
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->addTag(pTablePropMap->toTag());
+#endif
insertTableProps( pTablePropMap );
}
}
@@ -210,8 +220,26 @@ namespace dmapper {
}
}
break;
+ case NS_ooxml::LN_CT_TblPrBase_tblInd:
+ {
+ writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
+ if (pProperties.get())
+ {
+ MeasureHandlerPtr pHandler(new MeasureHandler);
+ TablePropertyMapPtr pTblIndMap(new TablePropertyMap);
+ sal_uInt32 nTblInd = pHandler->getMeasureValue();
+ pTblIndMap->setValue( TablePropertyMap::LEFT_MARGIN, nTblInd);
+ insertTableProps(pTblIndMap);
+ }
+ }
+ break;
default: bRet = false;
}
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("TablePropertiesHandler.sprm");
+#endif
+
return bRet;
}
}}
diff --git a/writerfilter/source/dmapper/TblStylePrHandler.cxx b/writerfilter/source/dmapper/TblStylePrHandler.cxx
index d6f790990e22..53838353c3b0 100644
--- a/writerfilter/source/dmapper/TblStylePrHandler.cxx
+++ b/writerfilter/source/dmapper/TblStylePrHandler.cxx
@@ -1,6 +1,8 @@
#include <TblStylePrHandler.hxx>
#include <PropertyMap.hxx>
#include <ooxml/resourceids.hxx>
+#include <dmapperLoggers.hxx>
+#include <resourcemodel/QNameToString.hxx>
namespace writerfilter {
namespace dmapper {
@@ -20,6 +22,13 @@ TblStylePrHandler::~TblStylePrHandler( )
void TblStylePrHandler::attribute(Id rName, Value & rVal)
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("TblStylePrHandler.attribute");
+ dmapper_logger->attribute("name", (*QNameToString::Instance())(rName));
+ dmapper_logger->chars(rVal.toString());
+ dmapper_logger->endElement("TblStylePrHandler.attribute");
+#endif
+
switch ( rName )
{
case NS_ooxml::LN_CT_TblStyleOverrideType:
@@ -34,6 +43,11 @@ void TblStylePrHandler::attribute(Id rName, Value & rVal)
void TblStylePrHandler::sprm(Sprm & rSprm)
{
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->startElement("TblStylePrHandler.sprm");
+ dmapper_logger->attribute("sprm", rSprm.toString());
+#endif
+
Value::Pointer_t pValue = rSprm.getValue();
switch ( rSprm.getId( ) )
{
@@ -57,6 +71,10 @@ void TblStylePrHandler::sprm(Sprm & rSprm)
m_rDMapper.PopStyleSheetProperties( true );
}
}
+
+#ifdef DEBUG_DOMAINMAPPER
+ dmapper_logger->endElement("TblStylePrHandler.sprm");
+#endif
}
void TblStylePrHandler::resolveSprmProps(Sprm & rSprm)
diff --git a/writerfilter/source/dmapper/ThemeTable.cxx b/writerfilter/source/dmapper/ThemeTable.cxx
index cde3c0d39082..ec9d8ea9d5a5 100644..100755
--- a/writerfilter/source/dmapper/ThemeTable.cxx
+++ b/writerfilter/source/dmapper/ThemeTable.cxx
@@ -25,9 +25,7 @@
*
************************************************************************/
-#ifndef INCLUDED_FONTTABLE_HXX
#include <ThemeTable.hxx>
-#endif
#ifndef INCLUDED_RESOURCESIDS
#include <doctok/resourceids.hxx>
#include <ooxml/resourceids.hxx>
diff --git a/sc/inc/eetext.hxx b/writerfilter/source/dmapper/dmapperLoggers.cxx
index 28ee0d5f09b2..29eece8a8f3d 100644
--- a/sc/inc/eetext.hxx
+++ b/writerfilter/source/dmapper/dmapperLoggers.cxx
@@ -2,10 +2,13 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2000, 2010 Oracle and/or its affiliates.
+ * Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
+ * $RCSfile: ooxmlLoggers.hxx,v $
+ * $Revision: 1.2 $
+ *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -24,10 +27,13 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
+#include "dmapperLoggers.hxx"
+
+namespace writerfilter {
+namespace dmapper {
-#ifndef SC_EETEXT_HXX
-#define SC_EETEXT_HXX
-#endif
+}
+}
diff --git a/testshl2/inc/testshl/autoregister/testfunc.h b/writerfilter/source/dmapper/dmapperLoggers.hxx
index 55b97de05e34..a19ff4832370 100644
--- a/testshl2/inc/testshl/autoregister/testfunc.h
+++ b/writerfilter/source/dmapper/dmapperLoggers.hxx
@@ -2,10 +2,13 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2000, 2010 Oracle and/or its affiliates.
+ * Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
+ * $RCSfile: ooxmlLoggers.hxx,v $
+ * $Revision: 1.2 $
+ *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -25,20 +28,14 @@
*
************************************************************************/
-#ifndef _testfunc_h
-#define _testfunc_h
-
-#include <testshl/autoregister/htestresult.h>
+#ifndef INCLUDED_DMAPPER_LOGGERS_HXX
+#define INCLUDED_DMAPPER_LOGGERS_HXX
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include <resourcemodel/TagLogger.hxx>
-// typedef for a testfunction
-typedef void (* FktPtr)(hTestResult);
-
-#ifdef __cplusplus
+namespace writerfilter {
+ namespace dmapper {
+ extern TagLogger::Pointer_t dmapper_logger;
+ }
}
-#endif
-
-#endif
+#endif // INCLUDED_DMAPPER_LOGGERS_HXX
diff --git a/writerfilter/source/dmapper/makefile.mk b/writerfilter/source/dmapper/makefile.mk
index b757af3fedeb..dd94415aa966 100644..100755
--- a/writerfilter/source/dmapper/makefile.mk
+++ b/writerfilter/source/dmapper/makefile.mk
@@ -38,32 +38,34 @@ ENABLE_EXCEPTIONS=TRUE
# --- Files -------------------------------------
-SLOFILES= $(SLO)$/BorderHandler.obj \
- $(SLO)$/TblStylePrHandler.obj \
- $(SLO)$/GraphicHelpers.obj \
- $(SLO)$/TablePropertiesHandler.obj \
- $(SLO)$/CellColorHandler.obj \
- $(SLO)$/CellMarginHandler.obj \
- $(SLO)$/SectionColumnHandler.obj \
- $(SLO)$/ConversionHelper.obj \
- $(SLO)$/DomainMapper.obj \
- $(SLO)$/DomainMapper_Impl.obj \
- $(SLO)$/DomainMapperTableHandler.obj \
- $(SLO)$/DomainMapperTableManager.obj \
- $(SLO)$/FontTable.obj \
- $(SLO)$/GraphicImport.obj \
- $(SLO)$/LFOTable.obj \
- $(SLO)$/ListTable.obj \
- $(SLO)$/MeasureHandler.obj \
- $(SLO)$/PropertyMap.obj \
- $(SLO)$/PropertyIds.obj \
- $(SLO)$/StyleSheetTable.obj \
- $(SLO)$/TDefTableHandler.obj \
- $(SLO)$/ThemeTable.obj \
- $(SLO)$/SettingsTable.obj \
- $(SLO)$/ModelEventListener.obj\
- $(SLO)$/OLEHandler.obj \
- $(SLO)$/PageBordersHandler.obj
+SLOFILES= \
+ $(SLO)$/BorderHandler.obj \
+ $(SLO)$/CellColorHandler.obj \
+ $(SLO)$/CellMarginHandler.obj \
+ $(SLO)$/ConversionHelper.obj \
+ $(SLO)$/DomainMapper.obj \
+ $(SLO)$/DomainMapperTableHandler.obj \
+ $(SLO)$/DomainMapperTableManager.obj \
+ $(SLO)$/DomainMapper_Impl.obj \
+ $(SLO)$/FontTable.obj \
+ $(SLO)$/GraphicHelpers.obj \
+ $(SLO)$/GraphicImport.obj \
+ $(SLO)$/LFOTable.obj \
+ $(SLO)$/ListTable.obj \
+ $(SLO)$/MeasureHandler.obj \
+ $(SLO)$/ModelEventListener.obj \
+ $(SLO)$/OLEHandler.obj \
+ $(SLO)$/PageBordersHandler.obj \
+ $(SLO)$/PropertyIds.obj \
+ $(SLO)$/PropertyMap.obj \
+ $(SLO)$/PropertyMapHelper.obj \
+ $(SLO)$/SectionColumnHandler.obj \
+ $(SLO)$/SettingsTable.obj \
+ $(SLO)$/StyleSheetTable.obj \
+ $(SLO)$/TDefTableHandler.obj \
+ $(SLO)$/TablePropertiesHandler.obj \
+ $(SLO)$/TblStylePrHandler.obj \
+ $(SLO)$/ThemeTable.obj
# --- Targets ----------------------------------
diff --git a/writerfilter/source/doctok/WW8DocumentImpl.cxx b/writerfilter/source/doctok/WW8DocumentImpl.cxx
index d314854836e9..cda79dad1cdf 100644
--- a/writerfilter/source/doctok/WW8DocumentImpl.cxx
+++ b/writerfilter/source/doctok/WW8DocumentImpl.cxx
@@ -228,6 +228,11 @@ mbInSection(false), mbInParagraphGroup(false), mbInCharacterGroup(false)
break;
}
+ if (mpFib->get_nFib() >= 0xD9)
+ {
+ mpFibRgFcLcb2000.reset(new WW8FibRgFcLcb2000(*mpFib));
+ }
+
if (mpTableStream.get() == NULL)
throw ExceptionNotFound("Table stream not found.");
@@ -966,21 +971,45 @@ WW8SED * WW8DocumentImpl::getSED(const CpAndFc & rCpAndFc) const
return pResult;
}
+writerfilter::Reference<Table>::Pointer_t WW8DocumentImpl::getListTplcs() const
+{
+ writerfilter::Reference<Table>::Pointer_t pResult;
+
+ if (mpFibRgFcLcb2000.get() != NULL &&
+ mpFibRgFcLcb2000->get_fcSttbRgtplc() != 0 &&
+ mpFibRgFcLcb2000->get_lcbSttbRgtplc() != 0)
+ {
+ WW8SttbRgtplc * pSttbRgtplc =
+ new WW8SttbRgtplc(*mpTableStream,
+ mpFibRgFcLcb2000->get_fcSttbRgtplc(),
+ mpFibRgFcLcb2000->get_lcbSttbRgtplc());
+
+ pResult = writerfilter::Reference<Table>::Pointer_t(pSttbRgtplc);
+ }
+
+ return pResult;
+}
+
writerfilter::Reference<Table>::Pointer_t WW8DocumentImpl::getListTable() const
{
writerfilter::Reference<Table>::Pointer_t pResult;
if (mpFib->get_fcPlcfLst() != 0 && mpFib->get_lcbPlcfLst() > 0)
{
- WW8ListTable * pList = new WW8ListTable(*mpTableStream,
- mpFib->get_fcPlcfLst(),
- mpFib->get_fcPlfLfo() -
- mpFib->get_fcPlcfLst());
+ try
+ {
+ WW8ListTable * pList = new WW8ListTable(*mpTableStream,
+ mpFib->get_fcPlcfLst(),
+ mpFib->get_fcPlfLfo() -
+ mpFib->get_fcPlcfLst());
- pList->setPayloadOffset(mpFib->get_lcbPlcfLst());
- pList->initPayload();
+ pList->setPayloadOffset(mpFib->get_lcbPlcfLst());
+ pList->initPayload();
- pResult = writerfilter::Reference<Table>::Pointer_t(pList);
+ pResult = writerfilter::Reference<Table>::Pointer_t(pList);
+ }
+ catch (ExceptionOutOfBounds aException) {
+ }
}
return pResult;
@@ -1433,7 +1462,7 @@ void WW8DocumentImpl::utext(Stream & rStream, const sal_uInt8 * data, size_t len
debug_logger->chars(OUStringToOString(sText, RTL_TEXTENCODING_ASCII_US).getStr());
debug_logger->endElement("utext");
#endif
- rStream.text(data, len);
+ rStream.utext(data, len);
}
@@ -1618,6 +1647,13 @@ void WW8DocumentImpl::resolve(Stream & rStream)
(new WW8Fib(*mpFib));
rStream.props(pFib);
+ if (mpFibRgFcLcb2000.get() != NULL)
+ {
+ writerfilter::Reference<Properties>::Pointer_t pFibRgFcLcb2000
+ (new WW8FibRgFcLcb2000(*mpFibRgFcLcb2000));
+ rStream.props(pFibRgFcLcb2000);
+ }
+
#if 0
if (mpTextBoxStories.get() != NULL)
{
@@ -1685,6 +1721,10 @@ void WW8DocumentImpl::resolve(Stream & rStream)
}
#endif
+ writerfilter::Reference<Table>::Pointer_t pSttbRgtplc = getListTplcs();
+
+ if (pSttbRgtplc.get() != NULL)
+ rStream.table(NS_rtf::LN_SttbRgtplc, pSttbRgtplc);
writerfilter::Reference<Table>::Pointer_t pListTable = getListTable();
diff --git a/writerfilter/source/doctok/WW8DocumentImpl.hxx b/writerfilter/source/doctok/WW8DocumentImpl.hxx
index 65c24e913b37..9b123ae54cde 100644
--- a/writerfilter/source/doctok/WW8DocumentImpl.hxx
+++ b/writerfilter/source/doctok/WW8DocumentImpl.hxx
@@ -299,6 +299,9 @@ class WW8DocumentImpl : public WW8Document
/// pointer to the file information block
WW8Fib::Pointer_t mpFib;
+ /// pointer to the file information block for post 2000 documents
+ WW8FibRgFcLcb2000::Pointer_t mpFibRgFcLcb2000;
+
/// pointer to the offsets of headers/footers
WW8StructBase::Pointer_t mpHeaderOffsets;
@@ -395,8 +398,6 @@ public:
virtual WW8Stream::Sequence getText(const CpAndFc & rStart);
- WW8Fib::Pointer_t getFib() const;
-
/**
Returns the document stream.
*/
@@ -528,6 +529,11 @@ public:
WW8SED * getSED(const CpAndFc & rCpAndFc) const;
/**
+ Return reference to list plcs.
+ */
+ writerfilter::Reference<Table>::Pointer_t getListTplcs() const;
+
+ /**
Return reference to list table.
*/
writerfilter::Reference<Table>::Pointer_t getListTable() const;
diff --git a/writerfilter/source/doctok/WW8LFOLevel.cxx b/writerfilter/source/doctok/WW8LFOLevel.cxx
deleted file mode 100644
index b0a1d8c2c59d..000000000000
--- a/writerfilter/source/doctok/WW8LFOLevel.cxx
+++ /dev/null
@@ -1,45 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General 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 "resources.hxx"
-
-sal_uInt32 doctok::WW8LFOLevel::calcSize()
-{
- sal_uInt32 nResult = doctok::WW8LFOLevel::getSize();
-
- if (get_fFormatting())
- {
- doctok::WW8ListLevel aLevel(parent, mnOffsetInParent + nResult)
- nResult += aLevel.calcSize();
-
- sal_uInt32 nXstSize = parent->getU16(nOffset);
-
- nResult += (nXstSize + 1) * 2;
- }
-
- return nResult;
-}
diff --git a/writerfilter/source/doctok/WW8LFOTable.cxx b/writerfilter/source/doctok/WW8LFOTable.cxx
index e0bf6d793d64..2164c4887c8b 100644
--- a/writerfilter/source/doctok/WW8LFOTable.cxx
+++ b/writerfilter/source/doctok/WW8LFOTable.cxx
@@ -35,39 +35,37 @@ void WW8LFOTable::initPayload()
sal_uInt32 nCount = getEntryCount();
sal_uInt32 nOffset = 4;
- sal_uInt32 nOffsetLevel = mnPlcfPayloadOffset;
+ sal_uInt32 nOffsetLFOData = mnPlcfPayloadOffset;
for (sal_uInt32 n = 0; n < nCount; ++n)
{
WW8LFO aLFO(this, nOffset);
entryOffsets.push_back(nOffset);
- payloadIndices.push_back(payloadOffsets.size());
nOffset += WW8LFO::getSize();
- sal_uInt32 nLvlCount = aLFO.get_lfolevel_count();
+ payloadOffsets.push_back(nOffsetLFOData);
+ payloadIndices.push_back(n);
- for (sal_uInt32 i = 0; i < nLvlCount; ++i)
- {
- WW8LFOLevel aLevel(this, nOffsetLevel);
+ nOffsetLFOData += 4;
- payloadOffsets.push_back(nOffsetLevel);
+ sal_uInt32 nLvls = aLFO.get_clfolvl();
- nOffsetLevel += aLevel.calcSize();
+ for (sal_uInt32 k = 0; k < nLvls; ++k)
+ {
+ WW8LFOLevel aLevel(this, nOffsetLFOData);
+ nOffsetLFOData += aLevel.calcSize();
}
}
entryOffsets.push_back(nOffset);
- payloadOffsets.push_back(nOffsetLevel);
+ payloadOffsets.push_back(nOffsetLFOData);
}
sal_uInt32 WW8LFOTable::calcPayloadOffset()
{
sal_uInt32 nResult = 4 + getEntryCount() * WW8LFO::getSize();
- while (getU32(nResult) == 0xffffffff)
- nResult += 4;
-
return nResult;
}
@@ -86,11 +84,18 @@ WW8LFOTable::getEntry(sal_uInt32 nIndex)
return writerfilter::Reference<Properties>::Pointer_t(pLFO);
}
-sal_uInt32 WW8LFO::get_lfolevel_count()
+writerfilter::Reference<Properties>::Pointer_t
+WW8LFO::get_LFOData()
{
- return get_clfolvl();
+ WW8LFOTable * pLFOTable = dynamic_cast<WW8LFOTable *>(mpParent);
+ sal_uInt32 nPayloadOffset = pLFOTable->getPayloadOffset(mnIndex);
+ sal_uInt32 nPayloadSize = pLFOTable->getPayloadSize(mnIndex);
+
+ return writerfilter::Reference<Properties>::Pointer_t
+ (new WW8LFOData(mpParent, nPayloadOffset, nPayloadSize));
}
+/*
writerfilter::Reference<Properties>::Pointer_t
WW8LFO::get_lfolevel(sal_uInt32 nIndex)
{
@@ -102,6 +107,7 @@ WW8LFO::get_lfolevel(sal_uInt32 nIndex)
return writerfilter::Reference<Properties>::Pointer_t
(new WW8LFOLevel(mpParent, nPayloadOffset, nPayloadSize));
}
+*/
void WW8LFOLevel::resolveNoAuto(Properties & /*rHandler*/)
{
diff --git a/writerfilter/source/doctok/WW8ListTable.cxx b/writerfilter/source/doctok/WW8ListTable.cxx
index 4e2e476f08e2..f70c7740dff2 100644
--- a/writerfilter/source/doctok/WW8ListTable.cxx
+++ b/writerfilter/source/doctok/WW8ListTable.cxx
@@ -26,6 +26,7 @@
************************************************************************/
#include <resources.hxx>
+#include <WW8ResourceModelImpl.hxx>
namespace writerfilter {
namespace doctok {
@@ -53,10 +54,6 @@ void WW8ListTable::initPayload()
payloadOffsets.push_back(nOffsetLevel);
nOffsetLevel += aLevel.calcSize();
-
- sal_uInt32 nXstSize = getU16(nOffsetLevel);
-
- nOffsetLevel += 2 + nXstSize * 2;
}
if (nOffsetLevel > getCount())
@@ -112,6 +109,16 @@ WW8List::get_listlevel(sal_uInt32 nIndex)
(new WW8ListLevel(mpParent, nPayloadOffset, nPayloadSize));
}
+::rtl::OUString WW8ListLevel::get_xst()
+{
+ sal_uInt32 nOffset = WW8ListLevel::getSize();
+
+ nOffset += get_cbGrpprlPapx();
+ nOffset += get_cbGrpprlChpx();
+
+ return getString(nOffset);
+}
+
void WW8ListLevel::resolveNoAuto(Properties & rHandler)
{
sal_uInt32 nOffset = getSize();
@@ -133,12 +140,6 @@ void WW8ListLevel::resolveNoAuto(Properties & rHandler)
WW8PropertiesReference aRef(pSet);
aRef.resolve(rHandler);
}
-
- nOffset += get_cbGrpprlChpx();
-
- WW8StringValue aVal(getString(nOffset));
-
- rHandler.attribute(0, aVal);
}
sal_uInt32 WW8ListLevel::calcSize()
@@ -147,6 +148,7 @@ sal_uInt32 WW8ListLevel::calcSize()
nResult += get_cbGrpprlPapx();
nResult += get_cbGrpprlChpx();
+ nResult += 2 + getU16(nResult) * 2;
return nResult;
}
diff --git a/writerfilter/source/doctok/WW8PropertySetImpl.cxx b/writerfilter/source/doctok/WW8PropertySetImpl.cxx
index 88633102e940..7b0cf28282c7 100644
--- a/writerfilter/source/doctok/WW8PropertySetImpl.cxx
+++ b/writerfilter/source/doctok/WW8PropertySetImpl.cxx
@@ -147,7 +147,15 @@ sal_uInt32 WW8PropertyImpl::getByteLength() const
break;
default:
- nParamSize = getU8(2) + 1;
+ switch (getId())
+ {
+ case 0xd608:
+ nParamSize = getU16(2) + 1;
+ break;
+ default:
+ nParamSize = getU8(2) + 1;
+ break;
+ }
break;
}
@@ -314,7 +322,7 @@ string WW8PropertySetImpl::getType() const
return "WW8PropertySetImpl";
}
-void WW8PropertySetImpl::resolveLocal(Sprm & sprm)
+void WW8PropertySetImpl::resolveLocal(Sprm & sprm, Properties & rHandler)
{
switch (sprm.getId())
{
@@ -329,6 +337,27 @@ void WW8PropertySetImpl::resolveLocal(Sprm & sprm)
{
getDocument()->setPicIsData(true);
}
+ break;
+ case 0x6646:
+ {
+ WW8Stream::Pointer_t pStream = getDocument()->getDataStream();
+
+ if (pStream.get() != NULL)
+ {
+ Value::Pointer_t pValue = sprm.getValue();
+ sal_uInt32 nOffset = pValue->getInt();
+ WW8StructBase aStruct(*pStream, nOffset, 2);
+ sal_uInt16 nCount = aStruct.getU16(0);
+
+ {
+ WW8PropertySetImpl * pPropSet =
+ new WW8PropertySetImpl(*pStream, nOffset + 2, nCount);
+
+ pPropSet->resolve(rHandler);
+ }
+ }
+ }
+ break;
default:
break;
}
@@ -353,7 +382,7 @@ void WW8PropertySetImpl::resolve(Properties & rHandler)
rHandler.sprm(aSprm);
- resolveLocal(aSprm);
+ resolveLocal(aSprm, rHandler);
++(*pIt);
}
diff --git a/writerfilter/source/doctok/WW8PropertySetImpl.hxx b/writerfilter/source/doctok/WW8PropertySetImpl.hxx
index 5c5c42b73a15..2f7bb0f34708 100644
--- a/writerfilter/source/doctok/WW8PropertySetImpl.hxx
+++ b/writerfilter/source/doctok/WW8PropertySetImpl.hxx
@@ -104,12 +104,13 @@ public:
virtual void resolve(Properties & rHandler);
/**
- Get and distribute information from sprm that is used
- internally by the document.
+ Get and distribute information from sprm that is used
+ internally by the document.
- @param rSprm sprm to process
+ @param rSprm sprm to process
+ @param rHandler property handler to resolve huge papx (sprm 0x6646) to
*/
- virtual void resolveLocal(Sprm & rSprm);
+ virtual void resolveLocal(Sprm & rSprm, Properties & rHandler);
};
class WW8PropertySetIteratorImpl : public WW8PropertySetIterator
diff --git a/writerfilter/source/doctok/WW8StructBase.cxx b/writerfilter/source/doctok/WW8StructBase.cxx
index e4149ca29874..7d03e8763c69 100644
--- a/writerfilter/source/doctok/WW8StructBase.cxx
+++ b/writerfilter/source/doctok/WW8StructBase.cxx
@@ -115,16 +115,25 @@ rtl::OUString WW8StructBase::getString(sal_uInt32 nOffset, sal_uInt32 nCount)
{
rtl::OUString aResult;
- Sequence aSeq(mSequence, nOffset, nCount * 2);
-
- if (nCount > 0)
+ if (nOffset < getCount())
{
- rtl_uString * pNew = 0;
- rtl_uString_newFromStr_WithLength
+ sal_uInt32 nCount1 = nCount;
+ if (nOffset + nCount * 2 > getCount())
+ {
+ nCount1 = (getCount() - nOffset) / 2;
+ }
+
+ if (nCount1 > 0)
+ {
+ Sequence aSeq(mSequence, nOffset, nCount1 * 2);
+
+ rtl_uString * pNew = 0;
+ rtl_uString_newFromStr_WithLength
(&pNew, reinterpret_cast<const sal_Unicode *>(&aSeq[0]),
- nCount);
+ nCount1);
- aResult = rtl::OUString(pNew);
+ aResult = rtl::OUString(pNew);
+ }
}
return aResult;
diff --git a/writerfilter/source/doctok/WW8Sttbf.cxx b/writerfilter/source/doctok/WW8Sttbf.cxx
index e5d87b9aeaa0..36e2e805436d 100644
--- a/writerfilter/source/doctok/WW8Sttbf.cxx
+++ b/writerfilter/source/doctok/WW8Sttbf.cxx
@@ -26,6 +26,7 @@
************************************************************************/
#include <WW8Sttbf.hxx>
+#include <resources.hxx>
namespace writerfilter {
namespace doctok
@@ -86,4 +87,82 @@ WW8StructBase::Pointer_t WW8Sttbf::getExtraData(sal_uInt32 nPos)
(new WW8StructBase(*this, getExtraOffset(nPos), mnExtraDataCount));
}
+WW8SttbTableResource::WW8SttbTableResource(WW8Sttbf::Pointer_t pSttbf)
+: mpSttbf(pSttbf)
+{
+}
+
+WW8SttbTableResource::~WW8SttbTableResource()
+{
+}
+
+void WW8SttbTableResource::resolve(Table & rTable)
+{
+ sal_uInt32 nCount = mpSttbf->getEntryCount();
+
+ for (sal_uInt32 n = 0; n < nCount; n++)
+ {
+ WW8StringValue::Pointer_t pVal(new WW8StringValue(mpSttbf->getEntry(n)));
+ ::writerfilter::Reference<Properties>::Pointer_t pProps(new WW8StringProperty(0, pVal));
+
+ rTable.entry(n, pProps);
+ }
+}
+
+string WW8SttbTableResource::getType() const
+{
+ return "WW8SttbTableResource";
+}
+
+WW8StringProperty::WW8StringProperty(sal_uInt32 nId, WW8StringValue::Pointer_t pValue)
+: mnId(nId), mpValue(pValue)
+{
+}
+
+WW8StringProperty::~WW8StringProperty()
+{
+}
+
+void WW8StringProperty::resolve(Properties & rProperties)
+{
+ rProperties.attribute(mnId, *mpValue);
+}
+
+string WW8StringProperty::getType() const
+{
+ return "WW8StringProperty";
+}
+
+sal_uInt32 WW8SttbRgtplc::getEntryCount()
+{
+ return getU16(2);
+}
+
+::writerfilter::Reference<Properties>::Pointer_t
+WW8SttbRgtplc::getEntry(sal_uInt32 nIndex)
+{
+ ::writerfilter::Reference<Properties>::Pointer_t pResult;
+
+ sal_uInt32 nOffset = 6;
+
+ while (nIndex > 0)
+ {
+ sal_uInt16 nCount = getU16(nOffset);
+
+ nOffset = nOffset + 2 + nCount;
+ ++nIndex;
+ }
+
+ sal_uInt16 nCount = getU16(nOffset);
+
+ if (nCount > 0)
+ {
+ WW8Tplc * pTplc = new WW8Tplc(*this, nOffset + 2, nCount);
+
+ pResult.reset(pTplc);
+ }
+
+ return pResult;
+}
+
}}
diff --git a/writerfilter/source/doctok/WW8Sttbf.hxx b/writerfilter/source/doctok/WW8Sttbf.hxx
index 2cdae76d7e11..5c82d94723a9 100644
--- a/writerfilter/source/doctok/WW8Sttbf.hxx
+++ b/writerfilter/source/doctok/WW8Sttbf.hxx
@@ -29,6 +29,7 @@
#define INCLUDED_WW8_STTBF_HXX
#include <WW8StructBase.hxx>
+#include <WW8ResourceModelImpl.hxx>
#include <boost/shared_ptr.hpp>
#include <vector>
@@ -99,5 +100,33 @@ public:
*/
WW8StructBase::Pointer_t getExtraData(sal_uInt32 nPos);
};
+
+class WW8SttbTableResource : public ::writerfilter::Reference<Table>
+{
+ WW8Sttbf::Pointer_t mpSttbf;
+
+public:
+ WW8SttbTableResource(WW8Sttbf::Pointer_t pSttbf);
+ virtual ~WW8SttbTableResource();
+
+ void resolve(Table & rTable);
+
+ string getType() const;
+};
+
+class WW8StringProperty : public ::writerfilter::Reference<Properties>
+{
+ sal_uInt32 mnId;
+ WW8StringValue::Pointer_t mpValue;
+
+public:
+ WW8StringProperty(sal_uInt32 nId, WW8StringValue::Pointer_t pValue);
+ virtual ~WW8StringProperty();
+
+ void resolve(Properties & rProperties);
+
+ string getType() const;
+};
+
}}
#endif // INCLUDED_WW8_STTBF
diff --git a/writerfilter/source/doctok/cleanupresources b/writerfilter/source/doctok/cleanupresources
new file mode 100755
index 000000000000..646c1ea4e0a7
--- /dev/null
+++ b/writerfilter/source/doctok/cleanupresources
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+TEMP=`mktemp -t cleanupresources`
+xsltproc tidyxmi.xsl resources.xmi | xmllint --format - > $TEMP
+mv $TEMP resources.xmi
diff --git a/writerfilter/source/doctok/compactxmi.xsl b/writerfilter/source/doctok/compactxmi.xsl
new file mode 100644
index 000000000000..36ab4f5c5f9a
--- /dev/null
+++ b/writerfilter/source/doctok/compactxmi.xsl
@@ -0,0 +1,262 @@
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:UML = 'org.omg.xmi.namespace.UML'
+ xmlns:exslt="http://exslt.org/common"
+ xml:space="default">
+ <xsl:output method="xml"/>
+
+ <xsl:template match="/">
+ <xsl:apply-templates select="//UML:Model"/>
+ </xsl:template>
+
+ <xsl:template match="UML:Model">
+ <model>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:call-template name="nostereotype"/>
+ <xsl:call-template name="ww8resources"/>
+ <xsl:call-template name="sprms"/>
+ </model>
+ </xsl:template>
+
+ <xsl:template name="nostereotype">
+ <xsl:for-each select="UML:Namespace.ownedElement/UML:Class[not(UML:ModelElement.stereotype)]">
+ <xsl:variable name="myid" select="@xmi.id"/>
+ <class>
+ <xsl:attribute name="name">
+ <xsl:value-of select="$myid"/>
+ </xsl:attribute>
+ <xsl:attribute name="resource">
+ <xsl:for-each select="//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$myid]">
+ <xsl:value-of select="UML:Generalization.parent/UML:Class/@xmi.idref"/>
+ </xsl:for-each>
+ </xsl:attribute>
+ <xsl:apply-templates select=".//UML:Attribute|.//UML:Operation" mode="ww8resource"/>
+ </class>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="ww8resources">
+ <xsl:for-each select="UML:Namespace.ownedElement/UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='ww8resource' and not(UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='ww8sprm')]">
+ <xsl:sort select="@xmi.id"/>
+ <xsl:call-template name="ww8resource"/>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="ww8resource">
+ <xsl:variable name="myid" select="@xmi.id"/>
+ <xsl:variable name="classid">
+ <xsl:call-template name="gettaggedvalue">
+ <xsl:with-param name="name">classid</xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <ww8resource>
+ <xsl:attribute name="name">
+ <xsl:value-of select="$myid"/>
+ </xsl:attribute>
+ <xsl:attribute name="resource">
+ <xsl:for-each select="//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$myid]">
+ <xsl:value-of select="UML:Generalization.parent/UML:Class/@xmi.idref"/>
+ </xsl:for-each>
+ </xsl:attribute>
+ <xsl:if test="string-length($classid) &gt; 0">
+ <xsl:attribute name="classid">
+ <xsl:value-of select="$classid"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:for-each select="UML:ModelElement.stereotype/UML:Stereotype">
+ <xsl:if test="@xmi.idref != 'ww8resource'">
+ <stereotype>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@xmi.idref"/>
+ </xsl:attribute>
+ </stereotype>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:apply-templates select=".//UML:Attribute|.//UML:Operation" mode="ww8resource"/>
+ </ww8resource>
+ </xsl:template>
+
+ <xsl:template name="gettaggedvalue">
+ <xsl:param name="name"/>
+ <xsl:for-each select="UML:ModelElement.taggedValue/UML:TaggedValue[UML:TaggedValue.type/UML:TagDefinition/@xmi.idref=$name]">
+ <xsl:value-of select="UML:TaggedValue.dataValue"/>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="sizefortype">
+ <xsl:param name="type"/>
+ <xsl:choose>
+ <xsl:when test="$type='S8'">1</xsl:when>
+ <xsl:when test="$type='U8'">1</xsl:when>
+ <xsl:when test="$type='S16'">2</xsl:when>
+ <xsl:when test="$type='U16'">2</xsl:when>
+ <xsl:when test="$type='S32'">4</xsl:when>
+ <xsl:when test="$type='U32'">4</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="bits">
+ <xsl:param name="bits"/>
+ <bits>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name="bits">
+ <xsl:value-of select="$bits"/>
+ </xsl:attribute>
+ <xsl:attribute name="token">
+ <xsl:call-template name="gettaggedvalue">
+ <xsl:with-param name="name">attrid</xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ </bits>
+ </xsl:template>
+
+ <xsl:template match="UML:Attribute" mode="ww8resource">
+ <xsl:variable name="mask">
+ <xsl:call-template name="gettaggedvalue">
+ <xsl:with-param name="name">mask</xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="offset">
+ <xsl:call-template name="gettaggedvalue">
+ <xsl:with-param name="name">offset</xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="type">
+ <xsl:value-of select="UML:StructuralFeature.type/UML:DataType/@xmi.idref"/>
+ </xsl:variable>
+ <xsl:variable name="size">
+ <xsl:call-template name="sizefortype">
+ <xsl:with-param name="type" select="$type"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="arraycount">
+ <xsl:call-template name="gettaggedvalue">
+ <xsl:with-param name="name">arraycount</xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($mask) = 0">
+ <attribute>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name="type">
+ <xsl:value-of select="$type"/>
+ </xsl:attribute>
+ <xsl:attribute name="size">
+ <xsl:value-of select="$size"/>
+ </xsl:attribute>
+ <xsl:for-each select="UML:ModelElement.stereotype/UML:Stereotype[@xmi.idref='array']">
+ <xsl:attribute name="array-count">
+ <xsl:value-of select="$arraycount"/>
+ </xsl:attribute>
+ </xsl:for-each>
+ <xsl:attribute name="token">
+ <xsl:call-template name="gettaggedvalue">
+ <xsl:with-param name="name">attrid</xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ </attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="attrswithoffset">
+ <xsl:for-each select="ancestor::UML:Class//UML:Attribute[UML:ModelElement.taggedValue/UML:TaggedValue[UML:TaggedValue.type/UML:TagDefinition/@xmi.idref='offset' and UML:TaggedValue.dataValue=$offset]]">
+ <xsl:sort select="UML:ModelElement.taggedValue/UML:TaggedValue[UML:TaggedValue.type/UML:TagDefinition/@xmi.idref='shift']/UML:TaggedValue.dataValue" data-type="number" order="descending"/>
+ <xsl:copy-of select="."/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:text>&#xa;</xsl:text>
+ <xsl:if test="@name = exslt:node-set($attrswithoffset)/UML:Attribute[1]/@name">
+ <bitfield>
+ <xsl:attribute name="size">
+ <xsl:value-of select="$size"/>
+ </xsl:attribute>
+ <xsl:attribute name="type">
+ <xsl:value-of select="$type"/>
+ </xsl:attribute>
+ <xsl:variable name="allbits" select="8 * $size"/>
+ <xsl:for-each select="exslt:node-set($attrswithoffset)/UML:Attribute">
+ <xsl:variable name="lastshift">
+ <xsl:choose>
+ <xsl:when test="count(preceding-sibling::UML:Attribute) = 0">
+ <xsl:value-of select="$allbits"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="preceding-sibling::UML:Attribute[1]/UML:ModelElement.taggedValue/UML:TaggedValue[UML:TaggedValue.type/UML:TagDefinition/@xmi.idref='shift']/UML:TaggedValue.dataValue"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="bits" select="$lastshift - UML:ModelElement.taggedValue/UML:TaggedValue[UML:TaggedValue.type/UML:TagDefinition/@xmi.idref='shift']/UML:TaggedValue.dataValue"/>
+ <xsl:call-template name="bits">
+ <xsl:with-param name="bits" select="$bits"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </bitfield>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="UML:Operation" mode="ww8resource">
+ <operation>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name="type">
+ <xsl:for-each select="UML:BehavioralFeature.parameter/UML:Parameter[@kind='return']">
+ <xsl:value-of select="UML:Parameter.type/UML:Class/@xmi.idref"/>
+ </xsl:for-each>
+ </xsl:attribute>
+ <xsl:attribute name="token">
+ <xsl:call-template name="gettaggedvalue">
+ <xsl:with-param name="name">opid</xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:for-each select="UML:ModelElement.stereotype">
+ <stereotype>
+ <xsl:value-of select="UML:Stereotype/@xmi.idref"/>
+ </stereotype>
+ </xsl:for-each>
+ </operation>
+ </xsl:template>
+
+ <xsl:template match="*" mode="ww8resources">
+ <xsl:apply-templates select="*" mode="ww8resources"/>
+ </xsl:template>
+
+ <xsl:template name="sprms">
+ <xsl:for-each select="UML:Namespace.ownedElement/UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='ww8sprm']">
+ <xsl:sort select="@xmi.id"/>
+ <sprm>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@xmi.id"/>
+ </xsl:attribute>
+ <xsl:attribute name="code">
+ <xsl:call-template name="gettaggedvalue">
+ <xsl:with-param name="name">sprmcode</xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="kind">
+ <xsl:call-template name="gettaggedvalue">
+ <xsl:with-param name="name">kind</xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="token">
+ <xsl:call-template name="gettaggedvalue">
+ <xsl:with-param name="name">sprmid</xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:if test="UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='ww8resource'">
+ <xsl:apply-templates select=".//UML:Attribute|.//UML:Operation" mode="ww8resource"/>
+ </xsl:if>
+ </sprm>
+ </xsl:for-each>
+ </xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/doctok/resources.xmi b/writerfilter/source/doctok/resources.xmi
index 65b471e280e2..bc3bd81761a5 100644
--- a/writerfilter/source/doctok/resources.xmi
+++ b/writerfilter/source/doctok/resources.xmi
@@ -6,7 +6,7 @@
<XMI.content>
<UML:Model name="WW8Document">
<UML:Namespace.ownedElement>
-<!--Stereotypes -->
+ <!--Stereotypes -->
<UML:Stereotype xmi.id="access" name="access">
<UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass>
</UML:Stereotype>
@@ -73,16 +73,16 @@
<UML:Stereotype xmi.id="virtual" name="virtual">
<UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass>
</UML:Stereotype>
-<!--Stereotypes-->
-<!--Datatypes -->
+ <!--Stereotypes-->
+ <!--Datatypes -->
<UML:DataType xmi.id="U8" name="U8"/>
<UML:DataType xmi.id="U16" name="U16"/>
<UML:DataType xmi.id="U32" name="U32"/>
<UML:DataType xmi.id="String" name="String"/>
<UML:DataType xmi.id="Value" name="Value"/>
<UML:DataType xmi.id="Sprm" name="Sprm"/>
-<!--Datatypes-->
-<!--Tag definitions -->
+ <!--Datatypes-->
+ <!--Tag definitions -->
<UML:TagDefinition tagType="String" xmi.id="comment" name="comment"/>
<UML:TagDefinition tagType="String" xmi.id="offset" name="offset"/>
<UML:TagDefinition tagType="String" xmi.id="shift" name="shift"/>
@@ -96,9 +96,9 @@
<UML:TagDefinition tagType="String" xmi.id="sprmcode" name="sprmcode"/>
<UML:TagDefinition tagType="String" xmi.id="sprmid" name="sprmid"/>
<UML:TagDefinition tagType="String" xmi.id="dffid" name="dffid"/>
-<!--Tag definitions -->
-<!--Classes without stereotype-->
-<!--Class Blob-->
+ <!--Tag definitions -->
+ <!--Classes without stereotype-->
+ <!--Class Blob-->
<UML:Class xmi.id="Blob" name="Blob"/>
<UML:Generalization isSpecification="false" xmi.id="Blob-BinaryObj">
<UML:Generalization.child>
@@ -108,8 +108,8 @@
<UML:Class xmi.idref="BinaryObj"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class Blob-->
-<!--Class TextboxText-->
+ <!--Class Blob-->
+ <!--Class TextboxText-->
<UML:Class xmi.id="TextboxText" name="TextboxText"/>
<UML:Generalization isSpecification="false" xmi.id="TextboxText-Stream">
<UML:Generalization.child>
@@ -119,8 +119,8 @@
<UML:Class xmi.idref="Stream"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class TextboxText-->
-<!--Class UPX-->
+ <!--Class TextboxText-->
+ <!--Class UPX-->
<UML:Class xmi.id="UPX" name="UPX"/>
<UML:Generalization isSpecification="false" xmi.id="UPX-Properties">
<UML:Generalization.child>
@@ -130,8 +130,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class UPX-->
-<!--Class SEPX-->
+ <!--Class UPX-->
+ <!--Class SEPX-->
<UML:Class xmi.id="SEPX" name="SEPX"/>
<UML:Generalization isSpecification="false" xmi.id="SEPX-Properties">
<UML:Generalization.child>
@@ -141,8 +141,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class SEPX-->
-<!--Class DffRecord-->
+ <!--Class SEPX-->
+ <!--Class DffRecord-->
<UML:Class xmi.id="DffRecord" name="DffRecord"/>
<UML:Generalization isSpecification="false" xmi.id="DffRecord-Properties">
<UML:Generalization.child>
@@ -152,8 +152,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class DffRecord-->
-<!--Class Papx-->
+ <!--Class DffRecord-->
+ <!--Class Papx-->
<UML:Class xmi.id="Papx" name="Papx">
<UML:Classifier.feature>
<UML:Attribute name="istd">
@@ -174,8 +174,8 @@
</UML:Attribute>
</UML:Classifier.feature>
</UML:Class>
-<!--Class Papx-->
-<!--Class dummy-->
+ <!--Class Papx-->
+ <!--Class dummy-->
<UML:Class xmi.id="dummy" name="dummy">
<UML:Classifier.feature>
<UML:Attribute name="header">
@@ -553,9 +553,9 @@
</UML:Attribute>
</UML:Classifier.feature>
</UML:Class>
-<!--Class dummy-->
-<!--Classes without stereotype-->
-<!--Resources-->
+ <!--Class dummy-->
+ <!--Classes without stereotype-->
+ <!--Resources-->
<UML:Class xmi.id="Properties" name="Properties">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="resource"/>
@@ -576,9 +576,9 @@
<UML:Stereotype xmi.idref="resource"/>
</UML:ModelElement.stereotype>
</UML:Class>
-<!--Resources-->
-<!--WW8 resources-->
-<!--Class ListLevel-->
+ <!--Resources-->
+ <!--WW8 resources-->
+ <!--Class ListLevel-->
<UML:Class xmi.id="ListLevel" name="ListLevel">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -598,7 +598,7 @@
<UML:Attribute name="iStartAt">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>start at value for this list level</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -606,7 +606,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x00</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -614,7 +614,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -630,7 +630,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -656,7 +656,7 @@
<UML:Attribute name="nfc">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>number format code (see anld.nfc for a list of options)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -664,7 +664,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x04</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -672,7 +672,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -688,7 +688,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -714,8 +714,7 @@
<UML:Attribute name="jc">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>alignment (left, right, or centered) of the paragraph
- number.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -723,7 +722,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -731,7 +730,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -739,7 +738,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x03</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0xc0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
@@ -747,7 +746,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -770,11 +769,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="fLegal">
+ <UML:Attribute name="fLegel">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>true (==1) if the level turns all inherited numbers to arabic,
- false if it preserves their number format code (nfc)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -782,7 +780,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -790,7 +788,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -798,7 +796,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x04</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x20</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
@@ -806,7 +804,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -832,8 +830,7 @@
<UML:Attribute name="fNoRestart">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>true if the level's number sequence is not restarted by higher
- (more significant) levels in the list</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -841,7 +838,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -849,7 +846,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -857,7 +854,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x08</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
@@ -865,7 +862,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -888,11 +885,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="fPrev">
+ <UML:Attribute name="fIdentSav">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>Word 6 compatibility option: equivalent to anld.fPrev (see
- ANLD)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -900,7 +896,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -908,7 +904,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -916,7 +912,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
@@ -924,7 +920,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -932,7 +928,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:FPREV</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:FIDENTSAV</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
@@ -947,11 +943,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="fPrevSpace">
+ <UML:Attribute name="fConverted">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>Word 6 compatibility option: equivalent to anld.fPrevSpace (see
- ANLD)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -959,7 +954,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -967,7 +962,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -975,7 +970,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x20</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
@@ -983,7 +978,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -991,7 +986,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:FPREVSPACE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:FCONVERTED</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
@@ -1006,12 +1001,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="fWord6">
+ <UML:Attribute name="fTentative">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>true if this level was from a converted Word 6 document. If it
- is true, all of the Word 6 compability options become valid;
- otherwise they are ignored.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1019,7 +1012,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1027,7 +1020,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1035,7 +1028,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x40</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
@@ -1043,7 +1036,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1051,7 +1044,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:FWORD6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:FTENTATIVE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
@@ -1066,10 +1059,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="unused5_7">
+ <UML:Attribute name="rgbxchNums">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>unused.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1077,7 +1070,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1085,7 +1078,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1093,7 +1086,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x80</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
@@ -1101,7 +1094,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1109,31 +1102,33 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:UNUSED5_7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:RGBXCHNUMS</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="arraycount"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
<UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
- <UML:Stereotype xmi.idref="attribute"/>
+ <UML:Stereotype xmi.idref="array"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="rgbxchNums">
+ <UML:Attribute name="ixchFollow">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>contains the character offsets into the LVL's XST of the
- inherited numbers of previous levels. This array should be zero
- terminated unless it is full (all 9 levels full). The XST contains
- place holders for any paragraph numbers contained in the text of
- the number, and the place holder contains the ilvl of the inherited
- number, so lvl.xst[lvl.rgbxchNums[0]] == the level of the first
- inherited number in this level.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1141,7 +1136,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x06</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1149,7 +1144,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1165,7 +1160,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1173,34 +1168,25 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:RGBXCHNUMS</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:IXCHFOLLOW</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
- <UML:ModelElement.taggedValue>
- <UML:TaggedValue>
- <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue>
- <UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="arraycount"/>
- </UML:TaggedValue.type>
- </UML:TaggedValue>
- </UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
<UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
- <UML:Stereotype xmi.idref="array"/>
+ <UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="ixchFollow">
+ <UML:Attribute name="dxaSpace">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>the type of character following the number text for the
- paragraph: 0 == tab, 1 == space, 2 == nothing.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1208,7 +1194,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x0F</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1216,7 +1202,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1232,7 +1218,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1240,14 +1226,14 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:IXCHFOLLOW</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:DXASPACE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
- <UML:DataType xmi.idref="U8"/>
+ <UML:DataType xmi.idref="S32"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
@@ -1255,11 +1241,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="dxaSpace">
+ <UML:Attribute name="dxaIndent">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>Word 6 compatibility option: equivalent to anld.dxaSpace (see
- ANLD)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1267,7 +1252,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>20</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1275,7 +1260,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1291,7 +1276,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1299,7 +1284,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:DXASPACE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:DXAINDENT</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
@@ -1314,11 +1299,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="dxaIndent">
+ <UML:Attribute name="cbGrpprlChpx">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>Word 6 compatibility optino: equivalent to anld.dxaIndent (see
- ANLD)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1326,7 +1310,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>24</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1334,7 +1318,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1350,7 +1334,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1358,14 +1342,14 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:DXAINDENT</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:CBGRPPRLCHPX</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
- <UML:DataType xmi.idref="S32"/>
+ <UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
@@ -1373,10 +1357,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="cbGrpprlChpx">
+ <UML:Attribute name="cbGrpprlPapx">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>length, in bytes, of the LVL's grpprlChpx</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1384,7 +1368,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x18</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>25</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1392,7 +1376,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1408,7 +1392,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1416,7 +1400,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:CBGRPPRLCHPX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:CBGRPPRLPAPX</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
@@ -1431,10 +1415,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="cbGrpprlPapx">
+ <UML:Attribute name="ilvlRestartLim">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>length, in bytes, of the LVL's grpprlPapx</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1442,7 +1426,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x19</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>26</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1450,7 +1434,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1466,7 +1450,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1474,7 +1458,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:CBGRPPRLPAPX</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:ilvlRestartLim</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
@@ -1489,10 +1473,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="reserved">
+ <UML:Attribute name="grfhic">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1500,7 +1484,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0X1A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>27</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1508,7 +1492,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1524,7 +1508,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1532,20 +1516,42 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:RESERVED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:grfhic</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
- <UML:DataType xmi.idref="U16"/>
+ <UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Operation name="xst">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:xst</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="opid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="String"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
</UML:Class>
<UML:Generalization isSpecification="false" xmi.id="ListLevel-Properties">
<UML:Generalization.child>
@@ -1555,8 +1561,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class ListLevel-->
-<!--Class List-->
+ <!--Class ListLevel-->
+ <!--Class List-->
<UML:Class xmi.id="List" name="List">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -1593,10 +1599,12 @@
<UML:Stereotype xmi.idref="array"/>
</UML:ModelElement.stereotype>
</UML:Operation>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
<UML:Attribute name="lsid">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>Unique List ID</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1604,7 +1612,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x00</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1612,7 +1620,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1628,7 +1636,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1654,7 +1662,7 @@
<UML:Attribute name="tplc">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>Unique template code</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1662,7 +1670,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x04</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1670,7 +1678,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1686,7 +1694,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1709,11 +1717,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="rgistd">
+ <UML:Attribute name="fBuildIn">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>Array of shorts containing the istd's linked to each level of
- the list, or istdNil (4095) if no style is linked.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1721,7 +1728,123 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x08</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>31</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x80000000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fBuildIn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ilgpdM1">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x7fff0000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ilgpdM1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1737,6 +1860,122 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xffff</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="random">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x7fffffff</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>31</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:random</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="rgistd">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
<UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
@@ -1745,7 +1984,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>18</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1779,8 +2018,7 @@
<UML:Attribute name="fSimpleList">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>true if this is a simple (one-level) list; false if this is a
- multilevel (nine-level) list.</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1788,7 +2026,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x1A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1796,7 +2034,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1804,7 +2042,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x01</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x80</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
@@ -1812,7 +2050,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1835,11 +2073,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="fRestartHdn">
+ <UML:Attribute name="fAutoNum">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>Word 6 compatibility option: true if the list should start
- numbering over at the beginning of each section</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1847,7 +2084,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x1A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1855,7 +2092,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1863,7 +2100,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x02</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x20</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
@@ -1871,7 +2108,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1879,7 +2116,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:FRESTARTHDN</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:fAutoNum</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
@@ -1894,10 +2131,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="unsigned26_2">
+ <UML:Attribute name="fHybrid">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1905,7 +2142,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x1A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1913,7 +2150,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -1921,7 +2158,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0xFC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
@@ -1929,7 +2166,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>:6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1937,7 +2174,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:UNSIGNED26_2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:fHybrid</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
@@ -1952,10 +2189,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="reserved">
+ <UML:Attribute name="reserved1">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -1963,7 +2200,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x1B</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -1979,6 +2216,64 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:reserved1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="grfhic">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>27</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
<UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
@@ -1987,7 +2282,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -1995,7 +2290,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:RESERVED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:grfhic</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
@@ -2018,8 +2313,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class List-->
-<!--Class ListTable-->
+ <!--Class List-->
+ <!--Class ListTable-->
<UML:Class xmi.id="ListTable" name="ListTable">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -2044,8 +2339,8 @@
<UML:Class xmi.idref="Table"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class ListTable-->
-<!--Class LFOLevel-->
+ <!--Class ListTable-->
+ <!--Class LFOLevel-->
<UML:Class xmi.id="LFOLevel" name="LFOLevel">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -2074,7 +2369,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -2132,7 +2427,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -2190,7 +2485,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -2249,7 +2544,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -2307,7 +2602,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -2365,7 +2660,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -2428,8 +2723,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class LFOLevel-->
-<!--Class LFO-->
+ <!--Class LFOLevel-->
+ <!--Class LFO-->
<UML:Class xmi.id="LFO" name="LFO">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -2439,37 +2734,17 @@
</UML:ModelElement.stereotype>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="size"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:Classifier.feature>
- <UML:Operation name="lfolevel">
- <UML:ModelElement.taggedValue>
- <UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:LFO</UML:TaggedValue.dataValue>
- <UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="opid"/>
- </UML:TaggedValue.type>
- </UML:TaggedValue>
- </UML:ModelElement.taggedValue>
- <UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" name="return">
- <UML:Parameter.type>
- <UML:Class xmi.idref="LFOLevel"/>
- </UML:Parameter.type>
- </UML:Parameter>
- </UML:BehavioralFeature.parameter>
- <UML:ModelElement.stereotype>
- <UML:Stereotype xmi.idref="array"/>
- </UML:ModelElement.stereotype>
- </UML:Operation>
<UML:Attribute name="lsid">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>List ID of corresponding LSTF (see LSTF)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -2477,7 +2752,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -2485,7 +2760,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -2501,7 +2776,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -2509,7 +2784,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:LSID</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:lsid</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
@@ -2524,10 +2799,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="unused4">
+ <UML:Attribute name="clfolvl">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -2535,7 +2810,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>12</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -2543,7 +2818,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -2559,7 +2834,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -2567,14 +2842,14 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:UNUSED4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:clfolvl</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
- <UML:DataType xmi.idref="S32"/>
+ <UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
@@ -2582,10 +2857,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="unused8">
+ <UML:Attribute name="ibstFltAutoNum">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -2593,7 +2868,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>13</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -2601,7 +2876,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -2617,7 +2892,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -2625,14 +2900,14 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:UNUSED8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:ibstFltAutoNum</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
- <UML:DataType xmi.idref="S32"/>
+ <UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
@@ -2640,10 +2915,10 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="clfolvl">
+ <UML:Attribute name="grfhic">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>count of levels whose format is overridden (see LFOLVL)</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
@@ -2651,7 +2926,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0xC</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -2659,7 +2934,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
@@ -2675,7 +2950,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
@@ -2683,7 +2958,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:CLFOLVL</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:grfhic</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
@@ -2698,20 +2973,80 @@
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
- <UML:Attribute name="reserved">
+ <UML:Operation name="LFOData">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:LFOData</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="comment"/>
+ <UML:TagDefinition xmi.idref="opid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class xmi.idref="LFOData"/>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="LFO-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="LFO"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class LFO-->
+ <!--Class SttbRgtplc-->
+ <UML:Class xmi.id="SttbRgtplc" name="SttbRgtplc">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:SttbRgtplc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="classid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="SttbRgtplc-Table">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="SttbRgtplc"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Table"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class SttbRgtplc-->
+ <!--Class LFOData-->
+ <UML:Class xmi.id="LFOData" name="LFOData">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="cp">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0xD</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="offset"/>
+ <UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
@@ -2719,7 +3054,7 @@
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="shift"/>
+ <UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
@@ -2727,53 +3062,53 @@
<UML:TaggedValue>
<UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="mask"/>
+ <UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="bits"/>
+ <UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:RESERVED</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue/>
<UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="attrid"/>
+ <UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:cp</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="arraycount"/>
+ <UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
- <UML:DataType xmi.idref="U8"/>
+ <UML:DataType xmi.idref="U32"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
- <UML:Stereotype xmi.idref="array"/>
+ <UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
</UML:Class>
- <UML:Generalization isSpecification="false" xmi.id="LFO-Properties">
+ <UML:Generalization isSpecification="false" xmi.id="LFOData-Properties">
<UML:Generalization.child>
- <UML:Class xmi.idref="LFO"/>
+ <UML:Class xmi.idref="LFOData"/>
</UML:Generalization.child>
<UML:Generalization.parent>
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class LFO-->
-<!--Class LFOTable-->
+ <!--Class LFOData-->
+ <!--Class LFOTable-->
<UML:Class xmi.id="LFOTable" name="LFOTable">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -2798,8 +3133,8 @@
<UML:Class xmi.idref="Table"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class LFOTable-->
-<!--Class FontTable-->
+ <!--Class LFOTable-->
+ <!--Class FontTable-->
<UML:Class xmi.id="FontTable" name="FontTable">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -2824,8 +3159,8 @@
<UML:Class xmi.idref="Table"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class FontTable-->
-<!--Class Font-->
+ <!--Class FontTable-->
+ <!--Class Font-->
<UML:Class xmi.id="Font" name="Font">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -2927,7 +3262,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -2985,7 +3320,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -3043,7 +3378,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -3101,7 +3436,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -3159,7 +3494,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -3217,7 +3552,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -3275,7 +3610,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -3333,7 +3668,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -3391,7 +3726,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -3449,7 +3784,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -3515,7 +3850,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -3578,8 +3913,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class Font-->
-<!--Class Style-->
+ <!--Class Font-->
+ <!--Class Style-->
<UML:Class xmi.id="Style" name="Style">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -4440,8 +4775,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class Style-->
-<!--Class StyleSheet-->
+ <!--Class Style-->
+ <!--Class StyleSheet-->
<UML:Class xmi.id="StyleSheet" name="StyleSheet">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -4461,7 +4796,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -4517,7 +4852,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -4575,7 +4910,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -4633,7 +4968,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -4691,7 +5026,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -4749,7 +5084,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -4994,8 +5329,8 @@
<UML:Class xmi.idref="Table"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class StyleSheet-->
-<!--Class Fib-->
+ <!--Class StyleSheet-->
+ <!--Class Fib-->
<UML:Class xmi.id="Fib" name="Fib">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -5023,7 +5358,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0000</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5082,7 +5417,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0002</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0002</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5140,7 +5475,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0004</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0004</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5200,7 +5535,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0006</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0006</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5258,7 +5593,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0008</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0008</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5316,7 +5651,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5374,7 +5709,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5432,7 +5767,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5490,7 +5825,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5548,7 +5883,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5606,7 +5941,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5669,7 +6004,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5727,7 +6062,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5785,7 +6120,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5843,7 +6178,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5901,7 +6236,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -5959,7 +6294,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6017,7 +6352,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6076,7 +6411,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6134,7 +6469,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>000E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x000E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6194,7 +6529,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0012</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0012</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6252,7 +6587,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0013</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6310,7 +6645,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0013</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6368,7 +6703,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0013</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6426,7 +6761,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0013</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6484,7 +6819,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0013</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6542,7 +6877,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0013</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6605,7 +6940,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0014</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0014</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6668,7 +7003,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0016</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0016</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6729,7 +7064,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0018</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0018</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6788,7 +7123,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>001C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x001C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6846,7 +7181,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0020</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0020</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6907,7 +7242,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0022</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0022</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -6965,7 +7300,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0024</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0024</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7023,7 +7358,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0026</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0026</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7081,7 +7416,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0028</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0028</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7139,7 +7474,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>002A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x002A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7197,7 +7532,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>002C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x002C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7255,7 +7590,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>002E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x002E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7313,7 +7648,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0030</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0030</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7371,7 +7706,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0032</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0032</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7429,7 +7764,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0034</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0034</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7487,7 +7822,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0036</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0036</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7545,7 +7880,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0038</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0038</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7603,7 +7938,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>003A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x003A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7662,7 +7997,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>003C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x003C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7720,7 +8055,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>003E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x003E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7779,7 +8114,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0040</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0040</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7838,7 +8173,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0044</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0044</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7896,7 +8231,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0048</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0048</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -7954,7 +8289,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>004C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x004C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8012,7 +8347,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0050</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0050</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8070,7 +8405,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0054</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0054</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8129,7 +8464,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0058</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0058</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8187,7 +8522,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>005C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x005C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8245,7 +8580,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0060</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0060</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8303,7 +8638,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0064</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0064</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8361,7 +8696,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0068</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0068</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8421,7 +8756,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>006C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x006C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8480,7 +8815,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0070</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0070</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8540,7 +8875,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0074</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0074</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8600,7 +8935,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0078</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0078</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8659,7 +8994,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>007C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x007C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8719,7 +9054,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0080</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0080</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8779,7 +9114,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0084</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0084</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8838,7 +9173,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0088</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0088</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8898,7 +9233,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>008C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x008C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -8956,7 +9291,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0090</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0090</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9014,7 +9349,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0094</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0094</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9072,7 +9407,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0098</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0098</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9133,7 +9468,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>009A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x009A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9191,7 +9526,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>009E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x009E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9249,7 +9584,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00A2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00A2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9307,7 +9642,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00A6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00A6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9367,7 +9702,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00AA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00AA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9426,7 +9761,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00AE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00AE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9489,7 +9824,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00B2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00B2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9548,7 +9883,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00B6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00B6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9608,7 +9943,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00BA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00BA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9666,7 +10001,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00BE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00BE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9729,7 +10064,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00C2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00C2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9787,7 +10122,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00C6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00C6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9846,7 +10181,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00CA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00CA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9904,7 +10239,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00CE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00CE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -9962,7 +10297,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00D2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00D2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10020,7 +10355,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00D6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00D6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10081,7 +10416,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00DA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00DA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10140,7 +10475,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00DE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00DE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10200,7 +10535,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00E2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00E2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10259,7 +10594,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00E6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00E6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10321,7 +10656,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00EA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00EA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10380,7 +10715,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00EE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00EE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10442,7 +10777,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00F2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00F2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10501,7 +10836,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00F6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00F6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10561,7 +10896,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00FA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00FA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10619,7 +10954,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>00FE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x00FE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10679,7 +11014,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0102</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0102</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10737,7 +11072,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0106</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0106</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10796,7 +11131,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>010A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x010A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10854,7 +11189,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>010E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x010E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10916,7 +11251,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0112</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0112</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -10974,7 +11309,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0116</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0116</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11036,7 +11371,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>011A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x011A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11094,7 +11429,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>011E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x011E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11153,7 +11488,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0122</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0122</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11211,7 +11546,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0126</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0126</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11270,7 +11605,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>012A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x012A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11328,7 +11663,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>012E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x012E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11387,7 +11722,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0132</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0132</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11445,7 +11780,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0136</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0136</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11503,7 +11838,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>013A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x013A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11561,7 +11896,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>013E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x013E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11620,7 +11955,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0142</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0142</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11678,7 +12013,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0146</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0146</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11738,7 +12073,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>014A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x014A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11796,7 +12131,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>014E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x014E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11856,7 +12191,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0152</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0152</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11914,7 +12249,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0156</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0156</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -11973,7 +12308,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>015A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x015A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12032,7 +12367,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>015E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x015E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12090,7 +12425,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0162</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0162</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12148,7 +12483,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0166</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0166</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12206,7 +12541,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>016A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x016A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12264,7 +12599,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>016E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x016E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12323,7 +12658,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0172</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0172</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12382,7 +12717,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0176</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0176</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12441,7 +12776,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>017A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x017A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12499,7 +12834,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>017E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x017E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12558,7 +12893,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0182</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0182</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12616,7 +12951,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0186</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0186</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12677,7 +13012,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>018A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x018A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12736,7 +13071,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>018E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x018E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12795,7 +13130,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0192</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0192</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12853,7 +13188,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0196</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0196</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12914,7 +13249,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>019A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x019A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -12972,7 +13307,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>019E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x019E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13033,7 +13368,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01A2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01A2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13092,7 +13427,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01A6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01A6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13150,7 +13485,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01AA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01AA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13208,7 +13543,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01AE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01AE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13268,7 +13603,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01B2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01B2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13326,7 +13661,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01B6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01B6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13385,7 +13720,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01BA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01BA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13443,7 +13778,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01BE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01BE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13502,7 +13837,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01C2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01C2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13561,7 +13896,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01C6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01C6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13619,7 +13954,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01CA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01CA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13677,7 +14012,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01CE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01CE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13735,7 +14070,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01D2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01D2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13793,7 +14128,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01D6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01D6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13852,7 +14187,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01DA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01DA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13911,7 +14246,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01DE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01DE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -13970,7 +14305,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01E2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01E2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14029,7 +14364,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01E6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01E6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14088,7 +14423,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01EA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01EA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14147,7 +14482,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01EE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01EE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14206,7 +14541,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01F2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01F2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14265,7 +14600,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01F6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01F6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14325,7 +14660,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01FA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01FA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14384,7 +14719,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>01FE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x01FE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14443,7 +14778,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0202</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0202</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14501,7 +14836,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0206</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0206</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14561,7 +14896,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>020A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x020A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14619,7 +14954,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>020E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x020E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14679,7 +15014,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0212</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0212</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14737,7 +15072,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0216</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0216</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14796,7 +15131,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>021A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x021A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14854,7 +15189,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>021E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x021E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14912,7 +15247,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0222</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0222</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -14970,7 +15305,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0226</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0226</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15030,7 +15365,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>022A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x022A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15088,7 +15423,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>022E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x022E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15148,7 +15483,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0232</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0232</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15206,7 +15541,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0236</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0236</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15265,7 +15600,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>023A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x023A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15323,7 +15658,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>023E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x023E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15383,7 +15718,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0242</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0242</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15441,7 +15776,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0246</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0246</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15500,7 +15835,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>024A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x024A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15558,7 +15893,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>024E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x024E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15617,7 +15952,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0252</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0252</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15675,7 +16010,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0256</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0256</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15735,7 +16070,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>025A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x025A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15793,7 +16128,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>025E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x025E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15852,7 +16187,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0262</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0262</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15910,7 +16245,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0266</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0266</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -15970,7 +16305,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>026A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x026A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16028,7 +16363,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>026E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x026E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16087,7 +16422,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0272</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0272</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16145,7 +16480,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0276</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0276</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16203,7 +16538,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>027A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x027A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16261,7 +16596,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>027E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x027E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16319,7 +16654,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0282</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0282</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16377,7 +16712,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0286</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0286</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16435,7 +16770,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>028A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x028A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16493,7 +16828,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>028E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x028E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16554,7 +16889,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0292</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0292</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16612,7 +16947,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0296</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0296</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16671,7 +17006,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>029A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x029A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16729,7 +17064,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>029E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x029E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16788,7 +17123,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02A2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02A2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16846,7 +17181,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02A6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02A6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16905,7 +17240,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02AA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02AA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -16963,7 +17298,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02AE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02AE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17022,7 +17357,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02B2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02B2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17080,7 +17415,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02B6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02B6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17139,7 +17474,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02BA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02BA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17197,7 +17532,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02BE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02BE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17258,7 +17593,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02C2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02C2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17316,7 +17651,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02C6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02C6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17374,7 +17709,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02CA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02CA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17432,7 +17767,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02CE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02CE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17492,7 +17827,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02D2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02D2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17550,7 +17885,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02D6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02D6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17609,7 +17944,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02DA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02DA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17667,7 +18002,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02DE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02DE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17725,7 +18060,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02E2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02E2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17783,7 +18118,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02E6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02E6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17842,7 +18177,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02EA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02EA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17900,7 +18235,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02EE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02EE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -17959,7 +18294,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02F2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02F2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18017,7 +18352,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02F6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02F6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18076,7 +18411,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02FA</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02FA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18134,7 +18469,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>02FE</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x02FE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18193,7 +18528,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0302</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0302</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18251,7 +18586,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0306</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0306</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18310,7 +18645,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>030A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x030A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18368,7 +18703,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>030E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x030E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18427,7 +18762,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0312</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0312</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18485,7 +18820,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0316</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0316</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18544,7 +18879,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>031A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x031A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18602,7 +18937,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>031E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x031E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18661,7 +18996,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0322</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0322</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18719,7 +19054,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0326</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0326</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18778,7 +19113,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>032A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x032A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18836,7 +19171,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>032E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x032E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18895,7 +19230,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0332</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0332</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -18953,7 +19288,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0336</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0336</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19011,7 +19346,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>033A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x033A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19069,7 +19404,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>033E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x033E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19127,7 +19462,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0342</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0342</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19185,7 +19520,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0346</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0346</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19245,7 +19580,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>034A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x034A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19303,7 +19638,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>034E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x034E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19361,7 +19696,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0352</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0352</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19419,7 +19754,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0356</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0356</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19477,7 +19812,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>035A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x035A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19535,7 +19870,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>035E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x035E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19593,7 +19928,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0362</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0362</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19651,7 +19986,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0366</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0366</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19710,7 +20045,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>036A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x036A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19768,7 +20103,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>036E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x036E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19826,7 +20161,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0372</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0372</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19884,7 +20219,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0376</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0376</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -19943,7 +20278,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>037A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x037A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20001,7 +20336,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>037E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x037E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20056,8 +20391,1655 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class Fib-->
-<!--Class BKD-->
+ <!--Class Fib-->
+ <!--Class FibRgFcLcb2000-->
+ <UML:Class xmi.id="FibRgFcLcb2000" name="FibRgFcLcb2000">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>856</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfTch">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>744</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcPlcfTch</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfTch">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>748</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lcbPlcfTch</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcRmdThreading">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>752</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcRmdThreading</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbRmdThreading">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>756</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lcbRmdThreading</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcMid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>760</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcMid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbMid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>764</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lcbMid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcSttbRgtplc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>768</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcSttbRgtplc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbSttbRgtplc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>772</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lcbSttbRgtplc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcMsoEnvelope">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>776</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcMsoEnvelope</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="flcbMsoEnvelope">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>780</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:flcbMsoEnvelope</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfLad">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>784</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcPlcfLad</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfLad">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>788</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lcbPlcfLad</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcRgDofr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>792</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcRgDofr</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbRgDofr">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>796</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lcbRgDofr</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcosl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>800</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcPlcosl</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcosl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>804</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lcbPlcosl</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPlcfCookieOld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>808</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcPlcfCookieOld</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPlcfCookieOld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>812</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lcbPlcfCookieOld</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPgdMotherOld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>816</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcPgdMotherOld</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="flcbPgdMotherOld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>820</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:flcbPgdMotherOld</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPgdFtnOld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>824</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcPgdFtnOld</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPgdFtnOld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>828</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lcbPgdFtnOld</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcBkdFtnOld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>832</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcBkdFtnOld</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbBkdFtnOld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>836</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lcbBkdFtnOld</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcPgdEdnOld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>840</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcPgdEdnOld</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbPgdEdnOld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>844</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lcbPgdEdnOld</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fcBkdEdnOld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>848</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fcBkdEdnOld</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lcbBkdEdnOld">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>852</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lcbBkdEdnOld</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U32"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="FibRgFcLcb2000-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="FibRgFcLcb2000"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class FibRgFcLcb2000-->
+ <!--Class BKD-->
<UML:Class xmi.id="BKD" name="BKD">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -20083,7 +22065,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20142,7 +22124,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20201,7 +22183,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20260,7 +22242,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20319,7 +22301,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20374,8 +22356,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class BKD-->
-<!--Class SED-->
+ <!--Class BKD-->
+ <!--Class SED-->
<UML:Class xmi.id="SED" name="SED">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -20403,7 +22385,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20464,7 +22446,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20522,7 +22504,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20581,7 +22563,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20658,8 +22640,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class SED-->
-<!--Class SHD-->
+ <!--Class SED-->
+ <!--Class SHD-->
<UML:Class xmi.id="SHD" name="SHD">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -20684,7 +22666,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20742,7 +22724,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20854,7 +22836,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20909,8 +22891,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class SHD-->
-<!--Class CellShd-->
+ <!--Class SHD-->
+ <!--Class CellShd-->
<UML:Class xmi.id="CellShd" name="CellShd">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -20935,7 +22917,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -20993,7 +22975,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21051,7 +23033,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21106,8 +23088,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class CellShd-->
-<!--Class BRC-->
+ <!--Class CellShd-->
+ <!--Class BRC-->
<UML:Class xmi.id="BRC" name="BRC">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -21132,7 +23114,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21217,7 +23199,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21275,7 +23257,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21335,7 +23317,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21394,7 +23376,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21452,7 +23434,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21510,7 +23492,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21565,8 +23547,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class BRC-->
-<!--Class TC-->
+ <!--Class BRC-->
+ <!--Class TC-->
<UML:Class xmi.id="TC" name="TC">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -21595,7 +23577,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21653,7 +23635,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21711,7 +23693,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21770,7 +23752,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21829,7 +23811,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21895,7 +23877,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -21957,7 +23939,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22021,7 +24003,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22079,7 +24061,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22137,7 +24119,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22197,7 +24179,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22255,7 +24237,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22313,7 +24295,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>c</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0xc</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22371,7 +24353,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22426,8 +24408,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class TC-->
-<!--Class BKF-->
+ <!--Class TC-->
+ <!--Class BKF-->
<UML:Class name="BKF" xmi.id="BKF">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -22453,7 +24435,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22512,7 +24494,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22571,7 +24553,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22630,7 +24612,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22689,7 +24671,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22744,8 +24726,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class BKF-->
-<!--Class LineProps-->
+ <!--Class BKF-->
+ <!--Class LineProps-->
<UML:Class name="LineProps" xmi.id="LineProps">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -22770,7 +24752,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22828,7 +24810,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22886,7 +24868,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -22941,8 +24923,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class LineProps-->
-<!--Class TBD-->
+ <!--Class LineProps-->
+ <!--Class TBD-->
<UML:Class xmi.id="TBD" name="TBD">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -22964,7 +24946,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -23027,7 +25009,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -23085,7 +25067,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -23140,8 +25122,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class TBD-->
-<!--Class METAFILEPICT-->
+ <!--Class TBD-->
+ <!--Class METAFILEPICT-->
<UML:Class xmi.id="METAFILEPICT" name="METAFILEPICT">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -23158,7 +25140,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -23220,7 +25202,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -23293,7 +25275,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -23351,7 +25333,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -23406,8 +25388,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class METAFILEPICT-->
-<!--Class FFDATA-->
+ <!--Class METAFILEPICT-->
+ <!--Class FFDATA-->
<UML:Class xmi.id="FFDATA" name="FFDATA">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -24194,8 +26176,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class FFDATA-->
-<!--Class PICF-->
+ <!--Class FFDATA-->
+ <!--Class PICF-->
<UML:Class xmi.id="PICF" name="PICF">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -24219,7 +26201,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -24278,7 +26260,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -24343,7 +26325,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -24404,7 +26386,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0xE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -24473,7 +26455,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x1C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -24532,7 +26514,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x1E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -24591,7 +26573,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>20</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x20</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -24650,7 +26632,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>22</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x22</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -24712,7 +26694,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>24</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x24</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -24771,7 +26753,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>26</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x26</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -24830,7 +26812,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>28</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x28</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -24889,7 +26871,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -24952,7 +26934,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25010,7 +26992,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25068,7 +27050,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25126,7 +27108,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25184,7 +27166,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25245,7 +27227,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2C</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25303,7 +27285,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25361,7 +27343,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x32</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25419,7 +27401,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>36</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x36</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25477,7 +27459,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>3A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x3A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25535,7 +27517,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>3E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x3E</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25593,7 +27575,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>40</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x40</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25651,7 +27633,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>42</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x42</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25756,8 +27738,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class PICF-->
-<!--Class FSPA-->
+ <!--Class PICF-->
+ <!--Class FSPA-->
<UML:Class xmi.id="FSPA" name="FSPA">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -25784,7 +27766,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25843,7 +27825,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25902,7 +27884,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -25961,7 +27943,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>C</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0xC</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26020,7 +28002,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26079,7 +28061,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26142,7 +28124,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26204,7 +28186,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26269,7 +28251,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26332,7 +28314,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26391,7 +28373,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26450,7 +28432,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26509,7 +28491,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26567,7 +28549,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x16</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26644,8 +28626,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class FSPA-->
-<!--Class FLD-->
+ <!--Class FSPA-->
+ <!--Class FLD-->
<UML:Class xmi.id="FLD" name="FLD">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -26673,7 +28655,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26731,7 +28713,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26804,7 +28786,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -26859,8 +28841,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class FLD-->
-<!--Class Rectangle-->
+ <!--Class FLD-->
+ <!--Class Rectangle-->
<UML:Class xmi.id="Rectangle" name="Rectangle">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -26885,7 +28867,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -27114,8 +29096,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class Rectangle-->
-<!--Class FOPTE-->
+ <!--Class Rectangle-->
+ <!--Class FOPTE-->
<UML:Class xmi.id="FOPTE" name="FOPTE">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -27444,8 +29426,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class FOPTE-->
-<!--Class FDGG-->
+ <!--Class FOPTE-->
+ <!--Class FDGG-->
<UML:Class xmi.id="FDGG" name="FDGG">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -27699,8 +29681,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class FDGG-->
-<!--Class FIDCL-->
+ <!--Class FDGG-->
+ <!--Class FIDCL-->
<UML:Class xmi.id="FIDCL" name="FIDCL">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -27838,8 +29820,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class FIDCL-->
-<!--Class FBSE-->
+ <!--Class FIDCL-->
+ <!--Class FBSE-->
<UML:Class xmi.id="FBSE" name="FBSE">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -28507,8 +30489,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class FBSE-->
-<!--Class FRD-->
+ <!--Class FBSE-->
+ <!--Class FRD-->
<UML:Class xmi.id="FRD" name="FRD">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -28588,8 +30570,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class FRD-->
-<!--Class ATRD-->
+ <!--Class FRD-->
+ <!--Class ATRD-->
<UML:Class xmi.id="ATRD" name="ATRD">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -28614,7 +30596,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -28672,7 +30654,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x16</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -28730,7 +30712,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x16</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -28788,7 +30770,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>18</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x18</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -28848,7 +30830,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x1A</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -28933,8 +30915,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class ATRD-->
-<!--Class FTXBXS-->
+ <!--Class ATRD-->
+ <!--Class FTXBXS-->
<UML:Class xmi.id="FTXBXS" name="FTXBXS">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -28960,7 +30942,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -29019,7 +31001,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -29078,7 +31060,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -29136,7 +31118,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -29194,7 +31176,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>A</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0xA</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -29253,7 +31235,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>E</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0xE</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -29311,7 +31293,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>12</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x12</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -29366,8 +31348,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class FTXBXS-->
-<!--Class FDG-->
+ <!--Class FTXBXS-->
+ <!--Class FDG-->
<UML:Class xmi.id="FDG" name="FDG">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -29497,10 +31479,207 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--Class FDG-->
-<!--WW8 resources-->
-<!--SPRMS-->
-<!--SPRM sprmPContextualSpacing-->
+ <!--Class FDG-->
+ <!--Class Tplc-->
+ <UML:Class xmi.id="Tplc" name="Tplc">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fBuildIn">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8000</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fBuildIn</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ilgbdM1">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x7fff</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ilgbdM1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="lid">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:lid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="Tplc-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="Tplc"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--Class Tplc-->
+ <!--WW8 resources-->
+ <!--SPRMS-->
+ <!--SPRM sprmPContextualSpacing-->
<UML:Class xmi.id="sprmPContextualSpacing" name="sprmPContextualSpacing">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29530,8 +31709,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPContextualSpacing-->
-<!--SPRM sprmPIstdPermute-->
+ <!--SPRM sprmPContextualSpacing-->
+ <!--SPRM sprmPIstdPermute-->
<UML:Class xmi.id="sprmPIstdPermute" name="sprmPIstdPermute">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29561,8 +31740,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPIstdPermute-->
-<!--SPRM sprmPTabProps-->
+ <!--SPRM sprmPIstdPermute-->
+ <!--SPRM sprmPTabProps-->
<UML:Class xmi.id="sprmPTabProps" name="sprmPTabProps">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29592,8 +31771,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPTabProps-->
-<!--SPRM sprmTFCantSplit90-->
+ <!--SPRM sprmPTabProps-->
+ <!--SPRM sprmTFCantSplit90-->
<UML:Class xmi.id="sprmTFCantSplit90" name="sprmTFCantSplit90">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29623,8 +31802,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTFCantSplit90-->
-<!--SPRM sprmTCantSplit-->
+ <!--SPRM sprmTFCantSplit90-->
+ <!--SPRM sprmTCantSplit-->
<UML:Class xmi.id="sprmTCantSplit" name="sprmTCantSplit">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29654,8 +31833,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTCantSplit-->
-<!--SPRM sprmPIncLvl-->
+ <!--SPRM sprmTCantSplit-->
+ <!--SPRM sprmPIncLvl-->
<UML:Class xmi.id="sprmPIncLvl" name="sprmPIncLvl">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29685,8 +31864,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPIncLvl-->
-<!--SPRM sprmPJcExtra-->
+ <!--SPRM sprmPIncLvl-->
+ <!--SPRM sprmPJcExtra-->
<UML:Class xmi.id="sprmPJcExtra" name="sprmPJcExtra">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29716,8 +31895,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPJcExtra-->
-<!--SPRM sprmPJc-->
+ <!--SPRM sprmPJcExtra-->
+ <!--SPRM sprmPJc-->
<UML:Class xmi.id="sprmPJc" name="sprmPJc">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29747,8 +31926,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPJc-->
-<!--SPRM sprmPFSideBySide-->
+ <!--SPRM sprmPJc-->
+ <!--SPRM sprmPFSideBySide-->
<UML:Class xmi.id="sprmPFSideBySide" name="sprmPFSideBySide">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29778,8 +31957,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFSideBySide-->
-<!--SPRM sprmPFKeep-->
+ <!--SPRM sprmPFSideBySide-->
+ <!--SPRM sprmPFKeep-->
<UML:Class xmi.id="sprmPFKeep" name="sprmPFKeep">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29809,8 +31988,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFKeep-->
-<!--SPRM sprmPFKeepFollow-->
+ <!--SPRM sprmPFKeep-->
+ <!--SPRM sprmPFKeepFollow-->
<UML:Class xmi.id="sprmPFKeepFollow" name="sprmPFKeepFollow">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29840,8 +32019,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFKeepFollow-->
-<!--SPRM sprmPFPageBreakBefore-->
+ <!--SPRM sprmPFKeepFollow-->
+ <!--SPRM sprmPFPageBreakBefore-->
<UML:Class xmi.id="sprmPFPageBreakBefore" name="sprmPFPageBreakBefore">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29871,8 +32050,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFPageBreakBefore-->
-<!--SPRM sprmPBrcl-->
+ <!--SPRM sprmPFPageBreakBefore-->
+ <!--SPRM sprmPBrcl-->
<UML:Class xmi.id="sprmPBrcl" name="sprmPBrcl">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29902,8 +32081,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPBrcl-->
-<!--SPRM sprmPBrcp-->
+ <!--SPRM sprmPBrcl-->
+ <!--SPRM sprmPBrcp-->
<UML:Class xmi.id="sprmPBrcp" name="sprmPBrcp">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29933,8 +32112,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPBrcp-->
-<!--SPRM sprmPIlvl-->
+ <!--SPRM sprmPBrcp-->
+ <!--SPRM sprmPIlvl-->
<UML:Class xmi.id="sprmPIlvl" name="sprmPIlvl">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29964,8 +32143,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPIlvl-->
-<!--SPRM sprmPIlfo-->
+ <!--SPRM sprmPIlvl-->
+ <!--SPRM sprmPIlfo-->
<UML:Class xmi.id="sprmPIlfo" name="sprmPIlfo">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -29995,8 +32174,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPIlfo-->
-<!--SPRM sprmPFNoLineNumb-->
+ <!--SPRM sprmPIlfo-->
+ <!--SPRM sprmPFNoLineNumb-->
<UML:Class xmi.id="sprmPFNoLineNumb" name="sprmPFNoLineNumb">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30026,8 +32205,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFNoLineNumb-->
-<!--SPRM sprmPChgTabsPapx-->
+ <!--SPRM sprmPFNoLineNumb-->
+ <!--SPRM sprmPChgTabsPapx-->
<UML:Class xmi.id="sprmPChgTabsPapx" name="sprmPChgTabsPapx">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30154,8 +32333,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmPChgTabsPapx-->
-<!--SPRM sprmPDxaRight-->
+ <!--SPRM sprmPChgTabsPapx-->
+ <!--SPRM sprmPDxaRight-->
<UML:Class xmi.id="sprmPDxaRight" name="sprmPDxaRight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30185,8 +32364,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPDxaRight-->
-<!--SPRM sprmPDxaLeft-->
+ <!--SPRM sprmPDxaRight-->
+ <!--SPRM sprmPDxaLeft-->
<UML:Class xmi.id="sprmPDxaLeft" name="sprmPDxaLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30216,8 +32395,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPDxaLeft-->
-<!--SPRM sprmPNest-->
+ <!--SPRM sprmPDxaLeft-->
+ <!--SPRM sprmPNest-->
<UML:Class xmi.id="sprmPNest" name="sprmPNest">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30247,9 +32426,9 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPNest-->
-<!--SPRM sprmPDxaLeft1-->
- <UML:Class xmi.id="sprmPDxaLeft1" name="sprmPDxaLeft1">
+ <!--SPRM sprmPNest-->
+ <!--SPRM sprmPDxaLeft180-->
+ <UML:Class xmi.id="sprmPDxaLeft180" name="sprmPDxaLeft180">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
</UML:ModelElement.stereotype>
@@ -30278,8 +32457,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPDxaLeft1-->
-<!--SPRM sprmPDyaLine-->
+ <!--SPRM sprmPDxaLeft180-->
+ <!--SPRM sprmPDyaLine-->
<UML:Class xmi.id="sprmPDyaLine" name="sprmPDyaLine">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30309,8 +32488,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPDyaLine-->
-<!--SPRM sprmPDyaBefore-->
+ <!--SPRM sprmPDyaLine-->
+ <!--SPRM sprmPDyaBefore-->
<UML:Class xmi.id="sprmPDyaBefore" name="sprmPDyaBefore">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30340,8 +32519,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPDyaBefore-->
-<!--SPRM sprmPDyaAfter-->
+ <!--SPRM sprmPDyaBefore-->
+ <!--SPRM sprmPDyaAfter-->
<UML:Class xmi.id="sprmPDyaAfter" name="sprmPDyaAfter">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30371,8 +32550,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPDyaAfter-->
-<!--SPRM sprmPChgTabs-->
+ <!--SPRM sprmPDyaAfter-->
+ <!--SPRM sprmPChgTabs-->
<UML:Class xmi.id="sprmPChgTabs" name="sprmPChgTabs">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30402,8 +32581,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPChgTabs-->
-<!--SPRM sprmPFInTable-->
+ <!--SPRM sprmPChgTabs-->
+ <!--SPRM sprmPFInTable-->
<UML:Class xmi.id="sprmPFInTable" name="sprmPFInTable">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30433,8 +32612,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFInTable-->
-<!--SPRM sprmPCell-->
+ <!--SPRM sprmPFInTable-->
+ <!--SPRM sprmPCell-->
<UML:Class xmi.id="sprmPCell" name="sprmPCell">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30464,8 +32643,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPCell-->
-<!--SPRM sprmPRow-->
+ <!--SPRM sprmPCell-->
+ <!--SPRM sprmPRow-->
<UML:Class xmi.id="sprmPRow" name="sprmPRow">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30495,8 +32674,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPRow-->
-<!--SPRM sprmPFTtp-->
+ <!--SPRM sprmPRow-->
+ <!--SPRM sprmPFTtp-->
<UML:Class xmi.id="sprmPFTtp" name="sprmPFTtp">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30526,8 +32705,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFTtp-->
-<!--SPRM sprmPDxaAbs-->
+ <!--SPRM sprmPFTtp-->
+ <!--SPRM sprmPDxaAbs-->
<UML:Class xmi.id="sprmPDxaAbs" name="sprmPDxaAbs">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30557,8 +32736,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPDxaAbs-->
-<!--SPRM sprmPDyaAbs-->
+ <!--SPRM sprmPDxaAbs-->
+ <!--SPRM sprmPDyaAbs-->
<UML:Class xmi.id="sprmPDyaAbs" name="sprmPDyaAbs">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30588,8 +32767,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPDyaAbs-->
-<!--SPRM sprmPDxaWidth-->
+ <!--SPRM sprmPDyaAbs-->
+ <!--SPRM sprmPDxaWidth-->
<UML:Class xmi.id="sprmPDxaWidth" name="sprmPDxaWidth">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30619,8 +32798,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPDxaWidth-->
-<!--SPRM sprmPPc-->
+ <!--SPRM sprmPDxaWidth-->
+ <!--SPRM sprmPPc-->
<UML:Class xmi.id="sprmPPc" name="sprmPPc">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30650,8 +32829,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPPc-->
-<!--SPRM sprmPBrcTop10-->
+ <!--SPRM sprmPPc-->
+ <!--SPRM sprmPBrcTop10-->
<UML:Class xmi.id="sprmPBrcTop10" name="sprmPBrcTop10">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30681,8 +32860,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPBrcTop10-->
-<!--SPRM sprmPBrcLeft10-->
+ <!--SPRM sprmPBrcTop10-->
+ <!--SPRM sprmPBrcLeft10-->
<UML:Class xmi.id="sprmPBrcLeft10" name="sprmPBrcLeft10">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30712,8 +32891,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPBrcLeft10-->
-<!--SPRM sprmPBrcBottom10-->
+ <!--SPRM sprmPBrcLeft10-->
+ <!--SPRM sprmPBrcBottom10-->
<UML:Class xmi.id="sprmPBrcBottom10" name="sprmPBrcBottom10">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30743,8 +32922,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPBrcBottom10-->
-<!--SPRM sprmPBrcRight10-->
+ <!--SPRM sprmPBrcBottom10-->
+ <!--SPRM sprmPBrcRight10-->
<UML:Class xmi.id="sprmPBrcRight10" name="sprmPBrcRight10">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30774,8 +32953,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPBrcRight10-->
-<!--SPRM sprmPBrcBetween10-->
+ <!--SPRM sprmPBrcRight10-->
+ <!--SPRM sprmPBrcBetween10-->
<UML:Class xmi.id="sprmPBrcBetween10" name="sprmPBrcBetween10">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30805,8 +32984,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPBrcBetween10-->
-<!--SPRM sprmPBrcBar10-->
+ <!--SPRM sprmPBrcBetween10-->
+ <!--SPRM sprmPBrcBar10-->
<UML:Class xmi.id="sprmPBrcBar10" name="sprmPBrcBar10">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30836,8 +33015,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPBrcBar10-->
-<!--SPRM sprmPDxaFromText10-->
+ <!--SPRM sprmPBrcBar10-->
+ <!--SPRM sprmPDxaFromText10-->
<UML:Class xmi.id="sprmPDxaFromText10" name="sprmPDxaFromText10">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30867,8 +33046,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPDxaFromText10-->
-<!--SPRM sprmPWr-->
+ <!--SPRM sprmPDxaFromText10-->
+ <!--SPRM sprmPWr-->
<UML:Class xmi.id="sprmPWr" name="sprmPWr">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30898,8 +33077,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPWr-->
-<!--SPRM sprmPBrcBar-->
+ <!--SPRM sprmPWr-->
+ <!--SPRM sprmPBrcBar-->
<UML:Class xmi.id="sprmPBrcBar" name="sprmPBrcBar">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30937,8 +33116,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmPBrcBar-->
-<!--SPRM sprmPFNoAutoHyph-->
+ <!--SPRM sprmPBrcBar-->
+ <!--SPRM sprmPFNoAutoHyph-->
<UML:Class xmi.id="sprmPFNoAutoHyph" name="sprmPFNoAutoHyph">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30968,8 +33147,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFNoAutoHyph-->
-<!--SPRM sprmPWHeightAbs-->
+ <!--SPRM sprmPFNoAutoHyph-->
+ <!--SPRM sprmPWHeightAbs-->
<UML:Class xmi.id="sprmPWHeightAbs" name="sprmPWHeightAbs">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -30999,8 +33178,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPWHeightAbs-->
-<!--SPRM sprmPDcs-->
+ <!--SPRM sprmPWHeightAbs-->
+ <!--SPRM sprmPDcs-->
<UML:Class xmi.id="sprmPDcs" name="sprmPDcs">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31030,8 +33209,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPDcs-->
-<!--SPRM sprmPShd-->
+ <!--SPRM sprmPDcs-->
+ <!--SPRM sprmPShd-->
<UML:Class xmi.id="sprmPShd" name="sprmPShd">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31061,8 +33240,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPShd-->
-<!--SPRM sprmPDyaFromText-->
+ <!--SPRM sprmPShd-->
+ <!--SPRM sprmPDyaFromText-->
<UML:Class xmi.id="sprmPDyaFromText" name="sprmPDyaFromText">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31092,8 +33271,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPDyaFromText-->
-<!--SPRM sprmPDxaFromText-->
+ <!--SPRM sprmPDyaFromText-->
+ <!--SPRM sprmPDxaFromText-->
<UML:Class xmi.id="sprmPDxaFromText" name="sprmPDxaFromText">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31123,8 +33302,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPDxaFromText-->
-<!--SPRM sprmPFLocked-->
+ <!--SPRM sprmPDxaFromText-->
+ <!--SPRM sprmPFLocked-->
<UML:Class xmi.id="sprmPFLocked" name="sprmPFLocked">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31154,8 +33333,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFLocked-->
-<!--SPRM sprmPFWidowControl-->
+ <!--SPRM sprmPFLocked-->
+ <!--SPRM sprmPFWidowControl-->
<UML:Class xmi.id="sprmPFWidowControl" name="sprmPFWidowControl">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31185,8 +33364,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFWidowControl-->
-<!--SPRM sprmPRuler-->
+ <!--SPRM sprmPFWidowControl-->
+ <!--SPRM sprmPRuler-->
<UML:Class xmi.id="sprmPRuler" name="sprmPRuler">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31216,8 +33395,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPRuler-->
-<!--SPRM sprmPFKinsoku-->
+ <!--SPRM sprmPRuler-->
+ <!--SPRM sprmPFKinsoku-->
<UML:Class xmi.id="sprmPFKinsoku" name="sprmPFKinsoku">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31247,8 +33426,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFKinsoku-->
-<!--SPRM sprmPFWordWrap-->
+ <!--SPRM sprmPFKinsoku-->
+ <!--SPRM sprmPFWordWrap-->
<UML:Class xmi.id="sprmPFWordWrap" name="sprmPFWordWrap">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31278,8 +33457,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFWordWrap-->
-<!--SPRM sprmPFOverflowPunct-->
+ <!--SPRM sprmPFWordWrap-->
+ <!--SPRM sprmPFOverflowPunct-->
<UML:Class xmi.id="sprmPFOverflowPunct" name="sprmPFOverflowPunct">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31309,8 +33488,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFOverflowPunct-->
-<!--SPRM sprmPFTopLinePunct-->
+ <!--SPRM sprmPFOverflowPunct-->
+ <!--SPRM sprmPFTopLinePunct-->
<UML:Class xmi.id="sprmPFTopLinePunct" name="sprmPFTopLinePunct">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31340,8 +33519,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFTopLinePunct-->
-<!--SPRM sprmPFAutoSpaceDE-->
+ <!--SPRM sprmPFTopLinePunct-->
+ <!--SPRM sprmPFAutoSpaceDE-->
<UML:Class xmi.id="sprmPFAutoSpaceDE" name="sprmPFAutoSpaceDE">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31371,8 +33550,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFAutoSpaceDE-->
-<!--SPRM sprmPFAutoSpaceDN-->
+ <!--SPRM sprmPFAutoSpaceDE-->
+ <!--SPRM sprmPFAutoSpaceDN-->
<UML:Class xmi.id="sprmPFAutoSpaceDN" name="sprmPFAutoSpaceDN">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31402,8 +33581,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFAutoSpaceDN-->
-<!--SPRM sprmPWAlignFont-->
+ <!--SPRM sprmPFAutoSpaceDN-->
+ <!--SPRM sprmPWAlignFont-->
<UML:Class xmi.id="sprmPWAlignFont" name="sprmPWAlignFont">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31433,8 +33612,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPWAlignFont-->
-<!--SPRM sprmPFrameTextFlow-->
+ <!--SPRM sprmPWAlignFont-->
+ <!--SPRM sprmPFrameTextFlow-->
<UML:Class xmi.id="sprmPFrameTextFlow" name="sprmPFrameTextFlow">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31464,8 +33643,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFrameTextFlow-->
-<!--SPRM sprmPISnapBaseLine-->
+ <!--SPRM sprmPFrameTextFlow-->
+ <!--SPRM sprmPISnapBaseLine-->
<UML:Class xmi.id="sprmPISnapBaseLine" name="sprmPISnapBaseLine">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31495,8 +33674,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPISnapBaseLine-->
-<!--SPRM sprmPAnld-->
+ <!--SPRM sprmPISnapBaseLine-->
+ <!--SPRM sprmPAnld-->
<UML:Class xmi.id="sprmPAnld" name="sprmPAnld">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31526,8 +33705,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPAnld-->
-<!--SPRM sprmPPropRMark-->
+ <!--SPRM sprmPAnld-->
+ <!--SPRM sprmPPropRMark-->
<UML:Class xmi.id="sprmPPropRMark" name="sprmPPropRMark">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31557,8 +33736,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPPropRMark-->
-<!--SPRM sprmPOutLvl-->
+ <!--SPRM sprmPPropRMark-->
+ <!--SPRM sprmPOutLvl-->
<UML:Class xmi.id="sprmPOutLvl" name="sprmPOutLvl">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31588,8 +33767,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPOutLvl-->
-<!--SPRM sprmPFBiDi-->
+ <!--SPRM sprmPOutLvl-->
+ <!--SPRM sprmPFBiDi-->
<UML:Class xmi.id="sprmPFBiDi" name="sprmPFBiDi">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31619,8 +33798,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFBiDi-->
-<!--SPRM sprmPFNumRMIns-->
+ <!--SPRM sprmPFBiDi-->
+ <!--SPRM sprmPFNumRMIns-->
<UML:Class xmi.id="sprmPFNumRMIns" name="sprmPFNumRMIns">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31650,8 +33829,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFNumRMIns-->
-<!--SPRM sprmPCrLf-->
+ <!--SPRM sprmPFNumRMIns-->
+ <!--SPRM sprmPCrLf-->
<UML:Class xmi.id="sprmPCrLf" name="sprmPCrLf">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31681,8 +33860,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPCrLf-->
-<!--SPRM sprmPNumRM-->
+ <!--SPRM sprmPCrLf-->
+ <!--SPRM sprmPNumRM-->
<UML:Class xmi.id="sprmPNumRM" name="sprmPNumRM">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31712,8 +33891,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPNumRM-->
-<!--SPRM sprmPHugePapx-->
+ <!--SPRM sprmPNumRM-->
+ <!--SPRM sprmPHugePapx-->
<UML:Class xmi.id="sprmPHugePapx" name="sprmPHugePapx">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31743,8 +33922,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPHugePapx-->
-<!--SPRM sprmPFUsePgsuSettings-->
+ <!--SPRM sprmPHugePapx-->
+ <!--SPRM sprmPFUsePgsuSettings-->
<UML:Class xmi.id="sprmPFUsePgsuSettings" name="sprmPFUsePgsuSettings">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31774,8 +33953,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFUsePgsuSettings-->
-<!--SPRM sprmPFAdjustRight-->
+ <!--SPRM sprmPFUsePgsuSettings-->
+ <!--SPRM sprmPFAdjustRight-->
<UML:Class xmi.id="sprmPFAdjustRight" name="sprmPFAdjustRight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31805,8 +33984,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPFAdjustRight-->
-<!--SPRM sprmCFRMarkDel-->
+ <!--SPRM sprmPFAdjustRight-->
+ <!--SPRM sprmCFRMarkDel-->
<UML:Class xmi.id="sprmCFRMarkDel" name="sprmCFRMarkDel">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31836,8 +34015,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFRMarkDel-->
-<!--SPRM sprmCFRMark-->
+ <!--SPRM sprmCFRMarkDel-->
+ <!--SPRM sprmCFRMark-->
<UML:Class xmi.id="sprmCFRMark" name="sprmCFRMark">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31867,8 +34046,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFRMark-->
-<!--SPRM sprmCFFldVanish-->
+ <!--SPRM sprmCFRMark-->
+ <!--SPRM sprmCFFldVanish-->
<UML:Class xmi.id="sprmCFFldVanish" name="sprmCFFldVanish">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31898,8 +34077,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFFldVanish-->
-<!--SPRM sprmCPicLocation-->
+ <!--SPRM sprmCFFldVanish-->
+ <!--SPRM sprmCPicLocation-->
<UML:Class xmi.id="sprmCPicLocation" name="sprmCPicLocation">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -31998,8 +34177,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmCPicLocation-->
-<!--SPRM sprmCIbstRMark-->
+ <!--SPRM sprmCPicLocation-->
+ <!--SPRM sprmCIbstRMark-->
<UML:Class xmi.id="sprmCIbstRMark" name="sprmCIbstRMark">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32029,8 +34208,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCIbstRMark-->
-<!--SPRM sprmCDttmRMark-->
+ <!--SPRM sprmCIbstRMark-->
+ <!--SPRM sprmCDttmRMark-->
<UML:Class xmi.id="sprmCDttmRMark" name="sprmCDttmRMark">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32060,8 +34239,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCDttmRMark-->
-<!--SPRM sprmCFData-->
+ <!--SPRM sprmCDttmRMark-->
+ <!--SPRM sprmCFData-->
<UML:Class xmi.id="sprmCFData" name="sprmCFData">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32091,8 +34270,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFData-->
-<!--SPRM sprmCIdslRMark-->
+ <!--SPRM sprmCFData-->
+ <!--SPRM sprmCIdslRMark-->
<UML:Class xmi.id="sprmCIdslRMark" name="sprmCIdslRMark">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32122,8 +34301,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCIdslRMark-->
-<!--SPRM sprmCChs-->
+ <!--SPRM sprmCIdslRMark-->
+ <!--SPRM sprmCChs-->
<UML:Class xmi.id="sprmCChs" name="sprmCChs">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32153,8 +34332,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCChs-->
-<!--SPRM sprmCSymbol-->
+ <!--SPRM sprmCChs-->
+ <!--SPRM sprmCSymbol-->
<UML:Class xmi.id="sprmCSymbol" name="sprmCSymbol">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32311,8 +34490,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmCSymbol-->
-<!--SPRM sprmCFOle2-->
+ <!--SPRM sprmCSymbol-->
+ <!--SPRM sprmCFOle2-->
<UML:Class xmi.id="sprmCFOle2" name="sprmCFOle2">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32342,8 +34521,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFOle2-->
-<!--SPRM sprmCIdCharType-->
+ <!--SPRM sprmCFOle2-->
+ <!--SPRM sprmCIdCharType-->
<UML:Class xmi.id="sprmCIdCharType" name="sprmCIdCharType">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32373,8 +34552,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCIdCharType-->
-<!--SPRM sprmCHighlight-->
+ <!--SPRM sprmCIdCharType-->
+ <!--SPRM sprmCHighlight-->
<UML:Class xmi.id="sprmCHighlight" name="sprmCHighlight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32404,8 +34583,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCHighlight-->
-<!--SPRM sprmCObjLocation-->
+ <!--SPRM sprmCHighlight-->
+ <!--SPRM sprmCObjLocation-->
<UML:Class xmi.id="sprmCObjLocation" name="sprmCObjLocation">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32435,8 +34614,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCObjLocation-->
-<!--SPRM sprmCFFtcAsciSymb-->
+ <!--SPRM sprmCObjLocation-->
+ <!--SPRM sprmCFFtcAsciSymb-->
<UML:Class xmi.id="sprmCFFtcAsciSymb" name="sprmCFFtcAsciSymb">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32466,8 +34645,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFFtcAsciSymb-->
-<!--SPRM sprmCIstd-->
+ <!--SPRM sprmCFFtcAsciSymb-->
+ <!--SPRM sprmCIstd-->
<UML:Class xmi.id="sprmCIstd" name="sprmCIstd">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32497,8 +34676,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCIstd-->
-<!--SPRM sprmCIstdPermute-->
+ <!--SPRM sprmCIstd-->
+ <!--SPRM sprmCIstdPermute-->
<UML:Class xmi.id="sprmCIstdPermute" name="sprmCIstdPermute">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32528,8 +34707,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCIstdPermute-->
-<!--SPRM sprmCDefault-->
+ <!--SPRM sprmCIstdPermute-->
+ <!--SPRM sprmCDefault-->
<UML:Class xmi.id="sprmCDefault" name="sprmCDefault">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32559,8 +34738,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCDefault-->
-<!--SPRM sprmCPlain-->
+ <!--SPRM sprmCDefault-->
+ <!--SPRM sprmCPlain-->
<UML:Class xmi.id="sprmCPlain" name="sprmCPlain">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32590,8 +34769,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCPlain-->
-<!--SPRM sprmCKcd-->
+ <!--SPRM sprmCPlain-->
+ <!--SPRM sprmCKcd-->
<UML:Class xmi.id="sprmCKcd" name="sprmCKcd">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32621,8 +34800,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCKcd-->
-<!--SPRM sprmCFBold-->
+ <!--SPRM sprmCKcd-->
+ <!--SPRM sprmCFBold-->
<UML:Class xmi.id="sprmCFBold" name="sprmCFBold">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32652,8 +34831,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFBold-->
-<!--SPRM sprmCFItalic-->
+ <!--SPRM sprmCFBold-->
+ <!--SPRM sprmCFItalic-->
<UML:Class xmi.id="sprmCFItalic" name="sprmCFItalic">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32683,8 +34862,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFItalic-->
-<!--SPRM sprmCFStrike-->
+ <!--SPRM sprmCFItalic-->
+ <!--SPRM sprmCFStrike-->
<UML:Class xmi.id="sprmCFStrike" name="sprmCFStrike">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32714,8 +34893,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFStrike-->
-<!--SPRM sprmCFOutline-->
+ <!--SPRM sprmCFStrike-->
+ <!--SPRM sprmCFOutline-->
<UML:Class xmi.id="sprmCFOutline" name="sprmCFOutline">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32745,8 +34924,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFOutline-->
-<!--SPRM sprmCFShadow-->
+ <!--SPRM sprmCFOutline-->
+ <!--SPRM sprmCFShadow-->
<UML:Class xmi.id="sprmCFShadow" name="sprmCFShadow">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32776,8 +34955,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFShadow-->
-<!--SPRM sprmCFSmallCaps-->
+ <!--SPRM sprmCFShadow-->
+ <!--SPRM sprmCFSmallCaps-->
<UML:Class xmi.id="sprmCFSmallCaps" name="sprmCFSmallCaps">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32807,8 +34986,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFSmallCaps-->
-<!--SPRM sprmCFCaps-->
+ <!--SPRM sprmCFSmallCaps-->
+ <!--SPRM sprmCFCaps-->
<UML:Class xmi.id="sprmCFCaps" name="sprmCFCaps">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32838,8 +35017,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFCaps-->
-<!--SPRM sprmCFVanish-->
+ <!--SPRM sprmCFCaps-->
+ <!--SPRM sprmCFVanish-->
<UML:Class xmi.id="sprmCFVanish" name="sprmCFVanish">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32869,8 +35048,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFVanish-->
-<!--SPRM sprmCFtcDefault-->
+ <!--SPRM sprmCFVanish-->
+ <!--SPRM sprmCFtcDefault-->
<UML:Class xmi.id="sprmCFtcDefault" name="sprmCFtcDefault">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32900,8 +35079,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFtcDefault-->
-<!--SPRM sprmCKul-->
+ <!--SPRM sprmCFtcDefault-->
+ <!--SPRM sprmCKul-->
<UML:Class xmi.id="sprmCKul" name="sprmCKul">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32931,8 +35110,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCKul-->
-<!--SPRM sprmCSizePos-->
+ <!--SPRM sprmCKul-->
+ <!--SPRM sprmCSizePos-->
<UML:Class xmi.id="sprmCSizePos" name="sprmCSizePos">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32962,8 +35141,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCSizePos-->
-<!--SPRM sprmCDxaSpace-->
+ <!--SPRM sprmCSizePos-->
+ <!--SPRM sprmCDxaSpace-->
<UML:Class xmi.id="sprmCDxaSpace" name="sprmCDxaSpace">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -32993,8 +35172,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCDxaSpace-->
-<!--SPRM sprmCLid-->
+ <!--SPRM sprmCDxaSpace-->
+ <!--SPRM sprmCLid-->
<UML:Class xmi.id="sprmCLid" name="sprmCLid">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33024,8 +35203,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCLid-->
-<!--SPRM sprmCIco-->
+ <!--SPRM sprmCLid-->
+ <!--SPRM sprmCIco-->
<UML:Class xmi.id="sprmCIco" name="sprmCIco">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33055,8 +35234,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCIco-->
-<!--SPRM sprmCHps-->
+ <!--SPRM sprmCIco-->
+ <!--SPRM sprmCHps-->
<UML:Class xmi.id="sprmCHps" name="sprmCHps">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33086,8 +35265,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCHps-->
-<!--SPRM sprmCHpsInc-->
+ <!--SPRM sprmCHps-->
+ <!--SPRM sprmCHpsInc-->
<UML:Class xmi.id="sprmCHpsInc" name="sprmCHpsInc">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33117,8 +35296,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCHpsInc-->
-<!--SPRM sprmCHpsPos-->
+ <!--SPRM sprmCHpsInc-->
+ <!--SPRM sprmCHpsPos-->
<UML:Class xmi.id="sprmCHpsPos" name="sprmCHpsPos">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33148,8 +35327,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCHpsPos-->
-<!--SPRM sprmCHpsPosAdj-->
+ <!--SPRM sprmCHpsPos-->
+ <!--SPRM sprmCHpsPosAdj-->
<UML:Class xmi.id="sprmCHpsPosAdj" name="sprmCHpsPosAdj">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33179,8 +35358,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCHpsPosAdj-->
-<!--SPRM sprmCMajority-->
+ <!--SPRM sprmCHpsPosAdj-->
+ <!--SPRM sprmCMajority-->
<UML:Class xmi.id="sprmCMajority" name="sprmCMajority">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33210,8 +35389,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCMajority-->
-<!--SPRM sprmCIss-->
+ <!--SPRM sprmCMajority-->
+ <!--SPRM sprmCIss-->
<UML:Class xmi.id="sprmCIss" name="sprmCIss">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33241,8 +35420,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCIss-->
-<!--SPRM sprmCHpsNew50-->
+ <!--SPRM sprmCIss-->
+ <!--SPRM sprmCHpsNew50-->
<UML:Class xmi.id="sprmCHpsNew50" name="sprmCHpsNew50">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33272,8 +35451,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCHpsNew50-->
-<!--SPRM sprmCHpsInc1-->
+ <!--SPRM sprmCHpsNew50-->
+ <!--SPRM sprmCHpsInc1-->
<UML:Class xmi.id="sprmCHpsInc1" name="sprmCHpsInc1">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33303,8 +35482,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCHpsInc1-->
-<!--SPRM sprmCHpsKern-->
+ <!--SPRM sprmCHpsInc1-->
+ <!--SPRM sprmCHpsKern-->
<UML:Class xmi.id="sprmCHpsKern" name="sprmCHpsKern">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33334,8 +35513,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCHpsKern-->
-<!--SPRM sprmCMajority50-->
+ <!--SPRM sprmCHpsKern-->
+ <!--SPRM sprmCMajority50-->
<UML:Class xmi.id="sprmCMajority50" name="sprmCMajority50">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33365,8 +35544,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCMajority50-->
-<!--SPRM sprmCHpsMul-->
+ <!--SPRM sprmCMajority50-->
+ <!--SPRM sprmCHpsMul-->
<UML:Class xmi.id="sprmCHpsMul" name="sprmCHpsMul">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33396,8 +35575,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCHpsMul-->
-<!--SPRM sprmCYsri-->
+ <!--SPRM sprmCHpsMul-->
+ <!--SPRM sprmCYsri-->
<UML:Class xmi.id="sprmCYsri" name="sprmCYsri">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33427,8 +35606,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCYsri-->
-<!--SPRM sprmCRgFtc0-->
+ <!--SPRM sprmCYsri-->
+ <!--SPRM sprmCRgFtc0-->
<UML:Class xmi.id="sprmCRgFtc0" name="sprmCRgFtc0">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33458,8 +35637,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCRgFtc0-->
-<!--SPRM sprmCRgFtc1-->
+ <!--SPRM sprmCRgFtc0-->
+ <!--SPRM sprmCRgFtc1-->
<UML:Class xmi.id="sprmCRgFtc1" name="sprmCRgFtc1">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33489,8 +35668,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCRgFtc1-->
-<!--SPRM sprmCRgFtc2-->
+ <!--SPRM sprmCRgFtc1-->
+ <!--SPRM sprmCRgFtc2-->
<UML:Class xmi.id="sprmCRgFtc2" name="sprmCRgFtc2">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33520,8 +35699,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCRgFtc2-->
-<!--SPRM sprmCCharScale-->
+ <!--SPRM sprmCRgFtc2-->
+ <!--SPRM sprmCCharScale-->
<UML:Class xmi.id="sprmCCharScale" name="sprmCCharScale">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33551,8 +35730,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCCharScale-->
-<!--SPRM sprmCFDStrike-->
+ <!--SPRM sprmCCharScale-->
+ <!--SPRM sprmCFDStrike-->
<UML:Class xmi.id="sprmCFDStrike" name="sprmCFDStrike">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33582,8 +35761,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFDStrike-->
-<!--SPRM sprmCFImprint-->
+ <!--SPRM sprmCFDStrike-->
+ <!--SPRM sprmCFImprint-->
<UML:Class xmi.id="sprmCFImprint" name="sprmCFImprint">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33613,8 +35792,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFImprint-->
-<!--SPRM sprmCFNoProof-->
+ <!--SPRM sprmCFImprint-->
+ <!--SPRM sprmCFNoProof-->
<UML:Class xmi.id="sprmCFNoProof" name="sprmCFNoProof">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33644,8 +35823,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFNoProof-->
-<!--SPRM sprmCFspecVanish-->
+ <!--SPRM sprmCFNoProof-->
+ <!--SPRM sprmCFspecVanish-->
<UML:Class xmi.id="sprmCFspecVanish" name="sprmCFspecVanish">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33675,8 +35854,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFspecVanish-->
-<!--SPRM sprmCFitText-->
+ <!--SPRM sprmCFspecVanish-->
+ <!--SPRM sprmCFitText-->
<UML:Class xmi.id="sprmCFitText" name="sprmCFitText">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33706,8 +35885,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFitText-->
-<!--SPRM sprmCComplexScript-->
+ <!--SPRM sprmCFitText-->
+ <!--SPRM sprmCComplexScript-->
<UML:Class xmi.id="sprmCComplexScript" name="sprmCComplexScript">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33737,8 +35916,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCComplexScript-->
-<!--SPRM sprmPTightWrap-->
+ <!--SPRM sprmCComplexScript-->
+ <!--SPRM sprmPTightWrap-->
<UML:Class xmi.id="sprmPTightWrap" name="sprmPTightWrap">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33768,8 +35947,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPTightWrap-->
-<!--SPRM sprmCFSpec-->
+ <!--SPRM sprmPTightWrap-->
+ <!--SPRM sprmCFSpec-->
<UML:Class xmi.id="sprmCFSpec" name="sprmCFSpec">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33799,8 +35978,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFSpec-->
-<!--SPRM sprmCFObj-->
+ <!--SPRM sprmCFSpec-->
+ <!--SPRM sprmCFObj-->
<UML:Class xmi.id="sprmCFObj" name="sprmCFObj">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33830,8 +36009,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFObj-->
-<!--SPRM sprmCPropRMark-->
+ <!--SPRM sprmCFObj-->
+ <!--SPRM sprmCPropRMark-->
<UML:Class xmi.id="sprmCPropRMark" name="sprmCPropRMark">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33861,8 +36040,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCPropRMark-->
-<!--SPRM sprmCFEmboss-->
+ <!--SPRM sprmCPropRMark-->
+ <!--SPRM sprmCFEmboss-->
<UML:Class xmi.id="sprmCFEmboss" name="sprmCFEmboss">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33892,8 +36071,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFEmboss-->
-<!--SPRM sprmCSfxText-->
+ <!--SPRM sprmCFEmboss-->
+ <!--SPRM sprmCSfxText-->
<UML:Class xmi.id="sprmCSfxText" name="sprmCSfxText">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33923,8 +36102,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCSfxText-->
-<!--SPRM sprmCFBiDi-->
+ <!--SPRM sprmCSfxText-->
+ <!--SPRM sprmCFBiDi-->
<UML:Class xmi.id="sprmCFBiDi" name="sprmCFBiDi">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33954,8 +36133,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFBiDi-->
-<!--SPRM sprmCFDiacColor-->
+ <!--SPRM sprmCFBiDi-->
+ <!--SPRM sprmCFDiacColor-->
<UML:Class xmi.id="sprmCFDiacColor" name="sprmCFDiacColor">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -33985,8 +36164,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFDiacColor-->
-<!--SPRM sprmCFBoldBi-->
+ <!--SPRM sprmCFDiacColor-->
+ <!--SPRM sprmCFBoldBi-->
<UML:Class xmi.id="sprmCFBoldBi" name="sprmCFBoldBi">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34016,8 +36195,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFBoldBi-->
-<!--SPRM sprmCFItalicBi-->
+ <!--SPRM sprmCFBoldBi-->
+ <!--SPRM sprmCFItalicBi-->
<UML:Class xmi.id="sprmCFItalicBi" name="sprmCFItalicBi">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34047,8 +36226,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFItalicBi-->
-<!--SPRM sprmCFtcBi-->
+ <!--SPRM sprmCFItalicBi-->
+ <!--SPRM sprmCFtcBi-->
<UML:Class xmi.id="sprmCFtcBi" name="sprmCFtcBi">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34078,8 +36257,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFtcBi-->
-<!--SPRM sprmCLidBi-->
+ <!--SPRM sprmCFtcBi-->
+ <!--SPRM sprmCLidBi-->
<UML:Class xmi.id="sprmCLidBi" name="sprmCLidBi">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34109,8 +36288,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCLidBi-->
-<!--SPRM sprmCIcoBi-->
+ <!--SPRM sprmCLidBi-->
+ <!--SPRM sprmCIcoBi-->
<UML:Class xmi.id="sprmCIcoBi" name="sprmCIcoBi">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34140,8 +36319,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCIcoBi-->
-<!--SPRM sprmCHpsBi-->
+ <!--SPRM sprmCIcoBi-->
+ <!--SPRM sprmCHpsBi-->
<UML:Class xmi.id="sprmCHpsBi" name="sprmCHpsBi">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34171,8 +36350,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCHpsBi-->
-<!--SPRM sprmCDispFldRMark-->
+ <!--SPRM sprmCHpsBi-->
+ <!--SPRM sprmCDispFldRMark-->
<UML:Class xmi.id="sprmCDispFldRMark" name="sprmCDispFldRMark">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34202,8 +36381,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCDispFldRMark-->
-<!--SPRM sprmCIbstRMarkDel-->
+ <!--SPRM sprmCDispFldRMark-->
+ <!--SPRM sprmCIbstRMarkDel-->
<UML:Class xmi.id="sprmCIbstRMarkDel" name="sprmCIbstRMarkDel">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34233,8 +36412,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCIbstRMarkDel-->
-<!--SPRM sprmCDttmRMarkDel-->
+ <!--SPRM sprmCIbstRMarkDel-->
+ <!--SPRM sprmCDttmRMarkDel-->
<UML:Class xmi.id="sprmCDttmRMarkDel" name="sprmCDttmRMarkDel">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34264,8 +36443,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCDttmRMarkDel-->
-<!--SPRM sprmCBrc-->
+ <!--SPRM sprmCDttmRMarkDel-->
+ <!--SPRM sprmCBrc-->
<UML:Class xmi.id="sprmCBrc" name="sprmCBrc">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34295,8 +36474,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCBrc-->
-<!--SPRM sprmCShd-->
+ <!--SPRM sprmCBrc-->
+ <!--SPRM sprmCShd-->
<UML:Class xmi.id="sprmCShd" name="sprmCShd">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34326,8 +36505,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCShd-->
-<!--SPRM sprmCIdslRMarkDel-->
+ <!--SPRM sprmCShd-->
+ <!--SPRM sprmCIdslRMarkDel-->
<UML:Class xmi.id="sprmCIdslRMarkDel" name="sprmCIdslRMarkDel">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34357,8 +36536,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCIdslRMarkDel-->
-<!--SPRM sprmCFUsePgsuSettings-->
+ <!--SPRM sprmCIdslRMarkDel-->
+ <!--SPRM sprmCFUsePgsuSettings-->
<UML:Class xmi.id="sprmCFUsePgsuSettings" name="sprmCFUsePgsuSettings">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34388,8 +36567,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCFUsePgsuSettings-->
-<!--SPRM sprmCCpg-->
+ <!--SPRM sprmCFUsePgsuSettings-->
+ <!--SPRM sprmCCpg-->
<UML:Class xmi.id="sprmCCpg" name="sprmCCpg">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34419,9 +36598,9 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCCpg-->
-<!--SPRM sprmCRgLid0-->
- <UML:Class xmi.id="sprmCRgLid0" name="sprmCRgLid0">
+ <!--SPRM sprmCCpg-->
+ <!--SPRM sprmCRgLid0_80-->
+ <UML:Class xmi.id="sprmCRgLid0_80" name="sprmCRgLid0_80">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
</UML:ModelElement.stereotype>
@@ -34435,7 +36614,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:sprmCRgLid0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCRgLid0_80</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="sprmid"/>
</UML:TaggedValue.type>
@@ -34450,8 +36629,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCRgLid0-->
-<!--SPRM sprmCRgLid1-->
+ <!--SPRM sprmCRgLid0_80-->
+ <!--SPRM sprmCRgLid1-->
<UML:Class xmi.id="sprmCRgLid1" name="sprmCRgLid1">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34481,8 +36660,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCRgLid1-->
-<!--SPRM sprmCIdctHint-->
+ <!--SPRM sprmCRgLid1-->
+ <!--SPRM sprmCIdctHint-->
<UML:Class xmi.id="sprmCIdctHint" name="sprmCIdctHint">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34512,8 +36691,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCIdctHint-->
-<!--SPRM sprmPicBrcl-->
+ <!--SPRM sprmCIdctHint-->
+ <!--SPRM sprmPicBrcl-->
<UML:Class xmi.id="sprmPicBrcl" name="sprmPicBrcl">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34543,8 +36722,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPicBrcl-->
-<!--SPRM sprmPicScale-->
+ <!--SPRM sprmPicBrcl-->
+ <!--SPRM sprmPicScale-->
<UML:Class xmi.id="sprmPicScale" name="sprmPicScale">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34574,8 +36753,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPicScale-->
-<!--SPRM sprmPicBrcTop-->
+ <!--SPRM sprmPicScale-->
+ <!--SPRM sprmPicBrcTop-->
<UML:Class xmi.id="sprmPicBrcTop" name="sprmPicBrcTop">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34605,8 +36784,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPicBrcTop-->
-<!--SPRM sprmPicBrcLeft-->
+ <!--SPRM sprmPicBrcTop-->
+ <!--SPRM sprmPicBrcLeft-->
<UML:Class xmi.id="sprmPicBrcLeft" name="sprmPicBrcLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34636,8 +36815,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPicBrcLeft-->
-<!--SPRM sprmPicBrcBottom-->
+ <!--SPRM sprmPicBrcLeft-->
+ <!--SPRM sprmPicBrcBottom-->
<UML:Class xmi.id="sprmPicBrcBottom" name="sprmPicBrcBottom">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34667,8 +36846,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPicBrcBottom-->
-<!--SPRM sprmPicBrcRight-->
+ <!--SPRM sprmPicBrcBottom-->
+ <!--SPRM sprmPicBrcRight-->
<UML:Class xmi.id="sprmPicBrcRight" name="sprmPicBrcRight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34698,8 +36877,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPicBrcRight-->
-<!--SPRM sprmScnsPgn-->
+ <!--SPRM sprmPicBrcRight-->
+ <!--SPRM sprmScnsPgn-->
<UML:Class xmi.id="sprmScnsPgn" name="sprmScnsPgn">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34729,8 +36908,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmScnsPgn-->
-<!--SPRM sprmSiHeadingPgn-->
+ <!--SPRM sprmScnsPgn-->
+ <!--SPRM sprmSiHeadingPgn-->
<UML:Class xmi.id="sprmSiHeadingPgn" name="sprmSiHeadingPgn">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34760,8 +36939,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSiHeadingPgn-->
-<!--SPRM sprmSOlstAnm-->
+ <!--SPRM sprmSiHeadingPgn-->
+ <!--SPRM sprmSOlstAnm-->
<UML:Class xmi.id="sprmSOlstAnm" name="sprmSOlstAnm">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34791,8 +36970,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSOlstAnm-->
-<!--SPRM sprmSDxaColWidth-->
+ <!--SPRM sprmSOlstAnm-->
+ <!--SPRM sprmSDxaColWidth-->
<UML:Class xmi.id="sprmSDxaColWidth" name="sprmSDxaColWidth">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34822,8 +37001,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDxaColWidth-->
-<!--SPRM sprmSDxaColSpacing-->
+ <!--SPRM sprmSDxaColWidth-->
+ <!--SPRM sprmSDxaColSpacing-->
<UML:Class xmi.id="sprmSDxaColSpacing" name="sprmSDxaColSpacing">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34853,8 +37032,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDxaColSpacing-->
-<!--SPRM sprmSFEvenlySpaced-->
+ <!--SPRM sprmSDxaColSpacing-->
+ <!--SPRM sprmSFEvenlySpaced-->
<UML:Class xmi.id="sprmSFEvenlySpaced" name="sprmSFEvenlySpaced">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34884,8 +37063,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSFEvenlySpaced-->
-<!--SPRM sprmSFProtected-->
+ <!--SPRM sprmSFEvenlySpaced-->
+ <!--SPRM sprmSFProtected-->
<UML:Class xmi.id="sprmSFProtected" name="sprmSFProtected">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34915,8 +37094,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSFProtected-->
-<!--SPRM sprmSDmBinFirst-->
+ <!--SPRM sprmSFProtected-->
+ <!--SPRM sprmSDmBinFirst-->
<UML:Class xmi.id="sprmSDmBinFirst" name="sprmSDmBinFirst">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34946,8 +37125,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDmBinFirst-->
-<!--SPRM sprmSDmBinOther-->
+ <!--SPRM sprmSDmBinFirst-->
+ <!--SPRM sprmSDmBinOther-->
<UML:Class xmi.id="sprmSDmBinOther" name="sprmSDmBinOther">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -34977,8 +37156,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDmBinOther-->
-<!--SPRM sprmSBkc-->
+ <!--SPRM sprmSDmBinOther-->
+ <!--SPRM sprmSBkc-->
<UML:Class xmi.id="sprmSBkc" name="sprmSBkc">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35008,8 +37187,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSBkc-->
-<!--SPRM sprmSFTitlePage-->
+ <!--SPRM sprmSBkc-->
+ <!--SPRM sprmSFTitlePage-->
<UML:Class xmi.id="sprmSFTitlePage" name="sprmSFTitlePage">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35039,8 +37218,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSFTitlePage-->
-<!--SPRM sprmSCcolumns-->
+ <!--SPRM sprmSFTitlePage-->
+ <!--SPRM sprmSCcolumns-->
<UML:Class xmi.id="sprmSCcolumns" name="sprmSCcolumns">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35070,8 +37249,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSCcolumns-->
-<!--SPRM sprmSDxaColumns-->
+ <!--SPRM sprmSCcolumns-->
+ <!--SPRM sprmSDxaColumns-->
<UML:Class xmi.id="sprmSDxaColumns" name="sprmSDxaColumns">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35101,8 +37280,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDxaColumns-->
-<!--SPRM sprmSFAutoPgn-->
+ <!--SPRM sprmSDxaColumns-->
+ <!--SPRM sprmSFAutoPgn-->
<UML:Class xmi.id="sprmSFAutoPgn" name="sprmSFAutoPgn">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35132,8 +37311,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSFAutoPgn-->
-<!--SPRM sprmSNfcPgn-->
+ <!--SPRM sprmSFAutoPgn-->
+ <!--SPRM sprmSNfcPgn-->
<UML:Class xmi.id="sprmSNfcPgn" name="sprmSNfcPgn">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35163,8 +37342,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSNfcPgn-->
-<!--SPRM sprmSDyaPgn-->
+ <!--SPRM sprmSNfcPgn-->
+ <!--SPRM sprmSDyaPgn-->
<UML:Class xmi.id="sprmSDyaPgn" name="sprmSDyaPgn">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35194,8 +37373,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDyaPgn-->
-<!--SPRM sprmSDxaPgn-->
+ <!--SPRM sprmSDyaPgn-->
+ <!--SPRM sprmSDxaPgn-->
<UML:Class xmi.id="sprmSDxaPgn" name="sprmSDxaPgn">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35225,8 +37404,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDxaPgn-->
-<!--SPRM sprmSFPgnRestart-->
+ <!--SPRM sprmSDxaPgn-->
+ <!--SPRM sprmSFPgnRestart-->
<UML:Class xmi.id="sprmSFPgnRestart" name="sprmSFPgnRestart">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35256,8 +37435,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSFPgnRestart-->
-<!--SPRM sprmSFEndnote-->
+ <!--SPRM sprmSFPgnRestart-->
+ <!--SPRM sprmSFEndnote-->
<UML:Class xmi.id="sprmSFEndnote" name="sprmSFEndnote">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35287,8 +37466,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSFEndnote-->
-<!--SPRM sprmSLnc-->
+ <!--SPRM sprmSFEndnote-->
+ <!--SPRM sprmSLnc-->
<UML:Class xmi.id="sprmSLnc" name="sprmSLnc">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35318,8 +37497,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSLnc-->
-<!--SPRM sprmSGprfIhdt-->
+ <!--SPRM sprmSLnc-->
+ <!--SPRM sprmSGprfIhdt-->
<UML:Class xmi.id="sprmSGprfIhdt" name="sprmSGprfIhdt">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35349,8 +37528,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSGprfIhdt-->
-<!--SPRM sprmSNLnnMod-->
+ <!--SPRM sprmSGprfIhdt-->
+ <!--SPRM sprmSNLnnMod-->
<UML:Class xmi.id="sprmSNLnnMod" name="sprmSNLnnMod">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35380,8 +37559,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSNLnnMod-->
-<!--SPRM sprmSDxaLnn-->
+ <!--SPRM sprmSNLnnMod-->
+ <!--SPRM sprmSDxaLnn-->
<UML:Class xmi.id="sprmSDxaLnn" name="sprmSDxaLnn">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35411,8 +37590,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDxaLnn-->
-<!--SPRM sprmSDyaHdrTop-->
+ <!--SPRM sprmSDxaLnn-->
+ <!--SPRM sprmSDyaHdrTop-->
<UML:Class xmi.id="sprmSDyaHdrTop" name="sprmSDyaHdrTop">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35442,8 +37621,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDyaHdrTop-->
-<!--SPRM sprmSDyaHdrBottom-->
+ <!--SPRM sprmSDyaHdrTop-->
+ <!--SPRM sprmSDyaHdrBottom-->
<UML:Class xmi.id="sprmSDyaHdrBottom" name="sprmSDyaHdrBottom">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35473,8 +37652,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDyaHdrBottom-->
-<!--SPRM sprmSLBetween-->
+ <!--SPRM sprmSDyaHdrBottom-->
+ <!--SPRM sprmSLBetween-->
<UML:Class xmi.id="sprmSLBetween" name="sprmSLBetween">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35504,8 +37683,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSLBetween-->
-<!--SPRM sprmSVjc-->
+ <!--SPRM sprmSLBetween-->
+ <!--SPRM sprmSVjc-->
<UML:Class xmi.id="sprmSVjc" name="sprmSVjc">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35535,8 +37714,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSVjc-->
-<!--SPRM sprmSLnnMin-->
+ <!--SPRM sprmSVjc-->
+ <!--SPRM sprmSLnnMin-->
<UML:Class xmi.id="sprmSLnnMin" name="sprmSLnnMin">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35566,8 +37745,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSLnnMin-->
-<!--SPRM sprmSPgnStart-->
+ <!--SPRM sprmSLnnMin-->
+ <!--SPRM sprmSPgnStart-->
<UML:Class xmi.id="sprmSPgnStart" name="sprmSPgnStart">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35597,8 +37776,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSPgnStart-->
-<!--SPRM sprmSBOrientation-->
+ <!--SPRM sprmSPgnStart-->
+ <!--SPRM sprmSBOrientation-->
<UML:Class xmi.id="sprmSBOrientation" name="sprmSBOrientation">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35628,8 +37807,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSBOrientation-->
-<!--SPRM sprmSBCustomize-->
+ <!--SPRM sprmSBOrientation-->
+ <!--SPRM sprmSBCustomize-->
<UML:Class xmi.id="sprmSBCustomize" name="sprmSBCustomize">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35659,8 +37838,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSBCustomize-->
-<!--SPRM sprmSXaPage-->
+ <!--SPRM sprmSBCustomize-->
+ <!--SPRM sprmSXaPage-->
<UML:Class xmi.id="sprmSXaPage" name="sprmSXaPage">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35690,8 +37869,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSXaPage-->
-<!--SPRM sprmSYaPage-->
+ <!--SPRM sprmSXaPage-->
+ <!--SPRM sprmSYaPage-->
<UML:Class xmi.id="sprmSYaPage" name="sprmSYaPage">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35721,8 +37900,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSYaPage-->
-<!--SPRM sprmSDxaLeft-->
+ <!--SPRM sprmSYaPage-->
+ <!--SPRM sprmSDxaLeft-->
<UML:Class xmi.id="sprmSDxaLeft" name="sprmSDxaLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35752,8 +37931,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDxaLeft-->
-<!--SPRM sprmSDxaRight-->
+ <!--SPRM sprmSDxaLeft-->
+ <!--SPRM sprmSDxaRight-->
<UML:Class xmi.id="sprmSDxaRight" name="sprmSDxaRight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35783,8 +37962,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDxaRight-->
-<!--SPRM sprmSDyaTop-->
+ <!--SPRM sprmSDxaRight-->
+ <!--SPRM sprmSDyaTop-->
<UML:Class xmi.id="sprmSDyaTop" name="sprmSDyaTop">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35814,8 +37993,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDyaTop-->
-<!--SPRM sprmSDyaBottom-->
+ <!--SPRM sprmSDyaTop-->
+ <!--SPRM sprmSDyaBottom-->
<UML:Class xmi.id="sprmSDyaBottom" name="sprmSDyaBottom">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35845,8 +38024,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDyaBottom-->
-<!--SPRM sprmSDzaGutter-->
+ <!--SPRM sprmSDyaBottom-->
+ <!--SPRM sprmSDzaGutter-->
<UML:Class xmi.id="sprmSDzaGutter" name="sprmSDzaGutter">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35876,8 +38055,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDzaGutter-->
-<!--SPRM sprmSDmPaperReq-->
+ <!--SPRM sprmSDzaGutter-->
+ <!--SPRM sprmSDmPaperReq-->
<UML:Class xmi.id="sprmSDmPaperReq" name="sprmSDmPaperReq">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35907,8 +38086,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDmPaperReq-->
-<!--SPRM sprmSPropRMark-->
+ <!--SPRM sprmSDmPaperReq-->
+ <!--SPRM sprmSPropRMark-->
<UML:Class xmi.id="sprmSPropRMark" name="sprmSPropRMark">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35938,8 +38117,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSPropRMark-->
-<!--SPRM sprmSFBiDi-->
+ <!--SPRM sprmSPropRMark-->
+ <!--SPRM sprmSFBiDi-->
<UML:Class xmi.id="sprmSFBiDi" name="sprmSFBiDi">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -35969,8 +38148,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSFBiDi-->
-<!--SPRM sprmSFFacingCol-->
+ <!--SPRM sprmSFBiDi-->
+ <!--SPRM sprmSFFacingCol-->
<UML:Class xmi.id="sprmSFFacingCol" name="sprmSFFacingCol">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36000,8 +38179,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSFFacingCol-->
-<!--SPRM sprmSFRTLGutter-->
+ <!--SPRM sprmSFFacingCol-->
+ <!--SPRM sprmSFRTLGutter-->
<UML:Class xmi.id="sprmSFRTLGutter" name="sprmSFRTLGutter">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36031,8 +38210,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSFRTLGutter-->
-<!--SPRM sprmSBrcTop-->
+ <!--SPRM sprmSFRTLGutter-->
+ <!--SPRM sprmSBrcTop-->
<UML:Class xmi.id="sprmSBrcTop" name="sprmSBrcTop">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36062,8 +38241,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSBrcTop-->
-<!--SPRM sprmSBrcLeft-->
+ <!--SPRM sprmSBrcTop-->
+ <!--SPRM sprmSBrcLeft-->
<UML:Class xmi.id="sprmSBrcLeft" name="sprmSBrcLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36093,8 +38272,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSBrcLeft-->
-<!--SPRM sprmSBrcBottom-->
+ <!--SPRM sprmSBrcLeft-->
+ <!--SPRM sprmSBrcBottom-->
<UML:Class xmi.id="sprmSBrcBottom" name="sprmSBrcBottom">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36124,8 +38303,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSBrcBottom-->
-<!--SPRM sprmSBrcRight-->
+ <!--SPRM sprmSBrcBottom-->
+ <!--SPRM sprmSBrcRight-->
<UML:Class xmi.id="sprmSBrcRight" name="sprmSBrcRight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36155,8 +38334,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSBrcRight-->
-<!--SPRM sprmSPgbProp-->
+ <!--SPRM sprmSBrcRight-->
+ <!--SPRM sprmSPgbProp-->
<UML:Class xmi.id="sprmSPgbProp" name="sprmSPgbProp">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36186,8 +38365,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSPgbProp-->
-<!--SPRM sprmSDxtCharSpace-->
+ <!--SPRM sprmSPgbProp-->
+ <!--SPRM sprmSDxtCharSpace-->
<UML:Class xmi.id="sprmSDxtCharSpace" name="sprmSDxtCharSpace">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36217,8 +38396,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDxtCharSpace-->
-<!--SPRM sprmSDyaLinePitch-->
+ <!--SPRM sprmSDxtCharSpace-->
+ <!--SPRM sprmSDyaLinePitch-->
<UML:Class xmi.id="sprmSDyaLinePitch" name="sprmSDyaLinePitch">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36248,8 +38427,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSDyaLinePitch-->
-<!--SPRM sprmSClm-->
+ <!--SPRM sprmSDyaLinePitch-->
+ <!--SPRM sprmSClm-->
<UML:Class xmi.id="sprmSClm" name="sprmSClm">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36279,8 +38458,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSClm-->
-<!--SPRM sprmSTextFlow-->
+ <!--SPRM sprmSClm-->
+ <!--SPRM sprmSTextFlow-->
<UML:Class xmi.id="sprmSTextFlow" name="sprmSTextFlow">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36310,8 +38489,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmSTextFlow-->
-<!--SPRM sprmTJc-->
+ <!--SPRM sprmSTextFlow-->
+ <!--SPRM sprmTJc-->
<UML:Class xmi.id="sprmTJc" name="sprmTJc">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36341,8 +38520,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTJc-->
-<!--SPRM sprmTDxaLeft-->
+ <!--SPRM sprmTJc-->
+ <!--SPRM sprmTDxaLeft-->
<UML:Class xmi.id="sprmTDxaLeft" name="sprmTDxaLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36372,8 +38551,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTDxaLeft-->
-<!--SPRM sprmTDxaGapHalf-->
+ <!--SPRM sprmTDxaLeft-->
+ <!--SPRM sprmTDxaGapHalf-->
<UML:Class xmi.id="sprmTDxaGapHalf" name="sprmTDxaGapHalf">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36403,8 +38582,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTDxaGapHalf-->
-<!--SPRM sprmTFCantSplit-->
+ <!--SPRM sprmTDxaGapHalf-->
+ <!--SPRM sprmTFCantSplit-->
<UML:Class xmi.id="sprmTFCantSplit" name="sprmTFCantSplit">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36434,8 +38613,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTFCantSplit-->
-<!--SPRM sprmTTableHeader-->
+ <!--SPRM sprmTFCantSplit-->
+ <!--SPRM sprmTTableHeader-->
<UML:Class xmi.id="sprmTTableHeader" name="sprmTTableHeader">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36465,8 +38644,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTTableHeader-->
-<!--SPRM sprmTTableBorders-->
+ <!--SPRM sprmTTableHeader-->
+ <!--SPRM sprmTTableBorders-->
<UML:Class xmi.id="sprmTTableBorders" name="sprmTTableBorders">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36529,8 +38708,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmTTableBorders-->
-<!--SPRM sprmTDefTable10-->
+ <!--SPRM sprmTTableBorders-->
+ <!--SPRM sprmTDefTable10-->
<UML:Class xmi.id="sprmTDefTable10" name="sprmTDefTable10">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36560,8 +38739,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTDefTable10-->
-<!--SPRM sprmTDyaRowHeight-->
+ <!--SPRM sprmTDefTable10-->
+ <!--SPRM sprmTDyaRowHeight-->
<UML:Class xmi.id="sprmTDyaRowHeight" name="sprmTDyaRowHeight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36591,8 +38770,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTDyaRowHeight-->
-<!--SPRM sprmTDefTable-->
+ <!--SPRM sprmTDyaRowHeight-->
+ <!--SPRM sprmTDefTable-->
<UML:Class xmi.id="sprmTDefTable" name="sprmTDefTable">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36675,8 +38854,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmTDefTable-->
-<!--SPRM sprmTDefTableShd-->
+ <!--SPRM sprmTDefTable-->
+ <!--SPRM sprmTDefTableShd-->
<UML:Class xmi.id="sprmTDefTableShd" name="sprmTDefTableShd">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36739,8 +38918,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmTDefTableShd-->
-<!--SPRM sprmTCellShd-->
+ <!--SPRM sprmTDefTableShd-->
+ <!--SPRM sprmTCellShd-->
<UML:Class xmi.id="sprmTCellShd" name="sprmTCellShd">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36803,8 +38982,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmTCellShd-->
-<!--SPRM sprmTTlp-->
+ <!--SPRM sprmTCellShd-->
+ <!--SPRM sprmTTlp-->
<UML:Class xmi.id="sprmTTlp" name="sprmTTlp">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36833,9 +39012,716 @@
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:Classifier.feature>
+ <UML:Attribute name="itl">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:itl</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fatlBorders">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fatlBorders</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fatlShading">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fatlShading</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fatlFont">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fatlFont</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fatlColor">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fatlColor</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fatlBestFit">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fatlBestFit</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fatlHdrRows">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x20</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fatlHdrRows</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fatlLastRow">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x40</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fatlLastRow</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fatlHdrCols">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x80</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fatlHdrCols</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fatlLastCol">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x100</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fatlLastCol</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fatlNoRowBands">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x200</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fatlNoRowBands</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="fatlNoColBands">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x400</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:fatlNoColBands</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
</UML:Class>
-<!--SPRM sprmTTlp-->
-<!--SPRM sprmTFBiDi-->
+ <UML:Generalization isSpecification="false" xmi.id="sprmTTlp-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTTlp"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTTlp-->
+ <!--SPRM sprmTFBiDi-->
<UML:Class xmi.id="sprmTFBiDi" name="sprmTFBiDi">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36865,8 +39751,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTFBiDi-->
-<!--SPRM sprmTHTMLProps-->
+ <!--SPRM sprmTFBiDi-->
+ <!--SPRM sprmTHTMLProps-->
<UML:Class xmi.id="sprmTHTMLProps" name="sprmTHTMLProps">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36896,8 +39782,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTHTMLProps-->
-<!--SPRM sprmTSetBrc-->
+ <!--SPRM sprmTHTMLProps-->
+ <!--SPRM sprmTSetBrc-->
<UML:Class xmi.id="sprmTSetBrc" name="sprmTSetBrc">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36927,8 +39813,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTSetBrc-->
-<!--SPRM sprmTInsert-->
+ <!--SPRM sprmTSetBrc-->
+ <!--SPRM sprmTInsert-->
<UML:Class xmi.id="sprmTInsert" name="sprmTInsert">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36958,8 +39844,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTInsert-->
-<!--SPRM sprmTDelete-->
+ <!--SPRM sprmTInsert-->
+ <!--SPRM sprmTDelete-->
<UML:Class xmi.id="sprmTDelete" name="sprmTDelete">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -36989,8 +39875,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTDelete-->
-<!--SPRM sprmTDxaCol-->
+ <!--SPRM sprmTDelete-->
+ <!--SPRM sprmTDxaCol-->
<UML:Class xmi.id="sprmTDxaCol" name="sprmTDxaCol">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37020,8 +39906,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTDxaCol-->
-<!--SPRM sprmTMerge-->
+ <!--SPRM sprmTDxaCol-->
+ <!--SPRM sprmTMerge-->
<UML:Class xmi.id="sprmTMerge" name="sprmTMerge">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37051,8 +39937,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTMerge-->
-<!--SPRM sprmTSplit-->
+ <!--SPRM sprmTMerge-->
+ <!--SPRM sprmTSplit-->
<UML:Class xmi.id="sprmTSplit" name="sprmTSplit">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37082,8 +39968,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTSplit-->
-<!--SPRM sprmTSetBrc10-->
+ <!--SPRM sprmTSplit-->
+ <!--SPRM sprmTSetBrc10-->
<UML:Class xmi.id="sprmTSetBrc10" name="sprmTSetBrc10">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37113,8 +39999,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTSetBrc10-->
-<!--SPRM sprmTSetShd-->
+ <!--SPRM sprmTSetBrc10-->
+ <!--SPRM sprmTSetShd-->
<UML:Class xmi.id="sprmTSetShd" name="sprmTSetShd">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37144,8 +40030,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTSetShd-->
-<!--SPRM sprmTSetShdOdd-->
+ <!--SPRM sprmTSetShd-->
+ <!--SPRM sprmTSetShdOdd-->
<UML:Class xmi.id="sprmTSetShdOdd" name="sprmTSetShdOdd">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37175,8 +40061,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTSetShdOdd-->
-<!--SPRM sprmTTextFlow-->
+ <!--SPRM sprmTSetShdOdd-->
+ <!--SPRM sprmTTextFlow-->
<UML:Class xmi.id="sprmTTextFlow" name="sprmTTextFlow">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37206,8 +40092,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTTextFlow-->
-<!--SPRM sprmTDiagLine-->
+ <!--SPRM sprmTTextFlow-->
+ <!--SPRM sprmTDiagLine-->
<UML:Class xmi.id="sprmTDiagLine" name="sprmTDiagLine">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37237,8 +40123,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTDiagLine-->
-<!--SPRM sprmTVertMerge-->
+ <!--SPRM sprmTDiagLine-->
+ <!--SPRM sprmTVertMerge-->
<UML:Class xmi.id="sprmTVertMerge" name="sprmTVertMerge">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37268,8 +40154,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTVertMerge-->
-<!--SPRM sprmTVertAlign-->
+ <!--SPRM sprmTVertMerge-->
+ <!--SPRM sprmTVertAlign-->
<UML:Class xmi.id="sprmTVertAlign" name="sprmTVertAlign">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37299,8 +40185,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmTVertAlign-->
-<!--SPRM sprmTCellTopColor-->
+ <!--SPRM sprmTVertAlign-->
+ <!--SPRM sprmTCellTopColor-->
<UML:Class xmi.id="sprmTCellTopColor" name="sprmTCellTopColor">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37363,8 +40249,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmTCellTopColor-->
-<!--SPRM sprmTCellLeftColor-->
+ <!--SPRM sprmTCellTopColor-->
+ <!--SPRM sprmTCellLeftColor-->
<UML:Class xmi.id="sprmTCellLeftColor" name="sprmTCellLeftColor">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37427,8 +40313,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmTCellLeftColor-->
-<!--SPRM sprmTCellBottomColor-->
+ <!--SPRM sprmTCellLeftColor-->
+ <!--SPRM sprmTCellBottomColor-->
<UML:Class xmi.id="sprmTCellBottomColor" name="sprmTCellBottomColor">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37491,8 +40377,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmTCellBottomColor-->
-<!--SPRM sprmTCellRightColor-->
+ <!--SPRM sprmTCellBottomColor-->
+ <!--SPRM sprmTCellRightColor-->
<UML:Class xmi.id="sprmTCellRightColor" name="sprmTCellRightColor">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37555,8 +40441,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmTCellRightColor-->
-<!--SPRM sprmTGridLineProps-->
+ <!--SPRM sprmTCellRightColor-->
+ <!--SPRM sprmTGridLineProps-->
<UML:Class xmi.id="sprmTGridLineProps" name="sprmTGridLineProps">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -37589,7 +40475,7 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:Classifier.feature>
-<!--
+ <!--
<UML:Operation name="gridLineProps" >
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
@@ -37622,7 +40508,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -37680,7 +40566,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>b</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0xb</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -37738,7 +40624,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>13</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x13</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -37796,7 +40682,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>1b</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x1b</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -37854,7 +40740,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>23</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x23</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -37912,7 +40798,7 @@
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
- <UML:TaggedValue.dataValue>2b</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.dataValue>0x2b</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
@@ -37975,8 +40861,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmTGridLineProps-->
-<!--SPRM sprmCInsrsid-->
+ <!--SPRM sprmTGridLineProps-->
+ <!--SPRM sprmCInsrsid-->
<UML:Class xmi.id="sprmCInsrsid" name="sprmCIndrsid">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -38006,8 +40892,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCInsrsid-->
-<!--SPRM sprmCdelrsid-->
+ <!--SPRM sprmCInsrsid-->
+ <!--SPRM sprmCdelrsid-->
<UML:Class xmi.id="sprmCdelrsid" name="sprmCdelrsid">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -38037,8 +40923,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmCdelrsid-->
-<!--SPRM sprmPTableDepth-->
+ <!--SPRM sprmCdelrsid-->
+ <!--SPRM sprmPTableDepth-->
<UML:Class xmi.id="sprmPTableDepth" name="sprmPTableDepth">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8sprm"/>
@@ -38068,8 +40954,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--SPRM sprmPTableDepth-->
-<!--SPRM sprmTCellShadow-->
+ <!--SPRM sprmPTableDepth-->
+ <!--SPRM sprmTCellShadow-->
<UML:Class xmi.id="sprmTCellShadow" name="sprmTCellShadow">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -38132,8 +41018,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmTCellShadow-->
-<!--SPRM sprmPBrcTop-->
+ <!--SPRM sprmTCellShadow-->
+ <!--SPRM sprmPBrcTop-->
<UML:Class xmi.id="sprmPBrcTop" name="sprmPBrcTop">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -38232,8 +41118,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmPBrcTop-->
-<!--SPRM sprmPBrcLeft-->
+ <!--SPRM sprmPBrcTop-->
+ <!--SPRM sprmPBrcLeft-->
<UML:Class xmi.id="sprmPBrcLeft" name="sprmPBrcLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -38332,8 +41218,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmPBrcLeft-->
-<!--SPRM sprmPBrcBottom-->
+ <!--SPRM sprmPBrcLeft-->
+ <!--SPRM sprmPBrcBottom-->
<UML:Class xmi.id="sprmPBrcBottom" name="sprmPBrcBottom">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -38432,8 +41318,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmPBrcBottom-->
-<!--SPRM sprmPBrcRight-->
+ <!--SPRM sprmPBrcBottom-->
+ <!--SPRM sprmPBrcRight-->
<UML:Class xmi.id="sprmPBrcRight" name="sprmPBrcRight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -38532,8 +41418,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmPBrcRight-->
-<!--SPRM sprmPBrcBetween-->
+ <!--SPRM sprmPBrcRight-->
+ <!--SPRM sprmPBrcBetween-->
<UML:Class xmi.id="sprmPBrcBetween" name="sprmPBrcBetween">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -38632,8 +41518,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmPBrcBetween-->
-<!--SPRM sprmPBorderTop-->
+ <!--SPRM sprmPBrcBetween-->
+ <!--SPRM sprmPBorderTop-->
<UML:Class xmi.id="sprmPBorderTop" name="sprmPBorderTop">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -38732,8 +41618,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmPBorderTop-->
-<!--SPRM sprmPBorderLeft-->
+ <!--SPRM sprmPBorderTop-->
+ <!--SPRM sprmPBorderLeft-->
<UML:Class xmi.id="sprmPBorderLeft" name="sprmPBorderLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -38832,8 +41718,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmPBorderLeft-->
-<!--SPRM sprmPBorderBottom-->
+ <!--SPRM sprmPBorderLeft-->
+ <!--SPRM sprmPBorderBottom-->
<UML:Class xmi.id="sprmPBorderBottom" name="sprmPBorderBottom">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -38932,8 +41818,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmPBorderBottom-->
-<!--SPRM sprmPBorderRight-->
+ <!--SPRM sprmPBorderBottom-->
+ <!--SPRM sprmPBorderRight-->
<UML:Class xmi.id="sprmPBorderRight" name="sprmPBorderRight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -39032,8 +41918,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmPBorderRight-->
-<!--SPRM sprmPBorderBetween-->
+ <!--SPRM sprmPBorderRight-->
+ <!--SPRM sprmPBorderBetween-->
<UML:Class xmi.id="sprmPBorderBetween" name="sprmPBorderBetween">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -39132,8 +42018,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmPBorderBetween-->
-<!--SPRM sprmCBorder-->
+ <!--SPRM sprmPBorderBetween-->
+ <!--SPRM sprmCBorder-->
<UML:Class xmi.id="sprmCBorder" name="sprmCBorder">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -39232,8 +42118,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmCBorder-->
-<!--SPRM sprmTTPreferredWidth-->
+ <!--SPRM sprmCBorder-->
+ <!--SPRM sprmTTPreferredWidth-->
<UML:Class xmi.id="sprmTTPreferredWidth" name="sprmTTPreferredWidth">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -39398,8 +42284,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmTTPreferredWidth-->
-<!--SPRM sprmTTRLeft-->
+ <!--SPRM sprmTTPreferredWidth-->
+ <!--SPRM sprmTTRLeft-->
<UML:Class xmi.id="sprmTTRLeft" name="sprmTTRLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -39564,8 +42450,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmTTRLeft-->
-<!--SPRM sprmCEastAsianLayout-->
+ <!--SPRM sprmTTRLeft-->
+ <!--SPRM sprmCEastAsianLayout-->
<UML:Class xmi.id="sprmCEastAsianLayout" name="sprmCEastAsianLayout">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
@@ -39664,10 +42550,786 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--SPRM sprmCEastAsianLayout-->
-<!--SPRMS-->
-<!--DFFS-->
-<!--DFF UDefProp-->
+ <!--SPRM sprmCEastAsianLayout-->
+ <!--SPRM sprmTWidthBefore-->
+ <UML:Class xmi.id="sprmTWidthBefore" name="sprmTWidthBefore">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xF617</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTWidthBefore</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>table</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="kind"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ftsWidth">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ftsWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="wWidth">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:wWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTWidthBefore-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTWidthBefore"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTWidthBefore-->
+ <!--SPRM sprmTWidthAfter-->
+ <UML:Class xmi.id="sprmTWidthAfter" name="sprmTWidthAfter">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xF618</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTWidthAfter</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>table</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="kind"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ftsWidth">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ftsWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="wWidth">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:wWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTWidthAfter-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTWidthAfter"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTWidthAfter-->
+ <!--SPRM sprmPDxaLeft1-->
+ <UML:Class xmi.id="sprmPDxaLeft1" name="sprmPDxaLeft1">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x8460</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPDxaLeft1</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>paragraph</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="kind"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPDxaLeft1-->
+ <!--SPRM sprmPRsid-->
+ <UML:Class xmi.id="sprmPRsid" name="sprmPRsid">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6467</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmPRsid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>paragraph</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="kind"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmPRsid-->
+ <!--SPRM sprmCRsidProp-->
+ <UML:Class xmi.id="sprmCRsidProp" name="sprmCRsidProp">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6815</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCRsidProp</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>paragraph</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="kind"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCRsidProp-->
+ <!--SPRM sprmCRgLid0-->
+ <UML:Class xmi.id="sprmCRgLid0" name="sprmCRgLid0">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4873</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmCRgLid0</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>character</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="kind"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmCRgLid0-->
+ <!--SPRM sprmTCellPaddingDefault-->
+ <UML:Class xmi.id="sprmTCellPaddingDefault" name="sprmTCellPaddingDefault">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0xD634</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTCellPaddingDefault</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>table</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="kind"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:Classifier.feature>
+ <UML:Attribute name="itc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:itc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="grfbrc">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:grfbrc</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="ftsWidth">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x5</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:ftsWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U8"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ <UML:Classifier.feature>
+ <UML:Attribute name="wWidth">
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x6</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:wWidth</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType xmi.idref="U16"/>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </UML:Class>
+ <UML:Generalization isSpecification="false" xmi.id="sprmTCellPaddingDefault-Properties">
+ <UML:Generalization.child>
+ <UML:Class xmi.idref="sprmTCellPaddingDefault"/>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties"/>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ <!--SPRM sprmTCellPaddingDefault-->
+ <!--SPRM sprmTRsid-->
+ <UML:Class xmi.id="sprmTRsid" name="sprmTRsid">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x7479</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTRsid</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>table</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="kind"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTRsid-->
+ <!--SPRM sprmTFAutofit-->
+ <UML:Class xmi.id="sprmTFAutofit" name="sprmTFAutofit">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8sprm"/>
+ </UML:ModelElement.stereotype>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>0x3615</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmcode"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:sprmTFAutofit</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="sprmid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>table</UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="kind"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </UML:Class>
+ <!--SPRM sprmTFAutofit-->
+ <!--SPRMS-->
+ <!--DFFS-->
+ <!--DFF UDefProp-->
<UML:Class xmi.id="UDefProp" name="UDefProp">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffrecord"/>
@@ -39692,8 +43354,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--DFF UDefProp-->
-<!--DFF FSPGR-->
+ <!--DFF UDefProp-->
+ <!--DFF FSPGR-->
<UML:Class xmi.id="FSPGR" name="FSPGR">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffrecord"/>
@@ -39773,8 +43435,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--DFF FSPGR-->
-<!--DFF OPT-->
+ <!--DFF FSPGR-->
+ <!--DFF OPT-->
<UML:Class xmi.id="OPT" name="OPT">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffrecord"/>
@@ -39841,8 +43503,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--DFF OPT-->
-<!--DFF FSP-->
+ <!--DFF OPT-->
+ <!--DFF FSP-->
<UML:Class xmi.id="FSP" name="FSP">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffrecord"/>
@@ -40756,8 +44418,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--DFF FSP-->
-<!--DFF DGG-->
+ <!--DFF FSP-->
+ <!--DFF DGG-->
<UML:Class xmi.id="DGG" name="DGG">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffrecord"/>
@@ -40859,8 +44521,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--DFF DGG-->
-<!--DFF BSE-->
+ <!--DFF DGG-->
+ <!--DFF BSE-->
<UML:Class xmi.id="BSE" name="BSE">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffrecord"/>
@@ -40955,7 +44617,7 @@
</UML:Classifier.feature>
<UML:Classifier.feature><UML:Operation name="blip"><UML:ModelElement.taggedValue><UML:TaggedValue><UML:TaggedValue.dataValue>rtf:blip</UML:TaggedValue.dataValue><UML:TaggedValue.type><UML:TagDefinition xmi.idref="opid"/></UML:TaggedValue.type></UML:TaggedValue></UML:ModelElement.taggedValue><UML:BehavioralFeature.parameter><UML:Parameter kind="return" name="return"><UML:Parameter.type><UML:Class xmi.idref="DffRecord"/></UML:Parameter.type></UML:Parameter></UML:BehavioralFeature.parameter><UML:ModelElement.stereotype><UML:Stereotype xmi.idref="attribute"/></UML:ModelElement.stereotype></UML:Operation>
g </UML:Classifier.feature>
-<!--
+ <!--
<UML:Classifier.feature>
<UML:Operation name="binary">
<UML:ModelElement.taggedValue>
@@ -40988,8 +44650,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--DFF BSE-->
-<!--DFF BlipPng-->
+ <!--DFF BSE-->
+ <!--DFF BlipPng-->
<UML:Class xmi.id="BlipPng" name="BlipPng">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffrecord"/>
@@ -41048,8 +44710,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--DFF BlipPng-->
-<!--DFF BlipDib-->
+ <!--DFF BlipPng-->
+ <!--DFF BlipDib-->
<UML:Class xmi.id="BlipDib" name="BlipDib">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffrecord"/>
@@ -41108,8 +44770,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--DFF BlipDib-->
-<!--DFF SpContainer-->
+ <!--DFF BlipDib-->
+ <!--DFF SpContainer-->
<UML:Class xmi.id="SpContainer" name="SpContainer">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffrecord"/>
@@ -41175,8 +44837,8 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--DFF SpContainer-->
-<!--DFF Dg-->
+ <!--DFF SpContainer-->
+ <!--DFF Dg-->
<UML:Class xmi.id="Dg" name="Dg">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffrecord"/>
@@ -41256,10 +44918,10 @@
<UML:Class xmi.idref="Properties"/>
</UML:Generalization.parent>
</UML:Generalization>
-<!--DFF Dg-->
-<!--DFFS-->
-<!--DFFOPT-->
-<!--DFFOPT rotation-->
+ <!--DFF Dg-->
+ <!--DFFS-->
+ <!--DFFOPT-->
+ <!--DFFOPT rotation-->
<UML:Class xmi.id="rotation" name="rotation">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41306,8 +44968,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT rotation-->
-<!--DFFOPT fLockRotation-->
+ <!--DFFOPT rotation-->
+ <!--DFFOPT fLockRotation-->
<UML:Class xmi.id="fLockRotation" name="fLockRotation">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41361,8 +45023,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fLockRotation-->
-<!--DFFOPT fLockAspectRatio-->
+ <!--DFFOPT fLockRotation-->
+ <!--DFFOPT fLockAspectRatio-->
<UML:Class xmi.id="fLockAspectRatio" name="fLockAspectRatio">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41417,8 +45079,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fLockAspectRatio-->
-<!--DFFOPT fLockPosition-->
+ <!--DFFOPT fLockAspectRatio-->
+ <!--DFFOPT fLockPosition-->
<UML:Class xmi.id="fLockPosition" name="fLockPosition">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41473,8 +45135,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fLockPosition-->
-<!--DFFOPT fLockAgainstSelect-->
+ <!--DFFOPT fLockPosition-->
+ <!--DFFOPT fLockAgainstSelect-->
<UML:Class xmi.id="fLockAgainstSelect" name="fLockAgainstSelect">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41529,8 +45191,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fLockAgainstSelect-->
-<!--DFFOPT fLockCropping-->
+ <!--DFFOPT fLockAgainstSelect-->
+ <!--DFFOPT fLockCropping-->
<UML:Class xmi.id="fLockCropping" name="fLockCropping">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41585,8 +45247,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fLockCropping-->
-<!--DFFOPT fLockVertices-->
+ <!--DFFOPT fLockCropping-->
+ <!--DFFOPT fLockVertices-->
<UML:Class xmi.id="fLockVertices" name="fLockVertices">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41641,8 +45303,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fLockVertices-->
-<!--DFFOPT fLockText-->
+ <!--DFFOPT fLockVertices-->
+ <!--DFFOPT fLockText-->
<UML:Class xmi.id="fLockText" name="fLockText">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41697,8 +45359,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fLockText-->
-<!--DFFOPT fLockAdjustHandles-->
+ <!--DFFOPT fLockText-->
+ <!--DFFOPT fLockAdjustHandles-->
<UML:Class xmi.id="fLockAdjustHandles" name="fLockAdjustHandles">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41752,8 +45414,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fLockAdjustHandles-->
-<!--DFFOPT fLockAgainstGrouping-->
+ <!--DFFOPT fLockAdjustHandles-->
+ <!--DFFOPT fLockAgainstGrouping-->
<UML:Class xmi.id="fLockAgainstGrouping" name="fLockAgainstGrouping">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41808,8 +45470,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fLockAgainstGrouping-->
-<!--DFFOPT lTxid-->
+ <!--DFFOPT fLockAgainstGrouping-->
+ <!--DFFOPT lTxid-->
<UML:Class xmi.id="lTxid" name="lTxid">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41856,8 +45518,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lTxid-->
-<!--DFFOPT dxTextLeft-->
+ <!--DFFOPT lTxid-->
+ <!--DFFOPT dxTextLeft-->
<UML:Class xmi.id="dxTextLeft" name="dxTextLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41904,8 +45566,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT dxTextLeft-->
-<!--DFFOPT dyTextTop-->
+ <!--DFFOPT dxTextLeft-->
+ <!--DFFOPT dyTextTop-->
<UML:Class xmi.id="dyTextTop" name="dyTextTop">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41951,8 +45613,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT dyTextTop-->
-<!--DFFOPT dxTextRight-->
+ <!--DFFOPT dyTextTop-->
+ <!--DFFOPT dxTextRight-->
<UML:Class xmi.id="dxTextRight" name="dxTextRight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -41998,8 +45660,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT dxTextRight-->
-<!--DFFOPT dyTextBottom-->
+ <!--DFFOPT dxTextRight-->
+ <!--DFFOPT dyTextBottom-->
<UML:Class xmi.id="dyTextBottom" name="dyTextBottom">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42045,8 +45707,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT dyTextBottom-->
-<!--DFFOPT WrapText-->
+ <!--DFFOPT dyTextBottom-->
+ <!--DFFOPT WrapText-->
<UML:Class xmi.id="WrapText" name="WrapText">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42093,8 +45755,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT WrapText-->
-<!--DFFOPT scaleText-->
+ <!--DFFOPT WrapText-->
+ <!--DFFOPT scaleText-->
<UML:Class xmi.id="scaleText" name="scaleText">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42141,8 +45803,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT scaleText-->
-<!--DFFOPT anchorText-->
+ <!--DFFOPT scaleText-->
+ <!--DFFOPT anchorText-->
<UML:Class xmi.id="anchorText" name="anchorText">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42189,8 +45851,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT anchorText-->
-<!--DFFOPT txflTextFlow-->
+ <!--DFFOPT anchorText-->
+ <!--DFFOPT txflTextFlow-->
<UML:Class xmi.id="txflTextFlow" name="txflTextFlow">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42236,8 +45898,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT txflTextFlow-->
-<!--DFFOPT cdirFont-->
+ <!--DFFOPT txflTextFlow-->
+ <!--DFFOPT cdirFont-->
<UML:Class xmi.id="cdirFont" name="cdirFont">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42283,8 +45945,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT cdirFont-->
-<!--DFFOPT hspNext-->
+ <!--DFFOPT cdirFont-->
+ <!--DFFOPT hspNext-->
<UML:Class xmi.id="hspNext" name="hspNext">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42331,8 +45993,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT hspNext-->
-<!--DFFOPT txdir-->
+ <!--DFFOPT hspNext-->
+ <!--DFFOPT txdir-->
<UML:Class xmi.id="txdir" name="txdir">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42379,8 +46041,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT txdir-->
-<!--DFFOPT fSelectText-->
+ <!--DFFOPT txdir-->
+ <!--DFFOPT fSelectText-->
<UML:Class xmi.id="fSelectText" name="fSelectText">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42435,8 +46097,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fSelectText-->
-<!--DFFOPT fAutoTextMargin-->
+ <!--DFFOPT fSelectText-->
+ <!--DFFOPT fAutoTextMargin-->
<UML:Class xmi.id="fAutoTextMargin" name="fAutoTextMargin">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42491,8 +46153,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fAutoTextMargin-->
-<!--DFFOPT fRotateText-->
+ <!--DFFOPT fAutoTextMargin-->
+ <!--DFFOPT fRotateText-->
<UML:Class xmi.id="fRotateText" name="fRotateText">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42547,8 +46209,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fRotateText-->
-<!--DFFOPT fFitShapeToText-->
+ <!--DFFOPT fRotateText-->
+ <!--DFFOPT fFitShapeToText-->
<UML:Class xmi.id="fFitShapeToText" name="fFitShapeToText">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42603,8 +46265,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fFitShapeToText-->
-<!--DFFOPT fFitTextToShape-->
+ <!--DFFOPT fFitShapeToText-->
+ <!--DFFOPT fFitTextToShape-->
<UML:Class xmi.id="fFitTextToShape" name="fFitTextToShape">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42659,8 +46321,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fFitTextToShape-->
-<!--DFFOPT gtextUNICODE-->
+ <!--DFFOPT fFitTextToShape-->
+ <!--DFFOPT gtextUNICODE-->
<UML:Class xmi.id="gtextUNICODE" name="gtextUNICODE">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42707,8 +46369,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextUNICODE-->
-<!--DFFOPT gtextRTF-->
+ <!--DFFOPT gtextUNICODE-->
+ <!--DFFOPT gtextRTF-->
<UML:Class xmi.id="gtextRTF" name="gtextRTF">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42755,8 +46417,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextRTF-->
-<!--DFFOPT gtextAlign-->
+ <!--DFFOPT gtextRTF-->
+ <!--DFFOPT gtextAlign-->
<UML:Class xmi.id="gtextAlign" name="gtextAlign">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42803,8 +46465,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextAlign-->
-<!--DFFOPT gtextSize-->
+ <!--DFFOPT gtextAlign-->
+ <!--DFFOPT gtextSize-->
<UML:Class xmi.id="gtextSize" name="gtextSize">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42851,8 +46513,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextSize-->
-<!--DFFOPT gtextSpacing-->
+ <!--DFFOPT gtextSize-->
+ <!--DFFOPT gtextSpacing-->
<UML:Class xmi.id="gtextSpacing" name="gtextSpacing">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42899,8 +46561,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextSpacing-->
-<!--DFFOPT gtextFont-->
+ <!--DFFOPT gtextSpacing-->
+ <!--DFFOPT gtextFont-->
<UML:Class xmi.id="gtextFont" name="gtextFont">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -42947,8 +46609,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFont-->
-<!--DFFOPT gtextFReverseRows-->
+ <!--DFFOPT gtextFont-->
+ <!--DFFOPT gtextFReverseRows-->
<UML:Class xmi.id="gtextFReverseRows" name="gtextFReverseRows">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43003,8 +46665,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFReverseRows-->
-<!--DFFOPT fGtext-->
+ <!--DFFOPT gtextFReverseRows-->
+ <!--DFFOPT fGtext-->
<UML:Class xmi.id="fGtext" name="fGtext">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43059,8 +46721,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fGtext-->
-<!--DFFOPT gtextFVertical-->
+ <!--DFFOPT fGtext-->
+ <!--DFFOPT gtextFVertical-->
<UML:Class xmi.id="gtextFVertical" name="gtextFVertical">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43115,8 +46777,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFVertical-->
-<!--DFFOPT gtextFKern-->
+ <!--DFFOPT gtextFVertical-->
+ <!--DFFOPT gtextFKern-->
<UML:Class xmi.id="gtextFKern" name="gtextFKern">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43171,8 +46833,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFKern-->
-<!--DFFOPT gtextFTight-->
+ <!--DFFOPT gtextFKern-->
+ <!--DFFOPT gtextFTight-->
<UML:Class xmi.id="gtextFTight" name="gtextFTight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43227,8 +46889,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFTight-->
-<!--DFFOPT gtextFStretch-->
+ <!--DFFOPT gtextFTight-->
+ <!--DFFOPT gtextFStretch-->
<UML:Class xmi.id="gtextFStretch" name="gtextFStretch">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43283,8 +46945,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFStretch-->
-<!--DFFOPT gtextFShrinkFit-->
+ <!--DFFOPT gtextFStretch-->
+ <!--DFFOPT gtextFShrinkFit-->
<UML:Class xmi.id="gtextFShrinkFit" name="gtextFShrinkFit">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43339,8 +47001,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFShrinkFit-->
-<!--DFFOPT gtextFBestFit-->
+ <!--DFFOPT gtextFShrinkFit-->
+ <!--DFFOPT gtextFBestFit-->
<UML:Class xmi.id="gtextFBestFit" name="gtextFBestFit">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43395,8 +47057,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFBestFit-->
-<!--DFFOPT gtextFNormalize-->
+ <!--DFFOPT gtextFBestFit-->
+ <!--DFFOPT gtextFNormalize-->
<UML:Class xmi.id="gtextFNormalize" name="gtextFNormalize">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43451,8 +47113,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFNormalize-->
-<!--DFFOPT gtextFDxMeasure-->
+ <!--DFFOPT gtextFNormalize-->
+ <!--DFFOPT gtextFDxMeasure-->
<UML:Class xmi.id="gtextFDxMeasure" name="gtextFDxMeasure">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43507,8 +47169,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFDxMeasure-->
-<!--DFFOPT gtextFBold-->
+ <!--DFFOPT gtextFDxMeasure-->
+ <!--DFFOPT gtextFBold-->
<UML:Class xmi.id="gtextFBold" name="gtextFBold">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43562,8 +47224,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFBold-->
-<!--DFFOPT gtextFItalic-->
+ <!--DFFOPT gtextFBold-->
+ <!--DFFOPT gtextFItalic-->
<UML:Class xmi.id="gtextFItalic" name="gtextFItalic">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43617,8 +47279,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFItalic-->
-<!--DFFOPT gtextFUnderline-->
+ <!--DFFOPT gtextFItalic-->
+ <!--DFFOPT gtextFUnderline-->
<UML:Class xmi.id="gtextFUnderline" name="gtextFUnderline">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43673,8 +47335,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFUnderline-->
-<!--DFFOPT gtextFShadow-->
+ <!--DFFOPT gtextFUnderline-->
+ <!--DFFOPT gtextFShadow-->
<UML:Class xmi.id="gtextFShadow" name="gtextFShadow">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43728,8 +47390,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFShadow-->
-<!--DFFOPT gtextFSmallcaps-->
+ <!--DFFOPT gtextFShadow-->
+ <!--DFFOPT gtextFSmallcaps-->
<UML:Class xmi.id="gtextFSmallcaps" name="gtextFSmallcaps">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43784,8 +47446,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFSmallcaps-->
-<!--DFFOPT gtextFStrikethrough-->
+ <!--DFFOPT gtextFSmallcaps-->
+ <!--DFFOPT gtextFStrikethrough-->
<UML:Class xmi.id="gtextFStrikethrough" name="gtextFStrikethrough">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43840,8 +47502,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT gtextFStrikethrough-->
-<!--DFFOPT cropFromTop-->
+ <!--DFFOPT gtextFStrikethrough-->
+ <!--DFFOPT cropFromTop-->
<UML:Class xmi.id="cropFromTop" name="cropFromTop">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43889,8 +47551,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT cropFromTop-->
-<!--DFFOPT cropFromBottom-->
+ <!--DFFOPT cropFromTop-->
+ <!--DFFOPT cropFromBottom-->
<UML:Class xmi.id="cropFromBottom" name="cropFromBottom">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43936,8 +47598,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT cropFromBottom-->
-<!--DFFOPT cropFromLeft-->
+ <!--DFFOPT cropFromBottom-->
+ <!--DFFOPT cropFromLeft-->
<UML:Class xmi.id="cropFromLeft" name="cropFromLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -43983,8 +47645,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT cropFromLeft-->
-<!--DFFOPT cropFromRight-->
+ <!--DFFOPT cropFromLeft-->
+ <!--DFFOPT cropFromRight-->
<UML:Class xmi.id="cropFromRight" name="cropFromRight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44030,8 +47692,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT cropFromRight-->
-<!--DFFOPT pib-->
+ <!--DFFOPT cropFromRight-->
+ <!--DFFOPT pib-->
<UML:Class xmi.id="pib" name="pib">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44078,8 +47740,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pib-->
-<!--DFFOPT pibName-->
+ <!--DFFOPT pib-->
+ <!--DFFOPT pibName-->
<UML:Class xmi.id="pibName" name="pibName">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44126,8 +47788,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pibName-->
-<!--DFFOPT pibFlags-->
+ <!--DFFOPT pibName-->
+ <!--DFFOPT pibFlags-->
<UML:Class xmi.id="pibFlags" name="pibFlags">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44174,8 +47836,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pibFlags-->
-<!--DFFOPT pictureTransparent-->
+ <!--DFFOPT pibFlags-->
+ <!--DFFOPT pictureTransparent-->
<UML:Class xmi.id="pictureTransparent" name="pictureTransparent">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44222,8 +47884,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pictureTransparent-->
-<!--DFFOPT pictureContrast-->
+ <!--DFFOPT pictureTransparent-->
+ <!--DFFOPT pictureContrast-->
<UML:Class xmi.id="pictureContrast" name="pictureContrast">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44270,8 +47932,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pictureContrast-->
-<!--DFFOPT pictureBrightness-->
+ <!--DFFOPT pictureContrast-->
+ <!--DFFOPT pictureBrightness-->
<UML:Class xmi.id="pictureBrightness" name="pictureBrightness">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44318,8 +47980,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pictureBrightness-->
-<!--DFFOPT pictureGamma-->
+ <!--DFFOPT pictureBrightness-->
+ <!--DFFOPT pictureGamma-->
<UML:Class xmi.id="pictureGamma" name="pictureGamma">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44366,8 +48028,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pictureGamma-->
-<!--DFFOPT pictureId-->
+ <!--DFFOPT pictureGamma-->
+ <!--DFFOPT pictureId-->
<UML:Class xmi.id="pictureId" name="pictureId">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44414,8 +48076,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pictureId-->
-<!--DFFOPT pictureDblCrMod-->
+ <!--DFFOPT pictureId-->
+ <!--DFFOPT pictureDblCrMod-->
<UML:Class xmi.id="pictureDblCrMod" name="pictureDblCrMod">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44462,8 +48124,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pictureDblCrMod-->
-<!--DFFOPT pictureFillCrMod-->
+ <!--DFFOPT pictureDblCrMod-->
+ <!--DFFOPT pictureFillCrMod-->
<UML:Class xmi.id="pictureFillCrMod" name="pictureFillCrMod">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44509,8 +48171,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pictureFillCrMod-->
-<!--DFFOPT pictureLineCrMod-->
+ <!--DFFOPT pictureFillCrMod-->
+ <!--DFFOPT pictureLineCrMod-->
<UML:Class xmi.id="pictureLineCrMod" name="pictureLineCrMod">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44556,8 +48218,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pictureLineCrMod-->
-<!--DFFOPT pibPrint-->
+ <!--DFFOPT pictureLineCrMod-->
+ <!--DFFOPT pibPrint-->
<UML:Class xmi.id="pibPrint" name="pibPrint">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44604,8 +48266,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pibPrint-->
-<!--DFFOPT pibPrintName-->
+ <!--DFFOPT pibPrint-->
+ <!--DFFOPT pibPrintName-->
<UML:Class xmi.id="pibPrintName" name="pibPrintName">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44652,8 +48314,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pibPrintName-->
-<!--DFFOPT pibPrintFlags-->
+ <!--DFFOPT pibPrintName-->
+ <!--DFFOPT pibPrintFlags-->
<UML:Class xmi.id="pibPrintFlags" name="pibPrintFlags">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44700,8 +48362,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pibPrintFlags-->
-<!--DFFOPT fNoHitTestPicture-->
+ <!--DFFOPT pibPrintFlags-->
+ <!--DFFOPT fNoHitTestPicture-->
<UML:Class xmi.id="fNoHitTestPicture" name="fNoHitTestPicture">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44756,8 +48418,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fNoHitTestPicture-->
-<!--DFFOPT pictureGray-->
+ <!--DFFOPT fNoHitTestPicture-->
+ <!--DFFOPT pictureGray-->
<UML:Class xmi.id="pictureGray" name="pictureGray">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44812,8 +48474,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pictureGray-->
-<!--DFFOPT pictureBiLevel-->
+ <!--DFFOPT pictureGray-->
+ <!--DFFOPT pictureBiLevel-->
<UML:Class xmi.id="pictureBiLevel" name="pictureBiLevel">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44868,8 +48530,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pictureBiLevel-->
-<!--DFFOPT pictureActive-->
+ <!--DFFOPT pictureBiLevel-->
+ <!--DFFOPT pictureActive-->
<UML:Class xmi.id="pictureActive" name="pictureActive">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44924,8 +48586,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pictureActive-->
-<!--DFFOPT geoLeft-->
+ <!--DFFOPT pictureActive-->
+ <!--DFFOPT geoLeft-->
<UML:Class xmi.id="geoLeft" name="geoLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -44972,8 +48634,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT geoLeft-->
-<!--DFFOPT geoTop-->
+ <!--DFFOPT geoLeft-->
+ <!--DFFOPT geoTop-->
<UML:Class xmi.id="geoTop" name="geoTop">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45019,8 +48681,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT geoTop-->
-<!--DFFOPT geoRight-->
+ <!--DFFOPT geoTop-->
+ <!--DFFOPT geoRight-->
<UML:Class xmi.id="geoRight" name="geoRight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45066,8 +48728,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT geoRight-->
-<!--DFFOPT geoBottom-->
+ <!--DFFOPT geoRight-->
+ <!--DFFOPT geoBottom-->
<UML:Class xmi.id="geoBottom" name="geoBottom">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45113,8 +48775,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT geoBottom-->
-<!--DFFOPT shapePath-->
+ <!--DFFOPT geoBottom-->
+ <!--DFFOPT shapePath-->
<UML:Class xmi.id="shapePath" name="shapePath">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45160,8 +48822,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shapePath-->
-<!--DFFOPT pVertices-->
+ <!--DFFOPT shapePath-->
+ <!--DFFOPT pVertices-->
<UML:Class xmi.id="pVertices" name="pVertices">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45208,8 +48870,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pVertices-->
-<!--DFFOPT pSegmentInfo-->
+ <!--DFFOPT pVertices-->
+ <!--DFFOPT pSegmentInfo-->
<UML:Class xmi.id="pSegmentInfo" name="pSegmentInfo">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45255,8 +48917,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pSegmentInfo-->
-<!--DFFOPT adjustValue-->
+ <!--DFFOPT pSegmentInfo-->
+ <!--DFFOPT adjustValue-->
<UML:Class xmi.id="adjustValue" name="adjustValue">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45305,8 +48967,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT adjustValue-->
-<!--DFFOPT adjust2Value-->
+ <!--DFFOPT adjustValue-->
+ <!--DFFOPT adjust2Value-->
<UML:Class xmi.id="adjust2Value" name="adjust2Value">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45352,8 +49014,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT adjust2Value-->
-<!--DFFOPT adjust3Value-->
+ <!--DFFOPT adjust2Value-->
+ <!--DFFOPT adjust3Value-->
<UML:Class xmi.id="adjust3Value" name="adjust3Value">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45399,8 +49061,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT adjust3Value-->
-<!--DFFOPT adjust4Value-->
+ <!--DFFOPT adjust3Value-->
+ <!--DFFOPT adjust4Value-->
<UML:Class xmi.id="adjust4Value" name="adjust4Value">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45446,8 +49108,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT adjust4Value-->
-<!--DFFOPT adjust5Value-->
+ <!--DFFOPT adjust4Value-->
+ <!--DFFOPT adjust5Value-->
<UML:Class xmi.id="adjust5Value" name="adjust5Value">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45493,8 +49155,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT adjust5Value-->
-<!--DFFOPT adjust6Value-->
+ <!--DFFOPT adjust5Value-->
+ <!--DFFOPT adjust6Value-->
<UML:Class xmi.id="adjust6Value" name="adjust6Value">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45540,8 +49202,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT adjust6Value-->
-<!--DFFOPT adjust7Value-->
+ <!--DFFOPT adjust6Value-->
+ <!--DFFOPT adjust7Value-->
<UML:Class xmi.id="adjust7Value" name="adjust7Value">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45587,8 +49249,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT adjust7Value-->
-<!--DFFOPT adjust8Value-->
+ <!--DFFOPT adjust7Value-->
+ <!--DFFOPT adjust8Value-->
<UML:Class xmi.id="adjust8Value" name="adjust8Value">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45634,8 +49296,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT adjust8Value-->
-<!--DFFOPT adjust9Value-->
+ <!--DFFOPT adjust8Value-->
+ <!--DFFOPT adjust9Value-->
<UML:Class xmi.id="adjust9Value" name="adjust9Value">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45681,8 +49343,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT adjust9Value-->
-<!--DFFOPT adjust10Value-->
+ <!--DFFOPT adjust9Value-->
+ <!--DFFOPT adjust10Value-->
<UML:Class xmi.id="adjust10Value" name="adjust10Value">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45728,8 +49390,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT adjust10Value-->
-<!--DFFOPT fShadowOK-->
+ <!--DFFOPT adjust10Value-->
+ <!--DFFOPT fShadowOK-->
<UML:Class xmi.id="fShadowOK" name="fShadowOK">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45784,8 +49446,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fShadowOK-->
-<!--DFFOPT f3DOK-->
+ <!--DFFOPT fShadowOK-->
+ <!--DFFOPT f3DOK-->
<UML:Class xmi.id="f3DOK" name="f3DOK">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45839,8 +49501,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT f3DOK-->
-<!--DFFOPT fLineOK-->
+ <!--DFFOPT f3DOK-->
+ <!--DFFOPT fLineOK-->
<UML:Class xmi.id="fLineOK" name="fLineOK">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45895,8 +49557,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fLineOK-->
-<!--DFFOPT fGtextOK-->
+ <!--DFFOPT fLineOK-->
+ <!--DFFOPT fGtextOK-->
<UML:Class xmi.id="fGtextOK" name="fGtextOK">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -45951,8 +49613,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fGtextOK-->
-<!--DFFOPT fFillShadeShapeOK-->
+ <!--DFFOPT fGtextOK-->
+ <!--DFFOPT fFillShadeShapeOK-->
<UML:Class xmi.id="fFillShadeShapeOK" name="fFillShadeShapeOK">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46006,8 +49668,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fFillShadeShapeOK-->
-<!--DFFOPT fFillOK-->
+ <!--DFFOPT fFillShadeShapeOK-->
+ <!--DFFOPT fFillOK-->
<UML:Class xmi.id="fFillOK" name="fFillOK">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46062,8 +49724,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fFillOK-->
-<!--DFFOPT fillType-->
+ <!--DFFOPT fFillOK-->
+ <!--DFFOPT fillType-->
<UML:Class xmi.id="fillType" name="fillType">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46110,8 +49772,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillType-->
-<!--DFFOPT fillColor-->
+ <!--DFFOPT fillType-->
+ <!--DFFOPT fillColor-->
<UML:Class xmi.id="fillColor" name="fillColor">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46158,8 +49820,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillColor-->
-<!--DFFOPT fillOpacity-->
+ <!--DFFOPT fillColor-->
+ <!--DFFOPT fillOpacity-->
<UML:Class xmi.id="fillOpacity" name="fillOpacity">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46206,8 +49868,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillOpacity-->
-<!--DFFOPT fillBackColor-->
+ <!--DFFOPT fillOpacity-->
+ <!--DFFOPT fillBackColor-->
<UML:Class xmi.id="fillBackColor" name="fillBackColor">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46254,8 +49916,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillBackColor-->
-<!--DFFOPT fillBackOpacity-->
+ <!--DFFOPT fillBackColor-->
+ <!--DFFOPT fillBackOpacity-->
<UML:Class xmi.id="fillBackOpacity" name="fillBackOpacity">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46302,8 +49964,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillBackOpacity-->
-<!--DFFOPT fillCrMod-->
+ <!--DFFOPT fillBackOpacity-->
+ <!--DFFOPT fillCrMod-->
<UML:Class xmi.id="fillCrMod" name="fillCrMod">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46350,8 +50012,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillCrMod-->
-<!--DFFOPT fillBlip-->
+ <!--DFFOPT fillCrMod-->
+ <!--DFFOPT fillBlip-->
<UML:Class xmi.id="fillBlip" name="fillBlip">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46397,8 +50059,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillBlip-->
-<!--DFFOPT fillBlipName-->
+ <!--DFFOPT fillBlip-->
+ <!--DFFOPT fillBlipName-->
<UML:Class xmi.id="fillBlipName" name="fillBlipName">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46445,8 +50107,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillBlipName-->
-<!--DFFOPT fillBlipFlags-->
+ <!--DFFOPT fillBlipName-->
+ <!--DFFOPT fillBlipFlags-->
<UML:Class xmi.id="fillBlipFlags" name="fillBlipFlags">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46493,8 +50155,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillBlipFlags-->
-<!--DFFOPT fillWidth-->
+ <!--DFFOPT fillBlipFlags-->
+ <!--DFFOPT fillWidth-->
<UML:Class xmi.id="fillWidth" name="fillWidth">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46541,8 +50203,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillWidth-->
-<!--DFFOPT fillHeight-->
+ <!--DFFOPT fillWidth-->
+ <!--DFFOPT fillHeight-->
<UML:Class xmi.id="fillHeight" name="fillHeight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46588,8 +50250,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillHeight-->
-<!--DFFOPT fillAngle-->
+ <!--DFFOPT fillHeight-->
+ <!--DFFOPT fillAngle-->
<UML:Class xmi.id="fillAngle" name="fillAngle">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46636,8 +50298,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillAngle-->
-<!--DFFOPT fillFocus-->
+ <!--DFFOPT fillAngle-->
+ <!--DFFOPT fillFocus-->
<UML:Class xmi.id="fillFocus" name="fillFocus">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46684,8 +50346,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillFocus-->
-<!--DFFOPT fillToLeft-->
+ <!--DFFOPT fillFocus-->
+ <!--DFFOPT fillToLeft-->
<UML:Class xmi.id="fillToLeft" name="fillToLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46732,8 +50394,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillToLeft-->
-<!--DFFOPT fillToTop-->
+ <!--DFFOPT fillToLeft-->
+ <!--DFFOPT fillToTop-->
<UML:Class xmi.id="fillToTop" name="fillToTop">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46780,8 +50442,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillToTop-->
-<!--DFFOPT fillToRight-->
+ <!--DFFOPT fillToTop-->
+ <!--DFFOPT fillToRight-->
<UML:Class xmi.id="fillToRight" name="fillToRight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46828,8 +50490,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillToRight-->
-<!--DFFOPT fillToBottom-->
+ <!--DFFOPT fillToRight-->
+ <!--DFFOPT fillToBottom-->
<UML:Class xmi.id="fillToBottom" name="fillToBottom">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46876,8 +50538,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillToBottom-->
-<!--DFFOPT fillRectLeft-->
+ <!--DFFOPT fillToBottom-->
+ <!--DFFOPT fillRectLeft-->
<UML:Class xmi.id="fillRectLeft" name="fillRectLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46925,8 +50587,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillRectLeft-->
-<!--DFFOPT fillRectTop-->
+ <!--DFFOPT fillRectLeft-->
+ <!--DFFOPT fillRectTop-->
<UML:Class xmi.id="fillRectTop" name="fillRectTop">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -46972,8 +50634,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillRectTop-->
-<!--DFFOPT fillRectRight-->
+ <!--DFFOPT fillRectTop-->
+ <!--DFFOPT fillRectRight-->
<UML:Class xmi.id="fillRectRight" name="fillRectRight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47019,8 +50681,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillRectRight-->
-<!--DFFOPT fillRectBottom-->
+ <!--DFFOPT fillRectRight-->
+ <!--DFFOPT fillRectBottom-->
<UML:Class xmi.id="fillRectBottom" name="fillRectBottom">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47066,8 +50728,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillRectBottom-->
-<!--DFFOPT fillDztype-->
+ <!--DFFOPT fillRectBottom-->
+ <!--DFFOPT fillDztype-->
<UML:Class xmi.id="fillDztype" name="fillDztype">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47113,8 +50775,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillDztype-->
-<!--DFFOPT fillShadePreset-->
+ <!--DFFOPT fillDztype-->
+ <!--DFFOPT fillShadePreset-->
<UML:Class xmi.id="fillShadePreset" name="fillShadePreset">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47161,8 +50823,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillShadePreset-->
-<!--DFFOPT fillShadeColors-->
+ <!--DFFOPT fillShadePreset-->
+ <!--DFFOPT fillShadeColors-->
<UML:Class xmi.id="fillShadeColors" name="fillShadeColors">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47209,8 +50871,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillShadeColors-->
-<!--DFFOPT fillOriginX-->
+ <!--DFFOPT fillShadeColors-->
+ <!--DFFOPT fillOriginX-->
<UML:Class xmi.id="fillOriginX" name="fillOriginX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47256,8 +50918,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillOriginX-->
-<!--DFFOPT fillOriginY-->
+ <!--DFFOPT fillOriginX-->
+ <!--DFFOPT fillOriginY-->
<UML:Class xmi.id="fillOriginY" name="fillOriginY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47303,8 +50965,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillOriginY-->
-<!--DFFOPT fillShapeOriginX-->
+ <!--DFFOPT fillOriginY-->
+ <!--DFFOPT fillShapeOriginX-->
<UML:Class xmi.id="fillShapeOriginX" name="fillShapeOriginX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47350,8 +51012,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillShapeOriginX-->
-<!--DFFOPT fillShapeOriginY-->
+ <!--DFFOPT fillShapeOriginX-->
+ <!--DFFOPT fillShapeOriginY-->
<UML:Class xmi.id="fillShapeOriginY" name="fillShapeOriginY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47397,8 +51059,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillShapeOriginY-->
-<!--DFFOPT fillShadeType-->
+ <!--DFFOPT fillShapeOriginY-->
+ <!--DFFOPT fillShadeType-->
<UML:Class xmi.id="fillShadeType" name="fillShadeType">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47445,8 +51107,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillShadeType-->
-<!--DFFOPT fFilled-->
+ <!--DFFOPT fillShadeType-->
+ <!--DFFOPT fFilled-->
<UML:Class xmi.id="fFilled" name="fFilled">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47501,8 +51163,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fFilled-->
-<!--DFFOPT fHitTestFill-->
+ <!--DFFOPT fFilled-->
+ <!--DFFOPT fHitTestFill-->
<UML:Class xmi.id="fHitTestFill" name="fHitTestFill">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47557,8 +51219,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fHitTestFill-->
-<!--DFFOPT fillShape-->
+ <!--DFFOPT fHitTestFill-->
+ <!--DFFOPT fillShape-->
<UML:Class xmi.id="fillShape" name="fillShape">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47613,8 +51275,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillShape-->
-<!--DFFOPT fillUseRect-->
+ <!--DFFOPT fillShape-->
+ <!--DFFOPT fillUseRect-->
<UML:Class xmi.id="fillUseRect" name="fillUseRect">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47669,8 +51331,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fillUseRect-->
-<!--DFFOPT fNoFillHitTest-->
+ <!--DFFOPT fillUseRect-->
+ <!--DFFOPT fNoFillHitTest-->
<UML:Class xmi.id="fNoFillHitTest" name="fNoFillHitTest">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47725,8 +51387,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fNoFillHitTest-->
-<!--DFFOPT lineColor-->
+ <!--DFFOPT fNoFillHitTest-->
+ <!--DFFOPT lineColor-->
<UML:Class xmi.id="lineColor" name="lineColor">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47772,8 +51434,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineColor-->
-<!--DFFOPT lineOpacity-->
+ <!--DFFOPT lineColor-->
+ <!--DFFOPT lineOpacity-->
<UML:Class xmi.id="lineOpacity" name="lineOpacity">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47820,8 +51482,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineOpacity-->
-<!--DFFOPT lineBackColor-->
+ <!--DFFOPT lineOpacity-->
+ <!--DFFOPT lineBackColor-->
<UML:Class xmi.id="lineBackColor" name="lineBackColor">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47868,8 +51530,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineBackColor-->
-<!--DFFOPT lineCrMod-->
+ <!--DFFOPT lineBackColor-->
+ <!--DFFOPT lineCrMod-->
<UML:Class xmi.id="lineCrMod" name="lineCrMod">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47916,8 +51578,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineCrMod-->
-<!--DFFOPT lineType-->
+ <!--DFFOPT lineCrMod-->
+ <!--DFFOPT lineType-->
<UML:Class xmi.id="lineType" name="lineType">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -47963,8 +51625,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineType-->
-<!--DFFOPT lineFillBlip-->
+ <!--DFFOPT lineType-->
+ <!--DFFOPT lineFillBlip-->
<UML:Class xmi.id="lineFillBlip" name="lineFillBlip">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48010,8 +51672,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineFillBlip-->
-<!--DFFOPT lineFillBlipName-->
+ <!--DFFOPT lineFillBlip-->
+ <!--DFFOPT lineFillBlipName-->
<UML:Class xmi.id="lineFillBlipName" name="lineFillBlipName">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48058,8 +51720,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineFillBlipName-->
-<!--DFFOPT lineFillBlipFlags-->
+ <!--DFFOPT lineFillBlipName-->
+ <!--DFFOPT lineFillBlipFlags-->
<UML:Class xmi.id="lineFillBlipFlags" name="lineFillBlipFlags">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48105,8 +51767,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineFillBlipFlags-->
-<!--DFFOPT lineFillWidth-->
+ <!--DFFOPT lineFillBlipFlags-->
+ <!--DFFOPT lineFillWidth-->
<UML:Class xmi.id="lineFillWidth" name="lineFillWidth">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48153,8 +51815,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineFillWidth-->
-<!--DFFOPT lineFillHeight-->
+ <!--DFFOPT lineFillWidth-->
+ <!--DFFOPT lineFillHeight-->
<UML:Class xmi.id="lineFillHeight" name="lineFillHeight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48200,8 +51862,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineFillHeight-->
-<!--DFFOPT lineFillDztype-->
+ <!--DFFOPT lineFillHeight-->
+ <!--DFFOPT lineFillDztype-->
<UML:Class xmi.id="lineFillDztype" name="lineFillDztype">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48248,8 +51910,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineFillDztype-->
-<!--DFFOPT lineWidth-->
+ <!--DFFOPT lineFillDztype-->
+ <!--DFFOPT lineWidth-->
<UML:Class xmi.id="lineWidth" name="lineWidth">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48296,8 +51958,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineWidth-->
-<!--DFFOPT lineMiterLimit-->
+ <!--DFFOPT lineWidth-->
+ <!--DFFOPT lineMiterLimit-->
<UML:Class xmi.id="lineMiterLimit" name="lineMiterLimit">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48344,8 +52006,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineMiterLimit-->
-<!--DFFOPT lineStyle-->
+ <!--DFFOPT lineMiterLimit-->
+ <!--DFFOPT lineStyle-->
<UML:Class xmi.id="lineStyle" name="lineStyle">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48392,8 +52054,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineStyle-->
-<!--DFFOPT lineDashing-->
+ <!--DFFOPT lineStyle-->
+ <!--DFFOPT lineDashing-->
<UML:Class xmi.id="lineDashing" name="lineDashing">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48440,8 +52102,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineDashing-->
-<!--DFFOPT lineDashStyle-->
+ <!--DFFOPT lineDashing-->
+ <!--DFFOPT lineDashStyle-->
<UML:Class xmi.id="lineDashStyle" name="lineDashStyle">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48488,8 +52150,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineDashStyle-->
-<!--DFFOPT lineStartArrowhead-->
+ <!--DFFOPT lineDashStyle-->
+ <!--DFFOPT lineStartArrowhead-->
<UML:Class xmi.id="lineStartArrowhead" name="lineStartArrowhead">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48536,8 +52198,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineStartArrowhead-->
-<!--DFFOPT lineEndArrowhead-->
+ <!--DFFOPT lineStartArrowhead-->
+ <!--DFFOPT lineEndArrowhead-->
<UML:Class xmi.id="lineEndArrowhead" name="lineEndArrowhead">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48583,8 +52245,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineEndArrowhead-->
-<!--DFFOPT lineStartArrowWidth-->
+ <!--DFFOPT lineEndArrowhead-->
+ <!--DFFOPT lineStartArrowWidth-->
<UML:Class xmi.id="lineStartArrowWidth" name="lineStartArrowWidth">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48631,8 +52293,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineStartArrowWidth-->
-<!--DFFOPT lineStartArrowLength-->
+ <!--DFFOPT lineStartArrowWidth-->
+ <!--DFFOPT lineStartArrowLength-->
<UML:Class xmi.id="lineStartArrowLength" name="lineStartArrowLength">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48678,8 +52340,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineStartArrowLength-->
-<!--DFFOPT lineEndArrowWidth-->
+ <!--DFFOPT lineStartArrowLength-->
+ <!--DFFOPT lineEndArrowWidth-->
<UML:Class xmi.id="lineEndArrowWidth" name="lineEndArrowWidth">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48726,8 +52388,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineEndArrowWidth-->
-<!--DFFOPT lineEndArrowLength-->
+ <!--DFFOPT lineEndArrowWidth-->
+ <!--DFFOPT lineEndArrowLength-->
<UML:Class xmi.id="lineEndArrowLength" name="lineEndArrowLength">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48773,8 +52435,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineEndArrowLength-->
-<!--DFFOPT lineJoinStyle-->
+ <!--DFFOPT lineEndArrowLength-->
+ <!--DFFOPT lineJoinStyle-->
<UML:Class xmi.id="lineJoinStyle" name="lineJoinStyle">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48821,8 +52483,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineJoinStyle-->
-<!--DFFOPT lineEndCapStyle-->
+ <!--DFFOPT lineJoinStyle-->
+ <!--DFFOPT lineEndCapStyle-->
<UML:Class xmi.id="lineEndCapStyle" name="lineEndCapStyle">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48869,8 +52531,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineEndCapStyle-->
-<!--DFFOPT fArrowheadsOK-->
+ <!--DFFOPT lineEndCapStyle-->
+ <!--DFFOPT fArrowheadsOK-->
<UML:Class xmi.id="fArrowheadsOK" name="fArrowheadsOK">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48925,8 +52587,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fArrowheadsOK-->
-<!--DFFOPT fLine-->
+ <!--DFFOPT fArrowheadsOK-->
+ <!--DFFOPT fLine-->
<UML:Class xmi.id="fLine" name="fLine">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -48980,8 +52642,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fLine-->
-<!--DFFOPT fHitTestLine-->
+ <!--DFFOPT fLine-->
+ <!--DFFOPT fHitTestLine-->
<UML:Class xmi.id="fHitTestLine" name="fHitTestLine">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49036,8 +52698,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fHitTestLine-->
-<!--DFFOPT lineFillShape-->
+ <!--DFFOPT fHitTestLine-->
+ <!--DFFOPT lineFillShape-->
<UML:Class xmi.id="lineFillShape" name="lineFillShape">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49092,8 +52754,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lineFillShape-->
-<!--DFFOPT fNoLineDrawDash-->
+ <!--DFFOPT lineFillShape-->
+ <!--DFFOPT fNoLineDrawDash-->
<UML:Class xmi.id="fNoLineDrawDash" name="fNoLineDrawDash">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49148,8 +52810,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fNoLineDrawDash-->
-<!--DFFOPT shadowType-->
+ <!--DFFOPT fNoLineDrawDash-->
+ <!--DFFOPT shadowType-->
<UML:Class xmi.id="shadowType" name="shadowType">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49196,8 +52858,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowType-->
-<!--DFFOPT shadowColor-->
+ <!--DFFOPT shadowType-->
+ <!--DFFOPT shadowColor-->
<UML:Class xmi.id="shadowColor" name="shadowColor">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49244,8 +52906,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowColor-->
-<!--DFFOPT shadowHighlight-->
+ <!--DFFOPT shadowColor-->
+ <!--DFFOPT shadowHighlight-->
<UML:Class xmi.id="shadowHighlight" name="shadowHighlight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49292,8 +52954,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowHighlight-->
-<!--DFFOPT shadowCrMod-->
+ <!--DFFOPT shadowHighlight-->
+ <!--DFFOPT shadowCrMod-->
<UML:Class xmi.id="shadowCrMod" name="shadowCrMod">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49340,8 +53002,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowCrMod-->
-<!--DFFOPT shadowOpacity-->
+ <!--DFFOPT shadowCrMod-->
+ <!--DFFOPT shadowOpacity-->
<UML:Class xmi.id="shadowOpacity" name="shadowOpacity">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49387,8 +53049,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowOpacity-->
-<!--DFFOPT shadowOffsetX-->
+ <!--DFFOPT shadowOpacity-->
+ <!--DFFOPT shadowOffsetX-->
<UML:Class xmi.id="shadowOffsetX" name="shadowOffsetX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49434,8 +53096,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowOffsetX-->
-<!--DFFOPT shadowOffsetY-->
+ <!--DFFOPT shadowOffsetX-->
+ <!--DFFOPT shadowOffsetY-->
<UML:Class xmi.id="shadowOffsetY" name="shadowOffsetY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49481,8 +53143,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowOffsetY-->
-<!--DFFOPT shadowSecondOffsetX-->
+ <!--DFFOPT shadowOffsetY-->
+ <!--DFFOPT shadowSecondOffsetX-->
<UML:Class xmi.id="shadowSecondOffsetX" name="shadowSecondOffsetX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49529,8 +53191,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowSecondOffsetX-->
-<!--DFFOPT shadowSecondOffsetY-->
+ <!--DFFOPT shadowSecondOffsetX-->
+ <!--DFFOPT shadowSecondOffsetY-->
<UML:Class xmi.id="shadowSecondOffsetY" name="shadowSecondOffsetY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49577,8 +53239,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowSecondOffsetY-->
-<!--DFFOPT shadowScaleXToX-->
+ <!--DFFOPT shadowSecondOffsetY-->
+ <!--DFFOPT shadowScaleXToX-->
<UML:Class xmi.id="shadowScaleXToX" name="shadowScaleXToX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49624,8 +53286,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowScaleXToX-->
-<!--DFFOPT shadowScaleYToX-->
+ <!--DFFOPT shadowScaleXToX-->
+ <!--DFFOPT shadowScaleYToX-->
<UML:Class xmi.id="shadowScaleYToX" name="shadowScaleYToX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49671,8 +53333,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowScaleYToX-->
-<!--DFFOPT shadowScaleXToY-->
+ <!--DFFOPT shadowScaleYToX-->
+ <!--DFFOPT shadowScaleXToY-->
<UML:Class xmi.id="shadowScaleXToY" name="shadowScaleXToY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49718,8 +53380,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowScaleXToY-->
-<!--DFFOPT shadowScaleYToY-->
+ <!--DFFOPT shadowScaleXToY-->
+ <!--DFFOPT shadowScaleYToY-->
<UML:Class xmi.id="shadowScaleYToY" name="shadowScaleYToY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49765,8 +53427,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowScaleYToY-->
-<!--DFFOPT shadowPerspectiveX-->
+ <!--DFFOPT shadowScaleYToY-->
+ <!--DFFOPT shadowPerspectiveX-->
<UML:Class xmi.id="shadowPerspectiveX" name="shadowPerspectiveX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49813,8 +53475,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowPerspectiveX-->
-<!--DFFOPT shadowPerspectiveY-->
+ <!--DFFOPT shadowPerspectiveX-->
+ <!--DFFOPT shadowPerspectiveY-->
<UML:Class xmi.id="shadowPerspectiveY" name="shadowPerspectiveY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49861,8 +53523,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowPerspectiveY-->
-<!--DFFOPT shadowWeight-->
+ <!--DFFOPT shadowPerspectiveY-->
+ <!--DFFOPT shadowWeight-->
<UML:Class xmi.id="shadowWeight" name="shadowWeight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49909,8 +53571,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowWeight-->
-<!--DFFOPT shadowOriginX-->
+ <!--DFFOPT shadowWeight-->
+ <!--DFFOPT shadowOriginX-->
<UML:Class xmi.id="shadowOriginX" name="shadowOriginX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -49956,8 +53618,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowOriginX-->
-<!--DFFOPT shadowOriginY-->
+ <!--DFFOPT shadowOriginX-->
+ <!--DFFOPT shadowOriginY-->
<UML:Class xmi.id="shadowOriginY" name="shadowOriginY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50003,8 +53665,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT shadowOriginY-->
-<!--DFFOPT fShadow-->
+ <!--DFFOPT shadowOriginY-->
+ <!--DFFOPT fShadow-->
<UML:Class xmi.id="fShadow" name="fShadow">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50058,8 +53720,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fShadow-->
-<!--DFFOPT fshadowObscured-->
+ <!--DFFOPT fShadow-->
+ <!--DFFOPT fshadowObscured-->
<UML:Class xmi.id="fshadowObscured" name="fshadowObscured">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50114,8 +53776,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fshadowObscured-->
-<!--DFFOPT perspectiveType-->
+ <!--DFFOPT fshadowObscured-->
+ <!--DFFOPT perspectiveType-->
<UML:Class xmi.id="perspectiveType" name="perspectiveType">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50162,8 +53824,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT perspectiveType-->
-<!--DFFOPT perspectiveOffsetX-->
+ <!--DFFOPT perspectiveType-->
+ <!--DFFOPT perspectiveOffsetX-->
<UML:Class xmi.id="perspectiveOffsetX" name="perspectiveOffsetX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50211,8 +53873,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT perspectiveOffsetX-->
-<!--DFFOPT perspectiveOffsetY-->
+ <!--DFFOPT perspectiveOffsetX-->
+ <!--DFFOPT perspectiveOffsetY-->
<UML:Class xmi.id="perspectiveOffsetY" name="perspectiveOffsetY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50258,8 +53920,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT perspectiveOffsetY-->
-<!--DFFOPT perspectiveScaleXToX-->
+ <!--DFFOPT perspectiveOffsetY-->
+ <!--DFFOPT perspectiveScaleXToX-->
<UML:Class xmi.id="perspectiveScaleXToX" name="perspectiveScaleXToX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50305,8 +53967,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT perspectiveScaleXToX-->
-<!--DFFOPT perspectiveScaleYToX-->
+ <!--DFFOPT perspectiveScaleXToX-->
+ <!--DFFOPT perspectiveScaleYToX-->
<UML:Class xmi.id="perspectiveScaleYToX" name="perspectiveScaleYToX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50352,8 +54014,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT perspectiveScaleYToX-->
-<!--DFFOPT perspectiveScaleXToY-->
+ <!--DFFOPT perspectiveScaleYToX-->
+ <!--DFFOPT perspectiveScaleXToY-->
<UML:Class xmi.id="perspectiveScaleXToY" name="perspectiveScaleXToY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50399,8 +54061,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT perspectiveScaleXToY-->
-<!--DFFOPT perspectiveScaleYToY-->
+ <!--DFFOPT perspectiveScaleXToY-->
+ <!--DFFOPT perspectiveScaleYToY-->
<UML:Class xmi.id="perspectiveScaleYToY" name="perspectiveScaleYToY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50446,8 +54108,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT perspectiveScaleYToY-->
-<!--DFFOPT perspectivePerspectiveX-->
+ <!--DFFOPT perspectiveScaleYToY-->
+ <!--DFFOPT perspectivePerspectiveX-->
<UML:Class xmi.id="perspectivePerspectiveX" name="perspectivePerspectiveX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50493,8 +54155,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT perspectivePerspectiveX-->
-<!--DFFOPT perspectivePerspectiveY-->
+ <!--DFFOPT perspectivePerspectiveX-->
+ <!--DFFOPT perspectivePerspectiveY-->
<UML:Class xmi.id="perspectivePerspectiveY" name="perspectivePerspectiveY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50540,8 +54202,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT perspectivePerspectiveY-->
-<!--DFFOPT perspectiveWeight-->
+ <!--DFFOPT perspectivePerspectiveY-->
+ <!--DFFOPT perspectiveWeight-->
<UML:Class xmi.id="perspectiveWeight" name="perspectiveWeight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50588,8 +54250,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT perspectiveWeight-->
-<!--DFFOPT perspectiveOriginX-->
+ <!--DFFOPT perspectiveWeight-->
+ <!--DFFOPT perspectiveOriginX-->
<UML:Class xmi.id="perspectiveOriginX" name="perspectiveOriginX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50635,8 +54297,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT perspectiveOriginX-->
-<!--DFFOPT perspectiveOriginY-->
+ <!--DFFOPT perspectiveOriginX-->
+ <!--DFFOPT perspectiveOriginY-->
<UML:Class xmi.id="perspectiveOriginY" name="perspectiveOriginY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50682,8 +54344,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT perspectiveOriginY-->
-<!--DFFOPT fPerspective-->
+ <!--DFFOPT perspectiveOriginY-->
+ <!--DFFOPT fPerspective-->
<UML:Class xmi.id="fPerspective" name="fPerspective">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50737,8 +54399,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fPerspective-->
-<!--DFFOPT c3DSpecularAmt-->
+ <!--DFFOPT fPerspective-->
+ <!--DFFOPT c3DSpecularAmt-->
<UML:Class xmi.id="c3DSpecularAmt" name="c3DSpecularAmt">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50785,8 +54447,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DSpecularAmt-->
-<!--DFFOPT c3DDiffuseAmt-->
+ <!--DFFOPT c3DSpecularAmt-->
+ <!--DFFOPT c3DDiffuseAmt-->
<UML:Class xmi.id="c3DDiffuseAmt" name="c3DDiffuseAmt">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50833,8 +54495,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DDiffuseAmt-->
-<!--DFFOPT c3DShininess-->
+ <!--DFFOPT c3DDiffuseAmt-->
+ <!--DFFOPT c3DShininess-->
<UML:Class xmi.id="c3DShininess" name="c3DShininess">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50881,8 +54543,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DShininess-->
-<!--DFFOPT c3DEdgeThickness-->
+ <!--DFFOPT c3DShininess-->
+ <!--DFFOPT c3DEdgeThickness-->
<UML:Class xmi.id="c3DEdgeThickness" name="c3DEdgeThickness">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50929,8 +54591,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DEdgeThickness-->
-<!--DFFOPT c3DExtrudeForward-->
+ <!--DFFOPT c3DEdgeThickness-->
+ <!--DFFOPT c3DExtrudeForward-->
<UML:Class xmi.id="c3DExtrudeForward" name="c3DExtrudeForward">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -50977,8 +54639,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DExtrudeForward-->
-<!--DFFOPT c3DExtrudeBackward-->
+ <!--DFFOPT c3DExtrudeForward-->
+ <!--DFFOPT c3DExtrudeBackward-->
<UML:Class xmi.id="c3DExtrudeBackward" name="c3DExtrudeBackward">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51024,8 +54686,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DExtrudeBackward-->
-<!--DFFOPT c3DExtrudePlane-->
+ <!--DFFOPT c3DExtrudeBackward-->
+ <!--DFFOPT c3DExtrudePlane-->
<UML:Class xmi.id="c3DExtrudePlane" name="c3DExtrudePlane">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51072,8 +54734,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DExtrudePlane-->
-<!--DFFOPT c3DExtrusionColor-->
+ <!--DFFOPT c3DExtrudePlane-->
+ <!--DFFOPT c3DExtrusionColor-->
<UML:Class xmi.id="c3DExtrusionColor" name="c3DExtrusionColor">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51121,8 +54783,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DExtrusionColor-->
-<!--DFFOPT c3DCrMod-->
+ <!--DFFOPT c3DExtrusionColor-->
+ <!--DFFOPT c3DCrMod-->
<UML:Class xmi.id="c3DCrMod" name="c3DCrMod">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51169,8 +54831,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DCrMod-->
-<!--DFFOPT f3D-->
+ <!--DFFOPT c3DCrMod-->
+ <!--DFFOPT f3D-->
<UML:Class xmi.id="f3D" name="f3D">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51225,8 +54887,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT f3D-->
-<!--DFFOPT fc3DMetallic-->
+ <!--DFFOPT f3D-->
+ <!--DFFOPT fc3DMetallic-->
<UML:Class xmi.id="fc3DMetallic" name="fc3DMetallic">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51281,8 +54943,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fc3DMetallic-->
-<!--DFFOPT fc3DUseExtrusionColor-->
+ <!--DFFOPT fc3DMetallic-->
+ <!--DFFOPT fc3DUseExtrusionColor-->
<UML:Class xmi.id="fc3DUseExtrusionColor" name="fc3DUseExtrusionColor">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51336,8 +54998,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fc3DUseExtrusionColor-->
-<!--DFFOPT fc3DLightFace-->
+ <!--DFFOPT fc3DUseExtrusionColor-->
+ <!--DFFOPT fc3DLightFace-->
<UML:Class xmi.id="fc3DLightFace" name="fc3DLightFace">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51391,8 +55053,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fc3DLightFace-->
-<!--DFFOPT c3DYRotationAngle-->
+ <!--DFFOPT fc3DLightFace-->
+ <!--DFFOPT c3DYRotationAngle-->
<UML:Class xmi.id="c3DYRotationAngle" name="c3DYRotationAngle">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51439,8 +55101,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DYRotationAngle-->
-<!--DFFOPT c3DXRotationAngle-->
+ <!--DFFOPT c3DYRotationAngle-->
+ <!--DFFOPT c3DXRotationAngle-->
<UML:Class xmi.id="c3DXRotationAngle" name="c3DXRotationAngle">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51487,8 +55149,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DXRotationAngle-->
-<!--DFFOPT c3DRotationAxisX-->
+ <!--DFFOPT c3DXRotationAngle-->
+ <!--DFFOPT c3DRotationAxisX-->
<UML:Class xmi.id="c3DRotationAxisX" name="c3DRotationAxisX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51535,8 +55197,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DRotationAxisX-->
-<!--DFFOPT c3DRotationAxisY-->
+ <!--DFFOPT c3DRotationAxisX-->
+ <!--DFFOPT c3DRotationAxisY-->
<UML:Class xmi.id="c3DRotationAxisY" name="c3DRotationAxisY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51582,8 +55244,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DRotationAxisY-->
-<!--DFFOPT c3DRotationAxisZ-->
+ <!--DFFOPT c3DRotationAxisY-->
+ <!--DFFOPT c3DRotationAxisZ-->
<UML:Class xmi.id="c3DRotationAxisZ" name="c3DRotationAxisZ">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51629,8 +55291,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DRotationAxisZ-->
-<!--DFFOPT c3DRotationAngle-->
+ <!--DFFOPT c3DRotationAxisZ-->
+ <!--DFFOPT c3DRotationAngle-->
<UML:Class xmi.id="c3DRotationAngle" name="c3DRotationAngle">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51677,8 +55339,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DRotationAngle-->
-<!--DFFOPT c3DRotationCenterX-->
+ <!--DFFOPT c3DRotationAngle-->
+ <!--DFFOPT c3DRotationCenterX-->
<UML:Class xmi.id="c3DRotationCenterX" name="c3DRotationCenterX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51725,8 +55387,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DRotationCenterX-->
-<!--DFFOPT c3DRotationCenterY-->
+ <!--DFFOPT c3DRotationCenterX-->
+ <!--DFFOPT c3DRotationCenterY-->
<UML:Class xmi.id="c3DRotationCenterY" name="c3DRotationCenterY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51773,8 +55435,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DRotationCenterY-->
-<!--DFFOPT c3DRotationCenterZ-->
+ <!--DFFOPT c3DRotationCenterY-->
+ <!--DFFOPT c3DRotationCenterZ-->
<UML:Class xmi.id="c3DRotationCenterZ" name="c3DRotationCenterZ">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51821,8 +55483,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DRotationCenterZ-->
-<!--DFFOPT c3DRenderMode-->
+ <!--DFFOPT c3DRotationCenterZ-->
+ <!--DFFOPT c3DRenderMode-->
<UML:Class xmi.id="c3DRenderMode" name="c3DRenderMode">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51869,8 +55531,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DRenderMode-->
-<!--DFFOPT c3DTolerance-->
+ <!--DFFOPT c3DRenderMode-->
+ <!--DFFOPT c3DTolerance-->
<UML:Class xmi.id="c3DTolerance" name="c3DTolerance">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51917,8 +55579,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DTolerance-->
-<!--DFFOPT c3DXViewpoint-->
+ <!--DFFOPT c3DTolerance-->
+ <!--DFFOPT c3DXViewpoint-->
<UML:Class xmi.id="c3DXViewpoint" name="c3DXViewpoint">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -51965,8 +55627,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DXViewpoint-->
-<!--DFFOPT c3DYViewpoint-->
+ <!--DFFOPT c3DXViewpoint-->
+ <!--DFFOPT c3DYViewpoint-->
<UML:Class xmi.id="c3DYViewpoint" name="c3DYViewpoint">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52013,8 +55675,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DYViewpoint-->
-<!--DFFOPT c3DZViewpoint-->
+ <!--DFFOPT c3DYViewpoint-->
+ <!--DFFOPT c3DZViewpoint-->
<UML:Class xmi.id="c3DZViewpoint" name="c3DZViewpoint">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52061,8 +55723,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DZViewpoint-->
-<!--DFFOPT c3DOriginX-->
+ <!--DFFOPT c3DZViewpoint-->
+ <!--DFFOPT c3DOriginX-->
<UML:Class xmi.id="c3DOriginX" name="c3DOriginX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52108,8 +55770,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DOriginX-->
-<!--DFFOPT c3DOriginY-->
+ <!--DFFOPT c3DOriginX-->
+ <!--DFFOPT c3DOriginY-->
<UML:Class xmi.id="c3DOriginY" name="c3DOriginY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52155,8 +55817,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DOriginY-->
-<!--DFFOPT c3DSkewAngle-->
+ <!--DFFOPT c3DOriginY-->
+ <!--DFFOPT c3DSkewAngle-->
<UML:Class xmi.id="c3DSkewAngle" name="c3DSkewAngle">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52203,8 +55865,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DSkewAngle-->
-<!--DFFOPT c3DSkewAmount-->
+ <!--DFFOPT c3DSkewAngle-->
+ <!--DFFOPT c3DSkewAmount-->
<UML:Class xmi.id="c3DSkewAmount" name="c3DSkewAmount">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52251,8 +55913,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DSkewAmount-->
-<!--DFFOPT c3DAmbientIntensity-->
+ <!--DFFOPT c3DSkewAmount-->
+ <!--DFFOPT c3DAmbientIntensity-->
<UML:Class xmi.id="c3DAmbientIntensity" name="c3DAmbientIntensity">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52299,8 +55961,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DAmbientIntensity-->
-<!--DFFOPT c3DKeyX-->
+ <!--DFFOPT c3DAmbientIntensity-->
+ <!--DFFOPT c3DKeyX-->
<UML:Class xmi.id="c3DKeyX" name="c3DKeyX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52347,8 +56009,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DKeyX-->
-<!--DFFOPT c3DKeyY-->
+ <!--DFFOPT c3DKeyX-->
+ <!--DFFOPT c3DKeyY-->
<UML:Class xmi.id="c3DKeyY" name="c3DKeyY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52395,8 +56057,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DKeyY-->
-<!--DFFOPT c3DKeyZ-->
+ <!--DFFOPT c3DKeyY-->
+ <!--DFFOPT c3DKeyZ-->
<UML:Class xmi.id="c3DKeyZ" name="c3DKeyZ">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52443,8 +56105,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DKeyZ-->
-<!--DFFOPT c3DKeyIntensity-->
+ <!--DFFOPT c3DKeyZ-->
+ <!--DFFOPT c3DKeyIntensity-->
<UML:Class xmi.id="c3DKeyIntensity" name="c3DKeyIntensity">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52491,8 +56153,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DKeyIntensity-->
-<!--DFFOPT c3DFillX-->
+ <!--DFFOPT c3DKeyIntensity-->
+ <!--DFFOPT c3DFillX-->
<UML:Class xmi.id="c3DFillX" name="c3DFillX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52539,8 +56201,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DFillX-->
-<!--DFFOPT c3DFillY-->
+ <!--DFFOPT c3DFillX-->
+ <!--DFFOPT c3DFillY-->
<UML:Class xmi.id="c3DFillY" name="c3DFillY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52587,8 +56249,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DFillY-->
-<!--DFFOPT c3DFillZ-->
+ <!--DFFOPT c3DFillY-->
+ <!--DFFOPT c3DFillZ-->
<UML:Class xmi.id="c3DFillZ" name="c3DFillZ">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52635,8 +56297,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DFillZ-->
-<!--DFFOPT c3DFillIntensity-->
+ <!--DFFOPT c3DFillZ-->
+ <!--DFFOPT c3DFillIntensity-->
<UML:Class xmi.id="c3DFillIntensity" name="c3DFillIntensity">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52683,8 +56345,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT c3DFillIntensity-->
-<!--DFFOPT fc3DConstrainRotation-->
+ <!--DFFOPT c3DFillIntensity-->
+ <!--DFFOPT fc3DConstrainRotation-->
<UML:Class xmi.id="fc3DConstrainRotation" name="fc3DConstrainRotation">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52738,8 +56400,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fc3DConstrainRotation-->
-<!--DFFOPT fc3DRotationCenterAuto-->
+ <!--DFFOPT fc3DConstrainRotation-->
+ <!--DFFOPT fc3DRotationCenterAuto-->
<UML:Class xmi.id="fc3DRotationCenterAuto" name="fc3DRotationCenterAuto">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52793,8 +56455,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fc3DRotationCenterAuto-->
-<!--DFFOPT fc3DParallel-->
+ <!--DFFOPT fc3DRotationCenterAuto-->
+ <!--DFFOPT fc3DParallel-->
<UML:Class xmi.id="fc3DParallel" name="fc3DParallel">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52849,8 +56511,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fc3DParallel-->
-<!--DFFOPT fc3DKeyHarsh-->
+ <!--DFFOPT fc3DParallel-->
+ <!--DFFOPT fc3DKeyHarsh-->
<UML:Class xmi.id="fc3DKeyHarsh" name="fc3DKeyHarsh">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52905,8 +56567,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fc3DKeyHarsh-->
-<!--DFFOPT fc3DFillHarsh-->
+ <!--DFFOPT fc3DKeyHarsh-->
+ <!--DFFOPT fc3DFillHarsh-->
<UML:Class xmi.id="fc3DFillHarsh" name="fc3DFillHarsh">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -52961,8 +56623,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fc3DFillHarsh-->
-<!--DFFOPT hspMaster-->
+ <!--DFFOPT fc3DFillHarsh-->
+ <!--DFFOPT hspMaster-->
<UML:Class xmi.id="hspMaster" name="hspMaster">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53009,8 +56671,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT hspMaster-->
-<!--DFFOPT cxstyle-->
+ <!--DFFOPT hspMaster-->
+ <!--DFFOPT cxstyle-->
<UML:Class xmi.id="cxstyle" name="cxstyle">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53057,8 +56719,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT cxstyle-->
-<!--DFFOPT bWMode-->
+ <!--DFFOPT cxstyle-->
+ <!--DFFOPT bWMode-->
<UML:Class xmi.id="bWMode" name="bWMode">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53106,8 +56768,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT bWMode-->
-<!--DFFOPT bWModePureBW-->
+ <!--DFFOPT bWMode-->
+ <!--DFFOPT bWModePureBW-->
<UML:Class xmi.id="bWModePureBW" name="bWModePureBW">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53153,8 +56815,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT bWModePureBW-->
-<!--DFFOPT bWModeBW-->
+ <!--DFFOPT bWModePureBW-->
+ <!--DFFOPT bWModeBW-->
<UML:Class xmi.id="bWModeBW" name="bWModeBW">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53200,8 +56862,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT bWModeBW-->
-<!--DFFOPT fOleIcon-->
+ <!--DFFOPT bWModeBW-->
+ <!--DFFOPT fOleIcon-->
<UML:Class xmi.id="fOleIcon" name="fOleIcon">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53256,8 +56918,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fOleIcon-->
-<!--DFFOPT fPreferRelativeResize-->
+ <!--DFFOPT fOleIcon-->
+ <!--DFFOPT fPreferRelativeResize-->
<UML:Class xmi.id="fPreferRelativeResize" name="fPreferRelativeResize">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53312,8 +56974,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fPreferRelativeResize-->
-<!--DFFOPT fLockShapeType-->
+ <!--DFFOPT fPreferRelativeResize-->
+ <!--DFFOPT fLockShapeType-->
<UML:Class xmi.id="fLockShapeType" name="fLockShapeType">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53368,8 +57030,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fLockShapeType-->
-<!--DFFOPT fDeleteAttachedObject-->
+ <!--DFFOPT fLockShapeType-->
+ <!--DFFOPT fDeleteAttachedObject-->
<UML:Class xmi.id="fDeleteAttachedObject" name="fDeleteAttachedObject">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53423,8 +57085,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fDeleteAttachedObject-->
-<!--DFFOPT fBackground-->
+ <!--DFFOPT fDeleteAttachedObject-->
+ <!--DFFOPT fBackground-->
<UML:Class xmi.id="fBackground" name="fBackground">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53479,8 +57141,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fBackground-->
-<!--DFFOPT spcot-->
+ <!--DFFOPT fBackground-->
+ <!--DFFOPT spcot-->
<UML:Class xmi.id="spcot" name="spcot">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53526,8 +57188,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT spcot-->
-<!--DFFOPT dxyCalloutGap-->
+ <!--DFFOPT spcot-->
+ <!--DFFOPT dxyCalloutGap-->
<UML:Class xmi.id="dxyCalloutGap" name="dxyCalloutGap">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53574,8 +57236,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT dxyCalloutGap-->
-<!--DFFOPT spcoa-->
+ <!--DFFOPT dxyCalloutGap-->
+ <!--DFFOPT spcoa-->
<UML:Class xmi.id="spcoa" name="spcoa">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53621,8 +57283,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT spcoa-->
-<!--DFFOPT spcod-->
+ <!--DFFOPT spcoa-->
+ <!--DFFOPT spcod-->
<UML:Class xmi.id="spcod" name="spcod">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53669,8 +57331,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT spcod-->
-<!--DFFOPT dxyCalloutDropSpecified-->
+ <!--DFFOPT spcod-->
+ <!--DFFOPT dxyCalloutDropSpecified-->
<UML:Class xmi.id="dxyCalloutDropSpecified" name="dxyCalloutDropSpecified">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53717,8 +57379,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT dxyCalloutDropSpecified-->
-<!--DFFOPT dxyCalloutLengthSpecified-->
+ <!--DFFOPT dxyCalloutDropSpecified-->
+ <!--DFFOPT dxyCalloutLengthSpecified-->
<UML:Class xmi.id="dxyCalloutLengthSpecified" name="dxyCalloutLengthSpecified">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53765,8 +57427,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT dxyCalloutLengthSpecified-->
-<!--DFFOPT fCallout-->
+ <!--DFFOPT dxyCalloutLengthSpecified-->
+ <!--DFFOPT fCallout-->
<UML:Class xmi.id="fCallout" name="fCallout">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53821,8 +57483,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fCallout-->
-<!--DFFOPT fCalloutAccentBar-->
+ <!--DFFOPT fCallout-->
+ <!--DFFOPT fCalloutAccentBar-->
<UML:Class xmi.id="fCalloutAccentBar" name="fCalloutAccentBar">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53877,8 +57539,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fCalloutAccentBar-->
-<!--DFFOPT fCalloutTextBorder-->
+ <!--DFFOPT fCalloutAccentBar-->
+ <!--DFFOPT fCalloutTextBorder-->
<UML:Class xmi.id="fCalloutTextBorder" name="fCalloutTextBorder">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53933,8 +57595,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fCalloutTextBorder-->
-<!--DFFOPT fCalloutMinusX-->
+ <!--DFFOPT fCalloutTextBorder-->
+ <!--DFFOPT fCalloutMinusX-->
<UML:Class xmi.id="fCalloutMinusX" name="fCalloutMinusX">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -53988,8 +57650,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fCalloutMinusX-->
-<!--DFFOPT fCalloutMinusY-->
+ <!--DFFOPT fCalloutMinusX-->
+ <!--DFFOPT fCalloutMinusY-->
<UML:Class xmi.id="fCalloutMinusY" name="fCalloutMinusY">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54043,8 +57705,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fCalloutMinusY-->
-<!--DFFOPT fCalloutDropAuto-->
+ <!--DFFOPT fCalloutMinusY-->
+ <!--DFFOPT fCalloutDropAuto-->
<UML:Class xmi.id="fCalloutDropAuto" name="fCalloutDropAuto">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54099,8 +57761,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fCalloutDropAuto-->
-<!--DFFOPT fCalloutLengthSpecified-->
+ <!--DFFOPT fCalloutDropAuto-->
+ <!--DFFOPT fCalloutLengthSpecified-->
<UML:Class xmi.id="fCalloutLengthSpecified" name="fCalloutLengthSpecified">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54155,8 +57817,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fCalloutLengthSpecified-->
-<!--DFFOPT wzName-->
+ <!--DFFOPT fCalloutLengthSpecified-->
+ <!--DFFOPT wzName-->
<UML:Class xmi.id="wzName" name="wzName">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54203,8 +57865,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT wzName-->
-<!--DFFOPT wzDescription-->
+ <!--DFFOPT wzName-->
+ <!--DFFOPT wzDescription-->
<UML:Class xmi.id="wzDescription" name="wzDescription">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54251,8 +57913,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT wzDescription-->
-<!--DFFOPT pihlShape-->
+ <!--DFFOPT wzDescription-->
+ <!--DFFOPT pihlShape-->
<UML:Class xmi.id="pihlShape" name="pihlShape">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54299,8 +57961,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pihlShape-->
-<!--DFFOPT pWrapPolygonVertices-->
+ <!--DFFOPT pihlShape-->
+ <!--DFFOPT pWrapPolygonVertices-->
<UML:Class xmi.id="pWrapPolygonVertices" name="pWrapPolygonVertices">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54347,8 +58009,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT pWrapPolygonVertices-->
-<!--DFFOPT dxWrapDistLeft-->
+ <!--DFFOPT pWrapPolygonVertices-->
+ <!--DFFOPT dxWrapDistLeft-->
<UML:Class xmi.id="dxWrapDistLeft" name="dxWrapDistLeft">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54395,8 +58057,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT dxWrapDistLeft-->
-<!--DFFOPT dyWrapDistTop-->
+ <!--DFFOPT dxWrapDistLeft-->
+ <!--DFFOPT dyWrapDistTop-->
<UML:Class xmi.id="dyWrapDistTop" name="dyWrapDistTop">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54443,8 +58105,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT dyWrapDistTop-->
-<!--DFFOPT dxWrapDistRight-->
+ <!--DFFOPT dyWrapDistTop-->
+ <!--DFFOPT dxWrapDistRight-->
<UML:Class xmi.id="dxWrapDistRight" name="dxWrapDistRight">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54491,8 +58153,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT dxWrapDistRight-->
-<!--DFFOPT dyWrapDistBottom-->
+ <!--DFFOPT dxWrapDistRight-->
+ <!--DFFOPT dyWrapDistBottom-->
<UML:Class xmi.id="dyWrapDistBottom" name="dyWrapDistBottom">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54539,8 +58201,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT dyWrapDistBottom-->
-<!--DFFOPT lidRegroup-->
+ <!--DFFOPT dyWrapDistBottom-->
+ <!--DFFOPT lidRegroup-->
<UML:Class xmi.id="lidRegroup" name="lidRegroup">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54586,8 +58248,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT lidRegroup-->
-<!--DFFOPT fEditedWrap-->
+ <!--DFFOPT lidRegroup-->
+ <!--DFFOPT fEditedWrap-->
<UML:Class xmi.id="fEditedWrap" name="fEditedWrap">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54642,8 +58304,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fEditedWrap-->
-<!--DFFOPT fBehindDocument-->
+ <!--DFFOPT fEditedWrap-->
+ <!--DFFOPT fBehindDocument-->
<UML:Class xmi.id="fBehindDocument" name="fBehindDocument">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54698,8 +58360,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fBehindDocument-->
-<!--DFFOPT fOnDblClickNotify-->
+ <!--DFFOPT fBehindDocument-->
+ <!--DFFOPT fOnDblClickNotify-->
<UML:Class xmi.id="fOnDblClickNotify" name="fOnDblClickNotify">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54754,8 +58416,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fOnDblClickNotify-->
-<!--DFFOPT fIsButton-->
+ <!--DFFOPT fOnDblClickNotify-->
+ <!--DFFOPT fIsButton-->
<UML:Class xmi.id="fIsButton" name="fIsButton">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54811,8 +58473,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fIsButton-->
-<!--DFFOPT fOneD-->
+ <!--DFFOPT fIsButton-->
+ <!--DFFOPT fOneD-->
<UML:Class xmi.id="fOneD" name="fOneD">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54866,8 +58528,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fOneD-->
-<!--DFFOPT fHidden-->
+ <!--DFFOPT fOneD-->
+ <!--DFFOPT fHidden-->
<UML:Class xmi.id="fHidden" name="fHidden">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54922,8 +58584,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fHidden-->
-<!--DFFOPT fPrint-->
+ <!--DFFOPT fHidden-->
+ <!--DFFOPT fPrint-->
<UML:Class xmi.id="fPrint" name="fPrint">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="dffopt"/>
@@ -54978,8 +58640,8 @@
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
</UML:Class>
-<!--DFFOPT fPrint-->
-<!--DFFOPT-->
+ <!--DFFOPT fPrint-->
+ <!--DFFOPT-->
</UML:Namespace.ownedElement>
</UML:Model>
</XMI.content>
diff --git a/writerfilter/source/doctok/resources.xsl b/writerfilter/source/doctok/resources.xsl
index 1ef78a79dd76..e1fc68ba5323 100644
--- a/writerfilter/source/doctok/resources.xsl
+++ b/writerfilter/source/doctok/resources.xsl
@@ -480,7 +480,6 @@ class </xsl:text>
<xsl:variable name="stereotype"><xsl:value-of select=".//UML:Stereotype[1]/@xmi.idref"/></xsl:variable>
<xsl:variable name="offset_"><xsl:value-of select='translate(.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="offset"]/UML:TaggedValue.dataValue, "ABCDEFX", "abcdefx")'/></xsl:variable>
<xsl:variable name="offset">
- <xsl:if test='$offset_ != "" and not(starts-with($offset_, "0x"))'>0x</xsl:if>
<xsl:value-of select='$offset_'/>
</xsl:variable>
<xsl:variable name="shift"><xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="shift"]/UML:TaggedValue.dataValue'/></xsl:variable>
diff --git a/writerfilter/source/doctok/xmigen.el b/writerfilter/source/doctok/xmigen.el
index 6f0f35524d76..c85299604374 100644
--- a/writerfilter/source/doctok/xmigen.el
+++ b/writerfilter/source/doctok/xmigen.el
@@ -123,5 +123,4 @@
(insert-uml-stereotype "ww8sprm")
(insert-uml-taggedvalue sprmcode "sprmcode")
(insert-uml-taggedvalue (concat "rtf:" name) "sprmid")
- (insert-uml-taggedvalue kind "kind")
- (insert-uml-class-end))
+ (insert-uml-taggedvalue kind "kind")) \ No newline at end of file
diff --git a/writerfilter/source/doctok/xmigen.xsl b/writerfilter/source/doctok/xmigen.xsl
new file mode 100644
index 000000000000..d6eab5846fd4
--- /dev/null
+++ b/writerfilter/source/doctok/xmigen.xsl
@@ -0,0 +1,507 @@
+<!--
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: resources.xsl,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.
+ *
+ ************************************************************************/
+
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:UML = 'org.omg.xmi.namespace.UML'
+ xml:space="default">
+ <xsl:output method="xml"/>
+
+ <xsl:template match="/">
+ <out>
+ <xsl:apply-templates select="*"/>
+ </out>
+ </xsl:template>
+
+ <xsl:template name="calcsizeinner">
+ <xsl:param name="size">0</xsl:param>
+ <xsl:variable name="arraycount">
+ <xsl:choose>
+ <xsl:when test="@array-count">
+ <xsl:value-of select="@array-count"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="mysize">
+ <xsl:choose>
+ <xsl:when test="@size and not(@offset)">
+ <xsl:value-of select="number($arraycount) * number(@size)"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="following-sibling::*">
+ <xsl:for-each select="following-sibling::*[1]">
+ <xsl:call-template name="calcsizeinner">
+ <xsl:with-param name="size"
+ select="number($size) + number($mysize)"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="number($size) + number($mysize)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="calcsize">
+ <xsl:for-each select="*[1]">
+ <xsl:call-template name="calcsizeinner"/>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="calcoffsetinner">
+ <xsl:variable name="arraycount">
+ <xsl:choose>
+ <xsl:when test="@array-count">
+ <xsl:value-of select="@array-count"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="mysize">
+ <xsl:choose>
+ <xsl:when test="@size and not(@offset)">
+ <xsl:value-of select="number($arraycount) * number(@size)"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*">
+ <xsl:variable name="precedingoffset">
+ <xsl:for-each select="preceding-sibling::*[1]">
+ <xsl:call-template name="calcoffsetinner"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:value-of select="number($precedingoffset) + number($mysize)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$mysize"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="calcoffset">
+ <xsl:choose>
+ <xsl:when test="@offset">
+ <xsl:value-of select="@offset"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="preceding-sibling::*[1]">
+ <xsl:call-template name="calcoffsetinner"/>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="ww8resource">
+ <UML:Class>
+ <xsl:attribute name="xmi.id">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="ww8resource"/>
+ </UML:ModelElement.stereotype>
+ <xsl:for-each select="stereotype">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype>
+ <xsl:attribute name="xmi.idref">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ </UML:Stereotype>
+ </UML:ModelElement.stereotype>
+ </xsl:for-each>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>
+ <xsl:call-template name="calcsize"/>
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="size"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+
+ <xsl:apply-templates select="*"/>
+
+ </UML:Class>
+ <UML:Generalization isSpecification="false">
+ <xsl:attribute name="xmi.id">
+ <xsl:value-of select="@name"/>
+ <xsl:text>-</xsl:text>
+ <xsl:value-of select="@resource"/>
+ </xsl:attribute>
+ <UML:Generalization.child>
+ <UML:Class>
+ <xsl:attribute name="xmi.idref">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ </UML:Class>
+ </UML:Generalization.child>
+ <UML:Generalization.parent>
+ <UML:Class xmi.idref="Properties">
+ <xsl:attribute name="xmi.idref">
+ <xsl:value-of select="@resource"/>
+ </xsl:attribute>
+ </UML:Class>
+ </UML:Generalization.parent>
+ </UML:Generalization>
+ </xsl:template>
+
+ <xsl:template name="taggedvalue">
+ <xsl:param name="type"/>
+ <xsl:param name="value"/>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>
+ <xsl:value-of select="$value"/>
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition>
+ <xsl:attribute name="xmi.idref">
+ <xsl:value-of select="$type"/>
+ </xsl:attribute>
+ </UML:TagDefinition>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ </xsl:template>
+
+ <xsl:template match="attribute">
+ <UML:Classifier.feature>
+ <UML:Attribute>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:call-template name="taggedvalue">
+ <xsl:with-param name="type">comment</xsl:with-param>
+ <xsl:with-param name="value"/>
+ </xsl:call-template>
+ <xsl:call-template name="taggedvalue">
+ <xsl:with-param name="type">offset</xsl:with-param>
+ <xsl:with-param name="value">
+ <xsl:call-template name="calcoffset"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="taggedvalue">
+ <xsl:with-param name="type">shift</xsl:with-param>
+ <xsl:with-param name="value"></xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="taggedvalue">
+ <xsl:with-param name="type">mask</xsl:with-param>
+ <xsl:with-param name="value"></xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="taggedvalue">
+ <xsl:with-param name="type">bits</xsl:with-param>
+ <xsl:with-param name="value"></xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="taggedvalue">
+ <xsl:with-param name="type">attrid</xsl:with-param>
+ <xsl:with-param name="value">
+ <xsl:choose>
+ <xsl:when test="@token">
+ <xsl:value-of select="@token"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>rtf:</xsl:text>
+ <xsl:value-of select="@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:if test="@array-count">
+ <xsl:call-template name="taggedvalue">
+ <xsl:with-param name="type">arraycount</xsl:with-param>
+ <xsl:with-param name="value">
+ <xsl:value-of select="@array-count"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ <UML:StructuralFeature.type>
+ <UML:DataType>
+ <xsl:attribute name="xmi.idref">
+ <xsl:value-of select="@type"/>
+ </xsl:attribute>
+ </UML:DataType>
+ </UML:StructuralFeature.type>
+ <xsl:choose>
+ <xsl:when test="@array-count">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </xsl:when>
+ <xsl:otherwise>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </xsl:otherwise>
+ </xsl:choose>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </xsl:template>
+
+ <xsl:template match="bitfield">
+ <xsl:variable name="offset">
+ <xsl:value-of select="sum(preceding-sibling::*/@size)"/>
+ </xsl:variable>
+ <xsl:for-each select="bits">
+ <xsl:call-template name="bits">
+ <xsl:with-param name="offset" select="$offset"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="mask">
+ <xsl:param name="count"/>
+ <xsl:param name="value"/>
+
+ <xsl:choose>
+ <xsl:when test="number($count) = 1">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="mask">
+ <xsl:with-param name="count" select="number($count) - 1"/>
+ <xsl:with-param name="value" select="number($value) * 2 + 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="shift">
+ <xsl:param name="shift"/>
+ <xsl:param name="value"/>
+
+ <xsl:choose>
+ <xsl:when test="number($shift) = 0">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="shift">
+ <xsl:with-param name="shift" select="number($shift) - 1"/>
+ <xsl:with-param name="value" select="$value * 2"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name='dectohex'>
+ <xsl:param name="number"/>
+ <xsl:if test="$number > 16">
+ <xsl:call-template name="dectohex">
+ <xsl:with-param name="number" select="floor($number div 16)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:value-of select="substring('0123456789abcdef', $number mod 16 + 1, 1)"/>
+ </xsl:template>
+
+ <xsl:template name="calcshift">
+ <xsl:choose>
+ <xsl:when test="@shift">
+ <xsl:value-of select="@shift"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="sum(following-sibling::*[not (@shift)]/@bits)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="bits">
+ <xsl:param name="offset"/>
+ <xsl:variable name="shift">
+ <xsl:call-template name="calcshift"/>
+ </xsl:variable>
+ <xsl:variable name="mask">
+ <xsl:call-template name="mask">
+ <xsl:with-param name="count" select="@bits"/>
+ <xsl:with-param name="value" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="maskshifted">
+ <xsl:call-template name="shift">
+ <xsl:with-param name="shift" select="$shift"/>
+ <xsl:with-param name="value" select="$mask"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="maskhex">
+ <xsl:text>0x</xsl:text>
+ <xsl:call-template name="dectohex">
+ <xsl:with-param name="number" select="$maskshifted"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <UML:Classifier.feature>
+ <UML:Attribute>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue/>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="comment"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>
+ <xsl:value-of select="$offset"/>
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="offset"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>
+ <xsl:value-of select="$shift"/>
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="shift"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>
+ <xsl:value-of select="$maskhex"/>
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="mask"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>
+ <xsl:value-of select="@bits"/>
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="bits"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>
+ <xsl:choose>
+ <xsl:when test="@token">
+ <xsl:value-of select="@token"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>rtf:</xsl:text>
+ <xsl:value-of select="@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref="attrid"/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:StructuralFeature.type>
+ <UML:DataType>
+ <xsl:attribute name="xmi.idref">
+ <xsl:value-of select="ancestor::bitfield/@type"/>
+ </xsl:attribute>
+ </UML:DataType>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+ </xsl:template>
+
+ <xsl:template match="operation">
+ <UML:Classifier.feature>
+ <UML:Operation>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:call-template name="taggedvalue">
+ <xsl:with-param name="type">opid</xsl:with-param>
+ <xsl:with-param name="value">
+ <xsl:choose>
+ <xsl:when test="@token">
+ <xsl:value-of select="@token"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>rtf:</xsl:text>
+ <xsl:value-of select="@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:if test="@array-count">
+ <xsl:call-template name="taggedvalue">
+ <xsl:with-param name="type">arraycount</xsl:with-param>
+ <xsl:with-param name="value">
+ <xsl:value-of select="@array-count"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" name="return">
+ <UML:Parameter.type>
+ <UML:Class>
+ <xsl:attribute name="xmi.idref">
+ <xsl:value-of select="@type"/>
+ </xsl:attribute>
+ </UML:Class>
+ </UML:Parameter.type>
+ </UML:Parameter>
+ </UML:BehavioralFeature.parameter>
+ <xsl:choose>
+ <xsl:when test="@array-count or stereotype[text()='array']">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="array"/>
+ </UML:ModelElement.stereotype>
+ </xsl:when>
+ <xsl:otherwise>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref="attribute"/>
+ </UML:ModelElement.stereotype>
+ </xsl:otherwise>
+ </xsl:choose>
+ </UML:Operation>
+ </UML:Classifier.feature>
+ </xsl:template>
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/filter/ImportFilter.cxx b/writerfilter/source/filter/ImportFilter.cxx
index 46b5563f3b80..911689996b07 100644
--- a/writerfilter/source/filter/ImportFilter.cxx
+++ b/writerfilter/source/filter/ImportFilter.cxx
@@ -127,10 +127,10 @@ sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDes
}
#ifdef DEBUG_ELEMENT
- writerfilter::TagLogger::dump("DEBUG");
- debugLogger->endDocument();
writerfilter::TagLogger::dump("DOMAINMAPPER");
dmapperLogger->endDocument();
+ writerfilter::TagLogger::dump("DEBUG");
+ debugLogger->endDocument();
#endif
return sal_True;
diff --git a/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx b/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
index 50c32b758d44..90c878e3b8e2 100644
--- a/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
+++ b/writerfilter/source/ooxml/OOXMLDocumentImpl.cxx
@@ -27,6 +27,7 @@
#include <com/sun/star/xml/sax/XParser.hpp>
+#include <com/sun/star/xml/sax/SAXException.hpp>
#include <doctok/resourceids.hxx>
#include <ooxml/resourceids.hxx>
#include "OOXMLDocumentImpl.hxx"
@@ -37,6 +38,7 @@
#include <iostream>
+using ::com::sun::star::xml::sax::SAXException;
namespace writerfilter {
namespace ooxml
{
@@ -302,6 +304,10 @@ void OOXMLDocumentImpl::resolveFooter(Stream & rStream,
void OOXMLDocumentImpl::resolve(Stream & rStream)
{
+#ifdef DEBUG_RESOLVE
+ debug_logger->startElement("OOXMLDocumentImpl.resolve");
+#endif
+
uno::Reference< xml::sax::XFastParser > xParser
(mpStream->getFastParser());
@@ -330,8 +336,20 @@ void OOXMLDocumentImpl::resolve(Stream & rStream)
xml::sax::InputSource aParserInput;
aParserInput.aInputStream = mpStream->getDocumentStream();
- xParser->parseStream(aParserInput);
+ try
+ {
+ xParser->parseStream(aParserInput);
+ }
+ catch (...) {
+#ifdef DEBUG_ELEMENT
+ debug_logger->element("exception");
+#endif
+ }
}
+
+#ifdef DEBUG_RESOLVE
+ debug_logger->endElement("OOXMLDocumentImpl.resolve");
+#endif
}
uno::Reference<io::XInputStream> OOXMLDocumentImpl::getInputStreamForId(const ::rtl::OUString & rId)
diff --git a/writerfilter/source/ooxml/OOXMLFactory.cxx b/writerfilter/source/ooxml/OOXMLFactory.cxx
new file mode 100755
index 000000000000..6fac03898e42
--- /dev/null
+++ b/writerfilter/source/ooxml/OOXMLFactory.cxx
@@ -0,0 +1,333 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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 <rtl/instance.hxx>
+#include <osl/mutex.hxx>
+#include "OOXMLFactory.hxx"
+#include "OOXMLFastHelper.hxx"
+
+namespace writerfilter {
+namespace ooxml {
+
+AttributeInfo::AttributeInfo()
+:m_nResource(RT_NoResource), m_nRef(0)
+{
+}
+
+AttributeInfo::AttributeInfo(ResourceType_t nResource, Id nRef)
+ :m_nResource(nResource), m_nRef(nRef)
+{
+}
+
+CreateElement::CreateElement()
+:m_nResource(RT_NoResource), m_nId(0)
+{
+}
+
+CreateElement::CreateElement(ResourceType_t nResource, Id nId)
+: m_nResource(nResource), m_nId(nId)
+{
+}
+
+// class OOXMLFactory_ns
+
+OOXMLFactory_ns::~OOXMLFactory_ns()
+{
+}
+
+AttributeToResourceMapPointer OOXMLFactory_ns::getAttributeToResourceMap(Id nId)
+{
+ if (m_AttributesMap.find(nId) == m_AttributesMap.end())
+ m_AttributesMap[nId] = createAttributeToResourceMap(nId);
+
+ return m_AttributesMap[nId];
+}
+
+ListValueMapPointer OOXMLFactory_ns::getListValueMap(Id nId)
+{
+ if (m_ListValuesMap.find(nId) == m_ListValuesMap.end())
+ m_ListValuesMap[nId] = createListValueMap(nId);
+
+ return m_ListValuesMap[nId];
+}
+
+CreateElementMapPointer OOXMLFactory_ns::getCreateElementMap(Id nId)
+{
+ if (m_CreateElementsMap.find(nId) == m_CreateElementsMap.end())
+ m_CreateElementsMap[nId] = createCreateElementMap(nId);
+
+ return m_CreateElementsMap[nId];
+}
+
+TokenToIdMapPointer OOXMLFactory_ns::getTokenToIdMap(Id nId)
+{
+ if (m_TokenToIdsMap.find(nId) == m_TokenToIdsMap.end())
+ m_TokenToIdsMap[nId] = createTokenToIdMap(nId);
+
+ return m_TokenToIdsMap[nId];
+}
+
+string OOXMLFactory_ns::getDefineName(Id /*nId*/) const
+{
+ return "";
+}
+
+// class OOXMLFactory
+
+typedef rtl::Static< osl::Mutex, OOXMLFactory > OOXMLFactory_Mutex;
+
+OOXMLFactory::Pointer_t OOXMLFactory::m_Instance;
+
+OOXMLFactory::OOXMLFactory()
+{
+ // multi-thread-safe mutex for all platforms
+
+ osl::MutexGuard aGuard(OOXMLFactory_Mutex::get());
+}
+
+OOXMLFactory::~OOXMLFactory()
+{
+}
+
+OOXMLFactory::Pointer_t OOXMLFactory::getInstance()
+{
+ if (m_Instance.get() == NULL)
+ m_Instance.reset(new OOXMLFactory());
+
+ return m_Instance;
+}
+
+void OOXMLFactory::attributes(OOXMLFastContextHandler * pHandler,
+ const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
+{
+ Id nDefine = pHandler->getDefine();
+ OOXMLFactory_ns::Pointer_t pFactory = getFactoryForNamespace(nDefine);
+
+ if (pFactory.get() != NULL)
+ {
+#ifdef DEBUG_ATTRIBUTES
+ debug_logger->startElement("attributes");
+ debug_logger->attribute("define", pFactory->getDefineName(nDefine));
+ char sBuffer[256];
+ snprintf(sBuffer, sizeof(sBuffer), "%08" SAL_PRIxUINT32, nDefine);
+ debug_logger->attribute("define-num", sBuffer);
+#endif
+
+ TokenToIdMapPointer pTokenToIdMap = pFactory->getTokenToIdMap(nDefine);
+ AttributeToResourceMapPointer pMap = pFactory->getAttributeToResourceMap(nDefine);
+
+ AttributeToResourceMap::const_iterator aIt;
+ AttributeToResourceMap::const_iterator aEndIt = pMap->end();
+
+ for (aIt = pMap->begin(); aIt != aEndIt; aIt++)
+ {
+ Id nId = (*pTokenToIdMap)[aIt->first];
+#ifdef DEBUG_ATTRIBUTES
+ debug_logger->startElement("attribute");
+ debug_logger->attribute("name", fastTokenToId(aIt->first));
+ debug_logger->attribute("tokenid", (*QNameToString::Instance())(nId));
+ snprintf(sBuffer, sizeof(sBuffer), "%08" SAL_PRIxUINT32, nId);
+ debug_logger->attribute("tokenid-num", sBuffer);
+#endif
+ if (Attribs->hasAttribute(aIt->first))
+ {
+ switch (aIt->second.m_nResource)
+ {
+ case RT_Boolean:
+ {
+#ifdef DEBUG_ATTRIBUTES
+ debug_logger->element("boolean");
+#endif
+ ::rtl::OUString aValue(Attribs->getValue(aIt->first));
+ OOXMLFastHelper<OOXMLBooleanValue>::newProperty(pHandler, nId, aValue);
+
+ OOXMLValue::Pointer_t pValue(new OOXMLBooleanValue(aValue));
+ pFactory->attributeAction(pHandler, aIt->first, pValue);
+ }
+ break;
+ case RT_String:
+ {
+#ifdef DEBUG_ATTRIBUTES
+ debug_logger->element("string");
+#endif
+ ::rtl::OUString aValue(Attribs->getValue(aIt->first));
+ OOXMLFastHelper<OOXMLStringValue>::newProperty
+ (pHandler, nId, aValue);
+
+ OOXMLValue::Pointer_t pValue(new OOXMLStringValue(aValue));
+ pFactory->attributeAction(pHandler, aIt->first, pValue);
+ }
+ break;
+ case RT_Integer:
+ {
+#ifdef DEBUG_ATTRIBUTES
+ debug_logger->element("integer");
+#endif
+ ::rtl::OUString aValue(Attribs->getValue(aIt->first));
+ OOXMLFastHelper<OOXMLIntegerValue>::newProperty
+ (pHandler, nId, aValue);
+
+ OOXMLValue::Pointer_t pValue(new OOXMLIntegerValue(aValue));
+ pFactory->attributeAction(pHandler, aIt->first, pValue);
+ }
+ break;
+ case RT_Hex:
+ {
+#ifdef DEBUG_ATTRIBUTES
+ debug_logger->element("hex");
+#endif
+ ::rtl::OUString aValue(Attribs->getValue(aIt->first));
+ OOXMLFastHelper<OOXMLHexValue>::newProperty
+ (pHandler, nId, aValue);
+
+ OOXMLValue::Pointer_t pValue(new OOXMLHexValue(aValue));
+ pFactory->attributeAction(pHandler, aIt->first, pValue);
+ }
+ break;
+ case RT_List:
+ {
+#ifdef DEBUG_ATTRIBUTES
+ debug_logger->startElement("list");
+#endif
+ ListValueMapPointer pListValueMap =
+ pFactory->getListValueMap(aIt->second.m_nRef);
+
+ if (pListValueMap.get() != NULL)
+ {
+ ::rtl::OUString aValue(Attribs->getValue(aIt->first));
+ sal_uInt32 nValue = (*pListValueMap)[aValue];
+
+#ifdef DEBUG_ATTRIBUTES
+ debug_logger->attribute("value", aValue);
+ debug_logger->attribute("value-num", nValue);
+#endif
+
+ OOXMLFastHelper<OOXMLIntegerValue>::newProperty
+ (pHandler, nId, nValue);
+
+ OOXMLValue::Pointer_t pValue(new OOXMLIntegerValue(nValue));
+ pFactory->attributeAction(pHandler, aIt->first, pValue);
+ }
+#ifdef DEBUG_ATTRIBUTES
+ debug_logger->endElement("list");
+#endif
+ }
+ break;
+ default:
+#ifdef DEBUG_ATTRIBUTES
+ debug_logger->element("unknown-attribute-type");
+#endif
+ break;
+ }
+ }
+#ifdef DEBUG_ATTRIBUTES
+ debug_logger->endElement("attribute");
+#endif
+ }
+
+#ifdef DEBUG_ATTRIBUTES
+ debug_logger->endElement("attributes");
+#endif
+ }
+}
+
+uno::Reference< xml::sax::XFastContextHandler>
+OOXMLFactory::createFastChildContext(OOXMLFastContextHandler * pHandler,
+ Token_t Element)
+{
+ Id nDefine = pHandler->getDefine();
+
+ OOXMLFactory_ns::Pointer_t pFactory = getFactoryForNamespace(nDefine);
+
+ return createFastChildContextFromFactory(pHandler, pFactory, Element);
+}
+
+void OOXMLFactory::characters(OOXMLFastContextHandler * pHandler,
+ const ::rtl::OUString & rString)
+{
+ Id nDefine = pHandler->getDefine();
+ OOXMLFactory_ns::Pointer_t pFactory = getFactoryForNamespace(nDefine);
+
+ if (pFactory.get() != NULL)
+ {
+ pFactory->charactersAction(pHandler, rString);
+ }
+}
+
+void OOXMLFactory::startAction(OOXMLFastContextHandler * pHandler, Token_t /*nToken*/)
+{
+ Id nDefine = pHandler->getDefine();
+ OOXMLFactory_ns::Pointer_t pFactory = getFactoryForNamespace(nDefine);
+
+ if (pFactory.get() != NULL)
+ {
+#ifdef DEBUG_ELEMENT
+ debug_logger->startElement("factory-startAction");
+#endif
+ pFactory->startAction(pHandler);
+#ifdef DEBUG_ELEMENT
+ debug_logger->endElement("factory-startAction");
+#endif
+ }
+}
+
+void OOXMLFactory::endAction(OOXMLFastContextHandler * pHandler, Token_t /*nToken*/)
+{
+ Id nDefine = pHandler->getDefine();
+ OOXMLFactory_ns::Pointer_t pFactory = getFactoryForNamespace(nDefine);
+
+ if (pFactory.get() != NULL)
+ {
+#ifdef DEBUG_ELEMENT
+ debug_logger->startElement("factory-endAction");
+#endif
+ pFactory->endAction(pHandler);
+#ifdef DEBUG_ELEMENT
+ debug_logger->endElement("factory-endAction");
+#endif
+ }
+}
+
+void OOXMLFactory_ns::startAction(OOXMLFastContextHandler *)
+{
+}
+
+void OOXMLFactory_ns::endAction(OOXMLFastContextHandler *)
+{
+}
+
+void OOXMLFactory_ns::charactersAction(OOXMLFastContextHandler *, const ::rtl::OUString &)
+{
+}
+
+void OOXMLFactory_ns::attributeAction(OOXMLFastContextHandler *, Token_t, OOXMLValue::Pointer_t)
+{
+}
+
+}
+}
+
diff --git a/writerfilter/source/ooxml/OOXMLFactory.hxx b/writerfilter/source/ooxml/OOXMLFactory.hxx
new file mode 100755
index 000000000000..0558436ab793
--- /dev/null
+++ b/writerfilter/source/ooxml/OOXMLFactory.hxx
@@ -0,0 +1,176 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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_OOXML_FACTORY_HXX
+#define INCLUDED_OOXML_FACTORY_HXX
+
+#include <hash_map>
+#include <boost/shared_ptr.hpp>
+
+#ifndef INCLUDED_WW8_RESOURCE_MODEL_HXX
+#include <resourcemodel/WW8ResourceModel.hxx>
+#endif
+
+#ifndef INCLUDED_OOXML_FAST_TOKENS_HXX
+#include <ooxml/OOXMLFastTokens.hxx>
+#endif
+
+#ifndef INCLUDED_OOXML_FAST_CONTEXT_HANDLER_HXX
+#include "OOXMLFastContextHandler.hxx"
+#endif
+
+namespace writerfilter {
+namespace ooxml {
+
+using namespace std;
+
+enum ResourceType_t {
+ RT_NoResource,
+ RT_Table,
+ RT_Stream,
+ RT_List,
+ RT_Integer,
+ RT_Properties,
+ RT_Hex,
+ RT_String,
+ RT_Shape,
+ RT_Boolean,
+ RT_HexValue,
+ RT_Value,
+ RT_XNote,
+ RT_TextTableCell,
+ RT_TextTableRow,
+ RT_TextTable,
+ RT_PropertyTable,
+ RT_Any
+};
+
+struct AttributeInfo
+{
+ ResourceType_t m_nResource;
+ Id m_nRef;
+
+ AttributeInfo(ResourceType_t nResource, Id nRef);
+ AttributeInfo();
+};
+
+typedef hash_map<Token_t, AttributeInfo> AttributeToResourceMap;
+typedef boost::shared_ptr<AttributeToResourceMap> AttributeToResourceMapPointer;
+typedef hash_map<Id, AttributeToResourceMapPointer> AttributesMap;
+
+typedef hash_map<rtl::OUString, sal_Int32, ::rtl::OUStringHash> ListValueMap;
+typedef boost::shared_ptr<ListValueMap> ListValueMapPointer;
+typedef hash_map<Id, ListValueMapPointer> ListValuesMap;
+
+struct CreateElement
+{
+ ResourceType_t m_nResource;
+ Id m_nId;
+
+ CreateElement(ResourceType_t nResource, Id nId);
+ CreateElement();
+};
+
+typedef hash_map<Token_t, CreateElement> CreateElementMap;
+typedef boost::shared_ptr<CreateElementMap> CreateElementMapPointer;
+typedef hash_map<Id, CreateElementMapPointer> CreateElementsMap;
+typedef hash_map<Id, string> IdToStringMap;
+typedef boost::shared_ptr<IdToStringMap> IdToStringMapPointer;
+
+typedef hash_map<Id, Token_t> TokenToIdMap;
+typedef boost::shared_ptr<TokenToIdMap> TokenToIdMapPointer;
+typedef hash_map<Id, TokenToIdMapPointer> TokenToIdsMap;
+
+class OOXMLFactory_ns {
+public:
+ typedef boost::shared_ptr<OOXMLFactory_ns> Pointer_t;
+
+ virtual void startAction(OOXMLFastContextHandler * pHandler);
+ virtual void charactersAction(OOXMLFastContextHandler * pHandler, const ::rtl::OUString & rString);
+ virtual void endAction(OOXMLFastContextHandler * pHandler);
+ virtual void attributeAction(OOXMLFastContextHandler * pHandler, Token_t nToken, OOXMLValue::Pointer_t pValue);
+ virtual string getDefineName(Id nId) const;
+
+ AttributeToResourceMapPointer getAttributeToResourceMap(Id nId);
+ ListValueMapPointer getListValueMap(Id nId);
+ CreateElementMapPointer getCreateElementMap(Id nId);
+ TokenToIdMapPointer getTokenToIdMap(Id nId);
+
+protected:
+ virtual ~OOXMLFactory_ns();
+
+ AttributesMap m_AttributesMap;
+ ListValuesMap m_ListValuesMap;
+ CreateElementsMap m_CreateElementsMap;
+ TokenToIdsMap m_TokenToIdsMap;
+
+ virtual AttributeToResourceMapPointer createAttributeToResourceMap(Id nId) = 0;
+ virtual ListValueMapPointer createListValueMap(Id nId) = 0;
+ virtual CreateElementMapPointer createCreateElementMap(Id nId) = 0;
+ virtual TokenToIdMapPointer createTokenToIdMap(Id nId) = 0;
+};
+
+class OOXMLFactory
+{
+public:
+ typedef boost::shared_ptr<OOXMLFactory> Pointer_t;
+
+ static Pointer_t getInstance();
+
+ uno::Reference< xml::sax::XFastContextHandler> createFastChildContext
+ (OOXMLFastContextHandler * pHandler, Token_t Element);
+
+ uno::Reference< xml::sax::XFastContextHandler> createFastChildContextFromStart
+ (OOXMLFastContextHandler * pHandler, Token_t Element);
+
+ void attributes(OOXMLFastContextHandler * pHandler,
+ const uno::Reference< xml::sax::XFastAttributeList > & Attribs);
+
+ void characters(OOXMLFastContextHandler * pHandler,
+ const ::rtl::OUString & rString);
+
+ void startAction(OOXMLFastContextHandler * pHandler, Token_t nToken);
+ void endAction(OOXMLFastContextHandler * pHandler, Token_t nToken);
+
+ virtual ~OOXMLFactory();
+
+private:
+ static Pointer_t m_Instance;
+
+ OOXMLFactory();
+ OOXMLFactory_ns::Pointer_t getFactoryForNamespace(Id id);
+
+ uno::Reference< xml::sax::XFastContextHandler>
+ createFastChildContextFromFactory(OOXMLFastContextHandler * pHandler,
+ OOXMLFactory_ns::Pointer_t pFactory,
+ Token_t Element);
+};
+
+}
+}
+
+#endif // INCLUDED_OOXML_FACTORY_HXX
diff --git a/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx b/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx
index 6b52563887ee..51960959d185 100644
--- a/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx
+++ b/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx
@@ -9,7 +9,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
+ * it under the terms of the GNU Lesser General Public License version 3sen
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
@@ -33,11 +33,15 @@
#include <resourcemodel/QNameToString.hxx>
#include <resourcemodel/util.hxx>
#include <ooxml/resourceids.hxx>
+#include <doctok/sprmids.hxx>
#include <ooxml/OOXMLnamespaceids.hxx>
#include "OOXMLFastContextHandler.hxx"
+#include "OOXMLFactory.hxx"
#include "Handler.hxx"
#include "ooxmlLoggers.hxx"
+static const ::rtl::OUString aEmptyStr;
+
static const sal_uInt8 s0x7[] = { 0x7, 0x0 };
static const sal_uInt8 s0xd[] = { 0xd, 0x0 };
static const sal_uInt8 sCR[] = { 0xd, 0x0 };
@@ -105,10 +109,12 @@ public:
virtual string toString(const Id & rId) const
{
- string s(fastTokenToId(rId));
+ string s((*QNameToString::Instance())(rId));
if (s.size() == 0)
- s = (*QNameToString::Instance())(rId);
+ s = "(fasttoken)" + fastTokenToId(rId);
+ else
+ s = "(qname)" + s;
return s;
}
@@ -124,6 +130,7 @@ OOXMLFastContextHandler::OOXMLFastContextHandler
(uno::Reference< uno::XComponentContext > const & context)
: mpParent(NULL),
mId(0),
+ mnDefine(0),
mnToken(OOXML_FAST_TOKENS_END),
mpStream(NULL),
mnTableDepth(0),
@@ -295,7 +302,7 @@ void OOXMLFastContextHandler::lcl_startFastElement
const uno::Reference< xml::sax::XFastAttributeList > & /*Attribs*/)
throw (uno::RuntimeException, xml::sax::SAXException)
{
- startAction(Element);
+ OOXMLFactory::getInstance()->startAction(this, Element);
}
void OOXMLFastContextHandler::lcl_endFastElement
@@ -310,7 +317,7 @@ void OOXMLFastContextHandler::lcl_endFastElement
debug_logger->endElement("token");
#endif
- endAction(Element);
+ OOXMLFactory::getInstance()->endAction(this, Element);
}
void SAL_CALL OOXMLFastContextHandler::endUnknownElement
@@ -347,14 +354,11 @@ uno::Reference< xml::sax::XFastContextHandler > SAL_CALL
uno::Reference< xml::sax::XFastContextHandler >
OOXMLFastContextHandler::lcl_createFastChildContext
-(Token_t /*Element*/,
+(Token_t Element,
const uno::Reference< xml::sax::XFastAttributeList > & /*Attribs*/)
throw (uno::RuntimeException, xml::sax::SAXException)
{
- OOXMLFastContextHandler * pResult = new OOXMLFastContextHandler(this);
- pResult->setFallback(true);
-
- return uno::Reference< xml::sax::XFastContextHandler > (pResult);
+ return OOXMLFactory::getInstance()->createFastChildContext(this, Element);
}
uno::Reference< xml::sax::XFastContextHandler > SAL_CALL
@@ -386,9 +390,10 @@ void SAL_CALL OOXMLFastContextHandler::characters
}
void OOXMLFastContextHandler::lcl_characters
-(const ::rtl::OUString & /*aChars*/)
+(const ::rtl::OUString & rString)
throw (uno::RuntimeException, xml::sax::SAXException)
{
+ OOXMLFactory::getInstance()->characters(this, rString);
}
const uno::Sequence< sal_Int8 > & OOXMLFastContextHandler::getUnoTunnelId()
@@ -422,9 +427,10 @@ OOXMLValue::Pointer_t OOXMLFastContextHandler::getValue() const
}
void OOXMLFastContextHandler::attributes
-(const uno::Reference< xml::sax::XFastAttributeList > & /*Attribs*/)
+(const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
throw (uno::RuntimeException, xml::sax::SAXException)
{
+ OOXMLFactory::getInstance()->attributes(this, Attribs);
}
void OOXMLFastContextHandler::startAction(Token_t Element)
@@ -438,8 +444,9 @@ void OOXMLFastContextHandler::startAction(Token_t Element)
#endif
}
-void OOXMLFastContextHandler::lcl_startAction(Token_t /* Element */)
+void OOXMLFastContextHandler::lcl_startAction(Token_t Element)
{
+ OOXMLFactory::getInstance()->startAction(this, Element);
}
void OOXMLFastContextHandler::endAction(Token_t Element)
@@ -453,8 +460,9 @@ void OOXMLFastContextHandler::endAction(Token_t Element)
#endif
}
-void OOXMLFastContextHandler::lcl_endAction(Token_t /* Element */)
+void OOXMLFastContextHandler::lcl_endAction(Token_t Element)
{
+ OOXMLFactory::getInstance()->endAction(this, Element);
}
XMLTag::Pointer_t OOXMLFastContextHandler::toPropertiesTag
@@ -518,7 +526,7 @@ void OOXMLFastContextHandler::setId(Id rId)
debug_logger->startElement("setId");
static char sBuffer[256];
- snprintf(sBuffer, sizeof(sBuffer), "%ld", rId);
+ snprintf(sBuffer, sizeof(sBuffer), "%" SAL_PRIuUINT32, rId);
debug_logger->attribute("id", sBuffer);
debug_logger->chars((*QNameToString::Instance())(rId));
@@ -533,6 +541,16 @@ Id OOXMLFastContextHandler::getId() const
return mId;
}
+void OOXMLFastContextHandler::setDefine(Id nDefine)
+{
+ mnDefine = nDefine;
+}
+
+Id OOXMLFastContextHandler::getDefine() const
+{
+ return mnDefine;
+}
+
void OOXMLFastContextHandler::setFallback(bool bFallback)
{
mbFallback = bFallback;
@@ -603,14 +621,14 @@ void OOXMLFastContextHandler::sendTableDepth() const
OOXMLValue::Pointer_t pVal
(new OOXMLIntegerValue(mnTableDepth));
OOXMLProperty::Pointer_t pProp
- (new OOXMLPropertyImpl(0x6649, pVal, OOXMLPropertyImpl::SPRM));
+ (new OOXMLPropertyImpl(NS_sprm::LN_PTableDepth, pVal, OOXMLPropertyImpl::SPRM));
pProps->add(pProp);
}
{
OOXMLValue::Pointer_t pVal
(new OOXMLIntegerValue(1));
OOXMLProperty::Pointer_t pProp
- (new OOXMLPropertyImpl(0x2416, pVal, OOXMLPropertyImpl::SPRM));
+ (new OOXMLPropertyImpl(NS_sprm::LN_PFInTable, pVal, OOXMLPropertyImpl::SPRM));
pProps->add(pProp);
}
@@ -620,10 +638,10 @@ void OOXMLFastContextHandler::sendTableDepth() const
debug_logger->endElement("props");
#endif
mpStream->props(writerfilter::Reference<Properties>::Pointer_t(pProps));
-#ifdef DEBUG_PROPERTIES
- debug_logger->endElement("sendTableDepth");
-#endif
}
+#ifdef DEBUG_ELEMENT
+ debug_logger->endElement("sendTableDepth");
+#endif
}
void OOXMLFastContextHandler::setHandle()
@@ -945,13 +963,103 @@ bool OOXMLFastContextHandler::propagatesProperties() const
return false;
}
+void OOXMLFastContextHandler::propagateCellProperties()
+{
+#ifdef DEBUG_ELEMENT
+ debug_logger->element("propagateCellProperties");
+#endif
+
+ mpParserState->setCellProperties(getPropertySet());
+}
+
+void OOXMLFastContextHandler::propagateRowProperties()
+{
+#ifdef DEBUG_ELEMENT
+ debug_logger->element("propagateRowProperties");
+#endif
+
+ mpParserState->setRowProperties(getPropertySet());
+}
+
void OOXMLFastContextHandler::propagateTableProperties()
{
+ OOXMLPropertySet::Pointer_t pProps = getPropertySet();
+#ifdef DEBUG_ELEMENT
+ debug_logger->startElement("propagateTableProperties");
+ debug_logger->addTag(toPropertiesTag(pProps));
+ debug_logger->endElement("propagateTableProperties");
+#endif
+
+ mpParserState->setTableProperties(pProps);
+}
+
+void OOXMLFastContextHandler::sendCellProperties()
+{
+#ifdef DEBUG_ELEMENT
+ debug_logger->startElement("sendCellProperties");
+#endif
+
+ mpParserState->resolveCellProperties(*mpStream);
+
+#ifdef DEBUG_ELEMENT
+ debug_logger->endElement("sendCellProperties");
+#endif
+}
+
+void OOXMLFastContextHandler::sendRowProperties()
+{
+#ifdef DEBUG_ELEMENT
+ debug_logger->startElement("sendRowProperties");
+#endif
+
+ mpParserState->resolveRowProperties(*mpStream);
+
+#ifdef DEBUG_ELEMENT
+ debug_logger->endElement("sendRowProperties");
+#endif
+}
+
+void OOXMLFastContextHandler::sendTableProperties()
+{
#ifdef DEBUG_ELEMENT
- debug_logger->element("propagateTableProperties");
+ debug_logger->startElement("sendTableProperties");
#endif
- mpParserState->setTableProperties(getPropertySet());
+ mpParserState->resolveTableProperties(*mpStream);
+
+#ifdef DEBUG_ELEMENT
+ debug_logger->endElement("sendTableProperties");
+#endif
+}
+
+void OOXMLFastContextHandler::clearCellProps()
+{
+#ifdef DEBUG_ELEMENT
+ debug_logger->element("clearCellProps");
+#endif
+
+ mpParserState->setCellProperties(OOXMLPropertySet::Pointer_t
+ (new OOXMLPropertySetImpl()));
+}
+
+void OOXMLFastContextHandler::clearRowProps()
+{
+#ifdef DEBUG_ELEMENT
+ debug_logger->element("clearRowProps");
+#endif
+
+ mpParserState->setRowProperties(OOXMLPropertySet::Pointer_t
+ (new OOXMLPropertySetImpl()));
+}
+
+void OOXMLFastContextHandler::clearTableProps()
+{
+#ifdef DEBUG_ELEMENT
+ debug_logger->element("clearTableProps");
+#endif
+
+ mpParserState->setTableProperties(OOXMLPropertySet::Pointer_t
+ (new OOXMLPropertySetImpl()));
}
void OOXMLFastContextHandler::sendPropertiesWithId(const Id & rId)
@@ -985,6 +1093,27 @@ void OOXMLFastContextHandler::clearProps()
setPropertySet(OOXMLPropertySet::Pointer_t(new OOXMLPropertySetImpl()));
}
+void OOXMLFastContextHandler::setDefaultBooleanValue()
+{
+}
+
+void OOXMLFastContextHandler::setDefaultIntegerValue()
+{
+}
+
+void OOXMLFastContextHandler::setDefaultHexValue()
+{
+}
+
+void OOXMLFastContextHandler::setDefaultStringValue()
+{
+}
+
+const ::rtl::OUString & OOXMLFastContextHandler::getText() const
+{
+ return aEmptyStr;
+}
+
void OOXMLFastContextHandler::setDocument(OOXMLDocument * pDocument)
{
mpParserState->setDocument(pDocument);
@@ -1021,6 +1150,11 @@ void OOXMLFastContextHandler::setXNoteId(const ::rtl::OUString & rId)
mpParserState->setXNoteId(rId);
}
+void OOXMLFastContextHandler::setXNoteId(OOXMLValue::Pointer_t pValue)
+{
+ mpParserState->setXNoteId(pValue->getString());
+}
+
const rtl::OUString & OOXMLFastContextHandler::getXNoteId() const
{
return mpParserState->getXNoteId();
@@ -1083,6 +1217,10 @@ void OOXMLFastContextHandler::resolvePropertySetAttrs()
void OOXMLFastContextHandler::sendPropertyToParent()
{
+#ifdef DEBUG_ELEMENT
+ debug_logger->startElement("sendPropertyToParent");
+#endif
+
if (mpParent != NULL)
{
OOXMLPropertySet::Pointer_t pProps(mpParent->getPropertySet());
@@ -1093,8 +1231,64 @@ void OOXMLFastContextHandler::sendPropertyToParent()
pProp(new OOXMLPropertyImpl(mId, getValue(),
OOXMLPropertyImpl::SPRM));
pProps->add(pProp);
+
+#ifdef DEBUG_ELEMENT
+ debug_logger->addTag(toPropertiesTag(pProps));
+#endif
}
}
+
+#ifdef DEBUG_ELEMENT
+ debug_logger->endElement("sendPropertyToParent");
+#endif
+}
+
+void OOXMLFastContextHandler::sendPropertiesToParent()
+{
+#ifdef DEBUG_ELEMENT
+ debug_logger->startElement("sendPropertiesToParent");
+#endif
+ if (mpParent != NULL)
+ {
+ OOXMLPropertySet::Pointer_t pParentProps(mpParent->getPropertySet());
+
+ if (pParentProps.get() != NULL)
+ {
+ OOXMLPropertySet::Pointer_t pProps(getPropertySet());
+
+#ifdef DEBUG_ELEMENT
+ debug_logger->startElement("me");
+ debug_logger->addTag(toPropertiesTag(pProps));
+ debug_logger->endElement("me");
+#endif
+
+ if (pProps.get() != NULL)
+ {
+ OOXMLValue::Pointer_t pValue
+ (new OOXMLPropertySetValue(getPropertySet()));
+
+ OOXMLProperty::Pointer_t pProp
+ (new OOXMLPropertyImpl(getId(), pValue, OOXMLPropertyImpl::SPRM));
+
+#ifdef DEBUG_ELEMENT
+ debug_logger->startElement("propertyForSet");
+ debug_logger->chars(pProp->toString());
+ debug_logger->endElement("propertyForSet");
+#endif
+
+ pParentProps->add(pProp);
+
+#ifdef DEBUG_ELEMENT
+ debug_logger->startElement("parent");
+ debug_logger->addTag(toPropertiesTag(pParentProps));
+ debug_logger->endElement("parent");
+#endif
+ }
+ }
+ }
+#ifdef DEBUG_ELEMENT
+ debug_logger->endElement("sendPropertiesToParent");
+#endif
}
uno::Reference< uno::XComponentContext >
@@ -1229,39 +1423,16 @@ void OOXMLFastContextHandlerProperties::lcl_endFastElement
{
#ifdef DEBUG_PROPERTIES
debug_logger->startElement("sendproperties");
- debug_logger->addTag(toPropertiesTag(getPropertySet()));
- debug_logger->endElement("sendproperties");
#endif
mpStream->props(mpPropertySet);
+#ifdef DEBUG_PROPERTIES
+ debug_logger->endElement("sendproperties");
+#endif
}
}
else
{
- OOXMLValue::Pointer_t pVal
- (new OOXMLPropertySetValue(mpPropertySet));
-
- OOXMLPropertyImpl::Pointer_t pProperty
- (new OOXMLPropertyImpl(mId, pVal, OOXMLPropertyImpl::SPRM));
-
- OOXMLPropertySet::Pointer_t pProperties = (*mpParent).getPropertySet();
-
- if (pProperties.get() != NULL)
- {
-#ifdef DEBUG_PROPERTIES
- debug_logger->startElement("property");
- debug_logger->chars(xmlify(pProperty->toString()));
- debug_logger->endElement("property");
-#endif
- pProperties->add(pProperty);
- }
-#ifdef DEBUG_PROPERTIES
- else if (! propagatesProperties())
- {
- debug_logger->startElement("warning");
- debug_logger->chars("properties lost");
- debug_logger->endElement("warning");
- }
-#endif
+ sendPropertiesToParent();
}
}
@@ -1425,197 +1596,102 @@ void OOXMLFastContextHandlerPropertyTable::lcl_endFastElement
mTable.add(pTmpVal);
writerfilter::Reference<Table>::Pointer_t pTable(mTable.clone());
- mpStream->table(mId, pTable);
-
- endAction(Element);
-}
-
-/*
- class OOXMLFastContextHandlerBooleanValue
- */
-
-OOXMLFastContextHandlerBooleanValue::OOXMLFastContextHandlerBooleanValue
-(OOXMLFastContextHandler * pContext)
-: OOXMLFastContextHandler(pContext), mbValue(true)
-{
-}
-OOXMLFastContextHandlerBooleanValue::~OOXMLFastContextHandlerBooleanValue()
-{
-}
-
-void OOXMLFastContextHandlerBooleanValue::attributes
-(const uno::Reference < xml::sax::XFastAttributeList > & Attribs)
- throw (uno::RuntimeException, xml::sax::SAXException)
-{
- if (Attribs->hasAttribute(NS_wordprocessingml|OOXML_val))
- mbValue = Attribs->getValue(NS_wordprocessingml|OOXML_val).toBoolean();
-}
-
-OOXMLValue::Pointer_t OOXMLFastContextHandlerBooleanValue::getValue() const
-{
- return OOXMLValue::Pointer_t(new OOXMLBooleanValue(mbValue));
-}
-
-void OOXMLFastContextHandlerBooleanValue::setValue
-(const ::rtl::OUString & rString)
-{
- static rtl::OUString sOn(RTL_CONSTASCII_USTRINGPARAM("on"));
- static rtl::OUString sOff(RTL_CONSTASCII_USTRINGPARAM("off"));
- static rtl::OUString sTrue(RTL_CONSTASCII_USTRINGPARAM("true"));
- static rtl::OUString sFalse(RTL_CONSTASCII_USTRINGPARAM("false"));
-
- if (rString == sOn || rString == sTrue)
- mbValue = true;
- else if (rString == sOff || rString == sFalse)
- mbValue = false;
-}
+#ifdef DEBUG_PROPERTIES
+ debug_logger->startElement("table");
+ debug_logger->attribute("id", (*QNameToString::Instance())(mId));
+ debug_logger->endElement("table");
+#endif
-void OOXMLFastContextHandlerBooleanValue::lcl_endFastElement
-(Token_t Element)
- throw (uno::RuntimeException, xml::sax::SAXException)
-{
- sendPropertyToParent();
+ mpStream->table(mId, pTable);
endAction(Element);
}
/*
- class OOXMLFastContextHandlerIntegerValue
- */
+ class OOXMLFastContextHandlerValue
+*/
-OOXMLFastContextHandlerIntegerValue::OOXMLFastContextHandlerIntegerValue
+OOXMLFastContextHandlerValue::OOXMLFastContextHandlerValue
(OOXMLFastContextHandler * pContext)
-: OOXMLFastContextHandler(pContext), mnValue(0)
-{
-}
-
-OOXMLFastContextHandlerIntegerValue::~OOXMLFastContextHandlerIntegerValue()
-{
-}
-
-void OOXMLFastContextHandlerIntegerValue::attributes
-(const uno::Reference < xml::sax::XFastAttributeList > & Attribs)
- throw (uno::RuntimeException, xml::sax::SAXException)
-{
- if (Attribs->hasAttribute(NS_wordprocessingml|OOXML_val))
- mnValue = Attribs->getValue(NS_wordprocessingml|OOXML_val).toInt32();
-}
-
-void OOXMLFastContextHandlerIntegerValue::lcl_endFastElement
-(Token_t Element)
- throw (uno::RuntimeException, xml::sax::SAXException)
-{
- sendPropertyToParent();
-
- endAction(Element);
-}
-
-OOXMLValue::Pointer_t OOXMLFastContextHandlerIntegerValue::getValue() const
+: OOXMLFastContextHandler(pContext)
{
- return OOXMLValue::Pointer_t(new OOXMLIntegerValue(mnValue));
}
-/*
- class OOXMLFastContextHandlerStringValue
- */
-
-OOXMLFastContextHandlerStringValue::OOXMLFastContextHandlerStringValue
-(OOXMLFastContextHandler * pContext)
-: OOXMLFastContextHandler(pContext)
+OOXMLFastContextHandlerValue::~OOXMLFastContextHandlerValue()
{
}
-OOXMLFastContextHandlerStringValue::~OOXMLFastContextHandlerStringValue()
+void OOXMLFastContextHandlerValue::setValue(OOXMLValue::Pointer_t pValue)
{
+ mpValue = pValue;
}
-void OOXMLFastContextHandlerStringValue::attributes
-(const uno::Reference < xml::sax::XFastAttributeList > & Attribs)
- throw (uno::RuntimeException, xml::sax::SAXException)
+OOXMLValue::Pointer_t OOXMLFastContextHandlerValue::getValue() const
{
- if (Attribs->hasAttribute(NS_wordprocessingml|OOXML_val))
- msValue = Attribs->getValue(NS_wordprocessingml|OOXML_val);
+ return mpValue;
}
-void OOXMLFastContextHandlerStringValue::lcl_endFastElement
+void OOXMLFastContextHandlerValue::lcl_endFastElement
(Token_t Element)
- throw (uno::RuntimeException, xml::sax::SAXException)
+throw (uno::RuntimeException, xml::sax::SAXException)
{
sendPropertyToParent();
endAction(Element);
}
-OOXMLValue::Pointer_t OOXMLFastContextHandlerStringValue::getValue() const
+void OOXMLFastContextHandlerValue::setDefaultBooleanValue()
{
- return OOXMLValue::Pointer_t(new OOXMLStringValue(msValue));
-}
-
-/*
- class OOXMLFastContextHandlerHexValue
- */
-
-OOXMLFastContextHandlerHexValue::OOXMLFastContextHandlerHexValue
-(OOXMLFastContextHandler * pContext)
-: OOXMLFastContextHandler(pContext), mnValue(0)
-{
-}
-
-OOXMLFastContextHandlerHexValue::~OOXMLFastContextHandlerHexValue()
-{
-}
+#ifdef DEBUG_ELEMENT
+ debug_logger->element("setDefaultBooleanValue");
+#endif
-void OOXMLFastContextHandlerHexValue::attributes
-(const uno::Reference < xml::sax::XFastAttributeList > & Attribs)
- throw (uno::RuntimeException, xml::sax::SAXException)
-{
- if (Attribs->hasAttribute(NS_wordprocessingml|OOXML_val))
- mnValue = Attribs->getValue(NS_wordprocessingml|OOXML_val).toInt32(16);
+ if (mpValue.get() == NULL)
+ {
+ OOXMLValue::Pointer_t pValue(new OOXMLBooleanValue(true));
+ setValue(pValue);
+ }
}
-void OOXMLFastContextHandlerHexValue::lcl_endFastElement
-(Token_t Element)
- throw (uno::RuntimeException, xml::sax::SAXException)
+void OOXMLFastContextHandlerValue::setDefaultIntegerValue()
{
- sendPropertyToParent();
+#ifdef DEBUG_ELEMENT
+ debug_logger->element("setDefaultIntegerValue");
+#endif
- endAction(Element);
+ if (mpValue.get() == NULL)
+ {
+ OOXMLValue::Pointer_t pValue(new OOXMLIntegerValue(0));
+ setValue(pValue);
+ }
}
-OOXMLValue::Pointer_t OOXMLFastContextHandlerHexValue::getValue() const
+void OOXMLFastContextHandlerValue::setDefaultHexValue()
{
- return OOXMLValue::Pointer_t(new OOXMLIntegerValue(mnValue));
-}
-
-/*
- class OOXMLFastContextHandlerListValue
- */
-
-OOXMLFastContextHandlerListValue::OOXMLFastContextHandlerListValue
-(OOXMLFastContextHandler * pContext)
-: OOXMLFastContextHandler(pContext)
-{
-}
+#ifdef DEBUG_ELEMENT
+ debug_logger->element("setDefaultHexValue");
+#endif
-OOXMLFastContextHandlerListValue::~OOXMLFastContextHandlerListValue()
-{
+ if (mpValue.get() == NULL)
+ {
+ OOXMLValue::Pointer_t pValue(new OOXMLHexValue(0));
+ setValue(pValue);
+ }
}
-void OOXMLFastContextHandlerListValue::lcl_endFastElement
-(Token_t Element)
- throw (uno::RuntimeException, xml::sax::SAXException)
+void OOXMLFastContextHandlerValue::setDefaultStringValue()
{
- sendPropertyToParent();
-
- endAction(Element);
-}
+#ifdef DEBUG_ELEMENT
+ debug_logger->element("setDefaultStringValue");
+#endif
-OOXMLValue::Pointer_t OOXMLFastContextHandlerListValue::getValue() const
-{
- return mpValue;
+ if (mpValue.get() == NULL)
+ {
+ OOXMLValue::Pointer_t pValue(new OOXMLStringValue(::rtl::OUString()));
+ setValue(pValue);
+ }
}
-
/*
class OOXMLFastContextHandlerTable
*/
@@ -1652,7 +1728,16 @@ void OOXMLFastContextHandlerTable::lcl_endFastElement
writerfilter::Reference<Table>::Pointer_t pTable(mTable.clone());
if (isForwardEvents() && mId != 0x0)
+ {
+#ifdef DEBUG_PROPERTIES
+ debug_logger->startElement("table");
+ string str = (*QNameToString::Instance())(mId);
+ debug_logger->attribute("id", str);
+ debug_logger->endElement("table");
+#endif
+
mpStream->table(mId, pTable);
+ }
}
void OOXMLFastContextHandlerTable::addCurrentChild()
@@ -1714,16 +1799,16 @@ void OOXMLFastContextHandlerXNote::lcl_endFastElement
setForwardEvents(mbForwardEventsSaved);
}
-void OOXMLFastContextHandlerXNote::checkId(const rtl::OUString & rId)
+void OOXMLFastContextHandlerXNote::checkId(OOXMLValue::Pointer_t pValue)
{
#ifdef DEBUG_ELEMENT
debug_logger->startElement("checkId");
- debug_logger->attribute("myId", rId);
+ debug_logger->attribute("myId", pValue->getString());
debug_logger->attribute("id", getXNoteId());
debug_logger->endElement("checkId");
#endif
- msMyXNoteId = rId;
+ msMyXNoteId = pValue->getString();
}
/*
@@ -1753,21 +1838,21 @@ void OOXMLFastContextHandlerTextTableCell::endCell()
OOXMLValue::Pointer_t pVal
(new OOXMLIntegerValue(mnTableDepth));
OOXMLProperty::Pointer_t pProp
- (new OOXMLPropertyImpl(0x6649, pVal, OOXMLPropertyImpl::SPRM));
+ (new OOXMLPropertyImpl(NS_sprm::LN_PTableDepth, pVal, OOXMLPropertyImpl::SPRM));
pProps->add(pProp);
}
{
OOXMLValue::Pointer_t pVal
(new OOXMLIntegerValue(1));
OOXMLProperty::Pointer_t pProp
- (new OOXMLPropertyImpl(0x2416, pVal, OOXMLPropertyImpl::SPRM));
+ (new OOXMLPropertyImpl(NS_sprm::LN_PFInTable, pVal, OOXMLPropertyImpl::SPRM));
pProps->add(pProp);
}
{
OOXMLValue::Pointer_t pVal
- (new OOXMLIntegerValue(mnTableDepth));
+ (new OOXMLBooleanValue(mnTableDepth > 0));
OOXMLProperty::Pointer_t pProp
- (new OOXMLPropertyImpl(0x244b, pVal, OOXMLPropertyImpl::SPRM));
+ (new OOXMLPropertyImpl(NS_sprm::LN_PCell, pVal, OOXMLPropertyImpl::SPRM));
pProps->add(pProp);
}
@@ -1789,12 +1874,10 @@ OOXMLFastContextHandlerTextTableRow::OOXMLFastContextHandlerTextTableRow
(OOXMLFastContextHandler * pContext)
: OOXMLFastContextHandler(pContext)
{
- startRow();
}
OOXMLFastContextHandlerTextTableRow::~OOXMLFastContextHandlerTextTableRow()
{
- endRow();
}
void OOXMLFastContextHandlerTextTableRow::startRow()
@@ -1812,21 +1895,21 @@ void OOXMLFastContextHandlerTextTableRow::endRow()
OOXMLValue::Pointer_t pVal
(new OOXMLIntegerValue(mnTableDepth));
OOXMLProperty::Pointer_t pProp
- (new OOXMLPropertyImpl(0x6649, pVal, OOXMLPropertyImpl::SPRM));
+ (new OOXMLPropertyImpl(NS_sprm::LN_PTableDepth, pVal, OOXMLPropertyImpl::SPRM));
pProps->add(pProp);
}
{
OOXMLValue::Pointer_t pVal
(new OOXMLIntegerValue(1));
OOXMLProperty::Pointer_t pProp
- (new OOXMLPropertyImpl(0x2416, pVal, OOXMLPropertyImpl::SPRM));
+ (new OOXMLPropertyImpl(NS_sprm::LN_PFInTable, pVal, OOXMLPropertyImpl::SPRM));
pProps->add(pProp);
}
{
OOXMLValue::Pointer_t pVal
(new OOXMLIntegerValue(1));
OOXMLProperty::Pointer_t pProp
- (new OOXMLPropertyImpl(0x244c, pVal, OOXMLPropertyImpl::SPRM));
+ (new OOXMLPropertyImpl(NS_sprm::LN_PRow, pVal, OOXMLPropertyImpl::SPRM));
pProps->add(pProp);
}
@@ -1838,7 +1921,6 @@ void OOXMLFastContextHandlerTextTableRow::endRow()
#endif
mpStream->props(writerfilter::Reference<Properties>::Pointer_t(pProps));
- mpParserState->resolveTableProperties(*mpStream);
}
startCharacterGroup();
@@ -1846,6 +1928,7 @@ void OOXMLFastContextHandlerTextTableRow::endRow()
if (isForwardEvents())
mpStream->utext(s0xd, 1);
+ endCharacterGroup();
endParagraphGroup();
}
@@ -1861,6 +1944,7 @@ OOXMLFastContextHandlerTextTable::OOXMLFastContextHandlerTextTable
OOXMLFastContextHandlerTextTable::~OOXMLFastContextHandlerTextTable()
{
+ clearTableProps();
}
void OOXMLFastContextHandlerTextTable::lcl_startFastElement
@@ -1868,6 +1952,7 @@ void OOXMLFastContextHandlerTextTable::lcl_startFastElement
const uno::Reference< xml::sax::XFastAttributeList > & /*Attribs*/)
throw (uno::RuntimeException, xml::sax::SAXException)
{
+ mpParserState->startTable();
mnTableDepth++;
boost::shared_ptr<OOXMLPropertySet> pProps( new OOXMLPropertySetImpl );
@@ -1890,6 +1975,7 @@ void OOXMLFastContextHandlerTextTable::lcl_endFastElement
endAction(Element);
mnTableDepth--;
+ mpParserState->endTable();
}
/*
@@ -1964,7 +2050,8 @@ void SAL_CALL ShapesNoAdd::remove(const uno::Reference< drawing::XShape > & xSha
OOXMLFastContextHandlerShape::OOXMLFastContextHandlerShape
(OOXMLFastContextHandler * pContext)
-: OOXMLFastContextHandlerProperties(pContext), m_bShapeSent( false )
+: OOXMLFastContextHandlerProperties(pContext), m_bShapeSent( false ),
+ m_bShapeStarted(false)
{
uno::Reference<uno::XComponentContext> xContext(getComponentContext());
if (xContext.is())
@@ -2056,7 +2143,10 @@ void OOXMLFastContextHandlerShape::sendShape( Token_t Element )
// Notify the dmapper that the shape is ready to use
if ( !bIsPicture )
+ {
mpStream->startShape( xShape );
+ m_bShapeStarted = true;
+ }
}
}
}
@@ -2075,7 +2165,7 @@ void OOXMLFastContextHandlerShape::lcl_endFastElement
// Ending the shape should be the last thing to do
bool bIsPicture = Element == ( NS_picture | OOXML_pic );
- if ( !bIsPicture )
+ if ( !bIsPicture && m_bShapeStarted)
mpStream->endShape( );
}
@@ -2103,7 +2193,7 @@ OOXMLFastContextHandlerShape::lcl_createFastChildContext
case NS_wordprocessingml:
case NS_vml_wordprocessingDrawing:
case NS_office:
- xContextHandler.set(createFromStart(Element, Attribs));
+ xContextHandler.set(OOXMLFactory::getInstance()->createFastChildContextFromStart(this, Element));
break;
default:
if (mrShapeContext.is())
@@ -2287,7 +2377,7 @@ OOXMLFastContextHandlerWrapper::lcl_createFastChildContext
bool bInNamespaces = mMyNamespaces.find(nNameSpace) != mMyNamespaces.end();
bool bInTokens = mMyTokens.find( Element ) != mMyTokens.end( );
if ( bInNamespaces )
- xResult.set(createFromStart(Element, Attribs));
+ xResult.set(OOXMLFactory::getInstance()->createFastChildContextFromStart(this, Element));
else if (mxContext.is())
{
OOXMLFastContextHandlerWrapper * pWrapper =
diff --git a/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx b/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx
index 26e040182f57..b67f86fda3e7 100644
--- a/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx
+++ b/writerfilter/source/ooxml/OOXMLFastContextHandler.hxx
@@ -130,7 +130,7 @@ public:
*/
virtual string getType() const { return "??"; }
- virtual ResourceEnum_t getResource() const { return UNKNOWN; }
+ virtual ResourceEnum_t getResource() const { return STREAM; }
static XMLTag::Pointer_t toPropertiesTag(OOXMLPropertySet::Pointer_t);
virtual XMLTag::Pointer_t toTag() const;
@@ -168,6 +168,7 @@ public:
void setDocument(OOXMLDocument * pDocument);
OOXMLDocument * getDocument();
+ void setXNoteId(OOXMLValue::Pointer_t pValue);
void setXNoteId(const ::rtl::OUString & rId);
const rtl::OUString & getXNoteId() const;
void setForwardEvents(bool bForwardEvents);
@@ -176,6 +177,8 @@ public:
virtual void setId(Id nId);
virtual Id getId() const;
+ void setDefine(Id nDefine);
+ Id getDefine() const;
void setFallback(bool bFallbac);
bool isFallback() const;
@@ -188,11 +191,61 @@ public:
sal_uInt32 getInstanceNumber() const;
+ void sendTableDepth() const;
+ void setHandle();
+
+ void startSectionGroup();
+ void setLastParagraphInSection();
+ void endSectionGroup();
+ void startParagraphGroup();
+ void endParagraphGroup();
+ void startCharacterGroup();
+ void endCharacterGroup();
+
+ void startField();
+ void fieldSeparator();
+ void endField();
+ void ftnednref();
+ void ftnedncont();
+ void ftnednsep();
+ void pgNum();
+ void tab();
+ void cr();
+ void noBreakHyphen();
+ void softHyphen();
+ void handleLastParagraphInSection();
+ void endOfParagraph();
+ void text(const ::rtl::OUString & sText);
+ virtual void propagateCharacterProperties();
+ virtual void propagateCharacterPropertiesAsSet(const Id & rId);
+ virtual void propagateTableProperties();
+ virtual void propagateRowProperties();
+ virtual void propagateCellProperties();
+ virtual bool propagatesProperties() const;
+ void sendPropertiesWithId(const Id & rId);
+ void sendPropertiesToParent();
+ void sendCellProperties();
+ void sendRowProperties();
+ void sendTableProperties();
+ void clearCellProps();
+ void clearRowProps();
+ void clearTableProps();
+ void clearProps();
+
+ virtual void setDefaultBooleanValue();
+ virtual void setDefaultIntegerValue();
+ virtual void setDefaultHexValue();
+ virtual void setDefaultStringValue();
+
+ const ::rtl::OUString & getText() const;
+
+ void sendPropertyToParent();
static void dumpOpenContexts();
protected:
OOXMLFastContextHandler * mpParent;
Id mId;
+ Id mnDefine;
Token_t mnToken;
#ifdef DEBUG_CONTEXT_STACK
@@ -238,40 +291,6 @@ protected:
(const ::rtl::OUString & rId);
virtual void resolvePropertySetAttrs();
- void sendTableDepth() const;
- void setHandle();
-
- void startSectionGroup();
- void setLastParagraphInSection();
- void endSectionGroup();
- void startParagraphGroup();
- void endParagraphGroup();
- void startCharacterGroup();
- void endCharacterGroup();
-
- void startField();
- void fieldSeparator();
- void endField();
- void ftnednref();
- void ftnedncont();
- void ftnednsep();
- void pgNum();
- void tab();
- void cr();
- void noBreakHyphen();
- void softHyphen();
- void handleLastParagraphInSection();
- void endOfParagraph();
- void text(const ::rtl::OUString & sText);
- virtual void propagateCharacterProperties();
- virtual void propagateCharacterPropertiesAsSet(const Id & rId);
- virtual bool propagatesProperties() const;
- void sendPropertiesWithId(const Id & rId);
- void propagateTableProperties();
- void clearProps();
-
- void sendPropertyToParent();
-
uno::Reference< uno::XComponentContext > getComponentContext();
sal_uInt32 mnInstanceNumber;
@@ -368,101 +387,29 @@ protected:
throw (uno::RuntimeException, xml::sax::SAXException);
};
-class OOXMLFastContextHandlerBooleanValue :
+class OOXMLFastContextHandlerValue :
public OOXMLFastContextHandler
{
public:
- OOXMLFastContextHandlerBooleanValue
+ OOXMLFastContextHandlerValue
(OOXMLFastContextHandler * pContext);
- virtual ~OOXMLFastContextHandlerBooleanValue();
-
-protected:
- bool mbValue;
-
- virtual void attributes
- (const uno::Reference < xml::sax::XFastAttributeList > & Attribs)
- throw (uno::RuntimeException, xml::sax::SAXException);
- virtual void lcl_endFastElement(Token_t Element)
- throw (uno::RuntimeException, xml::sax::SAXException);
+ virtual ~OOXMLFastContextHandlerValue();
+ virtual void setValue(OOXMLValue::Pointer_t pValue);
virtual OOXMLValue::Pointer_t getValue() const;
- void setValue(const ::rtl::OUString & rString);
-};
-
-class OOXMLFastContextHandlerIntegerValue :
- public OOXMLFastContextHandler
-{
-public:
- OOXMLFastContextHandlerIntegerValue
- (OOXMLFastContextHandler * pContext);
- virtual ~OOXMLFastContextHandlerIntegerValue();
-
-protected:
- sal_Int32 mnValue;
- void attributes
- (const uno::Reference < xml::sax::XFastAttributeList > & Attribs)
- throw (uno::RuntimeException, xml::sax::SAXException);
- virtual void lcl_endFastElement(Token_t Element)
- throw (uno::RuntimeException, xml::sax::SAXException);
-
- virtual OOXMLValue::Pointer_t getValue() const;
-};
-
-class OOXMLFastContextHandlerStringValue :
- public OOXMLFastContextHandler
-{
-public:
- OOXMLFastContextHandlerStringValue
- (OOXMLFastContextHandler * pContext);
- virtual ~OOXMLFastContextHandlerStringValue();
-
-protected:
- ::rtl::OUString msValue;
-
- void attributes
- (const uno::Reference < xml::sax::XFastAttributeList > & Attribs)
- throw (uno::RuntimeException, xml::sax::SAXException);
virtual void lcl_endFastElement(Token_t Element)
- throw (uno::RuntimeException, xml::sax::SAXException);
-
- virtual OOXMLValue::Pointer_t getValue() const;
-};
-
-class OOXMLFastContextHandlerHexValue :
- public OOXMLFastContextHandler
-{
-public:
- OOXMLFastContextHandlerHexValue
- (OOXMLFastContextHandler * pContext);
- virtual ~OOXMLFastContextHandlerHexValue();
-
-protected:
- sal_Int32 mnValue;
-
- void attributes
- (const uno::Reference < xml::sax::XFastAttributeList > & Attribs)
- throw (uno::RuntimeException, xml::sax::SAXException);
- virtual void lcl_endFastElement(Token_t Element)
- throw (uno::RuntimeException, xml::sax::SAXException);
+ throw (uno::RuntimeException, xml::sax::SAXException);
- virtual OOXMLValue::Pointer_t getValue() const;
-};
+ virtual string getType() const { return "Value"; }
-class OOXMLFastContextHandlerListValue :
- public OOXMLFastContextHandler
-{
-public:
- OOXMLFastContextHandlerListValue
- (OOXMLFastContextHandler * pContext);
- virtual ~OOXMLFastContextHandlerListValue();
+ virtual void setDefaultBooleanValue();
+ virtual void setDefaultIntegerValue();
+ virtual void setDefaultHexValue();
+ virtual void setDefaultStringValue();
protected:
- mutable OOXMLValue::Pointer_t mpValue;
-
- virtual void lcl_endFastElement(Token_t Element)
- throw (uno::RuntimeException, xml::sax::SAXException);
- virtual OOXMLValue::Pointer_t getValue() const;
+ OOXMLValue::Pointer_t mpValue;
};
class OOXMLFastContextHandlerTable : public OOXMLFastContextHandler
@@ -488,6 +435,8 @@ protected:
virtual ResourceEnum_t getResource() const { return TABLE; }
+ virtual string getType() const { return "Table"; }
+
void addCurrentChild();
};
@@ -497,7 +446,10 @@ public:
OOXMLFastContextHandlerXNote(OOXMLFastContextHandler * pContext);
virtual ~OOXMLFastContextHandlerXNote();
- void checkId(const rtl::OUString & rId);
+ void checkId(OOXMLValue::Pointer_t pValue);
+
+ virtual string getType() const { return "XNote"; }
+
private:
bool mbForwardEventsSaved;
::rtl::OUString msMyXNoteId;
@@ -520,6 +472,8 @@ public:
(OOXMLFastContextHandler * pContext);
virtual ~OOXMLFastContextHandlerTextTableCell();
+ virtual string getType() const { return "TextTableCell"; }
+
void startCell();
void endCell();
};
@@ -531,6 +485,8 @@ public:
(OOXMLFastContextHandler * pContext);
virtual ~OOXMLFastContextHandlerTextTableRow();
+ virtual string getType() const { return "TextTableRow"; }
+
void startRow();
void endRow();
};
@@ -543,6 +499,8 @@ public:
virtual ~OOXMLFastContextHandlerTextTable();
+ virtual string getType() const { return "TextTable"; }
+
protected:
virtual void lcl_startFastElement
(Token_t Element,
@@ -557,12 +515,15 @@ class OOXMLFastContextHandlerShape: public OOXMLFastContextHandlerProperties
{
private:
bool m_bShapeSent;
+ bool m_bShapeStarted;
public:
explicit OOXMLFastContextHandlerShape
(OOXMLFastContextHandler * pContext);
virtual ~OOXMLFastContextHandlerShape();
+ virtual string getType() const { return "Shape"; }
+
// ::com::sun::star::xml::sax::XFastContextHandler:
virtual void SAL_CALL startUnknownElement
(const ::rtl::OUString & Namespace,
diff --git a/writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx b/writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx
index e9a7ece6a487..f4feddf341ac 100644
--- a/writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx
+++ b/writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx
@@ -27,9 +27,14 @@
#include <iostream>
#include <boost/shared_ptr.hpp>
+#ifdef DEBUG_ELEMENT
+#include "ooxmlLoggers.hxx"
+#include <resourcemodel/Protocol.hxx>
+#endif
#include "OOXMLFastDocumentHandler.hxx"
#include "OOXMLFastContextHandler.hxx"
#include "OOXMLFastTokens.hxx"
+#include "OOXMLFactory.hxx"
namespace writerfilter {
namespace ooxml
@@ -135,7 +140,7 @@ OOXMLFastDocumentHandler::getContextHandler() const
uno::Reference< xml::sax::XFastContextHandler > SAL_CALL
OOXMLFastDocumentHandler::createFastChildContext
(::sal_Int32 Element,
- const uno::Reference< xml::sax::XFastAttributeList > & Attribs)
+ const uno::Reference< xml::sax::XFastAttributeList > & /*Attribs*/)
throw (uno::RuntimeException, xml::sax::SAXException)
{
#ifdef DEBUG_CONTEXT_STACK
@@ -144,7 +149,7 @@ uno::Reference< xml::sax::XFastContextHandler > SAL_CALL
<< endl;
#endif
- return getContextHandler()->createFromStart(Element, Attribs);
+ return OOXMLFactory::getInstance()->createFastChildContextFromStart(getContextHandler().get(), Element);
}
OOXMLParserState::Pointer_t OOXMLFastDocumentHandler::getParserState() const
@@ -209,7 +214,12 @@ void SAL_CALL OOXMLFastDocumentHandler::setDocumentLocator
void OOXMLFastDocumentHandler::setStream(Stream * pStream)
{
+#ifdef DEBUG_PROTOCOL
+ mpTmpStream.reset(new StreamProtocol(pStream, debug_logger));
+ mpStream = mpTmpStream.get();
+#else
mpStream = pStream;
+#endif
}
void OOXMLFastDocumentHandler::setDocument(OOXMLDocument * pDocument)
diff --git a/writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx b/writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx
index a95fd3306d3a..86f835c5c0a4 100644
--- a/writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx
+++ b/writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx
@@ -104,6 +104,9 @@ private:
uno::Reference< uno::XComponentContext > m_xContext;
Stream * mpStream;
+#ifdef DEBUG_ELEMENT
+ Stream::Pointer_t mpTmpStream;
+#endif
OOXMLDocument * mpDocument;
::rtl::OUString msXNoteId;
mutable boost::shared_ptr<OOXMLFastContextHandler> mpContextHandler;
diff --git a/writerfilter/source/ooxml/OOXMLFastHelper.hxx b/writerfilter/source/ooxml/OOXMLFastHelper.hxx
index ff0e30e4da0f..2d21083487ff 100644
--- a/writerfilter/source/ooxml/OOXMLFastHelper.hxx
+++ b/writerfilter/source/ooxml/OOXMLFastHelper.hxx
@@ -46,6 +46,9 @@ public:
static uno::Reference<XFastContextHandler> createAndSetParent
(OOXMLFastContextHandler * pHandler, sal_uInt32 nToken, Id nId);
+ static uno::Reference<XFastContextHandler> createAndSetParentAndDefine
+ (OOXMLFastContextHandler * pHandler, sal_uInt32 nToken, Id nId, Id nDefine);
+
static uno::Reference<XFastContextHandler> createAndSetParentRef
(OOXMLFastContextHandler * pHandler, sal_uInt32 nToken,
const uno::Reference < xml::sax::XFastAttributeList > & Attribs);
@@ -72,7 +75,6 @@ OOXMLFastHelper<T>::createAndSetParent
(OOXMLFastContextHandler * pHandler, sal_uInt32 nToken, Id nId)
{
OOXMLFastContextHandler * pTmp = new T(pHandler);
- OOXMLFastContextHandler::RefAndPointer_t aResult(pTmp);
pTmp->setToken(nToken);
pTmp->setId(nId);
@@ -91,6 +93,43 @@ OOXMLFastHelper<T>::createAndSetParent
debug_logger->endElement("createAndSetParent");
#endif
+ uno::Reference<XFastContextHandler> aResult(pTmp);
+
+ return aResult;
+}
+
+template <class T>
+uno::Reference<XFastContextHandler>
+OOXMLFastHelper<T>::createAndSetParentAndDefine
+(OOXMLFastContextHandler * pHandler, sal_uInt32 nToken, Id nId, Id nDefine)
+{
+ OOXMLFastContextHandler * pTmp = new T(pHandler);
+
+ pTmp->setToken(nToken);
+ pTmp->setId(nId);
+ pTmp->setDefine(nDefine);
+
+#ifdef DEBUG_CREATE
+ debug_logger->startElement("createAndSetParentAndDefine");
+ debug_logger->attribute("context", pHandler->getType());
+ debug_logger->attribute("token", fastTokenToId(pTmp->getToken()));
+ debug_logger->attribute("id", (*QNameToString::Instance())(nId));
+
+ static char buffer[16];
+ snprintf(buffer, sizeof(buffer), "0x%08" SAL_PRIxUINT32, nId);
+
+ debug_logger->attribute("idnum", buffer);
+ if (pTmp->isFallback())
+ debug_logger->attribute("fallback", "yes");
+
+ debug_logger->startElement("created");
+ debug_logger->addTag(pTmp->toTag());
+ debug_logger->endElement("created");
+ debug_logger->endElement("createAndSetParentAndDefine");
+#endif
+
+ uno::Reference<XFastContextHandler> aResult(pTmp);
+
return aResult;
}
@@ -138,10 +177,10 @@ void OOXMLFastHelper<T>::newProperty(OOXMLFastContextHandler * pHandler,
{
OOXMLValue::Pointer_t pVal(new T(rValue));
+#ifdef DEBUG_PROPERTIES
string aStr = (*QNameToString::Instance())(nId);
-#ifdef DEBUG_PROPERTIES
- debug_logger->startElement("newProperty");
+ debug_logger->startElement("newProperty-from-string");
debug_logger->attribute("name", aStr);
debug_logger->attribute
("value",
@@ -151,7 +190,7 @@ void OOXMLFastHelper<T>::newProperty(OOXMLFastContextHandler * pHandler,
if (aStr.size() == 0)
debug_logger->addTag(XMLTag::Pointer_t(new XMLTag("unknown-qname")));
- debug_logger->endElement("newProperty");
+ debug_logger->endElement("newProperty-from-string");
#endif
pHandler->newProperty(nId, pVal);
@@ -164,17 +203,17 @@ void OOXMLFastHelper<T>::newProperty(OOXMLFastContextHandler * pHandler,
{
OOXMLValue::Pointer_t pVal(new T(nVal));
+#ifdef DEBUG_PROPERTIES
string aStr = (*QNameToString::Instance())(nId);
-#ifdef DEBUG_PROPERTIES
- debug_logger->startElement("newProperty");
+ debug_logger->startElement("newProperty-from-int");
debug_logger->attribute("name", aStr);
debug_logger->attribute("value", pVal->toString());
if (aStr.size() == 0)
debug_logger->addTag(XMLTag::Pointer_t(new XMLTag("unknown-qname")));
- debug_logger->endElement("newProperty");
+ debug_logger->endElement("newProperty-from-int");
#endif
pHandler->newProperty(nId, pVal);
diff --git a/writerfilter/source/ooxml/OOXMLParserState.cxx b/writerfilter/source/ooxml/OOXMLParserState.cxx
index 255f97558cb3..e38593777a55 100644
--- a/writerfilter/source/ooxml/OOXMLParserState.cxx
+++ b/writerfilter/source/ooxml/OOXMLParserState.cxx
@@ -191,11 +191,14 @@ void OOXMLParserState::resolveCharacterProperties(Stream & rStream)
{
#ifdef DEBUG_PROPERTIES
debug_logger->startElement("resolveCharacterProperties");
- debug_logger->chars(mpCharacterProps->toString());
- debug_logger->endElement("resolveCharacterProperties");
#endif
+
rStream.props(mpCharacterProps);
mpCharacterProps.reset(new OOXMLPropertySetImpl());
+
+#ifdef DEBUG_PROPERTIES
+ debug_logger->endElement("resolveCharacterProperties");
+#endif
}
}
@@ -213,22 +216,105 @@ void OOXMLParserState::setCharacterProperties
mpCharacterProps->add(pProps);
}
+void OOXMLParserState::setCellProperties
+(OOXMLPropertySet::Pointer_t pProps)
+{
+ if (mCellProps.size() > 0)
+ {
+ OOXMLPropertySet::Pointer_t & rCellProps = mCellProps.top();
+
+ if (rCellProps.get() == NULL)
+ rCellProps = pProps;
+ else
+ rCellProps->add(pProps);
+ }
+}
+
+void OOXMLParserState::setRowProperties
+(OOXMLPropertySet::Pointer_t pProps)
+{
+ if (mRowProps.size() > 0)
+ {
+ OOXMLPropertySet::Pointer_t & rRowProps = mRowProps.top();
+
+ if (rRowProps.get() == NULL)
+ rRowProps = pProps;
+ else
+ rRowProps->add(pProps);
+ }
+}
+
+void OOXMLParserState::resolveCellProperties(Stream & rStream)
+{
+ if (mCellProps.size() > 0)
+ {
+ OOXMLPropertySet::Pointer_t & rCellProps = mCellProps.top();
+
+ if (rCellProps.get() != NULL)
+ {
+ rStream.props(rCellProps);
+ rCellProps.reset(new OOXMLPropertySetImpl());
+ }
+ }
+}
+
+void OOXMLParserState::resolveRowProperties(Stream & rStream)
+{
+ if (mRowProps.size() > 0)
+ {
+ OOXMLPropertySet::Pointer_t & rRowProps = mRowProps.top();
+
+ if (rRowProps.get() != NULL)
+ {
+ rStream.props(rRowProps);
+ rRowProps.reset(new OOXMLPropertySetImpl());
+ }
+ }
+}
+
void OOXMLParserState::resolveTableProperties(Stream & rStream)
{
- if (mpTableProps.get() != NULL)
+ if (mTableProps.size() > 0)
{
- rStream.props(mpTableProps);
- mpTableProps.reset(new OOXMLPropertySetImpl());
+ OOXMLPropertySet::Pointer_t & rTableProps = mTableProps.top();
+
+ if (rTableProps.get() != NULL)
+ {
+ rStream.props(rTableProps);
+ rTableProps.reset(new OOXMLPropertySetImpl());
+ }
}
}
void OOXMLParserState::setTableProperties
(OOXMLPropertySet::Pointer_t pProps)
{
- if (mpTableProps.get() == NULL)
- mpTableProps = pProps;
- else
- mpTableProps->add(pProps);
+ if (mTableProps.size() > 0)
+ {
+ OOXMLPropertySet::Pointer_t & rTableProps = mTableProps.top();
+ if (rTableProps.get() == NULL)
+ rTableProps = pProps;
+ else
+ rTableProps->add(pProps);
+ }
+}
+
+void OOXMLParserState::startTable()
+{
+ OOXMLPropertySet::Pointer_t pCellProps;
+ OOXMLPropertySet::Pointer_t pRowProps;
+ OOXMLPropertySet::Pointer_t pTableProps;
+
+ mCellProps.push(pCellProps);
+ mRowProps.push(pRowProps);
+ mTableProps.push(pTableProps);
+}
+
+void OOXMLParserState::endTable()
+{
+ mCellProps.pop();
+ mRowProps.pop();
+ mTableProps.pop();
}
XMLTag::Pointer_t OOXMLParserState::toTag() const
diff --git a/writerfilter/source/ooxml/OOXMLParserState.hxx b/writerfilter/source/ooxml/OOXMLParserState.hxx
index 2953e00a499f..affdd7dbe61c 100644
--- a/writerfilter/source/ooxml/OOXMLParserState.hxx
+++ b/writerfilter/source/ooxml/OOXMLParserState.hxx
@@ -27,6 +27,7 @@
#ifndef INCLUDE_OOXML_PARSER_STATE_HXX
#define INCLUDE_OOXML_PARSER_STATE_HXX
+#include <stack>
#include <ooxml/OOXMLDocument.hxx>
#include <resourcemodel/TagLogger.hxx>
#include "OOXMLPropertySetImpl.hxx"
@@ -35,6 +36,8 @@ namespace writerfilter {
namespace ooxml
{
+using ::std::stack;
+
class OOXMLParserState
{
bool mbInSectionGroup;
@@ -48,7 +51,9 @@ class OOXMLParserState
rtl::OUString msXNoteId;
rtl::OUString msTarget;
OOXMLPropertySet::Pointer_t mpCharacterProps;
- OOXMLPropertySet::Pointer_t mpTableProps;
+ stack<OOXMLPropertySet::Pointer_t> mCellProps;
+ stack<OOXMLPropertySet::Pointer_t> mRowProps;
+ stack<OOXMLPropertySet::Pointer_t> mTableProps;
public:
typedef boost::shared_ptr<OOXMLParserState> Pointer_t;
@@ -90,9 +95,16 @@ public:
void resolveCharacterProperties(Stream & rStream);
OOXMLPropertySet::Pointer_t getCharacterProperties() const;
void setCharacterProperties(OOXMLPropertySet::Pointer_t pProps);
+ void resolveCellProperties(Stream & rStream);
+ void setCellProperties(OOXMLPropertySet::Pointer_t pProps);
+ void resolveRowProperties(Stream & rStream);
+ void setRowProperties(OOXMLPropertySet::Pointer_t pProps);
void resolveTableProperties(Stream & rStream);
void setTableProperties(OOXMLPropertySet::Pointer_t pProps);
+ void startTable();
+ void endTable();
+
string toString() const;
XMLTag::Pointer_t toTag() const;
};
diff --git a/writerfilter/source/ooxml/OOXMLPropertySetImpl.cxx b/writerfilter/source/ooxml/OOXMLPropertySetImpl.cxx
index 6f9bf9a3480d..2f8844f1af01 100644
--- a/writerfilter/source/ooxml/OOXMLPropertySetImpl.cxx
+++ b/writerfilter/source/ooxml/OOXMLPropertySetImpl.cxx
@@ -29,7 +29,10 @@
#include <stdio.h>
#include <iostream>
#include <resourcemodel/QNameToString.hxx>
+#include <resourcemodel/Protocol.hxx>
#include <com/sun/star/drawing/XShape.hpp>
+#include <ooxml/OOXMLFastTokens.hxx>
+#include "ooxmlLoggers.hxx"
//#define DEBUG_RESOLVE
@@ -125,6 +128,17 @@ string OOXMLPropertyImpl::getName() const
if (sResult.length() == 0)
sResult = (*SprmIdToString::Instance())(mId);
+ if (sResult.length() == 0)
+ sResult = fastTokenToId(mId);
+
+ if (sResult.length() == 0)
+ {
+ static char sBuffer[256];
+
+ snprintf(sBuffer, sizeof(sBuffer), "%" SAL_PRIxUINT32, mId);
+ sResult = sBuffer;
+ }
+
return sResult;
}
@@ -155,14 +169,23 @@ Sprm * OOXMLPropertyImpl::clone()
void OOXMLPropertyImpl::resolve(writerfilter::Properties & rProperties)
{
+ writerfilter::Properties * pProperties = NULL;
+#ifdef DEBUG_PROTOCOL
+ writerfilter::PropertiesProtocol::Pointer_t pProtocol
+ (new writerfilter::PropertiesProtocol(&rProperties, debug_logger));
+ pProperties = pProtocol.get();
+#else
+ pProperties = &rProperties;
+#endif
+
switch (meType)
{
case SPRM:
if (mId != 0x0)
- rProperties.sprm(*this);
+ pProperties->sprm(*this);
break;
case ATTRIBUTE:
- rProperties.attribute(mId, *getValue());
+ pProperties->attribute(mId, *getValue());
break;
}
}
@@ -456,7 +479,15 @@ string OOXMLPropertySetImpl::getType() const
void OOXMLPropertySetImpl::add(OOXMLProperty::Pointer_t pProperty)
{
if (pProperty.get() != NULL && pProperty->getId() != 0x0)
+ {
mProperties.push_back(pProperty);
+ }
+#ifdef DEBUG_PROPERTIES
+ else
+ {
+ debug_logger->element("warning.property_not_added");
+ }
+#endif
}
void OOXMLPropertySetImpl::add(OOXMLPropertySet::Pointer_t pPropertySet)
@@ -688,6 +719,12 @@ OOXMLTableImpl::~OOXMLTableImpl()
void OOXMLTableImpl::resolve(Table & rTable)
{
+#ifdef DEBUG_PROTOCOL
+ Table::Pointer_t pTable(new TableProtocol(&rTable, debug_logger));
+#else
+ Table * pTable = &rTable;
+#endif
+
int nPos = 0;
PropertySets_t::iterator it = mPropertySets.begin();
@@ -699,7 +736,7 @@ void OOXMLTableImpl::resolve(Table & rTable)
((*it)->getProperties());
if (pProperties.get() != NULL)
- rTable.entry(nPos, pProperties);
+ pTable->entry(nPos, pProperties);
++nPos;
it++;
diff --git a/writerfilter/source/ooxml/README.efforts b/writerfilter/source/ooxml/README.efforts
new file mode 100644
index 000000000000..03570a80ec5a
--- /dev/null
+++ b/writerfilter/source/ooxml/README.efforts
@@ -0,0 +1,131 @@
+This file describes how the remaining efforts for writerfilter can be
+extracted from the source code.
+
+1. Marking up the efforts in the code.
+
+Efforts are marked up in the code with comments like this:
+
+/* WRITERFILTERSTATUS: done: <percent done>, planned: <effort planned>, spent: <effort spent, yet> */
+
+The comments have to follow a case-label immediately. Consecutive
+case-labels can be marked up, too. In the latter case the efforts are
+counted for the preceeding case-labels as a whole.
+
+2. Extraction process
+
+2.1. Stage 1:
+
+This stage is handled in status.sh. An XML-file is generated that
+contains a top level element <stage1>. <stage1> contains an element
+<analyze> and several <qname> and <status> elements.
+
+2.1.1. Use analyzemodel.xsl to extract necessary data from model.xml.
+
+- Namespaces can be flagged with attribute @todo="ignore" to prevent
+ the namespace being considered.
+
+- For every <element>/<attribute> an entry in an according element in <analyze> is genereated. These elements look like this:
+
+<attribute id="..." resource="..." tokenid="..." qname="..." namespace="..." define="..." name="..."/>
+
+Important for the extraction of efforts: @qname is the identifier used
+in case-labels in .cxx files and thus links the status mark up
+comments with elements/attributes in the model.xml.
+
+2.1.2. Extract status information
+
+The variable SEARCHIN in status.sh determines in what directory the script will search for case labels and status comments. Only .cxx files are searched. Lines like this
+
+case NS_rtf::LN_UNUSED4:
+
+result in elements like this
+
+<qname file="/DomainMapper.cxx" line="216" qname="NS_rtf::LN_UNUSED4"/>.
+
+Lines like this
+
+/* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
+
+result in elements like this
+
+<status done="0" planned="0" spent="0"/>
+
+The <qname> and <status> elements are children of the <stage1>
+element. The are inserted in the same order as found in the
+code. Therefore a <status> element corresponds to the group of
+consecutive preceding <qname> elements.
+
+2.2. Stage 2
+
+In this stage analyzestage2.xsl is used on the result of stage 1 to
+group the <qname> and <status> elements from stage 1. For each
+<status> element a <qnames> element is generated that contains the
+<qname> elements that the <status> element refers to, plus the
+<status> element.
+
+2.3. Stage 3
+
+This stage associates the <attribute> and <element> elements in
+model.xml with the extracted data. It uses analyzestage3.xsl on the
+result of stage 2 to do this.
+
+E.g. for given elements from stage 2:
+
+<attribute
+ id="dml-wordprocessingDrawing:CT_Inline:distR"
+ resource="Properties"
+ tokenid="ooxml:CT_Inline_distR"
+ qname="NS_ooxml::LN_CT_Inline_distR"
+ namespace="dml-wordprocessingDrawing"
+ define="CT_Inline"
+ name="distR"/>
+
+and
+
+ <qnames>
+ <qname file="/GraphicImport.cxx" line="1078" qname="NS_ooxml::LN_CT_Inline_distT"/>
+ <qname file="/GraphicImport.cxx" line="1079" qname="NS_ooxml::LN_CT_Inline_distB"/>
+ <qname file="/GraphicImport.cxx" line="1080" qname="NS_ooxml::LN_CT_Inline_distL"/>
+ <qname file="/GraphicImport.cxx" line="1081" qname="NS_ooxml::LN_CT_Inline_distR"/>
+ <status done="0" planned="0.5" spent="0"/>
+ </qnames>
+
+the result of stage 3 will be
+
+ <attribute
+ id="dml-wordprocessingDrawing:CT_Inline:distR"
+ resource="Properties"
+ tokenid="ooxml:CT_Inline_distR"
+ qname="NS_ooxml::LN_CT_Inline_distR"
+ namespace="dml-wordprocessingDrawing"
+ define="CT_Inline" name="distR">
+
+ <file name="/GraphicImport.cxx" line="1081">
+ <status done="0" planned="0.5" spent="0" qname-count="4"/>
+ </file>
+
+ </attribute>
+
+@qname-count is the number of case-labels that the according mark-up comment refers to.
+
+3. Collect efforts
+
+This is done by the script efforts.sh. It uses status.sh to extract the status and determines the efforts in two steps.
+
+3.1. Choose which <attribute>/<element> elements need effort
+
+This stage uses todo.xsl on the result of 2.3.
+
+There are two criteria that imply effort:
+
+- The <attribute>/<element> is not handled in any file.
+
+- The status for the <attribute>/<element> declares that work is
+ planned for it and less than 100 percent of this work is done.
+
+3.2. Generate table of efforts in CSV format
+
+This stage uses effort.xsl on the results of 3.1. and produces the
+table of efforts. If there is no status defined for an
+<attribute>/<element> it is assumed that the planned effort is 0.5
+hours and no work has been done.
diff --git a/writerfilter/source/ooxml/analyzemodel.xsl b/writerfilter/source/ooxml/analyzemodel.xsl
new file mode 100644
index 000000000000..d887a9a178a6
--- /dev/null
+++ b/writerfilter/source/ooxml/analyzemodel.xsl
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:rng="http://relaxng.org/ns/structure/1.0">
+
+<xsl:include href="factorytools.xsl"/>
+<xsl:output method="xml"/>
+
+<xsl:template match="/">
+ <analyze>
+ <xsl:for-each select="/model/namespace[not(@todo='ignore')]">
+ <xsl:call-template name="analyzegrammar"/>
+ </xsl:for-each>
+ </analyze>
+</xsl:template>
+
+<xsl:template name="analyzegrammar">
+ <xsl:variable name="nsname" select="@name"/>
+ <xsl:for-each select="rng:grammar/rng:define">
+ <xsl:variable name="defname" select="@name"/>
+ <xsl:for-each select=".//rng:attribute|.//rng:element">
+ <xsl:choose>
+ <xsl:when test="local-name()='element'">
+ <element>
+ <xsl:call-template name="defineattrs">
+ <xsl:with-param name="nsname" select="$nsname"/>
+ <xsl:with-param name="defname" select="$defname"/>
+ </xsl:call-template>
+ </element>
+ </xsl:when>
+ <xsl:when test="local-name()='attribute'">
+ <attribute>
+ <xsl:call-template name="defineattrs">
+ <xsl:with-param name="nsname" select="$nsname"/>
+ <xsl:with-param name="defname" select="$defname"/>
+ </xsl:call-template>
+ </attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="defineattrs">
+ <xsl:param name="nsname"/>
+ <xsl:param name="defname"/>
+
+ <xsl:variable name="localname" select="local-name()"/>
+ <xsl:variable name="name" select="@name"/>
+
+ <xsl:attribute name="id">
+ <xsl:value-of select="$nsname"/>
+ <xsl:text>:</xsl:text>
+ <xsl:value-of select="$defname"/>
+ <xsl:text>:</xsl:text>
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:for-each select="ancestor::namespace/resource[@name=$defname]">
+ <xsl:attribute name="resource"><xsl:value-of select="@resource"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$localname='attribute'">
+ <xsl:for-each select="attribute[@name=$name and @tokenid]">
+ <xsl:attribute name="tokenid"><xsl:value-of select="@tokenid"/></xsl:attribute>
+ <xsl:attribute name="qname">
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="@tokenid"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="namespace">
+ <xsl:value-of select="$nsname"/>
+ </xsl:attribute>
+ <xsl:attribute name="define">
+ <xsl:value-of select="$defname"/>
+ </xsl:attribute>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="$localname='element'">
+ <xsl:for-each select="element[@name=$name and @tokenid]">
+ <xsl:attribute name="tokenid"><xsl:value-of select="@tokenid"/></xsl:attribute>
+ <xsl:attribute name="qname">
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="@tokenid"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="namespace">
+ <xsl:value-of select="$nsname"/>
+ </xsl:attribute>
+ <xsl:attribute name="define">
+ <xsl:value-of select="$defname"/>
+ </xsl:attribute>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ </xsl:for-each>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+</xsl:template>
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/ooxml/analyzer.xsl b/writerfilter/source/ooxml/analyzer.xsl
deleted file mode 100644
index 155de88d954a..000000000000
--- a/writerfilter/source/ooxml/analyzer.xsl
+++ /dev/null
@@ -1,46 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xalan="http://xml.apache.org/xalan"
- exclude-result-prefixes = "xalan"
- xml:space="default">
- <xsl:output method="text" />
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="analyzerooxmlids"/>
- </xsl:template>
-</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/ooxml/analyzestage2.xsl b/writerfilter/source/ooxml/analyzestage2.xsl
new file mode 100644
index 000000000000..9c7dc247b5ab
--- /dev/null
+++ b/writerfilter/source/ooxml/analyzestage2.xsl
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="/">
+ <stage2>
+ <xsl:copy-of select="/stage1/analyze"/>
+ <xsl:for-each select="/stage1/qname">
+ <xsl:if test="not(local-name(preceding-sibling::*[1]) = 'qname')">
+ <qnames>
+ <xsl:call-template name="handleqnames"/>
+ </qnames>
+ </xsl:if>
+ </xsl:for-each>
+ </stage2>
+</xsl:template>
+
+<xsl:template name="handleqnames">
+ <xsl:choose>
+ <xsl:when test="local-name() = 'qname'">
+ <xsl:copy-of select="."/>
+ <xsl:for-each select="following-sibling::*[1]">
+ <xsl:call-template name="handleqnames"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="local-name() = 'nostatus' or local-name() = 'status'">
+ <xsl:copy-of select="."/>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/ooxml/analyzestage3.xsl b/writerfilter/source/ooxml/analyzestage3.xsl
new file mode 100644
index 000000000000..103782c1a11a
--- /dev/null
+++ b/writerfilter/source/ooxml/analyzestage3.xsl
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+
+<xsl:key name="qnames" match="/stage2/qnames/qname" use="@qname"/>
+
+<xsl:template match="/">
+ <stage3 xmlns:rng="http://relaxng.org/ns/structure/1.0">
+ <xsl:for-each select="/stage2/analyze">
+ <xsl:for-each select="attribute|element">
+ <xsl:variable name="qname" select="@qname"/>
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:for-each select="key('qnames', @qname)">
+ <file>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@file"/>
+ </xsl:attribute>
+ <xsl:attribute name="line">
+ <xsl:value-of select="@line"/>
+ </xsl:attribute>
+ <xsl:for-each select="ancestor::qnames/status|ancestor::qnames/nostatus">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:attribute name="qname-count">
+ <xsl:value-of select="count(ancestor::qnames/qname)"/>
+ </xsl:attribute>
+ </xsl:copy>
+ </xsl:for-each>
+ </file>
+ </xsl:for-each>
+ </xsl:copy>
+ </xsl:for-each>
+ </xsl:for-each>
+ </stage3>
+</xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/ooxml/effort.xsl b/writerfilter/source/ooxml/effort.xsl
new file mode 100644
index 000000000000..47f278a63f4f
--- /dev/null
+++ b/writerfilter/source/ooxml/effort.xsl
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:rng="http://relaxng.org/ns/structure/1.0">
+
+<xsl:output method="text"/>
+
+<xsl:template match="/">
+ <xsl:text>Namespace,Define,Name,Done,Planned,qname-count&#xa;</xsl:text>
+ <xsl:for-each select="/todo/attribute|/todo/element">
+ <xsl:for-each select=".//status">
+ <xsl:for-each select="ancestor::attribute|ancestor::element">
+ <xsl:value-of select="@namespace"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="@define"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>,</xsl:text>
+ </xsl:for-each>
+ <xsl:value-of select="@done"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="@planned"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="@qname-count"/>
+ <xsl:text>&#xa;</xsl:text>
+ </xsl:for-each>
+ <xsl:if test="not(.//status)">
+ <xsl:value-of select="@namespace"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="@define"/>
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>,0,0.5,1&#xa;</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+</xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/ooxml/efforts.sh b/writerfilter/source/ooxml/efforts.sh
new file mode 100755
index 000000000000..f42a30d5b2fd
--- /dev/null
+++ b/writerfilter/source/ooxml/efforts.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+./status.sh | xmllint --format - | xsltproc todo.xsl - | xsltproc effort.xsl -
diff --git a/writerfilter/source/ooxml/values.xsl b/writerfilter/source/ooxml/factory.xsl
index cee50f39ff61..544c150021c8 100644
--- a/writerfilter/source/ooxml/values.xsl
+++ b/writerfilter/source/ooxml/factory.xsl
@@ -3,10 +3,14 @@
*
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- Copyright 2000, 2010 Oracle and/or its affiliates.
+ Copyright 2008 by Sun Microsystems, Inc.
OpenOffice.org - a multi-platform office productivity suite
+ $RCSfile: fastresources_wml.xsl,v $
+
+ $Revision: 1.3 $
+
This file is part of OpenOffice.org.
OpenOffice.org is free software: you can redistribute it and/or modify
@@ -23,7 +27,7 @@
version 3 along with OpenOffice.org. If not, see
<http://www.openoffice.org/license.html>
for a copy of the LGPLv3 License.
-
+
************************************************************************/
-->
@@ -61,28 +65,25 @@
<xsl:output method="text" />
<xsl:param name="prefix"/>
- <xsl:include href="resourcestools.xsl"/>
+ <xsl:include href="factorytools.xsl"/>
<xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_VALUES_HXX
-#define INCLUDED_OOXML_VALUES_HXX
-
-#include &lt;rtl/ustring.hxx&gt;
-#include "OOXMLPropertySetImpl.hxx"
-
+ <xsl:text>
+#include "OOXMLFactory.hxx"</xsl:text>
+ <xsl:call-template name="factoryincludes"/>
+ <xsl:text>
namespace writerfilter {
namespace ooxml {
+using namespace ::std;
+using namespace ::com::sun::star;
/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="valuedecls"/>
- <xsl:text>
+ </xsl:text>
+ <xsl:call-template name="factoryfornamespace"/>
+ <xsl:text>
/// @endcond
}}
-#endif //INCLUDED_OOXML_VALUES_HXX&#xa;</xsl:text></out></xsl:template>
+</xsl:text>
+</xsl:template>
- <xsl:template match="*"/>
-</xsl:stylesheet>
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/ooxml/fastresources_dml-shape3DScene.xsl b/writerfilter/source/ooxml/factory_ns.xsl
index aec93f875597..44b5c824859f 100644
--- a/writerfilter/source/ooxml/fastresources_dml-shape3DScene.xsl
+++ b/writerfilter/source/ooxml/factory_ns.xsl
@@ -3,10 +3,14 @@
*
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- Copyright 2000, 2010 Oracle and/or its affiliates.
+ Copyright 2008 by Sun Microsystems, Inc.
OpenOffice.org - a multi-platform office productivity suite
+ $RCSfile: fastresources_wml.xsl,v $
+
+ $Revision: 1.3 $
+
This file is part of OpenOffice.org.
OpenOffice.org is free software: you can redistribute it and/or modify
@@ -23,7 +27,7 @@
version 3 along with OpenOffice.org. If not, see
<http://www.openoffice.org/license.html>
for a copy of the LGPLv3 License.
-
+
************************************************************************/
-->
@@ -61,38 +65,97 @@
<xsl:output method="text" />
<xsl:param name="prefix"/>
- <xsl:include href="resourcestools.xsl"/>
+ <xsl:include href="factorytools.xsl"/>
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
+<xsl:template name="factoryactiondecls">
+ <xsl:variable name="ns" select="@name"/>
+ <xsl:for-each select="resource/action">
+ <xsl:sort select="@name"/>
+ <xsl:if test="generate-id(key('actions', @name)[ancestor::namespace/@name=$ns][1]) = generate-id(.)">
+ <xsl:text>
+ void </xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>Action(OOXMLFastContextHandler * pHandler</xsl:text>
+ <xsl:if test="@name='characters'">
+ <xsl:text>, const ::rtl::OUString &amp; sText</xsl:text>
+ </xsl:if>
+ <xsl:text>);</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+</xsl:template>
+
+<!-- factorydecl -->
+<xsl:template name="factorydecl">
+ <xsl:variable name="classname">
+ <xsl:call-template name="factoryclassname"/>
+ </xsl:variable>
+ <xsl:text>
+class </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text> : public OOXMLFactory_ns
+{
+public:
+ typedef boost::shared_ptr &lt; OOXMLFactory_ns &gt; Pointer_t;
+
+ static Pointer_t getInstance();
+
+ virtual AttributeToResourceMapPointer createAttributeToResourceMap(Id nId);
+ virtual ListValueMapPointer createListValueMap(Id nId);
+ virtual CreateElementMapPointer createCreateElementMap(Id nId);
+ virtual TokenToIdMapPointer createTokenToIdMap(Id nId);
+ virtual string getDefineName(Id nId) const;</xsl:text>
+ <xsl:call-template name="factoryactiondecls"/>
+ virtual void attributeAction(OOXMLFastContextHandler * pHandler, Token_t nToken, OOXMLValue::Pointer_t pValue);
<xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_SHAPE3DSCENE_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_SHAPE3DSCENE_HXX
+
+ virtual ~</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>();
+
+protected:
+ static Pointer_t m_pInstance;
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>();
+};
+ </xsl:text>
+</xsl:template>
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
+ <xsl:template match="/">
+ <xsl:variable name="ns" select="substring-before(substring-after($file, 'OOXMLFactory_'), '.hxx')"/>
+ <xsl:variable name="incguard">
+ <xsl:text>INCLUDED_OOXML_FACTORY_</xsl:text>
+ <xsl:value-of select="translate($ns, 'abcdefghijklmnopqrstuvwxyz-', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_')"/>
+ <xsl:text>_HXX</xsl:text>
+ </xsl:variable>
+ <xsl:call-template name="licenseheader"/>
+ <xsl:text>
+#ifndef </xsl:text>
+ <xsl:value-of select="$incguard"/>
+ <xsl:text>
+#define </xsl:text>
+ <xsl:value-of select="$incguard"/>
+ <xsl:text>
+#include "OOXMLFactory.hxx"
+#include "OOXMLFactory_generated.hxx"
+#include "OOXMLnamespaceids.hxx"
+#include "resourceids.hxx"
namespace writerfilter {
namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
/// @cond GENERATED
</xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-shape3DScene</xsl:with-param>
- </xsl:call-template>
+ <xsl:for-each select="/model/namespace[@name=$ns]">
+ <xsl:call-template name="factorydecl"/>
+ </xsl:for-each>
<xsl:text>
/// @endcond
}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_SHAPE3DSCENE_HXX&#xa;</xsl:text>
- </xsl:template>
+#endif //</xsl:text>
+ <xsl:value-of select="$incguard"/>
+ <xsl:text>&#xa;</xsl:text>
+</xsl:template>
- <xsl:template match="*"/>
-</xsl:stylesheet>
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/ooxml/fastresources_dml-baseTypes.xsl b/writerfilter/source/ooxml/factory_values.xsl
index 1311c8593b8f..4960f58e6b67 100644
--- a/writerfilter/source/ooxml/fastresources_dml-baseTypes.xsl
+++ b/writerfilter/source/ooxml/factory_values.xsl
@@ -3,10 +3,14 @@
*
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- Copyright 2000, 2010 Oracle and/or its affiliates.
+ Copyright 2008 by Sun Microsystems, Inc.
OpenOffice.org - a multi-platform office productivity suite
+ $RCSfile: fastresources_wml.xsl,v $
+
+ $Revision: 1.3 $
+
This file is part of OpenOffice.org.
OpenOffice.org is free software: you can redistribute it and/or modify
@@ -23,7 +27,7 @@
version 3 along with OpenOffice.org. If not, see
<http://www.openoffice.org/license.html>
for a copy of the LGPLv3 License.
-
+
************************************************************************/
-->
@@ -61,38 +65,36 @@
<xsl:output method="text" />
<xsl:param name="prefix"/>
- <xsl:include href="resourcestools.xsl"/>
+ <xsl:include href="factorytools.xsl"/>
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
+ <!--
+ Generates constant declarations for attribute values.
+ -->
+ <xsl:template name="valueconstantdecls">
<xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_BASETYPES_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_BASETYPES_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
+extern rtl::OUString
</xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-baseTypes</xsl:with-param>
+ <xsl:call-template name="valuestringname">
+ <xsl:with-param name="string"></xsl:with-param>
</xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_BASETYPES_HXX&#xa;</xsl:text>
+ <xsl:text>;</xsl:text>
+ <xsl:for-each select="//rng:value[generate-id(key('value-with-content', text())[1]) = generate-id(.)]">
+ <xsl:text>
+extern rtl::OUString </xsl:text>
+ <xsl:call-template name="valuestringname">
+ <xsl:with-param name="string" select="."/>
+ </xsl:call-template>
+ <xsl:text>;</xsl:text>
+ </xsl:for-each>
</xsl:template>
- <xsl:template match="*"/>
+ <xsl:template match="/">
+ <xsl:text>
+#ifndef INCLUDED_FACTORY_VALUES</xsl:text>
+#include &lt;rtl/ustring.hxx&gt;
+
+<xsl:call-template name="valueconstantdecls"/>
+<xsl:text>
+#endif // INCLUDED_FACTORY_VALUES&#xa;</xsl:text>
+ </xsl:template>
</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/factoryimpl.xsl b/writerfilter/source/ooxml/factoryimpl.xsl
new file mode 100644
index 000000000000..8eecf4aba813
--- /dev/null
+++ b/writerfilter/source/ooxml/factoryimpl.xsl
@@ -0,0 +1,386 @@
+<!--
+/*************************************************************************
+ *
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2008 by Sun Microsystems, Inc.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ $RCSfile: fastresources_wml.xsl,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.
+
+ ************************************************************************/
+
+-->
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:xforms="http://www.w3.org/2002/xforms"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rng="http://relaxng.org/ns/structure/1.0"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+ xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
+ <xsl:output method="text" />
+ <xsl:param name="prefix"/>
+
+ <xsl:include href="factorytools.xsl"/>
+
+ <xsl:key name="resources-with-kind" match="//resource[kind]" use="kind/@name"/>
+ <xsl:key name="sprms-with-code" match="//resource/element[@tokenid]" use="@tokenid"/>
+
+<xsl:template name="factorycreatecontextfromfactory">
+ <xsl:text>
+uno::Reference&lt; xml::sax::XFastContextHandler &gt; OOXMLFactory::createFastChildContextFromFactory
+(OOXMLFastContextHandler * pHandler, OOXMLFactory_ns::Pointer_t pFactory, Token_t Element)
+{
+ uno::Reference &lt; xml::sax::XFastContextHandler &gt; aResult;
+ Id nDefine = pHandler->getDefine();
+
+ if (pFactory.get() != NULL)
+ {
+ CreateElementMapPointer pMap = pFactory-&gt;getCreateElementMap(nDefine);
+ TokenToIdMapPointer pTokenMap = pFactory-&gt;getTokenToIdMap(nDefine);
+
+ if (pMap.get() != NULL)
+ {
+ Id nId = (*pTokenMap)[Element];
+#ifdef DEBUG_CREATE
+ string sDefine(pFactory->getDefineName(nDefine));
+ string sElement(fastTokenToId(Element));
+ string sQName((*QNameToString::Instance())(nId));
+
+ debug_logger->startElement("createFastChildContextFromFactory");
+ debug_logger->attribute("define", sDefine);
+ debug_logger->attribute("element", sElement);
+ debug_logger->attribute("qname", sQName);
+
+ static char buffer[16];
+ snprintf(buffer, sizeof(buffer), "0x%08" SAL_PRIuUINT32, nId);
+ debug_logger->attribute("idnum", buffer);
+
+ snprintf(buffer, sizeof(buffer), "0x%08" SAL_PRIuUINT32, nDefine);
+ debug_logger->attribute("definenum", buffer);
+#endif
+
+ CreateElement aCreateElement = (*pMap)[Element];
+
+ switch (aCreateElement.m_nResource)
+ {</xsl:text>
+ <xsl:for-each select="/model/namespace/resource">
+ <xsl:if test="generate-id(key('resources', @resource)) = generate-id(.)">
+ <xsl:if test="not(@resource = 'Hex' or
+ @resource = 'Integer' or
+ @resource = 'Boolean' or
+ @resource = 'List' or
+ @resource = 'String')">
+ <xsl:text>
+ case RT_</xsl:text>
+ <xsl:value-of select="@resource"/>
+ <xsl:text>:
+ aResult.set(OOXMLFastHelper&lt;OOXMLFastContextHandler</xsl:text>
+ <xsl:value-of select="@resource"/>
+ <xsl:text>&gt;::createAndSetParentAndDefine(pHandler, Element, nId, aCreateElement.m_nId));
+ break;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>
+ case RT_Any:
+ aResult.set(createFastChildContextFromStart(pHandler, Element));
+ break;
+ default:
+ break;
+ }
+
+#ifdef DEBUG_CREATE
+ debug_logger->endElement("createFastChildContextFromFactory");
+#endif
+ }
+ }
+
+ return aResult;
+}
+</xsl:text>
+</xsl:template>
+
+<xsl:template name="factoryfornamespace">
+ <xsl:text>
+OOXMLFactory_ns::Pointer_t OOXMLFactory::getFactoryForNamespace(Id nId)
+{
+ OOXMLFactory_ns::Pointer_t pResult;
+
+ switch (nId &amp; 0xffff0000)
+ {</xsl:text>
+ <xsl:for-each select="/model/namespace">
+ <xsl:text>
+ case </xsl:text>
+ <xsl:call-template name="idfornamespace"/>
+ <xsl:text>:
+ pResult = </xsl:text>
+ <xsl:call-template name="factoryclassname"/>
+ <xsl:text>::getInstance();
+ break;</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+ default:
+ break;
+ }
+
+ return pResult;
+}
+</xsl:text>
+</xsl:template>
+
+<xsl:template name="factorycreatefromstart">
+ <xsl:text>
+uno::Reference&lt; xml::sax::XFastContextHandler &gt; OOXMLFactory::createFastChildContextFromStart
+(OOXMLFastContextHandler * pHandler, Token_t Element)
+{
+#ifdef DEBUG_CREATE
+ debug_logger->startElement("createFastChildContextFromStart");
+#endif
+
+ uno::Reference &lt; xml::sax::XFastContextHandler &gt; aResult;
+ OOXMLFactory_ns::Pointer_t pFactory;
+
+</xsl:text>
+ <xsl:for-each select="/model/namespace">
+ <xsl:text>
+ if (! aResult.is())
+ {
+ pFactory = getFactoryForNamespace(</xsl:text>
+ <xsl:call-template name="idfornamespace"/>
+ <xsl:text>);
+ aResult.set(createFastChildContextFromFactory(pHandler, pFactory, Element));
+ }</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+
+#ifdef DEBUG_CREATE
+ debug_logger->endElement("createFastChildContextFromStart");
+#endif
+ return aResult;
+}
+</xsl:text>
+</xsl:template>
+
+<xsl:template name="fasttokentoid">
+ <xsl:text>
+namespace tokenmap {
+struct token { const char * name; Token_t nToken; };
+class Perfect_Hash
+{
+private:
+ static inline unsigned int hash (const char *str, unsigned int len);
+public:
+ static struct token *in_word_set (const char *str, unsigned int len);
+};
+}
+
+string fastTokenToId(sal_uInt32 nToken)
+{
+ </xsl:text>
+ <xsl:text>
+ string sResult;
+
+ switch (nToken &amp; 0xffff0000)
+ {</xsl:text>
+ <xsl:for-each select="//namespace-alias">
+ <xsl:text>
+ case NS_</xsl:text>
+ <xsl:value-of select="@alias"/>
+ <xsl:text>:
+ sResult += "</xsl:text>
+ <xsl:value-of select="@alias"/>
+ <xsl:text>:";
+ break;</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+ }
+
+ switch (nToken &amp; 0xffff)
+ {</xsl:text>
+ <xsl:for-each select=".//rng:element[@localname]|.//rng:attribute[@localname]">
+ <xsl:variable name="localname" select="@localname"/>
+ <xsl:if test="generate-id(.) = generate-id(key('same-token-name', $localname)[1])">
+ <xsl:text>
+ case </xsl:text>
+ <xsl:call-template name="fastlocalname"/>
+ <xsl:text>:
+ sResult += "</xsl:text>
+ <xsl:value-of select="$localname"/>
+ <xsl:text>";
+ break;</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+<xsl:text>
+ }
+
+ return sResult;
+}
+ </xsl:text>
+</xsl:template>
+
+ <!--
+ Generates case labels for mapping from token ids to a single kind
+ of sprm.
+
+ @param kind the sprm kind for which to generate the case labels
+ -->
+
+ <xsl:template name="sprmkindcase">
+ <xsl:param name="kind"/>
+ <xsl:for-each select="key('resources-with-kind', $kind)/element">
+ <xsl:if test="generate-id(.) = generate-id(key('sprms-with-code', @tokenid))">
+ <xsl:text>
+ case </xsl:text>
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="@tokenid"/>
+ </xsl:call-template>
+ <xsl:text>: //</xsl:text>
+ <xsl:value-of select="ancestor::resource/@name"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="@name"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+
+ <!--
+ Generates SprmKind.
+ -->
+ <xsl:template name="sprmkind">
+ <xsl:text>
+Sprm::Kind SprmKind(sal_uInt32 nSprmCode)
+{
+ Sprm::Kind nResult = Sprm::UNKNOWN;
+
+ switch (nSprmCode)
+ {</xsl:text>
+ <xsl:call-template name="sprmkindcase">
+ <xsl:with-param name="kind">paragraph</xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>
+ nResult = Sprm::PARAGRAPH;
+ break;</xsl:text>
+ <xsl:call-template name="sprmkindcase">
+ <xsl:with-param name="kind">character</xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>
+ nResult = Sprm::CHARACTER;
+ break;</xsl:text>
+ <xsl:call-template name="sprmkindcase">
+ <xsl:with-param name="kind">table</xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>
+ nResult = Sprm::TABLE;
+ break;</xsl:text>
+ <xsl:text>
+ default:
+ break;
+ }
+
+ return nResult;
+}</xsl:text>
+ </xsl:template>
+
+<xsl:template name="getfastparser">
+<xsl:text>
+uno::Reference &lt; xml::sax::XFastParser &gt; OOXMLStreamImpl::getFastParser()
+{
+ if (! mxFastParser.is())
+ {
+ uno::Reference &lt; lang::XMultiComponentFactory &gt; xFactory =
+ uno::Reference &lt; lang::XMultiComponentFactory &gt;
+ (mxContext->getServiceManager());
+
+ mxFastParser.set(xFactory->createInstanceWithContext
+ ( ::rtl::OUString::createFromAscii
+ ( "com.sun.star.xml.sax.FastParser" ),
+ mxContext ), uno::UNO_QUERY_THROW);
+</xsl:text>
+<xsl:for-each select="//namespace-alias">
+ <xsl:text>
+ mxFastParser->registerNamespace(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>")), </xsl:text>
+ <xsl:call-template name="namespaceid"/>
+ <xsl:text>);</xsl:text>
+</xsl:for-each>
+<xsl:text>
+ }
+
+ return mxFastParser;
+}
+</xsl:text>
+</xsl:template>
+
+ <xsl:template match="/">
+ <xsl:text>
+#include "OOXMLFactory.hxx"
+#include "OOXMLFastHelper.hxx"
+#include "OOXMLStreamImpl.hxx"
+#include "doctok/sprmids.hxx"
+#include "doctok/resourceids.hxx"
+</xsl:text>
+ <xsl:call-template name="factoryincludes"/>
+ <xsl:text>
+namespace writerfilter {
+namespace ooxml {
+
+/// @cond GENERATED
+ </xsl:text>
+ <xsl:call-template name="factorycreatecontextfromfactory"/>
+ <xsl:call-template name="factoryfornamespace"/>
+ <xsl:call-template name="factorycreatefromstart"/>
+ <xsl:call-template name="fasttokentoid"/>
+ <xsl:call-template name="sprmkind"/>
+ <xsl:call-template name="getfastparser"/>
+ <xsl:text>
+/// @endcond
+}}
+</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/ooxml/factoryimpl_ns.xsl b/writerfilter/source/ooxml/factoryimpl_ns.xsl
new file mode 100644
index 000000000000..55d986932aec
--- /dev/null
+++ b/writerfilter/source/ooxml/factoryimpl_ns.xsl
@@ -0,0 +1,824 @@
+<!--
+/*************************************************************************
+ *
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2008 by Sun Microsystems, Inc.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ $RCSfile: fastresources_wml.xsl,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.
+
+ ************************************************************************/
+
+-->
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:xforms="http://www.w3.org/2002/xforms"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rng="http://relaxng.org/ns/structure/1.0"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+ xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
+ <xsl:output method="text" />
+ <xsl:param name="prefix"/>
+
+ <xsl:include href="factorytools.xsl"/>
+
+<xsl:template name="factorymutex">
+ <xsl:call-template name="factoryclassname"/>
+ <xsl:text>_Mutex</xsl:text>
+</xsl:template>
+
+<xsl:template name="factorymutexdecl">
+ <xsl:variable name="classname">
+ <xsl:call-template name="factoryclassname"/>
+ </xsl:variable>
+ <xsl:text>
+typedef rtl::Static &lt; osl::Mutex, </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text> &gt; </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>_Mutex;
+</xsl:text>
+</xsl:template>
+
+<xsl:template name="factoryconstructor">
+ <xsl:variable name="classname">
+ <xsl:call-template name="factoryclassname"/>
+ </xsl:variable>
+ <xsl:text>
+</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>::</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>()
+{
+ // multi-thread-safe mutex for all platforms
+
+ osl::MutexGuard aGuard(</xsl:text>
+ <xsl:call-template name="factorymutex"/>
+ <xsl:text>::get());
+}
+</xsl:text>
+</xsl:template>
+
+<xsl:template name="factorydestructor">
+ <xsl:variable name="classname">
+ <xsl:call-template name="factoryclassname"/>
+ </xsl:variable>
+ <xsl:text>
+</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>::~</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>()
+{
+}
+</xsl:text>
+</xsl:template>
+
+<xsl:template name="factorygetinstance">
+ <xsl:variable name="classname">
+ <xsl:call-template name="factoryclassname"/>
+ </xsl:variable>
+ <xsl:text>
+OOXMLFactory_ns::Pointer_t </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>::m_pInstance;
+
+OOXMLFactory_ns::Pointer_t </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>::getInstance()
+{
+ if (m_pInstance.get() == NULL)
+ m_pInstance.reset(new </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>());
+
+ return m_pInstance;
+}
+</xsl:text>
+</xsl:template>
+
+<!--
+
+creates code block in OOXMLFactory_<namespace>::createAttributeToResourceMap
+for a rng:define
+
+ -->
+<xsl:template name="factoryattributetoresourcemapinner">
+ <xsl:for-each select=".//rng:attribute">
+ <xsl:variable name="mynsid" select="generate-id(ancestor::namespace)"/>
+ <xsl:variable name="resource">
+ <xsl:for-each select="rng:ref">
+ <xsl:for-each select="key('context-resource', @name)[generate-id(ancestor::namespace) = $mynsid]">
+ <xsl:value-of select="@resource"/>
+ </xsl:for-each>
+ </xsl:for-each>
+ <xsl:for-each select=".//rng:text">
+ <xsl:text>String</xsl:text>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:variable name="refdefine1">
+ <xsl:for-each select="rng:ref">
+ <xsl:variable name="refname" select="@name"/>
+ <xsl:for-each select="ancestor::rng:grammar/rng:define[@name=$refname]">
+ <xsl:call-template name="idfordefine"/>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="refdefine">
+ <xsl:choose>
+ <xsl:when test="string-length($refdefine1) > 0">
+ <xsl:value-of select="$refdefine1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>0</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="string-length($resource) > 0">
+ <xsl:text>
+ (*pMap)[</xsl:text>
+ <xsl:call-template name="fasttoken"/>
+ <xsl:text>] = AttributeInfo(RT_</xsl:text>
+ <xsl:value-of select="$resource"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$refdefine"/>
+ <xsl:text>);</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>
+ // empty resource: </xsl:text>
+ <xsl:call-template name="fasttoken"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:for-each>
+
+ <xsl:for-each select=".//rng:ref[not(ancestor::rng:element or ancestor::rng:attribute)]">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:for-each select="ancestor::namespace/rng:grammar/rng:define[@name=$name]">
+ <xsl:call-template name="factoryattributetoresourcemapinner"/>
+ </xsl:for-each>
+ </xsl:for-each>
+</xsl:template>
+
+<!-- factoryattributetoresourcemap -->
+<xsl:template name="factoryattributetoresourcemap">
+ <xsl:text>
+AttributeToResourceMapPointer </xsl:text>
+ <xsl:call-template name="factoryclassname"/>
+ <xsl:text>::createAttributeToResourceMap(Id nId)
+{
+ AttributeToResourceMapPointer pMap(new AttributeToResourceMap());
+
+ switch (nId)
+ {</xsl:text>
+ <xsl:for-each select="rng:grammar/rng:define">
+ <xsl:variable name="inner">
+ <xsl:call-template name="factoryattributetoresourcemapinner"/>
+ </xsl:variable>
+ <xsl:if test="string-length($inner) > 0">
+ <xsl:text>
+ </xsl:text>
+ <xsl:call-template name="caselabeldefine"/>
+ <xsl:value-of select="$inner"/>
+ <xsl:text>
+ break;</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ default:
+ break;
+ }
+
+ return pMap;
+}
+</xsl:template>
+
+<!-- factorylistvaluemap -->
+<xsl:template name="factorylistvaluemap">
+ <xsl:text>
+ListValueMapPointer </xsl:text>
+ <xsl:call-template name="factoryclassname"/>
+ <xsl:text>::createListValueMap(Id nId)
+{
+ ListValueMapPointer pMap(new ListValueMap());
+
+ switch (nId)
+ {</xsl:text>
+ <xsl:for-each select="resource[@resource='List']">
+ <xsl:text>
+ </xsl:text>
+ <xsl:call-template name="caselabeldefine"/>
+ <xsl:for-each select="value">
+ <xsl:text>
+ (*pMap)[</xsl:text>
+ <xsl:call-template name="valuestringname">
+ <xsl:with-param name="string" select="text()"/>
+ </xsl:call-template>
+ <xsl:text>] = </xsl:text>
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="@tokenid"/>
+ </xsl:call-template>
+ <xsl:text>;</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+ break;</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+ default:
+ break;
+ }
+
+ return pMap;
+}</xsl:text>
+</xsl:template>
+
+<!-- factoryelementtoresorucemapinner -->
+<xsl:template name="factorycreateelementmapinner">
+ <xsl:for-each select=".//rng:element">
+ <xsl:variable name="resource">
+ <xsl:for-each select="rng:ref">
+ <xsl:call-template name="contextresource"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:if test="string-length($resource) > 0">
+ <xsl:text>
+ (*pMap)[</xsl:text>
+ <xsl:call-template name="fasttoken"/>
+ <xsl:text>] = CreateElement(RT_</xsl:text>
+ <xsl:value-of select="$resource"/>
+ <xsl:text>, </xsl:text>
+ <xsl:for-each select="rng:ref">
+ <xsl:call-template name="idforref"/>
+ </xsl:for-each>
+ <xsl:text>);</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select=".//rng:ref[not(ancestor::rng:element or ancestor::rng:attribute)]">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="block">
+ <xsl:for-each select="ancestor::namespace/rng:grammar/rng:define[@name=$name]">
+ <xsl:call-template name="factorycreateelementmapinner"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="block1">
+ <xsl:choose>
+ <xsl:when test="string-length($block) = 0">
+ <xsl:for-each select="ancestor::model/namespace/rng:grammar/rng:define[@name=$name]">
+ <xsl:call-template name="factorycreateelementmapinner"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$block"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="string-length($block1) > 0">
+ <xsl:text>
+ /* ref: </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>*/</xsl:text>
+ <xsl:value-of select="$block1"/>
+ </xsl:if>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="factorycreateelementmapfromstart">
+ <xsl:for-each select="start">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="block">
+ <xsl:for-each select="ancestor::namespace/rng:grammar/rng:define[@name=$name]">
+ <xsl:call-template name="factorycreateelementmapinner">
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:text>
+ /* start: </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>*/</xsl:text>
+ <xsl:if test="string-length($block) > 0">
+ <xsl:value-of select="$block"/>
+ </xsl:if>
+ </xsl:for-each>
+</xsl:template>
+
+<!-- factoryelementtoresourcemap -->
+<xsl:template name="factorycreateelementmap">
+ <xsl:text>
+CreateElementMapPointer </xsl:text>
+ <xsl:call-template name="factoryclassname"/>
+ <xsl:text>::createCreateElementMap(Id nId)
+{
+ CreateElementMapPointer pMap(new CreateElementMap());
+
+ switch (nId)
+ {</xsl:text>
+ <xsl:for-each select="rng:grammar/rng:define">
+ <xsl:variable name="inner">
+ <xsl:call-template name="factorycreateelementmapinner"/>
+ </xsl:variable>
+ <xsl:if test="string-length($inner) > 0">
+ <xsl:text>
+ </xsl:text>
+ <xsl:call-template name="caselabeldefine"/>
+ <xsl:value-of select="$inner"/>
+ <xsl:text>
+ break;</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>
+ default:</xsl:text>
+ <xsl:call-template name="factorycreateelementmapfromstart"/>
+ <xsl:text>
+ break;
+ }
+
+ return pMap;
+}</xsl:text>
+</xsl:template>
+
+ <!--
+ Chooses the action for the current <action> element.
+ -->
+ <xsl:template name="factorychooseaction">
+ <xsl:if test="@tokenid">
+ <xsl:text>
+ if (sal::static_int_cast&lt;Id&gt;(pHandler-&gt;getId()) == </xsl:text>
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="@tokenid"/>
+ </xsl:call-template>
+ <xsl:text>)
+ {</xsl:text>
+ </xsl:if>
+ <xsl:for-each select="./cond">
+ <xsl:text>
+ {
+ OOXMLPropertySetEntryToInteger aHandler(</xsl:text>
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="@tokenid"/>
+ </xsl:call-template>
+ <xsl:text>);
+ dynamic_cast&lt;OOXMLFastContextHandlerStream*&gt;(pHandler)-&gt;getPropertySetAttrs()-&gt;resolve(aHandler);
+
+ if (sal::static_int_cast&lt;Id&gt;(aHandler.getValue()) == </xsl:text>
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="@value"/>
+ </xsl:call-template>
+ <xsl:text>)
+ {</xsl:text>
+ </xsl:for-each>
+ <xsl:choose>
+ <xsl:when test="@action='handleXNotes' or
+ @action='handleHdrFtr' or
+ @action='handleComment' or
+ @action='handlePicture' or
+ @action='handleBreak' or
+ @action='handleOLE'">
+ <xsl:text>
+ dynamic_cast&lt;OOXMLFastContextHandlerProperties*&gt;(pHandler)-&gt;</xsl:text>
+ <xsl:value-of select="@action"/>
+ <xsl:text>();</xsl:text>
+ </xsl:when>
+ <xsl:when test="@action='propagateCharacterPropertiesAsSet'">
+ <xsl:text>
+ pHandler-&gt;propagateCharacterPropertiesAsSet(</xsl:text>
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="@sendtokenid"/>
+ </xsl:call-template>
+ <xsl:text>);</xsl:text>
+ </xsl:when>
+ <xsl:when test="@action='startCell' or @action='endCell'">
+ <xsl:text>
+ dynamic_cast&lt;OOXMLFastContextHandlerTextTableCell*&gt;(pHandler)-&gt;</xsl:text>
+ <xsl:value-of select="@action"/>
+ <xsl:text>();</xsl:text>
+ </xsl:when>
+ <xsl:when test="@action='startRow' or @action='endRow'">
+ <xsl:text>
+ dynamic_cast&lt;OOXMLFastContextHandlerTextTableRow*&gt;(pHandler)-&gt;</xsl:text>
+ <xsl:value-of select="@action"/>
+ <xsl:text>();</xsl:text>
+ </xsl:when>
+ <xsl:when test="@action='sendProperty' or @action='handleHyperlink'">
+ <xsl:text>
+ dynamic_cast&lt;OOXMLFastContextHandlerStream*&gt;(pHandler)-&gt;</xsl:text>
+ <xsl:value-of select="@action"/>
+ <xsl:text>();</xsl:text>
+ </xsl:when>
+ <xsl:when test="@action='fieldstart'">
+ <xsl:text>
+ pHandler-&gt;startField();</xsl:text>
+ </xsl:when>
+ <xsl:when test="@action='fieldsep'">
+ <xsl:text>
+ pHandler-&gt;fieldSeparator();</xsl:text>
+ </xsl:when>
+ <xsl:when test="@action='fieldend'">
+ <xsl:text>
+ pHandler-&gt;endField();</xsl:text>
+ </xsl:when>
+ <xsl:when test="@action='printproperty'">
+ <xsl:text>
+ dynamic_cast&lt;OOXMLFastContextHandlerStream*&gt;(pHandler)-&gt;sendProperty(</xsl:text>
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="@sendtokenid"/>
+ </xsl:call-template>
+ <xsl:text>);</xsl:text>
+ </xsl:when>
+ <xsl:when test="@action='sendPropertiesWithId'">
+ <xsl:text>
+ pHandler-&gt;sendPropertiesWithId(</xsl:text>
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="@sendtokenid"/>
+ </xsl:call-template>
+ <xsl:text>);</xsl:text>
+ </xsl:when>
+ <xsl:when test="@action='text'">
+ pHandler-&gt;text(sText);
+ </xsl:when>
+ <xsl:when test="@action='newProperty'">
+ <xsl:text>
+ OOXMLFastHelper&lt;OOXMLIntegerValue&gt;::newProperty(pHandler, </xsl:text>
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="@tokenid"/>
+ </xsl:call-template>
+ <xsl:text>, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("</xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:text>")));</xsl:text>
+ </xsl:when>
+ <xsl:when test="@action='mark'">
+ <xsl:text>
+ OOXMLFastHelper&lt;OOXMLIntegerValue&gt;::mark(pHandler, </xsl:text>
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="@sendtokenid"/>
+ </xsl:call-template>
+ <xsl:text>, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("</xsl:text>
+ <xsl:value-of select="@value"/>
+ <xsl:text>")));</xsl:text>
+ </xsl:when>
+ <xsl:when test="@action='tokenproperty'">
+ <xsl:text>
+ OOXMLFastHelper&lt;OOXMLIntegerValue&gt;::newProperty(pHandler, </xsl:text>
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id">ooxml:token</xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>, pHandler-&gt;getToken());</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>
+ pHandler-&gt;</xsl:text>
+ <xsl:value-of select="@action"/>
+ <xsl:text>();</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:for-each select="./cond">
+ <xsl:text>
+ }
+ }</xsl:text>
+ </xsl:for-each>
+ <xsl:if test="@tokenid">
+ <xsl:text>
+ }</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+<!-- factoryaction -->
+<xsl:template name="factoryaction">
+ <xsl:param name="action"/>
+ <xsl:text>
+void </xsl:text>
+ <xsl:call-template name="factoryclassname"/>
+ <xsl:text>::</xsl:text>
+ <xsl:value-of select="$action"/>
+ <xsl:text>Action(OOXMLFastContextHandler * pHandler</xsl:text>
+ <xsl:if test="$action='characters'">
+ <xsl:text>, const ::rtl::OUString &amp; sText</xsl:text>
+ </xsl:if>
+ <xsl:text>)
+{
+ switch (pHandler->getDefine())
+ {</xsl:text>
+ <xsl:for-each select="resource[action/@name=$action]">
+ <xsl:text>
+ </xsl:text>
+ <xsl:call-template name="caselabeldefine"/>
+ <xsl:for-each select="action[@name=$action]">
+ <xsl:call-template name="factorychooseaction"/>
+ </xsl:for-each>
+ <xsl:text>
+ break;</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+ default:
+ break;
+ }
+}
+</xsl:text>
+</xsl:template>
+
+<!-- factoryactions -->
+<xsl:template name="factoryactions">
+ <xsl:variable name="ns" select="@name"/>
+ <xsl:for-each select="resource/action">
+ <xsl:sort select="@name"/>
+ <xsl:if test="generate-id(key('actions', @name)[ancestor::namespace/@name=$ns][1]) = generate-id(.)">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:for-each select="ancestor::namespace">
+ <xsl:call-template name="factoryaction">
+ <xsl:with-param name="action" select="$name"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="factorygetdefinename">
+ <xsl:text>
+string </xsl:text>
+ <xsl:call-template name="factoryclassname"/>
+ <xsl:text>::getDefineName(Id nId) const
+{
+ static IdToStringMapPointer pMap;
+
+ if (pMap.get() == NULL)
+ {
+ pMap = IdToStringMapPointer(new IdToStringMap());
+
+</xsl:text>
+ <xsl:for-each select="rng:grammar/rng:define">
+ <xsl:text>
+ (*pMap)[</xsl:text>
+ <xsl:call-template name="idfordefine"/>
+ <xsl:text>] = "</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>";</xsl:text>
+ </xsl:for-each>
+ }
+
+ return (*pMap)[nId];
+}
+
+</xsl:template>
+
+<xsl:template name="factorytokentoidmapinner">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="body">
+ <xsl:for-each select="ancestor::namespace/resource[@name=$name]">
+ <xsl:for-each select="element[@tokenid]|attribute[@tokenid]">
+ <xsl:text>
+ (*pMap)[</xsl:text>
+ <xsl:call-template name="fasttoken"/>
+ <xsl:text>] = </xsl:text>
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="@tokenid"/>
+ </xsl:call-template>
+ <xsl:text>;</xsl:text>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:if test="string-length($body) > 0">
+ <xsl:text>
+ // </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:value-of select="$body"/>
+ </xsl:if>
+ <xsl:for-each select=".//rng:ref[not(ancestor::rng:element or ancestor::rng:attribute)]">
+ <xsl:variable name="refname" select="@name"/>
+ <xsl:variable name="refblock1">
+ <xsl:for-each
+ select="ancestor::rng:grammar/rng:define[@name=$refname]">
+ <xsl:call-template name="factorytokentoidmapinner"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($refblock1) = 0">
+ <xsl:for-each select="ancestor::model/namespace/rng:grammar/rng:define[@name=$refname]">
+ <xsl:call-template name="factorytokentoidmapinner"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$refblock1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="factorytokentoidmap">
+ <xsl:text>
+TokenToIdMapPointer </xsl:text>
+ <xsl:call-template name="factoryclassname"/>
+ <xsl:text>::createTokenToIdMap(Id nId)
+{
+ TokenToIdMapPointer pMap(new TokenToIdMap());
+
+ switch (nId)
+ {</xsl:text>
+ <xsl:for-each select="rng:grammar/rng:define">
+ <xsl:variable name="inner">
+ <xsl:call-template name="factorytokentoidmapinner"/>
+ </xsl:variable>
+ <xsl:if test="string-length($inner) > 0">
+ <xsl:text>
+ </xsl:text>
+ <xsl:call-template name="caselabeldefine"/>
+ <xsl:value-of select="$inner"/>
+ <xsl:text>
+ break;</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>
+ default:</xsl:text>
+ <xsl:for-each select="start">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:text>
+ // </xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:for-each select="ancestor::namespace/rng:grammar/rng:define[@name=$name]">
+ <xsl:call-template name="factorytokentoidmapinner"/>
+ </xsl:for-each>
+ </xsl:for-each>
+ <xsl:text>
+ break;
+ }
+
+ return pMap;
+}
+</xsl:text>
+</xsl:template>
+
+<xsl:template name="factoryattributeactiondefineinner">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="block">
+ <xsl:for-each select="ancestor::namespace/resource[@name=$name]">
+ <xsl:for-each select="attribute[@action]">
+ <xsl:text>
+ case </xsl:text>
+ <xsl:call-template name="fasttoken"/>
+ <xsl:text>:
+ pHandler-></xsl:text>
+ <xsl:value-of select="@action"/>
+ <xsl:text>(pValue);
+ break;</xsl:text>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:if test="string-length($block) > 0">
+ <xsl:variable name="handlertype">
+ <xsl:text>OOXMLFastContextHandler</xsl:text>
+ <xsl:for-each select="ancestor::namespace/resource[@name=$name]">
+ <xsl:value-of select="@resource"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:text>
+ {
+ </xsl:text>
+ <xsl:value-of select="$handlertype"/>
+ <xsl:text> * pHandler = dynamic_cast&lt;</xsl:text>
+ <xsl:value-of select="$handlertype"/>
+ <xsl:text> * &gt;(_pHandler);
+
+ switch(nToken)
+ {</xsl:text>
+ <xsl:value-of select="$block"/>
+ <xsl:text>
+ default:
+ break;
+ }
+ }</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="factoryattributeactioninner">
+ <xsl:for-each select="rng:grammar/rng:define">
+ <xsl:variable name="inner">
+ <xsl:call-template name="factoryattributeactiondefineinner"/>
+ </xsl:variable>
+ <xsl:if test="string-length($inner) > 0">
+ <xsl:text>
+ </xsl:text>
+ <xsl:call-template name="caselabeldefine"/>
+ <xsl:value-of select="$inner"/>
+ <xsl:text>
+ break;</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="factoryattributeaction">
+ <xsl:variable name="inner">
+ <xsl:call-template name="factoryattributeactioninner"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($inner) > 0">
+ <xsl:text>
+void </xsl:text>
+<xsl:call-template name="factoryclassname"/>
+<xsl:text>::attributeAction(OOXMLFastContextHandler * _pHandler, Token_t nToken, OOXMLValue::Pointer_t pValue)
+{
+ switch(_pHandler->getDefine())
+ {</xsl:text>
+ <xsl:value-of select="$inner"/>
+ <xsl:text>
+ default:
+ break;
+ }
+}
+</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>
+void </xsl:text>
+<xsl:call-template name="factoryclassname"/>
+<xsl:text>::attributeAction(OOXMLFastContextHandler *, Token_t, OOXMLValue::Pointer_t)
+{
+}
+</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+ <xsl:template match="/">
+ <xsl:variable name="ns" select="substring-before(substring-after($file, 'OOXMLFactory_'), '.cxx')"/>
+ <xsl:text>
+#include "doctok/sprmids.hxx"
+#include "doctok/resourceids.hxx"
+#include "ooxml/resourceids.hxx"
+#include "OOXMLFactory_values.hxx"
+#include "OOXMLFactory_</xsl:text>
+ <xsl:value-of select="$ns"/>
+ <xsl:text>.hxx"
+#include "OOXMLFastHelper.hxx"
+
+namespace writerfilter {
+namespace ooxml {
+
+/// @cond GENERATED
+ </xsl:text>
+ <xsl:for-each select="/model/namespace[@name=$ns]">
+ <xsl:call-template name="factorymutexdecl"/>
+ <xsl:call-template name="factoryconstructor"/>
+ <xsl:call-template name="factorydestructor"/>
+ <xsl:call-template name="factorygetinstance"/>
+ <xsl:call-template name="factoryattributetoresourcemap"/>
+ <xsl:call-template name="factorylistvaluemap"/>
+ <xsl:call-template name="factorycreateelementmap"/>
+ <xsl:call-template name="factoryactions"/>
+ <xsl:call-template name="factorygetdefinename"/>
+ <xsl:call-template name="factorytokentoidmap"/>
+ <xsl:call-template name="factoryattributeaction"/>
+ </xsl:for-each>
+ <xsl:text>
+/// @endcond
+}}
+</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/ooxml/fastresources_.xsl b/writerfilter/source/ooxml/factoryimpl_values.xsl
index 6141bb7f02bc..465923d41769 100644
--- a/writerfilter/source/ooxml/fastresources_.xsl
+++ b/writerfilter/source/ooxml/factoryimpl_values.xsl
@@ -3,10 +3,14 @@
*
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- Copyright 2000, 2010 Oracle and/or its affiliates.
+ Copyright 2008 by Sun Microsystems, Inc.
OpenOffice.org - a multi-platform office productivity suite
+ $RCSfile: fastresources_wml.xsl,v $
+
+ $Revision: 1.3 $
+
This file is part of OpenOffice.org.
OpenOffice.org is free software: you can redistribute it and/or modify
@@ -23,7 +27,7 @@
version 3 along with OpenOffice.org. If not, see
<http://www.openoffice.org/license.html>
for a copy of the LGPLv3 License.
-
+
************************************************************************/
-->
@@ -61,39 +65,34 @@
<xsl:output method="text" />
<xsl:param name="prefix"/>
- <xsl:include href="resourcestools.xsl"/>
+ <xsl:include href="factorytools.xsl"/>
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
+ <!--
+ Generates constant definitions for attribute values.
+ -->
+ <xsl:template name="valueconstants">
<xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_WML_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_WML_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-using namespace doctok;
+rtl::OUString </xsl:text>
+<xsl:call-template name="valuestringname">
+ <xsl:with-param name="string"></xsl:with-param>
+</xsl:call-template>
+<xsl:text>(RTL_CONSTASCII_USTRINGPARAM(""));</xsl:text>
+<xsl:for-each select="//rng:value[generate-id(key('value-with-content', text())[1]) = generate-id(.)]">
+ <xsl:text>
+rtl::OUString </xsl:text>
+<xsl:call-template name="valuestringname">
+ <xsl:with-param name="string" select="."/>
+</xsl:call-template>
+<xsl:text>(RTL_CONSTASCII_USTRINGPARAM("</xsl:text>
+<xsl:value-of select="."/>
+<xsl:text>"));</xsl:text>
+</xsl:for-each>
+ </xsl:template>
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">wml</xsl:with-param>
- </xsl:call-template>
+ <xsl:template match="/">
<xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_WML_HXX&#xa;</xsl:text>
+#include "OOXMLFactory_values.hxx"</xsl:text>
+<xsl:call-template name="valueconstants"/>
+<xsl:text>&#xa;</xsl:text>
</xsl:template>
-
- <xsl:template match="*"/>
</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-shape3DCamera.xsl b/writerfilter/source/ooxml/factoryinc.xsl
index 8ff2260a76c4..aa54a5c297ca 100644
--- a/writerfilter/source/ooxml/fastresources_dml-shape3DCamera.xsl
+++ b/writerfilter/source/ooxml/factoryinc.xsl
@@ -3,10 +3,14 @@
*
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- Copyright 2000, 2010 Oracle and/or its affiliates.
+ Copyright 2008 by Sun Microsystems, Inc.
OpenOffice.org - a multi-platform office productivity suite
+ $RCSfile: fastresources_wml.xsl,v $
+
+ $Revision: 1.3 $
+
This file is part of OpenOffice.org.
OpenOffice.org is free software: you can redistribute it and/or modify
@@ -23,7 +27,7 @@
version 3 along with OpenOffice.org. If not, see
<http://www.openoffice.org/license.html>
for a copy of the LGPLv3 License.
-
+
************************************************************************/
-->
@@ -61,38 +65,48 @@
<xsl:output method="text" />
<xsl:param name="prefix"/>
- <xsl:include href="resourcestools.xsl"/>
+ <xsl:include href="factorytools.xsl"/>
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_SHAPE3DCAMERA_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_SHAPE3DCAMERA_HXX
+ <xsl:template name="factorynamespaceiddecls">
+ <xsl:for-each select="/model/namespace">
+ <xsl:sort select="@name"/>
+ <xsl:text>
+extern const Id </xsl:text>
+<xsl:call-template name="idfornamespace"/>
+<xsl:text>;</xsl:text>
+ </xsl:for-each>
+ </xsl:template>
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
+ <xsl:template name="factorynamespaceidimpls">
+ <xsl:for-each select="/model/namespace">
+ <xsl:sort select="@name"/>
+ <xsl:text>
+const Id </xsl:text>
+<xsl:call-template name="idfornamespace"/>
+<xsl:text> = </xsl:text>
+<xsl:value-of select="position()"/>
+<xsl:text> &lt;&lt; 16;</xsl:text>
+ </xsl:for-each>
+</xsl:template>
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
+ <xsl:template match="/">
+ <xsl:text>
+#ifndef OOXML_FACTORY_GENERATED_HXX
+#define OOXML_FACTORY_GENERATED_HXX
namespace writerfilter {
namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
/// @cond GENERATED
</xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-shape3DCamera</xsl:with-param>
- </xsl:call-template>
+ <xsl:call-template name="factorynamespaceidimpls"/>
+ <xsl:call-template name="factorydefineidimpls"/>
<xsl:text>
/// @endcond
}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_SHAPE3DCAMERA_HXX&#xa;</xsl:text>
- </xsl:template>
- <xsl:template match="*"/>
-</xsl:stylesheet>
+#endif // OOXML_FACTORY_GENERATED_HXX
+</xsl:text>
+</xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/ooxml/factorytools.xsl b/writerfilter/source/ooxml/factorytools.xsl
new file mode 100644
index 000000000000..a7b0af5f9dea
--- /dev/null
+++ b/writerfilter/source/ooxml/factorytools.xsl
@@ -0,0 +1,345 @@
+<!--
+/*************************************************************************
+ *
+ * DO NOT 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.
+ *
+ ************************************************************************/
+
+-->
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:xforms="http://www.w3.org/2002/xforms"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rng="http://relaxng.org/ns/structure/1.0"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+ xmlns:xalan="http://xml.apache.org/xalan"
+ xmlns:UML = 'org.omg.xmi.namespace.UML'
+ xmlns:common="http://exslt.org/common"
+ exclude-result-prefixes = "xalan"
+ xml:space="default">
+
+<!--
+ KEYS
+-->
+<xsl:key name="context-resource"
+ match="resource" use="@name"/>
+
+<xsl:key name="tokenids" match="@tokenid|@sendtokenid" use="."/>
+
+<xsl:key name="actions" match="/model/namespace/resource/action"
+ use="@name"/>
+
+<xsl:key name="definename" match="//rng:define" use="@name"/>
+
+<xsl:key name="resources" match="/model/namespace/resource" use="@resource"/>
+
+<xsl:key name="value-with-content" match="//rng:value"
+ use="text()"/>
+
+<xsl:key name="same-token-name" match="rng:element|rng:attribute" use="@localname"/>
+
+<!-- license header -->
+<xsl:template name="licenseheader">
+ <xsl:text>
+/*
+
+ THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT!
+
+*/
+&#xa;</xsl:text>
+</xsl:template>
+
+<!--
+IDENTIFIERs
+-->
+
+<!--
+
+generates token identifer for a namespace
+
+NN_<namespace/@name>
+
+-->
+<xsl:template name="fastnamespace">
+ <xsl:if test="string-length(@prefix) > 0">
+ <xsl:text>NS_</xsl:text>
+ <xsl:value-of select="@prefix"/>
+ </xsl:if>
+</xsl:template>
+
+<!--
+
+generates local part of token identifier for a rng:define
+
+OOXML_<rng:define/@localname>
+
+-->
+<xsl:template name="fastlocalname">
+ <xsl:text>OOXML_</xsl:text>
+ <xsl:value-of select="@localname"/>
+</xsl:template>
+
+<!--
+
+generates identifier for a token
+
+-->
+<xsl:template name="fasttoken">
+ <xsl:variable name="ns">
+ <xsl:call-template name="fastnamespace"/>
+ </xsl:variable>
+ <xsl:if test="string-length($ns) > 0">
+ <xsl:value-of select="$ns"/>
+ <xsl:text>|</xsl:text>
+ </xsl:if>
+ <xsl:call-template name="fastlocalname"/>
+</xsl:template>
+
+<!-- generates identifier for a namespace
+
+NN_<namespace/@name>
+
+-->
+<xsl:template name="idfornamespace">
+ <xsl:text>NN_</xsl:text>
+ <xsl:value-of select="translate(@name, '-', '_')"/>
+</xsl:template>
+
+<!-- generates local part of identier for rng:define
+
+DEFINE_<rng:define/@name>
+
+-->
+<xsl:template name="localidfordefine">
+ <xsl:text>DEFINE_</xsl:text>
+ <xsl:value-of select="@name"/>
+</xsl:template>
+
+<!-- generates id for a rng:define
+
+NN_<namespace/@name> | DEFINE_<rng:define/@name>
+
+-->
+<xsl:template name="idfordefine">
+ <xsl:for-each select="ancestor::namespace">
+ <xsl:call-template name="idfornamespace"/>
+ </xsl:for-each>
+ <xsl:text>|</xsl:text>
+ <xsl:call-template name="localidfordefine"/>
+</xsl:template>
+
+<!--
+
+creates case label for a rng:define:
+
+case NN_<namesapce/@name> | DEFINE_<rng:define/@name>:
+
+-->
+<xsl:template name="caselabeldefine">
+ <xsl:text>case </xsl:text>
+ <xsl:call-template name="idfordefine"/>
+ <xsl:text>:</xsl:text>
+</xsl:template>
+
+<!--
+ Generates name for a value string.
+
+ Value strings are possible values for attributes in OOXML.
+
+ @param string the string as present in the according <rng:value>
+-->
+<xsl:template name="valuestringname">
+ <xsl:param name="string"/>
+ <xsl:text>OOXMLValueString_</xsl:text>
+ <xsl:value-of select="translate($string, '-+ ,', 'mp__')"/>
+</xsl:template>
+
+<!--
+ Generates qname for id.
+
+ @param id the id to generate qname for
+
+ If id is of format <prefix>:<localname> the result is
+
+ NS_<prefix>::LN_<localname>
+
+ If id does not contain ":" the result is just id.
+-->
+<xsl:template name='idtoqname'>
+ <xsl:param name='id'/>
+ <xsl:choose>
+ <xsl:when test="contains($id, ':')">
+ <xsl:text>NS_</xsl:text>
+ <xsl:value-of select='substring-before($id, ":")'/>
+ <xsl:text>::LN_</xsl:text>
+ <xsl:value-of select='substring-after($id, ":")'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!--
+ Returns the identifier for a namespace.
+
+NS_<namespace/@alias>
+
+-->
+<xsl:template name="namespaceid">
+ <xsl:text>NS_</xsl:text>
+ <xsl:value-of select="@alias"/>
+</xsl:template>
+
+<!--
+ Returns the value of the @resource attribute of the <resource>
+ node according to the current <define>.
+-->
+<xsl:template name="contextresource">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="nsid" select="generate-id(ancestor::namespace)"/>
+ <xsl:variable name="resourcesamens">
+ <xsl:for-each select="key('context-resource', @name)">
+ <xsl:if test="generate-id(ancestor::namespace) = $nsid">
+ <xsl:value-of select="@resource"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$name='BUILT_IN_ANY_TYPE'">
+ <xsl:text>Any</xsl:text>
+ </xsl:when>
+ <xsl:when test="string-length($resourcesamens) = 0">
+ <xsl:for-each select="key('context-resource', @name)[1]">
+ <xsl:value-of select="@resource"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$resourcesamens"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="idforref">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:variable name="result1">
+ <xsl:for-each select="ancestor::namespace/rng:grammar/rng:define[@name=$name]">
+ <xsl:call-template name="idfordefine"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$name='BUILT_IN_ANY_TYPE'">
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+ <xsl:when test="string-length($result1) = 0">
+ <xsl:for-each select="(ancestor::model/namespace/rng:grammar/rng:define[@name=$name])[1]">
+ <xsl:call-template name="idfordefine"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$result1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- factoryclassname -->
+<xsl:template name="factoryclassname">
+ <xsl:text>OOXMLFactory_</xsl:text>
+ <xsl:value-of select="translate(@name, '-', '_')"/>
+</xsl:template>
+
+<xsl:template name="factoryincludes">
+ <xsl:for-each select="/model/namespace">
+ <xsl:text>
+#include "OOXMLFactory_</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>.hxx"</xsl:text>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="factorydefineiddecls">
+ <xsl:for-each select="//rng:define">
+ <xsl:sort select="@name"/>
+ <xsl:if test="generate-id(key('definename', @name)[1]) = generate-id(.)">
+ <xsl:text>
+extern const Id </xsl:text>
+ <xsl:call-template name="localidfordefine"/>
+ <xsl:text>;</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="factorydefineidimpls">
+ <xsl:for-each select="//rng:define">
+ <xsl:sort select="@name"/>
+ <xsl:if test="generate-id(key('definename', @name)[1]) = generate-id(.)">
+ <xsl:text>
+const Id </xsl:text>
+ <xsl:call-template name="localidfordefine"/>
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select="position()"/>
+ <xsl:text>;</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="resources">
+ <xsl:for-each select="/model/namespace/resource">
+ <xsl:if test="generate-id(key('resources', @resource)[1])=generate-id(.)">
+ <xsl:text>RT_</xsl:text>
+ <xsl:value-of select="@resource"/>
+ <xsl:text>,&#xa;</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+</xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/ooxml/fastresources.xsl b/writerfilter/source/ooxml/fastresources.xsl
deleted file mode 100644
index bf68234a37bb..000000000000
--- a/writerfilter/source/ooxml/fastresources.xsl
+++ /dev/null
@@ -1,116 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_RESOURCES_HXX
-#define INCLUDED_OOXML_RESOURCES_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include &lt;resourcemodel/TagLogger.hxx&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include &lt;ooxml/OOXMLnamespaceids.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"</xsl:text>
- <xsl:for-each select="//namespace">
- <xsl:text>
-#include "OOXMLfastresources_</xsl:text>
-<xsl:value-of select="@name"/>
-<xsl:text>.hxx"</xsl:text>
- </xsl:for-each>
- <xsl:text>
-
-namespace writerfilter {
-namespace ooxml {
-
-extern TagLogger::Pointer_t debug_logger;
-
-using namespace ::std;
-using namespace ::com::sun::star;
-
-uno::Reference &lt; xml::sax::XFastContextHandler &gt;
-createFromStart(::sal_Int32 Element);
-void dumpAttribs
-(const uno::Reference &lt; xml::sax::XFastAttributeList &gt; &amp; Attribs)
- throw (uno::RuntimeException, xml::sax::SAXException);
-
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="valueconstantdecls"/>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_RESOURCES_HXX&#xa;</xsl:text></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-baseStylesheet.xsl b/writerfilter/source/ooxml/fastresources_dml-baseStylesheet.xsl
deleted file mode 100644
index b16443e1021a..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-baseStylesheet.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_BASESTYLESHEET_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_BASESTYLESHEET_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-baseStylesheet</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_BASESTYLESHEET_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-chartDrawing.xsl b/writerfilter/source/ooxml/fastresources_dml-chartDrawing.xsl
deleted file mode 100644
index 3a0869ebe826..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-chartDrawing.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_CHARTDRAWING_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_CHARTDRAWING_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-chartDrawing</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_CHARTDRAWING_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-documentProperties.xsl b/writerfilter/source/ooxml/fastresources_dml-documentProperties.xsl
deleted file mode 100644
index 4a5aab2e3012..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-documentProperties.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_DOCUMENTPROPERTIES_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_DOCUMENTPROPERTIES_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-documentProperties</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_DOCUMENTPROPERTIES_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-graphicalObject.xsl b/writerfilter/source/ooxml/fastresources_dml-graphicalObject.xsl
deleted file mode 100644
index 731fe6dd7712..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-graphicalObject.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_GRAPHICALOBJECT_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_GRAPHICALOBJECT_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-graphicalObject</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_GRAPHICALOBJECT_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-shape3DLighting.xsl b/writerfilter/source/ooxml/fastresources_dml-shape3DLighting.xsl
deleted file mode 100644
index 374668a8b7e3..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-shape3DLighting.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_SHAPE3DLIGHTING_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_SHAPE3DLIGHTING_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-shape3DLighting</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_SHAPE3DLIGHTING_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-shape3DStyles.xsl b/writerfilter/source/ooxml/fastresources_dml-shape3DStyles.xsl
deleted file mode 100644
index 8769fdc93f88..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-shape3DStyles.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_SHAPE3DSTYLES_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_SHAPE3DSTYLES_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-shape3DStyles</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_SHAPE3DSTYLES_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-shapeEffects.xsl b/writerfilter/source/ooxml/fastresources_dml-shapeEffects.xsl
deleted file mode 100644
index 3925aa2c2f34..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-shapeEffects.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_SHAPEEFFECTS_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_SHAPEEFFECTS_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-shapeEffects</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_SHAPEEFFECTS_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-shapeGeometry.xsl b/writerfilter/source/ooxml/fastresources_dml-shapeGeometry.xsl
deleted file mode 100644
index d500a94d7137..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-shapeGeometry.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_SHAPEGEOMETRY_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_SHAPEGEOMETRY_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-shapeGeometry</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_SHAPEGEOMETRY_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-shapeLineProperties.xsl b/writerfilter/source/ooxml/fastresources_dml-shapeLineProperties.xsl
deleted file mode 100644
index cc7e47ba3e27..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-shapeLineProperties.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_SHAPELINEPROPERTIES_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_SHAPELINEPROPERTIES_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-shapeLineProperties</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_SHAPELINEPROPERTIES_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-shapeProperties.xsl b/writerfilter/source/ooxml/fastresources_dml-shapeProperties.xsl
deleted file mode 100644
index 7fbfef66b033..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-shapeProperties.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_SHAPEPROPERTIES_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_SHAPEPROPERTIES_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-shapeProperties</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_SHAPEPROPERTIES_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-styleDefaults.xsl b/writerfilter/source/ooxml/fastresources_dml-styleDefaults.xsl
deleted file mode 100644
index 35d20409e2f0..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-styleDefaults.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_STYLEDEFAULTS_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_STYLEDEFAULTS_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-styleDefaults</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_STYLEDEFAULTS_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-stylesheet.xsl b/writerfilter/source/ooxml/fastresources_dml-stylesheet.xsl
deleted file mode 100644
index 182052eb117b..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-stylesheet.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_STYLESHEET_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_STYLESHEET_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-stylesheet</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_STYLESHEET_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-textCharacter.xsl b/writerfilter/source/ooxml/fastresources_dml-textCharacter.xsl
deleted file mode 100644
index 8b276f25d4ad..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-textCharacter.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_TEXTCHARACTER_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_TEXTCHARACTER_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-textCharacter</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_TEXTCHARACTER_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_dml-wordprocessingDrawing.xsl b/writerfilter/source/ooxml/fastresources_dml-wordprocessingDrawing.xsl
deleted file mode 100644
index d158513e3240..000000000000
--- a/writerfilter/source/ooxml/fastresources_dml-wordprocessingDrawing.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_DML_WORDPROCESSINGDRAWING_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_DML_WORDPROCESSINGDRAWING_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">dml-wordprocessingDrawing</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_DML_WORDPROCESSINGDRAWING_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_shared-math.xsl b/writerfilter/source/ooxml/fastresources_shared-math.xsl
deleted file mode 100644
index c80d616f8f50..000000000000
--- a/writerfilter/source/ooxml/fastresources_shared-math.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_SHARED_MATH_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_SHARED_MATH_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">shared-math</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_SHARED_MATH_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_shared-relationshipReference.xsl b/writerfilter/source/ooxml/fastresources_shared-relationshipReference.xsl
deleted file mode 100644
index d4abaf92680c..000000000000
--- a/writerfilter/source/ooxml/fastresources_shared-relationshipReference.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_SHARED_RELATIONSHIPREFERENCE_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_SHARED_RELATIONSHIPREFERENCE_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">shared-relationshipReference</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_SHARED_RELATIONSHIPREFERENCE_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_sml-customXmlMappings.xsl b/writerfilter/source/ooxml/fastresources_sml-customXmlMappings.xsl
deleted file mode 100644
index 33238578d449..000000000000
--- a/writerfilter/source/ooxml/fastresources_sml-customXmlMappings.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_SML_CUSTOMXMLMAPPINGS_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_SML_CUSTOMXMLMAPPINGS_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">sml-customXmlMappings</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_SML_CUSTOMXMLMAPPINGS_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_vml-main.xsl b/writerfilter/source/ooxml/fastresources_vml-main.xsl
deleted file mode 100644
index cd9512ecd7d8..000000000000
--- a/writerfilter/source/ooxml/fastresources_vml-main.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_VML_MAIN_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_VML_MAIN_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">vml-main</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_VML_MAIN_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_vml-officeDrawing.xsl b/writerfilter/source/ooxml/fastresources_vml-officeDrawing.xsl
deleted file mode 100644
index 039a2a2f608c..000000000000
--- a/writerfilter/source/ooxml/fastresources_vml-officeDrawing.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_VML_OFFICE_DRAWING_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_VML_OFFICE_DRAWING_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">vml-officeDrawing</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_VML_OFFICE_DRAWING_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_vml-wordprocessingDrawing.xsl b/writerfilter/source/ooxml/fastresources_vml-wordprocessingDrawing.xsl
deleted file mode 100644
index fa5adb933284..000000000000
--- a/writerfilter/source/ooxml/fastresources_vml-wordprocessingDrawing.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_VML_WORDPROCESSION_DRAWING_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_VML_WORDPROCESSION_DRAWING_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">vml-wordprocessingDrawing</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_VML_WORDPROCESSION_DRAWING_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresources_wml.xsl b/writerfilter/source/ooxml/fastresources_wml.xsl
deleted file mode 100644
index c21ab6ef2cdd..000000000000
--- a/writerfilter/source/ooxml/fastresources_wml.xsl
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#ifndef INCLUDED_OOXML_FASTRESOURCES_WML_HXX
-#define INCLUDED_OOXML_FASTRESOURCES_WML_HXX
-
-#include &lt;vector&gt;
-#include &lt;boost/shared_ptr.hpp&gt;
-#include &lt;string&gt;
-
-#include &lt;resourcemodel/WW8ResourceModel.hxx&gt;
-#include "OOXMLFastContextHandler.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLStreamImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
-/// @cond GENERATED
- </xsl:text>
- <xsl:call-template name="fastcontextdecls">
- <xsl:with-param name="namespace">wml</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
-/// @endcond
-}}
-#endif //INCLUDED_OOXML_FASTRESOURCES_WML_HXX&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl.xsl b/writerfilter/source/ooxml/fastresourcesimpl.xsl
deleted file mode 100644
index ac0558236cd4..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl.xsl
+++ /dev/null
@@ -1,95 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;string&gt;
-#include &lt;doctok/sprmids.hxx&gt;
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLfastresources.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-
- </xsl:text>
- <xsl:call-template name="fastcontextcreatefromstart"/>
- <xsl:call-template name="getfastparser"/>
- <xsl:call-template name="fasttokentoid"/>
- <xsl:call-template name="sprmkind"/>
- <xsl:call-template name="dumpattribs"/>
- <xsl:call-template name="ooxmlidstoxml"/>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-baseStylesheet.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-baseStylesheet.xsl
deleted file mode 100644
index 79c4f46a51ee..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-baseStylesheet.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-baseStylesheet</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-baseTypes.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-baseTypes.xsl
deleted file mode 100644
index cf7de4f5427a..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-baseTypes.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-baseTypes</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-chartDrawing.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-chartDrawing.xsl
deleted file mode 100644
index 6f14f1399d9c..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-chartDrawing.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-chartDrawing</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-documentProperties.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-documentProperties.xsl
deleted file mode 100644
index 19c6cc30c9d8..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-documentProperties.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-documentProperties</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-graphicalObject.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-graphicalObject.xsl
deleted file mode 100644
index c3854540c818..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-graphicalObject.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-graphicalObject</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DCamera.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DCamera.xsl
deleted file mode 100644
index b0b3c5ed0c35..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DCamera.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-shape3DCamera</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DLighting.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DLighting.xsl
deleted file mode 100644
index 42c99380ea3b..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DLighting.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-shape3DLighting</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DScene.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DScene.xsl
deleted file mode 100644
index caa362a3e0a7..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DScene.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-shape3DScene</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DStyles.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DStyles.xsl
deleted file mode 100644
index 5c07fc034714..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DStyles.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-shape3DStyles</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-shapeEffects.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-shapeEffects.xsl
deleted file mode 100644
index 285518d3908d..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-shapeEffects.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-shapeEffects</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-shapeGeometry.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-shapeGeometry.xsl
deleted file mode 100644
index 063ab2c4aae9..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-shapeGeometry.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-shapeGeometry</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-shapeLineProperties.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-shapeLineProperties.xsl
deleted file mode 100644
index 41127751ff2d..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-shapeLineProperties.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-shapeLineProperties</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-styleDefaults.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-styleDefaults.xsl
deleted file mode 100644
index 604652d664c2..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-styleDefaults.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-styleDefaults</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-stylesheet.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-stylesheet.xsl
deleted file mode 100644
index 940363e355f2..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-stylesheet.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-stylesheet</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-textCharacter.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-textCharacter.xsl
deleted file mode 100644
index d3d486196825..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-textCharacter.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-textCharacter</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_dml-wordprocessingDrawing.xsl b/writerfilter/source/ooxml/fastresourcesimpl_dml-wordprocessingDrawing.xsl
deleted file mode 100644
index 6433812e6c2f..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_dml-wordprocessingDrawing.xsl
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">dml-wordprocessingDrawing</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_shared-math.xsl b/writerfilter/source/ooxml/fastresourcesimpl_shared-math.xsl
deleted file mode 100644
index 65af7e93fa0a..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_shared-math.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">shared-math</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_shared-relationshipReference.xsl b/writerfilter/source/ooxml/fastresourcesimpl_shared-relationshipReference.xsl
deleted file mode 100644
index ff0e8416d23a..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_shared-relationshipReference.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">shared-relationshipReference</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_sml-customXmlMappings.xsl b/writerfilter/source/ooxml/fastresourcesimpl_sml-customXmlMappings.xsl
deleted file mode 100644
index 21dc37d4dec4..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_sml-customXmlMappings.xsl
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">sml-customXmlMappings</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_vml-main.xsl b/writerfilter/source/ooxml/fastresourcesimpl_vml-main.xsl
deleted file mode 100644
index 080e31ed69cd..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_vml-main.xsl
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include &lt;doctok/sprmids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">vml-main</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_vml-officeDrawing.xsl b/writerfilter/source/ooxml/fastresourcesimpl_vml-officeDrawing.xsl
deleted file mode 100644
index d4716325726d..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_vml-officeDrawing.xsl
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include &lt;doctok/sprmids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">vml-officeDrawing</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_vml-wordprocessingDrawing.xsl b/writerfilter/source/ooxml/fastresourcesimpl_vml-wordprocessingDrawing.xsl
deleted file mode 100644
index 09500c745444..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_vml-wordprocessingDrawing.xsl
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include &lt;doctok/sprmids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">vml-wordprocessingDrawing</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fastresourcesimpl_wml.xsl b/writerfilter/source/ooxml/fastresourcesimpl_wml.xsl
deleted file mode 100644
index 1b0b41debcff..000000000000
--- a/writerfilter/source/ooxml/fastresourcesimpl_wml.xsl
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include &lt;doctok/sprmids.hxx&gt;
-#include "OOXMLfastresources.hxx"
-#include "OOXMLFastTokens.hxx"
-#include "OOXMLFastHelper.hxx"
-#include "OOXMLvalues.hxx"
-#include "Handler.hxx"
-
-/// @cond GENERATED
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-
- </xsl:text>
- <xsl:call-template name="fastcontextimpls"><xsl:with-param name="ns">wml</xsl:with-param></xsl:call-template>
- <xsl:text>
-}}
-/// @endcond GENERATED
-&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/fasttokens.xsl b/writerfilter/source/ooxml/fasttokens.xsl
index 151e2f1cda0c..4014df0eec91 100644
--- a/writerfilter/source/ooxml/fasttokens.xsl
+++ b/writerfilter/source/ooxml/fasttokens.xsl
@@ -61,7 +61,25 @@
<xsl:output method="text" />
<xsl:param name="prefix"/>
- <xsl:include href="resourcestools.xsl"/>
+ <xsl:include href="factorytools.xsl"/>
+
+ <xsl:template name="fasttokens">
+ <xsl:text>
+typedef sal_Int32 Token_t;
+ </xsl:text>
+ <xsl:for-each select="/model/fasttoken">
+ <xsl:text>
+const Token_t OOXML_</xsl:text>
+<xsl:value-of select="translate(., '-', '_')"/>
+<xsl:text> = </xsl:text>
+<xsl:value-of select="position() - 1"/>
+<xsl:text>;</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+const Token_t OOXML_FAST_TOKENS_END =</xsl:text>
+<xsl:value-of select="count(/model/fasttoken)"/>
+<xsl:text>;&#xa;</xsl:text>
+ </xsl:template>
<xsl:template match="/">
<out xml:space="preserve">
diff --git a/writerfilter/source/ooxml/fasttokensimpl.xsl b/writerfilter/source/ooxml/fasttokensimpl.xsl
deleted file mode 100644
index 1bafce1978e2..000000000000
--- a/writerfilter/source/ooxml/fasttokensimpl.xsl
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--
-
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
-using namespace ::com::sun::star;
-</xsl:text>
-<xsl:call-template name="fasttokentoid"/>
-<xsl:text>
-}}&#xa;</xsl:text></out></xsl:template>
-
- <xsl:template match="*"/>
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/gperffasttokenhandler.xsl b/writerfilter/source/ooxml/gperffasttokenhandler.xsl
index 9ecd15f8c744..d14db0486b5d 100644
--- a/writerfilter/source/ooxml/gperffasttokenhandler.xsl
+++ b/writerfilter/source/ooxml/gperffasttokenhandler.xsl
@@ -63,7 +63,31 @@
xml:space="default">
<xsl:output method="text" />
- <xsl:include href="resourcestools.xsl"/>
+ <xsl:include href="factorytools.xsl"/>
+
+ <!--
+ Generates input for gperf to genreate hash map for OOXMLFastTokenHandler
+ -->
+ <xsl:template name="gperfinputfasttokenhandler">
+ <xsl:text>
+%{
+#include "OOXMLFastTokens.hxx"
+
+namespace writerfilter { namespace ooxml { namespace tokenmap {
+%}
+struct token { const char * name; Token_t nToken; };
+%%</xsl:text>
+ <xsl:for-each select=".//rng:element|.//rng:attribute">
+ <xsl:if test="generate-id(.) = generate-id(key('same-token-name', @localname)[1])">
+ <xsl:text>&#xa;</xsl:text>
+ <xsl:value-of select="@localname"/>
+ <xsl:text>, </xsl:text>
+ <xsl:call-template name="fastlocalname"/>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>
+%%&#xa;</xsl:text>
+}}}&#xa;</xsl:template>
<xsl:template match="/">
<xsl:call-template name="gperfinputfasttokenhandler"/>
diff --git a/writerfilter/source/ooxml/makefile.mk b/writerfilter/source/ooxml/makefile.mk
index ac8e7ea9b05c..c6a40b4cc5d1 100644
--- a/writerfilter/source/ooxml/makefile.mk
+++ b/writerfilter/source/ooxml/makefile.mk
@@ -68,14 +68,16 @@ NAMESPACES= \
# --- Files --------------------------------------------------------
-SLOFASTNAMESPACES= \
- $(SLO)$/OOXMLfastresources_{$(NAMESPACES)}.obj
+SLOFACTORIESNAMESPACES= \
+ $(SLO)$/OOXMLFactory_{$(NAMESPACES)}.obj
SLOFILES= \
+ $(SLOFACTORIESNAMESPACES) \
$(SLOFASTNAMESPACES) \
+ $(SLO)$/OOXMLFactory_generated.obj \
+ $(SLO)$/OOXMLFactory.obj \
$(SLO)$/OOXMLBinaryObjectReference.obj\
- $(SLO)$/OOXMLfastresources.obj \
- $(SLO)$/OOXMLvalues.obj \
+ $(SLO)$/OOXMLFactory_values.obj \
$(SLO)$/OOXMLPropertySetImpl.obj \
$(SLO)$/OOXMLParserState.obj \
$(SLO)$/Handler.obj \
@@ -85,7 +87,6 @@ SLOFILES= \
$(SLO)$/OOXMLFastContextHandler.obj \
$(SLO)$/OOXMLFastTokenHandler.obj
-
SHL1TARGET=$(TARGET)
.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC"
@@ -127,55 +128,49 @@ OOXMLCXXOUTDIR=$(MISC)
OOXMLHXXOUTDIR=$(INCCOM)/ooxml
OOXMLHXXOUTDIRCREATED=$(OOXMLHXXOUTDIR)/created
-OOXMLFASTRESOURCECXXS=$(OOXMLCXXOUTDIR)$/OOXMLfastresources_{$(NAMESPACES)}.cxx
-OOXMLFASTRESOURCEHXXS=$(OOXMLHXXOUTDIR)$/OOXMLfastresources_{$(NAMESPACES)}.hxx
+OOXMLFACTORYCXXS=$(OOXMLCXXOUTDIR)$/OOXMLFactory_{$(NAMESPACES)}.cxx
+OOXMLFACTORYHXXS=$(OOXMLHXXOUTDIR)$/OOXMLFactory_{$(NAMESPACES)}.hxx
OOXMLMODEL=model.xml
OOXMLPREPROCESSXSL=modelpreprocess.xsl
-OOXMLRESOURCESTOOLSXSL=resourcestools.xsl
+OOXMLFACTORYTOOLSXSL=factorytools.xsl
OOXMLRESORUCETOKENSXSL=resourcestokens.xsl
OOXMLFASTTOKENSXSL=fasttokens.xsl
-OOXMLFASTTOKENSIMPLXSL=fasttokensimpl.xsl
-OOXMLFASTRESOURCESXSL=fastresources.xsl
OOXMLRESOURCESIMPLXSL=resourcesimpl.xsl
-OOXMLFASTRESOURCESIMPLXSL=fastresourcesimpl.xsl
OOXMLNAMESPACEIDSXSL=namespaceids.xsl
-OOXMLVALUESXSL=values.xsl
-OOXMLVALUESIMPLXSL=valuesimpl.xsl
+OOXMLFACTORYVALUESXSL=factory_values.xsl
+OOXMLFACTORYVALUESIMPLXSL=factoryimpl_values.xsl
OOXMLRESOURCEIDSXSL=resourceids.xsl
OOXMLGPERFFASTTOKENXSL=gperffasttokenhandler.xsl
OOXMLRESOURCEIDSHXX=$(OOXMLHXXOUTDIR)$/resourceids.hxx
-NSPROCESS=namespace_preprocess.pl
-
TOKENXML=$(OOXMLCXXOUTDIR)$/token.xml
TOKENXMLTMP=$(OOXMLCXXOUTDIR)$/token.tmp
+OOXMLFACTORYGENERATEDHXX=$(OOXMLHXXOUTDIR)$/OOXMLFactory_generated.hxx
+OOXMLFACTORYGENERATEDCXX=$(OOXMLCXXOUTDIR)$/OOXMLFactory_generated.cxx
OOXMLFASTTOKENSHXX=$(OOXMLHXXOUTDIR)$/OOXMLFastTokens.hxx
-OOXMLFASTRESOURCESHXX=$(OOXMLHXXOUTDIR)$/OOXMLfastresources.hxx
OOXMLNAMESPACEIDSHXX=$(OOXMLHXXOUTDIR)$/OOXMLnamespaceids.hxx
-OOXMLFASTRESOURCESCXX=$(OOXMLCXXOUTDIR)$/OOXMLfastresources.cxx
-OOXMLVALUESHXX=$(OOXMLCXXOUTDIR)$/OOXMLvalues.hxx
-OOXMLVALUESCXX=$(OOXMLCXXOUTDIR)$/OOXMLvalues.cxx
+OOXMLFACTORYVALUESHXX=$(OOXMLCXXOUTDIR)$/OOXMLFactory_values.hxx
+OOXMLFACTORYVALUESCXX=$(OOXMLCXXOUTDIR)$/OOXMLFactory_values.cxx
GPERFFASTTOKENHXX=$(OOXMLHXXOUTDIR)$/gperffasttoken.hxx
MODELPROCESSED=$(MISC)$/model_preprocessed.xml
-NSXSL=$(MISC)$/namespacesmap.xsl
OOXMLGENHEADERS= \
- $(OOXMLFASTRESOURCESHXX) \
+ $(OOXMLFACTORYGENERATEDHXX) \
+ $(OOXMLFACTORYHXXS) \
$(OOXMLFASTTOKENSHXX) \
- $(OOXMLVALUESHXX) \
- $(OOXMLFASTRESOURCEHXXS) \
+ $(OOXMLFACTORYVALUESHXX) \
$(GPERFFASTTOKENHXX) \
$(OOXMLRESOURCEIDSHXX) \
$(OOXMLNAMESPACEIDSHXX)
GENERATEDFILES= \
$(OOXMLGENHEADERS) \
- $(MODELPROCESSED) \
- $(OOXMLFASTRESOURCECXXS) \
- $(OOXMLVALUESCXX) \
+ $(OOXMLFACTORYGENERATEDCXX) \
+ $(OOXMLFACTORYCXXS) \
+ $(OOXMLFACTORYVALUESCXX) \
$(TOKENXMLTMP) \
$(TOKENXML)
@@ -185,87 +180,77 @@ $(TOKENXMLTMP): $(SOLARVER)$/$(INPATH)$/inc$(UPDMINOREXT)$/oox$/token.txt
$(TOKENXML): tokenxmlheader $(TOKENXMLTMP) tokenxmlfooter
@$(TYPE) tokenxmlheader $(TOKENXMLTMP) tokenxmlfooter > $@
-$(MISC)$/$(OOXMLPREPROCESSXSL): $(OOXMLPREPROCESSXSL)
- @$(COPY) $(PWD)$/$(OOXMLPREPROCESSXSL) $(MISC)
-
-$(NSXSL) : $(OOXMLMODEL) $(SOLARVER)$/$(INPATH)$/inc$(UPDMINOREXT)$/oox$/namespaces.txt $(NSPROCESS)
- @$(PERL) $(NSPROCESS) $(SOLARVER)$/$(INPATH)$/inc$(UPDMINOREXT)$/oox$/namespaces.txt > $@
-
-$(MODELPROCESSED): $(NSXSL) $(MISC)$/$(OOXMLPREPROCESSXSL) $(OOXMLMODEL)
- @echo "Making: " $(@:f)
- $(COMMAND_ECHO)$(XSLTPROC) $(NSXSL) $(OOXMLMODEL) > $@
-
$(OOXMLHXXOUTDIRCREATED):
- @$(MKDIRHIER) $(OOXMLHXXOUTDIR)
+ $(MKDIRHIER) $(OOXMLHXXOUTDIR)
@$(TOUCH) $@
$(OOXMLGENHEADERS): $(OOXMLHXXOUTDIRCREATED)
$(OOXMLFASTTOKENSHXX): $(OOXMLFASTTOKENSXSL) $(TOKENXML)
- @echo "Making: " $(@:f)
+ @echo "Making: " $(@:f)
$(COMMAND_ECHO)$(XSLTPROC) $(OOXMLFASTTOKENSXSL) $(TOKENXML) > $@
-$(OOXMLFASTRESOURCESHXX): $(OOXMLFASTRESOURCESXSL) $(MODELPROCESSED)
- @echo "Making: " $(@:f)
- $(COMMAND_ECHO)$(XSLTPROC) $(OOXMLFASTRESOURCESXSL) $(MODELPROCESSED) > $@
+$(OOXMLFACTORYGENERATEDHXX): factoryinc.xsl
+ @echo "Making: " $(@:f)
+ $(COMMAND_ECHO)$(XSLTPROC) $< $(MODELPROCESSED) > $@
+
+$(OOXMLFACTORYGENERATEDCXX): factoryimpl.xsl
+ @echo "Making: " $(@:f)
+ $(COMMAND_ECHO)$(XSLTPROC) $< $(MODELPROCESSED) > $@
-$(OOXMLFASTRESOURCESCXX): $(OOXMLFASTRESOURCEHXXS) \
- $(OOXMLFASTRESOURCESIMPLXSL) $(MODELPROCESSED)
- @echo "Making: " $(@:f)
- $(COMMAND_ECHO)$(XSLTPROC) $(OOXMLFASTRESOURCESIMPLXSL) $(MODELPROCESSED) > $@
+$(OOXMLFACTORYGENERATEDCXX): $(MODELPROCESSED)
-$(OOXMLFASTRESOURCECXXS): $(MODELPROCESSED)
+$(OOXMLFACTORYGENERATEDHXX): $(MODELPROCESSED)
-$(OOXMLFASTRESOURCEHXXS): $(MODELPROCESSED)
+$(OOXMLFACTORYCXXS): $(MODELPROCESSED)
-$(OOXMLCXXOUTDIR)$/OOXMLfastresources%.cxx: fastresourcesimpl%.xsl
- @echo "Making: " $(@:f)
- $(COMMAND_ECHO)$(XSLTPROC) $< $(MODELPROCESSED) > $@
+$(OOXMLFACTORYHXXS): $(MODELPROCESSED)
-$(OOXMLHXXOUTDIR)$/OOXMLfastresources%.hxx: fastresources%.xsl
- @echo "Making: " $(@:f)
- $(COMMAND_ECHO)$(XSLTPROC) $< $(MODELPROCESSED) > $@
+$(OOXMLCXXOUTDIR)$/OOXMLFactory%.cxx: factoryimpl_ns.xsl
+ @echo "Making: " $(@:f)
+ $(COMMAND_ECHO)$(XSLTPROC) --stringparam file $@ $< $(MODELPROCESSED) > $@
+
+$(OOXMLHXXOUTDIR)$/OOXMLFactory%.hxx: factory_ns.xsl
+ @echo "Making: " $(@:f)
+ $(COMMAND_ECHO)$(XSLTPROC) --stringparam file $@ $< $(MODELPROCESSED) > $@
-$(OOXMLVALUESHXX): $(OOXMLVALUESXSL) $(MODELPROCESSED)
- @echo "Making: " $(@:f)
- $(COMMAND_ECHO)$(XSLTPROC) $(OOXMLVALUESXSL) $(MODELPROCESSED) > $@
+$(OOXMLFACTORYVALUESHXX): $(OOXMLFACTORYVALUESXSL) $(MODELPROCESSED)
+ @echo "Making: " $(@:f)
+ $(COMMAND_ECHO)$(XSLTPROC) $(OOXMLFACTORYVALUESXSL) $(MODELPROCESSED) > $@
-$(OOXMLVALUESCXX): $(OOXMLVALUESIMPLXSL) $(MODELPROCESSED) \
- $(OOXMLFASTRESOURCESHXX)
- @echo "Making: " $(@:f)
- $(COMMAND_ECHO)$(XSLTPROC) $(OOXMLVALUESIMPLXSL) $(MODELPROCESSED) > $@
+$(OOXMLFACTORYVALUESCXX): $(OOXMLFACTORYVALUESIMPLXSL) $(MODELPROCESSED)
+ @echo "Making: " $(@:f)
+ $(COMMAND_ECHO)$(XSLTPROC) $(OOXMLFACTORYVALUESIMPLXSL) $(MODELPROCESSED) > $@
$(OOXMLRESOURCEIDSHXX): $(OOXMLHXXOUTDIRCREATED) $(OOXMLRESOURCEIDSXSL) \
$(MODELPROCESSED)
- @echo "Making: " $(@:f)
+ @echo "Making: " $(@:f)
$(COMMAND_ECHO)$(XSLTPROC) $(OOXMLRESOURCEIDSXSL) $(MODELPROCESSED) > $@
$(OOXMLNAMESPACEIDSHXX): $(OOXMLHXXOUTDIRCREATED) $(OOXMLNAMESPACEIDSXSL) \
$(MODELPROCESSED)
- @echo "Making: " $(@:f)
+ @echo "Making: " $(@:f)
$(COMMAND_ECHO)$(XSLTPROC) $(OOXMLNAMESPACEIDSXSL) $(MODELPROCESSED) > $@
$(GPERFFASTTOKENHXX): $(OOXMLGPERFFASTTOKENXSL) $(MODELPROCESSED)
- @echo "Making: " $(@:f)
+ @echo "Making: " $(@:f)
$(COMMAND_ECHO)$(XSLTPROC) $(OOXMLGPERFFASTTOKENXSL) $(MODELPROCESSED) | tr -d '\r' | gperf -I -t -E -S1 -c -G -LC++ > $@
-$(SLOFASTNAMESPACES): $(OOXMLFASTRESOURCESCXX) $(OOXMLGENHEADERS)
+$(SLOFACTORIESNAMESPACES): $(OOXMLFACTORYSCXXS) $(OOXMLGENHEADERS)
-$(GENERATEDFILES): $(OOXMLRESOURCESTOOLSXSL)
+$(GENERATEDFILES): $(OOXMLFACTORYTOOLSXSL)
$(SLOFILES): $(OOXMLGENHEADERS)
-$(SLO)/OOXMLfastresources.obj: $(OOXMLFASTRESOURCESCXX) $(OOXMLGENHEADERS)
-
-$(SLO)/OOXMLvalues.obj: $(OOXMLVALUESCXX) $(OOXMLVALUESHXX)
+$(SLO)/OOXMLFactory_values.obj: $(OOXMLFACTORYVALUESCXX) $(OOXMLFACTORYVALUESHXX)
-$(SLOFASTNAMESPACES): OOXMLFastHelper.hxx
+$(SLO)$/OOXMLFactory_generated.obj: $(OOXMLFACTORYGENERATEDCXX) $(OOXMLGENHEADERS)
.PHONY: genclean genmake genheaders
genclean:
- @rm -f $(GENERATEDFILES)
+ rm -f $(GENERATEDFILES)
genmake: $(GENERATEDFILES)
-genheaders: $(OOXMLFASTRESOURCEHXXS)
+genheaders: $(GENHEADERS)
diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml
index add4a80b551e..f571a50a9407 100644
--- a/writerfilter/source/ooxml/model.xml
+++ b/writerfilter/source/ooxml/model.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
<model xmlns:rng="http://relaxng.org/ns/structure/1.0">
<namespace-alias name="http://www.w3.org/XML/1998/namespace" alias="xml" id="XML"/>
<namespace-alias name="http://schemas.openxmlformats.org/officeDocument/2006/relationships" alias="relationships" id="RELATIONSHIPS"/>
@@ -24,10 +24,10 @@
<start name="themeOverride"/>
<start name="themeManager"/>
<grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-baseStylesheet.rng"/>
<include href="dml-styleDefaults.rng"/>
-<!-- start = theme | themeOverride | themeManager -->
+ <!-- start = theme | themeOverride | themeManager -->
<define name="CT_EmptyElement">
<empty/>
</define>
@@ -190,12 +190,15 @@
</define>
</grammar>
<resource name="CT_OfficeStyleSheet" resource="Table" tokenid="ooxml:THEMETABLE"/>
+ <resource name="theme" resource="Stream">
+ <element name="theme" tokenid="ooxml:THEMETABLE"/>
+ </resource>
<resource name="themeOverride" resource="Stream"/>
<resource name="themeManager" resource="Stream"/>
</namespace>
<namespace name="dml-styleDefaults" file="dml-styleDefaults">
<grammar xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-shapeProperties.rng"/>
<include href="dml-shapeStyle.rng"/>
<include href="dml-text.rng"/>
@@ -246,27 +249,27 @@
</namespace>
<namespace name="dml-shape3DLighting" file="dml-shape3DLighting.rng">
<grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-baseTypes.rng"/>
<define name="ST_LightRigDirection">
<list>
<xs:documentation>Light Rig Direction</xs:documentation>
<choice>
-<!-- Top Left -->
+ <!-- Top Left -->
<value>tl</value>
-<!-- Top -->
+ <!-- Top -->
<value>t</value>
-<!-- Top Right -->
+ <!-- Top Right -->
<value>tr</value>
-<!-- Left -->
+ <!-- Left -->
<value>l</value>
-<!-- Right -->
+ <!-- Right -->
<value>r</value>
-<!-- Bottom Left -->
+ <!-- Bottom Left -->
<value>bl</value>
-<!-- Bottom -->
+ <!-- Bottom -->
<value>b</value>
-<!-- Bottom Right -->
+ <!-- Bottom Right -->
<value>br</value>
</choice>
</list>
@@ -275,59 +278,59 @@
<list>
<xs:documentation>Light Rig Type</xs:documentation>
<choice>
-<!-- Legacy Flat 1 -->
+ <!-- Legacy Flat 1 -->
<value>legacyFlat1</value>
-<!-- Legacy Flat 2 -->
+ <!-- Legacy Flat 2 -->
<value>legacyFlat2</value>
-<!-- Legacy Flat 3 -->
+ <!-- Legacy Flat 3 -->
<value>legacyFlat3</value>
-<!-- Legacy Flat 4 -->
+ <!-- Legacy Flat 4 -->
<value>legacyFlat4</value>
-<!-- Legacy Normal 1 -->
+ <!-- Legacy Normal 1 -->
<value>legacyNormal1</value>
-<!-- Legacy Normal 2 -->
+ <!-- Legacy Normal 2 -->
<value>legacyNormal2</value>
-<!-- Legacy Normal 3 -->
+ <!-- Legacy Normal 3 -->
<value>legacyNormal3</value>
-<!-- Legacy Normal 4 -->
+ <!-- Legacy Normal 4 -->
<value>legacyNormal4</value>
-<!-- Legacy Harsh 1 -->
+ <!-- Legacy Harsh 1 -->
<value>legacyHarsh1</value>
-<!-- Legacy Harsh 2 -->
+ <!-- Legacy Harsh 2 -->
<value>legacyHarsh2</value>
-<!-- Legacy Harsh 3 -->
+ <!-- Legacy Harsh 3 -->
<value>legacyHarsh3</value>
-<!-- Legacy Harsh 4 -->
+ <!-- Legacy Harsh 4 -->
<value>legacyHarsh4</value>
-<!-- Three Point -->
+ <!-- Three Point -->
<value>threePt</value>
-<!-- Light Rig Enum ( Balanced ) -->
+ <!-- Light Rig Enum ( Balanced ) -->
<value>balanced</value>
-<!-- Soft -->
+ <!-- Soft -->
<value>soft</value>
-<!-- Harsh -->
+ <!-- Harsh -->
<value>harsh</value>
-<!-- Flood -->
+ <!-- Flood -->
<value>flood</value>
-<!-- Contrasting -->
+ <!-- Contrasting -->
<value>contrasting</value>
-<!-- Morning -->
+ <!-- Morning -->
<value>morning</value>
-<!-- Sunrise -->
+ <!-- Sunrise -->
<value>sunrise</value>
-<!-- Sunset -->
+ <!-- Sunset -->
<value>sunset</value>
-<!-- Chilly -->
+ <!-- Chilly -->
<value>chilly</value>
-<!-- Freezing -->
+ <!-- Freezing -->
<value>freezing</value>
-<!-- Flat -->
+ <!-- Flat -->
<value>flat</value>
-<!-- Two Point -->
+ <!-- Two Point -->
<value>twoPt</value>
-<!-- Glow -->
+ <!-- Glow -->
<value>glow</value>
-<!-- Bright Room -->
+ <!-- Bright Room -->
<value>brightRoom</value>
</choice>
</list>
@@ -390,7 +393,7 @@
</namespace>
<namespace name="dml-shape3DScene" file="dml-shape3DScene.rng">
<grammar xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-shape3DCamera.rng"/>
<include href="dml-shape3DLighting.rng"/>
<include href="dml-shape3DScenePlane.rng"/>
@@ -416,35 +419,35 @@
</namespace>
<namespace name="dml-shape3DStyles" file="dml-shape3DStyles.rng">
<grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-shapeGeometry.rng"/>
<define name="ST_BevelPresetType">
<list>
<xs:documentation>Bevel Presets</xs:documentation>
<choice>
-<!-- Relaxed Inset -->
+ <!-- Relaxed Inset -->
<value>relaxedInset</value>
-<!-- Circle -->
+ <!-- Circle -->
<value>circle</value>
-<!-- Slope -->
+ <!-- Slope -->
<value>slope</value>
-<!-- Cross -->
+ <!-- Cross -->
<value>cross</value>
-<!-- Angle -->
+ <!-- Angle -->
<value>angle</value>
-<!-- Soft Round -->
+ <!-- Soft Round -->
<value>softRound</value>
-<!-- Convex -->
+ <!-- Convex -->
<value>convex</value>
-<!-- Cool Slant -->
+ <!-- Cool Slant -->
<value>coolSlant</value>
-<!-- Divot -->
+ <!-- Divot -->
<value>divot</value>
-<!-- Riblet -->
+ <!-- Riblet -->
<value>riblet</value>
-<!-- Hard Edge -->
+ <!-- Hard Edge -->
<value>hardEdge</value>
-<!-- Art Deco -->
+ <!-- Art Deco -->
<value>artDeco</value>
</choice>
</list>
@@ -473,35 +476,35 @@
<list>
<xs:documentation>Preset Material Type</xs:documentation>
<choice>
-<!-- Legacy Matte -->
+ <!-- Legacy Matte -->
<value>legacyMatte</value>
-<!-- Legacy Plastic -->
+ <!-- Legacy Plastic -->
<value>legacyPlastic</value>
-<!-- Legacy Metal -->
+ <!-- Legacy Metal -->
<value>legacyMetal</value>
-<!-- Legacy Wireframe -->
+ <!-- Legacy Wireframe -->
<value>legacyWireframe</value>
-<!-- Matte -->
+ <!-- Matte -->
<value>matte</value>
-<!-- Plastic -->
+ <!-- Plastic -->
<value>plastic</value>
-<!-- Metal -->
+ <!-- Metal -->
<value>metal</value>
-<!-- Warm Matte -->
+ <!-- Warm Matte -->
<value>warmMatte</value>
-<!-- Translucent Powder -->
+ <!-- Translucent Powder -->
<value>translucentPowder</value>
-<!-- Powder -->
+ <!-- Powder -->
<value>powder</value>
-<!-- Dark Edge -->
+ <!-- Dark Edge -->
<value>dkEdge</value>
-<!-- Soft Edge -->
+ <!-- Soft Edge -->
<value>softEdge</value>
-<!-- Clear -->
+ <!-- Clear -->
<value>clear</value>
-<!-- Flat -->
+ <!-- Flat -->
<value>flat</value>
-<!-- Soft Metal -->
+ <!-- Soft Metal -->
<value>softmetal</value>
</choice>
</list>
@@ -612,135 +615,135 @@
</namespace>
<namespace name="dml-shape3DCamera" file="dml-shape3DCamera.rng">
<grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-baseTypes.rng"/>
<define name="ST_PresetCameraType">
<list>
<xs:documentation>Preset Camera Type</xs:documentation>
<choice>
-<!-- Legacy Oblique Top Left -->
+ <!-- Legacy Oblique Top Left -->
<value>legacyObliqueTopLeft</value>
-<!-- Legacy Oblique Top -->
+ <!-- Legacy Oblique Top -->
<value>legacyObliqueTop</value>
-<!-- Legacy Oblique Top Right -->
+ <!-- Legacy Oblique Top Right -->
<value>legacyObliqueTopRight</value>
-<!-- Legacy Oblique Left -->
+ <!-- Legacy Oblique Left -->
<value>legacyObliqueLeft</value>
-<!-- Legacy Oblique Front -->
+ <!-- Legacy Oblique Front -->
<value>legacyObliqueFront</value>
-<!-- Legacy Oblique Right -->
+ <!-- Legacy Oblique Right -->
<value>legacyObliqueRight</value>
-<!-- Legacy Oblique Bottom Left -->
+ <!-- Legacy Oblique Bottom Left -->
<value>legacyObliqueBottomLeft</value>
-<!-- Legacy Oblique Bottom -->
+ <!-- Legacy Oblique Bottom -->
<value>legacyObliqueBottom</value>
-<!-- Legacy Oblique Bottom Right -->
+ <!-- Legacy Oblique Bottom Right -->
<value>legacyObliqueBottomRight</value>
-<!-- Legacy Perspective Top Left -->
+ <!-- Legacy Perspective Top Left -->
<value>legacyPerspectiveTopLeft</value>
-<!-- Legacy Perspective Top -->
+ <!-- Legacy Perspective Top -->
<value>legacyPerspectiveTop</value>
-<!-- Legacy Perspective Top Right -->
+ <!-- Legacy Perspective Top Right -->
<value>legacyPerspectiveTopRight</value>
-<!-- Legacy Perspective Left -->
+ <!-- Legacy Perspective Left -->
<value>legacyPerspectiveLeft</value>
-<!-- Legacy Perspective Front -->
+ <!-- Legacy Perspective Front -->
<value>legacyPerspectiveFront</value>
-<!-- Legacy Perspective Right -->
+ <!-- Legacy Perspective Right -->
<value>legacyPerspectiveRight</value>
-<!-- Legacy Perspective Bottom Left -->
+ <!-- Legacy Perspective Bottom Left -->
<value>legacyPerspectiveBottomLeft</value>
-<!-- Legacy Perspective Bottom -->
+ <!-- Legacy Perspective Bottom -->
<value>legacyPerspectiveBottom</value>
-<!-- Legacy Perspective Bottom Right -->
+ <!-- Legacy Perspective Bottom Right -->
<value>legacyPerspectiveBottomRight</value>
-<!-- Orthographic Front -->
+ <!-- Orthographic Front -->
<value>orthographicFront</value>
-<!-- Isometric Top Up -->
+ <!-- Isometric Top Up -->
<value>isometricTopUp</value>
-<!-- Isometric Top Down -->
+ <!-- Isometric Top Down -->
<value>isometricTopDown</value>
-<!-- Isometric Bottom Up -->
+ <!-- Isometric Bottom Up -->
<value>isometricBottomUp</value>
-<!-- Isometric Bottom Down -->
+ <!-- Isometric Bottom Down -->
<value>isometricBottomDown</value>
-<!-- Isometric Left Up -->
+ <!-- Isometric Left Up -->
<value>isometricLeftUp</value>
-<!-- Isometric Left Down -->
+ <!-- Isometric Left Down -->
<value>isometricLeftDown</value>
-<!-- Isometric Right Up -->
+ <!-- Isometric Right Up -->
<value>isometricRightUp</value>
-<!-- Isometric Right Down -->
+ <!-- Isometric Right Down -->
<value>isometricRightDown</value>
-<!-- Isometric Off Axis 1 Left -->
+ <!-- Isometric Off Axis 1 Left -->
<value>isometricOffAxis1Left</value>
-<!-- Isometric Off Axis 1 Right -->
+ <!-- Isometric Off Axis 1 Right -->
<value>isometricOffAxis1Right</value>
-<!-- Isometric Off Axis 1 Top -->
+ <!-- Isometric Off Axis 1 Top -->
<value>isometricOffAxis1Top</value>
-<!-- Isometric Off Axis 2 Left -->
+ <!-- Isometric Off Axis 2 Left -->
<value>isometricOffAxis2Left</value>
-<!-- Isometric Off Axis 2 Right -->
+ <!-- Isometric Off Axis 2 Right -->
<value>isometricOffAxis2Right</value>
-<!-- Isometric Off Axis 2 Top -->
+ <!-- Isometric Off Axis 2 Top -->
<value>isometricOffAxis2Top</value>
-<!-- Isometric Off Axis 3 Left -->
+ <!-- Isometric Off Axis 3 Left -->
<value>isometricOffAxis3Left</value>
-<!-- Isometric Off Axis 3 Right -->
+ <!-- Isometric Off Axis 3 Right -->
<value>isometricOffAxis3Right</value>
-<!-- Isometric Off Axis 3 Bottom -->
+ <!-- Isometric Off Axis 3 Bottom -->
<value>isometricOffAxis3Bottom</value>
-<!-- Isometric Off Axis 4 Left -->
+ <!-- Isometric Off Axis 4 Left -->
<value>isometricOffAxis4Left</value>
-<!-- Isometric Off Axis 4 Right -->
+ <!-- Isometric Off Axis 4 Right -->
<value>isometricOffAxis4Right</value>
-<!-- Isometric Off Axis 4 Bottom -->
+ <!-- Isometric Off Axis 4 Bottom -->
<value>isometricOffAxis4Bottom</value>
-<!-- Oblique Top Left -->
+ <!-- Oblique Top Left -->
<value>obliqueTopLeft</value>
-<!-- Oblique Top -->
+ <!-- Oblique Top -->
<value>obliqueTop</value>
-<!-- Oblique Top Right -->
+ <!-- Oblique Top Right -->
<value>obliqueTopRight</value>
-<!-- Oblique Left -->
+ <!-- Oblique Left -->
<value>obliqueLeft</value>
-<!-- Oblique Right -->
+ <!-- Oblique Right -->
<value>obliqueRight</value>
-<!-- Oblique Bottom Left -->
+ <!-- Oblique Bottom Left -->
<value>obliqueBottomLeft</value>
-<!-- Oblique Bottom -->
+ <!-- Oblique Bottom -->
<value>obliqueBottom</value>
-<!-- Oblique Bottom Right -->
+ <!-- Oblique Bottom Right -->
<value>obliqueBottomRight</value>
-<!-- Perspective Front -->
+ <!-- Perspective Front -->
<value>perspectiveFront</value>
-<!-- Perspective Left -->
+ <!-- Perspective Left -->
<value>perspectiveLeft</value>
-<!-- Perspective Right -->
+ <!-- Perspective Right -->
<value>perspectiveRight</value>
-<!-- Orthographic Above -->
+ <!-- Orthographic Above -->
<value>perspectiveAbove</value>
-<!-- Perspective Below -->
+ <!-- Perspective Below -->
<value>perspectiveBelow</value>
-<!-- Perspective Above Left Facing -->
+ <!-- Perspective Above Left Facing -->
<value>perspectiveAboveLeftFacing</value>
-<!-- Perspective Above Right Facing -->
+ <!-- Perspective Above Right Facing -->
<value>perspectiveAboveRightFacing</value>
-<!-- Perspective Contrasting Left Facing -->
+ <!-- Perspective Contrasting Left Facing -->
<value>perspectiveContrastingLeftFacing</value>
-<!-- Perspective Contrasting Right Facing -->
+ <!-- Perspective Contrasting Right Facing -->
<value>perspectiveContrastingRightFacing</value>
-<!-- Perspective Heroic Left Facing -->
+ <!-- Perspective Heroic Left Facing -->
<value>perspectiveHeroicLeftFacing</value>
-<!-- Perspective Heroic Right Facing -->
+ <!-- Perspective Heroic Right Facing -->
<value>perspectiveHeroicRightFacing</value>
-<!-- Perspective Heroic Extreme Left Facing -->
+ <!-- Perspective Heroic Extreme Left Facing -->
<value>perspectiveHeroicExtremeLeftFacing</value>
-<!-- Perspective Heroic Extreme Right Facing -->
+ <!-- Perspective Heroic Extreme Right Facing -->
<value>perspectiveHeroicExtremeRightFacing</value>
-<!-- Perspective Relaxed -->
+ <!-- Perspective Relaxed -->
<value>perspectiveRelaxed</value>
-<!-- Perspective Relaxed Moderately -->
+ <!-- Perspective Relaxed Moderately -->
<value>perspectiveRelaxedModerately</value>
</choice>
</list>
@@ -837,9 +840,9 @@
<value name="perspectiveRelaxedModerately" tokenid="ooxml:Value_drawingml_ST_PresetCameraType_perspectiveRelaxedModerately">perspectiveRelaxedModerately</value>
</resource>
</namespace>
- <namespace name="dml-baseStylesheet" file="dml-baseStylesheet.rng">
+ <namespace name="dml-baseStylesheet" file="dml-baseStylesheet.rng" todo="ignore">
<grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<define name="ST_StyleMatrixColumnIndex">
<data type="unsignedInt">
<xs:documentation>Style Matrix Column Index</xs:documentation>
@@ -849,11 +852,11 @@
<list>
<xs:documentation>Font Collection Index</xs:documentation>
<choice>
-<!-- Major Font -->
+ <!-- Major Font -->
<value>major</value>
-<!-- Minor Font -->
+ <!-- Minor Font -->
<value>minor</value>
-<!-- None -->
+ <!-- None -->
<value>none</value>
</choice>
</list>
@@ -862,29 +865,29 @@
<list>
<xs:documentation>Theme Color Reference</xs:documentation>
<choice>
-<!-- Dark 1 -->
+ <!-- Dark 1 -->
<value>dk1</value>
-<!-- Light 1 -->
+ <!-- Light 1 -->
<value>lt1</value>
-<!-- Dark 2 -->
+ <!-- Dark 2 -->
<value>dk2</value>
-<!-- Light 2 -->
+ <!-- Light 2 -->
<value>lt2</value>
-<!-- Accent 1 -->
+ <!-- Accent 1 -->
<value>accent1</value>
-<!-- Accent 2 -->
+ <!-- Accent 2 -->
<value>accent2</value>
-<!-- Accent 3 -->
+ <!-- Accent 3 -->
<value>accent3</value>
-<!-- Accent 4 -->
+ <!-- Accent 4 -->
<value>accent4</value>
-<!-- Accent 5 -->
+ <!-- Accent 5 -->
<value>accent5</value>
-<!-- Accent 6 -->
+ <!-- Accent 6 -->
<value>accent6</value>
-<!-- Hyperlink -->
+ <!-- Hyperlink -->
<value>hlink</value>
-<!-- Followed Hyperlink -->
+ <!-- Followed Hyperlink -->
<value>folHlink</value>
</choice>
</list>
@@ -1165,9 +1168,9 @@
<element name="extLst" tokenid="ooxml:CT_BaseStyles_extLst"/>
</resource>
</namespace>
- <namespace name="dml-textCharacter" file="dml-textCharacter.rng">
+ <namespace name="dml-textCharacter" file="dml-textCharacter.rng" todo="ignore">
<grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-baseTypes.rng"/>
<include href="dml-shapeEffects.rng"/>
<include href="dml-shapeLineProperties.rng"/>
@@ -1240,41 +1243,41 @@
<list>
<xs:documentation>Text Underline Types</xs:documentation>
<choice>
-<!-- Text Underline Enum ( None ) -->
+ <!-- Text Underline Enum ( None ) -->
<value>none</value>
-<!-- Text Underline Enum ( Words ) -->
+ <!-- Text Underline Enum ( Words ) -->
<value>words</value>
-<!-- Text Underline Enum ( Single ) -->
+ <!-- Text Underline Enum ( Single ) -->
<value>sng</value>
-<!-- Text Underline Enum ( Double ) -->
+ <!-- Text Underline Enum ( Double ) -->
<value>dbl</value>
-<!-- Text Underline Enum ( Heavy ) -->
+ <!-- Text Underline Enum ( Heavy ) -->
<value>heavy</value>
-<!-- Text Underline Enum ( Dotted ) -->
+ <!-- Text Underline Enum ( Dotted ) -->
<value>dotted</value>
-<!-- Text Underline Enum ( Heavy Dotted ) -->
+ <!-- Text Underline Enum ( Heavy Dotted ) -->
<value>dottedHeavy</value>
-<!-- Text Underline Enum ( Dashed ) -->
+ <!-- Text Underline Enum ( Dashed ) -->
<value>dash</value>
-<!-- Text Underline Enum ( Heavy Dashed ) -->
+ <!-- Text Underline Enum ( Heavy Dashed ) -->
<value>dashHeavy</value>
-<!-- Text Underline Enum ( Long Dashed ) -->
+ <!-- Text Underline Enum ( Long Dashed ) -->
<value>dashLong</value>
-<!-- Text Underline Enum ( Heavy Long Dashed ) -->
+ <!-- Text Underline Enum ( Heavy Long Dashed ) -->
<value>dashLongHeavy</value>
-<!-- Text Underline Enum ( Dot Dash ) -->
+ <!-- Text Underline Enum ( Dot Dash ) -->
<value>dotDash</value>
-<!-- Text Underline Enum ( Heavy Dot Dash ) -->
+ <!-- Text Underline Enum ( Heavy Dot Dash ) -->
<value>dotDashHeavy</value>
-<!-- Text Underline Enum ( Dot Dot Dash ) -->
+ <!-- Text Underline Enum ( Dot Dot Dash ) -->
<value>dotDotDash</value>
-<!-- Text Underline Enum ( Heavy Dot Dot Dash ) -->
+ <!-- Text Underline Enum ( Heavy Dot Dot Dash ) -->
<value>dotDotDashHeavy</value>
-<!-- Text Underline Enum ( Wavy ) -->
+ <!-- Text Underline Enum ( Wavy ) -->
<value>wavy</value>
-<!-- Text Underline Enum ( Heavy Wavy ) -->
+ <!-- Text Underline Enum ( Heavy Wavy ) -->
<value>wavyHeavy</value>
-<!-- Text Underline Enum ( Double Wavy ) -->
+ <!-- Text Underline Enum ( Double Wavy ) -->
<value>wavyDbl</value>
</choice>
</list>
@@ -1314,11 +1317,11 @@
<list>
<xs:documentation>Text Strike Type</xs:documentation>
<choice>
-<!-- Text Strike Enum ( No Strike ) -->
+ <!-- Text Strike Enum ( No Strike ) -->
<value>noStrike</value>
-<!-- Text Strike Enum ( Single Strike ) -->
+ <!-- Text Strike Enum ( Single Strike ) -->
<value>sngStrike</value>
-<!-- Text Strike Enum ( Double Strike ) -->
+ <!-- Text Strike Enum ( Double Strike ) -->
<value>dblStrike</value>
</choice>
</list>
@@ -1327,11 +1330,11 @@
<list>
<xs:documentation>Text Cap Types</xs:documentation>
<choice>
-<!-- Text Caps Enum ( None ) -->
+ <!-- Text Caps Enum ( None ) -->
<value>none</value>
-<!-- Text Caps Enum ( Small ) -->
+ <!-- Text Caps Enum ( Small ) -->
<value>small</value>
-<!-- Text Caps Enum ( All ) -->
+ <!-- Text Caps Enum ( All ) -->
<value>all</value>
</choice>
</list>
@@ -1575,11 +1578,11 @@
<value name="all" tokenid="ooxml:Value_drawingml_ST_TextCapsType_all">all</value>
</resource>
</namespace>
- <namespace name="dml-shapeEffects" file="dml-shapeEffects.rng">
+ <namespace name="dml-shapeEffects" file="dml-shapeEffects.rng" todo="ignore">
<grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-baseTypes.rng"/>
-<!-- start = blip -->
+ <!-- start = blip -->
<define name="CT_AlphaBiLevelEffect">
<attribute name="thresh">
<ref name="ST_PositiveFixedPercentage"/>
@@ -1797,45 +1800,45 @@
<list>
<xs:documentation>Preset Shadow Type</xs:documentation>
<choice>
-<!-- Top Left Drop Shadow -->
+ <!-- Top Left Drop Shadow -->
<value>shdw1</value>
-<!-- Top Right Drop Shadow -->
+ <!-- Top Right Drop Shadow -->
<value>shdw2</value>
-<!-- Back Left Perspective Shadow -->
+ <!-- Back Left Perspective Shadow -->
<value>shdw3</value>
-<!-- Back Right Perspective Shadow -->
+ <!-- Back Right Perspective Shadow -->
<value>shdw4</value>
-<!-- Bottom Left Drop Shadow -->
+ <!-- Bottom Left Drop Shadow -->
<value>shdw5</value>
-<!-- Bottom Right Drop Shadow -->
+ <!-- Bottom Right Drop Shadow -->
<value>shdw6</value>
-<!-- Front Left Perspective Shadow -->
+ <!-- Front Left Perspective Shadow -->
<value>shdw7</value>
-<!-- Front Right Perspective Shadow -->
+ <!-- Front Right Perspective Shadow -->
<value>shdw8</value>
-<!-- Top Left Small Drop Shadow -->
+ <!-- Top Left Small Drop Shadow -->
<value>shdw9</value>
-<!-- Top Left Large Drop Shadow -->
+ <!-- Top Left Large Drop Shadow -->
<value>shdw10</value>
-<!-- Back Left Long Perspective Shadow -->
+ <!-- Back Left Long Perspective Shadow -->
<value>shdw11</value>
-<!-- Back Right Long Perspective Shadow -->
+ <!-- Back Right Long Perspective Shadow -->
<value>shdw12</value>
-<!-- Top Left Double Drop Shadow -->
+ <!-- Top Left Double Drop Shadow -->
<value>shdw13</value>
-<!-- Bottom Right Small Drop Shadow -->
+ <!-- Bottom Right Small Drop Shadow -->
<value>shdw14</value>
-<!-- Front Left Long Perspective Shadow -->
+ <!-- Front Left Long Perspective Shadow -->
<value>shdw15</value>
-<!-- Front Right LongPerspective Shadow -->
+ <!-- Front Right LongPerspective Shadow -->
<value>shdw16</value>
-<!-- 3D Outer Box Shadow -->
+ <!-- 3D Outer Box Shadow -->
<value>shdw17</value>
-<!-- 3D Inner Box Shadow -->
+ <!-- 3D Inner Box Shadow -->
<value>shdw18</value>
-<!-- Back Center Perspective Shadow -->
+ <!-- Back Center Perspective Shadow -->
<value>shdw19</value>
-<!-- Front Bottom Shadow -->
+ <!-- Front Bottom Shadow -->
<value>shdw20</value>
</choice>
</list>
@@ -2047,11 +2050,11 @@
<list>
<xs:documentation>Path Shade Type</xs:documentation>
<choice>
-<!-- Shape -->
+ <!-- Shape -->
<value>shape</value>
-<!-- Circle -->
+ <!-- Circle -->
<value>circle</value>
-<!-- Rectangle -->
+ <!-- Rectangle -->
<value>rect</value>
</choice>
</list>
@@ -2083,13 +2086,13 @@
<list>
<xs:documentation>Tile Flip Mode</xs:documentation>
<choice>
-<!-- None -->
+ <!-- None -->
<value>none</value>
-<!-- Horizontal -->
+ <!-- Horizontal -->
<value>x</value>
-<!-- Vertical -->
+ <!-- Vertical -->
<value>y</value>
-<!-- Horizontal and Vertical -->
+ <!-- Horizontal and Vertical -->
<value>xy</value>
</choice>
</list>
@@ -2198,15 +2201,15 @@
<list>
<xs:documentation>Blip Compression Type</xs:documentation>
<choice>
-<!-- Email Compression -->
+ <!-- Email Compression -->
<value>email</value>
-<!-- Screen Viewing Compression -->
+ <!-- Screen Viewing Compression -->
<value>screen</value>
-<!-- Printing Compression -->
+ <!-- Printing Compression -->
<value>print</value>
-<!-- High Quality Printing Compression -->
+ <!-- High Quality Printing Compression -->
<value>hqprint</value>
-<!-- No Compression -->
+ <!-- No Compression -->
<value>none</value>
</choice>
</list>
@@ -2319,113 +2322,113 @@
<list>
<xs:documentation>Preset Pattern Value</xs:documentation>
<choice>
-<!-- 5% -->
+ <!-- 5% -->
<value>pct5</value>
-<!-- 10% -->
+ <!-- 10% -->
<value>pct10</value>
-<!-- 20% -->
+ <!-- 20% -->
<value>pct20</value>
-<!-- 25% -->
+ <!-- 25% -->
<value>pct25</value>
-<!-- 30% -->
+ <!-- 30% -->
<value>pct30</value>
-<!-- 40% -->
+ <!-- 40% -->
<value>pct40</value>
-<!-- 50% -->
+ <!-- 50% -->
<value>pct50</value>
-<!-- 60% -->
+ <!-- 60% -->
<value>pct60</value>
-<!-- 70% -->
+ <!-- 70% -->
<value>pct70</value>
-<!-- 75% -->
+ <!-- 75% -->
<value>pct75</value>
-<!-- 80% -->
+ <!-- 80% -->
<value>pct80</value>
-<!-- 90% -->
+ <!-- 90% -->
<value>pct90</value>
-<!-- Horizontal -->
+ <!-- Horizontal -->
<value>horz</value>
-<!-- Vertical -->
+ <!-- Vertical -->
<value>vert</value>
-<!-- Light Horizontal -->
+ <!-- Light Horizontal -->
<value>ltHorz</value>
-<!-- Light Vertical -->
+ <!-- Light Vertical -->
<value>ltVert</value>
-<!-- Dark Horizontal -->
+ <!-- Dark Horizontal -->
<value>dkHorz</value>
-<!-- Dark Vertical -->
+ <!-- Dark Vertical -->
<value>dkVert</value>
-<!-- Narrow Horizontal -->
+ <!-- Narrow Horizontal -->
<value>narHorz</value>
-<!-- Narrow Vertical -->
+ <!-- Narrow Vertical -->
<value>narVert</value>
-<!-- Dashed Horizontal -->
+ <!-- Dashed Horizontal -->
<value>dashHorz</value>
-<!-- Dashed Vertical -->
+ <!-- Dashed Vertical -->
<value>dashVert</value>
-<!-- Cross -->
+ <!-- Cross -->
<value>cross</value>
-<!-- Downward Diagonal -->
+ <!-- Downward Diagonal -->
<value>dnDiag</value>
-<!-- Upward Diagonal -->
+ <!-- Upward Diagonal -->
<value>upDiag</value>
-<!-- Light Downward Diagonal -->
+ <!-- Light Downward Diagonal -->
<value>ltDnDiag</value>
-<!-- Light Upward Diagonal -->
+ <!-- Light Upward Diagonal -->
<value>ltUpDiag</value>
-<!-- Dark Downward Diagonal -->
+ <!-- Dark Downward Diagonal -->
<value>dkDnDiag</value>
-<!-- Dark Upward Diagonal -->
+ <!-- Dark Upward Diagonal -->
<value>dkUpDiag</value>
-<!-- Wide Downward Diagonal -->
+ <!-- Wide Downward Diagonal -->
<value>wdDnDiag</value>
-<!-- Wide Upward Diagonal -->
+ <!-- Wide Upward Diagonal -->
<value>wdUpDiag</value>
-<!-- Dashed Downward Diagonal -->
+ <!-- Dashed Downward Diagonal -->
<value>dashDnDiag</value>
-<!-- Dashed Upward DIagonal -->
+ <!-- Dashed Upward DIagonal -->
<value>dashUpDiag</value>
-<!-- Diagonal Cross -->
+ <!-- Diagonal Cross -->
<value>diagCross</value>
-<!-- Small Checker Board -->
+ <!-- Small Checker Board -->
<value>smCheck</value>
-<!-- Large Checker Board -->
+ <!-- Large Checker Board -->
<value>lgCheck</value>
-<!-- Small Grid -->
+ <!-- Small Grid -->
<value>smGrid</value>
-<!-- Large Grid -->
+ <!-- Large Grid -->
<value>lgGrid</value>
-<!-- Dotted Grid -->
+ <!-- Dotted Grid -->
<value>dotGrid</value>
-<!-- Small Confetti -->
+ <!-- Small Confetti -->
<value>smConfetti</value>
-<!-- Large Confetti -->
+ <!-- Large Confetti -->
<value>lgConfetti</value>
-<!-- Horizontal Brick -->
+ <!-- Horizontal Brick -->
<value>horzBrick</value>
-<!-- Diagonal Brick -->
+ <!-- Diagonal Brick -->
<value>diagBrick</value>
-<!-- Solid Diamond -->
+ <!-- Solid Diamond -->
<value>solidDmnd</value>
-<!-- Open Diamond -->
+ <!-- Open Diamond -->
<value>openDmnd</value>
-<!-- Dotted Diamond -->
+ <!-- Dotted Diamond -->
<value>dotDmnd</value>
-<!-- Plaid -->
+ <!-- Plaid -->
<value>plaid</value>
-<!-- Sphere -->
+ <!-- Sphere -->
<value>sphere</value>
-<!-- Weave -->
+ <!-- Weave -->
<value>weave</value>
-<!-- Divot -->
+ <!-- Divot -->
<value>divot</value>
-<!-- Shingle -->
+ <!-- Shingle -->
<value>shingle</value>
-<!-- Wave -->
+ <!-- Wave -->
<value>wave</value>
-<!-- Trellis -->
+ <!-- Trellis -->
<value>trellis</value>
-<!-- Zig Zag -->
+ <!-- Zig Zag -->
<value>zigZag</value>
</choice>
</list>
@@ -2485,15 +2488,15 @@
<list>
<xs:documentation>Blend Mode</xs:documentation>
<choice>
-<!-- Overlay -->
+ <!-- Overlay -->
<value>over</value>
-<!-- Multiply -->
+ <!-- Multiply -->
<value>mult</value>
-<!-- Screen -->
+ <!-- Screen -->
<value>screen</value>
-<!-- Darken -->
+ <!-- Darken -->
<value>darken</value>
-<!-- Lighten -->
+ <!-- Lighten -->
<value>lighten</value>
</choice>
</list>
@@ -2611,9 +2614,9 @@
<list>
<xs:documentation>Effect Container Type</xs:documentation>
<choice>
-<!-- Sibling -->
+ <!-- Sibling -->
<value>sib</value>
-<!-- Tree -->
+ <!-- Tree -->
<value>tree</value>
</choice>
</list>
@@ -2902,25 +2905,25 @@
<attribute name="name" tokenid="ooxml:CT_EffectContainer_name"/>
</resource>
</namespace>
- <namespace name="dml-shapeLineProperties" file="dml-shapeLineProperties.rng">
+ <namespace name="dml-shapeLineProperties" file="dml-shapeLineProperties.rng" todo="ignore">
<grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-shapeEffects.rng"/>
<define name="ST_LineEndType">
<list>
<xs:documentation>Line End Type</xs:documentation>
<choice>
-<!-- None -->
+ <!-- None -->
<value>none</value>
-<!-- Triangle Arrow Head -->
+ <!-- Triangle Arrow Head -->
<value>triangle</value>
-<!-- Stealth Arrow -->
+ <!-- Stealth Arrow -->
<value>stealth</value>
-<!-- Diamond -->
+ <!-- Diamond -->
<value>diamond</value>
-<!-- Oval -->
+ <!-- Oval -->
<value>oval</value>
-<!-- Arrow Head -->
+ <!-- Arrow Head -->
<value>arrow</value>
</choice>
</list>
@@ -2929,11 +2932,11 @@
<list>
<xs:documentation>Line End Width</xs:documentation>
<choice>
-<!-- Small -->
+ <!-- Small -->
<value>sm</value>
-<!-- Medium -->
+ <!-- Medium -->
<value>med</value>
-<!-- Large -->
+ <!-- Large -->
<value>lg</value>
</choice>
</list>
@@ -2942,11 +2945,11 @@
<list>
<xs:documentation>Line End Length</xs:documentation>
<choice>
-<!-- Small -->
+ <!-- Small -->
<value>sm</value>
-<!-- Medium -->
+ <!-- Medium -->
<value>med</value>
-<!-- Large -->
+ <!-- Large -->
<value>lg</value>
</choice>
</list>
@@ -3018,27 +3021,27 @@
<list>
<xs:documentation>Preset Line Dash Value</xs:documentation>
<choice>
-<!-- Solid -->
+ <!-- Solid -->
<value>solid</value>
-<!-- Dot -->
+ <!-- Dot -->
<value>dot</value>
-<!-- Dash -->
+ <!-- Dash -->
<value>dash</value>
-<!-- Large Dash -->
+ <!-- Large Dash -->
<value>lgDash</value>
-<!-- Dash Dot -->
+ <!-- Dash Dot -->
<value>dashDot</value>
-<!-- Large Dash Dot -->
+ <!-- Large Dash Dot -->
<value>lgDashDot</value>
-<!-- Large Dash Dot Dot -->
+ <!-- Large Dash Dot Dot -->
<value>lgDashDotDot</value>
-<!-- System Dash -->
+ <!-- System Dash -->
<value>sysDash</value>
-<!-- System Dot -->
+ <!-- System Dot -->
<value>sysDot</value>
-<!-- System Dash Dot -->
+ <!-- System Dash Dot -->
<value>sysDashDot</value>
-<!-- System Dash Dot Dot -->
+ <!-- System Dash Dot Dot -->
<value>sysDashDotDot</value>
</choice>
</list>
@@ -3082,11 +3085,11 @@
<list>
<xs:documentation>End Line Cap</xs:documentation>
<choice>
-<!-- Round Line Cap -->
+ <!-- Round Line Cap -->
<value>rnd</value>
-<!-- Square Line Cap -->
+ <!-- Square Line Cap -->
<value>sq</value>
-<!-- Flat Line Cap -->
+ <!-- Flat Line Cap -->
<value>flat</value>
</choice>
</list>
@@ -3098,9 +3101,9 @@
<list>
<xs:documentation>Alignment Type</xs:documentation>
<choice>
-<!-- Center Alignment -->
+ <!-- Center Alignment -->
<value>ctr</value>
-<!-- Inset Alignment -->
+ <!-- Inset Alignment -->
<value>in</value>
</choice>
</list>
@@ -3109,15 +3112,15 @@
<list>
<xs:documentation>Compound Line Type</xs:documentation>
<choice>
-<!-- Single Line -->
+ <!-- Single Line -->
<value>sng</value>
-<!-- Double Lines -->
+ <!-- Double Lines -->
<value>dbl</value>
-<!-- Thick Thin Double Lines -->
+ <!-- Thick Thin Double Lines -->
<value>thickThin</value>
-<!-- Thin Thick Double Lines -->
+ <!-- Thin Thick Double Lines -->
<value>thinThick</value>
-<!-- Thin Thick Thin Triple Lines -->
+ <!-- Thin Thick Thin Triple Lines -->
<value>tri</value>
</choice>
</list>
@@ -3243,9 +3246,9 @@
<attribute name="algn" tokenid="ooxml:CT_LineProperties_algn"/>
</resource>
</namespace>
- <namespace name="dml-shapeProperties" file="dml-shapeProperties.rng">
+ <namespace name="dml-shapeProperties" file="dml-shapeProperties.rng" todo="ignore">
<grammar xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-shape3DStyles.rng"/>
<include href="dml-shape3DScene.rng"/>
<include href="dml-shapeGeometry.rng"/>
@@ -3338,7 +3341,7 @@
</namespace>
<namespace name="dml-baseTypes" file="dml-baseTypes">
<grammar xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="shared-relationshipReference.rng"/>
<define name="CT_OfficeArtExtension">
<element>
@@ -3625,65 +3628,65 @@
<list>
<xs:documentation>System Color Value</xs:documentation>
<choice>
-<!-- Scroll Bar System Color -->
+ <!-- Scroll Bar System Color -->
<value>scrollBar</value>
-<!-- Background System Color -->
+ <!-- Background System Color -->
<value>background</value>
-<!-- Active Caption System Color -->
+ <!-- Active Caption System Color -->
<value>activeCaption</value>
-<!-- Inactive Caption System Color -->
+ <!-- Inactive Caption System Color -->
<value>inactiveCaption</value>
-<!-- Menu System Color -->
+ <!-- Menu System Color -->
<value>menu</value>
-<!-- Window System Color -->
+ <!-- Window System Color -->
<value>window</value>
-<!-- Window Frame System Color -->
+ <!-- Window Frame System Color -->
<value>windowFrame</value>
-<!-- Menu Text System Color -->
+ <!-- Menu Text System Color -->
<value>menuText</value>
-<!-- Window Text System Color -->
+ <!-- Window Text System Color -->
<value>windowText</value>
-<!-- Caption Text System Color -->
+ <!-- Caption Text System Color -->
<value>captionText</value>
-<!-- Active Border System Color -->
+ <!-- Active Border System Color -->
<value>activeBorder</value>
-<!-- Inactive Border System Color -->
+ <!-- Inactive Border System Color -->
<value>inactiveBorder</value>
-<!-- Application Workspace System Color -->
+ <!-- Application Workspace System Color -->
<value>appWorkspace</value>
-<!-- Highlight System Color -->
+ <!-- Highlight System Color -->
<value>highlight</value>
-<!-- Highlight Text System Color -->
+ <!-- Highlight Text System Color -->
<value>highlightText</value>
-<!-- Button Face System Color -->
+ <!-- Button Face System Color -->
<value>btnFace</value>
-<!-- Button Shadow System Color -->
+ <!-- Button Shadow System Color -->
<value>btnShadow</value>
-<!-- Gray Text System Color -->
+ <!-- Gray Text System Color -->
<value>grayText</value>
-<!-- Button Text System Color -->
+ <!-- Button Text System Color -->
<value>btnText</value>
-<!-- Inactive Caption Text System Color -->
+ <!-- Inactive Caption Text System Color -->
<value>inactiveCaptionText</value>
-<!-- Button Highlight System Color -->
+ <!-- Button Highlight System Color -->
<value>btnHighlight</value>
-<!-- 3D Dark System Color -->
+ <!-- 3D Dark System Color -->
<value>3dDkShadow</value>
-<!-- 3D Light System Color -->
+ <!-- 3D Light System Color -->
<value>3dLight</value>
-<!-- Info Text System Color -->
+ <!-- Info Text System Color -->
<value>infoText</value>
-<!-- Info Back System Color -->
+ <!-- Info Back System Color -->
<value>infoBk</value>
-<!-- Hot Light System Color -->
+ <!-- Hot Light System Color -->
<value>hotLight</value>
-<!-- Gradient Active Caption System Color -->
+ <!-- Gradient Active Caption System Color -->
<value>gradientActiveCaption</value>
-<!-- Gradient Inactive Caption System Color -->
+ <!-- Gradient Inactive Caption System Color -->
<value>gradientInactiveCaption</value>
-<!-- Menu Highlight System Color -->
+ <!-- Menu Highlight System Color -->
<value>menuHighlight</value>
-<!-- Menu Bar System Color -->
+ <!-- Menu Bar System Color -->
<value>menuBar</value>
</choice>
</list>
@@ -3707,39 +3710,39 @@
<list>
<xs:documentation>Scheme Color</xs:documentation>
<choice>
-<!-- Background Color 1 -->
+ <!-- Background Color 1 -->
<value>bg1</value>
-<!-- Text Color 1 -->
+ <!-- Text Color 1 -->
<value>tx1</value>
-<!-- Background Color 2 -->
+ <!-- Background Color 2 -->
<value>bg2</value>
-<!-- Text Color 2 -->
+ <!-- Text Color 2 -->
<value>tx2</value>
-<!-- Accent Color 1 -->
+ <!-- Accent Color 1 -->
<value>accent1</value>
-<!-- Accent Color 2 -->
+ <!-- Accent Color 2 -->
<value>accent2</value>
-<!-- Accent Color 3 -->
+ <!-- Accent Color 3 -->
<value>accent3</value>
-<!-- Accent Color 4 -->
+ <!-- Accent Color 4 -->
<value>accent4</value>
-<!-- Accent Color 5 -->
+ <!-- Accent Color 5 -->
<value>accent5</value>
-<!-- Accent Color 6 -->
+ <!-- Accent Color 6 -->
<value>accent6</value>
-<!-- Hyperlink Color -->
+ <!-- Hyperlink Color -->
<value>hlink</value>
-<!-- Followed Hyperlink Color -->
+ <!-- Followed Hyperlink Color -->
<value>folHlink</value>
-<!-- Style Color -->
+ <!-- Style Color -->
<value>phClr</value>
-<!-- Dark Color 1 -->
+ <!-- Dark Color 1 -->
<value>dk1</value>
-<!-- Light Color 1 -->
+ <!-- Light Color 1 -->
<value>lt1</value>
-<!-- Dark Color 2 -->
+ <!-- Dark Color 2 -->
<value>dk2</value>
-<!-- Light Color 2 -->
+ <!-- Light Color 2 -->
<value>lt2</value>
</choice>
</list>
@@ -3757,285 +3760,285 @@
<list>
<xs:documentation>Preset Color Value</xs:documentation>
<choice>
-<!-- Alice Blue Preset Color -->
+ <!-- Alice Blue Preset Color -->
<value>aliceBlue</value>
-<!-- Antique White Preset Color -->
+ <!-- Antique White Preset Color -->
<value>antiqueWhite</value>
-<!-- Aqua Preset Color -->
+ <!-- Aqua Preset Color -->
<value>aqua</value>
-<!-- Aquamarine Preset Color -->
+ <!-- Aquamarine Preset Color -->
<value>aquamarine</value>
-<!-- Azure Preset Color -->
+ <!-- Azure Preset Color -->
<value>azure</value>
-<!-- Beige Preset Color -->
+ <!-- Beige Preset Color -->
<value>beige</value>
-<!-- Bisque Preset Color -->
+ <!-- Bisque Preset Color -->
<value>bisque</value>
-<!-- Black Preset Color -->
+ <!-- Black Preset Color -->
<value>black</value>
-<!-- Blanched Almond Preset Color -->
+ <!-- Blanched Almond Preset Color -->
<value>blanchedAlmond</value>
-<!-- Blue Preset Color -->
+ <!-- Blue Preset Color -->
<value>blue</value>
-<!-- Blue Violet Preset Color -->
+ <!-- Blue Violet Preset Color -->
<value>blueViolet</value>
-<!-- Brown Preset Color -->
+ <!-- Brown Preset Color -->
<value>brown</value>
-<!-- Burly Wood Preset Color -->
+ <!-- Burly Wood Preset Color -->
<value>burlyWood</value>
-<!-- Cadet Blue Preset Color -->
+ <!-- Cadet Blue Preset Color -->
<value>cadetBlue</value>
-<!-- Chartreuse Preset Color -->
+ <!-- Chartreuse Preset Color -->
<value>chartreuse</value>
-<!-- Chocolate Preset Color -->
+ <!-- Chocolate Preset Color -->
<value>chocolate</value>
-<!-- Coral Preset Color -->
+ <!-- Coral Preset Color -->
<value>coral</value>
-<!-- Cornflower Blue Preset Color -->
+ <!-- Cornflower Blue Preset Color -->
<value>cornflowerBlue</value>
-<!-- Cornsilk Preset Color -->
+ <!-- Cornsilk Preset Color -->
<value>cornsilk</value>
-<!-- Crimson Preset Color -->
+ <!-- Crimson Preset Color -->
<value>crimson</value>
-<!-- Cyan Preset Color -->
+ <!-- Cyan Preset Color -->
<value>cyan</value>
-<!-- Dark Blue Preset Color -->
+ <!-- Dark Blue Preset Color -->
<value>dkBlue</value>
-<!-- Dark Cyan Preset Color -->
+ <!-- Dark Cyan Preset Color -->
<value>dkCyan</value>
-<!-- Dark Goldenrod Preset Color -->
+ <!-- Dark Goldenrod Preset Color -->
<value>dkGoldenrod</value>
-<!-- Dark Gray Preset Color -->
+ <!-- Dark Gray Preset Color -->
<value>dkGray</value>
-<!-- Dark Green Preset Color -->
+ <!-- Dark Green Preset Color -->
<value>dkGreen</value>
-<!-- Dark Khaki Preset Color -->
+ <!-- Dark Khaki Preset Color -->
<value>dkKhaki</value>
-<!-- Dark Magenta Preset Color -->
+ <!-- Dark Magenta Preset Color -->
<value>dkMagenta</value>
-<!-- Dark Olive Green Preset Color -->
+ <!-- Dark Olive Green Preset Color -->
<value>dkOliveGreen</value>
-<!-- Dark Orange Preset Color -->
+ <!-- Dark Orange Preset Color -->
<value>dkOrange</value>
-<!-- Dark Orchid Preset Color -->
+ <!-- Dark Orchid Preset Color -->
<value>dkOrchid</value>
-<!-- Dark Red Preset Color -->
+ <!-- Dark Red Preset Color -->
<value>dkRed</value>
-<!-- Dark Salmon Preset Color -->
+ <!-- Dark Salmon Preset Color -->
<value>dkSalmon</value>
-<!-- Dark Sea Green Preset Color -->
+ <!-- Dark Sea Green Preset Color -->
<value>dkSeaGreen</value>
-<!-- Dark Slate Blue Preset Color -->
+ <!-- Dark Slate Blue Preset Color -->
<value>dkSlateBlue</value>
-<!-- Dark Slate Gray Preset Color -->
+ <!-- Dark Slate Gray Preset Color -->
<value>dkSlateGray</value>
-<!-- Dark Turquoise Preset Color -->
+ <!-- Dark Turquoise Preset Color -->
<value>dkTurquoise</value>
-<!-- Dark Violet Preset Color -->
+ <!-- Dark Violet Preset Color -->
<value>dkViolet</value>
-<!-- Deep Pink Preset Color -->
+ <!-- Deep Pink Preset Color -->
<value>deepPink</value>
-<!-- Deep Sky Blue Preset Color -->
+ <!-- Deep Sky Blue Preset Color -->
<value>deepSkyBlue</value>
-<!-- Dim Gray Preset Color -->
+ <!-- Dim Gray Preset Color -->
<value>dimGray</value>
-<!-- Dodger Blue Preset Color -->
+ <!-- Dodger Blue Preset Color -->
<value>dodgerBlue</value>
-<!-- Firebrick Preset Color -->
+ <!-- Firebrick Preset Color -->
<value>firebrick</value>
-<!-- Floral White Preset Color -->
+ <!-- Floral White Preset Color -->
<value>floralWhite</value>
-<!-- Forest Green Preset Color -->
+ <!-- Forest Green Preset Color -->
<value>forestGreen</value>
-<!-- Fuchsia Preset Color -->
+ <!-- Fuchsia Preset Color -->
<value>fuchsia</value>
-<!-- Gainsboro Preset Color -->
+ <!-- Gainsboro Preset Color -->
<value>gainsboro</value>
-<!-- Ghost White Preset Color -->
+ <!-- Ghost White Preset Color -->
<value>ghostWhite</value>
-<!-- Gold Preset Color -->
+ <!-- Gold Preset Color -->
<value>gold</value>
-<!-- Goldenrod Preset Color -->
+ <!-- Goldenrod Preset Color -->
<value>goldenrod</value>
-<!-- Gray Preset Color -->
+ <!-- Gray Preset Color -->
<value>gray</value>
-<!-- Green Preset Color -->
+ <!-- Green Preset Color -->
<value>green</value>
-<!-- Green Yellow Preset Color -->
+ <!-- Green Yellow Preset Color -->
<value>greenYellow</value>
-<!-- Honeydew Preset Color -->
+ <!-- Honeydew Preset Color -->
<value>honeydew</value>
-<!-- Hot Pink Preset Color -->
+ <!-- Hot Pink Preset Color -->
<value>hotPink</value>
-<!-- Indian Red Preset Color -->
+ <!-- Indian Red Preset Color -->
<value>indianRed</value>
-<!-- Indigo Preset Color -->
+ <!-- Indigo Preset Color -->
<value>indigo</value>
-<!-- Ivory Preset Color -->
+ <!-- Ivory Preset Color -->
<value>ivory</value>
-<!-- Khaki Preset Color -->
+ <!-- Khaki Preset Color -->
<value>khaki</value>
-<!-- Lavender Preset Color -->
+ <!-- Lavender Preset Color -->
<value>lavender</value>
-<!-- Lavender Blush Preset Color -->
+ <!-- Lavender Blush Preset Color -->
<value>lavenderBlush</value>
-<!-- Lawn Green Preset Color -->
+ <!-- Lawn Green Preset Color -->
<value>lawnGreen</value>
-<!-- Lemon Chiffon Preset Color -->
+ <!-- Lemon Chiffon Preset Color -->
<value>lemonChiffon</value>
-<!-- Light Blue Preset Color -->
+ <!-- Light Blue Preset Color -->
<value>ltBlue</value>
-<!-- Light Coral Preset Color -->
+ <!-- Light Coral Preset Color -->
<value>ltCoral</value>
-<!-- Light Cyan Preset Color -->
+ <!-- Light Cyan Preset Color -->
<value>ltCyan</value>
-<!-- Light Goldenrod Yellow Preset Color -->
+ <!-- Light Goldenrod Yellow Preset Color -->
<value>ltGoldenrodYellow</value>
-<!-- Light Gray Preset Color -->
+ <!-- Light Gray Preset Color -->
<value>ltGray</value>
-<!-- Light Green Preset Color -->
+ <!-- Light Green Preset Color -->
<value>ltGreen</value>
-<!-- Light Pink Preset Color -->
+ <!-- Light Pink Preset Color -->
<value>ltPink</value>
-<!-- Light Salmon Preset Color -->
+ <!-- Light Salmon Preset Color -->
<value>ltSalmon</value>
-<!-- Light Sea Green Preset Color -->
+ <!-- Light Sea Green Preset Color -->
<value>ltSeaGreen</value>
-<!-- Light Sky Blue Preset Color -->
+ <!-- Light Sky Blue Preset Color -->
<value>ltSkyBlue</value>
-<!-- Light Slate Gray Preset Color -->
+ <!-- Light Slate Gray Preset Color -->
<value>ltSlateGray</value>
-<!-- Light Steel Blue Preset Color -->
+ <!-- Light Steel Blue Preset Color -->
<value>ltSteelBlue</value>
-<!-- Light Yellow Preset Color -->
+ <!-- Light Yellow Preset Color -->
<value>ltYellow</value>
-<!-- Lime Preset Color -->
+ <!-- Lime Preset Color -->
<value>lime</value>
-<!-- Lime Green Preset Color -->
+ <!-- Lime Green Preset Color -->
<value>limeGreen</value>
-<!-- Linen Preset Color -->
+ <!-- Linen Preset Color -->
<value>linen</value>
-<!-- Magenta Preset Color -->
+ <!-- Magenta Preset Color -->
<value>magenta</value>
-<!-- Maroon Preset Color -->
+ <!-- Maroon Preset Color -->
<value>maroon</value>
-<!-- Medium Aquamarine Preset Color -->
+ <!-- Medium Aquamarine Preset Color -->
<value>medAquamarine</value>
-<!-- Medium Blue Preset Color -->
+ <!-- Medium Blue Preset Color -->
<value>medBlue</value>
-<!-- Medium Orchid Preset Color -->
+ <!-- Medium Orchid Preset Color -->
<value>medOrchid</value>
-<!-- Medium Purple Preset Color -->
+ <!-- Medium Purple Preset Color -->
<value>medPurple</value>
-<!-- Medium Sea Green Preset Color -->
+ <!-- Medium Sea Green Preset Color -->
<value>medSeaGreen</value>
-<!-- Medium Slate Blue Preset Color -->
+ <!-- Medium Slate Blue Preset Color -->
<value>medSlateBlue</value>
-<!-- Medium Spring Green Preset Color -->
+ <!-- Medium Spring Green Preset Color -->
<value>medSpringGreen</value>
-<!-- Medium Turquoise Preset Color -->
+ <!-- Medium Turquoise Preset Color -->
<value>medTurquoise</value>
-<!-- Medium Violet Red Preset Color -->
+ <!-- Medium Violet Red Preset Color -->
<value>medVioletRed</value>
-<!-- Midnight Blue Preset Color -->
+ <!-- Midnight Blue Preset Color -->
<value>midnightBlue</value>
-<!-- Mint Cream Preset Color -->
+ <!-- Mint Cream Preset Color -->
<value>mintCream</value>
-<!-- Misty Rose Preset Color -->
+ <!-- Misty Rose Preset Color -->
<value>mistyRose</value>
-<!-- Moccasin Preset Color -->
+ <!-- Moccasin Preset Color -->
<value>moccasin</value>
-<!-- Navajo White Preset Color -->
+ <!-- Navajo White Preset Color -->
<value>navajoWhite</value>
-<!-- Navy Preset Color -->
+ <!-- Navy Preset Color -->
<value>navy</value>
-<!-- Old Lace Preset Color -->
+ <!-- Old Lace Preset Color -->
<value>oldLace</value>
-<!-- Olive Preset Color -->
+ <!-- Olive Preset Color -->
<value>olive</value>
-<!-- Olive Drab Preset Color -->
+ <!-- Olive Drab Preset Color -->
<value>oliveDrab</value>
-<!-- Orange Preset Color -->
+ <!-- Orange Preset Color -->
<value>orange</value>
-<!-- Orange Red Preset Color -->
+ <!-- Orange Red Preset Color -->
<value>orangeRed</value>
-<!-- Orchid Preset Color -->
+ <!-- Orchid Preset Color -->
<value>orchid</value>
-<!-- Pale Goldenrod Preset Color -->
+ <!-- Pale Goldenrod Preset Color -->
<value>paleGoldenrod</value>
-<!-- Pale Green Preset Color -->
+ <!-- Pale Green Preset Color -->
<value>paleGreen</value>
-<!-- Pale Turquoise Preset Color -->
+ <!-- Pale Turquoise Preset Color -->
<value>paleTurquoise</value>
-<!-- Pale Violet Red Preset Color -->
+ <!-- Pale Violet Red Preset Color -->
<value>paleVioletRed</value>
-<!-- Papaya Whip Preset Color -->
+ <!-- Papaya Whip Preset Color -->
<value>papayaWhip</value>
-<!-- Peach Puff Preset Color -->
+ <!-- Peach Puff Preset Color -->
<value>peachPuff</value>
-<!-- Peru Preset Color -->
+ <!-- Peru Preset Color -->
<value>peru</value>
-<!-- Pink Preset Color -->
+ <!-- Pink Preset Color -->
<value>pink</value>
-<!-- Plum Preset Color -->
+ <!-- Plum Preset Color -->
<value>plum</value>
-<!-- Powder Blue Preset Color -->
+ <!-- Powder Blue Preset Color -->
<value>powderBlue</value>
-<!-- Purple Preset Color -->
+ <!-- Purple Preset Color -->
<value>purple</value>
-<!-- Red Preset Color -->
+ <!-- Red Preset Color -->
<value>red</value>
-<!-- Rosy Brown Preset Color -->
+ <!-- Rosy Brown Preset Color -->
<value>rosyBrown</value>
-<!-- Royal Blue Preset Color -->
+ <!-- Royal Blue Preset Color -->
<value>royalBlue</value>
-<!-- Saddle Brown Preset Color -->
+ <!-- Saddle Brown Preset Color -->
<value>saddleBrown</value>
-<!-- Salmon Preset Color -->
+ <!-- Salmon Preset Color -->
<value>salmon</value>
-<!-- Sandy Brown Preset Color -->
+ <!-- Sandy Brown Preset Color -->
<value>sandyBrown</value>
-<!-- Sea Green Preset Color -->
+ <!-- Sea Green Preset Color -->
<value>seaGreen</value>
-<!-- Sea Shell Preset Color -->
+ <!-- Sea Shell Preset Color -->
<value>seaShell</value>
-<!-- Sienna Preset Color -->
+ <!-- Sienna Preset Color -->
<value>sienna</value>
-<!-- Silver Preset Color -->
+ <!-- Silver Preset Color -->
<value>silver</value>
-<!-- Sky Blue Preset Color -->
+ <!-- Sky Blue Preset Color -->
<value>skyBlue</value>
-<!-- Slate Blue Preset Color -->
+ <!-- Slate Blue Preset Color -->
<value>slateBlue</value>
-<!-- Slate Gray Preset Color -->
+ <!-- Slate Gray Preset Color -->
<value>slateGray</value>
-<!-- Snow Preset Color -->
+ <!-- Snow Preset Color -->
<value>snow</value>
-<!-- Spring Green Preset Color -->
+ <!-- Spring Green Preset Color -->
<value>springGreen</value>
-<!-- Steel Blue Preset Color -->
+ <!-- Steel Blue Preset Color -->
<value>steelBlue</value>
-<!-- Tan Preset Color -->
+ <!-- Tan Preset Color -->
<value>tan</value>
-<!-- Teal Preset Color -->
+ <!-- Teal Preset Color -->
<value>teal</value>
-<!-- Thistle Preset Color -->
+ <!-- Thistle Preset Color -->
<value>thistle</value>
-<!-- Tomato Preset Color -->
+ <!-- Tomato Preset Color -->
<value>tomato</value>
-<!-- Turquoise Preset Color -->
+ <!-- Turquoise Preset Color -->
<value>turquoise</value>
-<!-- Violet Preset Color -->
+ <!-- Violet Preset Color -->
<value>violet</value>
-<!-- Wheat Preset Color -->
+ <!-- Wheat Preset Color -->
<value>wheat</value>
-<!-- White Preset Color -->
+ <!-- White Preset Color -->
<value>white</value>
-<!-- White Smoke Preset Color -->
+ <!-- White Smoke Preset Color -->
<value>whiteSmoke</value>
-<!-- Yellow Preset Color -->
+ <!-- Yellow Preset Color -->
<value>yellow</value>
-<!-- Yellow Green Preset Color -->
+ <!-- Yellow Green Preset Color -->
<value>yellowGreen</value>
</choice>
</list>
@@ -4221,23 +4224,23 @@
<list>
<xs:documentation>Rectangle Alignments</xs:documentation>
<choice>
-<!-- Rectangle Alignment Enum ( Top Left ) -->
+ <!-- Rectangle Alignment Enum ( Top Left ) -->
<value>tl</value>
-<!-- Rectangle Alignment Enum ( Top ) -->
+ <!-- Rectangle Alignment Enum ( Top ) -->
<value>t</value>
-<!-- Rectangle Alignment Enum ( Top Right ) -->
+ <!-- Rectangle Alignment Enum ( Top Right ) -->
<value>tr</value>
-<!-- Rectangle Alignment Enum ( Left ) -->
+ <!-- Rectangle Alignment Enum ( Left ) -->
<value>l</value>
-<!-- Rectangle Alignment Enum ( Center ) -->
+ <!-- Rectangle Alignment Enum ( Center ) -->
<value>ctr</value>
-<!-- Rectangle Alignment Enum ( Right ) -->
+ <!-- Rectangle Alignment Enum ( Right ) -->
<value>r</value>
-<!-- Rectangle Alignment Enum ( Bottom Left ) -->
+ <!-- Rectangle Alignment Enum ( Bottom Left ) -->
<value>bl</value>
-<!-- Rectangle Alignment Enum ( Bottom ) -->
+ <!-- Rectangle Alignment Enum ( Bottom ) -->
<value>b</value>
-<!-- Rectangle Alignment Enum ( Bottom Right ) -->
+ <!-- Rectangle Alignment Enum ( Bottom Right ) -->
<value>br</value>
</choice>
</list>
@@ -4282,27 +4285,27 @@
<list>
<xs:documentation>Black and White Mode</xs:documentation>
<choice>
-<!-- Color -->
+ <!-- Color -->
<value>clr</value>
-<!-- Automatic -->
+ <!-- Automatic -->
<value>auto</value>
-<!-- Gray -->
+ <!-- Gray -->
<value>gray</value>
-<!-- Light Gray -->
+ <!-- Light Gray -->
<value>ltGray</value>
-<!-- Inverse Gray -->
+ <!-- Inverse Gray -->
<value>invGray</value>
-<!-- Gray and White -->
+ <!-- Gray and White -->
<value>grayWhite</value>
-<!-- Black and Gray -->
+ <!-- Black and Gray -->
<value>blackGray</value>
-<!-- Black and White -->
+ <!-- Black and White -->
<value>blackWhite</value>
-<!-- Black -->
+ <!-- Black -->
<value>black</value>
-<!-- White -->
+ <!-- White -->
<value>white</value>
-<!-- Hidden -->
+ <!-- Hidden -->
<value>hidden</value>
</choice>
</list>
@@ -4421,7 +4424,27 @@
<resource name="ST_Coordinate32" resource="Integer" generated="yes"/>
<resource name="ST_PositiveCoordinate" resource="Integer" generated="yes"/>
<resource name="ST_Angle" resource="Integer" generated="yes"/>
+ <resource name="CT_Angle" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_Angle_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
+ <resource name="CT_PositiveFixedAngle" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_PositiveFixedAngle_val" action="setValue"/>
+ </resource>
<resource name="ST_Percentage" resource="Integer" generated="yes"/>
+ <resource name="CT_Percentage" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_Percentage_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
+ <resource name="CT_PositivePercentage" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_PositivePercentage_val" action="setValue"/>
+ </resource>
+ <resource name="CT_FixedPercentage" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_FixedPercentage_val" action="setValue"/>
+ </resource>
+ <resource name="CT_PositiveFixedPercentage" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_PositiveFixedPercentage_val" action="setValue"/>
+ </resource>
<resource name="CT_Point2D" resource="Properties">
<attribute name="x" tokenid="ooxml:CT_Point2D_x"/>
<attribute name="y" tokenid="ooxml:CT_Point2D_y"/>
@@ -4695,9 +4718,9 @@
</resource>
<resource name="ST_DrawingElementId" resource="Integer" generated="yes"/>
</namespace>
- <namespace name="dml-documentProperties" file="dml-documentProperties.rng">
+ <namespace name="dml-documentProperties" file="dml-documentProperties.rng" todo="ignore">
<grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-baseTypes.rng"/>
<include href="dml-shapeGeometry.rng"/>
<define name="AG_Locking">
@@ -5107,8 +5130,8 @@
<namespace name="dml-graphicalObject" file="dml-graphicalObject.rng">
<start name="graphic"/>
<grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-<!-- ISO RELAX NG Schema -->
-<!-- start = graphic -->
+ <!-- ISO RELAX NG Schema -->
+ <!-- start = graphic -->
<define name="CT_GraphicalObjectData">
<zeroOrMore>
<ref name="pic"/>
@@ -5146,387 +5169,387 @@
<element name="graphic" tokenid="ooxml:graphic_graphic"/>
</resource>
</namespace>
- <namespace name="dml-shapeGeometry" file="dml-shapeGeometry.rng">
+ <namespace name="dml-shapeGeometry" file="dml-shapeGeometry.rng" todo="ignore">
<grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/main" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-baseTypes.rng"/>
<define name="ST_ShapeType">
<list>
<xs:documentation>Preset Shape Types</xs:documentation>
<choice>
-<!-- Line Shape -->
+ <!-- Line Shape -->
<value>line</value>
-<!-- Line Inverse Shape -->
+ <!-- Line Inverse Shape -->
<value>lineInv</value>
-<!-- Triangle Shape -->
+ <!-- Triangle Shape -->
<value>triangle</value>
-<!-- Right Triangle Shape -->
+ <!-- Right Triangle Shape -->
<value>rtTriangle</value>
-<!-- Rectangle Shape -->
+ <!-- Rectangle Shape -->
<value>rect</value>
-<!-- Diamond Shape -->
+ <!-- Diamond Shape -->
<value>diamond</value>
-<!-- Parallelogram Shape -->
+ <!-- Parallelogram Shape -->
<value>parallelogram</value>
-<!-- Trapezoid Shape -->
+ <!-- Trapezoid Shape -->
<value>trapezoid</value>
-<!-- Non-Isosceles Trapezoid Shape -->
+ <!-- Non-Isosceles Trapezoid Shape -->
<value>nonIsoscelesTrapezoid</value>
-<!-- Pentagon Shape -->
+ <!-- Pentagon Shape -->
<value>pentagon</value>
-<!-- Hexagon Shape -->
+ <!-- Hexagon Shape -->
<value>hexagon</value>
-<!-- Heptagon Shape -->
+ <!-- Heptagon Shape -->
<value>heptagon</value>
-<!-- Octagon Shape -->
+ <!-- Octagon Shape -->
<value>octagon</value>
-<!-- Decagon Shape -->
+ <!-- Decagon Shape -->
<value>decagon</value>
-<!-- Dodecagon Shape -->
+ <!-- Dodecagon Shape -->
<value>dodecagon</value>
-<!-- Four Pointed Star Shape -->
+ <!-- Four Pointed Star Shape -->
<value>star4</value>
-<!-- Five Pointed Star Shape -->
+ <!-- Five Pointed Star Shape -->
<value>star5</value>
-<!-- Six Pointed Star Shape -->
+ <!-- Six Pointed Star Shape -->
<value>star6</value>
-<!-- Seven Pointed Star Shape -->
+ <!-- Seven Pointed Star Shape -->
<value>star7</value>
-<!-- Eight Pointed Star Shape -->
+ <!-- Eight Pointed Star Shape -->
<value>star8</value>
-<!-- Ten Pointed Star Shape -->
+ <!-- Ten Pointed Star Shape -->
<value>star10</value>
-<!-- Twelve Pointed Star Shape -->
+ <!-- Twelve Pointed Star Shape -->
<value>star12</value>
-<!-- Sixteen Pointed Star Shape -->
+ <!-- Sixteen Pointed Star Shape -->
<value>star16</value>
-<!-- Twenty Four Pointed Star Shape -->
+ <!-- Twenty Four Pointed Star Shape -->
<value>star24</value>
-<!-- Thirty Two Pointed Star Shape -->
+ <!-- Thirty Two Pointed Star Shape -->
<value>star32</value>
-<!-- Round Corner Rectangle Shape -->
+ <!-- Round Corner Rectangle Shape -->
<value>roundRect</value>
-<!-- One Round Corner Rectangle Shape -->
+ <!-- One Round Corner Rectangle Shape -->
<value>round1Rect</value>
-<!-- Two Same-side Round Corner Rectangle Shape -->
+ <!-- Two Same-side Round Corner Rectangle Shape -->
<value>round2SameRect</value>
-<!-- Two Diagonal Round Corner Rectangle Shape -->
+ <!-- Two Diagonal Round Corner Rectangle Shape -->
<value>round2DiagRect</value>
-<!-- One Snip One Round Corner Rectangle Shape -->
+ <!-- One Snip One Round Corner Rectangle Shape -->
<value>snipRoundRect</value>
-<!-- One Snip Corner Rectangle Shape -->
+ <!-- One Snip Corner Rectangle Shape -->
<value>snip1Rect</value>
-<!-- Two Same-side Snip Corner Rectangle Shape -->
+ <!-- Two Same-side Snip Corner Rectangle Shape -->
<value>snip2SameRect</value>
-<!-- Two Diagonal Snip Corner Rectangle Shape -->
+ <!-- Two Diagonal Snip Corner Rectangle Shape -->
<value>snip2DiagRect</value>
-<!-- Plaque Shape -->
+ <!-- Plaque Shape -->
<value>plaque</value>
-<!-- Ellipse Shape -->
+ <!-- Ellipse Shape -->
<value>ellipse</value>
-<!-- Teardrop Shape -->
+ <!-- Teardrop Shape -->
<value>teardrop</value>
-<!-- Home Plate Shape -->
+ <!-- Home Plate Shape -->
<value>homePlate</value>
-<!-- Chevron Shape -->
+ <!-- Chevron Shape -->
<value>chevron</value>
-<!-- Pie Wedge Shape -->
+ <!-- Pie Wedge Shape -->
<value>pieWedge</value>
-<!-- Pie Shape -->
+ <!-- Pie Shape -->
<value>pie</value>
-<!-- Block Arc Shape -->
+ <!-- Block Arc Shape -->
<value>blockArc</value>
-<!-- Donut Shape -->
+ <!-- Donut Shape -->
<value>donut</value>
-<!-- No Smoking Shape -->
+ <!-- No Smoking Shape -->
<value>noSmoking</value>
-<!-- Right Arrow Shape -->
+ <!-- Right Arrow Shape -->
<value>rightArrow</value>
-<!-- Left Arrow Shape -->
+ <!-- Left Arrow Shape -->
<value>leftArrow</value>
-<!-- Up Arrow Shape -->
+ <!-- Up Arrow Shape -->
<value>upArrow</value>
-<!-- Down Arrow Shape -->
+ <!-- Down Arrow Shape -->
<value>downArrow</value>
-<!-- Striped Right Arrow Shape -->
+ <!-- Striped Right Arrow Shape -->
<value>stripedRightArrow</value>
-<!-- Notched Right Arrow Shape -->
+ <!-- Notched Right Arrow Shape -->
<value>notchedRightArrow</value>
-<!-- Bent Up Arrow Shape -->
+ <!-- Bent Up Arrow Shape -->
<value>bentUpArrow</value>
-<!-- Left Right Arrow Shape -->
+ <!-- Left Right Arrow Shape -->
<value>leftRightArrow</value>
-<!-- Up Down Arrow Shape -->
+ <!-- Up Down Arrow Shape -->
<value>upDownArrow</value>
-<!-- Left Up Arrow Shape -->
+ <!-- Left Up Arrow Shape -->
<value>leftUpArrow</value>
-<!-- Left Right Up Arrow Shape -->
+ <!-- Left Right Up Arrow Shape -->
<value>leftRightUpArrow</value>
-<!-- Quad-Arrow Shape -->
+ <!-- Quad-Arrow Shape -->
<value>quadArrow</value>
-<!-- Callout Left Arrow Shape -->
+ <!-- Callout Left Arrow Shape -->
<value>leftArrowCallout</value>
-<!-- Callout Right Arrow Shape -->
+ <!-- Callout Right Arrow Shape -->
<value>rightArrowCallout</value>
-<!-- Callout Up Arrow Shape -->
+ <!-- Callout Up Arrow Shape -->
<value>upArrowCallout</value>
-<!-- Callout Down Arrow Shape -->
+ <!-- Callout Down Arrow Shape -->
<value>downArrowCallout</value>
-<!-- Callout Left Right Arrow Shape -->
+ <!-- Callout Left Right Arrow Shape -->
<value>leftRightArrowCallout</value>
-<!-- Callout Up Down Arrow Shape -->
+ <!-- Callout Up Down Arrow Shape -->
<value>upDownArrowCallout</value>
-<!-- Callout Quad-Arrow Shape -->
+ <!-- Callout Quad-Arrow Shape -->
<value>quadArrowCallout</value>
-<!-- Bent Arrow Shape -->
+ <!-- Bent Arrow Shape -->
<value>bentArrow</value>
-<!-- U-Turn Arrow Shape -->
+ <!-- U-Turn Arrow Shape -->
<value>uturnArrow</value>
-<!-- Circular Arrow Shape -->
+ <!-- Circular Arrow Shape -->
<value>circularArrow</value>
-<!-- Left Circular Arrow Shape -->
+ <!-- Left Circular Arrow Shape -->
<value>leftCircularArrow</value>
-<!-- Left Right Circular Arrow Shape -->
+ <!-- Left Right Circular Arrow Shape -->
<value>leftRightCircularArrow</value>
-<!-- Curved Right Arrow Shape -->
+ <!-- Curved Right Arrow Shape -->
<value>curvedRightArrow</value>
-<!-- Curved Left Arrow Shape -->
+ <!-- Curved Left Arrow Shape -->
<value>curvedLeftArrow</value>
-<!-- Curved Up Arrow Shape -->
+ <!-- Curved Up Arrow Shape -->
<value>curvedUpArrow</value>
-<!-- Curved Down Arrow Shape -->
+ <!-- Curved Down Arrow Shape -->
<value>curvedDownArrow</value>
-<!-- Swoosh Arrow Shape -->
+ <!-- Swoosh Arrow Shape -->
<value>swooshArrow</value>
-<!-- Cube Shape -->
+ <!-- Cube Shape -->
<value>cube</value>
-<!-- Can Shape -->
+ <!-- Can Shape -->
<value>can</value>
-<!-- Lightning Bolt Shape -->
+ <!-- Lightning Bolt Shape -->
<value>lightningBolt</value>
-<!-- Heart Shape -->
+ <!-- Heart Shape -->
<value>heart</value>
-<!-- Sun Shape -->
+ <!-- Sun Shape -->
<value>sun</value>
-<!-- Moon Shape -->
+ <!-- Moon Shape -->
<value>moon</value>
-<!-- Smiley Face Shape -->
+ <!-- Smiley Face Shape -->
<value>smileyFace</value>
-<!-- Irregular Seal 1 Shape -->
+ <!-- Irregular Seal 1 Shape -->
<value>irregularSeal1</value>
-<!-- Irregular Seal 2 Shape -->
+ <!-- Irregular Seal 2 Shape -->
<value>irregularSeal2</value>
-<!-- Folded Corner Shape -->
+ <!-- Folded Corner Shape -->
<value>foldedCorner</value>
-<!-- Bevel Shape -->
+ <!-- Bevel Shape -->
<value>bevel</value>
-<!-- Frame Shape -->
+ <!-- Frame Shape -->
<value>frame</value>
-<!-- Half Frame Shape -->
+ <!-- Half Frame Shape -->
<value>halfFrame</value>
-<!-- Corner Shape -->
+ <!-- Corner Shape -->
<value>corner</value>
-<!-- Diagonal Stripe Shape -->
+ <!-- Diagonal Stripe Shape -->
<value>diagStripe</value>
-<!-- Chord Shape -->
+ <!-- Chord Shape -->
<value>chord</value>
-<!-- Curved Arc Shape -->
+ <!-- Curved Arc Shape -->
<value>arc</value>
-<!-- Left Bracket Shape -->
+ <!-- Left Bracket Shape -->
<value>leftBracket</value>
-<!-- Right Bracket Shape -->
+ <!-- Right Bracket Shape -->
<value>rightBracket</value>
-<!-- Left Brace Shape -->
+ <!-- Left Brace Shape -->
<value>leftBrace</value>
-<!-- Right Brace Shape -->
+ <!-- Right Brace Shape -->
<value>rightBrace</value>
-<!-- Bracket Pair Shape -->
+ <!-- Bracket Pair Shape -->
<value>bracketPair</value>
-<!-- Brace Pair Shape -->
+ <!-- Brace Pair Shape -->
<value>bracePair</value>
-<!-- Straight Connector 1 Shape -->
+ <!-- Straight Connector 1 Shape -->
<value>straightConnector1</value>
-<!-- Bent Connector 2 Shape -->
+ <!-- Bent Connector 2 Shape -->
<value>bentConnector2</value>
-<!-- Bent Connector 3 Shape -->
+ <!-- Bent Connector 3 Shape -->
<value>bentConnector3</value>
-<!-- Bent Connector 4 Shape -->
+ <!-- Bent Connector 4 Shape -->
<value>bentConnector4</value>
-<!-- Bent Connector 5 Shape -->
+ <!-- Bent Connector 5 Shape -->
<value>bentConnector5</value>
-<!-- Curved Connector 2 Shape -->
+ <!-- Curved Connector 2 Shape -->
<value>curvedConnector2</value>
-<!-- Curved Connector 3 Shape -->
+ <!-- Curved Connector 3 Shape -->
<value>curvedConnector3</value>
-<!-- Curved Connector 4 Shape -->
+ <!-- Curved Connector 4 Shape -->
<value>curvedConnector4</value>
-<!-- Curved Connector 5 Shape -->
+ <!-- Curved Connector 5 Shape -->
<value>curvedConnector5</value>
-<!-- Callout 1 Shape -->
+ <!-- Callout 1 Shape -->
<value>callout1</value>
-<!-- Callout 2 Shape -->
+ <!-- Callout 2 Shape -->
<value>callout2</value>
-<!-- Callout 3 Shape -->
+ <!-- Callout 3 Shape -->
<value>callout3</value>
-<!-- Callout 1 Shape -->
+ <!-- Callout 1 Shape -->
<value>accentCallout1</value>
-<!-- Callout 2 Shape -->
+ <!-- Callout 2 Shape -->
<value>accentCallout2</value>
-<!-- Callout 3 Shape -->
+ <!-- Callout 3 Shape -->
<value>accentCallout3</value>
-<!-- Callout 1 with Border Shape -->
+ <!-- Callout 1 with Border Shape -->
<value>borderCallout1</value>
-<!-- Callout 2 with Border Shape -->
+ <!-- Callout 2 with Border Shape -->
<value>borderCallout2</value>
-<!-- Callout 3 with Border Shape -->
+ <!-- Callout 3 with Border Shape -->
<value>borderCallout3</value>
-<!-- Callout 1 with Border and Accent Shape -->
+ <!-- Callout 1 with Border and Accent Shape -->
<value>accentBorderCallout1</value>
-<!-- Callout 2 with Border and Accent Shape -->
+ <!-- Callout 2 with Border and Accent Shape -->
<value>accentBorderCallout2</value>
-<!-- Callout 3 with Border and Accent Shape -->
+ <!-- Callout 3 with Border and Accent Shape -->
<value>accentBorderCallout3</value>
-<!-- Callout Wedge Rectangle Shape -->
+ <!-- Callout Wedge Rectangle Shape -->
<value>wedgeRectCallout</value>
-<!-- Callout Wedge Round Rectangle Shape -->
+ <!-- Callout Wedge Round Rectangle Shape -->
<value>wedgeRoundRectCallout</value>
-<!-- Callout Wedge Ellipse Shape -->
+ <!-- Callout Wedge Ellipse Shape -->
<value>wedgeEllipseCallout</value>
-<!-- Callout Cloud Shape -->
+ <!-- Callout Cloud Shape -->
<value>cloudCallout</value>
-<!-- Cloud Shape -->
+ <!-- Cloud Shape -->
<value>cloud</value>
-<!-- Ribbon Shape -->
+ <!-- Ribbon Shape -->
<value>ribbon</value>
-<!-- Ribbon 2 Shape -->
+ <!-- Ribbon 2 Shape -->
<value>ribbon2</value>
-<!-- Ellipse Ribbon Shape -->
+ <!-- Ellipse Ribbon Shape -->
<value>ellipseRibbon</value>
-<!-- Ellipse Ribbon 2 Shape -->
+ <!-- Ellipse Ribbon 2 Shape -->
<value>ellipseRibbon2</value>
-<!-- Left Right Ribbon Shape -->
+ <!-- Left Right Ribbon Shape -->
<value>leftRightRibbon</value>
-<!-- Vertical Scroll Shape -->
+ <!-- Vertical Scroll Shape -->
<value>verticalScroll</value>
-<!-- Horizontal Scroll Shape -->
+ <!-- Horizontal Scroll Shape -->
<value>horizontalScroll</value>
-<!-- Wave Shape -->
+ <!-- Wave Shape -->
<value>wave</value>
-<!-- Double Wave Shape -->
+ <!-- Double Wave Shape -->
<value>doubleWave</value>
-<!-- Plus Shape -->
+ <!-- Plus Shape -->
<value>plus</value>
-<!-- Process Flow Shape -->
+ <!-- Process Flow Shape -->
<value>flowChartProcess</value>
-<!-- Decision Flow Shape -->
+ <!-- Decision Flow Shape -->
<value>flowChartDecision</value>
-<!-- Input Output Flow Shape -->
+ <!-- Input Output Flow Shape -->
<value>flowChartInputOutput</value>
-<!-- Predefined Process Flow Shape -->
+ <!-- Predefined Process Flow Shape -->
<value>flowChartPredefinedProcess</value>
-<!-- Internal Storage Flow Shape -->
+ <!-- Internal Storage Flow Shape -->
<value>flowChartInternalStorage</value>
-<!-- Document Flow Shape -->
+ <!-- Document Flow Shape -->
<value>flowChartDocument</value>
-<!-- Multi-Document Flow Shape -->
+ <!-- Multi-Document Flow Shape -->
<value>flowChartMultidocument</value>
-<!-- Terminator Flow Shape -->
+ <!-- Terminator Flow Shape -->
<value>flowChartTerminator</value>
-<!-- Preparation Flow Shape -->
+ <!-- Preparation Flow Shape -->
<value>flowChartPreparation</value>
-<!-- Manual Input Flow Shape -->
+ <!-- Manual Input Flow Shape -->
<value>flowChartManualInput</value>
-<!-- Manual Operation Flow Shape -->
+ <!-- Manual Operation Flow Shape -->
<value>flowChartManualOperation</value>
-<!-- Connector Flow Shape -->
+ <!-- Connector Flow Shape -->
<value>flowChartConnector</value>
-<!-- Punched Card Flow Shape -->
+ <!-- Punched Card Flow Shape -->
<value>flowChartPunchedCard</value>
-<!-- Punched Tape Flow Shape -->
+ <!-- Punched Tape Flow Shape -->
<value>flowChartPunchedTape</value>
-<!-- Summing Junction Flow Shape -->
+ <!-- Summing Junction Flow Shape -->
<value>flowChartSummingJunction</value>
-<!-- Or Flow Shape -->
+ <!-- Or Flow Shape -->
<value>flowChartOr</value>
-<!-- Collate Flow Shape -->
+ <!-- Collate Flow Shape -->
<value>flowChartCollate</value>
-<!-- Sort Flow Shape -->
+ <!-- Sort Flow Shape -->
<value>flowChartSort</value>
-<!-- Extract Flow Shape -->
+ <!-- Extract Flow Shape -->
<value>flowChartExtract</value>
-<!-- Merge Flow Shape -->
+ <!-- Merge Flow Shape -->
<value>flowChartMerge</value>
-<!-- Offline Storage Flow Shape -->
+ <!-- Offline Storage Flow Shape -->
<value>flowChartOfflineStorage</value>
-<!-- Online Storage Flow Shape -->
+ <!-- Online Storage Flow Shape -->
<value>flowChartOnlineStorage</value>
-<!-- Magnetic Tape Flow Shape -->
+ <!-- Magnetic Tape Flow Shape -->
<value>flowChartMagneticTape</value>
-<!-- Magnetic Disk Flow Shape -->
+ <!-- Magnetic Disk Flow Shape -->
<value>flowChartMagneticDisk</value>
-<!-- Magnetic Drum Flow Shape -->
+ <!-- Magnetic Drum Flow Shape -->
<value>flowChartMagneticDrum</value>
-<!-- Display Flow Shape -->
+ <!-- Display Flow Shape -->
<value>flowChartDisplay</value>
-<!-- Delay Flow Shape -->
+ <!-- Delay Flow Shape -->
<value>flowChartDelay</value>
-<!-- Alternate Process Flow Shape -->
+ <!-- Alternate Process Flow Shape -->
<value>flowChartAlternateProcess</value>
-<!-- Off-Page Connector Flow Shape -->
+ <!-- Off-Page Connector Flow Shape -->
<value>flowChartOffpageConnector</value>
-<!-- Blank Button Shape -->
+ <!-- Blank Button Shape -->
<value>actionButtonBlank</value>
-<!-- Home Button Shape -->
+ <!-- Home Button Shape -->
<value>actionButtonHome</value>
-<!-- Help Button Shape -->
+ <!-- Help Button Shape -->
<value>actionButtonHelp</value>
-<!-- Information Button Shape -->
+ <!-- Information Button Shape -->
<value>actionButtonInformation</value>
-<!-- Forward or Next Button Shape -->
+ <!-- Forward or Next Button Shape -->
<value>actionButtonForwardNext</value>
-<!-- Back or Previous Button Shape -->
+ <!-- Back or Previous Button Shape -->
<value>actionButtonBackPrevious</value>
-<!-- End Button Shape -->
+ <!-- End Button Shape -->
<value>actionButtonEnd</value>
-<!-- Beginning Button Shape -->
+ <!-- Beginning Button Shape -->
<value>actionButtonBeginning</value>
-<!-- Return Button Shape -->
+ <!-- Return Button Shape -->
<value>actionButtonReturn</value>
-<!-- Document Button Shape -->
+ <!-- Document Button Shape -->
<value>actionButtonDocument</value>
-<!-- Sound Button Shape -->
+ <!-- Sound Button Shape -->
<value>actionButtonSound</value>
-<!-- Movie Button Shape -->
+ <!-- Movie Button Shape -->
<value>actionButtonMovie</value>
-<!-- Gear 6 Shape -->
+ <!-- Gear 6 Shape -->
<value>gear6</value>
-<!-- Gear 9 Shape -->
+ <!-- Gear 9 Shape -->
<value>gear9</value>
-<!-- Funnel Shape -->
+ <!-- Funnel Shape -->
<value>funnel</value>
-<!-- Plus Math Shape -->
+ <!-- Plus Math Shape -->
<value>mathPlus</value>
-<!-- Minus Math Shape -->
+ <!-- Minus Math Shape -->
<value>mathMinus</value>
-<!-- Multiply Math Shape -->
+ <!-- Multiply Math Shape -->
<value>mathMultiply</value>
-<!-- Divide Math Shape -->
+ <!-- Divide Math Shape -->
<value>mathDivide</value>
-<!-- Equal Math Shape -->
+ <!-- Equal Math Shape -->
<value>mathEqual</value>
-<!-- Not Equal Math Shape -->
+ <!-- Not Equal Math Shape -->
<value>mathNotEqual</value>
-<!-- Corner Tabs Shape -->
+ <!-- Corner Tabs Shape -->
<value>cornerTabs</value>
-<!-- Square Tabs Shape -->
+ <!-- Square Tabs Shape -->
<value>squareTabs</value>
-<!-- Plaque Tabs Shape -->
+ <!-- Plaque Tabs Shape -->
<value>plaqueTabs</value>
-<!-- Chart X Shape -->
+ <!-- Chart X Shape -->
<value>chartX</value>
-<!-- Chart Star Shape -->
+ <!-- Chart Star Shape -->
<value>chartStar</value>
-<!-- Chart Plus Shape -->
+ <!-- Chart Plus Shape -->
<value>chartPlus</value>
</choice>
</list>
@@ -5535,87 +5558,87 @@
<list>
<xs:documentation>Preset Text Shape Types</xs:documentation>
<choice>
-<!-- No Text Shape -->
+ <!-- No Text Shape -->
<value>textNoShape</value>
-<!-- Plain Text Shape -->
+ <!-- Plain Text Shape -->
<value>textPlain</value>
-<!-- Stop Sign Text Shape -->
+ <!-- Stop Sign Text Shape -->
<value>textStop</value>
-<!-- Triangle Text Shape -->
+ <!-- Triangle Text Shape -->
<value>textTriangle</value>
-<!-- Inverted Triangle Text Shape -->
+ <!-- Inverted Triangle Text Shape -->
<value>textTriangleInverted</value>
-<!-- Chevron Text Shape -->
+ <!-- Chevron Text Shape -->
<value>textChevron</value>
-<!-- Inverted Chevron Text Shape -->
+ <!-- Inverted Chevron Text Shape -->
<value>textChevronInverted</value>
-<!-- Inside Ring Text Shape -->
+ <!-- Inside Ring Text Shape -->
<value>textRingInside</value>
-<!-- Outside Ring Text Shape -->
+ <!-- Outside Ring Text Shape -->
<value>textRingOutside</value>
-<!-- Upward Arch Text Shape -->
+ <!-- Upward Arch Text Shape -->
<value>textArchUp</value>
-<!-- Downward Arch Text Shape -->
+ <!-- Downward Arch Text Shape -->
<value>textArchDown</value>
-<!-- Circle Text Shape -->
+ <!-- Circle Text Shape -->
<value>textCircle</value>
-<!-- Button Text Shape -->
+ <!-- Button Text Shape -->
<value>textButton</value>
-<!-- Upward Pour Arch Text Shape -->
+ <!-- Upward Pour Arch Text Shape -->
<value>textArchUpPour</value>
-<!-- Downward Pour Arch Text Shape -->
+ <!-- Downward Pour Arch Text Shape -->
<value>textArchDownPour</value>
-<!-- Circle Pour Text Shape -->
+ <!-- Circle Pour Text Shape -->
<value>textCirclePour</value>
-<!-- Button Pour Text Shape -->
+ <!-- Button Pour Text Shape -->
<value>textButtonPour</value>
-<!-- Upward Curve Text Shape -->
+ <!-- Upward Curve Text Shape -->
<value>textCurveUp</value>
-<!-- Downward Curve Text Shape -->
+ <!-- Downward Curve Text Shape -->
<value>textCurveDown</value>
-<!-- Upward Can Text Shape -->
+ <!-- Upward Can Text Shape -->
<value>textCanUp</value>
-<!-- Downward Can Text Shape -->
+ <!-- Downward Can Text Shape -->
<value>textCanDown</value>
-<!-- Wave 1 Text Shape -->
+ <!-- Wave 1 Text Shape -->
<value>textWave1</value>
-<!-- Wave 2 Text Shape -->
+ <!-- Wave 2 Text Shape -->
<value>textWave2</value>
-<!-- Double Wave 1 Text Shape -->
+ <!-- Double Wave 1 Text Shape -->
<value>textDoubleWave1</value>
-<!-- Wave 4 Text Shape -->
+ <!-- Wave 4 Text Shape -->
<value>textWave4</value>
-<!-- Inflate Text Shape -->
+ <!-- Inflate Text Shape -->
<value>textInflate</value>
-<!-- Deflate Text Shape -->
+ <!-- Deflate Text Shape -->
<value>textDeflate</value>
-<!-- Bottom Inflate Text Shape -->
+ <!-- Bottom Inflate Text Shape -->
<value>textInflateBottom</value>
-<!-- Bottom Deflate Text Shape -->
+ <!-- Bottom Deflate Text Shape -->
<value>textDeflateBottom</value>
-<!-- Top Inflate Text Shape -->
+ <!-- Top Inflate Text Shape -->
<value>textInflateTop</value>
-<!-- Top Deflate Text Shape -->
+ <!-- Top Deflate Text Shape -->
<value>textDeflateTop</value>
-<!-- Deflate-Inflate Text Shape -->
+ <!-- Deflate-Inflate Text Shape -->
<value>textDeflateInflate</value>
-<!-- Deflate-Inflate-Deflate Text Shape -->
+ <!-- Deflate-Inflate-Deflate Text Shape -->
<value>textDeflateInflateDeflate</value>
-<!-- Right Fade Text Shape -->
+ <!-- Right Fade Text Shape -->
<value>textFadeRight</value>
-<!-- Left Fade Text Shape -->
+ <!-- Left Fade Text Shape -->
<value>textFadeLeft</value>
-<!-- Upward Fade Text Shape -->
+ <!-- Upward Fade Text Shape -->
<value>textFadeUp</value>
-<!-- Downward Fade Text Shape -->
+ <!-- Downward Fade Text Shape -->
<value>textFadeDown</value>
-<!-- Upward Slant Text Shape -->
+ <!-- Upward Slant Text Shape -->
<value>textSlantUp</value>
-<!-- Downward Slant Text Shape -->
+ <!-- Downward Slant Text Shape -->
<value>textSlantDown</value>
-<!-- Upward Cascade Text Shape -->
+ <!-- Upward Cascade Text Shape -->
<value>textCascadeUp</value>
-<!-- Downward Cascade Text Shape -->
+ <!-- Downward Cascade Text Shape -->
<value>textCascadeDown</value>
</choice>
</list>
@@ -5653,14 +5676,14 @@
<ref name="ST_GeomGuideName"/>
</choice>
</define>
-<!-- Union -->
+ <!-- Union -->
<define name="ST_AdjAngle">
<choice>
<ref name="ST_Angle"/>
<ref name="ST_GeomGuideName"/>
</choice>
</define>
-<!-- Union -->
+ <!-- Union -->
<define name="CT_AdjPoint2D">
<attribute name="x">
<ref name="ST_AdjCoordinate"/>
@@ -5860,17 +5883,17 @@
<list>
<xs:documentation>Path Fill Mode</xs:documentation>
<choice>
-<!-- No Path Fill -->
+ <!-- No Path Fill -->
<value>none</value>
-<!-- Normal Path Fill -->
+ <!-- Normal Path Fill -->
<value>norm</value>
-<!-- Lighten Path Fill -->
+ <!-- Lighten Path Fill -->
<value>lighten</value>
-<!-- Lighten Path Fill Less -->
+ <!-- Lighten Path Fill Less -->
<value>lightenLess</value>
-<!-- Darken Path Fill -->
+ <!-- Darken Path Fill -->
<value>darken</value>
-<!-- Darken Path Fill Less -->
+ <!-- Darken Path Fill Less -->
<value>darkenLess</value>
</choice>
</list>
@@ -6279,10 +6302,10 @@
<start name="inline"/>
<start name="anchor"/>
<grammar xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-graphicalObject.rng"/>
<include href="dml-documentProperties.rng"/>
-<!-- start = inline | anchor -->
+ <!-- start = inline | anchor -->
<define name="CT_EffectExtent">
<attribute name="l">
<ref name="ST_Coordinate"/>
@@ -6357,13 +6380,13 @@
<list>
<xs:documentation>Text Wrapping Location</xs:documentation>
<choice>
-<!-- Both Sides -->
+ <!-- Both Sides -->
<value>bothSides</value>
-<!-- Left Side Only -->
+ <!-- Left Side Only -->
<value>left</value>
-<!-- Right Side Only -->
+ <!-- Right Side Only -->
<value>right</value>
-<!-- Largest Side Only -->
+ <!-- Largest Side Only -->
<value>largest</value>
</choice>
</list>
@@ -6521,15 +6544,15 @@
<list>
<xs:documentation>Relative Horizontal Alignment Positions</xs:documentation>
<choice>
-<!-- Left Alignment -->
+ <!-- Left Alignment -->
<value>left</value>
-<!-- Right Alignment -->
+ <!-- Right Alignment -->
<value>right</value>
-<!-- Center Alignment -->
+ <!-- Center Alignment -->
<value>center</value>
-<!-- Inside -->
+ <!-- Inside -->
<value>inside</value>
-<!-- Outside -->
+ <!-- Outside -->
<value>outside</value>
</choice>
</list>
@@ -6538,21 +6561,21 @@
<list>
<xs:documentation>Horizontal Relative Positioning</xs:documentation>
<choice>
-<!-- Page Margin -->
+ <!-- Page Margin -->
<value>margin</value>
-<!-- Page Edge -->
+ <!-- Page Edge -->
<value>page</value>
-<!-- Column -->
+ <!-- Column -->
<value>column</value>
-<!-- Character -->
+ <!-- Character -->
<value>character</value>
-<!-- Left Margin -->
+ <!-- Left Margin -->
<value>leftMargin</value>
-<!-- Right Margin -->
+ <!-- Right Margin -->
<value>rightMargin</value>
-<!-- Inside Margin -->
+ <!-- Inside Margin -->
<value>insideMargin</value>
-<!-- Outside Margin -->
+ <!-- Outside Margin -->
<value>outsideMargin</value>
</choice>
</list>
@@ -6578,15 +6601,15 @@
<list>
<xs:documentation>Vertical Alignment Definition</xs:documentation>
<choice>
-<!-- Top -->
+ <!-- Top -->
<value>top</value>
-<!-- Bottom -->
+ <!-- Bottom -->
<value>bottom</value>
-<!-- Center Alignment -->
+ <!-- Center Alignment -->
<value>center</value>
-<!-- Inside -->
+ <!-- Inside -->
<value>inside</value>
-<!-- Outside -->
+ <!-- Outside -->
<value>outside</value>
</choice>
</list>
@@ -6595,21 +6618,21 @@
<list>
<xs:documentation>Vertical Relative Positioning</xs:documentation>
<choice>
-<!-- Page Margin -->
+ <!-- Page Margin -->
<value>margin</value>
-<!-- Page Edge -->
+ <!-- Page Edge -->
<value>page</value>
-<!-- Paragraph -->
+ <!-- Paragraph -->
<value>paragraph</value>
-<!-- Line -->
+ <!-- Line -->
<value>line</value>
-<!-- Top Margin -->
+ <!-- Top Margin -->
<value>topMargin</value>
-<!-- Bottom Margin -->
+ <!-- Bottom Margin -->
<value>bottomMargin</value>
-<!-- Inside Margin -->
+ <!-- Inside Margin -->
<value>insideMargin</value>
-<!-- Outside Margin -->
+ <!-- Outside Margin -->
<value>outsideMargin</value>
</choice>
</list>
@@ -6802,8 +6825,9 @@
<element name="wrapThrough" tokenid="ooxml:EG_WrapType_wrapThrough"/>
<element name="wrapTopAndBottom" tokenid="ooxml:EG_WrapType_wrapTopAndBottom"/>
</resource>
+ <resource name="CT_PositionOffset" resource="Value"/>
<resource name="ST_PositionOffset" resource="Integer" generated="yes"/>
- <resource name="CT_PositionOffset" resource="IntegerValue"/>
+ <resource name="CT_AlignH" resource="Value"/>
<resource name="ST_AlignH" resource="List" generated="yes">
<value name="left" tokenid="ooxml:Value_wordprocessingDrawing_ST_AlignH_left">left</value>
<value name="right" tokenid="ooxml:Value_wordprocessingDrawing_ST_AlignH_right">right</value>
@@ -6811,7 +6835,6 @@
<value name="inside" tokenid="ooxml:Value_wordprocessingDrawing_ST_AlignH_inside">inside</value>
<value name="outside" tokenid="ooxml:Value_wordprocessingDrawing_ST_AlignH_outside">outside</value>
</resource>
- <resource name="CT_AlignH" resource="ListValue"/>
<resource name="ST_RelFromH" resource="List" generated="yes">
<value name="margin" tokenid="ooxml:Value_wordprocessingDrawing_ST_RelFromH_margin">margin</value>
<value name="page" tokenid="ooxml:Value_wordprocessingDrawing_ST_RelFromH_page">page</value>
@@ -6827,7 +6850,7 @@
<element name="posOffset" tokenid="ooxml:CT_PosH_posOffset"/>
<attribute name="relativeFrom" tokenid="ooxml:CT_PosH_relativeFrom"/>
</resource>
- <resource name="CT_AlignV" resource="ListValue"/>
+ <resource name="CT_AlignV" resource="Value"/>
<resource name="ST_AlignV" resource="List" generated="yes">
<value name="top" tokenid="ooxml:Value_wordprocessingDrawing_ST_AlignV_top">top</value>
<value name="bottom" tokenid="ooxml:Value_wordprocessingDrawing_ST_AlignV_bottom">bottom</value>
@@ -6881,8 +6904,8 @@
<namespace name="sml-customXmlMappings" file="sml-customXmlMappings-rng">
<start name="schemaLibrary"/>
<grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/schemaLibrary/2006/main" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-<!-- ISO RELAX NG Schema -->
-<!-- start = schemaLibrary -->
+ <!-- ISO RELAX NG Schema -->
+ <!-- start = schemaLibrary -->
<define name="CT_Schema">
<attribute name="uri">
<data type="string">
@@ -6922,9 +6945,9 @@
<start name="oMathPara"/>
<start name="oMath"/>
<grammar xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/officeDocument/2006/math" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" attributeFormDefault="qualified">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="wml.rng"/>
-<!-- start = mathPr | oMathPara | oMath -->
+ <!-- start = mathPr | oMathPara | oMath -->
<define name="ST_Integer255">
<data type="integer">
<xs:documentation>Integer value (1 to 255)</xs:documentation>
@@ -6991,9 +7014,9 @@
<list>
<xs:documentation>On Off</xs:documentation>
<choice>
-<!-- On -->
+ <!-- On -->
<value>on</value>
-<!-- Off -->
+ <!-- Off -->
<value>off</value>
</choice>
</list>
@@ -7019,11 +7042,11 @@
<list>
<xs:documentation>Horizontal Alignment</xs:documentation>
<choice>
-<!-- Left Justification -->
+ <!-- Left Justification -->
<value>left</value>
-<!-- Center -->
+ <!-- Center -->
<value>center</value>
-<!-- Right -->
+ <!-- Right -->
<value>right</value>
</choice>
</list>
@@ -7038,11 +7061,11 @@
<list>
<xs:documentation>Vertical Alignment</xs:documentation>
<choice>
-<!-- Top -->
+ <!-- Top -->
<value>top</value>
-<!-- Center (Function) -->
+ <!-- Center (Function) -->
<value>center</value>
-<!-- Bottom Alignment -->
+ <!-- Bottom Alignment -->
<value>bot</value>
</choice>
</list>
@@ -7057,9 +7080,9 @@
<list>
<xs:documentation>Shape (Delimiters)</xs:documentation>
<choice>
-<!-- Centered (Delimiters) -->
+ <!-- Centered (Delimiters) -->
<value>centered</value>
-<!-- Match -->
+ <!-- Match -->
<value>match</value>
</choice>
</list>
@@ -7074,13 +7097,13 @@
<list>
<xs:documentation>Fraction Type</xs:documentation>
<choice>
-<!-- Bar Fraction -->
+ <!-- Bar Fraction -->
<value>bar</value>
-<!-- Skewed -->
+ <!-- Skewed -->
<value>skw</value>
-<!-- Linear Fraction -->
+ <!-- Linear Fraction -->
<value>lin</value>
-<!-- No-Bar Fraction (Stack) -->
+ <!-- No-Bar Fraction (Stack) -->
<value>noBar</value>
</choice>
</list>
@@ -7095,9 +7118,9 @@
<list>
<xs:documentation>Limit Location</xs:documentation>
<choice>
-<!-- Under-Over location -->
+ <!-- Under-Over location -->
<value>undOvr</value>
-<!-- Subscript-Superscript location -->
+ <!-- Subscript-Superscript location -->
<value>subSup</value>
</choice>
</list>
@@ -7112,9 +7135,9 @@
<list>
<xs:documentation>Top-Bottom</xs:documentation>
<choice>
-<!-- Top -->
+ <!-- Top -->
<value>top</value>
-<!-- Bottom Alignment -->
+ <!-- Bottom Alignment -->
<value>bot</value>
</choice>
</list>
@@ -7129,17 +7152,17 @@
<list>
<xs:documentation>Script</xs:documentation>
<choice>
-<!-- Roman -->
+ <!-- Roman -->
<value>roman</value>
-<!-- Script -->
+ <!-- Script -->
<value>script</value>
-<!-- Fraktur -->
+ <!-- Fraktur -->
<value>fraktur</value>
-<!-- double-struck -->
+ <!-- double-struck -->
<value>double-struck</value>
-<!-- Sans-Serif -->
+ <!-- Sans-Serif -->
<value>sans-serif</value>
-<!-- Monospace -->
+ <!-- Monospace -->
<value>monospace</value>
</choice>
</list>
@@ -7154,13 +7177,13 @@
<list>
<xs:documentation>Style</xs:documentation>
<choice>
-<!-- Plain -->
+ <!-- Plain -->
<value>p</value>
-<!-- Bold -->
+ <!-- Bold -->
<value>b</value>
-<!-- Italic -->
+ <!-- Italic -->
<value>i</value>
-<!-- Bold-Italic -->
+ <!-- Bold-Italic -->
<value>bi</value>
</choice>
</list>
@@ -7989,13 +8012,13 @@
<list>
<xs:documentation>Justification</xs:documentation>
<choice>
-<!-- Left Justification -->
+ <!-- Left Justification -->
<value>left</value>
-<!-- Right -->
+ <!-- Right -->
<value>right</value>
-<!-- Center (Equation) -->
+ <!-- Center (Equation) -->
<value>center</value>
-<!-- Centered as Group (Equations) -->
+ <!-- Centered as Group (Equations) -->
<value>centerGroup</value>
</choice>
</list>
@@ -8028,11 +8051,11 @@
<list>
<xs:documentation>Break Binary Operators</xs:documentation>
<choice>
-<!-- Before -->
+ <!-- Before -->
<value>before</value>
-<!-- After -->
+ <!-- After -->
<value>after</value>
-<!-- Repeat -->
+ <!-- Repeat -->
<value>repeat</value>
</choice>
</list>
@@ -8047,11 +8070,11 @@
<list>
<xs:documentation>Break on Binary Subtraction</xs:documentation>
<choice>
-<!-- Minus Minus -->
+ <!-- Minus Minus -->
<value>--</value>
-<!-- Minus Plus -->
+ <!-- Minus Plus -->
<value>-+</value>
-<!-- Plus Minus -->
+ <!-- Plus Minus -->
<value>+-</value>
</choice>
</list>
@@ -8178,44 +8201,89 @@
</define>
</grammar>
<resource name="ST_Integer255" resource="Integer" generated="yes"/>
+ <resource name="CT_Integer255" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_Integer255_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
<resource name="ST_Integer2" resource="Integer" generated="yes"/>
+ <resource name="CT_Integer2" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_Integer2_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
<resource name="ST_SpacingRule" resource="Integer" generated="yes"/>
+ <resource name="CT_SpacingRule" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_SpacingRule_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
<resource name="ST_UnSignedInteger" resource="Integer" generated="yes"/>
+ <resource name="CT_UnSignedInteger" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_UnSignedInteger_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
<resource name="ST_Char" resource="String" generated="yes"/>
+ <resource name="CT_Char" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_Char_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_OnOff" resource="List" generated="yes">
<value name="on" tokenid="ooxml:Value_math_ST_OnOff_on">on</value>
<value name="off" tokenid="ooxml:Value_math_ST_OnOff_off">off</value>
</resource>
- <resource name="CT_OnOff" resource="BooleanValue"/>
+ <resource name="CT_OnOff" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_OnOff_val" action="setValue"/>
+ <action name="start" action="setDefaultBooleanValue"/>
+ </resource>
<resource name="ST_String" resource="String" generated="yes"/>
+ <resource name="CT_String" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_String_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_XAlign" resource="List" generated="yes">
<value name="left" tokenid="ooxml:Value_math_ST_XAlign_left">left</value>
<value name="center" tokenid="ooxml:Value_math_ST_XAlign_center">center</value>
<value name="right" tokenid="ooxml:Value_math_ST_XAlign_right">right</value>
</resource>
+ <resource name="CT_XAlign" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_XAlign_val" action="setValue"/>
+ </resource>
<resource name="ST_YAlign" resource="List" generated="yes">
<value name="top" tokenid="ooxml:Value_math_ST_YAlign_top">top</value>
<value name="center" tokenid="ooxml:Value_math_ST_YAlign_center">center</value>
<value name="bot" tokenid="ooxml:Value_math_ST_YAlign_bot">bot</value>
</resource>
+ <resource name="CT_YAlign" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_YAlign_val" action="setValue"/>
+ </resource>
<resource name="ST_Shp" resource="List" generated="yes">
<value name="centered" tokenid="ooxml:Value_math_ST_Shp_centered">centered</value>
<value name="match" tokenid="ooxml:Value_math_ST_Shp_match">match</value>
</resource>
+ <resource name="CT_Shp" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_Shp_val" action="setValue"/>
+ </resource>
<resource name="ST_FType" resource="List" generated="yes">
<value name="bar" tokenid="ooxml:Value_math_ST_FType_bar">bar</value>
<value name="skw" tokenid="ooxml:Value_math_ST_FType_skw">skw</value>
<value name="lin" tokenid="ooxml:Value_math_ST_FType_lin">lin</value>
<value name="noBar" tokenid="ooxml:Value_math_ST_FType_noBar">noBar</value>
</resource>
+ <resource name="CT_FType" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_FType_val" action="setValue"/>
+ </resource>
<resource name="ST_LimLoc" resource="List" generated="yes">
<value name="undOvr" tokenid="ooxml:Value_math_ST_LimLoc_undOvr">undOvr</value>
<value name="subSup" tokenid="ooxml:Value_math_ST_LimLoc_subSup">subSup</value>
</resource>
+ <resource name="CT_LimLoc" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_LimLoc_val" action="setValue"/>
+ </resource>
<resource name="ST_TopBot" resource="List" generated="yes">
<value name="top" tokenid="ooxml:Value_math_ST_TopBot_top">top</value>
<value name="bot" tokenid="ooxml:Value_math_ST_TopBot_bot">bot</value>
</resource>
+ <resource name="CT_TopBot" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_TopBot_val" action="setValue"/>
+ </resource>
<resource name="ST_Script" resource="List" generated="yes">
<value name="roman" tokenid="ooxml:Value_math_ST_Script_roman">roman</value>
<value name="script" tokenid="ooxml:Value_math_ST_Script_script">script</value>
@@ -8224,34 +8292,52 @@
<value name="sansmserif" tokenid="ooxml:Value_math_ST_Script_sansmserif">sans-serif</value>
<value name="monospace" tokenid="ooxml:Value_math_ST_Script_monospace">monospace</value>
</resource>
+ <resource name="CT_Script" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_Script_val" action="setValue"/>
+ </resource>
<resource name="ST_Style" resource="List">
<value tokenid="ooxml:Value_ST_Style_b">b</value>
<value tokenid="ooxml:Value_ST_Style_bi">bi</value>
<value tokenid="ooxml:Value_ST_Style_i">i</value>
<value tokenid="ooxml:Value_ST_Style_p">p</value>
</resource>
- <resource name="CT_Style" resource="ListValue"/>
+ <resource name="CT_Style" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_Style_val" action="setValue"/>
+ </resource>
<resource name="ST_Jc" resource="List" generated="yes">
<value name="left" tokenid="ooxml:Value_math_ST_Jc_left">left</value>
<value name="right" tokenid="ooxml:Value_math_ST_Jc_right">right</value>
<value name="center" tokenid="ooxml:Value_math_ST_Jc_center">center</value>
<value name="centerGroup" tokenid="ooxml:Value_math_ST_Jc_centerGroup">centerGroup</value>
</resource>
+ <resource name="CT_OMathJc" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_OMathJc_val" action="setValue"/>
+ </resource>
<resource name="ST_TwipsMeasure" resource="Integer" generated="yes"/>
+ <resource name="CT_TwipsMeasure" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_TwipsMeasure_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
<resource name="ST_BreakBin" resource="List" generated="yes">
<value name="before" tokenid="ooxml:Value_math_ST_BreakBin_before">before</value>
<value name="after" tokenid="ooxml:Value_math_ST_BreakBin_after">after</value>
<value name="repeat" tokenid="ooxml:Value_math_ST_BreakBin_repeat">repeat</value>
</resource>
+ <resource name="CT_BreakBin" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_BreakBin_val" action="setValue"/>
+ </resource>
<resource name="ST_BreakBinSub" resource="List" generated="yes">
<value name="mm" tokenid="ooxml:Value_math_ST_BreakBinSub_mm">--</value>
<value name="mp" tokenid="ooxml:Value_math_ST_BreakBinSub_mp">-+</value>
<value name="pm" tokenid="ooxml:Value_math_ST_BreakBinSub_pm">+-</value>
</resource>
+ <resource name="CT_BreakBinSub" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_BreakBinSub_val" action="setValue"/>
+ </resource>
</namespace>
<namespace name="shared-relationshipReference" file="shared-relationshipReference.rng">
<grammar xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<define name="ST_RelationshipId">
<data type="string">
<xs:documentation>Explicit Relationship ID</xs:documentation>
@@ -8302,10 +8388,10 @@
<namespace name="dml-chartDrawing" file="dml-chartDrawing.rng">
<start name="pic"/>
<grammar xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/drawingml/2006/picture">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="dml-shapeProperties.rng"/>
<include href="dml-documentProperties.rng"/>
-<!-- start = pic -->
+ <!-- start = pic -->
<define name="CT_PictureNonVisual">
<element name="cNvPr">
<ref name="CT_NonVisualDrawingProps"/>
@@ -8344,7 +8430,7 @@
<element name="pic" tokenid="ooxml:pic_pic"/>
</resource>
</namespace>
- <namespace name="vml-main" file="vml-main.rng">
+ <namespace name="vml-main" file="vml-main.rng" todo="ignore">
<start name="shape"/>
<start name="shapetype"/>
<start name="group"/>
@@ -8366,15 +8452,15 @@
<start name="polyline"/>
<start name="rect"/>
<start name="roundrect"/>
- <grammar xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wvml="urn:schemas-microsoft-com:office:word" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" ns="urn:schemas-microsoft-com:vml" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-<!-- ISO RELAX NG Schema -->
+ <grammar xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:wvml="urn:schemas-microsoft-com:office:word" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="urn:schemas-microsoft-com:vml" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <!-- ISO RELAX NG Schema -->
<include href="vml-officeDrawing.rng"/>
-<!-- External schema: http://schemas.openxmlformats.org/wordprocessingml/2006/main -->
+ <!-- External schema: http://schemas.openxmlformats.org/wordprocessingml/2006/main -->
<include href="vml-wordprocessingDrawing.rng"/>
-<!-- External schema: http://schemas.openxmlformats.org/officeDocument/2006/relationships -->
+ <!-- External schema: http://schemas.openxmlformats.org/officeDocument/2006/relationships -->
<include href="vml-spreadsheetDrawing.rng"/>
<include href="vml-presentationDrawing.rng"/>
-<!-- start = shape | shapetype | group | background | fill | formulas | handles | imagedata | path | textbox | shadow | stroke | textpath | arc | curve | image | line | oval | polyline | rect | roundrect -->
+ <!-- start = shape | shapetype | group | background | fill | formulas | handles | imagedata | path | textbox | shadow | stroke | textpath | arc | curve | image | line | oval | polyline | rect | roundrect -->
<define name="AG_Id">
<optional>
<attribute name="id">
@@ -9739,11 +9825,11 @@
<list>
<xs:documentation>VML Extension Handling Behaviors</xs:documentation>
<choice>
-<!-- Not renderable -->
+ <!-- Not renderable -->
<value>view</value>
-<!-- Editable -->
+ <!-- Editable -->
<value>edit</value>
-<!-- Renderable -->
+ <!-- Renderable -->
<value>backwardCompatible</value>
</choice>
</list>
@@ -9752,13 +9838,13 @@
<list>
<xs:documentation>Boolean Value</xs:documentation>
<choice>
-<!-- True -->
+ <!-- True -->
<value>t</value>
-<!-- False -->
+ <!-- False -->
<value>f</value>
-<!-- True -->
+ <!-- True -->
<value>true</value>
-<!-- False -->
+ <!-- False -->
<value>false</value>
</choice>
</list>
@@ -9772,17 +9858,17 @@
<list>
<xs:documentation>Shape Fill Type</xs:documentation>
<choice>
-<!-- Solid Fill -->
+ <!-- Solid Fill -->
<value>solid</value>
-<!-- Linear Gradient -->
+ <!-- Linear Gradient -->
<value>gradient</value>
-<!-- Radial Gradient -->
+ <!-- Radial Gradient -->
<value>gradientRadial</value>
-<!-- Tiled Image -->
+ <!-- Tiled Image -->
<value>tile</value>
-<!-- Image Pattern -->
+ <!-- Image Pattern -->
<value>pattern</value>
-<!-- Stretch Image to Fit -->
+ <!-- Stretch Image to Fit -->
<value>frame</value>
</choice>
</list>
@@ -9791,15 +9877,15 @@
<list>
<xs:documentation>Gradient Fill Computation Type</xs:documentation>
<choice>
-<!-- No Gradient Fill -->
+ <!-- No Gradient Fill -->
<value>none</value>
-<!-- Linear Fill -->
+ <!-- Linear Fill -->
<value>linear</value>
-<!-- Sigma Fill -->
+ <!-- Sigma Fill -->
<value>sigma</value>
-<!-- Application Default Fill -->
+ <!-- Application Default Fill -->
<value>any</value>
-<!-- Linear Sigma Fill -->
+ <!-- Linear Sigma Fill -->
<value>linear sigma</value>
</choice>
</list>
@@ -9808,13 +9894,13 @@
<list>
<xs:documentation>Shadow Type</xs:documentation>
<choice>
-<!-- Single Shadow -->
+ <!-- Single Shadow -->
<value>single</value>
-<!-- Double Shadow -->
+ <!-- Double Shadow -->
<value>double</value>
-<!-- Embossed Shadow -->
+ <!-- Embossed Shadow -->
<value>emboss</value>
-<!-- Perspective Shadow -->
+ <!-- Perspective Shadow -->
<value>perspective</value>
</choice>
</list>
@@ -9823,15 +9909,15 @@
<list>
<xs:documentation>Stroke Line Style</xs:documentation>
<choice>
-<!-- Single Line -->
+ <!-- Single Line -->
<value>single</value>
-<!-- Two Thin Lines -->
+ <!-- Two Thin Lines -->
<value>thinThin</value>
-<!-- Thin Line Outside Thick Line -->
+ <!-- Thin Line Outside Thick Line -->
<value>thinThick</value>
-<!-- Thick Line Outside Thin Line -->
+ <!-- Thick Line Outside Thin Line -->
<value>thickThin</value>
-<!-- Thck Line Between Thin Lines -->
+ <!-- Thck Line Between Thin Lines -->
<value>thickBetweenThin</value>
</choice>
</list>
@@ -9840,11 +9926,11 @@
<list>
<xs:documentation>Line Join Type</xs:documentation>
<choice>
-<!-- Round Joint -->
+ <!-- Round Joint -->
<value>round</value>
-<!-- Bevel Joint -->
+ <!-- Bevel Joint -->
<value>bevel</value>
-<!-- Miter Joint -->
+ <!-- Miter Joint -->
<value>miter</value>
</choice>
</list>
@@ -9853,11 +9939,11 @@
<list>
<xs:documentation>Stroke End Cap Type</xs:documentation>
<choice>
-<!-- Flat End -->
+ <!-- Flat End -->
<value>flat</value>
-<!-- Square End -->
+ <!-- Square End -->
<value>square</value>
-<!-- Round End -->
+ <!-- Round End -->
<value>round</value>
</choice>
</list>
@@ -9866,11 +9952,11 @@
<list>
<xs:documentation>Stroke Arrowhead Length</xs:documentation>
<choice>
-<!-- Short Arrowhead -->
+ <!-- Short Arrowhead -->
<value>short</value>
-<!-- Medium Arrowhead -->
+ <!-- Medium Arrowhead -->
<value>medium</value>
-<!-- Long Arrowhead -->
+ <!-- Long Arrowhead -->
<value>long</value>
</choice>
</list>
@@ -9879,11 +9965,11 @@
<list>
<xs:documentation>Stroke Arrowhead Width</xs:documentation>
<choice>
-<!-- Narrow Arrowhead -->
+ <!-- Narrow Arrowhead -->
<value>narrow</value>
-<!-- Medium Arrowhead -->
+ <!-- Medium Arrowhead -->
<value>medium</value>
-<!-- Wide Arrowhead -->
+ <!-- Wide Arrowhead -->
<value>wide</value>
</choice>
</list>
@@ -9892,17 +9978,17 @@
<list>
<xs:documentation>Stroke Arrowhead Type</xs:documentation>
<choice>
-<!-- No Arrowhead -->
+ <!-- No Arrowhead -->
<value>none</value>
-<!-- Block Arrowhead -->
+ <!-- Block Arrowhead -->
<value>block</value>
-<!-- Classic Arrowhead -->
+ <!-- Classic Arrowhead -->
<value>classic</value>
-<!-- Oval Arrowhead -->
+ <!-- Oval Arrowhead -->
<value>oval</value>
-<!-- Diamond Arrowhead -->
+ <!-- Diamond Arrowhead -->
<value>diamond</value>
-<!-- Open Arrowhead -->
+ <!-- Open Arrowhead -->
<value>open</value>
</choice>
</list>
@@ -9911,11 +9997,11 @@
<list>
<xs:documentation>Image Scaling Behavior</xs:documentation>
<choice>
-<!-- Ignore Aspect Ratio -->
+ <!-- Ignore Aspect Ratio -->
<value>ignore</value>
-<!-- At Most -->
+ <!-- At Most -->
<value>atMost</value>
-<!-- At Least -->
+ <!-- At Least -->
<value>atLeast</value>
</choice>
</list>
@@ -9924,15 +10010,15 @@
<list>
<xs:documentation>Boolean Value with Blank [False] State</xs:documentation>
<choice>
-<!-- Logical True -->
+ <!-- Logical True -->
<value>t</value>
-<!-- Logical False -->
+ <!-- Logical False -->
<value>f</value>
-<!-- Logical True -->
+ <!-- Logical True -->
<value>true</value>
-<!-- Logical False -->
+ <!-- Logical False -->
<value>false</value>
-<!-- Blank – Logical False -->
+ <!-- Blank – Logical False -->
<value/>
</choice>
</list>
@@ -9941,19 +10027,19 @@
<list>
<xs:documentation>Shape Grouping Types</xs:documentation>
<choice>
-<!-- Shape Canvas -->
+ <!-- Shape Canvas -->
<value>canvas</value>
-<!-- Organization Chart Diagram -->
+ <!-- Organization Chart Diagram -->
<value>orgchart</value>
-<!-- Radial Diagram -->
+ <!-- Radial Diagram -->
<value>radial</value>
-<!-- Cycle Diagram -->
+ <!-- Cycle Diagram -->
<value>cycle</value>
-<!-- Pyramid Diagram -->
+ <!-- Pyramid Diagram -->
<value>stacked</value>
-<!-- Venn Diagram -->
+ <!-- Venn Diagram -->
<value>venn</value>
-<!-- Bullseye Diagram -->
+ <!-- Bullseye Diagram -->
<value>bullseye</value>
</choice>
</list>
@@ -10082,11 +10168,11 @@
<start name="column"/>
<start name="clippath"/>
<start name="fill"/>
- <grammar xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns:v="urn:schemas-microsoft-com:vml" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" ns="urn:schemas-microsoft-com:office:office" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-<!-- ISO RELAX NG Schema -->
+ <grammar xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns:v="urn:schemas-microsoft-com:vml" xmlns="http://relaxng.org/ns/structure/1.0" ns="urn:schemas-microsoft-com:office:office" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <!-- ISO RELAX NG Schema -->
<include href="vml-main.rng"/>
-<!-- External schema: http://schemas.openxmlformats.org/officeDocument/2006/relationships -->
-<!-- start = shapedefaults | shapelayout | signatureline | ink | diagram | skew | extrusion | callout | lock | OLEObject | complex | left | top | right | bottom | column | clippath | fill -->
+ <!-- External schema: http://schemas.openxmlformats.org/officeDocument/2006/relationships -->
+ <!-- start = shapedefaults | shapelayout | signatureline | ink | diagram | skew | extrusion | callout | lock | OLEObject | complex | left | top | right | bottom | column | clippath | fill -->
<define name="bwmode">
<attribute name="bwmode"/>
</define>
@@ -11497,13 +11583,13 @@
<list>
<xs:documentation>Rule Type</xs:documentation>
<choice>
-<!-- Arc Rule -->
+ <!-- Arc Rule -->
<value>arc</value>
-<!-- Callout Rule -->
+ <!-- Callout Rule -->
<value>callout</value>
-<!-- Connector Rule -->
+ <!-- Connector Rule -->
<value>connector</value>
-<!-- Alignment Rule -->
+ <!-- Alignment Rule -->
<value>align</value>
</choice>
</list>
@@ -11512,17 +11598,17 @@
<list>
<xs:documentation>Alignment Type</xs:documentation>
<choice>
-<!-- Top Alignment -->
+ <!-- Top Alignment -->
<value>top</value>
-<!-- Middle Alignment -->
+ <!-- Middle Alignment -->
<value>middle</value>
-<!-- Bottom Alignment -->
+ <!-- Bottom Alignment -->
<value>bottom</value>
-<!-- Left Alignment -->
+ <!-- Left Alignment -->
<value>left</value>
-<!-- Center Alignment -->
+ <!-- Center Alignment -->
<value>center</value>
-<!-- Right Alignment -->
+ <!-- Right Alignment -->
<value>right</value>
</choice>
</list>
@@ -11531,29 +11617,29 @@
<list>
<xs:documentation>Black And White Modes</xs:documentation>
<choice>
-<!-- Color -->
+ <!-- Color -->
<value>color</value>
-<!-- Automatic -->
+ <!-- Automatic -->
<value>auto</value>
-<!-- Grayscale -->
+ <!-- Grayscale -->
<value>grayScale</value>
-<!-- Light grayscale -->
+ <!-- Light grayscale -->
<value>lightGrayscale</value>
-<!-- Inverse Grayscale -->
+ <!-- Inverse Grayscale -->
<value>inverseGray</value>
-<!-- Gray Outlines -->
+ <!-- Gray Outlines -->
<value>grayOutline</value>
-<!-- Black And White -->
+ <!-- Black And White -->
<value>highContrast</value>
-<!-- Black -->
+ <!-- Black -->
<value>black</value>
-<!-- White -->
+ <!-- White -->
<value>white</value>
-<!-- Hide Object When Displayed in Black and White -->
+ <!-- Hide Object When Displayed in Black and White -->
<value>hide</value>
-<!-- Do Not Show -->
+ <!-- Do Not Show -->
<value>undrawn</value>
-<!-- Black Text And Lines -->
+ <!-- Black Text And Lines -->
<value>blackTextAndLines</value>
</choice>
</list>
@@ -11562,17 +11648,17 @@
<list>
<xs:documentation>Screen Sizes Type</xs:documentation>
<choice>
-<!-- 544x376 pixels -->
+ <!-- 544x376 pixels -->
<value>544,376</value>
-<!-- 640x480 pixels -->
+ <!-- 640x480 pixels -->
<value>640,480</value>
-<!-- 720x512 pixels -->
+ <!-- 720x512 pixels -->
<value>720,512</value>
-<!-- 800x600 pixels -->
+ <!-- 800x600 pixels -->
<value>800,600</value>
-<!-- 1024x768 pixels -->
+ <!-- 1024x768 pixels -->
<value>1024,768</value>
-<!-- 1152x862 pixels -->
+ <!-- 1152x862 pixels -->
<value>1152,862</value>
</choice>
</list>
@@ -11581,9 +11667,9 @@
<list>
<xs:documentation>Inset Margin Type</xs:documentation>
<choice>
-<!-- Automatic Margins -->
+ <!-- Automatic Margins -->
<value>auto</value>
-<!-- Custom Margins -->
+ <!-- Custom Margins -->
<value>custom</value>
</choice>
</list>
@@ -11592,9 +11678,9 @@
<list>
<xs:documentation>Extrusion Color Types</xs:documentation>
<choice>
-<!-- Use Shape Fill Color -->
+ <!-- Use Shape Fill Color -->
<value>auto</value>
-<!-- Use Custom Color -->
+ <!-- Use Custom Color -->
<value>custom</value>
</choice>
</list>
@@ -11608,9 +11694,9 @@
<list>
<xs:documentation>Extrusion Type</xs:documentation>
<choice>
-<!-- Perspective Projection -->
+ <!-- Perspective Projection -->
<value>perspective</value>
-<!-- Parallel Projection -->
+ <!-- Parallel Projection -->
<value>parallel</value>
</choice>
</list>
@@ -11619,11 +11705,11 @@
<list>
<xs:documentation>Extrusion Rendering Types</xs:documentation>
<choice>
-<!-- Solid -->
+ <!-- Solid -->
<value>solid</value>
-<!-- Wireframe -->
+ <!-- Wireframe -->
<value>wireFrame</value>
-<!-- Bounding Cube -->
+ <!-- Bounding Cube -->
<value>boundingCube</value>
</choice>
</list>
@@ -11632,11 +11718,11 @@
<list>
<xs:documentation>Extrusion Planes</xs:documentation>
<choice>
-<!-- XY Plane -->
+ <!-- XY Plane -->
<value>XY</value>
-<!-- ZX Plane -->
+ <!-- ZX Plane -->
<value>ZX</value>
-<!-- YZ Plane -->
+ <!-- YZ Plane -->
<value>YZ</value>
</choice>
</list>
@@ -11645,17 +11731,17 @@
<list>
<xs:documentation>Callout Angles</xs:documentation>
<choice>
-<!-- Any Angle -->
+ <!-- Any Angle -->
<value>any</value>
-<!-- 30 degrees -->
+ <!-- 30 degrees -->
<value>30</value>
-<!-- 45 degrees -->
+ <!-- 45 degrees -->
<value>45</value>
-<!-- 60 degrees -->
+ <!-- 60 degrees -->
<value>60</value>
-<!-- 90 degrees -->
+ <!-- 90 degrees -->
<value>90</value>
-<!-- Automatic Angle -->
+ <!-- Automatic Angle -->
<value>auto</value>
</choice>
</list>
@@ -11669,13 +11755,13 @@
<list>
<xs:documentation>Callout Placement</xs:documentation>
<choice>
-<!-- Top placement -->
+ <!-- Top placement -->
<value>top</value>
-<!-- Center placement -->
+ <!-- Center placement -->
<value>center</value>
-<!-- Bottom placement -->
+ <!-- Bottom placement -->
<value>bottom</value>
-<!-- User-defined placement -->
+ <!-- User-defined placement -->
<value>user</value>
</choice>
</list>
@@ -11684,13 +11770,13 @@
<list>
<xs:documentation>Connector Type</xs:documentation>
<choice>
-<!-- No Connector -->
+ <!-- No Connector -->
<value>none</value>
-<!-- Straight Connector -->
+ <!-- Straight Connector -->
<value>straight</value>
-<!-- Elbow Connector -->
+ <!-- Elbow Connector -->
<value>elbow</value>
-<!-- Curved Connector -->
+ <!-- Curved Connector -->
<value>curved</value>
</choice>
</list>
@@ -11699,11 +11785,11 @@
<list>
<xs:documentation>Alignment Type</xs:documentation>
<choice>
-<!-- Left Alignment -->
+ <!-- Left Alignment -->
<value>left</value>
-<!-- Right Alignment -->
+ <!-- Right Alignment -->
<value>right</value>
-<!-- Center Alignment -->
+ <!-- Center Alignment -->
<value>center</value>
</choice>
</list>
@@ -11712,13 +11798,13 @@
<list>
<xs:documentation>Connection Locations Type</xs:documentation>
<choice>
-<!-- No -->
+ <!-- No -->
<value>none</value>
-<!-- Four Connections -->
+ <!-- Four Connections -->
<value>rect</value>
-<!-- Edit Point Connections -->
+ <!-- Edit Point Connections -->
<value>segments</value>
-<!-- Custom Connections -->
+ <!-- Custom Connections -->
<value>custom</value>
</choice>
</list>
@@ -11727,11 +11813,11 @@
<list>
<xs:documentation>Embedded Object Alternate Image Request Types</xs:documentation>
<choice>
-<!-- Other Image -->
+ <!-- Other Image -->
<value>Picture</value>
-<!-- Bitmap Image -->
+ <!-- Bitmap Image -->
<value>Bitmap</value>
-<!-- Enhanced Metafile Image -->
+ <!-- Enhanced Metafile Image -->
<value>EnhancedMetaFile</value>
</choice>
</list>
@@ -11740,9 +11826,9 @@
<list>
<xs:documentation>OLE Connection Type</xs:documentation>
<choice>
-<!-- Embedded Object -->
+ <!-- Embedded Object -->
<value>Embed</value>
-<!-- Linked Object -->
+ <!-- Linked Object -->
<value>Link</value>
</choice>
</list>
@@ -11751,9 +11837,9 @@
<list>
<xs:documentation>OLE Object Representations</xs:documentation>
<choice>
-<!-- Snapshot -->
+ <!-- Snapshot -->
<value>Content</value>
-<!-- Icon -->
+ <!-- Icon -->
<value>Icon</value>
</choice>
</list>
@@ -11762,9 +11848,9 @@
<list>
<xs:documentation>OLE Update Method Type</xs:documentation>
<choice>
-<!-- Server Application Update -->
+ <!-- Server Application Update -->
<value>Always</value>
-<!-- User Update -->
+ <!-- User Update -->
<value>OnCall</value>
</choice>
</list>
@@ -11784,13 +11870,13 @@
<list>
<xs:documentation>Boolean Value</xs:documentation>
<choice>
-<!-- True -->
+ <!-- True -->
<value>t</value>
-<!-- False -->
+ <!-- False -->
<value>f</value>
-<!-- True -->
+ <!-- True -->
<value>true</value>
-<!-- False -->
+ <!-- False -->
<value>false</value>
</choice>
</list>
@@ -11799,15 +11885,15 @@
<list>
<xs:documentation>Boolean Value with Blank [False] State</xs:documentation>
<choice>
-<!-- Blank – Logical False -->
+ <!-- Blank – Logical False -->
<value/>
-<!-- Logical True -->
+ <!-- Logical True -->
<value>t</value>
-<!-- Logical False -->
+ <!-- Logical False -->
<value>f</value>
-<!-- Logical True -->
+ <!-- Logical True -->
<value>true</value>
-<!-- Logical False -->
+ <!-- Logical False -->
<value>false</value>
</choice>
</list>
@@ -11816,23 +11902,23 @@
<list>
<xs:documentation>Shape Fill Type</xs:documentation>
<choice>
-<!-- Centered Radial Gradient -->
+ <!-- Centered Radial Gradient -->
<value>gradientCenter</value>
-<!-- Solid Fill -->
+ <!-- Solid Fill -->
<value>solid</value>
-<!-- Image Pattern -->
+ <!-- Image Pattern -->
<value>pattern</value>
-<!-- Tiled Image -->
+ <!-- Tiled Image -->
<value>tile</value>
-<!-- Stretch Image to Fit -->
+ <!-- Stretch Image to Fit -->
<value>frame</value>
-<!-- Unscaled Gradient -->
+ <!-- Unscaled Gradient -->
<value>gradientUnscaled</value>
-<!-- Radial Gradient -->
+ <!-- Radial Gradient -->
<value>gradientRadial</value>
-<!-- Linear Gradient -->
+ <!-- Linear Gradient -->
<value>gradient</value>
-<!-- Use Background Fill -->
+ <!-- Use Background Fill -->
<value>background</value>
</choice>
</list>
@@ -12010,9 +12096,9 @@
<start name="borderbottom"/>
<start name="wrap"/>
<start name="anchorlock"/>
- <grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" ns="urn:schemas-microsoft-com:office:word" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
-<!-- ISO RELAX NG Schema -->
-<!-- start = bordertop | borderleft | borderright | borderbottom | wrap | anchorlock -->
+ <grammar xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="urn:schemas-microsoft-com:office:word" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <!-- ISO RELAX NG Schema -->
+ <!-- start = bordertop | borderleft | borderright | borderbottom | wrap | anchorlock -->
<define name="bordertop">
<element name="bordertop">
<ref name="CT_Border"/>
@@ -12098,59 +12184,59 @@
<list>
<xs:documentation>Border Type</xs:documentation>
<choice>
-<!-- No Border -->
+ <!-- No Border -->
<value>none</value>
-<!-- Single Line Border -->
+ <!-- Single Line Border -->
<value>single</value>
-<!-- Thick Line Border -->
+ <!-- Thick Line Border -->
<value>thick</value>
-<!-- Double Line Border -->
+ <!-- Double Line Border -->
<value>double</value>
-<!-- Hairline Border -->
+ <!-- Hairline Border -->
<value>hairline</value>
-<!-- Dotted Border -->
+ <!-- Dotted Border -->
<value>dot</value>
-<!-- pecifies a line border consisting of a dashed line around the parent object. -->
+ <!-- pecifies a line border consisting of a dashed line around the parent object. -->
<value>dash</value>
-<!-- Dot Dash Border -->
+ <!-- Dot Dash Border -->
<value>dotDash</value>
-<!-- Dash Dot Dot Border -->
+ <!-- Dash Dot Dot Border -->
<value>dashDotDot</value>
-<!-- Triple Line Border -->
+ <!-- Triple Line Border -->
<value>triple</value>
-<!-- Thin Thick Small Gap Border -->
+ <!-- Thin Thick Small Gap Border -->
<value>thinThickSmall</value>
-<!-- Small thick-thin lines border -->
+ <!-- Small thick-thin lines border -->
<value>thickThinSmall</value>
-<!-- Small thin-thick-thin Lines Border -->
+ <!-- Small thin-thick-thin Lines Border -->
<value>thickBetweenThinSmall</value>
-<!-- Thin Thick Line Border -->
+ <!-- Thin Thick Line Border -->
<value>thinThick</value>
-<!-- Thick Thin Line Border -->
+ <!-- Thick Thin Line Border -->
<value>thickThin</value>
-<!-- Thin-thick-thin Border -->
+ <!-- Thin-thick-thin Border -->
<value>thickBetweenThin</value>
-<!-- Thin Thick Large Gap Border -->
+ <!-- Thin Thick Large Gap Border -->
<value>thinThickLarge</value>
-<!-- Thick Thin Large Gap Border -->
+ <!-- Thick Thin Large Gap Border -->
<value>thickThinLarge</value>
-<!-- Large thin-thick-thin Border -->
+ <!-- Large thin-thick-thin Border -->
<value>thickBetweenThinLarge</value>
-<!-- Wavy Border -->
+ <!-- Wavy Border -->
<value>wave</value>
-<!-- Double Wavy Lines Border -->
+ <!-- Double Wavy Lines Border -->
<value>doubleWave</value>
-<!-- Small Dash Border -->
+ <!-- Small Dash Border -->
<value>dashedSmall</value>
-<!-- Stroked Dash Dot Border -->
+ <!-- Stroked Dash Dot Border -->
<value>dashDotStroked</value>
-<!-- 3D Embossed Border -->
+ <!-- 3D Embossed Border -->
<value>threeDEmboss</value>
-<!-- 3D Engraved Border -->
+ <!-- 3D Engraved Border -->
<value>threeDEngrave</value>
-<!-- Outset Border -->
+ <!-- Outset Border -->
<value>HTMLOutset</value>
-<!-- Inset Border -->
+ <!-- Inset Border -->
<value>HTMLInset</value>
</choice>
</list>
@@ -12159,13 +12245,13 @@
<list>
<xs:documentation>Border Shadow Type</xs:documentation>
<choice>
-<!-- True -->
+ <!-- True -->
<value>t</value>
-<!-- True -->
+ <!-- True -->
<value>true</value>
-<!-- False -->
+ <!-- False -->
<value>f</value>
-<!-- False -->
+ <!-- False -->
<value>false</value>
</choice>
</list>
@@ -12174,15 +12260,15 @@
<list>
<xs:documentation>Text Wrapping Type</xs:documentation>
<choice>
-<!-- Top and bottom wrapping -->
+ <!-- Top and bottom wrapping -->
<value>topAndBottom</value>
-<!-- Square wrapping -->
+ <!-- Square wrapping -->
<value>square</value>
-<!-- No wrapping -->
+ <!-- No wrapping -->
<value>none</value>
-<!-- Tight wrapping -->
+ <!-- Tight wrapping -->
<value>tight</value>
-<!-- Through wrapping -->
+ <!-- Through wrapping -->
<value>through</value>
</choice>
</list>
@@ -12191,13 +12277,13 @@
<list>
<xs:documentation>Text Wrapping Side</xs:documentation>
<choice>
-<!-- Both sides -->
+ <!-- Both sides -->
<value>both</value>
-<!-- Left side -->
+ <!-- Left side -->
<value>left</value>
-<!-- Right side -->
+ <!-- Right side -->
<value>right</value>
-<!-- Largest side -->
+ <!-- Largest side -->
<value>largest</value>
</choice>
</list>
@@ -12206,13 +12292,13 @@
<list>
<xs:documentation>Horizontal Anchor Type</xs:documentation>
<choice>
-<!-- Margin -->
+ <!-- Margin -->
<value>margin</value>
-<!-- Page -->
+ <!-- Page -->
<value>page</value>
-<!-- Text -->
+ <!-- Text -->
<value>text</value>
-<!-- Character -->
+ <!-- Character -->
<value>char</value>
</choice>
</list>
@@ -12221,13 +12307,13 @@
<list>
<xs:documentation>Vertical Anchor Type</xs:documentation>
<choice>
-<!-- Margin -->
+ <!-- Margin -->
<value>margin</value>
-<!-- Page -->
+ <!-- Page -->
<value>page</value>
-<!-- Text -->
+ <!-- Text -->
<value>text</value>
-<!-- Line -->
+ <!-- Line -->
<value>line</value>
</choice>
</list>
@@ -12319,12 +12405,12 @@
<start name="document"/>
<start name="glossaryDocument"/>
<grammar xmlns:sl="http://schemas.openxmlformats.org/schemaLibrary/2006/main" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:rel="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2006/xpath-functions" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://schemas.openxmlformats.org/wordprocessingml/2006/main" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" attributeFormDefault="qualified">
-<!-- ISO RELAX NG Schema -->
+ <!-- ISO RELAX NG Schema -->
<include href="shared-customXmlSchemaProperties.rng"/>
<include href="shared-math.rng"/>
<include href="dml-wordprocessingDrawing.rng"/>
<include href="shared-relationshipReference.rng"/>
-<!-- start = recipients | txbxContent | comments | footnotes | endnotes | hdr | ftr | settings | webSettings | fonts | numbering | styles | document | glossaryDocument -->
+ <!-- start = recipients | txbxContent | comments | footnotes | endnotes | hdr | ftr | settings | webSettings | fonts | numbering | styles | document | glossaryDocument -->
<define name="CT_Empty">
<empty/>
</define>
@@ -12332,17 +12418,17 @@
<list>
<xs:documentation>On/Off Value</xs:documentation>
<choice>
-<!-- True -->
+ <!-- True -->
<value>true</value>
-<!-- False -->
+ <!-- False -->
<value>false</value>
-<!-- True -->
+ <!-- True -->
<value>on</value>
-<!-- False -->
+ <!-- False -->
<value>off</value>
-<!-- False -->
+ <!-- False -->
<value>0</value>
-<!-- True -->
+ <!-- True -->
<value>1</value>
</choice>
</list>
@@ -12515,39 +12601,39 @@
<list>
<xs:documentation>Text Highlight Colors</xs:documentation>
<choice>
-<!-- Black Highlighting Color -->
+ <!-- Black Highlighting Color -->
<value>black</value>
-<!-- Blue Highlighting Color -->
+ <!-- Blue Highlighting Color -->
<value>blue</value>
-<!-- Cyan Highlighting Color -->
+ <!-- Cyan Highlighting Color -->
<value>cyan</value>
-<!-- Green Highlighting Color -->
+ <!-- Green Highlighting Color -->
<value>green</value>
-<!-- Magenta Highlighting Color -->
+ <!-- Magenta Highlighting Color -->
<value>magenta</value>
-<!-- Red Highlighting Color -->
+ <!-- Red Highlighting Color -->
<value>red</value>
-<!-- Yellow Highlighting Color -->
+ <!-- Yellow Highlighting Color -->
<value>yellow</value>
-<!-- White Highlighting Color -->
+ <!-- White Highlighting Color -->
<value>white</value>
-<!-- Dark Blue Highlighting Color -->
+ <!-- Dark Blue Highlighting Color -->
<value>darkBlue</value>
-<!-- Dark Cyan Highlighting Color -->
+ <!-- Dark Cyan Highlighting Color -->
<value>darkCyan</value>
-<!-- Dark Green Highlighting Color -->
+ <!-- Dark Green Highlighting Color -->
<value>darkGreen</value>
-<!-- Dark Magenta Highlighting Color -->
+ <!-- Dark Magenta Highlighting Color -->
<value>darkMagenta</value>
-<!-- Dark Red Highlighting Color -->
+ <!-- Dark Red Highlighting Color -->
<value>darkRed</value>
-<!-- Dark Yellow Highlighting Color -->
+ <!-- Dark Yellow Highlighting Color -->
<value>darkYellow</value>
-<!-- Dark Gray Highlighting Color -->
+ <!-- Dark Gray Highlighting Color -->
<value>darkGray</value>
-<!-- Light Gray Highlighting Color -->
+ <!-- Light Gray Highlighting Color -->
<value>lightGray</value>
-<!-- No Text Highlighting -->
+ <!-- No Text Highlighting -->
<value>none</value>
</choice>
</list>
@@ -12560,8 +12646,8 @@
</define>
<define name="ST_HexColorAuto">
<list>
- <xs:documentation>&#x2018;Automatic&#x2019; Color Value</xs:documentation>
-<!-- Automatically Determined Color -->
+ <xs:documentation>‘Automatic’ Color Value</xs:documentation>
+ <!-- Automatically Determined Color -->
<value>auto</value>
</list>
</define>
@@ -12577,7 +12663,7 @@
<ref name="ST_HexColorRGB"/>
</choice>
</define>
-<!-- Union -->
+ <!-- Union -->
<define name="CT_Color">
<attribute name="val">
<ref name="ST_HexColor"/>
@@ -12614,7 +12700,7 @@
<ref name="ST_String"/>
</choice>
</define>
-<!-- Union -->
+ <!-- Union -->
<define name="CT_Lang">
<attribute name="val">
<ref name="ST_Lang"/>
@@ -12637,41 +12723,41 @@
<list>
<xs:documentation>Underline Patterns</xs:documentation>
<choice>
-<!-- Single Underline -->
+ <!-- Single Underline -->
<value>single</value>
-<!-- Underline Non-Space Characters Only -->
+ <!-- Underline Non-Space Characters Only -->
<value>words</value>
-<!-- Double Underline -->
+ <!-- Double Underline -->
<value>double</value>
-<!-- Thick Underline -->
+ <!-- Thick Underline -->
<value>thick</value>
-<!-- Dotted Underline -->
+ <!-- Dotted Underline -->
<value>dotted</value>
-<!-- Thick Dotted Underline -->
+ <!-- Thick Dotted Underline -->
<value>dottedHeavy</value>
-<!-- Dashed Underline -->
+ <!-- Dashed Underline -->
<value>dash</value>
-<!-- Thick Dashed Underline -->
+ <!-- Thick Dashed Underline -->
<value>dashedHeavy</value>
-<!-- Long Dashed Underline -->
+ <!-- Long Dashed Underline -->
<value>dashLong</value>
-<!-- Thick Long Dashed Underline -->
+ <!-- Thick Long Dashed Underline -->
<value>dashLongHeavy</value>
-<!-- Dash-Dot Underline -->
+ <!-- Dash-Dot Underline -->
<value>dotDash</value>
-<!-- Thick Dash-Dot Underline -->
+ <!-- Thick Dash-Dot Underline -->
<value>dashDotHeavy</value>
-<!-- Dash-Dot-Dot Underline -->
+ <!-- Dash-Dot-Dot Underline -->
<value>dotDotDash</value>
-<!-- Thick Dash-Dot-Dot Underline -->
+ <!-- Thick Dash-Dot-Dot Underline -->
<value>dashDotDotHeavy</value>
-<!-- Wave Underline -->
+ <!-- Wave Underline -->
<value>wave</value>
-<!-- Heavy Wave Underline -->
+ <!-- Heavy Wave Underline -->
<value>wavyHeavy</value>
-<!-- Double Wave Underline -->
+ <!-- Double Wave Underline -->
<value>wavyDouble</value>
-<!-- No Underline -->
+ <!-- No Underline -->
<value>none</value>
</choice>
</list>
@@ -12708,19 +12794,19 @@
<list>
<xs:documentation>Animated Text Effects</xs:documentation>
<choice>
-<!-- Blinking Background Animation -->
+ <!-- Blinking Background Animation -->
<value>blinkBackground</value>
-<!-- Colored Lights Animation -->
+ <!-- Colored Lights Animation -->
<value>lights</value>
-<!-- Black Dashed Line Animation -->
+ <!-- Black Dashed Line Animation -->
<value>antsBlack</value>
-<!-- Marching Red Ants -->
+ <!-- Marching Red Ants -->
<value>antsRed</value>
-<!-- Shimmer Animation -->
+ <!-- Shimmer Animation -->
<value>shimmer</value>
-<!-- Sparkling Lights Animation -->
+ <!-- Sparkling Lights Animation -->
<value>sparkle</value>
-<!-- No Animation -->
+ <!-- No Animation -->
<value>none</value>
</choice>
</list>
@@ -12735,387 +12821,387 @@
<list>
<xs:documentation>Border Styles</xs:documentation>
<choice>
-<!-- No Border -->
+ <!-- No Border -->
<value>nil</value>
-<!-- No Border -->
+ <!-- No Border -->
<value>none</value>
-<!-- Single Line Border -->
+ <!-- Single Line Border -->
<value>single</value>
-<!-- Single Line Border -->
+ <!-- Single Line Border -->
<value>thick</value>
-<!-- Double Line Border -->
+ <!-- Double Line Border -->
<value>double</value>
-<!-- Dotted Line Border -->
+ <!-- Dotted Line Border -->
<value>dotted</value>
-<!-- Dashed Line Border -->
+ <!-- Dashed Line Border -->
<value>dashed</value>
-<!-- Dot Dash Line Border -->
+ <!-- Dot Dash Line Border -->
<value>dotDash</value>
-<!-- Dot Dot Dash Line Border -->
+ <!-- Dot Dot Dash Line Border -->
<value>dotDotDash</value>
-<!-- Triple Line Border -->
+ <!-- Triple Line Border -->
<value>triple</value>
-<!-- Thin, Thick Line Border -->
+ <!-- Thin, Thick Line Border -->
<value>thinThickSmallGap</value>
-<!-- Thick, Thin Line Border -->
+ <!-- Thick, Thin Line Border -->
<value>thickThinSmallGap</value>
-<!-- Thin, Thick, Thin Line Border -->
+ <!-- Thin, Thick, Thin Line Border -->
<value>thinThickThinSmallGap</value>
-<!-- Thin, Thick Line Border -->
+ <!-- Thin, Thick Line Border -->
<value>thinThickMediumGap</value>
-<!-- Thick, Thin Line Border -->
+ <!-- Thick, Thin Line Border -->
<value>thickThinMediumGap</value>
-<!-- Thin, Thick, Thin Line Border -->
+ <!-- Thin, Thick, Thin Line Border -->
<value>thinThickThinMediumGap</value>
-<!-- Thin, Thick Line Border -->
+ <!-- Thin, Thick Line Border -->
<value>thinThickLargeGap</value>
-<!-- Thick, Thin Line Border -->
+ <!-- Thick, Thin Line Border -->
<value>thickThinLargeGap</value>
-<!-- Thin, Thick, Thin Line Border -->
+ <!-- Thin, Thick, Thin Line Border -->
<value>thinThickThinLargeGap</value>
-<!-- Wavy Line Border -->
+ <!-- Wavy Line Border -->
<value>wave</value>
-<!-- Double Wave Line Border -->
+ <!-- Double Wave Line Border -->
<value>doubleWave</value>
-<!-- Dashed Line Border -->
+ <!-- Dashed Line Border -->
<value>dashSmallGap</value>
-<!-- Dash Dot Strokes Line Border -->
+ <!-- Dash Dot Strokes Line Border -->
<value>dashDotStroked</value>
-<!-- 3D Embossed Line Border -->
+ <!-- 3D Embossed Line Border -->
<value>threeDEmboss</value>
-<!-- 3D Engraved Line Border -->
+ <!-- 3D Engraved Line Border -->
<value>threeDEngrave</value>
-<!-- Outset Line Border -->
+ <!-- Outset Line Border -->
<value>outset</value>
-<!-- Inset Line Border -->
+ <!-- Inset Line Border -->
<value>inset</value>
-<!-- Apples Art Border -->
+ <!-- Apples Art Border -->
<value>apples</value>
-<!-- Arched Scallops Art Border -->
+ <!-- Arched Scallops Art Border -->
<value>archedScallops</value>
-<!-- Baby Pacifier Art Border -->
+ <!-- Baby Pacifier Art Border -->
<value>babyPacifier</value>
-<!-- Baby Rattle Art Border -->
+ <!-- Baby Rattle Art Border -->
<value>babyRattle</value>
-<!-- Three Color Balloons Art Border -->
+ <!-- Three Color Balloons Art Border -->
<value>balloons3Colors</value>
-<!-- Hot Air Balloons Art Border -->
+ <!-- Hot Air Balloons Art Border -->
<value>balloonsHotAir</value>
-<!-- Black Dash Art Border -->
+ <!-- Black Dash Art Border -->
<value>basicBlackDashes</value>
-<!-- Black Dot Art Border -->
+ <!-- Black Dot Art Border -->
<value>basicBlackDots</value>
-<!-- Black Square Art Border -->
+ <!-- Black Square Art Border -->
<value>basicBlackSquares</value>
-<!-- Thin Line Art Border -->
+ <!-- Thin Line Art Border -->
<value>basicThinLines</value>
-<!-- White Dash Art Border -->
+ <!-- White Dash Art Border -->
<value>basicWhiteDashes</value>
-<!-- White Dot Art Border -->
+ <!-- White Dot Art Border -->
<value>basicWhiteDots</value>
-<!-- White Square Art Border -->
+ <!-- White Square Art Border -->
<value>basicWhiteSquares</value>
-<!-- Wide Inline Art Border -->
+ <!-- Wide Inline Art Border -->
<value>basicWideInline</value>
-<!-- Wide Midline Art Border -->
+ <!-- Wide Midline Art Border -->
<value>basicWideMidline</value>
-<!-- Wide Outline Art Border -->
+ <!-- Wide Outline Art Border -->
<value>basicWideOutline</value>
-<!-- Bats Art Border -->
+ <!-- Bats Art Border -->
<value>bats</value>
-<!-- Birds Art Border -->
+ <!-- Birds Art Border -->
<value>birds</value>
-<!-- Birds Flying Art Border -->
+ <!-- Birds Flying Art Border -->
<value>birdsFlight</value>
-<!-- Cabin Art Border -->
+ <!-- Cabin Art Border -->
<value>cabins</value>
-<!-- Cake Art Border -->
+ <!-- Cake Art Border -->
<value>cakeSlice</value>
-<!-- Candy Corn Art Border -->
+ <!-- Candy Corn Art Border -->
<value>candyCorn</value>
-<!-- Knot Work Art Border -->
+ <!-- Knot Work Art Border -->
<value>celticKnotwork</value>
-<!-- Certificate Banner Art Border -->
+ <!-- Certificate Banner Art Border -->
<value>certificateBanner</value>
-<!-- Chain Link Art Border -->
+ <!-- Chain Link Art Border -->
<value>chainLink</value>
-<!-- Champagne Bottle Art Border -->
+ <!-- Champagne Bottle Art Border -->
<value>champagneBottle</value>
-<!-- Black and White Bar Art Border -->
+ <!-- Black and White Bar Art Border -->
<value>checkedBarBlack</value>
-<!-- Color Checked Bar Art Border -->
+ <!-- Color Checked Bar Art Border -->
<value>checkedBarColor</value>
-<!-- Checkerboard Art Border -->
+ <!-- Checkerboard Art Border -->
<value>checkered</value>
-<!-- Christmas Tree Art Border -->
+ <!-- Christmas Tree Art Border -->
<value>christmasTree</value>
-<!-- Circles And Lines Art Border -->
+ <!-- Circles And Lines Art Border -->
<value>circlesLines</value>
-<!-- Circles and Rectangles Art Border -->
+ <!-- Circles and Rectangles Art Border -->
<value>circlesRectangles</value>
-<!-- Wave Art Border -->
+ <!-- Wave Art Border -->
<value>classicalWave</value>
-<!-- Clocks Art Border -->
+ <!-- Clocks Art Border -->
<value>clocks</value>
-<!-- Compass Art Border -->
+ <!-- Compass Art Border -->
<value>compass</value>
-<!-- Confetti Art Border -->
+ <!-- Confetti Art Border -->
<value>confetti</value>
-<!-- Confetti Art Border -->
+ <!-- Confetti Art Border -->
<value>confettiGrays</value>
-<!-- Confetti Art Border -->
+ <!-- Confetti Art Border -->
<value>confettiOutline</value>
-<!-- Confetti Streamers Art Border -->
+ <!-- Confetti Streamers Art Border -->
<value>confettiStreamers</value>
-<!-- Confetti Art Border -->
+ <!-- Confetti Art Border -->
<value>confettiWhite</value>
-<!-- Corner Triangle Art Border -->
+ <!-- Corner Triangle Art Border -->
<value>cornerTriangles</value>
-<!-- Dashed Line Art Border -->
+ <!-- Dashed Line Art Border -->
<value>couponCutoutDashes</value>
-<!-- Dotted Line Art Border -->
+ <!-- Dotted Line Art Border -->
<value>couponCutoutDots</value>
-<!-- Maze Art Border -->
+ <!-- Maze Art Border -->
<value>crazyMaze</value>
-<!-- Butterfly Art Border -->
+ <!-- Butterfly Art Border -->
<value>creaturesButterfly</value>
-<!-- Fish Art Border -->
+ <!-- Fish Art Border -->
<value>creaturesFish</value>
-<!-- Insects Art Border -->
+ <!-- Insects Art Border -->
<value>creaturesInsects</value>
-<!-- Ladybug Art Border -->
+ <!-- Ladybug Art Border -->
<value>creaturesLadyBug</value>
-<!-- Cross-stitch Art Border -->
+ <!-- Cross-stitch Art Border -->
<value>crossStitch</value>
-<!-- Cupid Art Border -->
+ <!-- Cupid Art Border -->
<value>cup</value>
-<!-- Archway Art Border -->
+ <!-- Archway Art Border -->
<value>decoArch</value>
-<!-- Color Archway Art Border -->
+ <!-- Color Archway Art Border -->
<value>decoArchColor</value>
-<!-- Blocks Art Border -->
+ <!-- Blocks Art Border -->
<value>decoBlocks</value>
-<!-- Gray Diamond Art Border -->
+ <!-- Gray Diamond Art Border -->
<value>diamondsGray</value>
-<!-- Double D Art Border -->
+ <!-- Double D Art Border -->
<value>doubleD</value>
-<!-- Diamond Art Border -->
+ <!-- Diamond Art Border -->
<value>doubleDiamonds</value>
-<!-- Earth Art Border -->
+ <!-- Earth Art Border -->
<value>earth1</value>
-<!-- Earth Art Border -->
+ <!-- Earth Art Border -->
<value>earth2</value>
-<!-- Shadowed Square Art Border -->
+ <!-- Shadowed Square Art Border -->
<value>eclipsingSquares1</value>
-<!-- Shadowed Square Art Border -->
+ <!-- Shadowed Square Art Border -->
<value>eclipsingSquares2</value>
-<!-- Painted Egg Art Border -->
+ <!-- Painted Egg Art Border -->
<value>eggsBlack</value>
-<!-- Fans Art Border -->
+ <!-- Fans Art Border -->
<value>fans</value>
-<!-- Film Reel Art Border -->
+ <!-- Film Reel Art Border -->
<value>film</value>
-<!-- Firecracker Art Border -->
+ <!-- Firecracker Art Border -->
<value>firecrackers</value>
-<!-- Flowers Art Border -->
+ <!-- Flowers Art Border -->
<value>flowersBlockPrint</value>
-<!-- Daisy Art Border -->
+ <!-- Daisy Art Border -->
<value>flowersDaisies</value>
-<!-- Flowers Art Border -->
+ <!-- Flowers Art Border -->
<value>flowersModern1</value>
-<!-- Flowers Art Border -->
+ <!-- Flowers Art Border -->
<value>flowersModern2</value>
-<!-- Pansy Art Border -->
+ <!-- Pansy Art Border -->
<value>flowersPansy</value>
-<!-- Red Rose Art Border -->
+ <!-- Red Rose Art Border -->
<value>flowersRedRose</value>
-<!-- Roses Art Border -->
+ <!-- Roses Art Border -->
<value>flowersRoses</value>
-<!-- Flowers in a Teacup Art Border -->
+ <!-- Flowers in a Teacup Art Border -->
<value>flowersTeacup</value>
-<!-- Small Flower Art Border -->
+ <!-- Small Flower Art Border -->
<value>flowersTiny</value>
-<!-- Gems Art Border -->
+ <!-- Gems Art Border -->
<value>gems</value>
-<!-- Gingerbread Man Art Border -->
+ <!-- Gingerbread Man Art Border -->
<value>gingerbreadMan</value>
-<!-- Triangle Gradient Art Border -->
+ <!-- Triangle Gradient Art Border -->
<value>gradient</value>
-<!-- Handmade Art Border -->
+ <!-- Handmade Art Border -->
<value>handmade1</value>
-<!-- Handmade Art Border -->
+ <!-- Handmade Art Border -->
<value>handmade2</value>
-<!-- Heart-Shaped Balloon Art Border -->
+ <!-- Heart-Shaped Balloon Art Border -->
<value>heartBalloon</value>
-<!-- Gray Heart Art Border -->
+ <!-- Gray Heart Art Border -->
<value>heartGray</value>
-<!-- Hearts Art Border -->
+ <!-- Hearts Art Border -->
<value>hearts</value>
-<!-- Pattern Art Border -->
+ <!-- Pattern Art Border -->
<value>heebieJeebies</value>
-<!-- Holly Art Border -->
+ <!-- Holly Art Border -->
<value>holly</value>
-<!-- House Art Border -->
+ <!-- House Art Border -->
<value>houseFunky</value>
-<!-- Circular Art Border -->
+ <!-- Circular Art Border -->
<value>hypnotic</value>
-<!-- Ice Cream Cone Art Border -->
+ <!-- Ice Cream Cone Art Border -->
<value>iceCreamCones</value>
-<!-- Light Bulb Art Border -->
+ <!-- Light Bulb Art Border -->
<value>lightBulb</value>
-<!-- Lightning Art Border -->
+ <!-- Lightning Art Border -->
<value>lightning1</value>
-<!-- Lightning Art Border -->
+ <!-- Lightning Art Border -->
<value>lightning2</value>
-<!-- Map Pins Art Border -->
+ <!-- Map Pins Art Border -->
<value>mapPins</value>
-<!-- Maple Leaf Art Border -->
+ <!-- Maple Leaf Art Border -->
<value>mapleLeaf</value>
-<!-- Muffin Art Border -->
+ <!-- Muffin Art Border -->
<value>mapleMuffins</value>
-<!-- Marquee Art Border -->
+ <!-- Marquee Art Border -->
<value>marquee</value>
-<!-- Marquee Art Border -->
+ <!-- Marquee Art Border -->
<value>marqueeToothed</value>
-<!-- Moon Art Border -->
+ <!-- Moon Art Border -->
<value>moons</value>
-<!-- Mosaic Art Border -->
+ <!-- Mosaic Art Border -->
<value>mosaic</value>
-<!-- Musical Note Art Border -->
+ <!-- Musical Note Art Border -->
<value>musicNotes</value>
-<!-- Patterned Art Border -->
+ <!-- Patterned Art Border -->
<value>northwest</value>
-<!-- Oval Art Border -->
+ <!-- Oval Art Border -->
<value>ovals</value>
-<!-- Package Art Border -->
+ <!-- Package Art Border -->
<value>packages</value>
-<!-- Black Palm Tree Art Border -->
+ <!-- Black Palm Tree Art Border -->
<value>palmsBlack</value>
-<!-- Color Palm Tree Art Border -->
+ <!-- Color Palm Tree Art Border -->
<value>palmsColor</value>
-<!-- Paper Clip Art Border -->
+ <!-- Paper Clip Art Border -->
<value>paperClips</value>
-<!-- Papyrus Art Border -->
+ <!-- Papyrus Art Border -->
<value>papyrus</value>
-<!-- Party Favor Art Border -->
+ <!-- Party Favor Art Border -->
<value>partyFavor</value>
-<!-- Party Glass Art Border -->
+ <!-- Party Glass Art Border -->
<value>partyGlass</value>
-<!-- Pencils Art Border -->
+ <!-- Pencils Art Border -->
<value>pencils</value>
-<!-- Character Art Border -->
+ <!-- Character Art Border -->
<value>people</value>
-<!-- Waving Character Border -->
+ <!-- Waving Character Border -->
<value>peopleWaving</value>
-<!-- Character With Hat Art Border -->
+ <!-- Character With Hat Art Border -->
<value>peopleHats</value>
-<!-- Poinsettia Art Border -->
+ <!-- Poinsettia Art Border -->
<value>poinsettias</value>
-<!-- Postage Stamp Art Border -->
+ <!-- Postage Stamp Art Border -->
<value>postageStamp</value>
-<!-- Pumpkin Art Border -->
+ <!-- Pumpkin Art Border -->
<value>pumpkin1</value>
-<!-- Push Pin Art Border -->
+ <!-- Push Pin Art Border -->
<value>pushPinNote2</value>
-<!-- Push Pin Art Border -->
+ <!-- Push Pin Art Border -->
<value>pushPinNote1</value>
-<!-- Pyramid Art Border -->
+ <!-- Pyramid Art Border -->
<value>pyramids</value>
-<!-- Pyramid Art Border -->
+ <!-- Pyramid Art Border -->
<value>pyramidsAbove</value>
-<!-- Quadrants Art Border -->
+ <!-- Quadrants Art Border -->
<value>quadrants</value>
-<!-- Rings Art Border -->
+ <!-- Rings Art Border -->
<value>rings</value>
-<!-- Safari Art Border -->
+ <!-- Safari Art Border -->
<value>safari</value>
-<!-- Saw tooth Art Border -->
+ <!-- Saw tooth Art Border -->
<value>sawtooth</value>
-<!-- Gray Saw tooth Art Border -->
+ <!-- Gray Saw tooth Art Border -->
<value>sawtoothGray</value>
-<!-- Scared Cat Art Border -->
+ <!-- Scared Cat Art Border -->
<value>scaredCat</value>
-<!-- Umbrella Art Border -->
+ <!-- Umbrella Art Border -->
<value>seattle</value>
-<!-- Shadowed Squares Art Border -->
+ <!-- Shadowed Squares Art Border -->
<value>shadowedSquares</value>
-<!-- Shark Tooth Art Border -->
+ <!-- Shark Tooth Art Border -->
<value>sharksTeeth</value>
-<!-- Bird Tracks Art Border -->
+ <!-- Bird Tracks Art Border -->
<value>shorebirdTracks</value>
-<!-- Rocket Art Border -->
+ <!-- Rocket Art Border -->
<value>skyrocket</value>
-<!-- Snowflake Art Border -->
+ <!-- Snowflake Art Border -->
<value>snowflakeFancy</value>
-<!-- Snowflake Art Border -->
+ <!-- Snowflake Art Border -->
<value>snowflakes</value>
-<!-- Sombrero Art Border -->
+ <!-- Sombrero Art Border -->
<value>sombrero</value>
-<!-- Southwest-themed Art Border -->
+ <!-- Southwest-themed Art Border -->
<value>southwest</value>
-<!-- Stars Art Border -->
+ <!-- Stars Art Border -->
<value>stars</value>
-<!-- Stars On Top Art Border -->
+ <!-- Stars On Top Art Border -->
<value>starsTop</value>
-<!-- 3-D Stars Art Border -->
+ <!-- 3-D Stars Art Border -->
<value>stars3d</value>
-<!-- Stars Art Border -->
+ <!-- Stars Art Border -->
<value>starsBlack</value>
-<!-- Stars With Shadows Art Border -->
+ <!-- Stars With Shadows Art Border -->
<value>starsShadowed</value>
-<!-- Sun Art Border -->
+ <!-- Sun Art Border -->
<value>sun</value>
-<!-- Whirligig Art Border -->
+ <!-- Whirligig Art Border -->
<value>swirligig</value>
-<!-- Torn Paper Art Border -->
+ <!-- Torn Paper Art Border -->
<value>tornPaper</value>
-<!-- Black Torn Paper Art Border -->
+ <!-- Black Torn Paper Art Border -->
<value>tornPaperBlack</value>
-<!-- Tree Art Border -->
+ <!-- Tree Art Border -->
<value>trees</value>
-<!-- Triangle Art Border -->
+ <!-- Triangle Art Border -->
<value>triangleParty</value>
-<!-- Triangles Art Border -->
+ <!-- Triangles Art Border -->
<value>triangles</value>
-<!-- Tribal Art Border One -->
+ <!-- Tribal Art Border One -->
<value>tribal1</value>
-<!-- Tribal Art Border Two -->
+ <!-- Tribal Art Border Two -->
<value>tribal2</value>
-<!-- Tribal Art Border Three -->
+ <!-- Tribal Art Border Three -->
<value>tribal3</value>
-<!-- Tribal Art Border Four -->
+ <!-- Tribal Art Border Four -->
<value>tribal4</value>
-<!-- Tribal Art Border Five -->
+ <!-- Tribal Art Border Five -->
<value>tribal5</value>
-<!-- Tribal Art Border Six -->
+ <!-- Tribal Art Border Six -->
<value>tribal6</value>
-<!-- Twisted Lines Art Border -->
+ <!-- Twisted Lines Art Border -->
<value>twistedLines1</value>
-<!-- Twisted Lines Art Border -->
+ <!-- Twisted Lines Art Border -->
<value>twistedLines2</value>
-<!-- Vine Art Border -->
+ <!-- Vine Art Border -->
<value>vine</value>
-<!-- Wavy Line Art Border -->
+ <!-- Wavy Line Art Border -->
<value>waveline</value>
-<!-- Weaving Angles Art Border -->
+ <!-- Weaving Angles Art Border -->
<value>weavingAngles</value>
-<!-- Weaving Braid Art Border -->
+ <!-- Weaving Braid Art Border -->
<value>weavingBraid</value>
-<!-- Weaving Ribbon Art Border -->
+ <!-- Weaving Ribbon Art Border -->
<value>weavingRibbon</value>
-<!-- Weaving Strips Art Border -->
+ <!-- Weaving Strips Art Border -->
<value>weavingStrips</value>
-<!-- White Flowers Art Border -->
+ <!-- White Flowers Art Border -->
<value>whiteFlowers</value>
-<!-- Woodwork Art Border -->
+ <!-- Woodwork Art Border -->
<value>woodwork</value>
-<!-- Crisscross Art Border -->
+ <!-- Crisscross Art Border -->
<value>xIllusions</value>
-<!-- Triangle Art Border -->
+ <!-- Triangle Art Border -->
<value>zanyTriangles</value>
-<!-- Zigzag Art Border -->
+ <!-- Zigzag Art Border -->
<value>zigZag</value>
-<!-- Zigzag stitch -->
+ <!-- Zigzag stitch -->
<value>zigZagStitch</value>
</choice>
</list>
@@ -13178,81 +13264,81 @@
<list>
<xs:documentation>Shading Patterns</xs:documentation>
<choice>
-<!-- No Pattern -->
+ <!-- No Pattern -->
<value>nil</value>
-<!-- No Pattern -->
+ <!-- No Pattern -->
<value>clear</value>
-<!-- 100% Fill Pattern -->
+ <!-- 100% Fill Pattern -->
<value>solid</value>
-<!-- Horizontal Stripe Pattern -->
+ <!-- Horizontal Stripe Pattern -->
<value>horzStripe</value>
-<!-- Vertical Stripe Pattern -->
+ <!-- Vertical Stripe Pattern -->
<value>vertStripe</value>
-<!-- Reverse Diagonal Stripe Pattern -->
+ <!-- Reverse Diagonal Stripe Pattern -->
<value>reverseDiagStripe</value>
-<!-- Diagonal Stripe Pattern -->
+ <!-- Diagonal Stripe Pattern -->
<value>diagStripe</value>
-<!-- Horizontal Cross Pattern -->
+ <!-- Horizontal Cross Pattern -->
<value>horzCross</value>
-<!-- Diagonal Cross Pattern -->
+ <!-- Diagonal Cross Pattern -->
<value>diagCross</value>
-<!-- Thin Horizontal Stripe Pattern -->
+ <!-- Thin Horizontal Stripe Pattern -->
<value>thinHorzStripe</value>
-<!-- Thin Vertical Stripe Pattern -->
+ <!-- Thin Vertical Stripe Pattern -->
<value>thinVertStripe</value>
-<!-- Thin Reverse Diagonal Stripe Pattern -->
+ <!-- Thin Reverse Diagonal Stripe Pattern -->
<value>thinReverseDiagStripe</value>
-<!-- Thin Diagonal Stripe Pattern -->
+ <!-- Thin Diagonal Stripe Pattern -->
<value>thinDiagStripe</value>
-<!-- Thin Horizontal Cross Pattern -->
+ <!-- Thin Horizontal Cross Pattern -->
<value>thinHorzCross</value>
-<!-- Thin Diagonal Cross Pattern -->
+ <!-- Thin Diagonal Cross Pattern -->
<value>thinDiagCross</value>
-<!-- 5% Fill Pattern -->
+ <!-- 5% Fill Pattern -->
<value>pct5</value>
-<!-- 10% Fill Pattern -->
+ <!-- 10% Fill Pattern -->
<value>pct10</value>
-<!-- 12.5% Fill Pattern -->
+ <!-- 12.5% Fill Pattern -->
<value>pct12</value>
-<!-- 15% Fill Pattern -->
+ <!-- 15% Fill Pattern -->
<value>pct15</value>
-<!-- 20% Fill Pattern -->
+ <!-- 20% Fill Pattern -->
<value>pct20</value>
-<!-- 25% Fill Pattern -->
+ <!-- 25% Fill Pattern -->
<value>pct25</value>
-<!-- 30% Fill Pattern -->
+ <!-- 30% Fill Pattern -->
<value>pct30</value>
-<!-- 35% Fill Pattern -->
+ <!-- 35% Fill Pattern -->
<value>pct35</value>
-<!-- 37.5% Fill Pattern -->
+ <!-- 37.5% Fill Pattern -->
<value>pct37</value>
-<!-- 40% Fill Pattern -->
+ <!-- 40% Fill Pattern -->
<value>pct40</value>
-<!-- 45% Fill Pattern -->
+ <!-- 45% Fill Pattern -->
<value>pct45</value>
-<!-- 50% Fill Pattern -->
+ <!-- 50% Fill Pattern -->
<value>pct50</value>
-<!-- 55% Fill Pattern -->
+ <!-- 55% Fill Pattern -->
<value>pct55</value>
-<!-- 60% Fill Pattern -->
+ <!-- 60% Fill Pattern -->
<value>pct60</value>
-<!-- 62.5% Fill Pattern -->
+ <!-- 62.5% Fill Pattern -->
<value>pct62</value>
-<!-- 65% Fill Pattern -->
+ <!-- 65% Fill Pattern -->
<value>pct65</value>
-<!-- 70% Fill Pattern -->
+ <!-- 70% Fill Pattern -->
<value>pct70</value>
-<!-- 75% Fill Pattern -->
+ <!-- 75% Fill Pattern -->
<value>pct75</value>
-<!-- 80% Fill Pattern -->
+ <!-- 80% Fill Pattern -->
<value>pct80</value>
-<!-- 85% Fill Pattern -->
+ <!-- 85% Fill Pattern -->
<value>pct85</value>
-<!-- 87.5% Fill Pattern -->
+ <!-- 87.5% Fill Pattern -->
<value>pct87</value>
-<!-- 90% Fill Pattern -->
+ <!-- 90% Fill Pattern -->
<value>pct90</value>
-<!-- 95% Fill Pattern -->
+ <!-- 95% Fill Pattern -->
<value>pct95</value>
</choice>
</list>
@@ -13315,11 +13401,11 @@
<list>
<xs:documentation>Vertical Positioning Location</xs:documentation>
<choice>
-<!-- Regular Vertical Positioning -->
+ <!-- Regular Vertical Positioning -->
<value>baseline</value>
-<!-- Superscript -->
+ <!-- Superscript -->
<value>superscript</value>
-<!-- Subscript -->
+ <!-- Subscript -->
<value>subscript</value>
</choice>
</list>
@@ -13346,15 +13432,15 @@
<list>
<xs:documentation>Emphasis Mark Type</xs:documentation>
<choice>
-<!-- No Emphasis Mark -->
+ <!-- No Emphasis Mark -->
<value>none</value>
-<!-- Dot Emphasis Mark Above Characters -->
+ <!-- Dot Emphasis Mark Above Characters -->
<value>dot</value>
-<!-- Comma Emphasis Mark Above Characters -->
+ <!-- Comma Emphasis Mark Above Characters -->
<value>comma</value>
-<!-- Circle Emphasis Mark Above Characters -->
+ <!-- Circle Emphasis Mark Above Characters -->
<value>circle</value>
-<!-- Dot Emphasis Mark Below Characters -->
+ <!-- Dot Emphasis Mark Below Characters -->
<value>underDot</value>
</choice>
</list>
@@ -13389,15 +13475,15 @@
<list>
<xs:documentation>Two Lines in One Enclosing Character Type</xs:documentation>
<choice>
-<!-- No Enclosing Brackets -->
+ <!-- No Enclosing Brackets -->
<value>none</value>
-<!-- Round Brackets -->
+ <!-- Round Brackets -->
<value>round</value>
-<!-- Square Brackets -->
+ <!-- Square Brackets -->
<value>square</value>
-<!-- Angle Brackets -->
+ <!-- Angle Brackets -->
<value>angle</value>
-<!-- Curly Brackets -->
+ <!-- Curly Brackets -->
<value>curly</value>
</choice>
</list>
@@ -13438,15 +13524,15 @@
<list>
<xs:documentation>Horizontal Alignment Location</xs:documentation>
<choice>
-<!-- Left Aligned Horizontally -->
+ <!-- Left Aligned Horizontally -->
<value>left</value>
-<!-- Centered Horizontally -->
+ <!-- Centered Horizontally -->
<value>center</value>
-<!-- Right Aligned Horizontally -->
+ <!-- Right Aligned Horizontally -->
<value>right</value>
-<!-- Inside -->
+ <!-- Inside -->
<value>inside</value>
-<!-- Outside -->
+ <!-- Outside -->
<value>outside</value>
</choice>
</list>
@@ -13455,17 +13541,17 @@
<list>
<xs:documentation>Vertical Alignment Location</xs:documentation>
<choice>
-<!-- In line With Text -->
+ <!-- In line With Text -->
<value>inline</value>
-<!-- Top -->
+ <!-- Top -->
<value>top</value>
-<!-- Centered Vertically -->
+ <!-- Centered Vertically -->
<value>center</value>
-<!-- Bottom -->
+ <!-- Bottom -->
<value>bottom</value>
-<!-- Inside Anchor Extents -->
+ <!-- Inside Anchor Extents -->
<value>inside</value>
-<!-- Outside Anchor Extents -->
+ <!-- Outside Anchor Extents -->
<value>outside</value>
</choice>
</list>
@@ -13474,11 +13560,11 @@
<list>
<xs:documentation>Height Rule</xs:documentation>
<choice>
-<!-- Determine Height Based On Contents -->
+ <!-- Determine Height Based On Contents -->
<value>auto</value>
-<!-- Exact Height -->
+ <!-- Exact Height -->
<value>exact</value>
-<!-- Minimum Height -->
+ <!-- Minimum Height -->
<value>atLeast</value>
</choice>
</list>
@@ -13487,17 +13573,17 @@
<list>
<xs:documentation>Text Wrapping around Text Frame Type</xs:documentation>
<choice>
-<!-- Default Text Wrapping Around Frame -->
+ <!-- Default Text Wrapping Around Frame -->
<value>auto</value>
-<!-- No Text Wrapping Beside Frame -->
+ <!-- No Text Wrapping Beside Frame -->
<value>notBeside</value>
-<!-- Allow Text Wrapping Around Frame -->
+ <!-- Allow Text Wrapping Around Frame -->
<value>around</value>
-<!-- Tight Text Wrapping Around Frame -->
+ <!-- Tight Text Wrapping Around Frame -->
<value>tight</value>
-<!-- Through Text Wrapping Around Frame -->
+ <!-- Through Text Wrapping Around Frame -->
<value>through</value>
-<!-- No Text Wrapping Around Frame -->
+ <!-- No Text Wrapping Around Frame -->
<value>none</value>
</choice>
</list>
@@ -13506,11 +13592,11 @@
<list>
<xs:documentation>Vertical Anchor Location</xs:documentation>
<choice>
-<!-- Relative To Vertical Text Extents -->
+ <!-- Relative To Vertical Text Extents -->
<value>text</value>
-<!-- Relative To Margin -->
+ <!-- Relative To Margin -->
<value>margin</value>
-<!-- Relative To Page -->
+ <!-- Relative To Page -->
<value>page</value>
</choice>
</list>
@@ -13519,11 +13605,11 @@
<list>
<xs:documentation>Horizontal Anchor Location</xs:documentation>
<choice>
-<!-- Relative to Text Extents -->
+ <!-- Relative to Text Extents -->
<value>text</value>
-<!-- Relative To Margin -->
+ <!-- Relative To Margin -->
<value>margin</value>
-<!-- Relative to Page -->
+ <!-- Relative to Page -->
<value>page</value>
</choice>
</list>
@@ -13532,11 +13618,11 @@
<list>
<xs:documentation>Text Frame Drop Cap Location</xs:documentation>
<choice>
-<!-- Not Drop Cap -->
+ <!-- Not Drop Cap -->
<value>none</value>
-<!-- Drop Cap Inside Margin -->
+ <!-- Drop Cap Inside Margin -->
<value>drop</value>
-<!-- Drop Cap Outside Margin -->
+ <!-- Drop Cap Outside Margin -->
<value>margin</value>
</choice>
</list>
@@ -13637,19 +13723,19 @@
<list>
<xs:documentation>Custom Tab Stop Type</xs:documentation>
<choice>
-<!-- No Tab Stop -->
+ <!-- No Tab Stop -->
<value>clear</value>
-<!-- Left Tab -->
+ <!-- Left Tab -->
<value>left</value>
-<!-- Centered Tab -->
+ <!-- Centered Tab -->
<value>center</value>
-<!-- Right Tab -->
+ <!-- Right Tab -->
<value>right</value>
-<!-- Decimal Tab -->
+ <!-- Decimal Tab -->
<value>decimal</value>
-<!-- Bar Tab -->
+ <!-- Bar Tab -->
<value>bar</value>
-<!-- List Tab -->
+ <!-- List Tab -->
<value>num</value>
</choice>
</list>
@@ -13658,17 +13744,17 @@
<list>
<xs:documentation>Custom Tab Stop Leader Character</xs:documentation>
<choice>
-<!-- No tab stop leader -->
+ <!-- No tab stop leader -->
<value>none</value>
-<!-- Dotted leader line -->
+ <!-- Dotted leader line -->
<value>dot</value>
-<!-- Dashed tab stop leader line -->
+ <!-- Dashed tab stop leader line -->
<value>hyphen</value>
-<!-- Solid leader line -->
+ <!-- Solid leader line -->
<value>underscore</value>
-<!-- Heavy solid leader line -->
+ <!-- Heavy solid leader line -->
<value>heavy</value>
-<!-- Middle dot leader line -->
+ <!-- Middle dot leader line -->
<value>middleDot</value>
</choice>
</list>
@@ -13693,11 +13779,11 @@
<list>
<xs:documentation>Line Spacing Rule</xs:documentation>
<choice>
-<!-- Automatically Determined Line Height -->
+ <!-- Automatically Determined Line Height -->
<value>auto</value>
-<!-- Exact Line Height -->
+ <!-- Exact Line Height -->
<value>exact</value>
-<!-- Minimum Line Height -->
+ <!-- Minimum Line Height -->
<value>atLeast</value>
</choice>
</list>
@@ -13806,25 +13892,25 @@
<list>
<xs:documentation>Horizontal Alignment Type</xs:documentation>
<choice>
-<!-- Align Left -->
+ <!-- Align Left -->
<value>left</value>
-<!-- Align Center -->
+ <!-- Align Center -->
<value>center</value>
-<!-- Align Right -->
+ <!-- Align Right -->
<value>right</value>
-<!-- Justified -->
+ <!-- Justified -->
<value>both</value>
-<!-- Medium Kashida Length -->
+ <!-- Medium Kashida Length -->
<value>mediumKashida</value>
-<!-- Distribute All Characters Equally -->
+ <!-- Distribute All Characters Equally -->
<value>distribute</value>
-<!-- Align to List Tab -->
+ <!-- Align to List Tab -->
<value>numTab</value>
-<!-- Widest Kashida Length -->
+ <!-- Widest Kashida Length -->
<value>highKashida</value>
-<!-- Low Kashida Length -->
+ <!-- Low Kashida Length -->
<value>lowKashida</value>
-<!-- Thai Language Justification -->
+ <!-- Thai Language Justification -->
<value>thaiDistribute</value>
</choice>
</list>
@@ -13839,17 +13925,17 @@
<list>
<xs:documentation>Document View Values</xs:documentation>
<choice>
-<!-- Default View -->
+ <!-- Default View -->
<value>none</value>
-<!-- Print Layout View -->
+ <!-- Print Layout View -->
<value>print</value>
-<!-- Outline View -->
+ <!-- Outline View -->
<value>outline</value>
-<!-- Master Document View -->
+ <!-- Master Document View -->
<value>masterPages</value>
-<!-- Draft View -->
+ <!-- Draft View -->
<value>normal</value>
-<!-- Web Page View -->
+ <!-- Web Page View -->
<value>web</value>
</choice>
</list>
@@ -13864,13 +13950,13 @@
<list>
<xs:documentation>Magnification Preset Values</xs:documentation>
<choice>
-<!-- No Preset Magnification -->
+ <!-- No Preset Magnification -->
<value>none</value>
-<!-- Display One Full Page -->
+ <!-- Display One Full Page -->
<value>fullPage</value>
-<!-- Display Page Width -->
+ <!-- Display Page Width -->
<value>bestFit</value>
-<!-- Display Text Width -->
+ <!-- Display Text Width -->
<value>textFit</value>
</choice>
</list>
@@ -13919,9 +14005,9 @@
<list>
<xs:documentation>Proofing State Values</xs:documentation>
<choice>
-<!-- Check Completed -->
+ <!-- Check Completed -->
<value>clean</value>
-<!-- Check Not Completed -->
+ <!-- Check Not Completed -->
<value>dirty</value>
</choice>
</list>
@@ -13944,11 +14030,11 @@
<list>
<xs:documentation>Document Classification Values</xs:documentation>
<choice>
-<!-- Default Document -->
+ <!-- Default Document -->
<value>notSpecified</value>
-<!-- Letter -->
+ <!-- Letter -->
<value>letter</value>
-<!-- E-Mail Message -->
+ <!-- E-Mail Message -->
<value>eMail</value>
</choice>
</list>
@@ -13963,15 +14049,15 @@
<list>
<xs:documentation>Document Protection Types</xs:documentation>
<choice>
-<!-- No Editing Restrictions -->
+ <!-- No Editing Restrictions -->
<value>none</value>
-<!-- Allow No Editing -->
+ <!-- Allow No Editing -->
<value>readOnly</value>
-<!-- Allow Editing of Comments -->
+ <!-- Allow Editing of Comments -->
<value>comments</value>
-<!-- Allow Editing With Revision Tracking -->
+ <!-- Allow Editing With Revision Tracking -->
<value>trackedChanges</value>
-<!-- Allow Editing of Form Fields -->
+ <!-- Allow Editing of Form Fields -->
<value>forms</value>
</choice>
</list>
@@ -13980,9 +14066,9 @@
<list>
<xs:documentation>Cryptographic Provider Types</xs:documentation>
<choice>
-<!-- AES Provider -->
+ <!-- AES Provider -->
<value>rsaAES</value>
-<!-- Any Provider -->
+ <!-- Any Provider -->
<value>rsaFull</value>
</choice>
</list>
@@ -13990,14 +14076,14 @@
<define name="ST_AlgClass">
<list>
<xs:documentation>Cryptographic Algorithm Classes</xs:documentation>
-<!-- Hashing -->
+ <!-- Hashing -->
<value>hash</value>
</list>
</define>
<define name="ST_AlgType">
<list>
<xs:documentation>Cryptographic Algorithm Types</xs:documentation>
-<!-- Any Type -->
+ <!-- Any Type -->
<value>typeAny</value>
</list>
</define>
@@ -14078,17 +14164,17 @@
<list>
<xs:documentation>Source Document Types</xs:documentation>
<choice>
-<!-- Catalog Source Document -->
+ <!-- Catalog Source Document -->
<value>catalog</value>
-<!-- Envelope Source Document -->
+ <!-- Envelope Source Document -->
<value>envelopes</value>
-<!-- Mailing Label Source Document -->
+ <!-- Mailing Label Source Document -->
<value>mailingLabels</value>
-<!-- Form Letter Source Document -->
+ <!-- Form Letter Source Document -->
<value>formLetters</value>
-<!-- E-Mail Source Document -->
+ <!-- E-Mail Source Document -->
<value>email</value>
-<!-- Fax Source Document -->
+ <!-- Fax Source Document -->
<value>fax</value>
</choice>
</list>
@@ -14103,17 +14189,17 @@
<list>
<xs:documentation>Mail Merge Data Source Type Values</xs:documentation>
<choice>
-<!-- Text File Data Source -->
+ <!-- Text File Data Source -->
<value>textFile</value>
-<!-- Database Data Source -->
+ <!-- Database Data Source -->
<value>database</value>
-<!-- Spreadsheet Data Source -->
+ <!-- Spreadsheet Data Source -->
<value>spreadsheet</value>
-<!-- Query Data Source -->
+ <!-- Query Data Source -->
<value>query</value>
-<!-- Open Database Connectivity Data Source -->
+ <!-- Open Database Connectivity Data Source -->
<value>odbc</value>
-<!-- Office Data Source Object Data Source -->
+ <!-- Office Data Source Object Data Source -->
<value>native</value>
</choice>
</list>
@@ -14128,13 +14214,13 @@
<list>
<xs:documentation>Merged Document Destination Types</xs:documentation>
<choice>
-<!-- Send Merged Documents to New Documents -->
+ <!-- Send Merged Documents to New Documents -->
<value>newDocument</value>
-<!-- Send Merged Documents to Printer -->
+ <!-- Send Merged Documents to Printer -->
<value>printer</value>
-<!-- Send Merged Documents as E-mail Messages -->
+ <!-- Send Merged Documents as E-mail Messages -->
<value>email</value>
-<!-- Send Merged Documents as Faxes -->
+ <!-- Send Merged Documents as Faxes -->
<value>fax</value>
</choice>
</list>
@@ -14149,9 +14235,9 @@
<list>
<xs:documentation>Merge Field Mapping Types</xs:documentation>
<choice>
-<!-- Field Not Mapped -->
+ <!-- Field Not Mapped -->
<value>null</value>
-<!-- Field Mapping to Data Source Column -->
+ <!-- Field Mapping to Data Source Column -->
<value>dbColumn</value>
</choice>
</list>
@@ -14208,17 +14294,17 @@
<list>
<xs:documentation>Text Flow Direction</xs:documentation>
<choice>
-<!-- Left to Right, Top to Bottom -->
+ <!-- Left to Right, Top to Bottom -->
<value>lrTb</value>
-<!-- Top to Bottom, Right to Left -->
+ <!-- Top to Bottom, Right to Left -->
<value>tbRl</value>
-<!-- Bottom to Top, Left to Right -->
+ <!-- Bottom to Top, Left to Right -->
<value>btLr</value>
-<!-- Left to Right, Top to Bottom Rotated -->
+ <!-- Left to Right, Top to Bottom Rotated -->
<value>lrTbV</value>
-<!-- Top to Bottom, Right to Left Rotated -->
+ <!-- Top to Bottom, Right to Left Rotated -->
<value>tbRlV</value>
-<!-- Top to Bottom, Left to Right Rotated -->
+ <!-- Top to Bottom, Left to Right Rotated -->
<value>tbLrV</value>
</choice>
</list>
@@ -14233,15 +14319,15 @@
<list>
<xs:documentation>Vertical Text Alignment Types</xs:documentation>
<choice>
-<!-- Align Text at Top -->
+ <!-- Align Text at Top -->
<value>top</value>
-<!-- Align Text at Center -->
+ <!-- Align Text at Center -->
<value>center</value>
-<!-- Align Text at Baseline -->
+ <!-- Align Text at Baseline -->
<value>baseline</value>
-<!-- Align Text at Bottom -->
+ <!-- Align Text at Bottom -->
<value>bottom</value>
-<!-- Automatically Determine Alignment -->
+ <!-- Automatically Determine Alignment -->
<value>auto</value>
</choice>
</list>
@@ -14256,9 +14342,9 @@
<list>
<xs:documentation>Location of Custom XML Markup Displacing an Annotation</xs:documentation>
<choice>
-<!-- Displaced by Next Custom XML Markup Tag -->
+ <!-- Displaced by Next Custom XML Markup Tag -->
<value>next</value>
-<!-- Displaced by Previous Custom XML Markup Tag -->
+ <!-- Displaced by Previous Custom XML Markup Tag -->
<value>prev</value>
</choice>
</list>
@@ -14267,9 +14353,9 @@
<list>
<xs:documentation>Table Cell Vertical Merge Revision Type</xs:documentation>
<choice>
-<!-- Vertically Merged Cell -->
+ <!-- Vertically Merged Cell -->
<value>cont</value>
-<!-- Vertically Split Cell -->
+ <!-- Vertically Split Cell -->
<value>rest</value>
</choice>
</list>
@@ -14592,15 +14678,15 @@
<list>
<xs:documentation>Lines To Tight Wrap Within Text Box</xs:documentation>
<choice>
-<!-- Do Not Tight Wrap -->
+ <!-- Do Not Tight Wrap -->
<value>none</value>
-<!-- Tight Wrap All Lines -->
+ <!-- Tight Wrap All Lines -->
<value>allLines</value>
-<!-- Tight Wrap First and Last Lines -->
+ <!-- Tight Wrap First and Last Lines -->
<value>firstAndLastLine</value>
-<!-- Tight Wrap First Line -->
+ <!-- Tight Wrap First Line -->
<value>firstLineOnly</value>
-<!-- Tight Wrap Last Line -->
+ <!-- Tight Wrap Last Line -->
<value>lastLineOnly</value>
</choice>
</list>
@@ -14934,11 +15020,11 @@
<list>
<xs:documentation>Complex Field Character Type</xs:documentation>
<choice>
-<!-- Start Character -->
+ <!-- Start Character -->
<value>begin</value>
-<!-- Separator Character -->
+ <!-- Separator Character -->
<value>separate</value>
-<!-- End Character -->
+ <!-- End Character -->
<value>end</value>
</choice>
</list>
@@ -14947,9 +15033,9 @@
<list>
<xs:documentation>Help or Status Text Type</xs:documentation>
<choice>
-<!-- Literal Text -->
+ <!-- Literal Text -->
<value>text</value>
-<!-- Glossary Document Entry -->
+ <!-- Glossary Document Entry -->
<value>autoText</value>
</choice>
</list>
@@ -14976,17 +15062,17 @@
<list>
<xs:documentation>Text Box Form Field Type Values</xs:documentation>
<choice>
-<!-- Text Box -->
+ <!-- Text Box -->
<value>regular</value>
-<!-- Number -->
+ <!-- Number -->
<value>number</value>
-<!-- Date -->
+ <!-- Date -->
<value>date</value>
-<!-- Current Time Display -->
+ <!-- Current Time Display -->
<value>currentTime</value>
-<!-- Current Date Display -->
+ <!-- Current Date Display -->
<value>currentDate</value>
-<!-- Field Calculation -->
+ <!-- Field Calculation -->
<value>calculated</value>
</choice>
</list>
@@ -15201,15 +15287,15 @@
<list>
<xs:documentation>Section Type</xs:documentation>
<choice>
-<!-- Next Page Section Break -->
+ <!-- Next Page Section Break -->
<value>nextPage</value>
-<!-- Column Section Break -->
+ <!-- Column Section Break -->
<value>nextColumn</value>
-<!-- Continuous Section Break -->
+ <!-- Continuous Section Break -->
<value>continuous</value>
-<!-- Even Page Section Break -->
+ <!-- Even Page Section Break -->
<value>evenPage</value>
-<!-- Odd Page Section Break -->
+ <!-- Odd Page Section Break -->
<value>oddPage</value>
</choice>
</list>
@@ -15234,125 +15320,125 @@
<list>
<xs:documentation>Numbering Format</xs:documentation>
<choice>
-<!-- Decimal Numbers -->
+ <!-- Decimal Numbers -->
<value>decimal</value>
-<!-- Uppercase Roman Numerals -->
+ <!-- Uppercase Roman Numerals -->
<value>upperRoman</value>
-<!-- Lowercase Roman Numerals -->
+ <!-- Lowercase Roman Numerals -->
<value>lowerRoman</value>
-<!-- Uppercase Latin Alphabet -->
+ <!-- Uppercase Latin Alphabet -->
<value>upperLetter</value>
-<!-- Lowercase Latin Alphabet -->
+ <!-- Lowercase Latin Alphabet -->
<value>lowerLetter</value>
-<!-- Ordinal -->
+ <!-- Ordinal -->
<value>ordinal</value>
-<!-- Cardinal Text -->
+ <!-- Cardinal Text -->
<value>cardinalText</value>
-<!-- Ordinal Text -->
+ <!-- Ordinal Text -->
<value>ordinalText</value>
-<!-- Hexadecimal Numbering -->
+ <!-- Hexadecimal Numbering -->
<value>hex</value>
-<!-- Chicago Manual of Style -->
+ <!-- Chicago Manual of Style -->
<value>chicago</value>
-<!-- Ideographs -->
+ <!-- Ideographs -->
<value>ideographDigital</value>
-<!-- Japanese Counting System -->
+ <!-- Japanese Counting System -->
<value>japaneseCounting</value>
-<!-- AIUEO Order Hiragana -->
+ <!-- AIUEO Order Hiragana -->
<value>aiueo</value>
-<!-- Iroha Ordered Katakana -->
+ <!-- Iroha Ordered Katakana -->
<value>iroha</value>
-<!-- Double Byte Arabic Numerals -->
+ <!-- Double Byte Arabic Numerals -->
<value>decimalFullWidth</value>
-<!-- Single Byte Arabic Numerals -->
+ <!-- Single Byte Arabic Numerals -->
<value>decimalHalfWidth</value>
-<!-- Japanese Legal Numbering -->
+ <!-- Japanese Legal Numbering -->
<value>japaneseLegal</value>
-<!-- Japanese Digital Ten Thousand Counting System -->
+ <!-- Japanese Digital Ten Thousand Counting System -->
<value>japaneseDigitalTenThousand</value>
-<!-- Decimal Numbers Enclosed in a Circle -->
+ <!-- Decimal Numbers Enclosed in a Circle -->
<value>decimalEnclosedCircle</value>
-<!-- Double Byte Arabic Numerals Alternate -->
+ <!-- Double Byte Arabic Numerals Alternate -->
<value>decimalFullWidth2</value>
-<!-- Full-Width AIUEO Order Hiragana -->
+ <!-- Full-Width AIUEO Order Hiragana -->
<value>aiueoFullWidth</value>
-<!-- Full-Width Iroha Ordered Katakana -->
+ <!-- Full-Width Iroha Ordered Katakana -->
<value>irohaFullWidth</value>
-<!-- Initial Zero Arabic Numerals -->
+ <!-- Initial Zero Arabic Numerals -->
<value>decimalZero</value>
-<!-- Bullet -->
+ <!-- Bullet -->
<value>bullet</value>
-<!-- Korean Ganada Numbering -->
+ <!-- Korean Ganada Numbering -->
<value>ganada</value>
-<!-- Korean Chosung Numbering -->
+ <!-- Korean Chosung Numbering -->
<value>chosung</value>
-<!-- Decimal Numbers Followed by a Period -->
+ <!-- Decimal Numbers Followed by a Period -->
<value>decimalEnclosedFullstop</value>
-<!-- Decimal Numbers Enclosed in Parenthesis -->
+ <!-- Decimal Numbers Enclosed in Parenthesis -->
<value>decimalEnclosedParen</value>
-<!-- Decimal Numbers Enclosed in a Circle -->
+ <!-- Decimal Numbers Enclosed in a Circle -->
<value>decimalEnclosedCircleChinese</value>
-<!-- Ideographs Enclosed in a Circle -->
+ <!-- Ideographs Enclosed in a Circle -->
<value>ideographEnclosedCircle</value>
-<!-- Traditional Ideograph Format -->
+ <!-- Traditional Ideograph Format -->
<value>ideographTraditional</value>
-<!-- Zodiac Ideograph Format -->
+ <!-- Zodiac Ideograph Format -->
<value>ideographZodiac</value>
-<!-- Traditional Zodiac Ideograph Format -->
+ <!-- Traditional Zodiac Ideograph Format -->
<value>ideographZodiacTraditional</value>
-<!-- Taiwanese Counting System -->
+ <!-- Taiwanese Counting System -->
<value>taiwaneseCounting</value>
-<!-- Traditional Legal Ideograph Format -->
+ <!-- Traditional Legal Ideograph Format -->
<value>ideographLegalTraditional</value>
-<!-- Taiwanese Counting Thousand System -->
+ <!-- Taiwanese Counting Thousand System -->
<value>taiwaneseCountingThousand</value>
-<!-- Taiwanese Digital Counting System -->
+ <!-- Taiwanese Digital Counting System -->
<value>taiwaneseDigital</value>
-<!-- Chinese Counting System -->
+ <!-- Chinese Counting System -->
<value>chineseCounting</value>
-<!-- Chinese Legal Simplified Format -->
+ <!-- Chinese Legal Simplified Format -->
<value>chineseLegalSimplified</value>
-<!-- Chinese Counting Thousand System -->
+ <!-- Chinese Counting Thousand System -->
<value>chineseCountingThousand</value>
-<!-- Korean Digital Counting System -->
+ <!-- Korean Digital Counting System -->
<value>koreanDigital</value>
-<!-- Korean Counting System -->
+ <!-- Korean Counting System -->
<value>koreanCounting</value>
-<!-- Korean Legal Numbering -->
+ <!-- Korean Legal Numbering -->
<value>koreanLegal</value>
-<!-- Korean Digital Counting System Alternate -->
+ <!-- Korean Digital Counting System Alternate -->
<value>koreanDigital2</value>
-<!-- Vietnamese Numerals -->
+ <!-- Vietnamese Numerals -->
<value>vietnameseCounting</value>
-<!-- Lowercase Russian Alphabet -->
+ <!-- Lowercase Russian Alphabet -->
<value>russianLower</value>
-<!-- Uppercase Russian Alphabet -->
+ <!-- Uppercase Russian Alphabet -->
<value>russianUpper</value>
-<!-- No Numbering -->
+ <!-- No Numbering -->
<value>none</value>
-<!-- Number With Dashes -->
+ <!-- Number With Dashes -->
<value>numberInDash</value>
-<!-- Hebrew Numerals -->
+ <!-- Hebrew Numerals -->
<value>hebrew1</value>
-<!-- Hebrew Alphabet -->
+ <!-- Hebrew Alphabet -->
<value>hebrew2</value>
-<!-- Arabic Alphabet -->
+ <!-- Arabic Alphabet -->
<value>arabicAlpha</value>
-<!-- Arabic Abjad Numerals -->
+ <!-- Arabic Abjad Numerals -->
<value>arabicAbjad</value>
-<!-- Hindi Vowels -->
+ <!-- Hindi Vowels -->
<value>hindiVowels</value>
-<!-- Hindi Consonants -->
+ <!-- Hindi Consonants -->
<value>hindiConsonants</value>
-<!-- Hindi Numbers -->
+ <!-- Hindi Numbers -->
<value>hindiNumbers</value>
-<!-- Hindi Counting System -->
+ <!-- Hindi Counting System -->
<value>hindiCounting</value>
-<!-- Thai Letters -->
+ <!-- Thai Letters -->
<value>thaiLetters</value>
-<!-- Thai Numerals -->
+ <!-- Thai Numerals -->
<value>thaiNumbers</value>
-<!-- Thai Counting System -->
+ <!-- Thai Counting System -->
<value>thaiCounting</value>
</choice>
</list>
@@ -15361,9 +15447,9 @@
<list>
<xs:documentation>Page Orientation</xs:documentation>
<choice>
-<!-- Portrait Mode -->
+ <!-- Portrait Mode -->
<value>portrait</value>
-<!-- Landscape Mode -->
+ <!-- Landscape Mode -->
<value>landscape</value>
</choice>
</list>
@@ -15426,9 +15512,9 @@
<list>
<xs:documentation>Page Border Z-Order</xs:documentation>
<choice>
-<!-- Page Border Ahead of Text -->
+ <!-- Page Border Ahead of Text -->
<value>front</value>
-<!-- Page Border Behind Text -->
+ <!-- Page Border Behind Text -->
<value>back</value>
</choice>
</list>
@@ -15437,11 +15523,11 @@
<list>
<xs:documentation>Page Border Display Options</xs:documentation>
<choice>
-<!-- Display Page Border on All Pages -->
+ <!-- Display Page Border on All Pages -->
<value>allPages</value>
-<!-- Display Page Border on First Page -->
+ <!-- Display Page Border on First Page -->
<value>firstPage</value>
-<!-- Display Page Border on All Pages Except First -->
+ <!-- Display Page Border on All Pages Except First -->
<value>notFirstPage</value>
</choice>
</list>
@@ -15450,9 +15536,9 @@
<list>
<xs:documentation>Page Border Positioning Base</xs:documentation>
<choice>
-<!-- Page Border Is Positioned Relative to Page Edges -->
+ <!-- Page Border Is Positioned Relative to Page Edges -->
<value>page</value>
-<!-- Page Border Is Positioned Relative to Text Extents -->
+ <!-- Page Border Is Positioned Relative to Text Extents -->
<value>text</value>
</choice>
</list>
@@ -15503,15 +15589,15 @@
<list>
<xs:documentation>Chapter Separator Types</xs:documentation>
<choice>
-<!-- Hyphen Chapter Separator -->
+ <!-- Hyphen Chapter Separator -->
<value>hyphen</value>
-<!-- Period Chapter Separator -->
+ <!-- Period Chapter Separator -->
<value>period</value>
-<!-- Colon Chapter Separator -->
+ <!-- Colon Chapter Separator -->
<value>colon</value>
-<!-- Em Dash Chapter Separator -->
+ <!-- Em Dash Chapter Separator -->
<value>emDash</value>
-<!-- En Dash Chapter Separator -->
+ <!-- En Dash Chapter Separator -->
<value>enDash</value>
</choice>
</list>
@@ -15520,11 +15606,11 @@
<list>
<xs:documentation>Line Numbering Restart Position</xs:documentation>
<choice>
-<!-- Restart Line Numbering on Each Page -->
+ <!-- Restart Line Numbering on Each Page -->
<value>newPage</value>
-<!-- Restart Line Numbering for Each Section -->
+ <!-- Restart Line Numbering for Each Section -->
<value>newSection</value>
-<!-- Continue Line Numbering From Previous Section -->
+ <!-- Continue Line Numbering From Previous Section -->
<value>continuous</value>
</choice>
</list>
@@ -15630,13 +15716,13 @@
<list>
<xs:documentation>Vertical Alignment Type</xs:documentation>
<choice>
-<!-- Align Top -->
+ <!-- Align Top -->
<value>top</value>
-<!-- Align Center -->
+ <!-- Align Center -->
<value>center</value>
-<!-- Vertical Justification -->
+ <!-- Vertical Justification -->
<value>both</value>
-<!-- Align Bottom -->
+ <!-- Align Bottom -->
<value>bottom</value>
</choice>
</list>
@@ -15651,13 +15737,13 @@
<list>
<xs:documentation>Document Grid Types</xs:documentation>
<choice>
-<!-- No Document Grid -->
+ <!-- No Document Grid -->
<value>default</value>
-<!-- Line Grid Only -->
+ <!-- Line Grid Only -->
<value>lines</value>
-<!-- Line and Character Grid -->
+ <!-- Line and Character Grid -->
<value>linesAndChars</value>
-<!-- Character Grid Only -->
+ <!-- Character Grid Only -->
<value>snapToChars</value>
</choice>
</list>
@@ -15680,11 +15766,11 @@
<list>
<xs:documentation>Header or Footer Type</xs:documentation>
<choice>
-<!-- Even Numbered Pages Only -->
+ <!-- Even Numbered Pages Only -->
<value>even</value>
-<!-- Default Header or Footer -->
+ <!-- Default Header or Footer -->
<value>default</value>
-<!-- First Page Only -->
+ <!-- First Page Only -->
<value>first</value>
</choice>
</list>
@@ -15693,19 +15779,18 @@
<list>
<xs:documentation>Footnote or Endnote Type</xs:documentation>
<choice>
-<!-- Normal Footnote/Endnote -->
+ <!-- Normal Footnote/Endnote -->
<value>normal</value>
-<!-- Separator -->
+ <!-- Separator -->
<value>separator</value>
-<!-- Continuation Separator -->
+ <!-- Continuation Separator -->
<value>continuationSeparator</value>
-<!-- Continuation Notice Separator -->
+ <!-- Continuation Notice Separator -->
<value>continuationNotice</value>
</choice>
</list>
</define>
<define name="CT_HdrFtrRef">
- <ref name="CT_Rel"/>
<attribute name="type">
<ref name="ST_HdrFtr"/>
<xs:documentation>Header or Footer Type</xs:documentation>
@@ -15876,11 +15961,11 @@
<list>
<xs:documentation>Break Types</xs:documentation>
<choice>
-<!-- Page Break -->
+ <!-- Page Break -->
<value>page</value>
-<!-- Column Break -->
+ <!-- Column Break -->
<value>column</value>
-<!-- Line Break -->
+ <!-- Line Break -->
<value>textWrapping</value>
</choice>
</list>
@@ -15889,13 +15974,13 @@
<list>
<xs:documentation>Line Break Text Wrapping Restart Location</xs:documentation>
<choice>
-<!-- Restart On Next Line -->
+ <!-- Restart On Next Line -->
<value>none</value>
-<!-- Restart In Next Text Region When In Leftmost Position -->
+ <!-- Restart In Next Text Region When In Leftmost Position -->
<value>left</value>
-<!-- Restart In Next Text Region When In Rightmost Position -->
+ <!-- Restart In Next Text Region When In Rightmost Position -->
<value>right</value>
-<!-- Restart On Next Full Line -->
+ <!-- Restart On Next Full Line -->
<value>all</value>
</choice>
</list>
@@ -15918,11 +16003,11 @@
<list>
<xs:documentation>Absolute Position Tab Alignment</xs:documentation>
<choice>
-<!-- Left -->
+ <!-- Left -->
<value>left</value>
-<!-- Center -->
+ <!-- Center -->
<value>center</value>
-<!-- Right -->
+ <!-- Right -->
<value>right</value>
</choice>
</list>
@@ -15931,9 +16016,9 @@
<list>
<xs:documentation>Absolute Position Tab Positioning Base</xs:documentation>
<choice>
-<!-- Relative To Text Margins -->
+ <!-- Relative To Text Margins -->
<value>margin</value>
-<!-- Relative To Indents -->
+ <!-- Relative To Indents -->
<value>indent</value>
</choice>
</list>
@@ -15942,15 +16027,15 @@
<list>
<xs:documentation>Absolute Position Tab Leader Character</xs:documentation>
<choice>
-<!-- No Leader Character -->
+ <!-- No Leader Character -->
<value>none</value>
-<!-- Dot Leader Character -->
+ <!-- Dot Leader Character -->
<value>dot</value>
-<!-- Hyphen Leader Character -->
+ <!-- Hyphen Leader Character -->
<value>hyphen</value>
-<!-- Underscore Leader Character -->
+ <!-- Underscore Leader Character -->
<value>underscore</value>
-<!-- Centered Dot Leader Character -->
+ <!-- Centered Dot Leader Character -->
<value>middleDot</value>
</choice>
</list>
@@ -15983,13 +16068,13 @@
<list>
<xs:documentation>Proofing Error Type</xs:documentation>
<choice>
-<!-- Start of Region Marked as Spelling Error -->
+ <!-- Start of Region Marked as Spelling Error -->
<value>spellStart</value>
-<!-- End of Region Marked as Spelling Error -->
+ <!-- End of Region Marked as Spelling Error -->
<value>spellEnd</value>
-<!-- Start of Region Marked as Grammatical Error -->
+ <!-- Start of Region Marked as Grammatical Error -->
<value>gramStart</value>
-<!-- End of Region Marked as Grammatical Error -->
+ <!-- End of Region Marked as Grammatical Error -->
<value>gramEnd</value>
</choice>
</list>
@@ -16004,19 +16089,19 @@
<list>
<xs:documentation>Range Permision Editing Group</xs:documentation>
<choice>
-<!-- No Users Have Editing Permissions -->
+ <!-- No Users Have Editing Permissions -->
<value>none</value>
-<!-- All Users Have Editing Permissions -->
+ <!-- All Users Have Editing Permissions -->
<value>everyone</value>
-<!-- Administrator Group -->
+ <!-- Administrator Group -->
<value>administrators</value>
-<!-- Contributors Group -->
+ <!-- Contributors Group -->
<value>contributors</value>
-<!-- Editors Group -->
+ <!-- Editors Group -->
<value>editors</value>
-<!-- Owners Group -->
+ <!-- Owners Group -->
<value>owners</value>
-<!-- Current Group -->
+ <!-- Current Group -->
<value>current</value>
</choice>
</list>
@@ -16248,11 +16333,11 @@
<list>
<xs:documentation>Font Type Hint</xs:documentation>
<choice>
-<!-- High ANSI Font -->
+ <!-- High ANSI Font -->
<value>default</value>
-<!-- East Asian Font -->
+ <!-- East Asian Font -->
<value>eastAsia</value>
-<!-- Complex Script Font -->
+ <!-- Complex Script Font -->
<value>cs</value>
</choice>
</list>
@@ -16261,21 +16346,21 @@
<list>
<xs:documentation>Theme Font</xs:documentation>
<choice>
-<!-- Major East Asian Theme Font -->
+ <!-- Major East Asian Theme Font -->
<value>majorEastAsia</value>
-<!-- Major Complex Script Theme Font -->
+ <!-- Major Complex Script Theme Font -->
<value>majorBidi</value>
-<!-- Major ASCII Theme Font -->
+ <!-- Major ASCII Theme Font -->
<value>majorAscii</value>
-<!-- Major High ANSI Theme Font -->
+ <!-- Major High ANSI Theme Font -->
<value>majorHAnsi</value>
-<!-- Minor East Asian Theme Font -->
+ <!-- Minor East Asian Theme Font -->
<value>minorEastAsia</value>
-<!-- Minor Complex Script Theme Font -->
+ <!-- Minor Complex Script Theme Font -->
<value>minorBidi</value>
-<!-- Minor ASCII Theme Font -->
+ <!-- Minor ASCII Theme Font -->
<value>minorAscii</value>
-<!-- Minor High ANSI Theme Font -->
+ <!-- Minor High ANSI Theme Font -->
<value>minorHAnsi</value>
</choice>
</list>
@@ -16622,17 +16707,17 @@
<list>
<xs:documentation>Phonetic Guide Text Alignment</xs:documentation>
<choice>
-<!-- Center -->
+ <!-- Center -->
<value>center</value>
-<!-- Distribute All Characters -->
+ <!-- Distribute All Characters -->
<value>distributeLetter</value>
-<!-- Distribute all Characters w/ Additional Space On Either Side -->
+ <!-- Distribute all Characters w/ Additional Space On Either Side -->
<value>distributeSpace</value>
-<!-- Left Aligned -->
+ <!-- Left Aligned -->
<value>left</value>
-<!-- Right Aligned -->
+ <!-- Right Aligned -->
<value>right</value>
-<!-- Vertically Aligned to Right of Base Text -->
+ <!-- Vertically Aligned to Right of Base Text -->
<value>rightVertical</value>
</choice>
</list>
@@ -16695,13 +16780,13 @@
<list>
<xs:documentation>Locking Types</xs:documentation>
<choice>
-<!-- SDT Cannot Be Deleted -->
+ <!-- SDT Cannot Be Deleted -->
<value>sdtLocked</value>
-<!-- Contents Cannot Be Edited At Runtime -->
+ <!-- Contents Cannot Be Edited At Runtime -->
<value>contentLocked</value>
-<!-- No Locking -->
+ <!-- No Locking -->
<value>unlocked</value>
-<!-- Contents Cannot Be Edited At Runtime And SDT Cannot Be Deleted -->
+ <!-- Contents Cannot Be Edited At Runtime And SDT Cannot Be Deleted -->
<value>sdtContentLocked</value>
</choice>
</list>
@@ -16726,11 +16811,11 @@
<list>
<xs:documentation>Date Storage Format Types</xs:documentation>
<choice>
-<!-- Same As Display -->
+ <!-- Same As Display -->
<value>text</value>
-<!-- XML Schema Date Format -->
+ <!-- XML Schema Date Format -->
<value>date</value>
-<!-- XML Schema DateTime Format -->
+ <!-- XML Schema DateTime Format -->
<value>dateTime</value>
</choice>
</list>
@@ -16745,25 +16830,25 @@
<list>
<xs:documentation>Calendar Types</xs:documentation>
<choice>
-<!-- Gregorian -->
+ <!-- Gregorian -->
<value>gregorian</value>
-<!-- Hijri -->
+ <!-- Hijri -->
<value>hijri</value>
-<!-- Hebrew -->
+ <!-- Hebrew -->
<value>hebrew</value>
-<!-- Taiwan -->
+ <!-- Taiwan -->
<value>taiwan</value>
-<!-- Japanese Emperor Era -->
+ <!-- Japanese Emperor Era -->
<value>japan</value>
-<!-- Thai -->
+ <!-- Thai -->
<value>thai</value>
-<!-- Korean Tangun Era -->
+ <!-- Korean Tangun Era -->
<value>korea</value>
-<!-- Saka Era -->
+ <!-- Saka Era -->
<value>saka</value>
-<!-- Gregorian transliterated English -->
+ <!-- Gregorian transliterated English -->
<value>gregorianXlitEnglish</value>
-<!-- Gregorian transliterated French -->
+ <!-- Gregorian transliterated French -->
<value>gregorianXlitFrench</value>
</choice>
</list>
@@ -17325,13 +17410,13 @@
<list>
<xs:documentation>Table Width Units</xs:documentation>
<choice>
-<!-- No Width -->
+ <!-- No Width -->
<value>nil</value>
-<!-- Width in Fiftieths of a Percent -->
+ <!-- Width in Fiftieths of a Percent -->
<value>pct</value>
-<!-- Width in Twentieths of a Point -->
+ <!-- Width in Twentieths of a Point -->
<value>dxa</value>
-<!-- Automatically Determined Width -->
+ <!-- Automatically Determined Width -->
<value>auto</value>
</choice>
</list>
@@ -17358,7 +17443,7 @@
</define>
<define name="CT_TblGridCol">
<attribute name="w">
- <text/>
+ <ref name="ST_TwipsMeasure"/>
<xs:documentation>Grid Column Width</xs:documentation>
</attribute>
</define>
@@ -17445,9 +17530,9 @@
<list>
<xs:documentation>Merged Cell Type</xs:documentation>
<choice>
-<!-- Continue Merged Region -->
+ <!-- Continue Merged Region -->
<value>continue</value>
-<!-- Start/Restart Merged Region -->
+ <!-- Start/Restart Merged Region -->
<value>restart</value>
</choice>
</list>
@@ -17691,9 +17776,9 @@
<list>
<xs:documentation>Table Layout Type</xs:documentation>
<choice>
-<!-- Fixed Width Table Layout -->
+ <!-- Fixed Width Table Layout -->
<value>fixed</value>
-<!-- AutoFit Table Layout -->
+ <!-- AutoFit Table Layout -->
<value>autofit</value>
</choice>
</list>
@@ -17708,9 +17793,9 @@
<list>
<xs:documentation>Table Overlap Setting</xs:documentation>
<choice>
-<!-- Floating Table Cannot Overlap -->
+ <!-- Floating Table Cannot Overlap -->
<value>never</value>
-<!-- Floating Table Can Overlap -->
+ <!-- Floating Table Can Overlap -->
<value>overlap</value>
</choice>
</list>
@@ -17975,13 +18060,13 @@
<list>
<xs:documentation>Footnote Positioning Location</xs:documentation>
<choice>
-<!-- Footnotes Positioned at Page Bottom -->
+ <!-- Footnotes Positioned at Page Bottom -->
<value>pageBottom</value>
-<!-- Footnotes Positioned Beneath Text -->
+ <!-- Footnotes Positioned Beneath Text -->
<value>beneathText</value>
-<!-- Footnotes Positioned At End of Section -->
+ <!-- Footnotes Positioned At End of Section -->
<value>sectEnd</value>
-<!-- Footnotes Positioned At End of Document -->
+ <!-- Footnotes Positioned At End of Document -->
<value>docEnd</value>
</choice>
</list>
@@ -17996,9 +18081,9 @@
<list>
<xs:documentation>Endnote Positioning Location</xs:documentation>
<choice>
-<!-- Endnotes Positioned at End of Section -->
+ <!-- Endnotes Positioned at End of Section -->
<value>sectEnd</value>
-<!-- Endnotes Positioned at End of Document -->
+ <!-- Endnotes Positioned at End of Document -->
<value>docEnd</value>
</choice>
</list>
@@ -18019,11 +18104,11 @@
<list>
<xs:documentation>Footnote/Endnote Numbering Restart Locations</xs:documentation>
<choice>
-<!-- Continue Numbering From Previous Section -->
+ <!-- Continue Numbering From Previous Section -->
<value>continuous</value>
-<!-- Restart Numbering For Each Section -->
+ <!-- Restart Numbering For Each Section -->
<value>eachSect</value>
-<!-- Restart Numbering On Each Page -->
+ <!-- Restart Numbering On Each Page -->
<value>eachPage</value>
</choice>
</list>
@@ -18191,23 +18276,23 @@
<list>
<xs:documentation>Mail Merge ODSO Data Source Types</xs:documentation>
<choice>
-<!-- Database Data Source -->
+ <!-- Database Data Source -->
<value>database</value>
-<!-- Address Book Data Source -->
+ <!-- Address Book Data Source -->
<value>addressBook</value>
-<!-- Alternate Document Format Data Source -->
+ <!-- Alternate Document Format Data Source -->
<value>document1</value>
-<!-- Alternate Document Format Data Source Two -->
+ <!-- Alternate Document Format Data Source Two -->
<value>document2</value>
-<!-- Text File Data Source -->
+ <!-- Text File Data Source -->
<value>text</value>
-<!-- E-Mail Program Data Source -->
+ <!-- E-Mail Program Data Source -->
<value>email</value>
-<!-- Native Data Souce -->
+ <!-- Native Data Souce -->
<value>native</value>
-<!-- Legacy Document Format Data Source -->
+ <!-- Legacy Document Format Data Source -->
<value>legacy</value>
-<!-- Aggregate Data Source -->
+ <!-- Aggregate Data Source -->
<value>master</value>
</choice>
</list>
@@ -18342,27 +18427,27 @@
<list>
<xs:documentation>Target Screen Sizes for Generated Web Pages</xs:documentation>
<choice>
-<!-- Optimize for 544x376 -->
+ <!-- Optimize for 544x376 -->
<value>544x376</value>
-<!-- Optimize for 640x480 -->
+ <!-- Optimize for 640x480 -->
<value>640x480</value>
-<!-- Optimize for 720x512 -->
+ <!-- Optimize for 720x512 -->
<value>720x512</value>
-<!-- Optimize for 800x600 -->
+ <!-- Optimize for 800x600 -->
<value>800x600</value>
-<!-- Optimize for 1024x768 -->
+ <!-- Optimize for 1024x768 -->
<value>1024x768</value>
-<!-- Optimize for 1152x882 -->
+ <!-- Optimize for 1152x882 -->
<value>1152x882</value>
-<!-- Optimize for 1152x900 -->
+ <!-- Optimize for 1152x900 -->
<value>1152x900</value>
-<!-- Optimize for 1280x1024 -->
+ <!-- Optimize for 1280x1024 -->
<value>1280x1024</value>
-<!-- Optimize for 1600x1200 -->
+ <!-- Optimize for 1600x1200 -->
<value>1600x1200</value>
-<!-- Optimize for 1800x1440 -->
+ <!-- Optimize for 1800x1440 -->
<value>1800x1440</value>
-<!-- Optimize for 1920x1200 -->
+ <!-- Optimize for 1920x1200 -->
<value>1920x1200</value>
</choice>
</list>
@@ -18733,11 +18818,11 @@
<list>
<xs:documentation>Character-Level Whitespace Compression Settings</xs:documentation>
<choice>
-<!-- Do Not Compress Whitespace -->
+ <!-- Do Not Compress Whitespace -->
<value>doNotCompress</value>
-<!-- Compress Whitespace From Punctuation Characters -->
+ <!-- Compress Whitespace From Punctuation Characters -->
<value>compressPunctuation</value>
-<!-- Compress Whitespace From Both Japanese Kana And Punctuation Characters -->
+ <!-- Compress Whitespace From Both Japanese Kana And Punctuation Characters -->
<value>compressPunctuationAndJapaneseKana</value>
</choice>
</list>
@@ -18791,29 +18876,29 @@
<list>
<xs:documentation>Theme Color Reference</xs:documentation>
<choice>
-<!-- Dark 1 Theme Color Reference -->
+ <!-- Dark 1 Theme Color Reference -->
<value>dark1</value>
-<!-- Light 1 Theme Color Reference -->
+ <!-- Light 1 Theme Color Reference -->
<value>light1</value>
-<!-- Dark 2 Theme Color Reference -->
+ <!-- Dark 2 Theme Color Reference -->
<value>dark2</value>
-<!-- Light 2 Theme Color Reference -->
+ <!-- Light 2 Theme Color Reference -->
<value>light2</value>
-<!-- Accent 1 Theme Color Reference -->
+ <!-- Accent 1 Theme Color Reference -->
<value>accent1</value>
-<!-- Accent 2 Theme Color Reference -->
+ <!-- Accent 2 Theme Color Reference -->
<value>accent2</value>
-<!-- Accent 3 Theme Color Reference -->
+ <!-- Accent 3 Theme Color Reference -->
<value>accent3</value>
-<!-- Accent4 Theme Color Reference -->
+ <!-- Accent4 Theme Color Reference -->
<value>accent4</value>
-<!-- Accent5 Theme Color Reference -->
+ <!-- Accent5 Theme Color Reference -->
<value>accent5</value>
-<!-- Accent 6 Theme Color Reference -->
+ <!-- Accent 6 Theme Color Reference -->
<value>accent6</value>
-<!-- Hyperlink Theme Color Reference -->
+ <!-- Hyperlink Theme Color Reference -->
<value>hyperlink</value>
-<!-- Followed Hyperlink Theme Color Reference -->
+ <!-- Followed Hyperlink Theme Color Reference -->
<value>followedHyperlink</value>
</choice>
</list>
@@ -19459,11 +19544,11 @@
<list>
<xs:documentation>Frame Scrollbar Visibility</xs:documentation>
<choice>
-<!-- Always Show Scrollbar -->
+ <!-- Always Show Scrollbar -->
<value>on</value>
-<!-- Never Show Scrollbar -->
+ <!-- Never Show Scrollbar -->
<value>off</value>
-<!-- Automatically Show Scrollbar As Needed -->
+ <!-- Automatically Show Scrollbar As Needed -->
<value>auto</value>
</choice>
</list>
@@ -19520,11 +19605,11 @@
<list>
<xs:documentation>Frameset Layout Order</xs:documentation>
<choice>
-<!-- Stack Frames Vertically -->
+ <!-- Stack Frames Vertically -->
<value>rows</value>
-<!-- Stack Frames Horizontally -->
+ <!-- Stack Frames Horizontally -->
<value>cols</value>
-<!-- Do Not Stack Frames -->
+ <!-- Do Not Stack Frames -->
<value>none</value>
</choice>
</list>
@@ -19601,11 +19686,11 @@
<list>
<xs:documentation>Content Between Numbering Symbol and Paragraph Text</xs:documentation>
<choice>
-<!-- Tab Between Numbering and Text -->
+ <!-- Tab Between Numbering and Text -->
<value>tab</value>
-<!-- Space Between Numbering and Text -->
+ <!-- Space Between Numbering and Text -->
<value>space</value>
-<!-- Nothing Between Numbering and Text -->
+ <!-- Nothing Between Numbering and Text -->
<value>nothing</value>
</choice>
</list>
@@ -19734,11 +19819,11 @@
<list>
<xs:documentation>Numbering Definition Type</xs:documentation>
<choice>
-<!-- Single Level Numbering Definition -->
+ <!-- Single Level Numbering Definition -->
<value>singleLevel</value>
-<!-- Multilevel Numbering Definition -->
+ <!-- Multilevel Numbering Definition -->
<value>multilevel</value>
-<!-- Hybrid Multilevel Numbering Definition -->
+ <!-- Hybrid Multilevel Numbering Definition -->
<value>hybridMultilevel</value>
</choice>
</list>
@@ -19852,31 +19937,31 @@
<list>
<xs:documentation>Conditional Table Style Formatting Types</xs:documentation>
<choice>
-<!-- Whole table formatting -->
+ <!-- Whole table formatting -->
<value>wholeTable</value>
-<!-- First Row Conditional Formatting -->
+ <!-- First Row Conditional Formatting -->
<value>firstRow</value>
-<!-- Last table row formatting -->
+ <!-- Last table row formatting -->
<value>lastRow</value>
-<!-- First Column Conditional Formatting -->
+ <!-- First Column Conditional Formatting -->
<value>firstCol</value>
-<!-- Last table column formatting -->
+ <!-- Last table column formatting -->
<value>lastCol</value>
-<!-- Banded Column Conditional Formatting -->
+ <!-- Banded Column Conditional Formatting -->
<value>band1Vert</value>
-<!-- Even Column Stripe Conditional Formatting -->
+ <!-- Even Column Stripe Conditional Formatting -->
<value>band2Vert</value>
-<!-- Banded Row Conditional Formatting -->
+ <!-- Banded Row Conditional Formatting -->
<value>band1Horz</value>
-<!-- Even Row Stripe Conditional Formatting -->
+ <!-- Even Row Stripe Conditional Formatting -->
<value>band2Horz</value>
-<!-- Top right table cell formatting -->
+ <!-- Top right table cell formatting -->
<value>neCell</value>
-<!-- Top left table cell formatting -->
+ <!-- Top left table cell formatting -->
<value>nwCell</value>
-<!-- Bottom right table cell formatting -->
+ <!-- Bottom right table cell formatting -->
<value>seCell</value>
-<!-- Bottom left table cell formatting -->
+ <!-- Bottom left table cell formatting -->
<value>swCell</value>
</choice>
</list>
@@ -19927,13 +20012,13 @@
<list>
<xs:documentation>Style Types</xs:documentation>
<choice>
-<!-- Paragraph Style -->
+ <!-- Paragraph Style -->
<value>paragraph</value>
-<!-- Character Style -->
+ <!-- Character Style -->
<value>character</value>
-<!-- Table Style -->
+ <!-- Table Style -->
<value>table</value>
-<!-- Numbering Style -->
+ <!-- Numbering Style -->
<value>numbering</value>
</choice>
</list>
@@ -20166,17 +20251,17 @@
<list>
<xs:documentation>Font Family Value</xs:documentation>
<choice>
-<!-- Novelty Font -->
+ <!-- Novelty Font -->
<value>decorative</value>
-<!-- Monospace Font -->
+ <!-- Monospace Font -->
<value>modern</value>
-<!-- Proportional Font With Serifs -->
+ <!-- Proportional Font With Serifs -->
<value>roman</value>
-<!-- Script Font -->
+ <!-- Script Font -->
<value>script</value>
-<!-- Proportional Font Without Serifs -->
+ <!-- Proportional Font Without Serifs -->
<value>swiss</value>
-<!-- No Font Family -->
+ <!-- No Font Family -->
<value>auto</value>
</choice>
</list>
@@ -20191,11 +20276,11 @@
<list>
<xs:documentation>Font Pitch Value</xs:documentation>
<choice>
-<!-- Fixed Width -->
+ <!-- Fixed Width -->
<value>fixed</value>
-<!-- Proportional Width -->
+ <!-- Proportional Width -->
<value>variable</value>
-<!-- Default -->
+ <!-- Default -->
<value>default</value>
</choice>
</list>
@@ -20540,39 +20625,39 @@
<list>
<xs:documentation>Theme Color</xs:documentation>
<choice>
-<!-- Dark 1 Theme Color -->
+ <!-- Dark 1 Theme Color -->
<value>dark1</value>
-<!-- Light 1 Theme Color -->
+ <!-- Light 1 Theme Color -->
<value>light1</value>
-<!-- Dark 2 Theme Color -->
+ <!-- Dark 2 Theme Color -->
<value>dark2</value>
-<!-- Light 2 Theme Color -->
+ <!-- Light 2 Theme Color -->
<value>light2</value>
-<!-- Accent 1 Theme Color -->
+ <!-- Accent 1 Theme Color -->
<value>accent1</value>
-<!-- Accent 2 Theme Color -->
+ <!-- Accent 2 Theme Color -->
<value>accent2</value>
-<!-- Accent 3 Theme Color -->
+ <!-- Accent 3 Theme Color -->
<value>accent3</value>
-<!-- Accent 4 Theme Color -->
+ <!-- Accent 4 Theme Color -->
<value>accent4</value>
-<!-- Accent 5 Theme Color -->
+ <!-- Accent 5 Theme Color -->
<value>accent5</value>
-<!-- Accent 6 Theme Color -->
+ <!-- Accent 6 Theme Color -->
<value>accent6</value>
-<!-- Hyperlink Theme Color -->
+ <!-- Hyperlink Theme Color -->
<value>hyperlink</value>
-<!-- Followed Hyperlink Theme Color -->
+ <!-- Followed Hyperlink Theme Color -->
<value>followedHyperlink</value>
-<!-- No Theme Color -->
+ <!-- No Theme Color -->
<value>none</value>
-<!-- Background 1 Theme Color -->
+ <!-- Background 1 Theme Color -->
<value>background1</value>
-<!-- Text 1 Theme Color -->
+ <!-- Text 1 Theme Color -->
<value>text1</value>
-<!-- Background 2 Theme Color -->
+ <!-- Background 2 Theme Color -->
<value>background2</value>
-<!-- Text 2 Theme Color -->
+ <!-- Text 2 Theme Color -->
<value>text2</value>
</choice>
</list>
@@ -20581,11 +20666,11 @@
<list>
<xs:documentation>Insertion Behavior Types</xs:documentation>
<choice>
-<!-- Insert Content At Specified Location -->
+ <!-- Insert Content At Specified Location -->
<value>content</value>
-<!-- Ensure Entry Is In New Paragraph -->
+ <!-- Ensure Entry Is In New Paragraph -->
<value>p</value>
-<!-- Ensure Entry Is On New Page -->
+ <!-- Ensure Entry Is On New Page -->
<value>pg</value>
</choice>
</list>
@@ -20607,19 +20692,19 @@
<list>
<xs:documentation>Entry Types</xs:documentation>
<choice>
-<!-- No Type -->
+ <!-- No Type -->
<value>none</value>
-<!-- Normal -->
+ <!-- Normal -->
<value>normal</value>
-<!-- Automatically Replace Name With Content -->
+ <!-- Automatically Replace Name With Content -->
<value>autoExp</value>
-<!-- AutoText User Interface Entry -->
+ <!-- AutoText User Interface Entry -->
<value>toolbar</value>
-<!-- AutoCorrect Entry -->
+ <!-- AutoCorrect Entry -->
<value>speller</value>
-<!-- Form Field Help Text -->
+ <!-- Form Field Help Text -->
<value>formFld</value>
-<!-- Structured Document Tag Placeholder Text -->
+ <!-- Structured Document Tag Placeholder Text -->
<value>bbPlcHdr</value>
</choice>
</list>
@@ -20647,81 +20732,81 @@
<list>
<xs:documentation>Entry Gallery Types</xs:documentation>
<choice>
-<!-- Structured Document Tag Placeholder Text Gallery -->
+ <!-- Structured Document Tag Placeholder Text Gallery -->
<value>placeholder</value>
-<!-- All Galleries -->
+ <!-- All Galleries -->
<value>any</value>
-<!-- No Gallery Classification -->
+ <!-- No Gallery Classification -->
<value>default</value>
-<!-- Document Parts Gallery -->
+ <!-- Document Parts Gallery -->
<value>docParts</value>
-<!-- Cover Page Gallery -->
+ <!-- Cover Page Gallery -->
<value>coverPg</value>
-<!-- Equations Gallery -->
+ <!-- Equations Gallery -->
<value>eq</value>
-<!-- Footers Gallery -->
+ <!-- Footers Gallery -->
<value>ftrs</value>
-<!-- Headers Gallery -->
+ <!-- Headers Gallery -->
<value>hdrs</value>
-<!-- Page Numbers Gallery -->
+ <!-- Page Numbers Gallery -->
<value>pgNum</value>
-<!-- Table Gallery -->
+ <!-- Table Gallery -->
<value>tbls</value>
-<!-- Watermark Gallery -->
+ <!-- Watermark Gallery -->
<value>watermarks</value>
-<!-- AutoText Gallery -->
+ <!-- AutoText Gallery -->
<value>autoTxt</value>
-<!-- Text Box Gallery -->
+ <!-- Text Box Gallery -->
<value>txtBox</value>
-<!-- Page Numbers At Top Gallery -->
+ <!-- Page Numbers At Top Gallery -->
<value>pgNumT</value>
-<!-- Page Numbers At Bottom Gallery -->
+ <!-- Page Numbers At Bottom Gallery -->
<value>pgNumB</value>
-<!-- Page Numbers At Margins Gallery -->
+ <!-- Page Numbers At Margins Gallery -->
<value>pgNumMargins</value>
-<!-- Table of Contents Gallery -->
+ <!-- Table of Contents Gallery -->
<value>tblOfContents</value>
-<!-- Bibliography Gallery -->
+ <!-- Bibliography Gallery -->
<value>bib</value>
-<!-- Custom Quick Parts Gallery -->
+ <!-- Custom Quick Parts Gallery -->
<value>custQuickParts</value>
-<!-- Custom Cover Page Gallery -->
+ <!-- Custom Cover Page Gallery -->
<value>custCoverPg</value>
-<!-- Custom Equation Gallery -->
+ <!-- Custom Equation Gallery -->
<value>custEq</value>
-<!-- Custom Footer Gallery -->
+ <!-- Custom Footer Gallery -->
<value>custFtrs</value>
-<!-- Custom Header Gallery -->
+ <!-- Custom Header Gallery -->
<value>custHdrs</value>
-<!-- Custom Page Number Gallery -->
+ <!-- Custom Page Number Gallery -->
<value>custPgNum</value>
-<!-- Custom Table Gallery -->
+ <!-- Custom Table Gallery -->
<value>custTbls</value>
-<!-- Custom Watermark Gallery -->
+ <!-- Custom Watermark Gallery -->
<value>custWatermarks</value>
-<!-- Custom AutoText Gallery -->
+ <!-- Custom AutoText Gallery -->
<value>custAutoTxt</value>
-<!-- Custom Text Box Gallery -->
+ <!-- Custom Text Box Gallery -->
<value>custTxtBox</value>
-<!-- Custom Page Number At Top Gallery -->
+ <!-- Custom Page Number At Top Gallery -->
<value>custPgNumT</value>
-<!-- Custom Page Number At Bottom Gallery -->
+ <!-- Custom Page Number At Bottom Gallery -->
<value>custPgNumB</value>
-<!-- Custom Page Number At Margins Gallery -->
+ <!-- Custom Page Number At Margins Gallery -->
<value>custPgNumMargins</value>
-<!-- Custom Table of Contents Gallery -->
+ <!-- Custom Table of Contents Gallery -->
<value>custTblOfContents</value>
-<!-- Custom Bibliography Gallery -->
+ <!-- Custom Bibliography Gallery -->
<value>custBib</value>
-<!-- Custom 1 Gallery -->
+ <!-- Custom 1 Gallery -->
<value>custom1</value>
-<!-- Custom 2 Gallery -->
+ <!-- Custom 2 Gallery -->
<value>custom2</value>
-<!-- Custom 3 Gallery -->
+ <!-- Custom 3 Gallery -->
<value>custom3</value>
-<!-- Custom 4 Gallery -->
+ <!-- Custom 4 Gallery -->
<value>custom4</value>
-<!-- Custom 5 Gallery -->
+ <!-- Custom 5 Gallery -->
<value>custom5</value>
</choice>
</list>
@@ -20827,13 +20912,13 @@
<list>
<xs:documentation>Automatic Caption Positioning Values</xs:documentation>
<choice>
-<!-- Position Caption Above Object -->
+ <!-- Position Caption Above Object -->
<value>above</value>
-<!-- Position Caption Below Object -->
+ <!-- Position Caption Below Object -->
<value>below</value>
-<!-- Position Caption Left Of Object -->
+ <!-- Position Caption Left Of Object -->
<value>left</value>
-<!-- Position Caption Right Of Object -->
+ <!-- Position Caption Right Of Object -->
<value>right</value>
</choice>
</list>
@@ -20963,35 +21048,74 @@
<action name="end" tokenid="ooxml:EG_RunInnerContent_cr" action="cr"/>
</resource>
<resource name="ST_OnOff" resource="Boolean"/>
- <resource name="CT_OnOff" resource="BooleanValue"/>
+ <resource name="CT_OnOff" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_OnOff_val" action="setValue"/>
+ <action name="start" action="setDefaultBooleanValue"/>
+ </resource>
<resource name="ST_LongHexNumber" resource="Hex"/>
- <resource name="CT_LongHexNumber" resource="HexValue"/>
+ <resource name="CT_LongHexNumber" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_LongHexNumber_val" action="setValue"/>
+ <action name="start" action="setDefaultHexValue"/>
+ </resource>
<resource name="ST_ShortHexNumber" resource="Hex"/>
- <resource name="CT_ShortHexNumber" resource="IntegerValue"/>
+ <resource name="CT_ShortHexNumber" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_ShortHexNumber_val" action="setValue"/>
+ <action name="start" action="setDefaultHexValue"/>
+ </resource>
<resource name="ST_UcharHexNumber" resource="Hex"/>
- <resource name="CT_UcharHexNumber" resource="HexValue"/>
+ <resource name="CT_UcharHexNumber" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_UcharHexNumber_val" action="setValue"/>
+ <action name="start" action="setDefaultHexValue"/>
+ </resource>
<resource name="ST_DecimalNumber" resource="Integer"/>
- <resource name="CT_DecimalNumber" resource="IntegerValue"/>
+ <resource name="CT_DecimalNumber" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_DecimalNumber_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
<resource name="ST_UnsignedDecimalNumber" resource="Integer" generated="yes"/>
<resource name="ST_TwipsMeasure" resource="Integer"/>
- <resource name="CT_TwipsMeasure" resource="IntegerValue"/>
+ <resource name="CT_TwipsMeasure" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_TwipsMeasure_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
<resource name="ST_SignedTwipsMeasure" resource="Integer"/>
- <resource name="CT_SignedTwipsMeasure" resource="IntegerValue"/>
+ <resource name="CT_SignedTwipsMeasure" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_SignedTwipsMeasure_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
<resource name="ST_PixelsMeasure" resource="Integer" generated="yes"/>
- <resource name="CT_PixelsMeasure" resource="IntegerValue"/>
+ <resource name="CT_PixelsMeasure" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_PixelsMeasure_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
<resource name="ST_HpsMeasure" resource="Integer"/>
- <resource name="CT_HpsMeasure" resource="IntegerValue"/>
+ <resource name="CT_HpsMeasure" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_HpsMeasure_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
<resource name="ST_SignedHpsMeasure" resource="Integer"/>
- <resource name="CT_SignedHpsMeasure" resource="IntegerValue"/>
+ <resource name="CT_SignedHpsMeasure" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_SignedHpsMeasure_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
<resource name="ST_DateTime" resource="String" generated="yes"/>
<resource name="ST_MacroName" resource="String" generated="yes"/>
- <resource name="CT_MacroName" resource="StringValue" generated="yes"/>
+ <resource name="CT_MacroName" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_MacroName_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_EighthPointMeasure" resource="Integer"/>
<resource name="ST_PointMeasure" resource="Integer"/>
<resource name="ST_String" resource="String"/>
- <resource name="CT_String" resource="StringValue"/>
+ <resource name="CT_String" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_String_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_TextScale" resource="Integer"/>
- <resource name="CT_TextScale" resource="IntegerValue"/>
+ <resource name="CT_TextScale" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_TextScale_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
<resource name="ST_HighlightColor" resource="List">
<value tokenid="1">black</value>
<value tokenid="2">blue</value>
@@ -21011,8 +21135,8 @@
<value tokenid="16">lightGray</value>
<value tokenid="0">none</value>
</resource>
- <resource name="CT_Highlight" resource="ListValue">
- <attribute name="val" tokenid="ooxml:CT_Highlight_val"/>
+ <resource name="CT_Highlight" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_Highlight_val" action="setValue"/>
</resource>
<resource name="ST_HexColorAuto" resource="List">
<value tokenid="ooxml:Value_ST_HexColorAuto_auto">auto</value>
@@ -21027,12 +21151,14 @@
</resource>
<resource name="ST_LangCode" resource="Hex" generated="yes"/>
<resource name="ST_Lang" resource="String"/>
- <resource name="CT_Lang" resource="StringValue">
- <attribute name="val" tokenid="ooxml:CT_Lang_val"/>
+ <resource name="CT_Lang" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_Lang_val" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
</resource>
<resource name="ST_Guid" resource="String"/>
- <resource name="CT_Guid" resource="StringValue">
- <attribute name="val" tokenid="ooxml:CT_Guid_val"/>
+ <resource name="CT_Guid" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_Guid_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
</resource>
<resource name="ST_Underline" resource="List">
<value tokenid="1">single</value>
@@ -21070,8 +21196,8 @@
<value tokenid="5">antsRed</value>
<value tokenid="6">shimmer</value>
</resource>
- <resource name="CT_TextEffect" resource="ListValue">
- <attribute name="val" tokenid="ooxml:CT_TextEffect_val"/>
+ <resource name="CT_TextEffect" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_TextEffect_val" action="setValue"/>
</resource>
<resource name="ST_Border" resource="List">
<value tokenid="255">nil</value>
@@ -21333,8 +21459,14 @@
<value name="superscript" tokenid="ooxml:Value_wordprocessingml_ST_VerticalAlignRun_superscript">superscript</value>
<value name="subscript" tokenid="ooxml:Value_wordprocessingml_ST_VerticalAlignRun_subscript">subscript</value>
</resource>
- <resource name="CT_VerticalAlignRun" resource="StringValue" generated="yes"/>
- <resource name="CT_FitText" resource="StringValue" generated="yes"/>
+ <resource name="CT_VerticalAlignRun" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_VerticalAlignRun_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
+ <resource name="CT_FitText" resource="Properties">
+ <attribute name="val" tokenid="ooxml:CT_FitText_val"/>
+ <attribute name="id" tokenid="ooxml:CT_FitText_id"/>
+ </resource>
<resource name="ST_Em" resource="List">
<value tokenid="0">none</value>
<value tokenid="1">dot</value>
@@ -21342,8 +21474,8 @@
<value tokenid="3">circle</value>
<value tokenid="4">underDot</value>
</resource>
- <resource name="CT_Em" resource="ListValue">
- <attribute name="val" tokenid="ooxml:CT_Em_val"/>
+ <resource name="CT_Em" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_Em_val" action="setValue"/>
</resource>
<resource name="CT_Language" resource="Properties">
<attribute name="val" tokenid="ooxml:CT_Language_val"/>
@@ -21484,8 +21616,8 @@
<value tokenid="ooxml:Value_ST_Jc_lowKashida">lowKashida</value>
<value tokenid="ooxml:Value_ST_Jc_thaiDistribute">thaiDistribute</value>
</resource>
- <resource name="CT_Jc" resource="ListValue">
- <attribute name="val" tokenid="ooxml:CT_Jc_val"/>
+ <resource name="CT_Jc" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_Jc_val" action="setValue"/>
</resource>
<resource name="ST_View" resource="List" generated="yes">
<value name="none" tokenid="ooxml:Value_wordprocessingml_ST_View_none">none</value>
@@ -21576,7 +21708,10 @@
<value name="email" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeDocType_email">email</value>
<value name="fax" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeDocType_fax">fax</value>
</resource>
- <resource name="CT_MailMergeDocType" resource="StringValue" generated="yes"/>
+ <resource name="CT_MailMergeDocType" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_MailMergeDocType_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_MailMergeDataType" resource="List" generated="yes">
<value name="textFile" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeDataType_textFile">textFile</value>
<value name="database" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeDataType_database">database</value>
@@ -21585,19 +21720,28 @@
<value name="odbc" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeDataType_odbc">odbc</value>
<value name="native" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeDataType_native">native</value>
</resource>
- <resource name="CT_MailMergeDataType" resource="StringValue" generated="yes"/>
+ <resource name="CT_MailMergeDataType" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_MailMergeDataType_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_MailMergeDest" resource="List" generated="yes">
<value name="newDocument" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeDest_newDocument">newDocument</value>
<value name="printer" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeDest_printer">printer</value>
<value name="email" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeDest_email">email</value>
<value name="fax" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeDest_fax">fax</value>
</resource>
- <resource name="CT_MailMergeDest" resource="StringValue" generated="yes"/>
+ <resource name="CT_MailMergeDest" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_MailMergeDest_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_MailMergeOdsoFMDFieldType" resource="List" generated="yes">
<value name="null" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeOdsoFMDFieldType_null">null</value>
<value name="dbColumn" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeOdsoFMDFieldType_dbColumn">dbColumn</value>
</resource>
- <resource name="CT_MailMergeOdsoFMDFieldType" resource="StringValue" generated="yes"/>
+ <resource name="CT_MailMergeOdsoFMDFieldType" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_MailMergeOdsoFMDFieldType_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="CT_TrackChangesView" resource="Properties">
<attribute name="markup" tokenid="ooxml:CT_TrackChangesView_markup"/>
<attribute name="comments" tokenid="ooxml:CT_TrackChangesView_comments"/>
@@ -21617,7 +21761,9 @@
<value tokenid="ooxml:Value_ST_TextDirection_tbRlV">tbRlV</value>
<value tokenid="ooxml:Value_ST_TextDirection_tbLrV">tbLrV</value>
</resource>
- <resource name="CT_TextDirection" resource="ListValue"/>
+ <resource name="CT_TextDirection" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_TextDirection_val" action="setValue"/>
+ </resource>
<resource name="ST_TextAlignment" resource="List" generated="yes">
<value name="top" tokenid="ooxml:Value_wordprocessingml_ST_TextAlignment_top">top</value>
<value name="center" tokenid="ooxml:Value_wordprocessingml_ST_TextAlignment_center">center</value>
@@ -21625,6 +21771,9 @@
<value name="bottom" tokenid="ooxml:Value_wordprocessingml_ST_TextAlignment_bottom">bottom</value>
<value name="auto" tokenid="ooxml:Value_wordprocessingml_ST_TextAlignment_auto">auto</value>
</resource>
+ <resource name="CT_TextAlignment" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_TextAlignment_val" action="setValue"/>
+ </resource>
<resource name="ST_DisplacedByCustomXml" resource="List" generated="yes">
<value name="next" tokenid="ooxml:Value_wordprocessingml_ST_DisplacedByCustomXml_next">next</value>
<value name="prev" tokenid="ooxml:Value_wordprocessingml_ST_DisplacedByCustomXml_prev">prev</value>
@@ -21640,11 +21789,6 @@
<attribute name="author" tokenid="ooxml:CT_TrackChange_author"/>
<attribute name="date" tokenid="ooxml:CT_TrackChange_date"/>
</resource>
- <resource name="CT_ParaTrackChange" resource="Properties">
- <action name="start" action="tokenproperty"/>
- <action name="start" action="propagateCharacterPropertiesAsSet" sendtokenid="ooxml:paratrackchange"/>
- <action name="start" action="clearProps"/>
- </resource>
<resource name="CT_CellMergeTrackChange" resource="Properties">
<attribute name="vMerge" tokenid="ooxml:CT_CellMergeTrackChange_vMerge"/>
<attribute name="vMergeOrig" tokenid="ooxml:CT_CellMergeTrackChange_vMergeOrig"/>
@@ -21737,7 +21881,10 @@
<value name="firstLineOnly" tokenid="ooxml:Value_wordprocessingml_ST_TextboxTightWrap_firstLineOnly">firstLineOnly</value>
<value name="lastLineOnly" tokenid="ooxml:Value_wordprocessingml_ST_TextboxTightWrap_lastLineOnly">lastLineOnly</value>
</resource>
- <resource name="CT_TextboxTightWrap" resource="StringValue" generated="yes"/>
+ <resource name="CT_TextboxTightWrap" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_TextboxTightWrap_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="CT_PPrBase" resource="Properties">
<kind name="paragraph"/>
<element name="pStyle" tokenid="ooxml:CT_PPrBase_pStyle"/>
@@ -21842,8 +21989,14 @@
<value name="currentDate" tokenid="ooxml:Value_wordprocessingml_ST_FFTextType_currentDate">currentDate</value>
<value name="calculated" tokenid="ooxml:Value_wordprocessingml_ST_FFTextType_calculated">calculated</value>
</resource>
- <resource name="CT_FFTextType" resource="StringValue" generated="yes"/>
- <resource name="CT_FFName" resource="StringValue" generated="yes"/>
+ <resource name="CT_FFTextType" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_FFTextType_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
+ <resource name="CT_FFName" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_FFName_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="CT_FldChar" resource="Stream">
<element name="fldData" tokenid="ooxml:CT_FldChar_fldData"/>
<element name="ffData" tokenid="ooxml:CT_FldChar_ffData"/>
@@ -21873,8 +22026,26 @@
<action name="start" action="fieldsep"/>
<action name="end" action="fieldend"/>
</resource>
- <resource name="CT_FFHelpText" resource="StringValue" generated="yes"/>
- <resource name="CT_FFStatusText" resource="StringValue" generated="yes"/>
+ <resource name="CT_FFData" resource="Properties">
+ <element name="name" tokenid="ooxml:CT_FFData_name"/>
+ <element name="enabled" tokenid="ooxml:CT_FFData_enabled"/>
+ <element name="calcOnExit" tokenid="ooxml:CT_FFData_calcOnExit"/>
+ <element name="entryMacro" tokenid="ooxml:CT_FFData_entryMacro"/>
+ <element name="exitMacro" tokenid="ooxml:CT_FFData_exitMacro"/>
+ <element name="helpText" tokenid="ooxml:CT_FFData_helpText"/>
+ <element name="statusText" tokenid="ooxml:CT_FFData_statusText"/>
+ <element name="checkBox" tokenid="ooxml:CT_FFData_checkBox"/>
+ <element name="ddList" tokenid="ooxml:CT_FFData_ddList"/>
+ <element name="textInput" tokenid="ooxml:CT_FFData_textInput"/>
+ </resource>
+ <resource name="CT_FFHelpText" resource="Properties">
+ <attribute name="type" tokenid="ooxml:CT_FFHelpText_type"/>
+ <attribute name="val" tokenid="ooxml:CT_FFHelpText_val"/>
+ </resource>
+ <resource name="CT_FFStatusText" resource="Properties">
+ <attribute name="type" tokenid="ooxml:CT_FFStatusText_type"/>
+ <attribute name="val" tokenid="ooxml:CT_FFStatusText_val"/>
+ </resource>
<resource name="ST_SectionMark" resource="List">
<value tokenid="0">continuous</value>
<value tokenid="1">nextColumn</value>
@@ -21882,7 +22053,9 @@
<value tokenid="3">evenPage</value>
<value tokenid="4">oddPage</value>
</resource>
- <resource name="CT_SectType" resource="ListValue"/>
+ <resource name="CT_SectType" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_SectType_val" action="setValue"/>
+ </resource>
<resource name="ST_NumberFormat" resource="List">
<value tokenid="ooxml:Value_ST_NumberFormat_decimal">decimal</value>
<value tokenid="ooxml:Value_ST_NumberFormat_upperRoman">upperRoman</value>
@@ -22027,7 +22200,9 @@
<value tokenid="2">both</value>
<value tokenid="3">bottom</value>
</resource>
- <resource name="CT_VerticalJc" resource="ListValue"/>
+ <resource name="CT_VerticalJc" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_VerticalJc_val" action="setValue"/>
+ </resource>
<resource name="ST_DocGrid" resource="List" generated="yes">
<value name="default" tokenid="ooxml:Value_wordprocessingml_ST_DocGrid_default">default</value>
<value name="lines" tokenid="ooxml:Value_wordprocessingml_ST_DocGrid_lines">lines</value>
@@ -22282,6 +22457,11 @@
<element name="del" tokenid="ooxml:CT_ParaRPr_del"/>
<element name="rPrChange" tokenid="ooxml:CT_ParaRPr_rPrChange"/>
</resource>
+ <resource name="CT_ParaTrackChange" resource="Properties">
+ <action name="start" action="tokenproperty"/>
+ <action name="start" action="propagateCharacterPropertiesAsSet" sendtokenid="ooxml:paratrackchange"/>
+ <action name="start" action="clearProps"/>
+ </resource>
<resource name="ST_RubyAlign" resource="List" generated="yes">
<value name="center" tokenid="ooxml:Value_wordprocessingml_ST_RubyAlign_center">center</value>
<value name="distributeLetter" tokenid="ooxml:Value_wordprocessingml_ST_RubyAlign_distributeLetter">distributeLetter</value>
@@ -22290,20 +22470,29 @@
<value name="right" tokenid="ooxml:Value_wordprocessingml_ST_RubyAlign_right">right</value>
<value name="rightVertical" tokenid="ooxml:Value_wordprocessingml_ST_RubyAlign_rightVertical">rightVertical</value>
</resource>
- <resource name="CT_RubyAlign" resource="StringValue" generated="yes"/>
+ <resource name="CT_RubyAlign" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_RubyAlign_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_Lock" resource="List" generated="yes">
<value name="sdtLocked" tokenid="ooxml:Value_wordprocessingml_ST_Lock_sdtLocked">sdtLocked</value>
<value name="contentLocked" tokenid="ooxml:Value_wordprocessingml_ST_Lock_contentLocked">contentLocked</value>
<value name="unlocked" tokenid="ooxml:Value_wordprocessingml_ST_Lock_unlocked">unlocked</value>
<value name="sdtContentLocked" tokenid="ooxml:Value_wordprocessingml_ST_Lock_sdtContentLocked">sdtContentLocked</value>
</resource>
- <resource name="CT_Lock" resource="StringValue" generated="yes"/>
+ <resource name="CT_Lock" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_Lock_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_SdtDateMappingType" resource="List" generated="yes">
<value name="text" tokenid="ooxml:Value_wordprocessingml_ST_SdtDateMappingType_text">text</value>
<value name="date" tokenid="ooxml:Value_wordprocessingml_ST_SdtDateMappingType_date">date</value>
<value name="dateTime" tokenid="ooxml:Value_wordprocessingml_ST_SdtDateMappingType_dateTime">dateTime</value>
</resource>
- <resource name="CT_SdtDateMappingType" resource="StringValue" generated="yes"/>
+ <resource name="CT_SdtDateMappingType" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_SdtDateMappingType_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_CalendarType" resource="List" generated="yes">
<value name="gregorian" tokenid="ooxml:Value_wordprocessingml_ST_CalendarType_gregorian">gregorian</value>
<value name="hijri" tokenid="ooxml:Value_wordprocessingml_ST_CalendarType_hijri">hijri</value>
@@ -22316,9 +22505,16 @@
<value name="gregorianXlitEnglish" tokenid="ooxml:Value_wordprocessingml_ST_CalendarType_gregorianXlitEnglish">gregorianXlitEnglish</value>
<value name="gregorianXlitFrench" tokenid="ooxml:Value_wordprocessingml_ST_CalendarType_gregorianXlitFrench">gregorianXlitFrench</value>
</resource>
- <resource name="CT_CalendarType" resource="StringValue" generated="yes"/>
+ <resource name="CT_CalendarType" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_CalendarType_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="CT_SdtContentRun" resource="Properties"/>
- <resource name="CT_Attr" resource="StringValue" generated="yes"/>
+ <resource name="CT_Attr" resource="Properties">
+ <attribute name="uri" tokenid="ooxml:CT_Attr_uri"/>
+ <attribute name="name" tokenid="ooxml:CT_Attr_name"/>
+ <attribute name="val" tokenid="ooxml:CT_Attr_val"/>
+ </resource>
<resource name="CT_CustomXmlRun" resource="Properties">
<element name="customXmlPr" tokenid="ooxml:CT_CustomXmlRun_customXmlPr"/>
<attribute name="uri" tokenid="ooxml:CT_CustomXmlRun_uri"/>
@@ -22355,13 +22551,16 @@
<attribute name="w" tokenid="ooxml:CT_TblWidth_w"/>
<attribute name="type" tokenid="ooxml:CT_TblWidth_type"/>
</resource>
- <resource name="CT_TblGridCol" resource="IntegerValue"/>
+ <resource name="CT_TblGridCol" resource="Value">
+ <attribute name="w" tokenid="ooxml:CT_TblGridCol_w" action="setValue"/>
+ <action name="start" action="setDefaultIntegerValue"/>
+ </resource>
<resource name="CT_TblGridBase" resource="Properties">
<element name="gridCol" tokenid="ooxml:CT_TblGridBase_gridCol"/>
</resource>
<resource name="CT_TblGrid" resource="Properties">
<element name="tblGridChange" tokenid="ooxml:CT_TblGrid_tblGridChange"/>
- <action name="end" action="propagateCharacterProperties"/>
+ <action name="end" action="propagateTableProperties"/>
<action name="end" action="clearProps"/>
</resource>
<resource name="CT_TcBorders" resource="Properties">
@@ -22387,11 +22586,11 @@
<value tokenid="ooxml:Value_ST_Merge_restart">restart</value>
<default tokenid="ooxml:Value_ST_Merge_continue"/>
</resource>
- <resource name="CT_VMerge" resource="ListValue">
- <default tokenid="ooxml:Value_ST_Merge_continue"/>
+ <resource name="CT_VMerge" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_VMerge_val" action="setValue"/>
</resource>
- <resource name="CT_HMerge" resource="ListValue">
- <default tokenid="ooxml:Value_ST_Merge_continue"/>
+ <resource name="CT_HMerge" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_HMerge_val" action="setValue"/>
</resource>
<resource name="CT_TcPrBase" resource="Properties">
<kind name="table"/>
@@ -22411,17 +22610,21 @@
</resource>
<resource name="CT_TcPr" resource="Properties">
<element name="tcPrChange" tokenid="ooxml:CT_TcPr_tcPrChange"/>
- <action name="end" action="propagateCharacterProperties"/>
+ <action name="end" action="propagateCellProperties"/>
<action name="end" action="clearProps"/>
</resource>
<resource name="CT_TcPrInner" resource="Properties"/>
<resource name="CT_Tc" resource="TextTableCell">
<action name="start" action="startCell"/>
<action name="end" action="endCell"/>
+ <action name="end" action="sendCellProperties"/>
<action name="end" action="endParagraphGroup"/>
</resource>
<resource name="ST_Cnf" resource="String" generated="yes"/>
- <resource name="CT_Cnf" resource="StringValue" generated="yes"/>
+ <resource name="CT_Cnf" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_Cnf_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="CT_TrPrBase" resource="Properties">
<kind name="table"/>
<element name="cnfStyle" tokenid="ooxml:CT_TrPrBase_cnfStyle"/>
@@ -22442,9 +22645,15 @@
<element name="ins" tokenid="ooxml:CT_TrPr_ins"/>
<element name="del" tokenid="ooxml:CT_TrPr_del"/>
<element name="trPrChange" tokenid="ooxml:CT_TrPr_trPrChange"/>
- <action name="end" action="propagateTableProperties"/>
+ <action name="end" action="propagateRowProperties"/>
+ <action name="end" action="clearProps"/>
+ </resource>
+ <resource name="CT_Row" resource="TextTableRow">
+ <action name="start" action="startRow"/>
+ <action name="end" action="sendRowProperties"/>
+ <action name="end" action="sendTableProperties"/>
+ <action name="end" action="endRow"/>
</resource>
- <resource name="CT_Row" resource="TextTableRow"/>
<resource name="ST_TblLayoutType" resource="List" generated="yes">
<value name="fixed" tokenid="ooxml:Value_wordprocessingml_ST_TblLayoutType_fixed">fixed</value>
<value name="autofit" tokenid="ooxml:Value_wordprocessingml_ST_TblLayoutType_autofit">autofit</value>
@@ -22453,7 +22662,9 @@
<value tokenid="ooxml:Value_ST_TblOverlap_never">never</value>
<value tokenid="ooxml:Value_ST_TblOverlap_overlap">overlap</value>
</resource>
- <resource name="CT_TblOverlap" resource="ListValue"/>
+ <resource name="CT_TblOverlap" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_TblOverlap_val" action="setValue"/>
+ </resource>
<resource name="CT_TblCellMar" resource="Properties">
<element name="top" tokenid="ooxml:CT_TblCellMar_top"/>
<element name="left" tokenid="ooxml:CT_TblCellMar_left"/>
@@ -22490,7 +22701,7 @@
<resource name="CT_TblPr" resource="Properties">
<kind name="table"/>
<element name="tblPrChange" tokenid="ooxml:CT_TblPr_tblPrChange"/>
- <action name="end" action="propagateCharacterProperties"/>
+ <action name="end" action="propagateTableProperties"/>
<action name="end" action="clearProps"/>
</resource>
<resource name="CT_Tbl" resource="TextTable"/>
@@ -22500,34 +22711,37 @@
<value tokenid="ooxml:Value_ST_FtnPos_sectEnd">sectEnd</value>
<value tokenid="ooxml:Value_ST_FtnPos_docEnd">docEnd</value>
</resource>
- <resource name="CT_FtnPos" resource="ListValue">
- <attribute name="val" tokenid="ooxml:CT_FtnPos_val"/>
+ <resource name="CT_FtnPos" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_FtnPos_val" action="setValue"/>
</resource>
<resource name="ST_EdnPos" resource="List">
<value tokenid="ooxml:Value_ST_EdnPos_sectEnd">sectEnd</value>
<value tokenid="ooxml:Value_ST_EdnPos_docEnd">docEnd</value>
</resource>
- <resource name="CT_EdnPos" resource="ListValue">
- <attribute name="val" tokenid="ooxml:CT_EdnPos_val"/>
+ <resource name="CT_EdnPos" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_EdnPos_val" action="setValue"/>
</resource>
- <resource name="CT_NumFmt" resource="ListValue">
- <attribute name="val" tokenid="ooxml:CT_NumFmt_val"/>
+ <resource name="CT_NumFmt" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_NumFmt_val" action="setValue"/>
</resource>
<resource name="ST_RestartNumber" resource="List">
<value tokenid="ooxml:Value_ST_RestartNumber_continuous">continuous</value>
<value tokenid="ooxml:Value_ST_RestartNumber_eachSect">eachSect</value>
<value tokenid="ooxml:Value_ST_RestartNumber_eachPage">eachPage</value>
</resource>
- <resource name="CT_NumRestart" resource="ListValue">
- <attribute name="val" tokenid="ooxml:CT_NumRestart_val"/>
+ <resource name="CT_NumRestart" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_NumRestart_val" action="setValue"/>
</resource>
<resource name="CT_FtnEdnRef" resource="Properties">
<attribute name="customMarkFollows" tokenid="ooxml:CT_FtnEdnRef_customMarkFollows"/>
<attribute name="id" tokenid="ooxml:CT_FtnEdnRef_id" action="setXNoteId"/>
<action name="end" action="handleXNotes"/>
</resource>
+ <resource name="CT_FtnEdnSepRef" resource="Properties">
+ <attribute name="id" tokenid="ooxml:CT_FtnEdnSepRef_id"/>
+ </resource>
<resource name="CT_FtnEdn" resource="XNote">
- <attribute name="type" tokenid="ooxml:CT_FtnEdn_type" action="checkXNoteType"/>
+ <attribute name="type" tokenid="ooxml:CT_FtnEdn_type"/>
<attribute name="id" tokenid="ooxml:CT_FtnEdn_id" action="checkId"/>
<action name="start" action="propagateCharacterProperties"/>
<action name="end" action="endSectionGroup"/>
@@ -22564,7 +22778,10 @@
<value name="legacy" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeSourceType_legacy">legacy</value>
<value name="master" tokenid="ooxml:Value_wordprocessingml_ST_MailMergeSourceType_master">master</value>
</resource>
- <resource name="CT_MailMergeSourceType" resource="StringValue" generated="yes"/>
+ <resource name="CT_MailMergeSourceType" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_MailMergeSourceType_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="CT_MailMerge" resource="Properties">
<element name="mainDocumentType" tokenid="ooxml:CT_MailMerge_mainDocumentType"/>
<element name="linkToQuery" tokenid="ooxml:CT_MailMerge_linkToQuery"/>
@@ -22596,7 +22813,10 @@
<value name="1800x1440" tokenid="ooxml:Value_wordprocessingml_ST_TargetScreenSz_1800x1440">1800x1440</value>
<value name="1920x1200" tokenid="ooxml:Value_wordprocessingml_ST_TargetScreenSz_1920x1200">1920x1200</value>
</resource>
- <resource name="CT_TargetScreenSz" resource="StringValue" generated="yes"/>
+ <resource name="CT_TargetScreenSz" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_TargetScreenSz_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="CT_Compat" resource="Properties">
<element name="useSingleBorderforContiguousCells" tokenid="ooxml:CT_Compat_useSingleBorderforContiguousCells"/>
<element name="wpJustification" tokenid="ooxml:CT_Compat_wpJustification"/>
@@ -22664,7 +22884,10 @@
<element name="useAnsiKerningPairs" tokenid="ooxml:CT_Compat_useAnsiKerningPairs"/>
<element name="cachedColBalance" tokenid="ooxml:CT_Compat_cachedColBalance"/>
</resource>
- <resource name="CT_DocVar" resource="StringValue" generated="yes"/>
+ <resource name="CT_DocVar" resource="Properties">
+ <attribute name="name" tokenid="ooxml:CT_DocVar_name"/>
+ <attribute name="val" tokenid="ooxml:CT_DocVar_val"/>
+ </resource>
<resource name="CT_DocRsids" resource="Properties">
<element name="rsidRoot" tokenid="ooxml:CT_DocRsids_rsidRoot"/>
<element name="rsid" tokenid="ooxml:CT_DocRsids_rsid"/>
@@ -22674,7 +22897,10 @@
<value name="compressPunctuation" tokenid="ooxml:Value_wordprocessingml_ST_CharacterSpacing_compressPunctuation">compressPunctuation</value>
<value name="compressPunctuationAndJapaneseKana" tokenid="ooxml:Value_wordprocessingml_ST_CharacterSpacing_compressPunctuationAndJapaneseKana">compressPunctuationAndJapaneseKana</value>
</resource>
- <resource name="CT_CharacterSpacing" resource="StringValue" generated="yes"/>
+ <resource name="CT_CharacterSpacing" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_CharacterSpacing_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="CT_SaveThroughXslt" resource="Properties">
<attribute name="r:id" tokenid="ooxml:CT_SaveThroughXslt_r_id"/>
<attribute name="solutionID" tokenid="ooxml:CT_SaveThroughXslt_solutionID"/>
@@ -22816,19 +23042,28 @@
<value name="off" tokenid="ooxml:Value_wordprocessingml_ST_FrameScrollbar_off">off</value>
<value name="auto" tokenid="ooxml:Value_wordprocessingml_ST_FrameScrollbar_auto">auto</value>
</resource>
- <resource name="CT_FrameScrollbar" resource="StringValue" generated="yes"/>
+ <resource name="CT_FrameScrollbar" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_FrameScrollbar_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_FrameLayout" resource="List" generated="yes">
<value name="rows" tokenid="ooxml:Value_wordprocessingml_ST_FrameLayout_rows">rows</value>
<value name="cols" tokenid="ooxml:Value_wordprocessingml_ST_FrameLayout_cols">cols</value>
<value name="none" tokenid="ooxml:Value_wordprocessingml_ST_FrameLayout_none">none</value>
</resource>
- <resource name="CT_FrameLayout" resource="StringValue" generated="yes"/>
+ <resource name="CT_FrameLayout" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_FrameLayout_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_LevelSuffix" resource="List" generated="yes">
<value name="tab" tokenid="ooxml:Value_wordprocessingml_ST_LevelSuffix_tab">tab</value>
<value name="space" tokenid="ooxml:Value_wordprocessingml_ST_LevelSuffix_space">space</value>
<value name="nothing" tokenid="ooxml:Value_wordprocessingml_ST_LevelSuffix_nothing">nothing</value>
</resource>
- <resource name="CT_LevelSuffix" resource="StringValue" generated="yes"/>
+ <resource name="CT_LevelSuffix" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_LevelSuffix_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="CT_LevelText" resource="Properties">
<attribute name="val" tokenid="ooxml:CT_LevelText_val"/>
<attribute name="null" tokenid="ooxml:CT_LevelText_null"/>
@@ -22848,7 +23083,7 @@
<element name="suff" tokenid="ooxml:CT_Lvl_suff"/>
<element name="lvlText" tokenid="ooxml:CT_Lvl_lvlText"/>
<element name="lvlPicBulletId" tokenid="ooxml:CT_Lvl_lvlPicBulletId"/>
- <element name="legacy" tokenid="rtf:FWORD6"/>
+ <element name="legacy" tokenid="rtf:FCONVERTED"/>
<element name="lvlJc" tokenid="ooxml:CT_Lvl_lvlJc"/>
<element name="pPr" tokenid="ooxml:CT_Lvl_pPr"/>
<element name="rPr" tokenid="ooxml:CT_Lvl_rPr"/>
@@ -22861,7 +23096,9 @@
<value tokenid="ooxml:Value_ST_MultiLevelType_multilevel">multilevel</value>
<value tokenid="ooxml:Value_ST_MultiLevelType_hybridMultilevel">hybridMultilevel</value>
</resource>
- <resource name="CT_MultiLevelType" resource="ListValue"/>
+ <resource name="CT_MultiLevelType" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_MultiLevelType_val" action="setValue"/>
+ </resource>
<resource name="CT_AbstractNum" resource="Properties">
<kind name="paragraph"/>
<element name="nsid" tokenid="rtf:LSID"/>
@@ -22907,12 +23144,6 @@
<value tokenid="12">seCell</value>
<value tokenid="13">swCell</value>
</resource>
- <resource name="ST_StyleType" resource="List">
- <value tokenid="1">paragraph</value>
- <value tokenid="2">character</value>
- <value tokenid="3">table</value>
- <value tokenid="4">numbering</value>
- </resource>
<resource name="CT_Style_tblStylePr" resource="Properties">
<element name="pPr" tokenid="ooxml:CT_PPrBase"/>
<element name="rPr" tokenid="ooxml:EG_RPrBase"/>
@@ -22921,6 +23152,12 @@
<element name="tcPr" tokenid="ooxml:CT_TcPrBase"/>
<attribute name="type" tokenid="ooxml:CT_TblStyleOverrideType"/>
</resource>
+ <resource name="ST_StyleType" resource="List">
+ <value tokenid="1">paragraph</value>
+ <value tokenid="2">character</value>
+ <value tokenid="3">table</value>
+ <value tokenid="4">numbering</value>
+ </resource>
<resource name="CT_Style" resource="Properties">
<element name="name" tokenid="ooxml:CT_Style_name"/>
<element name="aliases" tokenid="ooxml:CT_Style_aliases"/>
@@ -22951,7 +23188,10 @@
</resource>
<resource name="CT_Styles" resource="Table" tokenid="rtf:STYLESHEET"/>
<resource name="ST_Panose" resource="Hex"/>
- <resource name="CT_Panose" resource="HexValue"/>
+ <resource name="CT_Panose" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_Panose_val" action="setValue"/>
+ <action name="start" action="setDefaultHexValue"/>
+ </resource>
<resource name="ST_FontFamily" resource="List">
<value tokenid="ooxml:Value_ST_FontFamily_decorative">decorative</value>
<value tokenid="ooxml:Value_ST_FontFamily_modern">modern</value>
@@ -22960,13 +23200,17 @@
<value tokenid="ooxml:Value_ST_FontFamily_swiss">swiss</value>
<value tokenid="ooxml:Value_ST_FontFamily_auto">auto</value>
</resource>
- <resource name="CT_FontFamily" resource="ListValue"/>
+ <resource name="CT_FontFamily" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_FontFamily_val" action="setValue"/>
+ </resource>
<resource name="ST_Pitch" resource="List">
<value tokenid="ooxml:Value_ST_Pitch_fixed">fixed</value>
<value tokenid="ooxml:Value_ST_Pitch_variable">variable</value>
<value tokenid="ooxml:Value_ST_Pitch_default">default</value>
</resource>
- <resource name="CT_Pitch" resource="ListValue"/>
+ <resource name="CT_Pitch" resource="Value">
+ <attribute name="val" tokenid="ooxml:CT_Pitch_val" action="setValue"/>
+ </resource>
<resource name="CT_FontSig" resource="Properties">
<attribute name="usb0" tokenid="ooxml:CT_FontSig_usb0"/>
<attribute name="usb1" tokenid="ooxml:CT_FontSig_usb1"/>
@@ -23008,7 +23252,7 @@
</resource>
<resource name="CT_Body" resource="Stream">
<action name="start" action="startSectionGroup"/>
-<!--
+ <!--
<action name="start" action="footnoteSeparator"/>
<action name="start" action="footnoteCont"/>
<action name="start" action="endnoteSeparator"/>
@@ -23033,31 +23277,14 @@
<attribute name="strokecolor" tokenid="ooxml:CT_ShapeDefaults_strokecolor"/>
<attribute name="allowincell" tokenid="ooxml:CT_ShapeDefaults_allowincell"/>
</resource>
- <resource name="CT_ShapeDefaults" resource="Properties">
- <element name="" tokenid="ooxml:CT_ShapeDefaults_"/>
- </resource>
- <resource name="CT_ShapeDefaults" resource="Properties">
- <element name="v:fill" tokenid="ooxml:CT_ShapeDefaults_v_fill"/>
- <element name="v:stroke" tokenid="ooxml:CT_ShapeDefaults_v_stroke"/>
- <element name="v:textbox" tokenid="ooxml:CT_ShapeDefaults_v_textbox"/>
- <element name="v:shadow" tokenid="ooxml:CT_ShapeDefaults_v_shadow"/>
- <element name="colormru" tokenid="ooxml:CT_ShapeDefaults_colormru"/>
- <element name="colormenu" tokenid="ooxml:CT_ShapeDefaults_colormenu"/>
- <attribute name="spidmax" tokenid="ooxml:CT_ShapeDefaults_spidmax"/>
- <attribute name="style" tokenid="ooxml:CT_ShapeDefaults_style"/>
- <attribute name="fill" tokenid="ooxml:CT_ShapeDefaults_fill"/>
- <attribute name="fillcolor" tokenid="ooxml:CT_ShapeDefaults_fillcolor"/>
- <attribute name="stroke" tokenid="ooxml:CT_ShapeDefaults_stroke"/>
- <attribute name="strokecolor" tokenid="ooxml:CT_ShapeDefaults_strokecolor"/>
- <attribute name="allowincell" tokenid="ooxml:CT_ShapeDefaults_allowincell"/>
- </resource>
- <resource name="CT_ShapeDefaults" resource="Properties">
- <element name="" tokenid="ooxml:CT_ShapeDefaults_"/>
- </resource>
<resource name="CT_Comments" resource="Stream">
<action name="start" action="startSectionGroup"/>
<action name="end" action="endSectionGroup"/>
</resource>
+ <resource name="CT_Footnotes" resource="Stream"/>
+ <resource name="footnotes" resource="Stream"/>
+ <resource name="CT_Endnotes" resource="Stream"/>
+ <resource name="endnotes" resource="Stream"/>
<resource name="CT_SmartTagType" resource="Properties">
<attribute name="namespaceuri" tokenid="ooxml:CT_SmartTagType_namespaceuri"/>
<attribute name="name" tokenid="ooxml:CT_SmartTagType_name"/>
@@ -23087,7 +23314,10 @@
<value name="p" tokenid="ooxml:Value_wordprocessingml_ST_DocPartBehavior_p">p</value>
<value name="pg" tokenid="ooxml:Value_wordprocessingml_ST_DocPartBehavior_pg">pg</value>
</resource>
- <resource name="CT_DocPartBehavior" resource="StringValue" generated="yes"/>
+ <resource name="CT_DocPartBehavior" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_DocPartBehavior_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_DocPartType" resource="List" generated="yes">
<value name="none" tokenid="ooxml:Value_wordprocessingml_ST_DocPartType_none">none</value>
<value name="normal" tokenid="ooxml:Value_wordprocessingml_ST_DocPartType_normal">normal</value>
@@ -23097,7 +23327,10 @@
<value name="formFld" tokenid="ooxml:Value_wordprocessingml_ST_DocPartType_formFld">formFld</value>
<value name="bbPlcHdr" tokenid="ooxml:Value_wordprocessingml_ST_DocPartType_bbPlcHdr">bbPlcHdr</value>
</resource>
- <resource name="CT_DocPartType" resource="StringValue" generated="yes"/>
+ <resource name="CT_DocPartType" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_DocPartType_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
<resource name="ST_DocPartGallery" resource="List" generated="yes">
<value name="placeholder" tokenid="ooxml:Value_wordprocessingml_ST_DocPartGallery_placeholder">placeholder</value>
<value name="any" tokenid="ooxml:Value_wordprocessingml_ST_DocPartGallery_any">any</value>
@@ -23138,12 +23371,26 @@
<value name="custom4" tokenid="ooxml:Value_wordprocessingml_ST_DocPartGallery_custom4">custom4</value>
<value name="custom5" tokenid="ooxml:Value_wordprocessingml_ST_DocPartGallery_custom5">custom5</value>
</resource>
- <resource name="CT_DocPartGallery" resource="StringValue" generated="yes"/>
- <resource name="CT_DocPartName" resource="StringValue" generated="yes"/>
+ <resource name="CT_DocPartGallery" resource="Value" generated="yes">
+ <attribute name="val" tokenid="ooxml:CT_DocPartGallery_val" action="setValue"/>
+ <action name="start" action="setDefaultStringValue"/>
+ </resource>
+ <resource name="CT_DocPartName" resource="Properties">
+ <attribute name="val" tokenid="ooxml:CT_DocPartName_val"/>
+ <attribute name="decorated" tokenid="ooxml:CT_DocPartName_decorated"/>
+ </resource>
<resource name="settings" resource="Stream">
<element name="settings" tokenid="ooxml:settings_settings"/>
</resource>
- <resource name="numbering" resource="Stream"/>
+ <resource name="fonts" resource="Stream">
+ <element name="fonts" tokenid="rtf:FONTTABLE"/>
+ </resource>
+ <resource name="numbering" resource="Stream">
+ <element name="numbering" tokenid="ooxml:NUMBERING"/>
+ </resource>
+ <resource name="styles" resource="Stream">
+ <element name="styles" tokenid="rtf:STYLESHEET"/>
+ </resource>
<resource name="ST_CaptionPos" resource="List" generated="yes">
<value name="above" tokenid="ooxml:Value_wordprocessingml_ST_CaptionPos_above">above</value>
<value name="below" tokenid="ooxml:Value_wordprocessingml_ST_CaptionPos_below">below</value>
diff --git a/writerfilter/source/ooxml/modelcleanup.xsl b/writerfilter/source/ooxml/modelcleanup.xsl
index 364d41a6bc9c..d7a9aec40100 100644
--- a/writerfilter/source/ooxml/modelcleanup.xsl
+++ b/writerfilter/source/ooxml/modelcleanup.xsl
@@ -34,7 +34,7 @@
xmlns:xalan="http://xml.apache.org/xalan"
exclude-result-prefixes = "xalan"
xml:indent="true">
- <xsl:output method="xml" />
+ <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="no"/>
<xsl:key name="resources"
@@ -85,6 +85,116 @@
</xsl:element>
</xsl:template>
+ <xsl:template name="typeofdefine">
+ <xsl:for-each select="rng:data">
+ <xsl:choose>
+ <xsl:when test="@type='base64Binary'">
+ <xsl:text>String</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type='boolean'">
+ <xsl:text>Boolean</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type='byte'">
+ <xsl:text>Integer</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type='dateTime'">
+ <xsl:text>String</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type='decimal'">
+ <xsl:text>Integer</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type='float'">
+ <xsl:text>Float</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type='hexBinary'">
+ <xsl:text>Hex</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type='int'">
+ <xsl:text>Integer</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type='integer'">
+ <xsl:text>Integer</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type='positiveInteger'">
+ <xsl:text>Integer</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type='string'">
+ <xsl:text>String</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type='token'">
+ <xsl:text>Integer</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type='unsignedInt'">
+ <xsl:text>Integer</xsl:text>
+ </xsl:when>
+ <xsl:when test="@type='unsignedLong'">
+ <xsl:text>Integer</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Unknown</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="typeofattribute">
+ <xsl:for-each select="rng:ref">
+ <xsl:variable name="name" select="@name"/>
+ <xsl:for-each select="ancestor::namespace/rng:grammar/rng:define[@name=$name]">
+ <xsl:call-template name="typeofdefine"/>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="generatevalueresource">
+ <xsl:variable name="name" select="@name"/>
+ <resource>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name="resource">Value</xsl:attribute>
+ <xsl:attribute name="generated">yes</xsl:attribute>
+ <xsl:for-each select=".//rng:attribute">
+ <xsl:variable name="type">
+ <xsl:choose>
+ <xsl:when test="rng:ref[@name='ST_OnOff']">
+ <xsl:text>Boolean</xsl:text>
+ </xsl:when>
+ <xsl:when test="rng:text">
+ <xsl:text>String</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="typeofattribute"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <attribute>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name="tokenid">
+ <xsl:text>ooxml:</xsl:text>
+ <xsl:value-of select="$name"/>
+ <xsl:text>_</xsl:text>
+ <xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:attribute name="action">
+ <xsl:text>setValue</xsl:text>
+ </xsl:attribute>
+ </attribute>
+ <xsl:if test="string-length($type) > 0">
+ <action name="start">
+ <xsl:attribute name="action">
+ <xsl:text>setDefault</xsl:text>
+ <xsl:value-of select="$type"/>
+ <xsl:text>Value</xsl:text>
+ </xsl:attribute>
+ </action>
+ </xsl:if>
+ </xsl:for-each>
+ </resource>
+ </xsl:template>
+
<xsl:template match="namespace">
<xsl:variable name="nsid" select="generate-id(.)"/>
<xsl:element name="namespace">
@@ -97,10 +207,8 @@
<xsl:copy-of select="$resources"/>
<xsl:if test="count($resources) = 0">
<xsl:if test="substring(@name, 1, 3) = 'CT_'">
- <xsl:if test="./rng:attribute[@name='val']/rng:text">
- <xsl:call-template name="generateresource">
- <xsl:with-param name="resource">StringValue</xsl:with-param>
- </xsl:call-template>
+ <xsl:if test="./rng:attribute[@name='val']">
+ <xsl:call-template name="generatevalueresource"/>
</xsl:if>
</xsl:if>
<xsl:if test="substring(@name, 1, 3) = 'ST_'">
diff --git a/writerfilter/source/ooxml/modelpreprocess.xsl b/writerfilter/source/ooxml/modelpreprocess.xsl
index 2a78f8e748a6..0b898e63f933 100644
--- a/writerfilter/source/ooxml/modelpreprocess.xsl
+++ b/writerfilter/source/ooxml/modelpreprocess.xsl
@@ -60,8 +60,6 @@
xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
<xsl:output method="xml" />
- <!--<xsl:include href="resourcestools.xsl"/>-->
-
<xsl:key name="namespace-aliases" match="//namespace-alias" use="@name"/>
<xsl:template match="/">
@@ -100,7 +98,7 @@
<xsl:value-of select="ancestor::namespace/rng:grammar/@ns"/>
</xsl:template>
- <xsl:template match="rng:element[@name] | rng:attribute[@name] | element | attribute">
+ <xsl:template match="rng:element[@name|./rng:anyName] | rng:attribute[@name] | element | attribute">
<xsl:variable name="prefix">
<xsl:choose>
<xsl:when test="contains(@name, ':')">
@@ -110,7 +108,7 @@
</xsl:call-template>
</xsl:when>
<xsl:when test="name(.)='attribute'">
- <xsl:if test="ancestor::rng:grammar/@attributeFormDefault='qualified'">
+ <xsl:if test="ancestor::namespace/rng:grammar/@attributeFormDefault='qualified'">
<xsl:call-template name="prefixforgrammar"/>
</xsl:if>
</xsl:when>
@@ -140,6 +138,9 @@
<xsl:when test="contains(@name, ':')">
<xsl:value-of select="substring-after(@name, ':')"/>
</xsl:when>
+ <xsl:when test="./rng:anyName">
+ <xsl:text>FAST_TOKENS_END</xsl:text>
+ </xsl:when>
<xsl:otherwise>
<xsl:value-of select="@name"/>
</xsl:otherwise>
diff --git a/writerfilter/source/ooxml/namespaceids.xsl b/writerfilter/source/ooxml/namespaceids.xsl
index 318155c47fdc..45828761da0c 100644
--- a/writerfilter/source/ooxml/namespaceids.xsl
+++ b/writerfilter/source/ooxml/namespaceids.xsl
@@ -58,7 +58,18 @@
<xsl:output method="text" />
<xsl:param name="prefix"/>
- <xsl:include href="resourcestools.xsl"/>
+ <xsl:include href="factorytools.xsl"/>
+
+<xsl:template name="namespaceids">
+ <xsl:for-each select="//namespace-alias">
+ <xsl:text>
+const sal_uInt32 </xsl:text>
+<xsl:call-template name="namespaceid"/>
+<xsl:text> = </xsl:text>
+<xsl:value-of select="@id"/>
+<xsl:text> &lt;&lt; 16;</xsl:text>
+ </xsl:for-each>
+</xsl:template>
<xsl:template match="/">
<out xml:space="preserve">
diff --git a/writerfilter/source/ooxml/nostatus.xsl b/writerfilter/source/ooxml/nostatus.xsl
new file mode 100644
index 000000000000..e2e113c6a602
--- /dev/null
+++ b/writerfilter/source/ooxml/nostatus.xsl
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="text"/>
+
+<xsl:template match="/">
+ <xsl:for-each select="/stage3">
+ <xsl:for-each select="attribute|element">
+ <xsl:for-each select="file[nostatus]">
+ <xsl:value-of select="@name"/>
+ <xsl:text>:</xsl:text>
+ <xsl:value-of select="@line"/>
+ <xsl:text>&#xa;</xsl:text>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:for-each>
+</xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/ooxml/qnametostr.xsl b/writerfilter/source/ooxml/qnametostr.xsl
index 888eb36325e8..1c0a706df56d 100644
--- a/writerfilter/source/ooxml/qnametostr.xsl
+++ b/writerfilter/source/ooxml/qnametostr.xsl
@@ -63,7 +63,66 @@
xml:space="default">
<xsl:output method="text" />
- <xsl:include href="resourcestools.xsl"/>
+ <xsl:include href="factorytools.xsl"/>
+
+ <!--
+ Generates mapping from tokenids to strings. (DEBUG)
+ -->
+ <xsl:template name="qnametostr">
+ <xsl:text>
+void QNameToString::init_ooxml()
+{
+ /* ooxml */
+ </xsl:text>
+ <xsl:for-each select="//@tokenid">
+ <xsl:if test="generate-id(.) = generate-id(key('tokenids', .)[1]) and contains(., 'ooxml:')">
+ <xsl:text>
+ mMap[</xsl:text>
+ <xsl:call-template name="idtoqname">
+ <xsl:with-param name="id" select="."/>
+ </xsl:call-template>
+ <xsl:text>] = "</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>";</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>
+}
+ </xsl:text>
+ </xsl:template>
+
+ <xsl:template name="ooxmlidstoxml">
+ <xsl:text>
+void ooxmlsprmidsToXML(::std::ostream &amp; out)
+{</xsl:text>
+ <xsl:for-each select="//@tokenid">
+ <xsl:if test="contains(., 'ooxml:') and generate-id(.) = generate-id(key('tokenids', .)[1]) and ancestor::element">
+ <xsl:text>
+ out &lt;&lt; "&lt;theid name=\"</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>\"&gt;</xsl:text>
+ <xsl:value-of select="90000 + position()"/>
+ <xsl:text>&lt;/theid&gt;" &lt;&lt; endl; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>
+}</xsl:text>
+ <xsl:text>
+void ooxmlidsToXML(::std::ostream &amp; out)
+{</xsl:text>
+ <xsl:for-each select="//@tokenid">
+ <xsl:if test="contains(., 'ooxml:') and generate-id(.) = generate-id(key('tokenids', .)[1]) and ancestor::attribute">
+ <xsl:text>
+ out &lt;&lt; "&lt;theid name=\"</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>\"&gt;</xsl:text>
+ <xsl:value-of select="90000 + position()"/>
+ <xsl:text>&lt;/theid&gt;" &lt;&lt; endl; </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>
+}</xsl:text>
+ </xsl:template>
<xsl:template match="/">
<xsl:call-template name="qnametostr"/>
diff --git a/writerfilter/source/ooxml/resourceids.xsl b/writerfilter/source/ooxml/resourceids.xsl
index 33eea88691ac..23ee6ffaad60 100644
--- a/writerfilter/source/ooxml/resourceids.xsl
+++ b/writerfilter/source/ooxml/resourceids.xsl
@@ -64,7 +64,27 @@
xml:space="default">
<xsl:output method="text" />
- <xsl:include href="resourcestools.xsl"/>
+ <xsl:include href="factorytools.xsl"/>
+
+ <!--
+ Generates contant definitions for tokenids.
+ -->
+ <xsl:template name="defineooxmlids">
+ <xsl:text>
+namespace NS_ooxml
+{</xsl:text>
+<xsl:for-each select="//@tokenid|//@sendtokenid">
+ <xsl:if test="contains(., 'ooxml:') and generate-id(.) = generate-id(key('tokenids', .)[1])">
+ <xsl:text>
+ const Id LN_</xsl:text>
+ <xsl:value-of select="substring-after(., 'ooxml:')"/>
+ <xsl:text> = </xsl:text>
+ <xsl:value-of select="90000 + position()"/>
+ <xsl:text>;</xsl:text>
+ </xsl:if>
+</xsl:for-each>
+}
+ </xsl:template>
<xsl:template match="/">
<out>
diff --git a/writerfilter/source/ooxml/resourcestools.xsl b/writerfilter/source/ooxml/resourcestools.xsl
deleted file mode 100644
index f7039aca5321..000000000000
--- a/writerfilter/source/ooxml/resourcestools.xsl
+++ /dev/null
@@ -1,2338 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:xalan="http://xml.apache.org/xalan"
- xmlns:UML = 'org.omg.xmi.namespace.UML'
- exclude-result-prefixes = "xalan"
- xml:space="default">
- <xsl:output method="text" />
-
- <xsl:key name="same-attribute"
- match="rng:attribute" use="@name" />
-
- <xsl:key name="same-element"
- match="rng:element" use="@name" />
-
- <xsl:key name="defines-with-name"
- match="rng:define" use="@name" />
-
- <xsl:key name="same-element-enum"
- match="rng:element" use="@enumname"/>
-
- <xsl:key name="same-attribute-enum"
- match="rng:attribute" use="@enumname"/>
-
- <xsl:key name="same-element-or-attribute-enum"
- match="rng:attribute|rng:element" use="@enumname"/>
-
- <xsl:key name="context-resource"
- match="resource" use="@name"/>
-
- <xsl:key name="defines-with-application"
- match="rng:define" use="ancestor::rng:grammar/@application"/>
-
- <xsl:key name="namespace-aliases" match="//namespace-alias" use="@name"/>
-
- <!-- Tiny template helping devs to debug -->
- <xsl:template name="dbg_path">
- <xsl:text>/*</xsl:text>
- <xsl:for-each select="ancestor::*">
- <xsl:value-of select="name(.)"/>
- <xsl:text>/</xsl:text>
- </xsl:for-each>
- <xsl:value-of select="name(.)"/>
- <xsl:text>[@name=</xsl:text>
- <xsl:value-of select="@name"/>
- <xsl:text>]</xsl:text>
- <xsl:text>*/</xsl:text>
- </xsl:template>
-
- <xsl:template name="licenseheader">
- <xsl:text>
-/*
-
- THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT!
-
-*/
-&#xa;</xsl:text>
- </xsl:template>
-
- <xsl:template name="hasrefs">
- <xsl:choose>
- <xsl:when test=".//rng:ref[not(ancestor::rng:element or ancestor::rng:attribute)]">
- <xsl:text>1</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>0</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <!--
- Returns <define> for the current <ref>.
-
- The current node must be a <ref>!
- -->
- <xsl:template name="defineforref">
- <xsl:variable name="mygrammarid" select="generate-id(ancestor::rng:grammar)"/>
- <xsl:value-of select="key('defines-with-name', @name)[generate-id(ancestor::rng:grammar) = $mygrammarid]"/>
- </xsl:template>
-
- <!--
- Create name with prefix.
-
- The result is <prefix>:<name>.
-
- Exception: If <name> contains a ':' the prefix is ignored.
-
- @param prefix the prefix
- @param name the name
- -->
- <xsl:template name="prefixname">
- <xsl:param name="prefix"/>
- <xsl:param name="name"/>
- <xsl:choose>
- <xsl:when test="contains($name, ':')">
- <xsl:value-of select="$name"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$prefix"/>
- <xsl:text>:</xsl:text>
- <xsl:value-of select="$name"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template name="fastnamespace">
- <xsl:if test="string-length(@prefix) > 0">
- <xsl:text>NS_</xsl:text>
- <xsl:value-of select="@prefix"/>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="fastlocalname">
- <xsl:text>OOXML_</xsl:text>
- <xsl:value-of select="@localname"/>
- </xsl:template>
-
- <!--
- Create entries in enum definition for fast tokens.
-
- For each occurrence of rng:element an entry
-
- OOXML_<name>
-
- is generated, but only if the element is the first named <name>.
- -->
- <xsl:template name="enumfasttokens">
- <xsl:param name="prefix"/>
- <xsl:for-each select=".//rng:element|.//rng:attribute">
- <xsl:if test="generate-id(.) = generate-id(key('same-token-name', @localname)[1])">
- <xsl:call-template name="fastlocalname"/>
- <xsl:text>, &#xa; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="fasttokens">
- <xsl:text>
-typedef sal_Int32 Token_t;
- </xsl:text>
- <xsl:for-each select="/model/fasttoken">
- <xsl:text>
-const Token_t OOXML_</xsl:text>
-<xsl:value-of select="translate(., '-', '_')"/>
-<xsl:text> = </xsl:text>
-<xsl:value-of select="position() - 1"/>
-<xsl:text>;</xsl:text>
- </xsl:for-each>
- <xsl:text>
-const Token_t OOXML_FAST_TOKENS_END =</xsl:text>
-<xsl:value-of select="count(/model/fasttoken)"/>
-<xsl:text>;&#xa;</xsl:text>
- </xsl:template>
-
- <!--
- Returns prefix for the rng:grammar of the current node.
- -->
- <xsl:template name="prefixforgrammar">
- <xsl:variable name="ns" select="ancestor::rng:grammar/@ns"/>
- <xsl:variable name="nsalias"><xsl:value-of select="key('namespace-aliases', $ns)/@alias"/></xsl:variable>
- <!--<xsl:variable name="nsalias">test</xsl:variable>-->
- <xsl:choose>
- <xsl:when test="string-length($nsalias) > 0">
- <xsl:value-of select="$nsalias"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="translate(substring-after($ns, 'http://'), '/.', '__')"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <!--
- Returns prefix for the rng:grammar of the matching nodes.
- -->
- <xsl:template match="*" mode="grammar-prefix">
- <xsl:call-template name="prefixforgrammar"/>
- </xsl:template>
-
- <!--
- Generates name for fast context class for this <define>
- -->
- <xsl:template name="fastcontextname">
- <xsl:variable name="do">
- <xsl:call-template name="classfordefine"/>
- </xsl:variable>
- <xsl:if test="$do = '1'">
- <xsl:variable name="definename">
- <xsl:call-template name="searchdefinenamespace">
- <xsl:with-param name="name" select="@name"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:for-each select="/model/namespace[@name=substring-before($definename, ':')]">
- <xsl:text>OOXMLFastContextHandler_</xsl:text>
- <xsl:value-of select="@namespacealias"/>
- <xsl:text>_</xsl:text>
- <xsl:value-of select="substring-after($definename, ':')"/>
- </xsl:for-each>
- </xsl:if>
- </xsl:template>
-
- <!--
- Returns the value of the @resource attribute of the <resource>
- node according to the current <define>.
- -->
- <xsl:template name="contextresource">
- <xsl:variable name="mynsid" select="generate-id(ancestor::namespace)"/>
- <xsl:choose>
- <xsl:when test="count(key('context-resource', @name)) = 1">
- <xsl:value-of select="key('context-resource', @name)/@resource"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="key('context-resource', @name)[generate-id(ancestor::namespace)=$mynsid]/@resource"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <!--
- Returns a value name.
-
- The resulting value name is
-
- OOXMLValue_$prefix_$name
-
- @prefix the prefix
- @name the name
- -->
- <xsl:template name="valuename">
- <xsl:param name="prefix"/>
- <xsl:param name="name"/>
- <xsl:text>OOXMLValue_</xsl:text>
- <xsl:value-of select="$prefix"/>
- <xsl:text>_</xsl:text>
- <xsl:value-of select="$name"/>
- </xsl:template>
-
- <!--
- Returns the value name for the current <define>.
- -->
- <xsl:template name="valuenamefordefine">
- <xsl:call-template name="valuename">
- <xsl:with-param name="prefix" select="key('namespace-aliases', ancestor::namespace/rng:grammar/@ns)/@alias"/>
- <xsl:with-param name="name" select="translate(@name, '-', '_')"/>
- </xsl:call-template>
- </xsl:template>
-
- <!--
- Returns the name of the parent class of the class for the
- current <define>.
-
- Precondition: The class for the current <define> is derived
- indirectly from OOXMLValue.
-
- -->
- <xsl:template name="valueparent">
- <xsl:variable name="resource">
- <xsl:call-template name="contextresource"/>
- </xsl:variable>
- <xsl:text>OOXML</xsl:text>
- <xsl:value-of select="$resource"/>
- <xsl:text>Value</xsl:text>
- </xsl:template>
-
- <!--
- Generates declaration for a value class.
-
- Precondition: <resource> for current <define> indicates that the
- class is derived directly or indirectly from OOXMLValue.
- -->
- <xsl:template name="valuedecl">
- <xsl:variable name="classname">
- <xsl:call-template name="valuenamefordefine"/>
- </xsl:variable>
- <xsl:variable name="resource">
- <xsl:call-template name="contextresource"/>
- </xsl:variable>
- <xsl:text>
-class </xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text> : public </xsl:text>
- <xsl:call-template name="valueparent"/>
- <xsl:text>
-{
-public:
- </xsl:text>
- <xsl:choose>
- <xsl:when test="$resource='List'">
- <xsl:value-of select="$classname"/>
- <xsl:text>(</xsl:text>
- <xsl:text>const rtl::OUString &amp; rValue</xsl:text>
- <xsl:text>);</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$classname"/>
- <xsl:text>(const rtl::OUString &amp; rValue) : </xsl:text>
- <xsl:call-template name="valueparent"/>
- <xsl:text>(rValue) {}</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:text>
- virtual ~</xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text>() {}
-};
-</xsl:text>
- </xsl:template>
-
- <!--
- Checks if a class derived from OOXMLContex shall be defined for
- the current <define>.
-
- @retval 1 the class shall be defined.
- @retval 0 otherwise
- -->
- <xsl:template name="classfordefine">
- <!--
- <xsl:variable name="name" select="@name"/>
- <xsl:choose>
- <xsl:when test="(starts-with(@name, 'CT_') or starts-with(@name, 'EG_') or starts-with(@name, 'AG_'))">1</xsl:when>
- <xsl:when test="ancestor::namespace//start[@name=$name]">1</xsl:when>
- <xsl:otherwise>0</xsl:otherwise>
- </xsl:choose>
- -->
- <xsl:value-of select="@classfordefine"/>
- </xsl:template>
-
- <!--
- Checks if a class derived from OOXMLValue shall be defined for
- the current <define>.
-
- @retval 1 the class shall be defined
- @retval 0 otherwise
- -->
- <xsl:template name="valuefordefine">
- <xsl:choose>
- <xsl:when test="starts-with(@name, 'ST_')">1</xsl:when>
- <xsl:otherwise>0</xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template name="valuedecls">
- <xsl:for-each select=".//rng:grammar/rng:define">
- <xsl:variable name="dovalue">
- <xsl:call-template name="valuefordefine"/>
- </xsl:variable>
- <xsl:if test="$dovalue = '1'">
- <xsl:call-template name="valuedecl"/>
- </xsl:if>
- </xsl:for-each>
- </xsl:template>
-
- <!--
- Generate switch body for createFastChildContext
- -->
- <xsl:template name="switchbodycreatechildcontext">
- <xsl:for-each select=".//rng:element[@name]">
- <xsl:call-template name="caselabelfasttoken"/>
- <xsl:variable name="createstatement">
- <xsl:call-template name="fastelementcreatestatement"/>
- </xsl:variable>
- <xsl:if test="string-length($createstatement) > 0">
- <xsl:text>
- xContextHandler.set(</xsl:text>
- <xsl:value-of select="$createstatement"/>
- <xsl:text>);
- </xsl:text>
- </xsl:if>
- <xsl:text>
- break;
- </xsl:text>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="fastelementcreatefromrefstatement">
- <xsl:variable name="definename">
- <xsl:call-template name="searchdefinenamespace">
- <xsl:with-param name="name" select="@name"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:for-each select="/model/namespace[@name=substring-before($definename, ':')]">
- <xsl:for-each select="./rng:grammar/rng:define[@name=substring-after($definename, ':')]">
- <xsl:variable name="do">
- <xsl:call-template name="classfordefine"/>
- </xsl:variable>
- <xsl:if test="$do = '1'">
- <xsl:text>OOXMLFastHelper &lt;</xsl:text>
- <xsl:call-template name="fastcontextname"/>
- <xsl:text>&gt;::createAndSetParentRef(this, Element, Attribs)</xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="switchbodycreatechildcontextrefs">
- <xsl:for-each select=".//rng:ref[not (ancestor::rng:element or ancestor::rng:attribute)]">
- <xsl:variable name="createstatement">
- <xsl:call-template name="fastelementcreatefromrefstatement"/>
- </xsl:variable>
- <xsl:if test="string-length($createstatement) > 0">
- <xsl:text>
- if (! xContextHandler.is() || dynamic_cast&lt;OOXMLFastContextHandler *&gt;(xContextHandler.get())->isFallback())
- {
- xContextHandler.set(</xsl:text>
- <xsl:value-of select="$createstatement"/>
- <xsl:text>);
- }
- </xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:for-each select=".//rng:element[rng:anyName]">
- <xsl:variable name="createstatement">
- <xsl:call-template name="fastelementcreatestatement"/>
- </xsl:variable>
- <xsl:if test="string-length($createstatement) > 0">
- <xsl:text>
- if (! xContextHandler.is() || dynamic_cast&lt;OOXMLFastContextHandler *&gt;(xContextHandler.get())->isFallback())
- {
- xContextHandler.set(</xsl:text>
- <xsl:value-of select="$createstatement"/>
- <xsl:text>);
- }
- </xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:template>
-
- <!--
- Generates definition of method createFastChildContext for current <define>
- -->
- <xsl:template name="createfastchildcontext">
- <xsl:variable name="resource">
- <xsl:call-template name="contextresource"/>
- </xsl:variable>
- <xsl:if test="not($resource='Shape')">
- <xsl:variable name="switchbody">
- <xsl:call-template name="switchbodycreatechildcontext"/>
- </xsl:variable>
- <xsl:variable name="switchbodyrefs">
- <xsl:call-template name="switchbodycreatechildcontextrefs"/>
- </xsl:variable>
- <xsl:if test="string-length($switchbody) > 0 or string-length($switchbodyrefs) > 0">
- <xsl:text>
-uno::Reference &lt; xml::sax::XFastContextHandler &gt;
-</xsl:text>
-<xsl:call-template name="fastcontextname"/>
-<xsl:text>::lcl_createFastChildContext
-(::sal_Int32 Element,
- const uno::Reference &lt; xml::sax::XFastAttributeList &gt; &amp;</xsl:text>
-<xsl:if test="contains($switchbody, 'Attribs') or contains($switchbodyrefs, 'Attribs')">
- <xsl:text> Attribs</xsl:text>
-</xsl:if>
-<xsl:text>)
- throw (uno::RuntimeException, xml::sax::SAXException)
-{
- uno::Reference &lt; xml::sax::XFastContextHandler &gt; xContextHandler;
-</xsl:text>
-<xsl:if test="string-length($switchbody) > 0">
- <xsl:text>
- switch (Element)
- {
- </xsl:text>
- <xsl:value-of select="$switchbody"/>
- <xsl:text>
- default:
- break;
- }
- </xsl:text>
-</xsl:if>
-<xsl:if test="string-length($switchbodyrefs) > 0">
- <xsl:value-of select="$switchbodyrefs"/>
-</xsl:if>
-<xsl:text>
-
- return xContextHandler;
-}
-</xsl:text>
- </xsl:if>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="idforattr">
- <xsl:variable name="name" select="@name"/>
- <xsl:for-each select="ancestor::rng:define">
- <xsl:variable name="definename" select="@name"/>
- <xsl:for-each select="ancestor::namespace/resource[@name=$definename]">
- <xsl:for-each select="./attribute[@name=$name]">
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@tokenid"/>
- </xsl:call-template>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="idforelement">
- <xsl:variable name="name" select="@name"/>
- <xsl:for-each select="ancestor::rng:define">
- <xsl:variable name="definename" select="@name"/>
- <xsl:for-each select="ancestor::namespace/resource[@name=$definename]">
- <xsl:for-each select="./element[@name=$name]">
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@tokenid"/>
- </xsl:call-template>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:template>
-
- <!--
- Processes token id given in <resource> elements.
-
- The result is the identifier for the tokenid.
- -->
- <xsl:template name="processtokenid">
- <xsl:choose>
- <xsl:when test="contains(@tokenid, ':')">
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@tokenid"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@tokenid"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template name="getidcaseimpl">
- <xsl:for-each select="attribute|element">
- <xsl:text>
- </xsl:text>
- <xsl:call-template name="caselabelfasttoken"/>
- <xsl:text>
- nResult = </xsl:text>
- <xsl:call-template name="processtokenid"/>
- <xsl:text>;
- break;</xsl:text>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="attributeproptype">
- <xsl:variable name="mynsid" select="generate-id(ancestor::namespace)"/>
- <xsl:variable name="name" select="@name"/>
- <xsl:variable name="resource" select="key('context-resource', @name)[generate-id(ancestor::namespace)=$mynsid]"/>
- <xsl:choose>
- <xsl:when test="$resource/element[@name=$name]">
- <xsl:text>OOXMLPropertyImpl::SPRM</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>OOXMLPropertyImpl::ATTRIBUTE</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <!--
- Check if a default is defined for a define.
-
- Returns if the <resource> for the current <define> has a
- <default> child.
-
- @retval 0 there is no default
- @retval 1 there is a default
- -->
- <xsl:template name="contexthasdefault">
- <xsl:variable name="name" select="@name"/>
- <xsl:choose>
- <xsl:when test="ancestor::namespace/resource[@name=$name]//default">1</xsl:when>
- <xsl:otherwise>0</xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <!--
- Chooses the action for the current <action> element.
- -->
- <xsl:template name="chooseaction">
- <xsl:if test="@tokenid">
- <xsl:text>
- if (sal::static_int_cast&lt;Id&gt;(getId()) == </xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@tokenid"/>
- </xsl:call-template>
- <xsl:text>)
- {</xsl:text>
- </xsl:if>
- <xsl:for-each select="./cond">
- <xsl:text>
- {
- OOXMLPropertySetEntryToInteger aHandler(</xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@tokenid"/>
- </xsl:call-template>
- <xsl:text>);
- getPropertySetAttrs()->resolve(aHandler);
-
- if (sal::static_int_cast&lt;Id&gt;(aHandler.getValue()) == </xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@value"/>
- </xsl:call-template>
- <xsl:text>)
- {</xsl:text>
- </xsl:for-each>
- <xsl:choose>
- <xsl:when test="@action='sendTableDepth'">
- <xsl:text>
- sendTableDepth();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='startCell'">
- <xsl:text>
- startCell();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='startParagraphGroup'">
- <xsl:text>
- startParagraphGroup();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='startCharacterGroup'">
- <xsl:text>
- startCharacterGroup();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='startSectionGroup'">
- <xsl:text>
- startSectionGroup();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='fieldstart'">
- <xsl:text>
- startField();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='fieldsep'">
- <xsl:text>
- fieldSeparator();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='fieldend'">
- <xsl:text>
- endField();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='ftnednref'">
- <xsl:text>
- ftnednref();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='ftnednsep'">
- <xsl:text>
- ftnednsep();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='ftnedncont'">
- <xsl:text>
- ftnedncont();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='pgNum'">
- <xsl:text>
- pgNum();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='tab'">
- <xsl:text>
- tab();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='cr'">
- <xsl:text>
- cr();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='noBreakHyphen'">
- <xsl:text>
- noBreakHyphen();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='softHyphen'">
- <xsl:text>
- softHyphen();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='endOfParagraph'">
- <xsl:text>
- endOfParagraph();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='handleLastParagraphInSection'">
- <xsl:text>
- handleLastParagraphInSection();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='setLastParagraphInSection'">
- <xsl:text>
- setLastParagraphInSection();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='endCell'">
- <xsl:text>
- endCell();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='endParagraphGroup'">
- <xsl:text>
- endParagraphGroup();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='endCharacterGroup'">
- <xsl:text>
- endCharacterGroup();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='endSectionGroup'">
- <xsl:text>
- endSectionGroup();</xsl:text>
- </xsl:when>
- <xsl:when test="@action='handleXNotes'">
- handleXNotes();</xsl:when>
- <xsl:when test="@action='handleHdrFtr'">
- handleHdrFtr();</xsl:when>
- <xsl:when test="@action='handleComment'">
- handleComment();</xsl:when>
- <xsl:when test="@action='handlePicture'">
- handlePicture();</xsl:when>
- <xsl:when test="@action='handleHyperlink'">
- handleHyperlink();</xsl:when>
- <xsl:when test="@action='handleBreak'">
- handleBreak();</xsl:when>
- <xsl:when test="@action='handleOLE'">
- handleOLE();</xsl:when>
- <xsl:when test="@action='printproperty'">
- <xsl:text>
- sendProperty(</xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@sendtokenid"/>
- </xsl:call-template>
- <xsl:text>);</xsl:text>
- </xsl:when>
- <xsl:when test="@action='propagateCharacterProperties'">
- propagateCharacterProperties();
- </xsl:when>
- <xsl:when test="@action='propagateCharacterPropertiesAsSet'">
- <xsl:text>
- propagateCharacterPropertiesAsSet(</xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@sendtokenid"/>
- </xsl:call-template>
- <xsl:text>);</xsl:text>
- </xsl:when>
- <xsl:when test="@action='propagateTableProperties'">
- propagateTableProperties();
- </xsl:when>
- <xsl:when test="@action='sendPropertiesWithId'">
- <xsl:text>
- sendPropertiesWithId(</xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@sendtokenid"/>
- </xsl:call-template>
- <xsl:text>);</xsl:text>
- </xsl:when>
- <xsl:when test="@action='clearProps'">
- clearProps();
- </xsl:when>
- <xsl:when test="@action='text'">
- text(sText);
- </xsl:when>
- <xsl:when test="@action='setHandle'">
- setHandle();
- </xsl:when>
-
- <xsl:when test="@action='footnoteSeparator'">
- footnoteSeparator();
- </xsl:when>
- <xsl:when test="@action='footnoteCont'">
- footnoteCont();
- </xsl:when>
- <xsl:when test="@action='endnoteSeparator'">
- endnoteSeparator();
- </xsl:when>
- <xsl:when test="@action='endnoteCont'">
- endnoteCont();
- </xsl:when>
- <xsl:when test="@action='newProperty'">
- <xsl:text>
- OOXMLFastHelper&lt;OOXMLIntegerValue&gt;::newProperty(this, </xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@tokenid"/>
- </xsl:call-template>
- <xsl:text>, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("</xsl:text>
- <xsl:value-of select="@value"/>
- <xsl:text>")));</xsl:text>
- </xsl:when>
- <xsl:when test="@action='mark'">
- <xsl:text>
- OOXMLFastHelper&lt;OOXMLIntegerValue&gt;::mark(this, </xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@sendtokenid"/>
- </xsl:call-template>
- <xsl:text>, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("</xsl:text>
- <xsl:value-of select="@value"/>
- <xsl:text>")));</xsl:text>
- </xsl:when>
- <xsl:when test="@action='tokenproperty'">
- <xsl:text>
- OOXMLFastHelper&lt;OOXMLIntegerValue&gt;::newProperty(this, </xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id">ooxml:token</xsl:with-param>
- </xsl:call-template>
- <xsl:text>, getToken());</xsl:text>
- </xsl:when>
- </xsl:choose>
- <xsl:for-each select="./cond">
- <xsl:text>
- }
- }</xsl:text>
- </xsl:for-each>
- <xsl:if test="@tokenid">
- <xsl:text>
- }</xsl:text>
- </xsl:if>
- </xsl:template>
-
- <!--
- Generates the definitions of the methods of the fast context class
- for the current <define>.
- -->
- <xsl:template name="fastcontextimpls">
- <xsl:param name="ns"/>
- <xsl:for-each select=".//namespace[@name=$ns]">
- <xsl:text>
-</xsl:text>
- <xsl:for-each select="./rng:grammar/rng:define">
- <xsl:variable name="do">
- <xsl:call-template name="classfordefine"/>
- </xsl:variable>
- <xsl:if test="$do = '1'">
- <xsl:variable name="classname">
- <xsl:call-template name="fastcontextname"/>
- </xsl:variable>
- <xsl:text>
-/*
- class: </xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text>
-*/
-</xsl:text>
-<xsl:call-template name="fastcontextconstructor"/>
-<xsl:call-template name="fastcontextdestructor"/>
-<xsl:call-template name="faststartaction"/>
-<xsl:call-template name="fastendaction"/>
-<xsl:call-template name="createfastchildcontext"/>
-<xsl:call-template name="fastattribute"/>
-<xsl:call-template name="fastcharacters"/>
-<xsl:call-template name="propagatesproperties"/>
- </xsl:if>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:key name="value-with-content" match="//rng:value"
- use="text()"/>
-
- <!--
- Generates name for a value string.
-
- Value strings are possible values for attributes in OOXML.
-
- @param string the string as present in the according <rng:value>
- -->
- <xsl:template name="valuestringname">
- <xsl:param name="string"/>
- <xsl:text>OOXMLValueString_</xsl:text>
- <xsl:value-of select="translate($string, '-+ ,', 'mp__')"/>
- </xsl:template>
-
- <!--
- Generates constant definitions for attribute values.
- -->
- <xsl:template name="valueconstants">
- <xsl:text>
-rtl::OUString </xsl:text>
-<xsl:call-template name="valuestringname">
- <xsl:with-param name="string"></xsl:with-param>
-</xsl:call-template>
-<xsl:text>(RTL_CONSTASCII_USTRINGPARAM(""));</xsl:text>
-<xsl:for-each select="//rng:value[generate-id(key('value-with-content', text())[1]) = generate-id(.)]">
- <xsl:text>
-rtl::OUString </xsl:text>
-<xsl:call-template name="valuestringname">
- <xsl:with-param name="string" select="."/>
-</xsl:call-template>
-<xsl:text>(RTL_CONSTASCII_USTRINGPARAM("</xsl:text>
-<xsl:value-of select="."/>
-<xsl:text>"));</xsl:text>
-</xsl:for-each>
- </xsl:template>
-
- <!--
- Generates constant declarations for attribute values.
- -->
- <xsl:template name="valueconstantdecls">
- <xsl:text>
-extern rtl::OUString
- </xsl:text>
- <xsl:call-template name="valuestringname">
- <xsl:with-param name="string"></xsl:with-param>
- </xsl:call-template>
- <xsl:text>;</xsl:text>
- <xsl:for-each select="//rng:value[generate-id(key('value-with-content', text())[1]) = generate-id(.)]">
- <xsl:text>
-extern rtl::OUString </xsl:text>
- <xsl:call-template name="valuestringname">
- <xsl:with-param name="string" select="."/>
- </xsl:call-template>
- <xsl:text>;</xsl:text>
- </xsl:for-each>
- </xsl:template>
-
- <!--
- Generates definition of constructor for attribute value class
- for current <define>.
- -->
- <xsl:template name="valueconstructorimpl">
- <xsl:variable name="name" select="@name"/>
- <xsl:variable name="resource">
- <xsl:call-template name="contextresource"/>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$resource = 'List'">
- <xsl:variable name="classname">
- <xsl:call-template name="valuenamefordefine"/>
- </xsl:variable>
- <xsl:text>&#xa;</xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text>::</xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text>(const rtl::OUString &amp; </xsl:text>
- <xsl:choose>
- <xsl:when test="count(ancestor::namespace/resource[@name=$name]/value) > 0">
- <xsl:text>rValue</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>/* rValue */</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:text>)
-: OOXMLListValue()
-{</xsl:text>
- <xsl:for-each select="ancestor::namespace/resource[@name=$name]">
- <xsl:for-each select="./default">
- <xsl:text>
- mnValue = </xsl:text>
- <xsl:choose>
- <xsl:when test="@tokenid">
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@tokenid"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="."/>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:text>;</xsl:text>
- </xsl:for-each>
- <xsl:for-each select="./value">
- <xsl:text>
- if (rValue.compareTo(</xsl:text>
- <xsl:call-template name="valuestringname">
- <xsl:with-param name="string" select="text()"/>
- </xsl:call-template>
- <xsl:text>) == 0)
- {
- mnValue = </xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@tokenid"/>
- </xsl:call-template>
- <xsl:text>;
- return;
- }</xsl:text>
- </xsl:for-each>
- </xsl:for-each>
- <xsl:text>
-}
-</xsl:text>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
-
- <!--
- Generates definition of destructor of attribute value class for
- current <define>.
- -->
- <xsl:template name="valuedestructorimpl">
- <xsl:variable name="classname">
- <xsl:call-template name="valuenamefordefine"/>
- </xsl:variable>
- <xsl:text>&#xa;</xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text>::~</xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text>()
-{
-}
- </xsl:text>
- </xsl:template>
-
- <!--
- Generates definitions for attribute value class for current
- <define>.
- -->
- <xsl:template name="valueimpls">
- <xsl:for-each select=".//rng:grammar/rng:define">
- <xsl:variable name="do">
- <xsl:call-template name="valuefordefine"/>
- </xsl:variable>
- <xsl:if test="$do = 1">
- <xsl:variable name="classname">
- <xsl:call-template name="valuenamefordefine"/>
- </xsl:variable>
- <xsl:text>
-/*
- class: </xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text>
-*/
- </xsl:text>
- <xsl:call-template name="valueconstructorimpl"/>
- </xsl:if>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:key name="tokenids" match="@tokenid|@sendtokenid" use="."/>
-
- <!--
- Generates contant definitions for tokenids.
- -->
- <xsl:template name="defineooxmlids">
- <xsl:text>
-namespace NS_ooxml
-{</xsl:text>
-<xsl:for-each select="//@tokenid|//@sendtokenid">
- <xsl:if test="contains(., 'ooxml:') and generate-id(.) = generate-id(key('tokenids', .)[1])">
- <xsl:text>
- const Id LN_</xsl:text>
- <xsl:value-of select="substring-after(., 'ooxml:')"/>
- <xsl:text> = </xsl:text>
- <xsl:value-of select="90000 + position()"/>
- <xsl:text>;</xsl:text>
- </xsl:if>
-</xsl:for-each>
-}
- </xsl:template>
-
- <xsl:template name="ooxmlidstoxml">
- <xsl:text>
-void ooxmlsprmidsToXML(::std::ostream &amp; out)
-{</xsl:text>
- <xsl:for-each select="//@tokenid">
- <xsl:if test="contains(., 'ooxml:') and generate-id(.) = generate-id(key('tokenids', .)[1]) and ancestor::element">
- <xsl:text>
- out &lt;&lt; "&lt;theid name=\"</xsl:text>
- <xsl:value-of select="."/>
- <xsl:text>\"&gt;</xsl:text>
- <xsl:value-of select="90000 + position()"/>
- <xsl:text>&lt;/theid&gt;" &lt;&lt; endl; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text>
-}</xsl:text>
- <xsl:text>
-void ooxmlidsToXML(::std::ostream &amp; out)
-{</xsl:text>
- <xsl:for-each select="//@tokenid">
- <xsl:if test="contains(., 'ooxml:') and generate-id(.) = generate-id(key('tokenids', .)[1]) and ancestor::attribute">
- <xsl:text>
- out &lt;&lt; "&lt;theid name=\"</xsl:text>
- <xsl:value-of select="."/>
- <xsl:text>\"&gt;</xsl:text>
- <xsl:value-of select="90000 + position()"/>
- <xsl:text>&lt;/theid&gt;" &lt;&lt; endl; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text>
-}</xsl:text>
- </xsl:template>
-
- <!--
- Generates mapping from tokenids to strings. (DEBUG)
- -->
- <xsl:template name="qnametostr">
- <xsl:text>
-void QNameToString::init_ooxml()
-{
- /* ooxml */
- </xsl:text>
- <xsl:for-each select="//@tokenid">
- <xsl:if test="generate-id(.) = generate-id(key('tokenids', .)[1]) and contains(., 'ooxml:')">
- <xsl:text>
- mMap[</xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="."/>
- </xsl:call-template>
- <xsl:text>] = "</xsl:text>
- <xsl:value-of select="."/>
- <xsl:text>";</xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text>
-}
- </xsl:text>
- </xsl:template>
-
- <xsl:template name="qnametostrfunc">
- <xsl:text>
-string qnameToString(sal_uInt32 nToken)
-{
- string sResult;
-
- switch (nToken)
- {</xsl:text>
- <xsl:for-each select="//resource">
- <xsl:variable name="name" select="@name"/>
- <xsl:for-each select="attribute|element">
- <xsl:if test="contains(@tokenid, 'ooxml:')">
- <xsl:text>
- case </xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@tokenid"/>
- </xsl:call-template>
- <xsl:text>:
- sResult = "</xsl:text>
- <xsl:value-of select="@token"/>
- <xsl:text>";
- break;</xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:for-each>
- <xsl:text>
- default:
- ;
- }
-
- return sResult;
-}</xsl:text>
- </xsl:template>
-
- <xsl:key name="resources-with-kind" match="resource[.//kind]"
- use=".//kind/@name"/>
-
- <xsl:key name="sprms-with-code" match="element" use="@tokenid"/>
-
- <!--
- Generates case labels for mapping from token ids to a single kind
- of sprm.
-
- @param kind the sprm kind for which to generate the case labels
- -->
- <xsl:template name="sprmkindcase">
- <xsl:param name="kind"/>
- <xsl:for-each select="key('resources-with-kind', $kind)/element">
- <xsl:if test="generate-id(.) = generate-id(key('sprms-with-code', @tokenid))">
- <xsl:text>
- case </xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@tokenid"/>
- </xsl:call-template>
- <xsl:text>: //</xsl:text>
- <xsl:value-of select="ancestor::resource/@name"/>
- <xsl:text>, </xsl:text>
- <xsl:value-of select="@name"/>
- </xsl:if>
- </xsl:for-each>
- </xsl:template>
-
- <!--
- Generates SprmKind.
- -->
- <xsl:template name="sprmkind">
- <xsl:text>
-Sprm::Kind SprmKind(sal_uInt32 nSprmCode)
-{
- Sprm::Kind nResult = Sprm::UNKNOWN;
-
- switch (nSprmCode)
- {</xsl:text>
- <xsl:call-template name="sprmkindcase">
- <xsl:with-param name="kind">paragraph</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
- nResult = Sprm::PARAGRAPH;
- break;</xsl:text>
- <xsl:call-template name="sprmkindcase">
- <xsl:with-param name="kind">character</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
- nResult = Sprm::CHARACTER;
- break;</xsl:text>
- <xsl:call-template name="sprmkindcase">
- <xsl:with-param name="kind">table</xsl:with-param>
- </xsl:call-template>
- <xsl:text>
- nResult = Sprm::TABLE;
- break;</xsl:text>
- <xsl:text>
- default:
- break;
- }
-
- return nResult;
-}</xsl:text>
- </xsl:template>
-
- <!--
- Generates qname for id.
-
- @param id the id to generate qname for
-
- If id is of format <prefix>:<localname> the result is
-
- NS_<prefix>::LN_<localname>
-
- If id does not contain ":" the result is just id.
- -->
- <xsl:template name='idtoqname'>
- <xsl:param name='id'/>
- <xsl:choose>
- <xsl:when test="contains($id, ':')">
- <xsl:text>NS_</xsl:text>
- <xsl:value-of select='substring-before($id, ":")'/>
- <xsl:text>::LN_</xsl:text>
- <xsl:value-of select='substring-after($id, ":")'/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$id"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:key name="same-token-name" match="rng:element|rng:attribute" use="@localname"/>
-
- <!--
- Generates input for gperf to genreate hash map for OOXMLFastTokenHandler
- -->
- <xsl:template name="gperfinputfasttokenhandler">
- <xsl:text>
-%{
-#include "OOXMLFastTokens.hxx"
-
-namespace writerfilter { namespace ooxml { namespace tokenmap {
-%}
-struct token { const char * name; Token_t nToken; };
-%%</xsl:text>
- <xsl:for-each select=".//rng:element|.//rng:attribute">
- <xsl:if test="generate-id(.) = generate-id(key('same-token-name', @localname)[1])">
- <xsl:text>&#xa;</xsl:text>
- <xsl:value-of select="@localname"/>
- <xsl:text>, </xsl:text>
- <xsl:call-template name="fastlocalname"/>
- </xsl:if>
- </xsl:for-each>
- <xsl:text>
-%%&#xa;</xsl:text>
-}}}&#xa;</xsl:template>
-
-<xsl:template name="namespaceid">
- <xsl:text>NS_</xsl:text>
- <xsl:value-of select="@alias"/>
-</xsl:template>
-
-<xsl:template name="namespaceids">
- <xsl:for-each select="//namespace-alias">
- <xsl:text>
-const sal_uInt32 </xsl:text>
-<xsl:call-template name="namespaceid"/>
-<xsl:text> = </xsl:text>
-<xsl:value-of select="@id"/>
-<xsl:text> &lt;&lt; 16;</xsl:text>
- </xsl:for-each>
-</xsl:template>
-
-<xsl:template name="fasttoken">
- <xsl:variable name="ns">
- <xsl:call-template name="fastnamespace"/>
- </xsl:variable>
- <xsl:if test="string-length($ns) > 0">
- <xsl:value-of select="$ns"/>
- <xsl:text>|</xsl:text>
- </xsl:if>
- <xsl:call-template name="fastlocalname"/>
-</xsl:template>
-
-<xsl:template name="fasttokenwithattr">
- <xsl:if test="local-name(.)='attribute'">
- <xsl:text>F_Attribute|</xsl:text>
- </xsl:if>
- <xsl:call-template name="fasttoken"/>
-</xsl:template>
-
-<xsl:template name="caselabelfasttoken">
- <xsl:text>case </xsl:text>
- <xsl:call-template name="fasttokenwithattr"/>
- <xsl:text>:</xsl:text>
-</xsl:template>
-
-<xsl:key name="elementsattrsbynamespace"
- match="rng:element[@name]|rng:attribute[@name]" use="ancestor::rng:grammar/@ns"/>
-
-<xsl:template name="fasttokentoid">
- <xsl:text>
-namespace tokenmap {
-struct token { const char * name; Token_t nToken; };
-class Perfect_Hash
-{
-private:
- static inline unsigned int hash (const char *str, unsigned int len);
-public:
- static struct token *in_word_set (const char *str, unsigned int len);
-};
-}
-
-string fastTokenToId(sal_uInt32 nToken)
-{
- </xsl:text>
- <xsl:text>
- string sResult;
-
- switch (nToken &amp; 0xffff0000)
- {</xsl:text>
- <xsl:for-each select="//namespace-alias">
- <xsl:text>
- case NS_</xsl:text>
- <xsl:value-of select="@alias"/>
- <xsl:text>:
- sResult += "</xsl:text>
- <xsl:value-of select="@alias"/>
- <xsl:text>:";
- break;</xsl:text>
- </xsl:for-each>
- <xsl:text>
- }
-
- switch (nToken &amp; 0xffff)
- {</xsl:text>
- <xsl:for-each select=".//rng:element[@localname]|.//rng:attribute[@localname]">
- <xsl:variable name="localname" select="@localname"/>
- <xsl:if test="generate-id(.) = generate-id(key('same-token-name', $localname)[1])">
- <xsl:text>
- case </xsl:text>
- <xsl:call-template name="fastlocalname"/>
- <xsl:text>:
- sResult += "</xsl:text>
- <xsl:value-of select="$localname"/>
- <xsl:text>";
- break;</xsl:text>
- </xsl:if>
- </xsl:for-each>
-<xsl:text>
- }
-
- return sResult;
-}
- </xsl:text>
-</xsl:template>
-
-<xsl:template name="getfastparser">
-<xsl:text>
-uno::Reference &lt; xml::sax::XFastParser &gt; OOXMLStreamImpl::getFastParser()
-{
- if (! mxFastParser.is())
- {
- uno::Reference &lt; lang::XMultiComponentFactory &gt; xFactory =
- uno::Reference &lt; lang::XMultiComponentFactory &gt;
- (mxContext->getServiceManager());
-
- mxFastParser.set(xFactory->createInstanceWithContext
- ( ::rtl::OUString::createFromAscii
- ( "com.sun.star.xml.sax.FastParser" ),
- mxContext ), uno::UNO_QUERY_THROW);
-</xsl:text>
-<xsl:for-each select="//namespace-alias">
- <xsl:text>
- mxFastParser->registerNamespace(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("</xsl:text>
- <xsl:value-of select="@name"/>
- <xsl:text>")), </xsl:text>
- <xsl:call-template name="namespaceid"/>
- <xsl:text>);</xsl:text>
-</xsl:for-each>
-<xsl:text>
- }
-
- return mxFastParser;
-}
-</xsl:text>
-</xsl:template>
-
-<xsl:template name="searchdefinenamespace">
- <xsl:param name="name"/>
- <xsl:variable name="tmp">
- <xsl:for-each select="ancestor::namespace">
- <xsl:call-template name="searchdefinenamespacerec">
- <xsl:with-param name="name" select="$name"/>
- </xsl:call-template>
- </xsl:for-each>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="string-length($tmp) > 0">
- <xsl:value-of select="$tmp"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:for-each select="key('defines-with-name', $name)[1]">
- <xsl:value-of select="ancestor::namespace/@name"/>
- <xsl:text>:</xsl:text>
- <xsl:value-of select="@name"/>
- </xsl:for-each>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template name="searchdefinenamespacerec">
- <xsl:param name="name"/>
- <xsl:variable name="nsname" select="@name"/>
- <xsl:variable name="nsid" select="generate-id(.)"/>
- <xsl:variable name="tmp">
- <xsl:for-each select="key('defines-with-name', $name)">
- <xsl:if test="generate-id(ancestor::namespace)=$nsid">
- <xsl:value-of select="$nsname"/>
- <xsl:text>:</xsl:text>
- <xsl:value-of select="$name"/>
- </xsl:if>
- </xsl:for-each>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="string-length($tmp) > 0">
- <xsl:value-of select="$tmp"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:for-each select="./rng:include">
- <xsl:for-each select="/model/namespace[@file=@href]">
- <xsl:call-template name="searchdefinenamespacerec">
- <xsl:with-param name="name" select="$name"/>
- </xsl:call-template>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
- <xsl:template name="fastattributescheckattr">
- <xsl:text>if (Attribs->hasAttribute(</xsl:text>
- <xsl:call-template name="fastlocalname"/>
- <xsl:text>))</xsl:text>
- </xsl:template>
-
- <xsl:template name="fastattributescheckattrwithns">
- <xsl:text>if (Attribs->hasAttribute(</xsl:text>
- <xsl:call-template name="fasttoken"/>
- <xsl:text>))</xsl:text>
- </xsl:template>
-
- <xsl:template name="fastcontextnameforattribute">
- <xsl:choose>
- <xsl:when test="./rng:ref">
- <xsl:for-each select="./rng:ref">
- <xsl:call-template name="valuenameforref"/>
- </xsl:for-each>
- </xsl:when>
- <xsl:when test="./rng:data/@type = 'boolean'">
- <xsl:text>OOXMLBooleanValue</xsl:text>
- </xsl:when>
- <xsl:when test="./rng:data/@type = 'unsignedInt'">
- <xsl:text>OOXMLIntegerValue</xsl:text>
- </xsl:when>
- <xsl:when test="./rng:text or ./rng:data/@type = 'string' or ./rng:data/@type = 'token'">
- <xsl:text>OOXMLStringValue</xsl:text>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template name="fastattributesproperties">
- <xsl:variable name="definename" select="@name"/>
- <xsl:for-each select=".//rng:attribute">
- <xsl:variable name="attrname" select="@name"/>
- <xsl:variable name="contextname">
- <xsl:call-template name="fastcontextnameforattribute"/>
- </xsl:variable>
- <xsl:variable name="attrid">
- <xsl:call-template name="idforattr"/>
- </xsl:variable>
- <xsl:if test="string-length($contextname) > 0 and string-length($attrid) > 0">
- <xsl:text>
- </xsl:text>
- <xsl:call-template name="fastattributescheckattrwithns"/>
- <xsl:text>
- {
- ::rtl::OUString aValue(Attribs->getValue(</xsl:text>
- <xsl:call-template name="fasttoken"/>
- <xsl:text>));
- OOXMLFastHelper &lt; </xsl:text>
- <xsl:value-of select="$contextname"/>
- <xsl:text> &gt;::newProperty(this, </xsl:text>
- <xsl:value-of select="$attrid"/>
- <xsl:text>, aValue);</xsl:text>
- <xsl:for-each select="ancestor::namespace/resource[@name=$definename]">
- <xsl:for-each select="./attribute[@name=$attrname]">
- <xsl:choose>
- <xsl:when test="@action='checkId'">
- <xsl:text>
- checkId(aValue);</xsl:text>
- </xsl:when>
- <xsl:when test="@action='checkXNoteType'">
- </xsl:when>
- <xsl:when test="@action='setXNoteId'">
- <xsl:text>
- setXNoteId(aValue);</xsl:text>
- </xsl:when>
- </xsl:choose>
- </xsl:for-each>
- </xsl:for-each>
- <xsl:text>
- }</xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="fastcharactersstringvalue">
- <xsl:text>
-
- msValue = sText;</xsl:text>
- </xsl:template>
-
- <xsl:template name="fastattributesstringvalue">
- <xsl:for-each select=".//rng:attribute">
- <xsl:text>
- </xsl:text>
- <xsl:call-template name="fastattributescheckattrwithns"/>
- <xsl:text>
- msValue = Attribs->getValue(</xsl:text>
- <xsl:call-template name="fasttoken"/>
- <xsl:text>);</xsl:text>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="fastcharactersintvalue">
- <xsl:text>
-
- mnValue = sText.toInt32();</xsl:text>
- </xsl:template>
-
- <xsl:template name="fastattributesintvalue">
- <xsl:for-each select=".//rng:attribute">
- <xsl:text>
- </xsl:text>
- <xsl:call-template name="fastattributescheckattrwithns"/>
- <xsl:text>
- mnValue = Attribs->getValue(</xsl:text>
- <xsl:call-template name="fasttoken"/>
- <xsl:text>).toInt32();</xsl:text>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="fastcharactershexvalue">
- <xsl:text>
-
- mnValue = sText.toInt32(16);</xsl:text>
- </xsl:template>
-
- <xsl:template name="fastattributeshexvalue">
- <xsl:for-each select=".//rng:attribute">
- <xsl:text>
- </xsl:text>
- <xsl:call-template name="fastattributescheckattrwithns"/>
- <xsl:text>
- mnValue = Attribs->getValue(</xsl:text>
- <xsl:call-template name="fasttoken"/>
- <xsl:text>).toInt32(16);</xsl:text>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="fastcharactersboolvalue">
- <xsl:text>
-
- setValue( sText );</xsl:text>
- </xsl:template>
-
- <xsl:template name="fastattributesboolvalue">
- <xsl:for-each select=".//rng:attribute">
- <xsl:text>
- </xsl:text>
- <xsl:call-template name="fastattributescheckattrwithns"/>
- <xsl:text>
- setValue(Attribs->getValue(</xsl:text>
- <xsl:call-template name="fasttoken"/>
- <xsl:text>));</xsl:text>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="fastcharacterslistvalue">
- <xsl:variable name="bodywithns">
- <xsl:for-each select="rng:ref">
- <xsl:variable name="refname" select="@name"/>
- <xsl:variable name="refns">
- <xsl:call-template name="searchdefinenamespace">
- <xsl:with-param name="name" select="@name"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="valname">
- <xsl:for-each select="/model/namespace[@name=substring-before($refns, ':')]">
- <xsl:for-each select="./rng:grammar/rng:define[@name=substring-after($refns, ':')]">
- <xsl:call-template name="valuenamefordefine"/>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:variable>
- <xsl:text>
- mpValue = OOXMLValue::Pointer_t (new </xsl:text>
- <xsl:value-of select="$valname"/>
- <xsl:text>( sText ) );</xsl:text>
- </xsl:for-each>
- </xsl:variable>
- <xsl:if test="string-length($bodywithns) > 0">
- <xsl:text>
- </xsl:text>
- <xsl:value-of select="$bodywithns"/>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="fastattributeslistvalue">
- <xsl:for-each select=".//rng:attribute">
- <xsl:variable name="myfasttoken">
- <xsl:call-template name="fastlocalname"/>
- </xsl:variable>
- <xsl:variable name="myfasttokenwithns">
- <xsl:call-template name="fasttoken"/>
- </xsl:variable>
- <xsl:variable name="bodywithns">
- <xsl:for-each select="rng:ref">
- <xsl:variable name="refname" select="@name"/>
- <xsl:variable name="refns">
- <xsl:call-template name="searchdefinenamespace">
- <xsl:with-param name="name" select="@name"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="valname">
- <xsl:for-each select="/model/namespace[@name=substring-before($refns, ':')]">
- <xsl:for-each select="./rng:grammar/rng:define[@name=substring-after($refns, ':')]">
- <xsl:call-template name="valuenamefordefine"/>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:variable>
- <xsl:text>
- mpValue = OOXMLValue::Pointer_t (new </xsl:text>
- <xsl:value-of select="$valname"/>
- <xsl:text>(Attribs->getValue(</xsl:text>
- <xsl:value-of select="$myfasttokenwithns"/>
- <xsl:text>)));</xsl:text>
- </xsl:for-each>
- </xsl:variable>
- <xsl:if test="string-length($bodywithns) > 0">
- <xsl:text>
- </xsl:text>
- <xsl:call-template name="fastattributescheckattrwithns"/>
- <xsl:value-of select="$bodywithns"/>
- </xsl:if>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="fastattributebody">
- <xsl:variable name="resource">
- <xsl:call-template name="contextresource"/>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$resource = 'Properties' or $resource = 'Stream' or $resource='XNote' or $resource='Shape'" >
- <xsl:call-template name="fastattributesproperties"/>
- </xsl:when>
- <xsl:when test="$resource = 'StringValue'">
- <xsl:call-template name="fastattributesstringvalue"/>
- </xsl:when>
- <xsl:when test="$resource = 'IntegerValue'">
- <xsl:call-template name="fastattributesintvalue"/>
- </xsl:when>
- <xsl:when test="$resource = 'HexValue'">
- <xsl:call-template name="fastattributeshexvalue"/>
- </xsl:when>
- <xsl:when test="$resource = 'BooleanValue'">
- <xsl:call-template name="fastattributesboolvalue"/>
- </xsl:when>
- <xsl:when test="$resource = 'ListValue'">
- <xsl:call-template name="fastattributeslistvalue"/>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template name="valuenameforref">
- <xsl:variable name="definename">
- <xsl:call-template name="searchdefinenamespace">
- <xsl:with-param name="name" select="@name"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:for-each select="/model/namespace[@name=substring-before($definename, ':')]">
- <xsl:for-each select="./rng:grammar/rng:define[@name=substring-after($definename, ':')]">
- <xsl:call-template name="valuenamefordefine"/>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="fastcontextnameforref">
- <xsl:variable name="definename">
- <xsl:call-template name="searchdefinenamespace">
- <xsl:with-param name="name" select="@name"/>
- </xsl:call-template>
- </xsl:variable>
- <!--
- <xsl:text>/* </xsl:text>
- <xsl:value-of select="@name"/>
- <xsl:text>, </xsl:text>
- <xsl:value-of select="$definename"/>
- <xsl:text> */</xsl:text>
- -->
- <xsl:for-each select="/model/namespace[@name=substring-before($definename, ':')]">
- <xsl:for-each select="./rng:grammar/rng:define[@name=substring-after($definename, ':')]">
- <xsl:call-template name="fastcontextname"/>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="fastattributebodyrefs">
- <xsl:for-each select=".//rng:ref[not(ancestor::rng:element or ancestor::rng:attribute)]">
- <xsl:variable name="contextname">
- <xsl:call-template name="fastcontextnameforref"/>
- </xsl:variable>
- <xsl:if test="string-length($contextname) > 0">
- <xsl:text>
- OOXMLFastHelper &lt;</xsl:text>
- <xsl:value-of select="$contextname"/>
- <xsl:text>&gt;::attributes(this, Attribs);</xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:template>
-
- <!--
- Generates definition of method attributes for current <define>
- -->
- <xsl:template name="fastattribute">
- <xsl:variable name="resource">
- <xsl:call-template name="contextresource"/>
- </xsl:variable>
- <!--<xsl:if test="not($resource='Shape')"> -->
- <xsl:variable name="body">
- <xsl:call-template name="fastattributebody"/>
- </xsl:variable>
- <xsl:variable name="bodyrefs">
- <xsl:call-template name="fastattributebodyrefs"/>
- </xsl:variable>
- <xsl:if test="string-length($body) > 0 or string-length($bodyrefs) > 0">
- <xsl:text>
-void </xsl:text>
-<xsl:call-template name="fastcontextname"/>
-<xsl:text>::attributes
-(const uno::Reference &lt; xml::sax::XFastAttributeList &gt; &amp; Attribs)
- throw (uno::RuntimeException, xml::sax::SAXException)
-{
-#ifdef DEBUG_DUMP_ATTRIBUTES
- dumpAttribs(Attribs);
-#endif
-</xsl:text>
-<xsl:value-of select="$body"/>
-<xsl:value-of select="$bodyrefs"/>
-<xsl:text>
-}
-</xsl:text>
- </xsl:if>
- <!-- </xsl:if> -->
- </xsl:template>
-
- <xsl:template name="fastelementcreatestatement">
- <xsl:for-each select=".//rng:ref">
- <xsl:choose>
- <xsl:when test="@name='BUILT_IN_ANY_TYPE'">
- <xsl:text>createFromStart(Element, Attribs)</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="classname">
- <xsl:call-template name="fastcontextname"/>
- </xsl:variable>
- <xsl:if test="string-length($classname) > 0">
- <xsl:text>OOXMLFastHelper &lt;</xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text>&gt;::createAndSetParent(this, Element, </xsl:text>
- <xsl:for-each select="ancestor::rng:element">
- <xsl:variable name="id">
- <xsl:call-template name="idforelement"/>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="string-length($id) > 0">
- <xsl:value-of select="$id"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>0</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- <xsl:text>)</xsl:text>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </xsl:template>
-
- <!--
- Generates name for parent class of fast context.
- -->
- <xsl:template name="fastresourceclass">
- <xsl:text>OOXMLFastContextHandler</xsl:text>
- <xsl:call-template name="contextresource"/>
- </xsl:template>
-
- <!--
- Generates the declaration of the fast context for the current <define>
- -->
- <xsl:template name="fastcontextdecl">
- <xsl:variable name="classname">
- <xsl:call-template name="fastcontextname"/>
- </xsl:variable>
- <xsl:text>
-class WRITERFILTER_DLLPRIVATE </xsl:text>
-<xsl:value-of select="$classname"/>
-<xsl:text>: public </xsl:text>
-<xsl:call-template name="fastresourceclass"/>
-<xsl:text>
-{
-public:
- explicit </xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text>
- (OOXMLFastContextHandler * context);
- virtual ~</xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text>();
- </xsl:text>
- <xsl:variable name="createchildcontextbody">
- <xsl:call-template name="createfastchildcontext"/>
- </xsl:variable>
- <xsl:if test="string-length($createchildcontextbody) > 0">
- virtual uno::Reference &lt; xml::sax::XFastContextHandler &gt;
- lcl_createFastChildContext
- (::sal_Int32 Element,
- const uno::Reference &lt; xml::sax::XFastAttributeList &gt; &amp; Attribs)
- throw (uno::RuntimeException, xml::sax::SAXException);
- </xsl:if>
- <xsl:variable name="fastattributebody">
- <xsl:call-template name="fastattribute"/>
- </xsl:variable>
- <xsl:if test="string-length($fastattributebody) > 0">
- virtual void attributes
- (const uno::Reference &lt; xml::sax::XFastAttributeList &gt; &amp; Attribs)
- throw (uno::RuntimeException, xml::sax::SAXException);
- </xsl:if>
- <xsl:variable name="faststartactionbody">
- <xsl:call-template name="faststartaction"/>
- </xsl:variable>
- <xsl:if test="string-length($faststartactionbody)">
- virtual void lcl_startAction(Token_t nElement);
- </xsl:if>
- <xsl:variable name="fastendactionbody">
- <xsl:call-template name="fastendaction"/>
- </xsl:variable>
- <xsl:if test="string-length($fastendactionbody)">
- virtual void lcl_endAction(Token_t nElement);
- </xsl:if>
- <xsl:variable name="fastcharactersbody">
- <xsl:call-template name="fastcharacters"/>
- </xsl:variable>
- <xsl:if test="string-length($fastcharactersbody)">
- virtual void lcl_characters(const ::rtl::OUString &amp; aChars)
- throw (uno::RuntimeException, xml::sax::SAXException);
- </xsl:if>
- <xsl:text>
- virtual string getType() const { return "</xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text>"; }</xsl:text>
- <xsl:variable name="propagatespropsbody">
- <xsl:call-template name="propagatesproperties"/>
- </xsl:variable>
- <xsl:if test="string-length($propagatespropsbody)">
- <xsl:text>
- virtual bool propagatesProperties() const;</xsl:text>
- </xsl:if>
- <xsl:text>
-};
- </xsl:text>
- </xsl:template>
-
- <xsl:template name="fastcontextdecls">
- <xsl:param name="namespace"/>
- <xsl:for-each select="/model/namespace[@name=$namespace]">
- <xsl:for-each select="./rng:grammar/rng:define">
- <xsl:variable name="do">
- <xsl:call-template name="classfordefine"/>
- </xsl:variable>
- <xsl:text>
-/*
- </xsl:text>
- <xsl:value-of select="ancestor::namespace/@name"/>
- <xsl:text>:</xsl:text>
- <xsl:value-of select="@name"/>
- <xsl:text>
-*/</xsl:text>
-<xsl:if test="$do = '1'">
- <xsl:call-template name="fastcontextdecl"/>
-</xsl:if>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="fastcontextconstructor">
- <xsl:variable name="classname">
- <xsl:call-template name="fastcontextname"/>
- </xsl:variable>
- <xsl:value-of select="$classname"/>
- <xsl:text>::</xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text>
-(OOXMLFastContextHandler * pContext)
-: </xsl:text>
-<xsl:call-template name="fastresourceclass"/>
-<xsl:text>(pContext)
-{}
-</xsl:text>
- </xsl:template>
-
- <xsl:template name="fastcontextdestructor">
- <xsl:variable name="classname">
- <xsl:call-template name="fastcontextname"/>
- </xsl:variable>
- <xsl:value-of select="$classname"/>
- <xsl:text>::~</xsl:text>
- <xsl:value-of select="$classname"/>
- <xsl:text>
-()
-{}
-</xsl:text>
- </xsl:template>
-
- <xsl:template name="faststartactionbodysetid">
- <xsl:if test="@resource = 'Table' or @resource='PropertyTable'">
- <xsl:text>
- setId(</xsl:text>
- <xsl:call-template name="idtoqname">
- <xsl:with-param name="id" select="@tokenid"/>
- </xsl:call-template>
- <xsl:text>);</xsl:text>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="faststartactionbodychooseaction">
- <xsl:for-each select="./action[@name='start']">
- <xsl:call-template name="chooseaction"/>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="faststartactionbody">
- <xsl:variable name="name" select="@name"/>
- <xsl:for-each select="ancestor::namespace/resource[@name = $name]">
- <xsl:call-template name="faststartactionbodysetid"/>
- <xsl:call-template name="faststartactionbodychooseaction"/>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="faststartaction">
- <xsl:variable name="body">
- <xsl:call-template name="faststartactionbody"/>
- </xsl:variable>
- <xsl:variable name="name" select="@name"/>
- <xsl:if test="string-length($body) > 0">
- <xsl:variable name="classname">
- <xsl:call-template name="fastcontextname"/>
- </xsl:variable>
- <xsl:text>
-void </xsl:text>
-<xsl:value-of select="$classname"/>
-<xsl:text>::lcl_startAction(Token_t</xsl:text>
-<xsl:for-each select="ancestor::namespace/resource[@name=$name]">
- <xsl:if test="./element/action[@name='start']">
- <xsl_text> nElement</xsl_text>
- </xsl:if>
-</xsl:for-each>
-<xsl:text>)
-{</xsl:text>
-<xsl:value-of select="$body"/>
-<xsl:text>
-}
-</xsl:text>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="fastendactionbody">
- <xsl:variable name="name" select="@name"/>
- <xsl:for-each select="ancestor::namespace/resource[@name = $name]">
- <xsl:for-each select="./action[@name='end']">
- <xsl:call-template name="chooseaction"/>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="fastendaction">
- <xsl:variable name="body">
- <xsl:call-template name="fastendactionbody"/>
- </xsl:variable>
- <xsl:variable name="name" select="@name"/>
- <xsl:if test="string-length($body) > 0">
- <xsl:variable name="classname">
- <xsl:call-template name="fastcontextname"/>
- </xsl:variable>
- <xsl:text>
-void </xsl:text>
-<xsl:value-of select="$classname"/>
-<xsl:text>::lcl_endAction(Token_t</xsl:text>
-<xsl:for-each select="ancestor::namespace/resource[@name=$name]">
- <xsl:if test="./element/action[@name='end']">
- <xsl_text> nElement</xsl_text>
- </xsl:if>
-</xsl:for-each>
-<xsl:text>)
-{</xsl:text>
-<xsl:value-of select="$body"/>
-<xsl:text>
-}
-</xsl:text>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="fastcharactersbody">
- <xsl:variable name="name" select="@name"/>
- <!-- ST values as text -->
- <xsl:variable name="resource">
- <xsl:call-template name="contextresource"/>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$resource = 'StringValue'">
- <xsl:call-template name="fastcharactersstringvalue"/>
- </xsl:when>
- <xsl:when test="$resource = 'IntegerValue'">
- <xsl:call-template name="fastcharactersintvalue"/>
- </xsl:when>
- <xsl:when test="$resource = 'HexValue'">
- <xsl:call-template name="fastcharactershexvalue"/>
- </xsl:when>
- <xsl:when test="$resource = 'BooleanValue'">
- <xsl:call-template name="fastcharactersboolvalue"/>
- </xsl:when>
- <xsl:when test="$resource = 'ListValue'">
- <xsl:call-template name="fastcharacterslistvalue"/>
- </xsl:when>
- </xsl:choose>
-
- <!-- characters action -->
- <xsl:for-each select="ancestor::namespace/resource[@name = $name]//action[@name='characters']">
- <xsl:call-template name="chooseaction"/>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="fastcharacters">
- <xsl:variable name="body">
- <xsl:call-template name="fastcharactersbody"/>
- </xsl:variable>
- <xsl:if test="string-length($body) > 0">
- <xsl:variable name="classname">
- <xsl:call-template name="fastcontextname"/>
- </xsl:variable>
- <xsl:text>
-void </xsl:text>
-<xsl:value-of select="$classname"/>
-<xsl:text>::lcl_characters(const ::rtl::OUString &amp; sText)
- throw (uno::RuntimeException, xml::sax::SAXException)
-{</xsl:text>
-<xsl:value-of select="$body"/>
-<xsl:text>
-}
-</xsl:text>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="propagatespropertiesbody">
- <xsl:variable name="name" select="@name"/>
- <xsl:for-each select="ancestor::namespace/resource[@name=$name]">
- <xsl:for-each select=".//action">
- <xsl:choose>
- <xsl:when test="@name='propagateCharacterProperties'">
- <xsl:text>
- return true;</xsl:text>
- </xsl:when>
- <xsl:when test="@name='propagateTableProperties'">
- <xsl:text>
- return true;</xsl:text>
- </xsl:when>
- </xsl:choose>
- </xsl:for-each>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:template name="propagatesproperties">
- <xsl:variable name="body">
- <xsl:call-template name="propagatespropertiesbody"/>
- </xsl:variable>
- <xsl:if test="string-length($body) > 0">
- <xsl:variable name="classname">
- <xsl:call-template name="fastcontextname"/>
- </xsl:variable>
- <xsl:text>
-bool </xsl:text>
-<xsl:value-of select="$classname"/>
-<xsl:text>::propagatesProperties() const
-{</xsl:text>
- <xsl:value-of select="$body"/>
- <xsl:text>
-}
- </xsl:text>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="fastcontextcreatefromstart">
- <xsl:text>
-uno::Reference &lt; xml::sax::XFastContextHandler &gt;
-OOXMLFastContextHandler::createFromStart
-(::sal_Int32 Element,
- const uno::Reference &lt; xml::sax::XFastAttributeList &gt; &amp; Attribs)
-{
-#ifdef DEBUG_CREATE
- debug_logger-&gt;startElement("createfromstart");
- debug_logger-&gt;attribute("element", fastTokenToId(Element));
-#endif
- uno::Reference &lt; xml::sax::XFastContextHandler &gt; xResult;</xsl:text>
-
- <xsl:for-each select="//namespace/start">
- <xsl:variable name="name" select="@name"/>
- <xsl:for-each select="ancestor::namespace/rng:grammar/rng:define[@name=$name]">
- <xsl:text>
- if (! xResult.is() || dynamic_cast&lt;OOXMLFastContextHandler *&gt;(xResult.get())->isFallback())
- {
- xResult = OOXMLFastHelper &lt; </xsl:text>
- <xsl:call-template name="fastcontextname"/>
- <xsl:text> &gt;::createAndSetParentRef(this, Element, Attribs);
- }</xsl:text>
- </xsl:for-each>
- </xsl:for-each>
- <xsl:text>
-
-#ifdef DEBUG_CREATE
- debug_logger-&gt;endElement("createfromstart");
-#endif
-
- return xResult;
-}
- </xsl:text>
- </xsl:template>
-
- <xsl:key name="attribs-qnames" match="rng:attribute" use="@qname"/>
-
- <xsl:template name="dumpattribs">
- <xsl:text>
-void dumpAttrib(const char * sToken, sal_uInt32 nToken,
- const uno::Reference &lt; xml::sax::XFastAttributeList
- &gt; &amp; Attribs)
-{
- try
- {
- if (Attribs->hasAttribute(nToken))
- {
- debug_logger-&gt;startElement("attrib");
- debug_logger-&gt;attribute("id", sToken);
- debug_logger-&gt;chars(Attribs->getValue(nToken));
- debug_logger-&gt;endElement("attrib");
- }
- }
- catch (...)
- {
- debug_logger-&gt;startElement("error");
- debug_logger-&gt;chars(sToken);
- debug_logger-&gt;endElement("error");
- }
-}
-
-void dumpAttribs
-(const uno::Reference &lt; xml::sax::XFastAttributeList &gt; &amp; Attribs)
- throw (uno::RuntimeException, xml::sax::SAXException)
-{
- debug_logger-&gt;startElement("attribs");
- </xsl:text>
- <xsl:for-each select="//rng:attribute[@name]">
- <xsl:if test="generate-id(.) = generate-id(key('attribs-qnames', @qname)[1]
-)">
- <xsl:text>
- dumpAttrib("</xsl:text>
- <xsl:call-template name="fastlocalname"/>
- <xsl:text>", </xsl:text>
- <xsl:call-template name="fastlocalname"/>
- <xsl:text>, Attribs);</xsl:text>
- <xsl:text>
- dumpAttrib("</xsl:text>
- <xsl:call-template name="fasttoken"/>
- <xsl:text>", </xsl:text>
- <xsl:call-template name="fasttoken"/>
- <xsl:text>, Attribs);</xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text>
- debug_logger-&gt;endElement("attribs");
-}</xsl:text>
- </xsl:template>
-
-<xsl:template name="createfastchildcontextname">
- <xsl:text>createFastContextHandler_</xsl:text>
- <xsl:value-of select="@name"/>
-</xsl:template>
-
-<xsl:template name="caselabeldefine">
- <xsl:text>case CLASS_</xsl:text>
- <xsl:value-of select="translate(ancestor::namespace/@name, '-', '_')"/>
- <xsl:text>_</xsl:text>
- <xsl:value-of select="@name"/>
- <xsl:text>:</xsl:text>
-</xsl:template>
-
-<xsl:template name="createfastchildcontextswitchbodyref">
- <xsl:variable name="definename">
- <xsl:call-template name="searchdefinenamespace">
- <xsl:with-param name="name" select="@name"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:for-each select="/model/namespace[@name=substring-before($definename, ':')]">
- <xsl:for-each select="./rng:grammar/rng:define[@name=substring-after($definename, ':')]">
- <xsl:call-template name="createfastchildcontextswitchbody"/>
- </xsl:for-each>
- </xsl:for-each>
-</xsl:template>
-
-<xsl:template name="createfastchildcontextswitchbody">
- <xsl:for-each select=".//rng:element">
- <xsl:text>
- </xsl:text>
- <xsl:call-template name="caselabelfasttoken"/>
- <xsl:text>
- xResult.set(</xsl:text>
- <xsl:call-template name="fastelementcreatestatement"/>
- <xsl:text>);
- break;</xsl:text>
- </xsl:for-each>
- <xsl:for-each
- select=".//rng:ref[not(ancestor::rng:element or ancestor::rng:attribute)]">
- <xsl:call-template name="createfastchildcontextswitchbodyref"/>
- </xsl:for-each>
-</xsl:template>
-
-<xsl:template name="createfastchildcontextswitch">
- <xsl:variable name="body">
- <xsl:call-template name="createfastchildcontextswitchbody"/>
- </xsl:variable>
- <xsl:if test="string-length($body) > 0">
- <xsl:text>
- switch(Element)
- {</xsl:text>
- <xsl:value-of select="$body"/>
- <xsl:text>
- default:
- ;
- }</xsl:text>
- </xsl:if>
-</xsl:template>
-
-<xsl:template name="createfastchildcontextlookup">
- <xsl:text>
-uno::Reference&lt;XFastContextHandler&gt; </xsl:text>
-<xsl:call-template name="createfastchildcontextname"/>
-<xsl:text>(Id parent, Token_t Element)
-{
- uno::Reference&lt;XFastContextHandler&gt; xResult;
- switch (parent)
- {</xsl:text>
-<xsl:for-each select="./rng:grammar/rng:define">
- <xsl:variable name="do">
- <xsl:call-template name="classfordefine"/>
- </xsl:variable>
- <xsl:if test="$do='1'">
- <xsl:variable name="casebody">
- <xsl:call-template name="createfastchildcontextswitch"/>
- </xsl:variable>
- <xsl:if test="string-length($casebody) > 0">
- <xsl:text>
- </xsl:text>
- <xsl:call-template name="caselabeldefine"/>
- <xsl:value-of select="$casebody"/>
- <xsl:text>
- break;</xsl:text>
- </xsl:if>
- </xsl:if>
-</xsl:for-each>
-<xsl:text>
- default:
- ;
- }
-
- return xResult;
-}
-</xsl:text>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/writerfilter/source/ooxml/status.sh b/writerfilter/source/ooxml/status.sh
new file mode 100755
index 000000000000..e06382b13aa1
--- /dev/null
+++ b/writerfilter/source/ooxml/status.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+SEARCHIN=$SRC_ROOT/writerfilter/source/dmapper
+
+(
+echo '<?xml version="1.0"?>'
+echo "<stage1>"
+
+xsltproc analyzemodel.xsl model.xml | tail -n +2
+
+mdfind -onlyin $SEARCHIN "case NS_" |
+xargs -J % grep -A 1 -n "case NS_" % |
+grep "cxx" |
+grep -v "//.*case NS_" |
+sed 's#'$SEARCHIN'##' |
+sed 's#\(^[^:]*\):\([0-9]*\):#<qname file="\1" line="\2"#' |
+sed 's#[/* ]*case \(NS_.*\):.*# qname="\1"/>#' |
+sed 's#.*WRITERFILTERSTATUS: done: \([0-9]*\), planned: \([0-9.]*\), spent: \([0-9.]*\).*#<status done="\1" planned="\2" spent="\3"/>#' |
+grep -v "WRITERFILTERSTATUS:" |
+sed 's#^.*-[0-9][0-9]*-.*$#<nostatus/>#' |
+grep -v "^--"
+
+echo "</stage1>"
+) |
+xsltproc analyzestage2.xsl - |
+xsltproc analyzestage3.xsl -
diff --git a/writerfilter/source/ooxml/todo.xsl b/writerfilter/source/ooxml/todo.xsl
new file mode 100644
index 000000000000..80431ea90487
--- /dev/null
+++ b/writerfilter/source/ooxml/todo.xsl
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:rng="http://relaxng.org/ns/structure/1.0">
+
+<xsl:output method="xml" indent="yes"/>
+
+<xsl:template match="/">
+ <todo>
+ <xsl:for-each select="/stage3">
+ <xsl:for-each select="attribute|element">
+ <xsl:choose>
+ <xsl:when test="@qname and @resource='Properties' and not(file)">
+ <xsl:copy-of select="."/>
+ </xsl:when>
+ <xsl:when test="@qname and file/status[number(@done) &lt; 100 and number(@planned) &gt; 0]">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:copy-of select="file[status[number(@done) &lt; 100 and number(@planned) &gt; 0]]"/>
+ </xsl:copy>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:for-each>
+ </todo>
+</xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/ooxml/valuesimpl.xsl b/writerfilter/source/ooxml/valuesimpl.xsl
deleted file mode 100644
index 64be68700ad5..000000000000
--- a/writerfilter/source/ooxml/valuesimpl.xsl
+++ /dev/null
@@ -1,85 +0,0 @@
-<!--
-/*************************************************************************
- *
- DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-
- Copyright 2000, 2010 Oracle and/or its affiliates.
-
- OpenOffice.org - a multi-platform office productivity suite
-
- This file is part of OpenOffice.org.
-
- OpenOffice.org is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License version 3
- only, as published by the Free Software Foundation.
-
- OpenOffice.org is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License version 3 for more details
- (a copy is included in the LICENSE file that accompanied this code).
-
- You should have received a copy of the GNU Lesser General Public License
- version 3 along with OpenOffice.org. If not, see
- <http://www.openoffice.org/license.html>
- for a copy of the LGPLv3 License.
-
- ************************************************************************/
-
--->
-<xsl:stylesheet
- version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
- xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
- xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
- xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
- xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
- xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
- xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
- xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
- xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
- xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
- xmlns:math="http://www.w3.org/1998/Math/MathML"
- xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
- xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
- xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
- xmlns:ooo="http://openoffice.org/2004/office"
- xmlns:ooow="http://openoffice.org/2004/writer"
- xmlns:oooc="http://openoffice.org/2004/calc"
- xmlns:dom="http://www.w3.org/2001/xml-events"
- xmlns:xforms="http://www.w3.org/2002/xforms"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:rng="http://relaxng.org/ns/structure/1.0"
- xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
- xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
- <xsl:output method="text" />
- <xsl:param name="prefix"/>
-
- <xsl:include href="resourcestools.xsl"/>
-
- <xsl:template match="/">
- <out xml:space="preserve">
- <xsl:call-template name="licenseheader"/>
- <xsl:text>
-#include &lt;iostream&gt;
-#include &lt;doctok/resourceids.hxx&gt;
-#include &lt;ooxml/resourceids.hxx&gt;
-#include "OOXMLvalues.hxx"
-#include "OOXMLPropertySetImpl.hxx"
-
-namespace writerfilter {
-namespace ooxml {
-using namespace ::std;
- </xsl:text>
- <xsl:call-template name="valueconstants"/>
- <xsl:call-template name="valueimpls"/>
- <xsl:text>
-}}&#xa;</xsl:text></out></xsl:template>
-
-</xsl:stylesheet> \ No newline at end of file
diff --git a/writerfilter/source/resourcemodel/Protocol.cxx b/writerfilter/source/resourcemodel/Protocol.cxx
new file mode 100644
index 000000000000..7ae3c06f2675
--- /dev/null
+++ b/writerfilter/source/resourcemodel/Protocol.cxx
@@ -0,0 +1,216 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: WW8ResourceModel.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.
+ *
+ ************************************************************************/
+
+#include <stdio.h>
+#include <rtl/ustrbuf.hxx>
+#include <resourcemodel/Protocol.hxx>
+#include <resourcemodel/WW8ResourceModel.hxx>
+#include <resourcemodel/QNameToString.hxx>
+namespace writerfilter
+{
+
+/*
+ StreamProtocol
+*/
+
+StreamProtocol::StreamProtocol(Stream * pStream,
+ TagLogger::Pointer_t pTagLogger)
+ : m_pStream(pStream), m_pTagLogger(pTagLogger)
+{
+}
+
+StreamProtocol::~StreamProtocol()
+{
+}
+
+void StreamProtocol::startSectionGroup()
+{
+ m_pTagLogger->element("protocol-startSectionGroup");
+ m_pStream->startSectionGroup();
+}
+
+void StreamProtocol::endSectionGroup()
+{
+ m_pTagLogger->element("protocol-endSectionGroup");
+ m_pStream->endSectionGroup();
+}
+
+void StreamProtocol::startParagraphGroup()
+{
+ m_pTagLogger->element("protocol-startParagraphGroup");
+ m_pStream->startParagraphGroup();
+}
+
+void StreamProtocol::endParagraphGroup()
+{
+ m_pTagLogger->element("protocol-endParagraphGroup");
+ m_pStream->endParagraphGroup();
+}
+
+void StreamProtocol::startCharacterGroup()
+{
+ m_pTagLogger->element("protocol-startCharacterGroup");
+ m_pStream->startCharacterGroup();
+}
+
+void StreamProtocol::endCharacterGroup()
+{
+ m_pTagLogger->element("protocol-endCharacterGroup");
+ m_pStream->endCharacterGroup();
+}
+
+void StreamProtocol::text(const sal_uInt8 * data, size_t len)
+{
+ ::rtl::OUString sText((const sal_Char*) data, len,
+ RTL_TEXTENCODING_MS_1252);
+ m_pTagLogger->startElement("protocol-text");
+ m_pTagLogger->chars(sText);
+ m_pTagLogger->endElement("protocol-text");
+
+ m_pStream->text(data, len);
+}
+
+void StreamProtocol::utext(const sal_uInt8 * data, size_t len)
+{
+ ::rtl::OUString sText;
+ ::rtl::OUStringBuffer aBuffer = ::rtl::OUStringBuffer(len);
+ aBuffer.append( (const sal_Unicode *) data, len);
+ sText = aBuffer.makeStringAndClear();
+
+ m_pTagLogger->startElement("protocol-utext");
+ m_pTagLogger->chars(sText);
+ m_pTagLogger->endElement("protocol-utext");
+
+ m_pStream->utext(data, len);
+}
+
+void StreamProtocol::props(writerfilter::Reference<Properties>::Pointer_t ref)
+{
+ m_pTagLogger->startElement("protocol-props");
+ m_pStream->props(ref);
+ m_pTagLogger->endElement("protocol-props");
+}
+
+void StreamProtocol::table(Id name,
+ writerfilter::Reference<Table>::Pointer_t ref)
+{
+ m_pTagLogger->startElement("protocol-table");
+ m_pTagLogger->attribute("name", (*QNameToString::Instance())(name));
+ m_pStream->table(name, ref);
+ m_pTagLogger->endElement("protocol-table");
+}
+
+void StreamProtocol::substream(Id name,
+ writerfilter::Reference<Stream>::Pointer_t ref)
+{
+ m_pTagLogger->startElement("protocol-substream");
+ m_pTagLogger->attribute("name", (*QNameToString::Instance())(name));
+
+ m_pStream->substream(name, ref);
+ m_pTagLogger->endElement("protocol-substream");
+}
+
+void StreamProtocol::info(const string & rInfo)
+{
+ m_pStream->info(rInfo);
+}
+
+void StreamProtocol::startShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape )
+{
+ m_pTagLogger->element("protocol-startShape");
+
+ m_pStream->startShape(xShape);
+}
+
+void StreamProtocol::endShape()
+{
+ m_pTagLogger->element("protocol-endShape");
+
+ m_pStream->endShape();
+}
+
+/*
+ PropertiesProtocol
+*/
+
+PropertiesProtocol::PropertiesProtocol(Properties * pProperties,
+ TagLogger::Pointer_t pTagLogger)
+: m_pProperties(pProperties), m_pTagLogger(pTagLogger)
+{
+}
+
+PropertiesProtocol::~PropertiesProtocol()
+{
+}
+
+void PropertiesProtocol::attribute(Id name, Value & val)
+{
+ m_pTagLogger->startElement("protocol-attribute");
+ m_pTagLogger->attribute("name", (*QNameToString::Instance())(name));
+ m_pTagLogger->attribute("value", val.toString());
+ m_pProperties->attribute(name, val);
+ m_pTagLogger->endElement("protocol-attribute");
+}
+
+void PropertiesProtocol::sprm(Sprm & _sprm)
+{
+ m_pTagLogger->startElement("protocol-sprm");
+ static char sBuffer[256];
+ snprintf(sBuffer, sizeof(sBuffer), "%04" SAL_PRIxUINT32, _sprm.getId());
+ m_pTagLogger->attribute("id", sBuffer);
+ m_pTagLogger->attribute("name", _sprm.getName());
+ m_pTagLogger->chars(_sprm.toString());
+ m_pProperties->sprm(_sprm);
+ m_pTagLogger->endElement("protocol-sprm");
+}
+
+/*
+ TableProtocol
+ */
+
+TableProtocol::TableProtocol(Table * pTable, TagLogger::Pointer_t pTagLogger)
+: m_pTable(pTable), m_pTagLogger(pTagLogger)
+{
+}
+
+TableProtocol::~TableProtocol()
+{
+}
+
+void TableProtocol::entry(int pos,
+ writerfilter::Reference<Properties>::Pointer_t ref)
+{
+ m_pTagLogger->startElement("protocol-entry");
+ m_pTagLogger->attribute("pos", pos);
+ m_pTable->entry(pos, ref);
+ m_pTagLogger->endElement("protocol-entry");
+}
+
+}
diff --git a/writerfilter/source/resourcemodel/TagLogger.cxx b/writerfilter/source/resourcemodel/TagLogger.cxx
index a4baf718a5d7..1d9b23623e56 100644
--- a/writerfilter/source/resourcemodel/TagLogger.cxx
+++ b/writerfilter/source/resourcemodel/TagLogger.cxx
@@ -42,6 +42,20 @@ namespace writerfilter
mAttrs.push_back(aAttr);
}
+ void XMLTag::addAttr(string sName, const ::rtl::OUString & sValue)
+ {
+ addAttr(sName,
+ OUStringToOString
+ (sValue, RTL_TEXTENCODING_ASCII_US).getStr());
+ }
+
+ void XMLTag::addAttr(string sName, sal_uInt32 nValue)
+ {
+ char buffer[256];
+ snprintf(buffer, sizeof(buffer), "%" SAL_PRIdINT32, nValue);
+ addAttr(sName, buffer);
+ }
+
void XMLTag::addTag(XMLTag::Pointer_t pTag)
{
if (pTag != XMLTag::Pointer_t())
@@ -188,6 +202,7 @@ namespace writerfilter
{
XMLTag::Pointer_t pTag(new XMLTag("root"));
mTags.push(pTag);
+ mpRoot = pTag;
}
void TagLogger::element(const string & name)
@@ -210,7 +225,12 @@ namespace writerfilter
void TagLogger::attribute(const string & name, const ::rtl::OUString & value)
{
- attribute(name, OUStringToOString(value, RTL_TEXTENCODING_ASCII_US).getStr());
+ currentTag()->addAttr(name, value);
+ }
+
+ void TagLogger::attribute(const string & name, sal_uInt32 value)
+ {
+ currentTag()->addAttr(name, value);
}
void TagLogger::addTag(XMLTag::Pointer_t pTag)
@@ -230,19 +250,18 @@ namespace writerfilter
void TagLogger::endElement(const string & name)
{
- string nameRemoved;
- bool found = false;
- do
- {
- nameRemoved = currentTag()->getTag();
+ string nameRemoved = currentTag()->getTag();
+
+ if (name == nameRemoved)
mTags.pop();
+ else {
+ XMLTag::Pointer_t pTag(new XMLTag("end.mismatch"));
+ pTag->addAttr("name", name);
+ pTag->addAttr("top", nameRemoved);
- if (name == nameRemoved)
- found = true;
- else
- found = false; // for debugging
+ currentTag()->addTag(pTag);
}
- while (! found && ! mTags.empty());
+
}
void TagLogger::endDocument()
@@ -252,7 +271,7 @@ namespace writerfilter
ostream & TagLogger::output(ostream & o) const
{
- return currentTag()->output(o);
+ return mpRoot->output(o);
}
void TagLogger::dump(const char * name)
@@ -270,7 +289,7 @@ namespace writerfilter
fileName += "/writerfilter.";
fileName += name;
- fileName += ".tmp";
+ fileName += ".xml";
ofstream dumpStream(fileName.c_str());
aIt->second->output(dumpStream);
diff --git a/writerfilter/source/resourcemodel/makefile.mk b/writerfilter/source/resourcemodel/makefile.mk
index 52f89cf2dc7f..f3869f30611b 100644
--- a/writerfilter/source/resourcemodel/makefile.mk
+++ b/writerfilter/source/resourcemodel/makefile.mk
@@ -54,7 +54,8 @@ SLOFILES= \
$(SLO)$/resourcemodel.obj \
$(SLO)$/util.obj \
$(SLO)$/TagLogger.obj \
- $(SLO)$/WW8Analyzer.obj
+ $(SLO)$/WW8Analyzer.obj \
+ $(SLO)$/Protocol.obj
# linux 64 bit: compiler (gcc 4.2.3) fails with 'out of memory'
.IF "$(OUTPATH)"=="unxlngx6"
@@ -101,10 +102,11 @@ OOXMLHXXOUTDIRCREATED=$(OOXMLHXXOUTDIR)$/created
OOXMLMODEL=..$/ooxml$/model.xml
OOXMLPREPROCESSXSL=..$/ooxml$/modelpreprocess.xsl
+OOXMLPREPROCESSXSLCOPIED=$(MISC)$/modelpreprocess.xsl
OOXMLQNAMETOSTRXSL=..$/ooxml$/qnametostr.xsl
OOXMLANALYZERXSL=..$/ooxml$/analyzer.xsl
OOXMLRESOURCEIDSXSL=..$/ooxml$/resourceids.xsl
-OOXMLRESOURCESTOOLSXSL=..$/ooxml$/resourcestools.xsl
+OOXMLFACTORYTOOLSXSL=..$/ooxml$/factorytools.xsl
DOCTOKMODEL=..$/doctok$/resources.xmi
DOCTOKQNAMETOSTRXSL=..$/doctok$/qnametostr.xsl
DOCTOKANALYZERXSL=..$/doctok$/analyzer.xsl
@@ -113,6 +115,8 @@ DOCTOKRESOURCEIDSXSL=..$/doctok$/resourceids.xsl
DOCTOKSPRMIDSXSL=..$/doctok$/sprmids.xsl
DOCTOKRESOURCETOOLS=..$/doctok$/resourcetools.xsl
+NSPROCESS=namespace_preprocess.pl
+
MODELPROCESSED=$(MISC)$/model_preprocessed.xml
QNAMETOSTRCXX=$(RESOURCEMODELCXXOUTDIR)$/qnametostr.cxx
@@ -124,6 +128,9 @@ DOCTOKRESOURCEIDSHXX=$(DOCTOKHXXOUTDIR)$/resourceids.hxx
SPRMIDSHXX=$(DOCTOKHXXOUTDIR)$/sprmids.hxx
OOXMLRESOURCEIDSHXX=$(OOXMLHXXOUTDIR)$/resourceids.hxx
+NSXSL=$(MISC)$/namespacesmap.xsl
+NAMESPACESTXT=$(SOLARVER)$/$(INPATH)$/inc$(UPDMINOREXT)$/oox$/namespaces.txt
+
GENERATEDHEADERS=$(DOCTOKRESOURCEIDSHXX) $(OOXMLRESOURCEIDSHXX) $(SPRMIDSHXX)
GENERATEDFILES= \
$(GENERATEDHEADERS) \
@@ -135,18 +142,19 @@ GENERATEDFILES= \
$(SPRMCODETOSTRTMP)
$(OOXMLQNAMETOSTRTMP): $(OOXMLQNAMETOSTRXSL) $(MODELPROCESSED)
- @echo "Making: " $(@:f)
- $(COMMAND_ECHO)$(XSLTPROC) $(OOXMLQNAMETOSTRXSL:s!\!/!) $(MODELPROCESSED) > $@
+ @echo "Making: " $(@:f)
+ $(XSLTPROC) $(OOXMLQNAMETOSTRXSL:s!\!/!) $(MODELPROCESSED) > $@
$(DOCTOKQNAMETOSTRTMP): $(DOCTOKQNAMETOSTRXSL) $(DOCTOKMODEL)
- @echo "Making: " $(@:f)
- $(COMMAND_ECHO)$(XSLTPROC) $(DOCTOKQNAMETOSTRXSL:s!\!/!) $(DOCTOKMODEL) > $@
+ @echo "Making: " $(@:f)
+ $(XSLTPROC) $(DOCTOKQNAMETOSTRXSL:s!\!/!) $(DOCTOKMODEL) > $@
-$(QNAMETOSTRCXX): $(OOXMLQNAMETOSTRTMP) $(DOCTOKQNAMETOSTRTMP) qnametostrheader qnametostrfooter $(OOXMLRESOURCESTOOLSXSL) $(DOCTOKRESOURCETOOLS)
+$(QNAMETOSTRCXX): $(OOXMLQNAMETOSTRTMP) $(DOCTOKQNAMETOSTRTMP) qnametostrheader qnametostrfooter $(OOXMLFACTORYTOOLSXSL) $(DOCTOKRESOURCETOOLS)
@$(TYPE) qnametostrheader $(OOXMLQNAMETOSTRTMP) $(DOCTOKQNAMETOSTRTMP) qnametostrfooter > $@
+
$(SPRMCODETOSTRTMP): $(DOCTOKSPRMCODETOSTRXSL) $(DOCTOKMODEL)
- @echo "Making: " $(@:f)
- $(COMMAND_ECHO)$(XSLTPROC) $(DOCTOKSPRMCODETOSTRXSL:s!\!/!) $(DOCTOKMODEL) > $@
+ @echo "Making: " $(@:f)
+ $(XSLTPROC) $(DOCTOKSPRMCODETOSTRXSL:s!\!/!) $(DOCTOKMODEL) > $@
$(SPRMCODETOSTRCXX): sprmcodetostrheader $(SPRMCODETOSTRTMP) sprmcodetostrfooter
@$(TYPE) $< > $@
@@ -160,30 +168,36 @@ $(DOCTOKHXXOUTDIRCREATED):
@$(MKDIRHIER) $(DOCTOKHXXOUTDIR)
@$(TOUCH) $@
-$(DOCTOKRESOURCEIDSHXX): $(DOCTOKHXXOUTDIRCREATED) $(DOCTOKRESOURCETOOLS) $(DOCTOKRESOURCEIDSXSL)
- @echo "Making: " $(@:f)
+$(DOCTOKRESOURCEIDSHXX): $(DOCTOKHXXOUTDIRCREATED) $(DOCTOKRESOURCETOOLS) $(DOCTOKRESOURCEIDSXSL) $(DOCTOKMODEL)
+ @echo "Making: " $(@:f)
$(COMMAND_ECHO)$(XSLTPROC) $(DOCTOKRESOURCEIDSXSL:s!\!/!) $(DOCTOKMODEL) > $@
$(OOXMLHXXOUTDIRCREATED):
@$(MKDIRHIER) $(OOXMLHXXOUTDIR)
@$(TOUCH) $@
-$(MODELPROCESSED): $(OOXMLMODEL) $(OOXMLRESOURCESTOOLSXSL) $(OOXMLPREPROCESSXSL)
- @echo "Making: " $(@:f)
- $(COMMAND_ECHO)$(XSLTPROC) $(OOXMLPREPROCESSXSL:s!\!/!) $(OOXMLMODEL) > $@
+$(OOXMLPREPROCESSXSLCOPIED): $(OOXMLPREPROCESSXSL)
+ @$(COPY) $(OOXMLPREPROCESSXSL) $@
+
+$(NSXSL) : $(OOXMLMODEL) $(NAMESPACESTXT) $(NSPROCESS)
+ @$(PERL) $(NSPROCESS) $(NAMESPACESTXT) > $@
-$(OOXMLRESOURCEIDSHXX): $(OOXMLHXXOUTDIRCREATED) $(OOXMLRESOURCESTOOLSXSL) $(OOXMLRESOURCEIDSXSL) $(MODELPROCESSED)
+$(MODELPROCESSED): $(NSXSL) $(OOXMLPREPROCESSXSLCOPIED) $(OOXMLMODEL)
@echo "Making: " $(@:f)
+ $(COMMAND_ECHO)$(XSLTPROC) $(NSXSL) $(OOXMLMODEL) > $@
+
+$(OOXMLRESOURCEIDSHXX): $(OOXMLHXXOUTDIRCREATED) $(OOXMLFACTORYTOOLSXSL) $(OOXMLRESOURCEIDSXSL) $(MODELPROCESSED)
+ @echo "Making: " $(@:f)
$(COMMAND_ECHO)$(XSLTPROC) $(OOXMLRESOURCEIDSXSL:s!\!/!) $(MODELPROCESSED) > $@
$(SPRMIDSHXX): $(DOCTOKHXXOUTDIRCREATED) $(DOCTOKSPRMIDSXSL) $(DOCTOKMODEL)
- @echo "Making: " $(@:f)
+ @echo "Making: " $(@:f)
$(COMMAND_ECHO)$(XSLTPROC) $(DOCTOKSPRMIDSXSL:s!\!/!) $(DOCTOKMODEL) > $@
.PHONY: genclean genmake gendirs
genclean:
- @rm -f $(GENERATEDFILES)
+ rm -f $(GENERATEDFILES)
genmake: $(GENERATEDFILES)
diff --git a/writerfilter/source/ooxml/namespace_preprocess.pl b/writerfilter/source/resourcemodel/namespace_preprocess.pl
index 22c172329f61..22c172329f61 100644
--- a/writerfilter/source/ooxml/namespace_preprocess.pl
+++ b/writerfilter/source/resourcemodel/namespace_preprocess.pl
diff --git a/writerfilter/source/resourcemodel/setdebugflags b/writerfilter/source/resourcemodel/setdebugflags
new file mode 100755
index 000000000000..dafa563d7a7d
--- /dev/null
+++ b/writerfilter/source/resourcemodel/setdebugflags
@@ -0,0 +1,3 @@
+#!/bin/tcsh
+
+setenv ENFCLAGS "-DDEBUG_ELEMENT -DDEBUG_ATTRIBUTES -DDEBUG_PROPERTIES -DDEBUG_CONTEXT_STACK -DDEBUG_CREATE -DDEBUG_DOMAINMAPPER"
diff --git a/writerfilter/source/resourcemodel/util.cxx b/writerfilter/source/resourcemodel/util.cxx
index b7966f6957ea..47d325654d5b 100644
--- a/writerfilter/source/resourcemodel/util.cxx
+++ b/writerfilter/source/resourcemodel/util.cxx
@@ -37,6 +37,7 @@
#include <com/sun/star/text/TextContentAnchorType.hpp>
#include <resourcemodel/WW8ResourceModel.hxx>
#include <resourcemodel/TagLogger.hxx>
+#include <resourcemodel/util.hxx>
namespace writerfilter
{
@@ -397,4 +398,27 @@ string propertysetToString(uno::Reference<beans::XPropertySet> const & xPropSet)
return result;
}
+ string toString(uno::Reference< text::XTextRange > textRange)
+ {
+ string result;
+
+ if (textRange.get())
+ {
+ rtl::OUString aOUStr = textRange->getString();
+ rtl::OString aOStr(aOUStr.getStr(), aOUStr.getLength(), RTL_TEXTENCODING_ASCII_US );
+
+ result = aOStr.getStr();
+ }
+ else
+ {
+ result="(nil)";
+ }
+
+ return result;
+ }
+
+ string toString(const string & rString)
+ {
+ return rString;
+ }
}
diff --git a/writerfilter/unocomponent/debugservices/ooxml/OOXMLTestService.cxx b/writerfilter/unocomponent/debugservices/ooxml/OOXMLTestService.cxx
index 8fa44b224aa5..7a3f80ea22d9 100644
--- a/writerfilter/unocomponent/debugservices/ooxml/OOXMLTestService.cxx
+++ b/writerfilter/unocomponent/debugservices/ooxml/OOXMLTestService.cxx
@@ -64,6 +64,7 @@
#include <com/sun/star/text/XTextDocument.hpp>
#include <com/sun/star/drawing/XDrawPageSupplier.hpp>
#include <ooxml/OOXMLDocument.hxx>
+#include <resourcemodel/TagLogger.hxx>
#include <ctype.h>
@@ -91,6 +92,12 @@ sal_Int32 SAL_CALL ScannerTestService::run( const uno::Sequence< rtl::OUString >
uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
if (::ucbhelper::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
{
+#ifdef DEBUG_ELEMENT
+ writerfilter::TagLogger::Pointer_t debugLogger
+ (writerfilter::TagLogger::getInstance("DEBUG"));
+ debugLogger->startDocument();
+#endif
+
rtl::OUString arg=aArguments[0];
::comphelper::setProcessServiceFactory(xServiceFactory);
@@ -136,6 +143,11 @@ sal_Int32 SAL_CALL ScannerTestService::run( const uno::Sequence< rtl::OUString >
Stream::Pointer_t pStream = createStreamHandler();
pDocument->resolve(*pStream);
+#ifdef DEBUG_ELEMENT
+ writerfilter::TagLogger::dump("DEBUG");
+ debugLogger->endDocument();
+#endif
+
::ucbhelper::ContentBroker::deinitialize();
}
else
diff --git a/writerfilter/util/exports.map b/writerfilter/util/exports.map
deleted file mode 100644
index be4802aef7ab..000000000000
--- a/writerfilter/util/exports.map
+++ /dev/null
@@ -1,9 +0,0 @@
-WFT_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
-
diff --git a/writerfilter/util/makefile.mk b/writerfilter/util/makefile.mk
index c9736f4167d7..f5981222743c 100644
--- a/writerfilter/util/makefile.mk
+++ b/writerfilter/util/makefile.mk
@@ -66,7 +66,7 @@ SHL1STDLIBS=\
SHL1DEPN=
SHL1IMPLIB= i$(SHL1TARGET)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
diff --git a/writerperfect/util/makefile.mk b/writerperfect/util/makefile.mk
index 4da935247054..dca29e005287 100644
--- a/writerperfect/util/makefile.mk
+++ b/writerperfect/util/makefile.mk
@@ -39,7 +39,7 @@ SHL1STDLIBS+= \
SHL1TARGET = wpft$(DLLPOSTFIX)
SHL1IMPLIB = i$(SHL1TARGET)
SHL1LIBS = $(LIB1TARGET)
-SHL1VERSIONMAP=wpft.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
.INCLUDE : target.mk
diff --git a/writerperfect/util/wpft.map b/writerperfect/util/wpft.map
deleted file mode 100644
index 7152f7ebd013..000000000000
--- a/writerperfect/util/wpft.map
+++ /dev/null
@@ -1,8 +0,0 @@
-WPFT_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/xmlhelp/source/com/sun/star/help/makefile.mk b/xmlhelp/source/com/sun/star/help/makefile.mk
index c7c5bd44b6df..ffa08b30cfed 100644
--- a/xmlhelp/source/com/sun/star/help/makefile.mk
+++ b/xmlhelp/source/com/sun/star/help/makefile.mk
@@ -48,8 +48,8 @@ ADDFILES = $(subst,$(SOLARBINDIR)$/help,$(CLASSDIR) $(TRANSEX3FILES))
JARFILES = ridl.jar jurt.jar unoil.jar juh.jar
.IF "$(SYSTEM_LUCENE)" == "YES"
-XCLASSPATH!:=$(XCLASSPATH)$(PATH_SEPERATOR)$(LUCENE_CORE_JAR)$(PATH_SEPERATOR)$(LUCENE_ANALYZERS_JAR)
-JARCLASSPATH = file://$(LUCENE_CORE_JAR) file://$(LUCENE_ANALYZERS_JAR)
+EXTRAJARFILES = $(LUCENE_CORE_JAR) $(LUCENE_ANALYZERS_JAR)
+JARCLASSPATH = $(EXTRAJARFILES)
.ELSE
JARFILES += lucene-core-2.3.jar lucene-analyzers-2.3.jar
JARCLASSPATH = lucene-core-2.3.jar lucene-analyzers-2.3.jar
diff --git a/xmlhelp/source/treeview/makefile.mk b/xmlhelp/source/treeview/makefile.mk
index df01c8a55ec7..0c385862d772 100644
--- a/xmlhelp/source/treeview/makefile.mk
+++ b/xmlhelp/source/treeview/makefile.mk
@@ -58,7 +58,7 @@ SHL1STDLIBS=\
$(COMPHELPERLIB) \
$(EXPATASCII3RDLIB) \
$(SALLIB)
-SHL1VERSIONMAP= $(TARGET).map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
DEF1DES=UCB : Treeview help
diff --git a/xmlhelp/source/treeview/tvhlp.map b/xmlhelp/source/treeview/tvhlp.map
deleted file mode 100644
index d432afe36358..000000000000
--- a/xmlhelp/source/treeview/tvhlp.map
+++ /dev/null
@@ -1,9 +0,0 @@
-TVHLP_1_0 {
- global:
- GetVersionInfo;
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-}; \ No newline at end of file
diff --git a/xmlhelp/util/exports.map b/xmlhelp/util/exports.map
deleted file mode 100644
index 14a2531f23ad..000000000000
--- a/xmlhelp/util/exports.map
+++ /dev/null
@@ -1,8 +0,0 @@
-VERS_1_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/xmlhelp/util/makefile.mk b/xmlhelp/util/makefile.mk
index e6cd48d34c52..10206670b5f8 100644
--- a/xmlhelp/util/makefile.mk
+++ b/xmlhelp/util/makefile.mk
@@ -50,7 +50,7 @@ CFLAGS+=-GR
SHL1TARGET=$(TARGET)$(UCP_VERSION)
SHL1DEF=$(MISC)$/$(SHL1TARGET).def
SHL1IMPLIB=i$(TARGET)
-SHL1VERSIONMAP=exports.map
+SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# Add additional libs here.
SHL1STDLIBS= \
diff --git a/xmloff/prj/build.lst b/xmloff/prj/build.lst
index 8817d4590715..7b68ed08ff82 100644
--- a/xmloff/prj/build.lst
+++ b/xmloff/prj/build.lst
@@ -14,3 +14,4 @@ xo xmloff\source\transform nmake - all xo_transform xo_util
xo xmloff\source\xforms nmake - all xo_xforms xo_inc NULL
xo xmloff\source\table nmake - all xo_table xo_inc NULL
xo xmloff\util nmake - all xo_util xo_chart xo_core xo_draw xo_forms xo_meta xo_script xo_style xo_text xo_xforms xo_table NULL
+xo xmloff\qa\unoapi nmake - all xo_qa_unoapi NULL
diff --git a/xmloff/qa/unoapi/Test.java b/xmloff/qa/unoapi/Test.java
new file mode 100644
index 000000000000..d66144f108e7
--- /dev/null
+++ b/xmloff/qa/unoapi/Test.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General 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 org.openoffice.xmloff.qa.unoapi;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+public final class Test {
+ @org.junit.Before public void setUp() throws Exception {
+ connection.setUp();
+ }
+
+ @org.junit.After public void tearDown()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test public void test() {
+ assertTrue(
+ Runner.run(
+ "-sce", "xmloff.sce", "-xcl", "knownissues.xcl", "-tdoc",
+ "testdocuments", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/xmloff/qa/unoapi/makefile.mk b/xmloff/qa/unoapi/makefile.mk
index 0b8d1ebf9228..3cbbc5f2a797 100644
--- a/xmloff/qa/unoapi/makefile.mk
+++ b/xmloff/qa/unoapi/makefile.mk
@@ -1,7 +1,6 @@
#*************************************************************************
-#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -22,19 +21,28 @@
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
+#***********************************************************************/
-PRJ=..$/..
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJNAME=xmloff
-TARGET=qa_unoapi
+PRJ = ../..
+PRJNAME = xmloff
+TARGET = qa_unoapi
-.INCLUDE: settings.mk
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = org/openoffice/xmloff/qa/unoapi
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar ridl.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+.INCLUDE: settings.mk
.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-ALLTAR : UNOAPI_TEST
+ALLTAR : javatest
-UNOAPI_TEST:
- +$(SOLARENV)$/bin$/checkapi -sce xmloff.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments
+.END
diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx
index f310150e9ade..4c52cc2ce4cb 100644
--- a/xmloff/source/core/xmlexp.cxx
+++ b/xmloff/source/core/xmlexp.cxx
@@ -1314,6 +1314,23 @@ void SvXMLExport::SetBodyAttributes()
{
}
+static void
+lcl_AddGrddl(SvXMLExport & rExport, const sal_Int32 nExportMode)
+{
+ // check version >= 1.2
+ switch (rExport.getDefaultVersion()) {
+ case SvtSaveOptions::ODFVER_011: // fall thru
+ case SvtSaveOptions::ODFVER_010: return;
+ default: break;
+ }
+
+ if (EXPORT_SETTINGS != nExportMode) // meta, content, styles
+ {
+ rExport.AddAttribute( XML_NAMESPACE_GRDDL, XML_TRANSFORMATION,
+ OUString::createFromAscii(s_grddl_xsl) );
+ }
+}
+
sal_uInt32 SvXMLExport::exportDoc( enum ::xmloff::token::XMLTokenEnum eClass )
{
bool bOwnGraphicResolver = false;
@@ -1449,11 +1466,7 @@ sal_uInt32 SvXMLExport::exportDoc( enum ::xmloff::token::XMLTokenEnum eClass )
enum XMLTokenEnum eRootService = XML_TOKEN_INVALID;
const sal_Int32 nExportMode = mnExportFlags & (EXPORT_META|EXPORT_STYLES|EXPORT_CONTENT|EXPORT_SETTINGS);
- if ( EXPORT_SETTINGS != nExportMode ) // meta, content, styles
- {
- AddAttribute( XML_NAMESPACE_GRDDL, XML_TRANSFORMATION,
- OUString::createFromAscii(s_grddl_xsl) );
- }
+ lcl_AddGrddl(*this, nExportMode);
if( EXPORT_META == nExportMode )
{
diff --git a/xmloff/source/transform/makefile.mk b/xmloff/source/transform/makefile.mk
index 473cec556212..bba8deb6db2b 100644
--- a/xmloff/source/transform/makefile.mk
+++ b/xmloff/source/transform/makefile.mk
@@ -86,7 +86,7 @@ SHL1STDLIBS = \
.ELSE
SHL1STDLIBS += ixo.lib
.ENDIF
-SHL1VERSIONMAP = xof.map
+SHL1VERSIONMAP = $(SOLARENV)/src/component.map
SHL1IMPLIB = i$(SHL1TARGET)
DEF1NAME = $(SHL1TARGET)
diff --git a/xmloff/source/transform/xof.map b/xmloff/source/transform/xof.map
deleted file mode 100644
index f4ed78b9e970..000000000000
--- a/xmloff/source/transform/xof.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/xmlsecurity/source/xmlsec/diagnose.cxx b/xmlsecurity/source/xmlsec/diagnose.cxx
index 1f17b12650b2..4c10d2f7d576 100644
--- a/xmlsecurity/source/xmlsec/diagnose.cxx
+++ b/xmlsecurity/source/xmlsec/diagnose.cxx
@@ -39,7 +39,7 @@ namespace xmlsecurity {
struct UseDiagnose : public rtl::StaticWithInit<
const bool, UseDiagnose>
{
- const bool operator () ()
+ bool operator () () const
{
::rtl::OUString value;
sal_Bool res = rtl::Bootstrap::get(
diff --git a/xmlsecurity/util/makefile.mk b/xmlsecurity/util/makefile.mk
index 1030fbbd10c3..6ef221c7e309 100644
--- a/xmlsecurity/util/makefile.mk
+++ b/xmlsecurity/util/makefile.mk
@@ -158,7 +158,7 @@ SHL4STDLIBS=\
$(XMLOFFLIB) \
$(SVXCORELIB)
-SHL4VERSIONMAP = xmlsecurity.map
+SHL4VERSIONMAP = $(SOLARENV)/src/component.map
SHL4DEPN=
SHL4IMPLIB=i$(TARGET)
SHL4DEF=$(MISC)$/$(SHL4TARGET).def
diff --git a/xmlsecurity/util/xmlsecurity.map b/xmlsecurity/util/xmlsecurity.map
deleted file mode 100644
index ac2c3750bfe0..000000000000
--- a/xmlsecurity/util/xmlsecurity.map
+++ /dev/null
@@ -1,8 +0,0 @@
-UDK_3_0_0 {
- global:
- component_getImplementationEnvironment;
- component_writeInfo;
- component_getFactory;
- local:
- *;
-};
diff --git a/xpdf/download/xpdf-3.02.tar.gz b/xpdf/download/xpdf-3.02.tar.gz
deleted file mode 100644
index 1411a877d33d..000000000000
--- a/xpdf/download/xpdf-3.02.tar.gz
+++ /dev/null
Binary files differ
diff --git a/xpdf/makefile.mk b/xpdf/makefile.mk
index c3a935033951..0a138b8d84aa 100644
--- a/xpdf/makefile.mk
+++ b/xpdf/makefile.mk
@@ -47,6 +47,7 @@ dummy:
# --- Files --------------------------------------------------------
TARFILE_NAME=xpdf-3.02
+TARFILE_MD5=599dc4cc65a07ee868cf92a667a913d2
PATCH_FILES=$(TARFILE_NAME).patch
CONFIGURE_DIR=
diff --git a/xsltml/makefile.mk b/xsltml/makefile.mk
index 7d86ca9da92f..7c1a37c75580 100755
--- a/xsltml/makefile.mk
+++ b/xsltml/makefile.mk
@@ -39,6 +39,7 @@ TARGET=xsltml
# --- Files --------------------------------------------------------
TARFILE_NAME=xsltml_2.1.2
+TARFILE_MD5=a7983f859eafb2677d7ff386a023bc40
PATCH_FILES=$(TARFILE_NAME).patch
TARFILE_IS_FLAT:=TRUE
diff --git a/zlib/makefile.mk b/zlib/makefile.mk
index e9c9a8c5c83e..389a68eb9c52 100644
--- a/zlib/makefile.mk
+++ b/zlib/makefile.mk
@@ -45,6 +45,7 @@ all:
# --- Files --------------------------------------------------------
TARFILE_NAME=zlib-1.1.4
+TARFILE_MD5=abc405d0bdd3ee22782d7aa20e440f08
PATCH_FILES=zlib-1.1.4.patch
ADDITIONAL_FILES=makefile.mk