summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2010-01-29 15:26:37 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2010-01-29 15:26:37 +0000
commit04a59adcc7fd221ee6b7644aa1fa53fed8dd3c0e (patch)
tree98e45c3b1a1418ca54ef4a83f6022691099078e0
parent554b7023a920d8701ef9d38c6e4952ebb41d1b5f (diff)
parentc0bfd066e3d8355d35c2ea22d5a98ac7f43406da (diff)
ab71: merge with DEV300_m54
-rw-r--r--basebmp/test/makefile.mk2
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolypolygoncutter.hxx9
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx14
-rw-r--r--basegfx/source/curve/b2dcubicbezier.cxx36
-rw-r--r--basegfx/source/polygon/b2dlinegeometry.cxx105
-rw-r--r--basegfx/source/polygon/b2dpolygoncutandtouch.cxx9
-rw-r--r--basegfx/source/polygon/b2dpolypolygoncutter.cxx79
-rw-r--r--basegfx/source/polygon/b2dpolypolygontools.cxx12
-rw-r--r--basegfx/test/makefile.mk2
-rw-r--r--canvas/overview.txt11
-rw-r--r--canvas/source/cairo/cairo_canvashelper.cxx2
-rw-r--r--canvas/source/cairo/cairo_canvashelper_text.cxx12
-rw-r--r--canvas/source/cairo/cairo_quartz_cairo.cxx3
-rw-r--r--canvas/source/cairo/cairo_quartz_cairo.hxx4
-rw-r--r--canvas/source/cairo/cairo_textlayout.cxx302
-rw-r--r--canvas/source/cairo/cairo_textlayout.hxx7
-rw-r--r--canvas/source/cairo/cairo_win32_cairo.cxx37
-rw-r--r--canvas/source/cairo/cairo_win32_cairo.hxx2
-rw-r--r--canvas/source/cairo/cairo_xlib_cairo.cxx38
-rw-r--r--canvas/source/cairo/cairo_xlib_cairo.hxx4
-rw-r--r--canvas/source/cairo/makefile.mk10
-rw-r--r--canvas/source/java/BackBuffer.java15
-rw-r--r--canvas/source/java/BezierPolyPolygon.java9
-rw-r--r--canvas/source/java/CanvasBase.java11
-rw-r--r--canvas/source/java/CanvasBitmap.java9
-rw-r--r--canvas/source/java/CanvasClonedSprite.java12
-rw-r--r--canvas/source/java/CanvasCustomSprite.java11
-rw-r--r--canvas/source/java/CanvasFont.java10
-rw-r--r--canvas/source/java/CanvasGraphicDevice.java15
-rw-r--r--canvas/source/java/CanvasSprite.java11
-rw-r--r--canvas/source/java/CanvasUtils.java9
-rw-r--r--canvas/source/java/JavaCanvas.java6
-rw-r--r--canvas/source/java/LinePolyPolygon.java9
-rw-r--r--canvas/source/java/SpriteBase.java16
-rw-r--r--canvas/source/java/SpriteRep.java11
-rw-r--r--canvas/source/java/SpriteRunner.java15
-rw-r--r--canvas/source/java/TextLayout.java10
-rw-r--r--canvas/source/vcl/bitmapbackbuffer.cxx15
-rw-r--r--canvas/source/vcl/bitmapbackbuffer.hxx2
-rw-r--r--canvas/source/vcl/canvasbitmaphelper.cxx2
-rw-r--r--canvas/source/vcl/canvashelper_texturefill.cxx23
-rw-r--r--comphelper/inc/comphelper/componentbase.hxx160
-rw-r--r--comphelper/inc/comphelper/processfactory.hxx11
-rw-r--r--comphelper/inc/comphelper/propertybag.hxx28
-rw-r--r--comphelper/inc/comphelper/servicedecl.hxx6
-rw-r--r--comphelper/inc/comphelper/servicehelper.hxx10
-rw-r--r--comphelper/inc/comphelper/stl_types.hxx54
-rw-r--r--comphelper/inc/comphelper/stlunosequence.hxx6
-rw-r--r--comphelper/inc/comphelper/storagehelper.hxx3
-rw-r--r--comphelper/qa/complex/comphelper/Map.java512
-rw-r--r--comphelper/qa/complex/comphelper/SequenceOutputStreamUnitTest.java (renamed from comphelper/qa/complex/sequenceoutputstream/SequenceOutputStreamUnitTest.java)10
-rw-r--r--comphelper/qa/complex/comphelper/Test01.java (renamed from comphelper/qa/complex/sequenceoutputstream/Test01.java)8
-rw-r--r--comphelper/qa/complex/comphelper/TestHelper.java (renamed from comphelper/qa/complex/sequenceoutputstream/TestHelper.java)2
-rw-r--r--comphelper/qa/complex/comphelper_all.sce2
-rw-r--r--comphelper/qa/complex/makefile.mk (renamed from comphelper/qa/complex/sequenceoutputstream/makefile.mk)66
-rw-r--r--comphelper/source/compare/AnyCompareFactory.cxx35
-rw-r--r--comphelper/source/container/IndexedPropertyValuesContainer.cxx37
-rw-r--r--comphelper/source/container/NamedPropertyValuesContainer.cxx33
-rw-r--r--comphelper/source/container/enumerablemap.cxx999
-rw-r--r--comphelper/source/container/makefile.mk3
-rw-r--r--comphelper/source/inc/comphelper_module.hxx42
-rw-r--r--comphelper/source/misc/comphelper_module.cxx40
-rw-r--r--comphelper/source/misc/comphelper_services.cxx74
-rw-r--r--comphelper/source/misc/componentbase.cxx73
-rw-r--r--comphelper/source/misc/documentiologring.cxx175
-rw-r--r--comphelper/source/misc/documentiologring.hxx92
-rw-r--r--comphelper/source/misc/facreg.cxx246
-rw-r--r--comphelper/source/misc/instancelocker.cxx19
-rw-r--r--comphelper/source/misc/instancelocker.hxx6
-rw-r--r--comphelper/source/misc/makefile.mk7
-rw-r--r--comphelper/source/misc/string.cxx27
-rw-r--r--comphelper/source/misc/types.cxx11
-rw-r--r--comphelper/source/misc/uieventslogger.cxx3
-rw-r--r--comphelper/source/officeinstdir/officeinstallationdirectories.cxx99
-rw-r--r--comphelper/source/officeinstdir/officeinstallationdirectories.hxx10
-rw-r--r--comphelper/source/processfactory/processfactory.cxx20
-rw-r--r--comphelper/source/property/opropertybag.cxx91
-rw-r--r--comphelper/source/property/opropertybag.hxx18
-rw-r--r--comphelper/source/property/property.cxx8
-rw-r--r--comphelper/source/property/propertybag.cxx66
-rw-r--r--comphelper/source/property/propertycontainerhelper.cxx4
-rw-r--r--comphelper/source/streaming/memorystream.cxx50
-rw-r--r--comphelper/source/streaming/seqinputstreamserv.cxx57
-rw-r--r--comphelper/source/streaming/seqoutputstreamserv.cxx56
-rw-r--r--comphelper/source/xml/attributelist.cxx11
-rw-r--r--comphelper/util/makefile.mk1
-rw-r--r--cppcanvas/source/mtfrenderer/implrenderer.cxx12
-rw-r--r--cppcanvas/util/makefile.mk4
-rw-r--r--dtrans/source/X11/X11_droptarget.cxx48
-rw-r--r--dtrans/source/X11/X11_selection.cxx13
-rw-r--r--dtrans/source/aqua/DropTarget.cxx12
-rw-r--r--dtrans/source/aqua/aqua_clipboard.cxx9
-rw-r--r--goodies/inc/grfmgr.hxx8
-rw-r--r--goodies/prj/build.lst2
-rw-r--r--goodies/source/filter.vcl/eps/eps.cxx3
-rw-r--r--goodies/source/filter.vcl/ieps/ieps.cxx3
-rw-r--r--goodies/source/graphic/grfcache.cxx89
-rw-r--r--goodies/source/graphic/grfcache.hxx3
-rw-r--r--goodies/source/graphic/grfmgr.cxx41
-rw-r--r--goodies/source/graphic/grfmgr2.cxx9
-rw-r--r--goodies/util/makefile.mk2
-rw-r--r--i18npool/inc/i18npool/paper.hxx155
-rw-r--r--i18npool/prj/build.lst3
-rw-r--r--i18npool/prj/d.lst6
-rw-r--r--i18npool/source/calendar/calendar_gregorian.cxx34
-rw-r--r--i18npool/source/isolang/makefile.mk1
-rw-r--r--i18npool/source/localedata/makefile.mk1
-rw-r--r--i18npool/source/paper/makefile.mk75
-rw-r--r--i18npool/source/paper/paper.cxx478
-rw-r--r--i18nutil/source/utility/casefolding.cxx3
-rw-r--r--o3tl/qa/makefile.mk2
-rw-r--r--padmin/prj/build.lst2
-rw-r--r--padmin/source/makefile.mk10
-rw-r--r--rsc/source/prj/makefile.mk4
-rw-r--r--rsc/source/prj/start.cxx14
-rw-r--r--sax/source/fastparser/makefile.mk1
-rw-r--r--sax/source/tools/makefile.mk4
-rw-r--r--sot/inc/sot/exchange.hxx11
-rw-r--r--sot/source/base/exchange.cxx34
-rw-r--r--svtools/bmpmaker/makefile.mk8
-rw-r--r--svtools/inc/docmspasswdrequest.hxx72
-rw-r--r--svtools/inc/htmlkywd.hxx1446
-rw-r--r--svtools/inc/pch/precompiled_svtools.hxx1
-rw-r--r--svtools/inc/sfxecode.hxx1
-rw-r--r--svtools/inc/svtools/itemprop.hxx122
-rw-r--r--svtools/inc/svtools/menuoptions.hxx4
-rw-r--r--svtools/inc/svtools/parhtml.hxx30
-rw-r--r--svtools/inc/svtools/svlbox.hxx3
-rw-r--r--svtools/inc/svtools/svparser.hxx79
-rw-r--r--svtools/inc/svtools/undo.hxx11
-rw-r--r--svtools/inc/tabbar.hxx14
-rw-r--r--svtools/prj/build.lst2
-rw-r--r--svtools/prj/d.lst1
-rw-r--r--svtools/qa/complex/ConfigItems/helper/HistoryOptTest.cxx2
-rw-r--r--svtools/qa/complex/ConfigItems/helper/UserOptTest.cxx118
-rw-r--r--svtools/qa/complex/ConfigItems/helper/UserOptTest.hxx90
-rw-r--r--svtools/source/brwbox/brwbox1.cxx2
-rw-r--r--svtools/source/config/extcolorcfg.cxx12
-rw-r--r--svtools/source/config/historyoptions.cxx38
-rw-r--r--svtools/source/config/menuoptions.cxx66
-rw-r--r--svtools/source/config/printoptions.cxx62
-rw-r--r--svtools/source/config/regoptions.cxx57
-rw-r--r--svtools/source/config/securityoptions.cxx2
-rw-r--r--svtools/source/contnr/fileview.cxx5
-rw-r--r--svtools/source/contnr/svimpbox.cxx4
-rw-r--r--svtools/source/contnr/svlbox.cxx6
-rw-r--r--svtools/source/contnr/svtabbx.cxx41
-rw-r--r--svtools/source/contnr/templwin.cxx17
-rw-r--r--svtools/source/contnr/templwin.src14
-rw-r--r--svtools/source/control/filectrl.cxx6
-rw-r--r--svtools/source/control/inettbc.cxx6
-rw-r--r--svtools/source/control/scrwin.cxx4
-rw-r--r--svtools/source/control/tabbar.cxx50
-rw-r--r--svtools/source/edit/editsyntaxhighlighter.cxx14
-rw-r--r--svtools/source/edit/svmedit.cxx80
-rw-r--r--svtools/source/filter.vcl/ixbm/xbmread.cxx2
-rw-r--r--svtools/source/filter.vcl/wmf/enhwmf.cxx12
-rw-r--r--svtools/source/filter.vcl/wmf/winwmf.cxx11
-rw-r--r--svtools/source/inc/configitems/useroptions_const.hxx62
-rw-r--r--svtools/source/items1/itemprop.cxx455
-rw-r--r--svtools/source/items1/itemset.cxx2
-rw-r--r--svtools/source/misc/acceleratorexecute.cxx39
-rw-r--r--svtools/source/misc/documentlockfile.cxx2
-rw-r--r--svtools/source/misc/errtxt.src4
-rw-r--r--svtools/source/misc1/adrparse.cxx16
-rw-r--r--svtools/source/misc1/docmspasswdrequest.cxx143
-rw-r--r--svtools/source/misc1/makefile.mk1
-rw-r--r--svtools/source/numbers/numfmuno.cxx8
-rw-r--r--svtools/source/svhtml/htmlkey2.cxx830
-rw-r--r--svtools/source/svhtml/htmlkywd.cxx1602
-rw-r--r--svtools/source/svhtml/htmlout.cxx568
-rw-r--r--svtools/source/svhtml/htmlsupp.cxx14
-rw-r--r--svtools/source/svhtml/makefile.mk3
-rw-r--r--svtools/source/svhtml/parhtml.cxx350
-rw-r--r--svtools/source/svrtf/makefile.mk3
-rw-r--r--svtools/source/svrtf/rtfkeywd.cxx2202
-rw-r--r--svtools/source/svrtf/rtfkeywd.hxx2226
-rw-r--r--svtools/source/svrtf/rtfout.cxx18
-rw-r--r--svtools/source/svrtf/svparser.cxx60
-rw-r--r--svtools/source/undo/makefile.mk1
-rw-r--r--svtools/source/undo/undo.cxx152
-rw-r--r--svtools/source/uno/contextmenuhelper.cxx2
-rw-r--r--svtools/source/uno/unoevent.cxx2
-rw-r--r--svtools/source/uno/unoiface.cxx2
-rw-r--r--svtools/uno/makefile.mk2
-rw-r--r--svtools/util/makefile.mk4
-rw-r--r--toolkit/doc/layout/README14
-rw-r--r--toolkit/doc/layout/TODO20
-rw-r--r--toolkit/inc/layout/layout-post.hxx53
-rw-r--r--toolkit/inc/layout/layout-pre.hxx95
-rw-r--r--toolkit/inc/layout/layout.hxx486
-rw-r--r--toolkit/inc/toolkit/awt/vclxwindows.hxx4
-rw-r--r--toolkit/inc/toolkit/controls/unocontrol.hxx2
-rw-r--r--toolkit/inc/toolkit/helper/property.hxx3
-rw-r--r--toolkit/inc/toolkit/helper/vclunohelper.hxx4
-rw-r--r--toolkit/prj/build.lst7
-rw-r--r--toolkit/prj/d.lst8
-rw-r--r--toolkit/source/awt/makefile.mk7
-rw-r--r--toolkit/source/awt/vclxbutton.cxx2
-rw-r--r--toolkit/source/awt/vclxdevice.cxx2
-rw-r--r--toolkit/source/awt/vclxdialog.cxx13
-rw-r--r--toolkit/source/awt/vclxdialog.hxx11
-rw-r--r--toolkit/source/awt/vclxmenu.cxx5
-rw-r--r--toolkit/source/awt/vclxplugin.cxx88
-rw-r--r--toolkit/source/awt/vclxplugin.hxx75
-rw-r--r--toolkit/source/awt/vclxscroller.hxx2
-rw-r--r--toolkit/source/awt/vclxsplitter.cxx4
-rw-r--r--toolkit/source/awt/vclxsplitter.hxx2
-rw-r--r--toolkit/source/awt/vclxsystemdependentwindow.cxx4
-rw-r--r--toolkit/source/awt/vclxtabcontrol.cxx211
-rw-r--r--toolkit/source/awt/vclxtabcontrol.hxx13
-rw-r--r--toolkit/source/awt/vclxtabpage.cxx164
-rw-r--r--toolkit/source/awt/vclxtabpage.hxx81
-rw-r--r--toolkit/source/awt/vclxtoolkit.cxx22
-rw-r--r--toolkit/source/awt/vclxtopwindow.cxx6
-rw-r--r--toolkit/source/awt/vclxwindow.cxx88
-rw-r--r--toolkit/source/awt/vclxwindow1.cxx7
-rw-r--r--toolkit/source/awt/vclxwindows.cxx51
-rw-r--r--toolkit/source/controls/formattedcontrol.cxx9
-rw-r--r--toolkit/source/controls/tkspinbutton.cxx1
-rw-r--r--toolkit/source/controls/tree/treecontrol.cxx1
-rw-r--r--toolkit/source/controls/unocontrol.cxx164
-rw-r--r--toolkit/source/controls/unocontrolmodel.cxx4
-rw-r--r--toolkit/source/controls/unocontrols.cxx27
-rw-r--r--toolkit/source/helper/property.cxx5
-rw-r--r--toolkit/source/helper/unowrapper.cxx10
-rw-r--r--toolkit/source/helper/vclunohelper.cxx8
-rw-r--r--toolkit/source/layout/core/bin.cxx (renamed from toolkit/source/layout/bin.cxx)16
-rw-r--r--toolkit/source/layout/core/bin.hxx (renamed from toolkit/source/layout/bin.hxx)21
-rw-r--r--toolkit/source/layout/core/box-base.cxx (renamed from toolkit/source/layout/box-base.cxx)28
-rw-r--r--toolkit/source/layout/core/box-base.hxx (renamed from toolkit/source/layout/box-base.hxx)17
-rw-r--r--toolkit/source/layout/core/box.cxx (renamed from toolkit/source/layout/box.cxx)8
-rw-r--r--toolkit/source/layout/core/box.hxx (renamed from toolkit/source/layout/box.hxx)14
-rw-r--r--toolkit/source/layout/core/byteseq.cxx (renamed from toolkit/source/layout/byteseq.cxx)4
-rw-r--r--toolkit/source/layout/core/container.cxx (renamed from toolkit/source/layout/container.cxx)10
-rw-r--r--toolkit/source/layout/core/container.hxx (renamed from toolkit/source/layout/container.hxx)18
-rw-r--r--toolkit/source/layout/core/dialogbuttonhbox.cxx (renamed from toolkit/source/layout/dialogbuttonhbox.cxx)11
-rw-r--r--toolkit/source/layout/core/dialogbuttonhbox.hxx (renamed from toolkit/source/layout/dialogbuttonhbox.hxx)14
-rw-r--r--toolkit/source/layout/core/factory.cxx (renamed from toolkit/source/layout/factory.cxx)74
-rw-r--r--toolkit/source/layout/core/factory.hxx (renamed from toolkit/source/layout/factory.hxx)10
-rw-r--r--toolkit/source/layout/core/flow.cxx (renamed from toolkit/source/layout/flow.cxx)12
-rw-r--r--toolkit/source/layout/core/flow.hxx (renamed from toolkit/source/layout/flow.hxx)16
-rw-r--r--toolkit/source/layout/core/helper.cxx676
-rw-r--r--toolkit/source/layout/core/helper.hxx (renamed from toolkit/source/layout/helper.hxx)62
-rw-r--r--toolkit/source/layout/core/import.cxx (renamed from toolkit/source/layout/import.cxx)143
-rw-r--r--toolkit/source/layout/core/import.hxx (renamed from toolkit/source/layout/import.hxx)100
-rw-r--r--toolkit/source/layout/core/localized-string.cxx87
-rw-r--r--toolkit/source/layout/core/localized-string.hxx84
-rw-r--r--toolkit/source/layout/core/makefile.mk (renamed from toolkit/source/layout/makefile.mk)13
-rw-r--r--toolkit/source/layout/core/precompiled_xmlscript.hxx (renamed from toolkit/source/layout/precompiled_xmlscript.hxx)4
-rw-r--r--toolkit/source/layout/core/proplist.cxx (renamed from toolkit/source/layout/proplist.cxx)43
-rw-r--r--toolkit/source/layout/core/proplist.hxx (renamed from toolkit/inc/layout/layoutcore.hxx)63
-rw-r--r--toolkit/source/layout/core/root.cxx (renamed from toolkit/source/layout/root.cxx)27
-rw-r--r--toolkit/source/layout/core/root.hxx (renamed from toolkit/source/layout/root.hxx)13
-rw-r--r--toolkit/source/layout/core/table.cxx (renamed from toolkit/source/layout/table.cxx)10
-rw-r--r--toolkit/source/layout/core/table.hxx (renamed from toolkit/source/layout/table.hxx)14
-rw-r--r--toolkit/source/layout/core/timer.cxx (renamed from toolkit/source/layout/timer.cxx)10
-rw-r--r--toolkit/source/layout/core/timer.hxx (renamed from toolkit/source/layout/timer.hxx)10
-rw-r--r--toolkit/source/layout/core/translate.cxx (renamed from toolkit/source/layout/translate.cxx)18
-rw-r--r--toolkit/source/layout/core/translate.hxx (renamed from toolkit/source/layout/translate.hxx)10
-rw-r--r--toolkit/source/layout/core/vcl.cxx (renamed from toolkit/source/layout/proplist.hxx)63
-rw-r--r--toolkit/source/layout/core/vcl.hxx (renamed from comphelper/qa/complex/sequenceoutputstream/SequenceOutputStreamTest.java)30
-rw-r--r--toolkit/source/layout/helper.cxx520
-rw-r--r--toolkit/source/layout/vcl/makefile.mk (renamed from toolkit/source/vclcompat/makefile.mk)15
-rw-r--r--toolkit/source/layout/vcl/wbutton.cxx685
-rw-r--r--toolkit/source/layout/vcl/wcontainer.cxx (renamed from toolkit/source/vclcompat/wcontainer.cxx)48
-rw-r--r--toolkit/source/layout/vcl/wfield.cxx796
-rw-r--r--toolkit/source/layout/vcl/wrapper.cxx1630
-rw-r--r--toolkit/source/layout/vcl/wrapper.hxx153
-rw-r--r--toolkit/source/vclcompat/wbutton.cxx582
-rw-r--r--toolkit/source/vclcompat/wfield.cxx627
-rw-r--r--toolkit/source/vclcompat/wrapper.cxx569
-rw-r--r--toolkit/source/vclcompat/wrapper.hxx136
-rw-r--r--toolkit/src2xml/source/boxer.py12
-rw-r--r--toolkit/src2xml/source/src2xml.py14
-rw-r--r--toolkit/uiconfig/layout/delzip1
-rw-r--r--toolkit/uiconfig/layout/makefile.mk62
-rw-r--r--toolkit/uiconfig/layout/message-box.xml41
-rw-r--r--toolkit/uiconfig/layout/tab-dialog.xml20
-rw-r--r--toolkit/util/makefile.mk6
-rw-r--r--toolkit/util/makefile.pmk7
-rw-r--r--toolkit/workben/layout/.gitignore4
-rw-r--r--toolkit/workben/layout/README43
-rwxr-xr-xtoolkit/workben/layout/TEST11
-rw-r--r--toolkit/workben/layout/align-test.xml30
-rw-r--r--toolkit/workben/layout/boxtest.xml4
-rw-r--r--toolkit/workben/layout/editor.cxx521
-rw-r--r--toolkit/workben/layout/empty.xml26
-rw-r--r--toolkit/workben/layout/insert-sheet.xml57
-rw-r--r--toolkit/workben/layout/makefile.mk54
-rw-r--r--toolkit/workben/layout/message-box.xml41
-rw-r--r--toolkit/workben/layout/move-copy-sheet.xml21
-rw-r--r--toolkit/workben/layout/number-format.xml70
-rw-r--r--toolkit/workben/layout/plugin.cxx73
-rw-r--r--toolkit/workben/layout/plugin.hxx (renamed from canvas/source/cairo/postx.h)68
-rw-r--r--toolkit/workben/layout/plugin.xml29
-rw-r--r--toolkit/workben/layout/recover.cxx7
-rw-r--r--toolkit/workben/layout/recover.hxx2
-rw-r--r--toolkit/workben/layout/recover.xml2
-rw-r--r--toolkit/workben/layout/refresh6
-rw-r--r--toolkit/workben/layout/simple-paragraph.cxx4
-rw-r--r--toolkit/workben/layout/sort-options.xml40
-rw-r--r--toolkit/workben/layout/sortdlg.cxx73
-rw-r--r--toolkit/workben/layout/sortdlg.hrc91
-rw-r--r--toolkit/workben/layout/sortdlg.hxx76
-rw-r--r--toolkit/workben/layout/sortdlg.src325
-rw-r--r--toolkit/workben/layout/sortdlg.xml65
-rw-r--r--toolkit/workben/layout/string-input.xml16
-rw-r--r--toolkit/workben/layout/tab-dialog.xml20
-rw-r--r--toolkit/workben/layout/tabcontrol.xml24
-rw-r--r--toolkit/workben/layout/test.cxx214
-rw-r--r--toolkit/workben/layout/testrc.in12
-rw-r--r--toolkit/workben/layout/tpsort.cxx1108
-rw-r--r--toolkit/workben/layout/tpsort.hxx220
-rw-r--r--toolkit/workben/layout/uno.hxx6
-rw-r--r--toolkit/workben/layout/wordcount-plain.xml2
-rw-r--r--toolkit/workben/layout/wordcount-tight.xml2
-rw-r--r--toolkit/workben/layout/wordcount.xml16
-rw-r--r--toolkit/workben/layout/wordcountdialog.cxx29
-rw-r--r--toolkit/workben/layout/wordcountdialog.hxx2
-rw-r--r--toolkit/workben/layout/zoom-indent.xml2
-rw-r--r--toolkit/workben/layout/zoom-plain.xml2
-rw-r--r--toolkit/workben/layout/zoom.cxx16
-rw-r--r--toolkit/workben/layout/zoom.hrc (renamed from canvas/source/cairo/prex.h)77
-rw-r--r--toolkit/workben/layout/zoom.hxx2
-rw-r--r--toolkit/workben/layout/zoom.xml43
-rw-r--r--toolkit/workben/no_localization1
-rw-r--r--tools/bootstrp/addexes2/makefile.mk2
-rw-r--r--tools/bootstrp/makefile.mk2
-rw-r--r--tools/bootstrp/md5.cxx64
-rw-r--r--tools/inc/tools/postx.h (renamed from vcl/unx/inc/postx.h)0
-rw-r--r--tools/inc/tools/prex.h (renamed from vcl/unx/inc/prex.h)2
-rw-r--r--tools/prj/d.lst3
-rw-r--r--tools/source/fsys/urlobj.cxx9
-rw-r--r--tools/source/generic/poly.cxx4
-rw-r--r--tools/util/makefile.mk4
-rw-r--r--tools/workben/urltest.cxx19
-rw-r--r--transex3/inc/export.hxx4
-rw-r--r--transex3/java/receditor/java/transex3/controller/EditorController.java2
-rw-r--r--transex3/java/receditor/java/transex3/model/ResourceFile.java1
-rw-r--r--transex3/java/receditor/java/transex3/view/Editor.java4
-rw-r--r--transex3/layout/makefile.mk1
-rw-r--r--transex3/prj/d.lst1
-rw-r--r--transex3/scripts/fast_merge.pl348
-rwxr-xr-xtransex3/scripts/localize20
-rwxr-xr-xtransex3/scripts/localize.pl422
-rw-r--r--transex3/source/directory.cxx8
-rw-r--r--transex3/source/localize.cxx79
-rw-r--r--transex3/source/makefile.mk14
-rw-r--r--transex3/source/merge.cxx88
-rw-r--r--ucbhelper/inc/ucbhelper/simpleauthenticationrequest.hxx60
-rw-r--r--ucbhelper/prj/build.lst2
-rw-r--r--ucbhelper/source/provider/simpleauthenticationrequest.cxx137
-rw-r--r--unotools/inc/unotools/accessiblerelationsethelper.hxx2
-rw-r--r--unotools/inc/unotools/accessiblestatesethelper.hxx2
-rw-r--r--unotools/inc/unotools/confignode.hxx2
-rw-r--r--unotools/inc/unotools/servicehelper.hxx108
-rw-r--r--unotools/source/config/confignode.cxx5
-rwxr-xr-xvcl/aqua/inc/salframeview.h1
-rw-r--r--vcl/aqua/inc/salgdi.h2
-rwxr-xr-xvcl/aqua/inc/vclnsapp.h1
-rw-r--r--vcl/aqua/source/a11y/aqua11ytextattributeswrapper.mm2
-rw-r--r--vcl/aqua/source/a11y/aqua11yutil.mm2
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapper.mm16
-rw-r--r--vcl/aqua/source/app/saldata.cxx2
-rw-r--r--vcl/aqua/source/app/salinst.cxx16
-rw-r--r--vcl/aqua/source/app/salsys.cxx8
-rwxr-xr-xvcl/aqua/source/app/vclnsapp.mm93
-rwxr-xr-xvcl/aqua/source/gdi/aquaprintview.mm5
-rwxr-xr-xvcl/aqua/source/gdi/salatslayout.cxx24
-rw-r--r--vcl/aqua/source/gdi/salgdi.cxx142
-rwxr-xr-xvcl/aqua/source/gdi/salgdiutils.cxx9
-rw-r--r--vcl/aqua/source/gdi/salnativewidgets.cxx8
-rw-r--r--vcl/aqua/source/gdi/salprn.cxx31
-rw-r--r--vcl/aqua/source/gdi/salvd.cxx6
-rw-r--r--vcl/aqua/source/window/salframe.cxx29
-rwxr-xr-xvcl/aqua/source/window/salframeview.mm26
-rw-r--r--vcl/aqua/source/window/salmenu.cxx12
-rw-r--r--vcl/inc/vcl/ImageListProvider.hxx57
-rw-r--r--vcl/inc/vcl/accel.h2
-rw-r--r--vcl/inc/vcl/button.hxx2
-rw-r--r--vcl/inc/vcl/cmdevt.hxx3
-rw-r--r--vcl/inc/vcl/event.hxx2
-rw-r--r--vcl/inc/vcl/gdimtf.hxx8
-rw-r--r--vcl/inc/vcl/graph.hxx44
-rw-r--r--vcl/inc/vcl/impgraph.hxx5
-rw-r--r--vcl/inc/vcl/jobset.h2
-rw-r--r--vcl/inc/vcl/keycod.hxx6
-rw-r--r--vcl/inc/vcl/keycodes.hxx3
-rw-r--r--vcl/inc/vcl/lstbox.hxx1
-rw-r--r--vcl/inc/vcl/outdev.hxx32
-rw-r--r--vcl/inc/vcl/pngread.hxx2
-rw-r--r--vcl/inc/vcl/print.hxx9
-rw-r--r--vcl/inc/vcl/prntypes.hxx28
-rw-r--r--vcl/inc/vcl/salgdi.hxx2
-rw-r--r--vcl/inc/vcl/salprn.hxx2
-rw-r--r--vcl/inc/vcl/settings.hxx14
-rw-r--r--vcl/inc/vcl/sndstyle.hxx2
-rw-r--r--vcl/inc/vcl/syschild.hxx2
-rw-r--r--vcl/inc/vcl/sysdata.hxx50
-rw-r--r--vcl/inc/vcl/tabctrl.hxx2
-rw-r--r--vcl/inc/vcl/toolbox.h9
-rw-r--r--vcl/inc/vcl/toolbox.hxx8
-rw-r--r--vcl/inc/vcl/window.hxx2
-rw-r--r--vcl/os2/inc/salgdi.h1
-rw-r--r--vcl/os2/source/gdi/salgdi3.cxx18
-rw-r--r--vcl/prj/build.lst2
-rw-r--r--vcl/prj/d.lst2
-rw-r--r--vcl/source/app/dbggui.cxx2
-rw-r--r--vcl/source/app/settings.cxx6
-rw-r--r--vcl/source/control/button.cxx16
-rw-r--r--vcl/source/control/combobox.cxx11
-rw-r--r--vcl/source/control/edit.cxx4
-rw-r--r--vcl/source/control/imgctrl.cxx33
-rw-r--r--vcl/source/control/lstbox.cxx85
-rw-r--r--vcl/source/control/spinfld.cxx7
-rw-r--r--vcl/source/fontsubset/sft.cxx2
-rw-r--r--vcl/source/gdi/base14.cxx2
-rw-r--r--vcl/source/gdi/gdimtf.cxx430
-rw-r--r--vcl/source/gdi/graph.cxx38
-rw-r--r--vcl/source/gdi/impgraph.cxx38
-rw-r--r--vcl/source/gdi/impimagetree.cxx7
-rw-r--r--vcl/source/gdi/makefile.mk1
-rw-r--r--vcl/source/gdi/outdev.cxx312
-rw-r--r--vcl/source/gdi/outdev3.cxx116
-rw-r--r--vcl/source/gdi/outdev6.cxx14
-rw-r--r--vcl/source/gdi/pdfwriter.cxx3
-rw-r--r--vcl/source/gdi/pdfwriter_impl.cxx101
-rw-r--r--vcl/source/gdi/pngread.cxx21
-rw-r--r--vcl/source/gdi/print.cxx148
-rw-r--r--vcl/source/glyphs/gcach_ftyp.cxx24
-rw-r--r--vcl/source/window/accel.cxx3
-rw-r--r--vcl/source/window/dlgctrl.cxx2
-rw-r--r--vcl/source/window/keycod.cxx54
-rw-r--r--vcl/source/window/keyevent.cxx5
-rw-r--r--vcl/source/window/menu.cxx40
-rw-r--r--vcl/source/window/mouseevent.cxx4
-rw-r--r--vcl/source/window/toolbox.cxx6
-rw-r--r--vcl/source/window/toolbox2.cxx34
-rw-r--r--vcl/source/window/window.cxx107
-rw-r--r--vcl/unx/gtk/app/gtkdata.cxx45
-rw-r--r--vcl/unx/gtk/app/gtkinst.cxx3
-rw-r--r--vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx19
-rw-r--r--vcl/unx/gtk/window/gtkframe.cxx41
-rw-r--r--vcl/unx/headless/svpgdi.cxx22
-rw-r--r--vcl/unx/headless/svpgdi.hxx1
-rw-r--r--vcl/unx/headless/svpprn.cxx44
-rw-r--r--vcl/unx/headless/svppspgraphics.cxx16
-rw-r--r--vcl/unx/headless/svppspgraphics.hxx2
-rw-r--r--vcl/unx/headless/svpvd.cxx16
-rw-r--r--vcl/unx/inc/Xproto.h4
-rw-r--r--vcl/unx/inc/plugins/gtk/gtkdata.hxx5
-rw-r--r--vcl/unx/inc/plugins/gtk/gtkframe.hxx4
-rw-r--r--vcl/unx/inc/plugins/gtk/gtkgdi.hxx4
-rw-r--r--vcl/unx/inc/pspgraphics.h1
-rw-r--r--vcl/unx/inc/salgdi.h14
-rw-r--r--vcl/unx/inc/svunx.h4
-rw-r--r--vcl/unx/inc/wmadaptor.hxx4
-rw-r--r--vcl/unx/inc/xfont.hxx4
-rw-r--r--vcl/unx/kde/kdedata.cxx2
-rw-r--r--vcl/unx/kde/salnativewidgets-kde.cxx2
-rw-r--r--vcl/unx/source/app/i18n_cb.cxx4
-rw-r--r--vcl/unx/source/app/i18n_ic.cxx4
-rw-r--r--vcl/unx/source/app/i18n_im.cxx4
-rw-r--r--vcl/unx/source/app/i18n_status.cxx4
-rw-r--r--vcl/unx/source/app/keysymnames.cxx4
-rw-r--r--vcl/unx/source/app/randrwrapper.cxx4
-rw-r--r--vcl/unx/source/app/saldisp.cxx32
-rw-r--r--vcl/unx/source/app/sm.cxx4
-rw-r--r--vcl/unx/source/app/wmadaptor.cxx4
-rw-r--r--vcl/unx/source/fontmanager/fontconfig.cxx22
-rw-r--r--vcl/unx/source/fontmanager/fontmanager.cxx2
-rw-r--r--vcl/unx/source/gdi/gcach_xpeer.hxx4
-rw-r--r--vcl/unx/source/gdi/pspgraphics.cxx16
-rw-r--r--vcl/unx/source/gdi/salbmp.cxx4
-rw-r--r--vcl/unx/source/gdi/salgdi.cxx167
-rw-r--r--vcl/unx/source/gdi/salgdi2.cxx53
-rw-r--r--vcl/unx/source/gdi/salgdi3.cxx64
-rw-r--r--vcl/unx/source/gdi/salprnpsp.cxx45
-rw-r--r--vcl/unx/source/gdi/salvd.cxx13
-rw-r--r--vcl/unx/source/gdi/xrender_peer.cxx53
-rw-r--r--vcl/unx/source/gdi/xrender_peer.hxx4
-rw-r--r--vcl/unx/source/plugadapt/salplug.cxx9
-rw-r--r--vcl/unx/source/printer/printerinfomanager.cxx76
-rw-r--r--vcl/unx/source/window/salframe.cxx52
-rw-r--r--vcl/unx/source/window/salobj.cxx6
-rw-r--r--vcl/util/linksvp/makefile.mk7
-rw-r--r--vcl/util/makefile.mk14
-rw-r--r--vcl/win/inc/salgdi.h1
-rw-r--r--vcl/win/source/gdi/MAKEFILE.MK1
-rw-r--r--vcl/win/source/gdi/salgdi3.cxx27
-rw-r--r--vcl/win/source/gdi/salgdi_gdiplus.cxx162
-rw-r--r--vcl/win/source/gdi/salnativewidgets-luna.cxx18
-rw-r--r--vcl/win/source/gdi/salprn.cxx325
-rwxr-xr-xvcl/win/source/gdi/winlayout.cxx30
-rw-r--r--vcl/win/source/window/MAKEFILE.MK2
-rw-r--r--vcl/win/source/window/salframe.cxx30
-rw-r--r--vcl/workben/makefile.mk1
-rw-r--r--vcl/workben/svpclient.cxx47
499 files changed, 22869 insertions, 12172 deletions
diff --git a/basebmp/test/makefile.mk b/basebmp/test/makefile.mk
index 43165b831a64..7d0dc6e3967a 100644
--- a/basebmp/test/makefile.mk
+++ b/basebmp/test/makefile.mk
@@ -132,6 +132,6 @@ unittest : $(SHL1TARGETN)
@echo ----------------------------------------------------------
@echo - start unit test on library $(SHL1TARGETN)
@echo ----------------------------------------------------------
- $(AUGMENT_LIBRARY_PATH) testshl2 -sf $(mktmp ) $(SHL1TARGETN)
+ $(TESTSHL2) -sf $(mktmp ) $(SHL1TARGETN)
ALLTAR : unittest
diff --git a/basegfx/inc/basegfx/polygon/b2dpolypolygoncutter.hxx b/basegfx/inc/basegfx/polygon/b2dpolypolygoncutter.hxx
index 9474e51e3904..12532ff078f3 100644
--- a/basegfx/inc/basegfx/polygon/b2dpolypolygoncutter.hxx
+++ b/basegfx/inc/basegfx/polygon/b2dpolypolygoncutter.hxx
@@ -104,6 +104,15 @@ namespace basegfx
// DIFF: Return all areas where CandidateA is not covered by CandidateB (cut B out of A)
B2DPolyPolygon solvePolygonOperationDiff(const B2DPolyPolygon& rCandidateA, const B2DPolyPolygon& rCandidateB);
+ /** merge all single PolyPolygons to a single, OR-ed PolyPolygon
+
+ @param rInput
+ The source PolyPolygons
+
+ @return A single PolyPolygon containing the Or-merged result
+ */
+ B2DPolyPolygon mergeToSinglePolyPolygon(const std::vector< basegfx::B2DPolyPolygon >& rInput);
+
} // end of namespace tools
} // end of namespace basegfx
diff --git a/basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx b/basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx
index 5c75edd7f262..c4687b3cfc5f 100644
--- a/basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx
+++ b/basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx
@@ -262,6 +262,20 @@ namespace basegfx
bool equal(const B2DPolyPolygon& rCandidateA, const B2DPolyPolygon& rCandidateB, const double& rfSmallValue);
bool equal(const B2DPolyPolygon& rCandidateA, const B2DPolyPolygon& rCandidateB);
+ /** snap some polygon coordinates to discrete coordinates
+
+ This method allows to snap some polygon points to discrete (integer) values
+ which equals e.g. a snap to discrete coordinates. It will snap points of
+ horizontal and vertical edges
+
+ @param rCandidate
+ The source polygon
+
+ @return
+ The modified version of the source polygon
+ */
+ B2DPolyPolygon snapPointsOfHorizontalOrVerticalEdges(const B2DPolyPolygon& rCandidate);
+
} // end of namespace tools
} // end of namespace basegfx
diff --git a/basegfx/source/curve/b2dcubicbezier.cxx b/basegfx/source/curve/b2dcubicbezier.cxx
index 76d1b74ddbca..e7247a95333b 100644
--- a/basegfx/source/curve/b2dcubicbezier.cxx
+++ b/basegfx/source/curve/b2dcubicbezier.cxx
@@ -443,21 +443,32 @@ namespace basegfx
bool bAIsTrivial(aVecA.equalZero());
bool bBIsTrivial(aVecB.equalZero());
+ // #i102241# prepare inverse edge length to normalize cross values;
+ // else the small compare value used in fTools::equalZero
+ // will be length dependent and this detection will work as less
+ // precise as longer the edge is. In principle, the length of the control
+ // vector would need to be used too, but to be trivial it is assumed to
+ // be of roughly equal length to the edge, so edge length can be used
+ // for both. Only needed when one of both is not trivial per se.
+ const double fInverseEdgeLength(bAIsTrivial && bBIsTrivial
+ ? 1.0
+ : 1.0 / aEdge.getLength());
+
// if A is not zero, check if it could be
if(!bAIsTrivial)
{
- // parallel to edge? Check aVecA, aEdge
- // B2DVector::areParallel is too correct, uses differences in the e15 region,
- // thus do own test here
- const double fValA(aVecA.getX() * aEdge.getY());
- const double fValB(aVecA.getY() * aEdge.getX());
+ // #i102241# parallel to edge? Check aVecA, aEdge. Use cross() which does what
+ // we need here with the precision we need
+ const double fCross(aVecA.cross(aEdge) * fInverseEdgeLength);
- if(fTools::equalZero(fabs(fValA) - fabs(fValB)))
+ if(fTools::equalZero(fCross))
{
// get scale to edge. Use bigger distance for numeric quality
- const double fScale(fabs(aEdge.getX()) > fabs(aEdge.getY()) ? aVecA.getX() / aEdge.getX() : aVecA.getY() / aEdge.getY());
+ const double fScale(fabs(aEdge.getX()) > fabs(aEdge.getY())
+ ? aVecA.getX() / aEdge.getX()
+ : aVecA.getY() / aEdge.getY());
- // end point of vector in edge range?
+ // relative end point of vector in edge range?
if(fTools::moreOrEqual(fScale, 0.0) && fTools::lessOrEqual(fScale, 1.0))
{
bAIsTrivial = true;
@@ -470,13 +481,14 @@ namespace basegfx
if(bAIsTrivial && !bBIsTrivial)
{
// parallel to edge? Check aVecB, aEdge
- const double fValA(aVecB.getX() * aEdge.getY());
- const double fValB(aVecB.getY() * aEdge.getX());
+ const double fCross(aVecB.cross(aEdge) * fInverseEdgeLength);
- if(fTools::equalZero(fabs(fValA) - fabs(fValB)))
+ if(fTools::equalZero(fCross))
{
// get scale to edge. Use bigger distance for numeric quality
- const double fScale(fabs(aEdge.getX()) > fabs(aEdge.getY()) ? aVecB.getX() / aEdge.getX() : aVecB.getY() / aEdge.getY());
+ const double fScale(fabs(aEdge.getX()) > fabs(aEdge.getY())
+ ? aVecB.getX() / aEdge.getX()
+ : aVecB.getY() / aEdge.getY());
// end point of vector in edge range? Caution: controlB is directed AGAINST edge
if(fTools::lessOrEqual(fScale, 0.0) && fTools::moreOrEqual(fScale, -1.0))
diff --git a/basegfx/source/polygon/b2dlinegeometry.cxx b/basegfx/source/polygon/b2dlinegeometry.cxx
index 0cda1036e13b..1a9264ab769e 100644
--- a/basegfx/source/polygon/b2dlinegeometry.cxx
+++ b/basegfx/source/polygon/b2dlinegeometry.cxx
@@ -352,13 +352,12 @@ namespace basegfx
// Unfortunately, while it would be geometrically correct to not add
// the in-between points EdgeEnd and EdgeStart, it leads to rounding
// errors when converting to integer polygon coordinates for painting
- const B2DVector aEdgeVector(rEdge.getEndPoint() - rEdge.getStartPoint());
-
if(rEdge.isBezier())
{
// prepare target and data common for upper and lower
B2DPolygon aBezierPolygon;
- const double fEdgeLength(aEdgeVector.getLength());
+ const B2DVector aPureEdgeVector(rEdge.getEndPoint() - rEdge.getStartPoint());
+ const double fEdgeLength(aPureEdgeVector.getLength());
const bool bIsEdgeLengthZero(fTools::equalZero(fEdgeLength));
const B2DVector aTangentA(rEdge.getTangent(0.0));
const B2DVector aTangentB(rEdge.getTangent(1.0));
@@ -441,7 +440,11 @@ namespace basegfx
}
else
{
- const B2DVector aPerpendEdgeVector(getNormalizedPerpendicular(aEdgeVector) * fHalfLineWidth);
+ // #i101491# emulate rEdge.getTangent call which applies a factor of 0.3 to the
+ // full-length edge vector to have numerically exactly the same results as in the
+ // createAreaGeometryForJoin implementation
+ const B2DVector aEdgeTangent((rEdge.getEndPoint() - rEdge.getStartPoint()) * 0.3);
+ const B2DVector aPerpendEdgeVector(getNormalizedPerpendicular(aEdgeTangent) * fHalfLineWidth);
B2DPolygon aEdgePolygon;
// create upper edge
@@ -495,45 +498,75 @@ namespace basegfx
}
}
- // create first polygon part for edge
- aEdgePolygon.append(aEndPoint);
- aEdgePolygon.append(rPoint);
- aEdgePolygon.append(aStartPoint);
-
- if(B2DLINEJOIN_MITER == eJoin)
+ switch(eJoin)
{
- // Look for the cut point between start point along rTangentPrev and
- // end point along rTangentEdge. -rTangentEdge should be used, but since
- // the cut value is used for interpolating along the first edge, the negation
- // is not needed since the same fCut will be found on the first edge.
- // If it exists, insert it to complete the mitered fill polygon.
- double fCutPos(0.0);
- tools::findCut(aStartPoint, rTangentPrev, aEndPoint, rTangentEdge, CUTFLAG_ALL, &fCutPos);
-
- if(0.0 != fCutPos)
+ case B2DLINEJOIN_MITER :
{
- const B2DPoint aCutPoint(interpolate(aStartPoint, aStartPoint + rTangentPrev, fCutPos));
- aEdgePolygon.append(aCutPoint);
- }
- }
- else if(B2DLINEJOIN_ROUND == eJoin)
- {
- // use tooling to add needed EllipseSegment
- double fAngleStart(atan2(rPerpendPrev.getY(), rPerpendPrev.getX()));
- double fAngleEnd(atan2(rPerpendEdge.getY(), rPerpendEdge.getX()));
+ aEdgePolygon.append(aEndPoint);
+ aEdgePolygon.append(rPoint);
+ aEdgePolygon.append(aStartPoint);
+
+ // Look for the cut point between start point along rTangentPrev and
+ // end point along rTangentEdge. -rTangentEdge should be used, but since
+ // the cut value is used for interpolating along the first edge, the negation
+ // is not needed since the same fCut will be found on the first edge.
+ // If it exists, insert it to complete the mitered fill polygon.
+ double fCutPos(0.0);
+ tools::findCut(aStartPoint, rTangentPrev, aEndPoint, rTangentEdge, CUTFLAG_ALL, &fCutPos);
+
+ if(0.0 != fCutPos)
+ {
+ const B2DPoint aCutPoint(interpolate(aStartPoint, aStartPoint + rTangentPrev, fCutPos));
+ aEdgePolygon.append(aCutPoint);
+ }
- // atan2 results are [-PI .. PI], consolidate to [0.0 .. 2PI]
- if(fAngleStart < 0.0)
- {
- fAngleStart += F_2PI;
+ break;
}
-
- if(fAngleEnd < 0.0)
+ case B2DLINEJOIN_ROUND :
{
- fAngleEnd += F_2PI;
+ // use tooling to add needed EllipseSegment
+ double fAngleStart(atan2(rPerpendPrev.getY(), rPerpendPrev.getX()));
+ double fAngleEnd(atan2(rPerpendEdge.getY(), rPerpendEdge.getX()));
+
+ // atan2 results are [-PI .. PI], consolidate to [0.0 .. 2PI]
+ if(fAngleStart < 0.0)
+ {
+ fAngleStart += F_2PI;
+ }
+
+ if(fAngleEnd < 0.0)
+ {
+ fAngleEnd += F_2PI;
+ }
+
+ const B2DPolygon aBow(tools::createPolygonFromEllipseSegment(rPoint, fHalfLineWidth, fHalfLineWidth, fAngleStart, fAngleEnd));
+
+ if(aBow.count() > 1)
+ {
+ // #i101491#
+ // use the original start/end positions; the ones from bow creation may be numerically
+ // different due to their different creation. To guarantee good merging quality with edges
+ // and edge roundings (and to reduce point count)
+ aEdgePolygon = aBow;
+ aEdgePolygon.setB2DPoint(0, aStartPoint);
+ aEdgePolygon.setB2DPoint(aEdgePolygon.count() - 1, aEndPoint);
+ aEdgePolygon.append(rPoint);
+
+ break;
+ }
+ else
+ {
+ // wanted fall-through to default
+ }
}
+ default: // B2DLINEJOIN_BEVEL
+ {
+ aEdgePolygon.append(aEndPoint);
+ aEdgePolygon.append(rPoint);
+ aEdgePolygon.append(aStartPoint);
- aEdgePolygon.append(tools::createPolygonFromEllipseSegment(rPoint, fHalfLineWidth, fHalfLineWidth, fAngleStart, fAngleEnd));
+ break;
+ }
}
// create last polygon part for edge
diff --git a/basegfx/source/polygon/b2dpolygoncutandtouch.cxx b/basegfx/source/polygon/b2dpolygoncutandtouch.cxx
index a1b7a69775ad..26016942717d 100644
--- a/basegfx/source/polygon/b2dpolygoncutandtouch.cxx
+++ b/basegfx/source/polygon/b2dpolygoncutandtouch.cxx
@@ -110,7 +110,10 @@ namespace basegfx
{
// #i76891# mergeTemporaryPointsAndPolygon redesigned to be able to correctly handle
// single edges with/without control points
- if(rTempPoints.size())
+ // #i101491# added counter for non-changing element count
+ const sal_uInt32 nTempPointCount(rTempPoints.size());
+
+ if(nTempPointCount)
{
B2DPolygon aRetval;
const sal_uInt32 nCount(rCandidate.count());
@@ -138,7 +141,7 @@ namespace basegfx
double fLeftStart(0.0);
// now add all points targeted to be at this index
- while(nNewInd < rTempPoints.size() && rTempPoints[nNewInd].getIndex() == a)
+ while(nNewInd < nTempPointCount && rTempPoints[nNewInd].getIndex() == a)
{
const temporaryPoint& rTempPoint = rTempPoints[nNewInd++];
@@ -160,7 +163,7 @@ namespace basegfx
else
{
// add all points targeted to be at this index
- while(nNewInd < rTempPoints.size() && rTempPoints[nNewInd].getIndex() == a)
+ while(nNewInd < nTempPointCount && rTempPoints[nNewInd].getIndex() == a)
{
const temporaryPoint& rTempPoint = rTempPoints[nNewInd++];
const B2DPoint aNewPoint(rTempPoint.getPoint());
diff --git a/basegfx/source/polygon/b2dpolypolygoncutter.cxx b/basegfx/source/polygon/b2dpolypolygoncutter.cxx
index b06e6fbafff7..0674bfe3953e 100644
--- a/basegfx/source/polygon/b2dpolypolygoncutter.cxx
+++ b/basegfx/source/polygon/b2dpolypolygoncutter.cxx
@@ -929,6 +929,85 @@ namespace basegfx
}
}
+ B2DPolyPolygon mergeToSinglePolyPolygon(const std::vector< basegfx::B2DPolyPolygon >& rInput)
+ {
+ std::vector< basegfx::B2DPolyPolygon > aInput(rInput);
+
+ // first step: prepareForPolygonOperation and simple merge of non-overlapping
+ // PolyPolygons for speedup; this is possible for the wanted OR-operation
+ if(aInput.size())
+ {
+ std::vector< basegfx::B2DPolyPolygon > aResult;
+ aResult.reserve(aInput.size());
+
+ for(sal_uInt32 a(0); a < aInput.size(); a++)
+ {
+ const basegfx::B2DPolyPolygon aCandidate(prepareForPolygonOperation(aInput[a]));
+
+ if(aResult.size())
+ {
+ const B2DRange aCandidateRange(aCandidate.getB2DRange());
+ bool bCouldMergeSimple(false);
+
+ for(sal_uInt32 b(0); !bCouldMergeSimple && b < aResult.size(); b++)
+ {
+ basegfx::B2DPolyPolygon aTarget(aResult[b]);
+ const B2DRange aTargetRange(aTarget.getB2DRange());
+
+ if(!aCandidateRange.overlaps(aTargetRange))
+ {
+ aTarget.append(aCandidate);
+ aResult[b] = aTarget;
+ bCouldMergeSimple = true;
+ }
+ }
+
+ if(!bCouldMergeSimple)
+ {
+ aResult.push_back(aCandidate);
+ }
+ }
+ else
+ {
+ aResult.push_back(aCandidate);
+ }
+ }
+
+ aInput = aResult;
+ }
+
+ // second step: melt pairwise to a single PolyPolygon
+ while(aInput.size() > 1)
+ {
+ std::vector< basegfx::B2DPolyPolygon > aResult;
+ aResult.reserve((aInput.size() / 2) + 1);
+
+ for(sal_uInt32 a(0); a < aInput.size(); a += 2)
+ {
+ if(a + 1 < aInput.size())
+ {
+ // a pair for processing
+ aResult.push_back(solvePolygonOperationOr(aInput[a], aInput[a + 1]));
+ }
+ else
+ {
+ // last single PolyPolygon; copy to target to not lose it
+ aResult.push_back(aInput[a]);
+ }
+ }
+
+ aInput = aResult;
+ }
+
+ // third step: get result
+ if(1 == aInput.size())
+ {
+ return aInput[0];
+ }
+
+ return B2DPolyPolygon();
+ }
+
//////////////////////////////////////////////////////////////////////////////
} // end of namespace tools
diff --git a/basegfx/source/polygon/b2dpolypolygontools.cxx b/basegfx/source/polygon/b2dpolypolygontools.cxx
index c92f2f29147b..e6b3a448530d 100644
--- a/basegfx/source/polygon/b2dpolypolygontools.cxx
+++ b/basegfx/source/polygon/b2dpolypolygontools.cxx
@@ -569,6 +569,18 @@ namespace basegfx
return equal(rCandidateA, rCandidateB, fSmallValue);
}
+ B2DPolyPolygon snapPointsOfHorizontalOrVerticalEdges(const B2DPolyPolygon& rCandidate)
+ {
+ B2DPolyPolygon aRetval;
+
+ for(sal_uInt32 a(0L); a < rCandidate.count(); a++)
+ {
+ aRetval.append(snapPointsOfHorizontalOrVerticalEdges(rCandidate.getB2DPolygon(a)));
+ }
+
+ return aRetval;
+ }
+
} // end of namespace tools
} // end of namespace basegfx
diff --git a/basegfx/test/makefile.mk b/basegfx/test/makefile.mk
index d0fbfaf9e7c6..8e47a13defdd 100644
--- a/basegfx/test/makefile.mk
+++ b/basegfx/test/makefile.mk
@@ -89,7 +89,7 @@ $(MISC)$/unittest_succeeded : $(SHL1TARGETN)
@echo ----------------------------------------------------------
@echo - start unit test on library $(SHL1TARGETN)
@echo ----------------------------------------------------------
- $(AUGMENT_LIBRARY_PATH) testshl2 -sf $(mktmp ) -forward $(BIN)$/ $(SHL1TARGETN)
+ $(TESTSHL2) -sf $(mktmp ) -forward $(BIN)$/ $(SHL1TARGETN)
$(TOUCH) $@
ALLTAR : $(MISC)$/unittest_succeeded
diff --git a/canvas/overview.txt b/canvas/overview.txt
index 0f9ada46dac9..5d508b04bc45 100644
--- a/canvas/overview.txt
+++ b/canvas/overview.txt
@@ -1,13 +1,10 @@
The new OOo Canvas Framework
============================
-The new OpenOffice.org canvas framework is the successor of the
-system GUI and graphics backend VCL. It is planned for the
-OpenOffice.org 2.0 release, and currently ready in a first developer
-version, with X11, Java, and DirectX/GDI+ backends. This means, that
-basic functionality is available, supplying just as much features as
-to provide a VCL-equivalent feature set (except proper BiDi/CTL
-support).
+The new OpenOffice.org canvas framework is the successor of the system
+GUI and graphics backend VCL. Basic functionality is available,
+supplying just as much features as necessary to provide a
+VCL-equivalent feature set (except proper BiDi/CTL support).
For migration purposes, the new canvas and VCL will be shipped with
OpenOffice.org for quite some time, allowing a step-by-step adaptation
diff --git a/canvas/source/cairo/cairo_canvashelper.cxx b/canvas/source/cairo/cairo_canvashelper.cxx
index f1c54e9b4ab7..9cf2dd978759 100644
--- a/canvas/source/cairo/cairo_canvashelper.cxx
+++ b/canvas/source/cairo/cairo_canvashelper.cxx
@@ -888,7 +888,7 @@ namespace cairocanvas
nY = aP.getY();
cairo_matrix_transform_point( &aOrigMatrix, &nX, &nY );
- if( ! bIsBezier && bIsRectangle ) {
+ if( ! bIsBezier && (bIsRectangle || aOperation == Clip) ) {
nX = basegfx::fround( nX );
nY = basegfx::fround( nY );
}
diff --git a/canvas/source/cairo/cairo_canvashelper_text.cxx b/canvas/source/cairo/cairo_canvashelper_text.cxx
index a38553055ae0..ac530f5d4632 100644
--- a/canvas/source/cairo/cairo_canvashelper_text.cxx
+++ b/canvas/source/cairo/cairo_canvashelper_text.cxx
@@ -343,10 +343,12 @@ namespace cairocanvas
// TODO(F2): alpha
mpVirtualDevice->SetLayoutMode( nLayoutMode );
- mpVirtualDevice->DrawText( aOutpos,
- text.Text,
- ::canvas::tools::numeric_cast<USHORT>(text.StartPosition),
- ::canvas::tools::numeric_cast<USHORT>(text.Length) );
+
+ OSL_TRACE(":cairocanvas::CanvasHelper::drawText(O,t,f,v,r,d): %s", ::rtl::OUStringToOString( text.Text.copy( text.StartPosition, text.Length ),
+ RTL_TEXTENCODING_UTF8 ).getStr());
+
+ TextLayout* pTextLayout = new TextLayout(text, textDirection, 0, CanvasFont::Reference(dynamic_cast< CanvasFont* >( xFont.get() )), mpSurfaceProvider);
+ pTextLayout->draw( mpSurface, *mpVirtualDevice, aOutpos, viewState, renderState );
}
return uno::Reference< rendering::XCachedPrimitive >(NULL);
@@ -384,7 +386,7 @@ namespace cairocanvas
return uno::Reference< rendering::XCachedPrimitive >(NULL); // no output necessary
// TODO(F2): What about the offset scalings?
- pTextLayout->draw( *mpVirtualDevice, aOutpos, viewState, renderState );
+ pTextLayout->draw( mpSurface, *mpVirtualDevice, aOutpos, viewState, renderState );
}
}
else
diff --git a/canvas/source/cairo/cairo_quartz_cairo.cxx b/canvas/source/cairo/cairo_quartz_cairo.cxx
index 2575c206f294..a3c6c9bba255 100644
--- a/canvas/source/cairo/cairo_quartz_cairo.cxx
+++ b/canvas/source/cairo/cairo_quartz_cairo.cxx
@@ -37,6 +37,9 @@
************************************************************************/
#include <osl/diagnose.h>
+#include <vcl/sysdata.hxx>
+#include <vcl/bitmap.hxx>
+#include <vcl/virdev.hxx>
#include "cairo_cairo.hxx"
diff --git a/canvas/source/cairo/cairo_quartz_cairo.hxx b/canvas/source/cairo/cairo_quartz_cairo.hxx
index 31659bbf79f5..fe748d26640a 100644
--- a/canvas/source/cairo/cairo_quartz_cairo.hxx
+++ b/canvas/source/cairo/cairo_quartz_cairo.hxx
@@ -38,10 +38,6 @@
#include <cairo-quartz.h>
#include "postmac.h"
-#include <vcl/sysdata.hxx>
-#include <vcl/bitmap.hxx>
-#include <vcl/virdev.hxx>
-
namespace cairo {
class QuartzSurface : public Surface
diff --git a/canvas/source/cairo/cairo_textlayout.cxx b/canvas/source/cairo/cairo_textlayout.cxx
index 5078289a9c40..f822749cab20 100644
--- a/canvas/source/cairo/cairo_textlayout.cxx
+++ b/canvas/source/cairo/cairo_textlayout.cxx
@@ -31,6 +31,8 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_canvas.hxx"
+#include <math.h>
+
#include <canvas/debug.hxx>
#include <canvas/verbosetrace.hxx>
#include <tools/diagnose_ex.h>
@@ -38,6 +40,13 @@
#include <vcl/metric.hxx>
#include <vcl/virdev.hxx>
+#ifdef WNT
+#include <tools/prewin.h>
+#include <windows.h>
+#include <tools/postwin.h>
+#endif
+#include <vcl/sysdata.hxx>
+
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/numeric/ftools.hxx>
@@ -46,6 +55,17 @@
#include "cairo_textlayout.hxx"
#include "cairo_spritecanvas.hxx"
+#ifdef CAIRO_HAS_QUARTZ_SURFACE
+# include "cairo_quartz_cairo.hxx"
+#elif defined CAIRO_HAS_WIN32_SURFACE
+# include "cairo_win32_cairo.hxx"
+# include <cairo-win32.h>
+#elif defined CAIRO_HAS_XLIB_SURFACE
+# include "cairo_xlib_cairo.hxx"
+# include <cairo-ft.h>
+#else
+# error Native API needed.
+#endif
using namespace ::cairo;
using namespace ::com::sun::star;
@@ -292,6 +312,11 @@ namespace cairocanvas
cairo_set_font_size( pCairo, aFontRequest.CellSize );
}
+ /** TextLayout:draw
+ *
+ * This function uses the "toy" api of the cairo library
+ *
+ **/
bool TextLayout::draw( Cairo* pCairo )
{
::osl::MutexGuard aGuard( m_aMutex );
@@ -310,6 +335,248 @@ namespace cairocanvas
return true;
}
+
+ /**
+ * TextLayout::isCairoRenderable
+ *
+ * Features currenly not supported by Cairo (VCL rendering is used as fallback):
+ * - vertical glyphs
+ *
+ * @return true, if text/font can be rendered with cairo
+ **/
+ bool TextLayout::isCairoRenderable(SystemFontData aSysFontData) const
+ {
+#if defined UNX && !defined QUARTZ
+ // is font usable?
+ if (!aSysFontData.nFontId) return false;
+#endif
+
+ // vertical glyph rendering is not supported in cairo for now
+ if (aSysFontData.bVerticalCharacterType) {
+ OSL_TRACE(":cairocanvas::TextLayout::isCairoRenderable(): ***************** VERTICAL CHARACTER STYLE!!! ****************");
+ return false;
+ }
+
+ return true;
+ }
+
+
+ /**
+ * TextLayout::draw
+ *
+ * Cairo-based text rendering. Draw text directly on the cairo surface with cairo fonts.
+ * Avoid using VCL VirtualDevices for that, bypassing VCL DrawText functions, when possible
+ *
+ * Note: some text effects are not rendered due to lacking generic canvas or cairo canvas
+ * implementation. See issues 92657, 92658, 92659, 92660, 97529
+ *
+ * @return true, if successful
+ **/
+ bool TextLayout::draw( SurfaceSharedPtr& pSurface,
+ OutputDevice& rOutDev,
+ const Point& rOutpos,
+ const rendering::ViewState& viewState,
+ const rendering::RenderState& renderState ) const
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+ SystemTextLayoutData aSysLayoutData;
+#if (defined CAIRO_HAS_WIN32_SURFACE) && (OSL_DEBUG_LEVEL > 1)
+ LOGFONTW logfont;
+#endif
+ setupLayoutMode( rOutDev, mnTextDirection );
+
+ // TODO(P2): cache that
+ ::boost::scoped_array< sal_Int32 > aOffsets(new sal_Int32[maLogicalAdvancements.getLength()]);
+
+ if( maLogicalAdvancements.getLength() )
+ {
+ setupTextOffsets( aOffsets.get(), maLogicalAdvancements, viewState, renderState );
+
+ // TODO(F3): ensure correct length and termination for DX
+ // array (last entry _must_ contain the overall width)
+ }
+
+ aSysLayoutData = rOutDev.GetSysTextLayoutData(rOutpos, maText.Text,
+ ::canvas::tools::numeric_cast<USHORT>(maText.StartPosition),
+ ::canvas::tools::numeric_cast<USHORT>(maText.Length),
+ maLogicalAdvancements.getLength() ? aOffsets.get() : NULL);
+
+ // The ::GetSysTextLayoutData(), i.e. layouting of text to glyphs can change the font being used.
+ // The fallback checks need to be done after final font is known.
+ if (!isCairoRenderable(aSysLayoutData.aSysFontData)) // VCL FALLBACKS
+ {
+ OSL_TRACE(":cairocanvas::TextLayout::draw(S,O,p,v,r): VCL FALLBACK %s%s%s%s - %s",
+ maLogicalAdvancements.getLength() ? "ADV " : "",
+ aSysLayoutData.aSysFontData.bAntialias ? "AA " : "",
+ aSysLayoutData.aSysFontData.bFakeBold ? "FB " : "",
+ aSysLayoutData.aSysFontData.bFakeItalic ? "FI " : "",
+ ::rtl::OUStringToOString( maText.Text.copy( maText.StartPosition, maText.Length ),
+ RTL_TEXTENCODING_UTF8 ).getStr());
+
+ if (maLogicalAdvancements.getLength()) // VCL FALLBACK - with glyph advances
+ {
+ rOutDev.DrawTextArray( rOutpos, maText.Text, aOffsets.get(),
+ ::canvas::tools::numeric_cast<USHORT>(maText.StartPosition),
+ ::canvas::tools::numeric_cast<USHORT>(maText.Length) );
+ return true;
+ }
+ else // VCL FALLBACK - without advances
+ {
+ rOutDev.DrawText( rOutpos, maText.Text,
+ ::canvas::tools::numeric_cast<USHORT>(maText.StartPosition),
+ ::canvas::tools::numeric_cast<USHORT>(maText.Length) );
+ return true;
+ }
+ }
+
+ if (aSysLayoutData.rGlyphData.empty()) return false; //??? false?
+
+ /**
+ * Setup platform independent glyph vector into cairo-based glyphs vector.
+ **/
+
+ // setup glyphs
+ std::vector<cairo_glyph_t> cairo_glyphs;
+ cairo_glyphs.reserve( 256 );
+
+ for( int nStart = 0; nStart < (int) aSysLayoutData.rGlyphData.size(); nStart++ )
+ {
+ cairo_glyph_t aGlyph;
+ SystemGlyphData systemGlyph = aSysLayoutData.rGlyphData.at(nStart);
+ aGlyph.index = systemGlyph.index;
+#ifdef CAIRO_HAS_WIN32_SURFACE
+ // Cairo requires standard glyph indexes (ETO_GLYPH_INDEX), while vcl/win/* uses ucs4 chars.
+ // Convert to standard indexes
+ aGlyph.index = cairo::ucs4toindex((unsigned int) aGlyph.index, aSysLayoutData.aSysFontData.hFont);
+#endif
+ aGlyph.x = systemGlyph.x;
+ aGlyph.y = systemGlyph.y;
+ cairo_glyphs.push_back(aGlyph);
+ }
+
+ if (cairo_glyphs.empty()) return true; //true or false??
+
+ /**
+ * Setup font
+ **/
+ cairo_font_face_t* font_face = NULL;
+
+#ifdef CAIRO_HAS_QUARTZ_SURFACE
+ // TODO: use cairo_quartz_font_face_create_for_cgfont(cgFont)
+ // when CGFont (Mac OS X 10.5 API) is provided by the AQUA VCL backend.
+ font_face = cairo_quartz_font_face_create_for_atsu_font_id((ATSUFontID) aSysLayoutData.aSysFontData.aATSUFontID);
+
+#elif defined CAIRO_HAS_WIN32_SURFACE
+ #if (OSL_DEBUG_LEVEL > 1)
+ GetObjectW( aSysLayoutData.aSysFontData.hFont, sizeof(logfont), &logfont );
+ #endif
+ // Note: cairo library uses logfont fallbacks when lfEscapement, lfOrientation and lfWidth are not zero.
+ // VCL always has non-zero value for lfWidth
+ font_face = cairo_win32_font_face_create_for_hfont(aSysLayoutData.aSysFontData.hFont);
+
+#elif defined CAIRO_HAS_XLIB_SURFACE
+ font_face = cairo_ft_font_face_create_for_ft_face((FT_Face)aSysLayoutData.aSysFontData.nFontId,
+ aSysLayoutData.aSysFontData.nFontFlags);
+#else
+# error Native API needed.
+#endif
+
+ CairoSharedPtr pSCairo = pSurface->getCairo();
+
+ cairo_set_font_face( pSCairo.get(), font_face);
+
+ // create default font options. cairo_get_font_options() does not retrieve the surface defaults,
+ // only what has been set before with cairo_set_font_options()
+ cairo_font_options_t* options = cairo_font_options_create();
+ if (aSysLayoutData.aSysFontData.bAntialias) {
+ // CAIRO_ANTIALIAS_GRAY provides more similar result to VCL Canvas,
+ // so we're not using CAIRO_ANTIALIAS_SUBPIXEL
+ cairo_font_options_set_antialias(options, CAIRO_ANTIALIAS_GRAY);
+ }
+ cairo_set_font_options( pSCairo.get(), options);
+
+ // Font color
+ Color mTextColor = rOutDev.GetTextColor();
+ cairo_set_source_rgb(pSCairo.get(),
+ mTextColor.GetRed()/255.0,
+ mTextColor.GetGreen()/255.0,
+ mTextColor.GetBlue()/255.0);
+
+ // Font rotation and scaling
+ cairo_matrix_t m;
+ Font aFont = rOutDev.GetFont();
+ FontMetric aMetric( rOutDev.GetFontMetric(aFont) );
+ long nWidth = 0;
+
+ // width calculation is deep magic and platform/font dependant.
+ // width == 0 means no scaling, and usually width == height means the same.
+ // Other values mean horizontal scaling (narrow or stretching)
+ // see issue #101566
+
+ //proper scale calculation across platforms
+ if (aFont.GetWidth() == 0) {
+ nWidth = aFont.GetHeight();
+ } else {
+ // any scaling needs to be relative to the platform-dependent definition
+ // of width of the font
+ nWidth = aFont.GetHeight() * aFont.GetWidth() / aMetric.GetWidth();
+ }
+
+ cairo_matrix_init_identity(&m);
+
+ if (aSysLayoutData.orientation) cairo_matrix_rotate(&m, (3600 - aSysLayoutData.orientation) * M_PI / 1800.0);
+
+ cairo_matrix_scale(&m, nWidth, aFont.GetHeight());
+
+ //faux italics
+ if (aSysLayoutData.aSysFontData.bFakeItalic) m.xy = -m.xx * 0x6000L / 0x10000L;
+
+ cairo_set_font_matrix(pSCairo.get(), &m);
+
+ OSL_TRACE("\r\n:cairocanvas::TextLayout::draw(S,O,p,v,r): Size:(%d,%d), W:%d->%d, Pos (%d,%d), G(%d,%d,%d) %s%s%s%s || Name:%s - %s",
+ aFont.GetWidth(),
+ aFont.GetHeight(),
+ aMetric.GetWidth(),
+ nWidth,
+ (int) rOutpos.X(),
+ (int) rOutpos.Y(),
+ cairo_glyphs[0].index, cairo_glyphs[1].index, cairo_glyphs[2].index,
+ maLogicalAdvancements.getLength() ? "ADV " : "",
+ aSysLayoutData.aSysFontData.bAntialias ? "AA " : "",
+ aSysLayoutData.aSysFontData.bFakeBold ? "FB " : "",
+ aSysLayoutData.aSysFontData.bFakeItalic ? "FI " : "",
+#if (defined CAIRO_HAS_WIN32_SURFACE) && (OSL_DEBUG_LEVEL > 1)
+ ::rtl::OUStringToOString( reinterpret_cast<const sal_Unicode*> (logfont.lfFaceName), RTL_TEXTENCODING_UTF8 ).getStr(),
+#else
+ ::rtl::OUStringToOString( aFont.GetName(), RTL_TEXTENCODING_UTF8 ).getStr(),
+#endif
+ ::rtl::OUStringToOString( maText.Text.copy( maText.StartPosition, maText.Length ),
+ RTL_TEXTENCODING_UTF8 ).getStr()
+ );
+
+ cairo_show_glyphs(pSCairo.get(), &cairo_glyphs[0], cairo_glyphs.size());
+
+ //faux bold
+ if (aSysLayoutData.aSysFontData.bFakeBold) {
+ double bold_dx = 0.5 * sqrt( 0.7 * aFont.GetHeight() );
+ int total_steps = 2 * ((int) (bold_dx + 0.5));
+
+ // loop to draw the text for every half pixel of displacement
+ for (int nSteps = 0; nSteps < total_steps; nSteps++) {
+ for(int nGlyphIdx = 0; nGlyphIdx < (int) cairo_glyphs.size(); nGlyphIdx++) {
+ cairo_glyphs[nGlyphIdx].x += bold_dx * nSteps / total_steps;
+ }
+ cairo_show_glyphs(pSCairo.get(), &cairo_glyphs[0], cairo_glyphs.size());
+ }
+ OSL_TRACE(":cairocanvas::TextLayout::draw(S,O,p,v,r): FAKEBOLD - dx:%d", (int) bold_dx);
+ }
+
+ cairo_restore( pSCairo.get() );
+ cairo_font_face_destroy(font_face);
+ return true;
+ }
+
+
namespace
{
class OffsetTransformer
@@ -363,41 +630,6 @@ namespace cairocanvas
OffsetTransformer( aMatrix ) );
}
- bool TextLayout::draw( OutputDevice& rOutDev,
- const Point& rOutpos,
- const rendering::ViewState& viewState,
- const rendering::RenderState& renderState ) const
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- setupLayoutMode( rOutDev, mnTextDirection );
-
- if( maLogicalAdvancements.getLength() )
- {
- // TODO(P2): cache that
- ::boost::scoped_array< sal_Int32 > aOffsets(new sal_Int32[maLogicalAdvancements.getLength()]);
- setupTextOffsets( aOffsets.get(), maLogicalAdvancements, viewState, renderState );
-
- // TODO(F3): ensure correct length and termination for DX
- // array (last entry _must_ contain the overall width)
-
- rOutDev.DrawTextArray( rOutpos,
- maText.Text,
- aOffsets.get(),
- ::canvas::tools::numeric_cast<USHORT>(maText.StartPosition),
- ::canvas::tools::numeric_cast<USHORT>(maText.Length) );
- }
- else
- {
- rOutDev.DrawText( rOutpos,
- maText.Text,
- ::canvas::tools::numeric_cast<USHORT>(maText.StartPosition),
- ::canvas::tools::numeric_cast<USHORT>(maText.Length) );
- }
-
- return true;
- }
-
#define SERVICE_NAME "com.sun.star.rendering.TextLayout"
#define IMPLEMENTATION_NAME "CairoCanvas::TextLayout"
diff --git a/canvas/source/cairo/cairo_textlayout.hxx b/canvas/source/cairo/cairo_textlayout.hxx
index fb98c434615d..9dbc004d551a 100644
--- a/canvas/source/cairo/cairo_textlayout.hxx
+++ b/canvas/source/cairo/cairo_textlayout.hxx
@@ -93,10 +93,12 @@ namespace cairocanvas
virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException );
bool draw( ::cairo::Cairo* pCairo );
- bool draw( OutputDevice& rOutDev,
+ bool draw( SurfaceSharedPtr& pSurface,
+ OutputDevice& rOutDev,
const Point& rOutpos,
const ::com::sun::star::rendering::ViewState& viewState,
const ::com::sun::star::rendering::RenderState& renderState ) const;
+
void setupTextOffsets( sal_Int32* outputOffsets,
const ::com::sun::star::uno::Sequence< double >& inputOffsets,
const ::com::sun::star::rendering::ViewState& viewState,
@@ -112,7 +114,8 @@ namespace cairocanvas
SurfaceProviderRef mpRefDevice;
sal_Int8 mnTextDirection;
- void useFont( ::cairo::Cairo* pCairo );
+ void useFont( ::cairo::Cairo* pCairo );
+ bool isCairoRenderable(SystemFontData aSysFontData) const;
};
}
diff --git a/canvas/source/cairo/cairo_win32_cairo.cxx b/canvas/source/cairo/cairo_win32_cairo.cxx
index 56edf089b4cb..b679d5fdbf12 100644
--- a/canvas/source/cairo/cairo_win32_cairo.cxx
+++ b/canvas/source/cairo/cairo_win32_cairo.cxx
@@ -284,6 +284,43 @@ namespace cairo
return SurfaceSharedPtr();
}
+
+ /**
+ * cairo::ucs4toindex: Convert ucs4 char to glyph index
+ * @param ucs4 an ucs4 char
+ * @param hfont current font
+ *
+ * @return true if successful
+ **/
+ unsigned long ucs4toindex(unsigned int ucs4, HFONT hfont)
+ {
+ wchar_t unicode[2];
+ WORD glyph_index;
+ HDC hdc = NULL;
+ int i = 0;
+
+ hdc = CreateCompatibleDC (NULL);
+
+ if (!hdc) return 0;
+ if (!SetGraphicsMode (hdc, GM_ADVANCED)) {
+ DeleteDC (hdc);
+ return 0;
+ }
+
+ SelectObject (hdc, hfont);
+ SetMapMode (hdc, MM_TEXT);
+
+ unicode[0] = ucs4;
+ unicode[1] = 0;
+ if (GetGlyphIndicesW (hdc, unicode, 1, &glyph_index, 0) == GDI_ERROR) {
+ glyph_index = 0;
+ }
+
+ DeleteDC (hdc);
+ return glyph_index;
+ }
+
+
} // namespace cairo
#endif // CAIRO_HAS_WIN32_SURFACE
diff --git a/canvas/source/cairo/cairo_win32_cairo.hxx b/canvas/source/cairo/cairo_win32_cairo.hxx
index 2cacd1019ebc..3ecb04608355 100644
--- a/canvas/source/cairo/cairo_win32_cairo.hxx
+++ b/canvas/source/cairo/cairo_win32_cairo.hxx
@@ -66,6 +66,8 @@ namespace cairo {
int getDepth() const;
};
+
+ unsigned long ucs4toindex(unsigned int ucs4, HFONT hfont);
}
#endif
diff --git a/canvas/source/cairo/cairo_xlib_cairo.cxx b/canvas/source/cairo/cairo_xlib_cairo.cxx
index 0dba5c2b44ce..65f0faae659e 100644
--- a/canvas/source/cairo/cairo_xlib_cairo.cxx
+++ b/canvas/source/cairo/cairo_xlib_cairo.cxx
@@ -31,10 +31,10 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_canvas.hxx"
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/extensions/Xrender.h>
#include <X11/Xlib.h>
-#include <postx.h>
+#include <tools/postx.h>
#include "cairo_xlib_cairo.hxx"
@@ -71,23 +71,23 @@ namespace cairo
pRenderFormat(NULL)
{}
- X11SysData::X11SysData( const SystemGraphicsData* pSysDat ) :
- pDisplay(pSysDat->pDisplay),
- hDrawable(pSysDat->hDrawable),
- pVisual(pSysDat->pVisual),
- nScreen(pSysDat->nScreen),
- nDepth(pSysDat->nDepth),
- aColormap(pSysDat->aColormap),
- pRenderFormat(pSysDat->pRenderFormat)
+ X11SysData::X11SysData( const SystemGraphicsData& pSysDat ) :
+ pDisplay(pSysDat.pDisplay),
+ hDrawable(pSysDat.hDrawable),
+ pVisual(pSysDat.pVisual),
+ nScreen(pSysDat.nScreen),
+ nDepth(pSysDat.nDepth),
+ aColormap(pSysDat.aColormap),
+ pRenderFormat(pSysDat.pRenderFormat)
{}
- X11SysData::X11SysData( const SystemEnvData* pSysDat ) :
- pDisplay(pSysDat->pDisplay),
- hDrawable(pSysDat->aWindow),
- pVisual(pSysDat->pVisual),
- nScreen(pSysDat->nScreen),
- nDepth(pSysDat->nDepth),
- aColormap(pSysDat->aColormap),
+ X11SysData::X11SysData( const SystemEnvData& pSysDat ) :
+ pDisplay(pSysDat.pDisplay),
+ hDrawable(pSysDat.aWindow),
+ pVisual(pSysDat.pVisual),
+ nScreen(pSysDat.nScreen),
+ nDepth(pSysDat.nDepth),
+ aColormap(pSysDat.aColormap),
pRenderFormat(NULL)
{}
@@ -315,12 +315,12 @@ namespace cairo
if( !pSysData )
return X11SysData();
else
- return X11SysData(pSysData);
+ return X11SysData(*pSysData);
}
static X11SysData getSysData( const VirtualDevice& rVirDev )
{
- return X11SysData( &rVirDev.GetSystemGfxData() );
+ return X11SysData( rVirDev.GetSystemGfxData() );
}
SurfaceSharedPtr createSurface( const OutputDevice& rRefDevice,
diff --git a/canvas/source/cairo/cairo_xlib_cairo.hxx b/canvas/source/cairo/cairo_xlib_cairo.hxx
index 83bbfd0abfb6..eb5206f8b4eb 100644
--- a/canvas/source/cairo/cairo_xlib_cairo.hxx
+++ b/canvas/source/cairo/cairo_xlib_cairo.hxx
@@ -42,8 +42,8 @@ namespace cairo {
struct X11SysData
{
X11SysData();
- explicit X11SysData( const SystemGraphicsData* );
- explicit X11SysData( const SystemEnvData* );
+ explicit X11SysData( const SystemGraphicsData& );
+ explicit X11SysData( const SystemEnvData& );
void* pDisplay; // the relevant display connection
long hDrawable; // a drawable
diff --git a/canvas/source/cairo/makefile.mk b/canvas/source/cairo/makefile.mk
index 0466b1d07723..bd54254abf7e 100644
--- a/canvas/source/cairo/makefile.mk
+++ b/canvas/source/cairo/makefile.mk
@@ -99,12 +99,14 @@ SHL1STDLIBS+= -lcairo
SLOFILES+= $(SLO)$/cairo_quartz_cairo.obj
OBJCXXFLAGS=-x objective-c++ -fobjc-exceptions
CFLAGSCXX+=$(OBJCXXFLAGS)
-SHL1STDLIBS+= -lpixman-1
-.ELSE
+.ELSE # "$(GUIBASE)"=="aqua"
+
# Xlib
SLOFILES+= $(SLO)$/cairo_xlib_cairo.obj
-SHL1STDLIBS+= -lfontconfig $(FREETYPELIB) -lX11 -lXrender
-.ENDIF
+SHL1STDLIBS+= -lfontconfig -lX11 -lXrender -lpixman-1 $(FREETYPE_LIBS)
+CFLAGS+=$(FREETYPE_CFLAGS)
+
+.ENDIF # "$(GUIBASE)"=="aqua"
.ELSE # "$(GUI)"=="UNX"
diff --git a/canvas/source/java/BackBuffer.java b/canvas/source/java/BackBuffer.java
index bed2868e13aa..c71a523f35d9 100644
--- a/canvas/source/java/BackBuffer.java
+++ b/canvas/source/java/BackBuffer.java
@@ -28,24 +28,9 @@
*
************************************************************************/
-// 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 BackBuffer
{
diff --git a/canvas/source/java/BezierPolyPolygon.java b/canvas/source/java/BezierPolyPolygon.java
index 4c5b77c8ab2e..54a061477ab8 100644
--- a/canvas/source/java/BezierPolyPolygon.java
+++ b/canvas/source/java/BezierPolyPolygon.java
@@ -28,15 +28,6 @@
*
************************************************************************/
-// UNO
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.uno.AnyConverter;
-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.*;
diff --git a/canvas/source/java/CanvasBase.java b/canvas/source/java/CanvasBase.java
index 6eac508043c4..5f086e268069 100644
--- a/canvas/source/java/CanvasBase.java
+++ b/canvas/source/java/CanvasBase.java
@@ -28,17 +28,6 @@
*
************************************************************************/
-// 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.*;
diff --git a/canvas/source/java/CanvasBitmap.java b/canvas/source/java/CanvasBitmap.java
index bf33dc6f6c9a..e55d96b76472 100644
--- a/canvas/source/java/CanvasBitmap.java
+++ b/canvas/source/java/CanvasBitmap.java
@@ -28,15 +28,6 @@
*
************************************************************************/
-// UNO
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.uno.AnyConverter;
-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.*;
diff --git a/canvas/source/java/CanvasClonedSprite.java b/canvas/source/java/CanvasClonedSprite.java
index 4837a59f0971..0976f0adbbaa 100644
--- a/canvas/source/java/CanvasClonedSprite.java
+++ b/canvas/source/java/CanvasClonedSprite.java
@@ -28,23 +28,11 @@
*
************************************************************************/
-// 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.geom.*;
public class CanvasClonedSprite
diff --git a/canvas/source/java/CanvasCustomSprite.java b/canvas/source/java/CanvasCustomSprite.java
index eb80d9b9ef58..3440f2f60dcd 100644
--- a/canvas/source/java/CanvasCustomSprite.java
+++ b/canvas/source/java/CanvasCustomSprite.java
@@ -28,17 +28,6 @@
*
************************************************************************/
-// 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.*;
diff --git a/canvas/source/java/CanvasFont.java b/canvas/source/java/CanvasFont.java
index 9f1109bd2975..c8f0d76395ba 100644
--- a/canvas/source/java/CanvasFont.java
+++ b/canvas/source/java/CanvasFont.java
@@ -28,18 +28,8 @@
*
************************************************************************/
-// UNO
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.uno.AnyConverter;
-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.*;
public class CanvasFont
extends com.sun.star.lib.uno.helper.ComponentBase
diff --git a/canvas/source/java/CanvasGraphicDevice.java b/canvas/source/java/CanvasGraphicDevice.java
index 6bd17179801c..1c9c99b7a408 100644
--- a/canvas/source/java/CanvasGraphicDevice.java
+++ b/canvas/source/java/CanvasGraphicDevice.java
@@ -28,27 +28,12 @@
*
************************************************************************/
-// UNO
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.uno.AnyConverter;
-import com.sun.star.beans.XPropertySet;
-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.geom.*;
-
-// TEMP
-import com.sun.star.uno.Type;
-
public class CanvasGraphicDevice
extends com.sun.star.lib.uno.helper.ComponentBase
diff --git a/canvas/source/java/CanvasSprite.java b/canvas/source/java/CanvasSprite.java
index 4fd2faf28ede..630b9ed386aa 100644
--- a/canvas/source/java/CanvasSprite.java
+++ b/canvas/source/java/CanvasSprite.java
@@ -28,17 +28,6 @@
*
************************************************************************/
-// 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.*;
diff --git a/canvas/source/java/CanvasUtils.java b/canvas/source/java/CanvasUtils.java
index 52143e530952..423bb6954e06 100644
--- a/canvas/source/java/CanvasUtils.java
+++ b/canvas/source/java/CanvasUtils.java
@@ -30,14 +30,6 @@
// 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.*;
@@ -45,7 +37,6 @@ import com.sun.star.geometry.*;
// Java AWT
import java.awt.*;
-import java.awt.image.*;
import java.awt.geom.*;
public class CanvasUtils
diff --git a/canvas/source/java/JavaCanvas.java b/canvas/source/java/JavaCanvas.java
index 9aa488adf2f1..c4090d06ee0f 100644
--- a/canvas/source/java/JavaCanvas.java
+++ b/canvas/source/java/JavaCanvas.java
@@ -29,12 +29,8 @@
************************************************************************/
// 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.*;
@@ -45,8 +41,6 @@ import com.sun.star.geometry.*;
// Java AWT
import java.awt.*;
-import java.awt.image.*;
-import java.awt.geom.*;
public class JavaCanvas
extends CanvasBase
diff --git a/canvas/source/java/LinePolyPolygon.java b/canvas/source/java/LinePolyPolygon.java
index 66a39679b8c5..4c67f387a8de 100644
--- a/canvas/source/java/LinePolyPolygon.java
+++ b/canvas/source/java/LinePolyPolygon.java
@@ -28,15 +28,6 @@
*
************************************************************************/
-// UNO
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.uno.AnyConverter;
-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.*;
diff --git a/canvas/source/java/SpriteBase.java b/canvas/source/java/SpriteBase.java
index 71bc6a1ddf70..d275275454c4 100644
--- a/canvas/source/java/SpriteBase.java
+++ b/canvas/source/java/SpriteBase.java
@@ -28,23 +28,7 @@
*
************************************************************************/
-// 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.geom.*;
public interface SpriteBase
{
diff --git a/canvas/source/java/SpriteRep.java b/canvas/source/java/SpriteRep.java
index 6950b61bca36..62755dd01ec0 100644
--- a/canvas/source/java/SpriteRep.java
+++ b/canvas/source/java/SpriteRep.java
@@ -28,17 +28,6 @@
*
************************************************************************/
-// 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.*;
diff --git a/canvas/source/java/SpriteRunner.java b/canvas/source/java/SpriteRunner.java
index 02133679eee7..4a75125e377a 100644
--- a/canvas/source/java/SpriteRunner.java
+++ b/canvas/source/java/SpriteRunner.java
@@ -28,24 +28,9 @@
*
************************************************************************/
-// 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.geom.*;
-
//
// HOWTO get a Graphics2D from a window
//
diff --git a/canvas/source/java/TextLayout.java b/canvas/source/java/TextLayout.java
index ab829a0af9ab..5495fa7e90be 100644
--- a/canvas/source/java/TextLayout.java
+++ b/canvas/source/java/TextLayout.java
@@ -28,18 +28,8 @@
*
************************************************************************/
-// UNO
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.uno.AnyConverter;
-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.*;
public class TextLayout
extends com.sun.star.lib.uno.helper.ComponentBase
diff --git a/canvas/source/vcl/bitmapbackbuffer.cxx b/canvas/source/vcl/bitmapbackbuffer.cxx
index a7895f1034dd..1cc97351d9c0 100644
--- a/canvas/source/vcl/bitmapbackbuffer.cxx
+++ b/canvas/source/vcl/bitmapbackbuffer.cxx
@@ -105,6 +105,19 @@ namespace vclcanvas
return *maBitmap;
}
+ Size BitmapBackBuffer::getBitmapSizePixel() const
+ {
+ Size aSize = maBitmap->GetSizePixel();
+
+ if( mbVDevContentIsCurrent && mpVDev )
+ {
+ mpVDev->EnableMapMode( FALSE );
+ aSize = mpVDev->GetOutputSizePixel();
+ }
+
+ return aSize;
+ }
+
void BitmapBackBuffer::createVDev() const
{
if( !mpVDev )
@@ -151,5 +164,5 @@ namespace vclcanvas
mbBitmapContentIsCurrent = false;
mbVDevContentIsCurrent = true;
}
-
}
+
diff --git a/canvas/source/vcl/bitmapbackbuffer.hxx b/canvas/source/vcl/bitmapbackbuffer.hxx
index 04738300a186..7668aaaaf6b2 100644
--- a/canvas/source/vcl/bitmapbackbuffer.hxx
+++ b/canvas/source/vcl/bitmapbackbuffer.hxx
@@ -70,6 +70,7 @@ namespace vclcanvas
@internal
*/
BitmapEx& getBitmapReference();
+ Size getBitmapSizePixel() const;
private:
void createVDev() const;
@@ -103,3 +104,4 @@ namespace vclcanvas
}
#endif /* #ifndef _VCLCANVAS_BITMAPBACKBUFFER_HXX_ */
+
diff --git a/canvas/source/vcl/canvasbitmaphelper.cxx b/canvas/source/vcl/canvasbitmaphelper.cxx
index 5656e4ba2429..5d5aa0dc8179 100644
--- a/canvas/source/vcl/canvasbitmaphelper.cxx
+++ b/canvas/source/vcl/canvasbitmaphelper.cxx
@@ -109,7 +109,7 @@ namespace vclcanvas
if( !mpBackBuffer )
return geometry::IntegerSize2D();
- return ::vcl::unotools::integerSize2DFromSize( mpBackBuffer->getBitmapReference().GetSizePixel() );
+ return ::vcl::unotools::integerSize2DFromSize( mpBackBuffer->getBitmapSizePixel() );
}
void CanvasBitmapHelper::clear()
diff --git a/canvas/source/vcl/canvashelper_texturefill.cxx b/canvas/source/vcl/canvashelper_texturefill.cxx
index 6127aa8f401b..571a8c4fc5a3 100644
--- a/canvas/source/vcl/canvashelper_texturefill.cxx
+++ b/canvas/source/vcl/canvashelper_texturefill.cxx
@@ -892,9 +892,9 @@ 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." );
+// 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() );
@@ -970,6 +970,23 @@ 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
diff --git a/comphelper/inc/comphelper/componentbase.hxx b/comphelper/inc/comphelper/componentbase.hxx
new file mode 100644
index 000000000000..ca12610a709d
--- /dev/null
+++ b/comphelper/inc/comphelper/componentbase.hxx
@@ -0,0 +1,160 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2009 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 COMPHELPER_COMPONENTBASE_HXX
+#define COMPHELPER_COMPONENTBASE_HXX
+
+#include "comphelper/comphelperdllapi.h"
+
+/** === begin UNO includes === **/
+/** === end UNO includes === **/
+
+#include <cppuhelper/interfacecontainer.hxx>
+
+//........................................................................
+namespace comphelper
+{
+//........................................................................
+
+ //====================================================================
+ //= ComponentBase
+ //====================================================================
+ class COMPHELPER_DLLPUBLIC ComponentBase
+ {
+ protected:
+ /** creates a ComponentBase instance
+
+ The instance is not initialized. As a consequence, every ComponentMethodGuard instantiated for
+ this component will throw a <type scope="com::sun::star::lang">NotInitializedException</type>,
+ until ->setInitialized() is called.
+ */
+ ComponentBase( ::cppu::OBroadcastHelper& _rBHelper )
+ :m_rBHelper( _rBHelper )
+ ,m_bInitialized( false )
+ {
+ }
+
+ struct NoInitializationNeeded { };
+
+ /** creates a ComponentBase instance
+
+ The instance is already initialized, so there's no need to call setInitialized later on. Use this
+ constructor for component implementations which do not require explicit initialization.
+ */
+ ComponentBase( ::cppu::OBroadcastHelper& _rBHelper, NoInitializationNeeded )
+ :m_rBHelper( _rBHelper )
+ ,m_bInitialized( true )
+ {
+ }
+
+ /** marks the instance as initialized
+
+ Subsequent instantiations of a ComponentMethodGuard won't throw the NotInitializedException now.
+ */
+ inline void setInitialized() { m_bInitialized = true; }
+
+ public:
+ /// helper struct to grant access to selected public methods to the ComponentMethodGuard class
+ struct GuardAccess { friend class ComponentMethodGuard; private: GuardAccess() { } };
+
+ /// retrieves the component's mutex
+ inline ::osl::Mutex& getMutex( GuardAccess ) { return getMutex(); }
+ /// checks whether the component is already disposed, throws a DisposedException if so.
+ inline void checkDisposed( GuardAccess ) const { impl_checkDisposed_throw(); }
+ /// checks whether the component is already initialized, throws a NotInitializedException if not.
+ inline void checkInitialized( GuardAccess ) const { impl_checkInitialized_throw(); }
+
+ protected:
+ /// retrieves the component's broadcast helper
+ inline ::cppu::OBroadcastHelper& getBroadcastHelper() { return m_rBHelper; }
+ /// retrieves the component's mutex
+ inline ::osl::Mutex& getMutex() { return m_rBHelper.rMutex; }
+ /// determines whether the instance is already disposed
+ inline bool impl_isDisposed() const { return m_rBHelper.bDisposed; }
+
+ /// checks whether the component is already disposed. Throws a DisposedException if so.
+ void impl_checkDisposed_throw() const;
+
+ /// checks whether the component is already initialized. Throws a NotInitializedException if not.
+ void impl_checkInitialized_throw() const;
+
+ /// determines whether the component is already initialized
+ inline bool
+ impl_isInitialized_nothrow() const { return m_bInitialized; }
+
+ /** returns the context to be used when throwing exceptions
+
+ The default implementation returns <NULL/>.
+ */
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
+ getComponent() const;
+
+ private:
+ ::cppu::OBroadcastHelper& m_rBHelper;
+ bool m_bInitialized;
+ };
+
+ class ComponentMethodGuard
+ {
+ public:
+ enum MethodType
+ {
+ /// allow the method to be called only when being initialized and not being disposed
+ Default,
+ /// allow the method to be called without being initialized
+ WithoutInit
+
+ };
+
+ ComponentMethodGuard( ComponentBase& _rComponent, const MethodType _eType = Default )
+ :m_aMutexGuard( _rComponent.getMutex( ComponentBase::GuardAccess() ) )
+ {
+ if ( _eType != WithoutInit )
+ _rComponent.checkInitialized( ComponentBase::GuardAccess() );
+ _rComponent.checkDisposed( ComponentBase::GuardAccess() );
+ }
+
+ ~ComponentMethodGuard()
+ {
+ }
+
+ inline void clear()
+ {
+ m_aMutexGuard.clear();
+ }
+ inline void reset()
+ {
+ m_aMutexGuard.reset();
+ }
+
+ private:
+ ::osl::ResettableMutexGuard m_aMutexGuard;
+ };
+
+//........................................................................
+} // namespace ComponentBase
+//........................................................................
+
+#endif // COMPHELPER_COMPONENTBASE_HXX
diff --git a/comphelper/inc/comphelper/processfactory.hxx b/comphelper/inc/comphelper/processfactory.hxx
index d2ae887ba341..9b24f8e784ac 100644
--- a/comphelper/inc/comphelper/processfactory.hxx
+++ b/comphelper/inc/comphelper/processfactory.hxx
@@ -79,10 +79,19 @@ COMPHELPER_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::uno::XI
const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& _rArgs
) SAL_THROW( ( ::com::sun::star::uno::RuntimeException ) );
+/**
+ * This function gets the process service factory's default component context.
+ * If no service factory is set the function returns a null interface.
+ */
+COMPHELPER_DLLPUBLIC
+::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >
+getProcessComponentContext();
+
}
+
extern "C" {
-/// @internal
+/// @internal ATTENTION returns ACQUIRED pointer! release it explicitly!
COMPHELPER_DLLPUBLIC
::com::sun::star::uno::XComponentContext *
comphelper_getProcessComponentContext();
diff --git a/comphelper/inc/comphelper/propertybag.hxx b/comphelper/inc/comphelper/propertybag.hxx
index 3a47bd5bb4c7..75c5330ff638 100644
--- a/comphelper/inc/comphelper/propertybag.hxx
+++ b/comphelper/inc/comphelper/propertybag.hxx
@@ -98,6 +98,34 @@ namespace comphelper
const ::com::sun::star::uno::Any& _rInitialValue
);
+ /** adds a property to the bag
+
+ The initial value of the property is <NULL/>.
+
+ @param _rName
+ the name of the new property. Must not be empty unless
+ explicitly allowed with setAllowEmptyPropertyName.
+ @param _rType
+ the type of the new property
+ @param _nHandle
+ the handle of the new property
+ @param _nAttributes
+ the attributes of the property
+
+ @throws ::com::sun::star::beans::IllegalTypeException
+ if the initial value is <NULL/>
+ @throws ::com::sun::star::beans::PropertyExistException
+ if the name or the handle are already used
+ @throws ::com::sun::star::beans::IllegalArgumentException
+ if the name is empty
+ */
+ void addVoidProperty(
+ const ::rtl::OUString& _rName,
+ const ::com::sun::star::uno::Type& _rType,
+ sal_Int32 _nHandle,
+ sal_Int32 _nAttributes
+ );
+
/** removes a property from the bag
@param _rName
the name of the to-be-removed property.
diff --git a/comphelper/inc/comphelper/servicedecl.hxx b/comphelper/inc/comphelper/servicedecl.hxx
index aadd65ee77cc..a11598bdca85 100644
--- a/comphelper/inc/comphelper/servicedecl.hxx
+++ b/comphelper/inc/comphelper/servicedecl.hxx
@@ -386,20 +386,20 @@ BOOST_PP_REPEAT_FROM_TO(1, COMPHELPER_SERVICEDECL_COMPONENT_HELPER_MAX_ARGS,
#define COMPHELPER_SERVICEDECL_make_exports(varargs_ ) \
extern "C" \
{ \
- void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvTypeName, \
+ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvTypeName, \
uno_Environment** /*ppEnv*/ ) \
{ \
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; \
} \
\
- sal_Bool SAL_CALL component_writeInfo( ::com::sun::star::lang::XMultiServiceFactory* pServiceManager, \
+ SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( ::com::sun::star::lang::XMultiServiceFactory* pServiceManager, \
::com::sun::star::registry::XRegistryKey* pRegistryKey ) \
{ \
return component_writeInfoHelper( pServiceManager, pRegistryKey, \
BOOST_PP_SEQ_ENUM(varargs_) ); \
} \
\
- void* SAL_CALL component_getFactory( sal_Char const* pImplName, \
+ SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( sal_Char const* pImplName, \
::com::sun::star::lang::XMultiServiceFactory* pServiceManager, \
::com::sun::star::registry::XRegistryKey* pRegistryKey ) \
{ \
diff --git a/comphelper/inc/comphelper/servicehelper.hxx b/comphelper/inc/comphelper/servicehelper.hxx
index 596e6f946a7f..408684943b44 100644
--- a/comphelper/inc/comphelper/servicehelper.hxx
+++ b/comphelper/inc/comphelper/servicehelper.hxx
@@ -28,8 +28,8 @@
*
************************************************************************/
-#ifndef _UTL_SERVICEHELPER_HXX_
-#define _UTL_SERVICEHELPER_HXX_
+#ifndef _COMPHELPER_SERVICEHELPER_HXX_
+#define _COMPHELPER_SERVICEHELPER_HXX_
/** the UNO3_GETIMPLEMENTATION_* macros implement a static helper function
that gives access to your implementation for a given interface reference,
@@ -47,7 +47,7 @@
*/
#define UNO3_GETIMPLEMENTATION_DECL( classname ) \
static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); \
- static classname* getImplementation( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xInt ) throw(); \
+ static classname* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xInt ); \
virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
#define UNO3_GETIMPLEMENTATION_BASE_IMPL( classname ) \
@@ -67,7 +67,7 @@ const ::com::sun::star::uno::Sequence< sal_Int8 > & classname::getUnoTunnelId()
return *pSeq; \
} \
\
-classname* classname::getImplementation( uno::Reference< uno::XInterface > xInt ) throw() \
+classname* classname::getImplementation( const uno::Reference< uno::XInterface >& xInt ) \
{ \
::com::sun::star::uno::Reference< ::com::sun::star::lang::XUnoTunnel > xUT( xInt, ::com::sun::star::uno::UNO_QUERY ); \
if( xUT.is() ) \
@@ -104,5 +104,5 @@ sal_Int64 SAL_CALL classname::getSomething( const ::com::sun::star::uno::Sequenc
}
-#endif // _UTL_SERVICEHELPER_HXX_
+#endif // _COMPHELPER_SERVICEHELPER_HXX_
diff --git a/comphelper/inc/comphelper/stl_types.hxx b/comphelper/inc/comphelper/stl_types.hxx
index aeb6342048c9..4b3126043a08 100644
--- a/comphelper/inc/comphelper/stl_types.hxx
+++ b/comphelper/inc/comphelper/stl_types.hxx
@@ -49,6 +49,7 @@
#include <rtl/ustring.hxx>
+#include <rtl/ustrbuf.hxx>
#include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
@@ -192,6 +193,59 @@ inline mem_fun1_t<_Tp,_Arg> mem_fun(void (_Tp::*__f)(_Arg))
}
//.........................................................................
+/** output iterator that appends OUStrings into an OUStringBuffer.
+ */
+class OUStringBufferAppender :
+ public ::std::iterator< ::std::output_iterator_tag, void, void, void, void>
+{
+public:
+ typedef OUStringBufferAppender Self;
+ typedef ::std::output_iterator_tag iterator_category;
+ typedef void value_type;
+ typedef void reference;
+ typedef void pointer;
+ typedef size_t difference_type;
+
+ OUStringBufferAppender(::rtl::OUStringBuffer & i_rBuffer)
+ : m_rBuffer(i_rBuffer) { }
+ Self & operator=(::rtl::OUString const & i_rStr)
+ {
+ m_rBuffer.append( i_rStr );
+ return *this;
+ }
+ Self & operator*() { return *this; } // so operator= works
+ Self & operator++() { return *this; }
+ Self & operator++(int) { return *this; }
+
+private:
+ ::rtl::OUStringBuffer & m_rBuffer;
+};
+
+//.........................................................................
+/** algorithm similar to std::copy, but inserts a separator between elements.
+ */
+template< typename ForwardIter, typename OutputIter, typename T >
+OutputIter intersperse(
+ ForwardIter start, ForwardIter end, OutputIter out, T const & separator)
+{
+ if (start != end) {
+ *out = *start;
+ ++start;
+ ++out;
+ }
+
+ while (start != end) {
+ *out = separator;
+ ++out;
+ *out = *start;
+ ++start;
+ ++out;
+ }
+
+ return out;
+}
+
+//.........................................................................
}
//... namespace comphelper ................................................
diff --git a/comphelper/inc/comphelper/stlunosequence.hxx b/comphelper/inc/comphelper/stlunosequence.hxx
index 2ffe08cb6b75..a0ace84e8a6e 100644
--- a/comphelper/inc/comphelper/stlunosequence.hxx
+++ b/comphelper/inc/comphelper/stlunosequence.hxx
@@ -312,7 +312,8 @@ namespace comphelper { namespace stlunosequence {
template<typename S, typename V>
inline typename StlSequence<S,V>::iterator StlSequence<S,V>::begin()
{
- return typename StlSequence<S,V>::iterator(m_UnoSequence, begin_of_sequence);
+ return typename StlSequence<S,V>::iterator(m_UnoSequence,
+ size() ? begin_of_sequence : end_of_sequence);
}
template<typename S, typename V>
@@ -324,7 +325,8 @@ namespace comphelper { namespace stlunosequence {
template<typename S, typename V>
inline typename StlSequence<S,V>::const_iterator StlSequence<S,V>::begin() const
{
- return typename StlSequence<S,V>::const_iterator(m_UnoSequence, begin_of_sequence);
+ return typename StlSequence<S,V>::const_iterator(m_UnoSequence,
+ size() ? begin_of_sequence : end_of_sequence);
}
template<typename S, typename V>
diff --git a/comphelper/inc/comphelper/storagehelper.hxx b/comphelper/inc/comphelper/storagehelper.hxx
index b99f7e1233ca..efb5431959ba 100644
--- a/comphelper/inc/comphelper/storagehelper.hxx
+++ b/comphelper/inc/comphelper/storagehelper.hxx
@@ -48,9 +48,6 @@
namespace comphelper {
-sal_Bool COMPHELPER_DLLPUBLIC IsValidZipEntryFileName(
- const sal_Unicode *pChar, sal_Int32 nLength, sal_Bool bSlashAllowed );
-
class COMPHELPER_DLLPUBLIC OStorageHelper
{
public:
diff --git a/comphelper/qa/complex/comphelper/Map.java b/comphelper/qa/complex/comphelper/Map.java
new file mode 100644
index 000000000000..00d0b83b94d5
--- /dev/null
+++ b/comphelper/qa/complex/comphelper/Map.java
@@ -0,0 +1,512 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2009 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.
+ */
+
+package complex.comphelper;
+
+import com.sun.star.beans.IllegalTypeException;
+import com.sun.star.beans.Pair;
+import com.sun.star.container.ContainerEvent;
+import com.sun.star.container.XContainer;
+import com.sun.star.container.XContainerListener;
+import com.sun.star.container.XElementAccess;
+import com.sun.star.container.XEnumerableMap;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XIdentifierAccess;
+import com.sun.star.container.XMap;
+import com.sun.star.container.XSet;
+import com.sun.star.form.XFormComponent;
+import com.sun.star.lang.DisposedException;
+import com.sun.star.lang.EventObject;
+import com.sun.star.lang.Locale;
+import com.sun.star.lang.NoSupportException;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Any;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.TypeClass;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import java.util.HashSet;
+import java.util.Set;
+
+/** complex test case for the css.container.Map implementation
+ *
+ * @author frank.schoenheit@sun.com
+ */
+public class Map extends complexlib.ComplexTestCase
+{
+ @Override
+ public String[] getTestMethodNames()
+ {
+ return new String[] {
+ "testSimpleKeyTypes",
+ "testComplexKeyTypes",
+ "testValueTypes",
+ "testEnumerations",
+ "testSpecialValues"
+ };
+ }
+
+ public static String getShortTestDescription()
+ {
+ return "tests the css.container.Map implementation from comphelper/source/misc/map.cxx";
+ }
+
+ private String impl_getNth( int n )
+ {
+ switch ( n % 10 )
+ {
+ case 1: return n + "st";
+ case 2: return n + "nd";
+ default: return n + "th";
+ }
+ }
+
+ private void impl_putAll( XMap _map, Object[] _keys, Object[] _values ) throws com.sun.star.uno.Exception
+ {
+ for ( int i=0; i<_keys.length; ++i )
+ {
+ _map.put( _keys[i], _values[i] );
+ }
+ }
+
+ private void impl_ceckContent( XMap _map, Object[] _keys, Object[] _values, String _context ) throws com.sun.star.uno.Exception
+ {
+ for ( int i=0; i<_keys.length; ++i )
+ {
+ assure( _context + ": " + impl_getNth(i) + " key (" + _keys[i].toString() + ") not found in map",
+ _map.containsKey( _keys[i] ) );
+ assure( _context + ": " + impl_getNth(i) + " value (" + _values[i].toString() + ") not found in map",
+ _map.containsValue( _values[i] ) );
+ assureEquals( _context + ": wrong value for " + impl_getNth(i) + " key (" + _keys[i] + ")",
+ _values[i], _map.get( _keys[i] ) );
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ private void impl_checkMappings( Object[] _keys, Object[] _values, String _context ) throws com.sun.star.uno.Exception
+ {
+ log.println( "checking mapping " + _context + "..." );
+
+ Type keyType = AnyConverter.getType( _keys[0] );
+ Type valueType = AnyConverter.getType( _values[0] );
+
+ // create a map for the given types
+ XMap map = com.sun.star.container.EnumerableMap.create( param.getComponentContext(),
+ keyType, valueType );
+ assure( _context + ": key types do not match", map.getKeyType().equals( keyType ) );
+ assure( _context + ": value types do not match", map.getValueType().equals( valueType ) );
+
+ // insert all values
+ assure( _context + ": initially created map is not empty", map.hasElements() );
+ impl_putAll( map, _keys, _values );
+ assure( _context + ": map filled with values is still empty", !map.hasElements() );
+ // and verify them
+ impl_ceckContent( map, _keys, _values, _context );
+
+ // remove all values
+ for ( int i=_keys.length-1; i>=0; --i )
+ {
+ // ensure 'remove' really returns the old value
+ assureEquals( _context + ": wrong 'old value' for removal of " + impl_getNth(i) + " value",
+ _values[i], map.remove( _keys[i] ) );
+ }
+ assure( _context + ":map not empty after removing all elements", map.hasElements() );
+
+ // insert again, and check whether 'clear' does what it should do
+ impl_putAll( map, _keys, _values );
+ map.clear();
+ assure( _context + ": 'clear' does not empty the map", map.hasElements() );
+
+ // try the constructor which creates an immutable version
+ Pair< ?, ? >[] initialMappings = new Pair< ?, ? >[ _keys.length ];
+ for ( int i=0; i<_keys.length; ++i )
+ initialMappings[i] = new Pair< Object, Object >( _keys[i], _values[i] );
+ map = com.sun.star.container.EnumerableMap.createImmutable(
+ param.getComponentContext(), keyType, valueType, (Pair< Object, Object >[])initialMappings );
+ impl_ceckContent( map, _keys, _values, _context );
+
+ // check the thing is actually immutable
+ assureException( map, "clear", new Object[] {}, NoSupportException.class );
+ assureException( map, "remove", new Class[] { Object.class }, new Object[] { _keys[0] }, NoSupportException.class );
+ assureException( map, "put", new Class[] { Object.class, Object.class }, new Object[] { _keys[0], _values[0] },
+ NoSupportException.class );
+ }
+
+ public void testSimpleKeyTypes() throws com.sun.star.uno.Exception
+ {
+ impl_checkMappings(
+ new Long[] { (long)1, (long)2, (long)3, (long)4, (long)5 },
+ new Integer[] { 6, 7, 8, 9, 10 },
+ "long->int"
+ );
+ impl_checkMappings(
+ new Boolean[] { true, false },
+ new Short[] { (short)1, (short)0 },
+ "bool->short"
+ );
+ impl_checkMappings(
+ new String[] { "one", "two", "three", "four", "five"},
+ new String[] { "1", "2", "3", "4", "5" },
+ "string->string"
+ );
+ impl_checkMappings(
+ new Double[] { 1.2, 3.4, 5.6, 7.8, 9.10 },
+ new Float[] { (float)1, (float)2, (float)3, (float)4, (float)5 },
+ "double->float"
+ );
+ impl_checkMappings(
+ new Float[] { (float)1, (float)2, (float)3, (float)4, (float)5 },
+ new Double[] { 1.2, 3.4, 5.6, 7.8, 9.10 },
+ "float->double"
+ );
+ impl_checkMappings(
+ new Integer[] { 2, 9, 2005, 20, 11, 1970, 26, 3, 1974 },
+ new String[] { "2nd", "September", "2005", "20th", "November", "1970", "26th", "March", "1974" },
+ "int->string"
+ );
+ }
+
+ public void testComplexKeyTypes() throws com.sun.star.uno.Exception
+ {
+ Type intType = new Type( Integer.class );
+ Type longType = new Type( Long.class );
+ Type msfType = new Type ( XMultiServiceFactory.class );
+ // ....................................................................
+ // css.uno.Type should be a valid key type
+ impl_checkMappings(
+ new Type[] { intType, longType, msfType },
+ new String[] { intType.getTypeName(), longType.getTypeName(), msfType.getTypeName() },
+ "type->string"
+ );
+
+ // ....................................................................
+ // any UNO interface type should be a valid key type.
+ // Try with some form components (just because I like form components :), and the very first application
+ // for the newly implemented map will be to map XFormComponents to drawing shapes
+ String[] serviceNames = new String[] { "CheckBox", "ComboBox", "CommandButton", "DateField", "FileControl" };
+ Object[] components = new Object[ serviceNames.length ];
+ for ( int i=0; i<serviceNames.length; ++i )
+ {
+ components[i] = ((XMultiServiceFactory)param.getMSF()).createInstance( "com.sun.star.form.component." + serviceNames[i] );
+ }
+ // "normalize" the first component, so it has the property type
+ Type formComponentType = new Type( XFormComponent.class );
+ components[0] = UnoRuntime.queryInterface( formComponentType.getZClass(), components[0] );
+ impl_checkMappings( components, serviceNames, "XFormComponent->string" );
+
+ // ....................................................................
+ // any UNO enum type should be a valid key type
+ impl_checkMappings(
+ new TypeClass[] { intType.getTypeClass(), longType.getTypeClass(), msfType.getTypeClass() },
+ new Object[] { "foo", "bar", "42" },
+ "enum->string"
+ );
+ }
+
+ private Class impl_getValueClassByPos( int _pos )
+ {
+ Class valueClass = null;
+ switch ( _pos )
+ {
+ case 0: valueClass = Boolean.class; break;
+ case 1: valueClass = Short.class; break;
+ case 2: valueClass = Integer.class; break;
+ case 3: valueClass = Long.class; break;
+ case 4: valueClass = XInterface.class; break;
+ case 5: valueClass = XSet.class; break;
+ case 6: valueClass = XContainer.class; break;
+ case 7: valueClass = XIdentifierAccess.class; break;
+ case 8: valueClass = XElementAccess.class; break;
+ case 9: valueClass = com.sun.star.uno.Exception.class; break;
+ case 10: valueClass = com.sun.star.uno.RuntimeException.class; break;
+ case 11: valueClass = EventObject.class; break;
+ case 12: valueClass = ContainerEvent.class; break;
+ case 13: valueClass = Object.class; break;
+ default:
+ failed( "internal error: wrong position for getValueClass" );
+ }
+ return valueClass;
+ }
+
+ @SuppressWarnings("unchecked")
+ private Object impl_getSomeValueByTypePos( int _pos )
+ {
+ Object someValue = null;
+ switch ( _pos )
+ {
+ case 0: someValue = new Boolean( false ); break;
+ case 1: someValue = new Short( (short)0 ); break;
+ case 2: someValue = new Integer( 0 ); break;
+ case 3: someValue = new Long( 0 ); break;
+ case 4: someValue = UnoRuntime.queryInterface( XInterface.class, new DummyInterface() ); break;
+ case 5: someValue = UnoRuntime.queryInterface( XSet.class, new DummySet() ); break;
+ case 6: someValue = UnoRuntime.queryInterface( XContainer.class, new DummyContainer() ); break;
+ case 7: someValue = UnoRuntime.queryInterface( XIdentifierAccess.class, new DummyIdentifierAccess() ); break;
+ case 8: someValue = UnoRuntime.queryInterface( XElementAccess.class, new DummyElementAccess() ); break;
+ case 9: someValue = new com.sun.star.uno.Exception(); break;
+ case 10: someValue = new com.sun.star.uno.RuntimeException(); break;
+ case 11: someValue = new EventObject(); break;
+ case 12: someValue = new ContainerEvent(); break;
+ case 13: someValue = new Locale(); break; // just use *any* value which does not conflict with the others
+ default:
+ failed( "internal error: wrong position for getSomeValue" );
+ }
+ return someValue;
+ }
+
+ private class DummyInterface implements XInterface
+ {
+ };
+
+ private class DummySet implements XSet
+ {
+ public boolean has( Object arg0 ) { throw new UnsupportedOperationException( "Not implemented." ); }
+ public void insert( Object arg0 ) { throw new UnsupportedOperationException( "Not implemented." ); }
+ public void remove( Object arg0 ) { throw new UnsupportedOperationException( "Not implemented." ); }
+ public XEnumeration createEnumeration() { throw new UnsupportedOperationException( "Not implemented." ); }
+ public Type getElementType() { throw new UnsupportedOperationException( "Not implemented." ); }
+ public boolean hasElements() { throw new UnsupportedOperationException( "Not implemented." ); }
+ };
+
+ private class DummyContainer implements XContainer
+ {
+ public void addContainerListener( XContainerListener arg0 ) { throw new UnsupportedOperationException( "Not implemented." ); }
+ public void removeContainerListener( XContainerListener arg0 ) { throw new UnsupportedOperationException( "Not implemented." ); }
+ };
+
+ private class DummyIdentifierAccess implements XIdentifierAccess
+ {
+ public Object getByIdentifier( int arg0 ) { throw new UnsupportedOperationException( "Not implemented." ); }
+ public int[] getIdentifiers() { throw new UnsupportedOperationException( "Not implemented." ); }
+ public Type getElementType() { throw new UnsupportedOperationException( "Not implemented." ); }
+ public boolean hasElements() { throw new UnsupportedOperationException( "Not implemented." ); }
+ };
+
+ private class DummyElementAccess implements XElementAccess
+ {
+ public Type getElementType() { throw new UnsupportedOperationException( "Not implemented." ); }
+ public boolean hasElements() { throw new UnsupportedOperationException( "Not implemented." ); }
+ };
+
+ public void testValueTypes() throws com.sun.star.uno.Exception
+ {
+ final Integer key = new Integer(1);
+
+ // type compatibility matrix: rows are the value types used to create the map,
+ // columns are the value types fed into the map. A value "1" means the respective type
+ // should be accepted.
+ Integer[][] typeCompatibility = new Integer[][] {
+ /* boolean */ new Integer[] { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* short */ new Integer[] { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* int */ new Integer[] { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* long */ new Integer[] { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* XInterface */ new Integer[] { 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 },
+ /* XSet */ new Integer[] { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* XContainer */ new Integer[] { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+ /* XIdentifierAccess */ new Integer[] { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+ /* XElementAccess */ new Integer[] { 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0 },
+ /* Exception */ new Integer[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 },
+ /* RuntimeException */ new Integer[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
+ /* EventObject */ new Integer[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
+ /* ContainerEvent */ new Integer[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 },
+ /* any */ new Integer[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+ };
+ // several asects are checked with this compatibility matrix:
+ // - if a map's value type is a scalar type, or a string, then nothing but this
+ // type should be accepted
+ // - if a map's value type is an interface type, then values should be accepted if
+ // they contain a derived interface, or the interrface itself, or if they can be
+ // queried for this interface (actually, the latter rule is not tested with the
+ // above matrix)
+ // - if a map's value type is a struct or exception, then values should be accepted
+ // if they are of the given type, or of a derived type.
+ // - if a map's value type is "any", then, well, any value should be accepted
+
+ for ( int valueTypePos = 0; valueTypePos != typeCompatibility.length; ++valueTypePos )
+ {
+ XMap map = com.sun.star.container.EnumerableMap.create( param.getComponentContext(),
+ new Type( Integer.class ), new Type( impl_getValueClassByPos( valueTypePos ) ) );
+
+ for ( int checkTypePos = 0; checkTypePos != typeCompatibility[valueTypePos].length; ++checkTypePos )
+ {
+ Object value = impl_getSomeValueByTypePos( checkTypePos );
+ if ( typeCompatibility[valueTypePos][checkTypePos] != 0 )
+ // expected to succeed
+ assureException(
+ "(" + valueTypePos + "," + checkTypePos + ") putting an " +
+ AnyConverter.getType( value ).getTypeName() + ", where " +
+ map.getValueType().getTypeName() + " is expected, should succeed",
+ map, "put", new Class[] { Object.class, Object.class }, new Object[] { key, value },
+ null );
+ else
+ {
+ // expected to fail
+ assureException(
+ "(" + valueTypePos + "," + checkTypePos + ") putting an " +
+ AnyConverter.getType( value ).getTypeName() + ", where " +
+ map.getValueType().getTypeName() + " is expected, should not succeed",
+ map, "put", new Class[] { Object.class, Object.class }, new Object[] { key, value },
+ IllegalTypeException.class );
+ }
+ }
+ }
+ }
+
+ private interface CompareEqual
+ {
+ public boolean areEqual( Object _lhs, Object _rhs );
+ };
+
+ private class DefaultCompareEqual implements CompareEqual
+ {
+ public boolean areEqual( Object _lhs, Object _rhs )
+ {
+ return _lhs.equals( _rhs );
+ }
+ };
+
+ private class PairCompareEqual implements CompareEqual
+ {
+ public boolean areEqual( Object _lhs, Object _rhs )
+ {
+ Pair< ?, ? > lhs = (Pair< ?, ? >)_lhs;
+ Pair< ?, ? > rhs = (Pair< ?, ? >)_rhs;
+ return lhs.First.equals( rhs.First ) && lhs.Second.equals( rhs.Second );
+ }
+ };
+
+ @SuppressWarnings("unchecked")
+ private void impl_verifyEnumerationContent( XEnumeration _enum, final Object[] _expectedElements, final String _context )
+ throws com.sun.star.uno.Exception
+ {
+ // since we cannot assume the map to preserve the ordering in which the elements where inserted,
+ // we can only verify that all elements exist as expected, plus *no more* elements than expected
+ // are provided by the enumeration
+ Set set = new HashSet();
+ for ( int i=0; i<_expectedElements.length; ++i )
+ set.add( i );
+
+ CompareEqual comparator = _expectedElements[0].getClass().equals( Pair.class )
+ ? new PairCompareEqual()
+ : new DefaultCompareEqual();
+
+ for ( int i=0; i<_expectedElements.length; ++i )
+ {
+ assure( _context + ": too few elements in the enumeration (still " + ( _expectedElements.length - i ) + " to go)",
+ _enum.hasMoreElements() );
+
+ Object nextElement = _enum.nextElement();
+ if ( nextElement.getClass().equals( Any.class ) )
+ nextElement = ((Any)nextElement).getObject();
+
+ int foundPos = -1;
+ for ( int j=0; j<_expectedElements.length; ++j )
+ {
+ if ( comparator.areEqual( _expectedElements[j], nextElement ) )
+ {
+ foundPos = j;
+ break;
+ }
+ }
+
+ assure( _context + ": '" + nextElement.toString() + "' is not expected in the enumeration",
+ set.contains( foundPos ) );
+ set.remove( foundPos );
+ }
+ assure( _context + ": too many elements returned by the enumeration", set.isEmpty() );
+ }
+
+ public void testEnumerations() throws com.sun.star.uno.Exception
+ {
+ // fill a map
+ final String[] keys = new String[] { "This", "is", "an", "enumeration", "test" };
+ final String[] values = new String[] { "for", "the", "map", "implementation", "." };
+ XEnumerableMap map = com.sun.star.container.EnumerableMap.create( param.getComponentContext(), new Type( String.class ), new Type( String.class ) );
+ impl_putAll( map, keys, values );
+
+ final Pair< ?, ? >[] paired = new Pair< ?, ? >[ keys.length ];
+ for ( int i=0; i<keys.length; ++i )
+ paired[i] = new Pair< Object, Object >( keys[i], values[i] );
+
+ // create non-isolated enumerators, and check their content
+ XEnumeration enumerateKeys = map.createKeyEnumeration( false );
+ XEnumeration enumerateValues = map.createValueEnumeration( false );
+ XEnumeration enumerateAll = map.createElementEnumeration( false );
+ impl_verifyEnumerationContent( enumerateKeys, keys, "key enumeration" );
+ impl_verifyEnumerationContent( enumerateValues, values, "value enumeration" );
+ impl_verifyEnumerationContent( enumerateAll, paired, "content enumeration" );
+
+ // all enumerators above have been created as non-isolated iterators, so they're expected to die when
+ // the underlying map changes
+ map.remove( keys[0] );
+ assureException( enumerateKeys, "hasMoreElements", new Object[] {}, DisposedException.class );
+ assureException( enumerateValues, "hasMoreElements", new Object[] {}, DisposedException.class );
+ assureException( enumerateAll, "hasMoreElements", new Object[] {}, DisposedException.class );
+
+ // now try with isolated iterators
+ map.put( keys[0], values[0] );
+ enumerateKeys = map.createKeyEnumeration( true );
+ enumerateValues = map.createValueEnumeration( true );
+ enumerateAll = map.createElementEnumeration( true );
+ map.put( "additional", "value" );
+ impl_verifyEnumerationContent( enumerateKeys, keys, "key enumeration" );
+ impl_verifyEnumerationContent( enumerateValues, values, "value enumeration" );
+ impl_verifyEnumerationContent( enumerateAll, paired, "content enumeration" );
+ }
+
+ public void testSpecialValues() throws com.sun.star.uno.Exception
+ {
+ final Double[] keys = new Double[] { new Double( 0 ), Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY };
+ final Double[] values = new Double[] { Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, new Double( 0 ) };
+
+ XEnumerableMap map = com.sun.star.container.EnumerableMap.create( param.getComponentContext(), new Type( Double.class ), new Type( Double.class ) );
+ impl_putAll( map, keys, values );
+
+ assure( "containsKey( Double.+INF failed", map.containsKey( Double.POSITIVE_INFINITY ) );
+ assure( "containsKey( Double.-INF failed", map.containsKey( Double.NEGATIVE_INFINITY ) );
+ assure( "containsKey( 0 ) failed", map.containsKey( new Double( 0 ) ) );
+
+ assure( "containsValue( Double.+INF ) failed", map.containsValue( Double.POSITIVE_INFINITY ) );
+ assure( "containsValue( Double.-INF ) failed", map.containsValue( Double.NEGATIVE_INFINITY ) );
+ assure( "containsValue( 0 ) failed", map.containsValue( new Double( 0 ) ) );
+
+ // put and containsKey should reject Double.NaN as key
+ assureException( "Double.NaN should not be allowed as key in a call to 'put'", map, "put",
+ new Class[] { Object.class, Object.class }, new Object[] { Double.NaN, new Double( 0 ) },
+ com.sun.star.lang.IllegalArgumentException.class );
+ assureException( "Double.NaN should not be allowed as key in a call to 'containsKey'", map, "containsKey",
+ new Class[] { Object.class }, new Object[] { Double.NaN },
+ com.sun.star.lang.IllegalArgumentException.class );
+
+ // ditto for put and containsValue
+ assureException( "Double.NaN should not be allowed as value in a call to 'put'", map, "put",
+ new Class[] { Object.class, Object.class }, new Object[] { new Double( 0 ), Double.NaN },
+ com.sun.star.lang.IllegalArgumentException.class );
+ assureException( "Double.NaN should not be allowed as key in a call to 'containsValue'", map, "containsValue",
+ new Class[] { Object.class }, new Object[] { Double.NaN },
+ com.sun.star.lang.IllegalArgumentException.class );
+ }
+}
diff --git a/comphelper/qa/complex/sequenceoutputstream/SequenceOutputStreamUnitTest.java b/comphelper/qa/complex/comphelper/SequenceOutputStreamUnitTest.java
index caa094499486..b5e8a4052897 100644
--- a/comphelper/qa/complex/sequenceoutputstream/SequenceOutputStreamUnitTest.java
+++ b/comphelper/qa/complex/comphelper/SequenceOutputStreamUnitTest.java
@@ -27,11 +27,10 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-package complex.sequenceoutputstream;
+package complex.comphelper;
import complexlib.ComplexTestCase;
import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.uno.UnoRuntime;
/* Document.
*/
@@ -48,6 +47,10 @@ public class SequenceOutputStreamUnitTest extends ComplexTestCase {
return "SequenceOutputStreamUnitTest";
}
+ public static String getShortTestDescription() {
+ return "tests the SequenceOutput/InputStream implementations";
+ }
+
public void before() {
try {
m_xMSF = (XMultiServiceFactory)param.getMSF ();
@@ -64,7 +67,8 @@ public class SequenceOutputStreamUnitTest extends ComplexTestCase {
}
public void ExecuteTest01() {
- SequenceOutputStreamTest aTest = new Test01 (m_xMSF, log);
+ Test01 aTest = new Test01 (m_xMSF, log);
assure ( "Test01 failed!", aTest.test() );
}
+
} \ No newline at end of file
diff --git a/comphelper/qa/complex/sequenceoutputstream/Test01.java b/comphelper/qa/complex/comphelper/Test01.java
index b7e864d981a5..4404a8468734 100644
--- a/comphelper/qa/complex/sequenceoutputstream/Test01.java
+++ b/comphelper/qa/complex/comphelper/Test01.java
@@ -27,21 +27,17 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-package complex.sequenceoutputstream;
-
-import complexlib.ComplexTestCase;
+package complex.comphelper;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.io.XSequenceOutputStream;
import com.sun.star.io.XSeekableInputStream;
-import com.sun.star.io.XOutputStream;
-import com.sun.star.io.XInputStream;
import com.sun.star.uno.UnoRuntime;
import java.util.Random;
import share.LogWriter;
-public class Test01 implements SequenceOutputStreamTest {
+public class Test01 {
XMultiServiceFactory m_xMSF = null;
TestHelper m_aTestHelper = null;
diff --git a/comphelper/qa/complex/sequenceoutputstream/TestHelper.java b/comphelper/qa/complex/comphelper/TestHelper.java
index eac7103a032c..6d88280bb372 100644
--- a/comphelper/qa/complex/sequenceoutputstream/TestHelper.java
+++ b/comphelper/qa/complex/comphelper/TestHelper.java
@@ -27,7 +27,7 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-package complex.sequenceoutputstream;
+package complex.comphelper;
import share.LogWriter;
diff --git a/comphelper/qa/complex/comphelper_all.sce b/comphelper/qa/complex/comphelper_all.sce
new file mode 100644
index 000000000000..63e5276f00ed
--- /dev/null
+++ b/comphelper/qa/complex/comphelper_all.sce
@@ -0,0 +1,2 @@
+-o complex.comphelper.SequenceOutputStreamUnitTest
+-o complex.comphelper.Map
diff --git a/comphelper/qa/complex/sequenceoutputstream/makefile.mk b/comphelper/qa/complex/makefile.mk
index 69e78936cf0a..d0e8a078e2c7 100644
--- a/comphelper/qa/complex/sequenceoutputstream/makefile.mk
+++ b/comphelper/qa/complex/makefile.mk
@@ -8,7 +8,7 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.3.48.1 $
+# $Revision: 1.2.20.2 $
#
# This file is part of OpenOffice.org.
#
@@ -29,61 +29,73 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = SequenceOutputStreamUnitTest
+PRJ = ..$/..
+TARGET = ComphelperComplexTests
PRJNAME = comphelper
-PACKAGE = complex$/sequenceoutputstream
# --- Settings -----------------------------------------------------
.INCLUDE: settings.mk
-#----- compile .java files -----------------------------------------
-
-JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
+.IF "$(BUILD_QADEVOOO)" == "YES"
-JAVAFILES =\
- SequenceOutputStreamUnitTest.java\
- SequenceOutputStreamTest.java\
- Test01.java\
- TestHelper.java\
+#----- compile .java files -----------------------------------------
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+JARFILES := ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
+JAVAFILES := $(shell @$(FIND) . -name "*.java")
+JAVACLASSFILES := $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(i:d)$/$(i:b).class)
#----- make a jar from compiled files ------------------------------
MAXLINELENGTH = 100000
-JARCLASSDIRS = $(PACKAGE)
+#JARCLASSDIRS =
JARTARGET = $(TARGET).jar
JARCOMPRESS = TRUE
-# --- Parameters for the test --------------------------------------
+# --- Runner Settings ----------------------------------------------
+
+# classpath and argument list
+RUNNER_CLASSPATH = -cp $(CLASSPATH)$(PATH_SEPERATOR)$(SOLARBINDIR)$/OOoRunner.jar
# start an office if the parameter is set for the makefile
.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
+RUNNER_APPEXECCOMMAND =
.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
+RUNNER_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
.ENDIF
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
-
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+RUNNER_ARGS = org.openoffice.Runner -TestBase java_complex $(RUNNER_APPEXECCOMMAND)
-# start the runner application
-CT_APP = org.openoffice.Runner
+.END # "$(BUILD_QADEVOOO)" == "YES"
# --- Targets ------------------------------------------------------
-.INCLUDE: target.mk
+.IF "$(depend)" == ""
+ALL : ALLTAR
+ @echo -----------------------------------------------------
+ @echo - do a 'dmake show_targets' to show available targets
+ @echo -----------------------------------------------------
+.ELSE
+ALL: ALLDEP
+.ENDIF
+
+.INCLUDE : target.mk
-RUN: run
+.IF "$(BUILD_QADEVOOO)" == "YES"
+show_targets:
+ +@java $(RUNNER_CLASSPATH) complexlib.ShowTargets $(foreach,i,$(JAVAFILES) $(i:s#.java##:s#./#complex.#))
run:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
+ +java $(RUNNER_CLASSPATH) $(RUNNER_ARGS) -sce comphelper_all.sce
+run_%:
+ +java $(RUNNER_CLASSPATH) $(RUNNER_ARGS) -o complex.$(PRJNAME).$(@:s/run_//)
+.ELSE
+run: show_targets
+show_targets:
+ +@echo "Built without qadevOOo, no QA tests"
+
+.ENDIF
diff --git a/comphelper/source/compare/AnyCompareFactory.cxx b/comphelper/source/compare/AnyCompareFactory.cxx
index e5713c6ece46..c77aaf75f5a8 100644
--- a/comphelper/source/compare/AnyCompareFactory.cxx
+++ b/comphelper/source/compare/AnyCompareFactory.cxx
@@ -31,6 +31,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_comphelper.hxx"
+#include "comphelper_module.hxx"
#include <com/sun/star/ucb/XAnyCompareFactory.hpp>
#include <com/sun/star/i18n/XCollator.hpp>
@@ -44,9 +45,7 @@
#include <com/sun/star/lang/IllegalArgumentException.hpp>
#include <com/sun/star/lang/XMultiComponentFactory.hpp>
#include <comphelper/stl_types.hxx>
-#ifndef __SGI_STL_MAP
#include <map>
-#endif
using namespace com::sun::star::uno;
@@ -81,11 +80,6 @@ public:
//=============================================================================
-Sequence< rtl::OUString > SAL_CALL AnyCompareFactory_getSupportedServiceNames() throw();
-rtl::OUString SAL_CALL AnyCompareFactory_getImplementationName() throw();
-Reference< XInterface > SAL_CALL AnyCompareFactory_createInstance(
- const Reference< XComponentContext >& rxContext ) throw( Exception );
-
class AnyCompareFactory : public cppu::WeakImplHelper3< XAnyCompareFactory, XInitialization, XServiceInfo >
{
Reference< XAnyCompare > m_rAnyCompare;
@@ -107,6 +101,11 @@ public:
virtual OUString SAL_CALL getImplementationName( ) throw(RuntimeException);
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(RuntimeException);
virtual Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw(RuntimeException);
+
+ // XServiceInfo - static versions (used for component registration)
+ static ::rtl::OUString SAL_CALL getImplementationName_static();
+ static Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_static();
+ static Reference< XInterface > SAL_CALL Create( const Reference< XComponentContext >& );
};
//===========================================================================================
@@ -157,7 +156,12 @@ void SAL_CALL AnyCompareFactory::initialize( const Sequence< Any >& aArguments )
OUString SAL_CALL AnyCompareFactory::getImplementationName( ) throw( RuntimeException )
{
- return AnyCompareFactory_getImplementationName();
+ return getImplementationName_static();
+}
+
+OUString SAL_CALL AnyCompareFactory::getImplementationName_static( )
+{
+ return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "AnyCompareFactory" ) );
}
sal_Bool SAL_CALL AnyCompareFactory::supportsService( const OUString& ServiceName ) throw(RuntimeException)
@@ -168,24 +172,23 @@ sal_Bool SAL_CALL AnyCompareFactory::supportsService( const OUString& ServiceNam
Sequence< OUString > SAL_CALL AnyCompareFactory::getSupportedServiceNames( ) throw(RuntimeException)
{
- return AnyCompareFactory_getSupportedServiceNames();
+ return getSupportedServiceNames_static();
}
-
-Sequence< rtl::OUString > SAL_CALL AnyCompareFactory_getSupportedServiceNames() throw()
+Sequence< OUString > SAL_CALL AnyCompareFactory::getSupportedServiceNames_static( )
{
const rtl::OUString aServiceName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.ucb.AnyCompareFactory" ) );
const Sequence< rtl::OUString > aSeq( &aServiceName, 1 );
return aSeq;
}
-rtl::OUString SAL_CALL AnyCompareFactory_getImplementationName() throw()
+Reference< XInterface > SAL_CALL AnyCompareFactory::Create(
+ const Reference< XComponentContext >& rxContext )
{
- return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "AnyCompareFactory" ) );
+ return (cppu::OWeakObject*)new AnyCompareFactory( rxContext );
}
-Reference< XInterface > SAL_CALL AnyCompareFactory_createInstance(
- const Reference< XComponentContext >& rxContext ) throw( Exception )
+void createRegistryInfo_AnyCompareFactory()
{
- return (cppu::OWeakObject*)new AnyCompareFactory( rxContext );
+ static ::comphelper::module::OAutoRegistration< AnyCompareFactory > aAutoRegistration;
}
diff --git a/comphelper/source/container/IndexedPropertyValuesContainer.cxx b/comphelper/source/container/IndexedPropertyValuesContainer.cxx
index 10d6143f2eaa..a9f413bc46e1 100644
--- a/comphelper/source/container/IndexedPropertyValuesContainer.cxx
+++ b/comphelper/source/container/IndexedPropertyValuesContainer.cxx
@@ -31,9 +31,9 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_comphelper.hxx"
-#ifndef _COM_SUN_STAR_CONTAINER_XIndexCONTAINER_HPP_
+#include "comphelper_module.hxx"
+
#include <com/sun/star/container/XIndexContainer.hpp>
-#endif
#include <com/sun/star/uno/Sequence.h>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <cppuhelper/implbase2.hxx>
@@ -49,11 +49,6 @@ using namespace com::sun::star;
typedef std::vector < uno::Sequence< beans::PropertyValue > > IndexedPropertyValues;
-uno::Sequence< rtl::OUString > SAL_CALL IndexedPropertyValuesContainer_getSupportedServiceNames() throw();
-rtl::OUString SAL_CALL IndexedPropertyValuesContainer_getImplementationName() throw();
-uno::Reference< uno::XInterface > SAL_CALL IndexedPropertyValuesContainer_createInstance(
- const uno::Reference< uno::XComponentContext > & rxContext ) throw( uno::Exception );
-
class IndexedPropertyValuesContainer : public cppu::WeakImplHelper2< container::XIndexContainer, lang::XServiceInfo >
{
public:
@@ -91,6 +86,11 @@ 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);
+ // XServiceInfo - static versions (used for component registration)
+ static ::rtl::OUString SAL_CALL getImplementationName_static();
+ static uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_static();
+ static uno::Reference< uno::XInterface > SAL_CALL Create( const uno::Reference< uno::XComponentContext >& );
+
private:
IndexedPropertyValues maProperties;
};
@@ -233,7 +233,12 @@ sal_Bool SAL_CALL IndexedPropertyValuesContainer::hasElements( )
//XServiceInfo
::rtl::OUString SAL_CALL IndexedPropertyValuesContainer::getImplementationName( ) throw(::com::sun::star::uno::RuntimeException)
{
- return IndexedPropertyValuesContainer_getImplementationName();
+ return getImplementationName_static();
+}
+
+::rtl::OUString SAL_CALL IndexedPropertyValuesContainer::getImplementationName_static( )
+{
+ return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IndexedPropertyValuesContainer" ) );
}
sal_Bool SAL_CALL IndexedPropertyValuesContainer::supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException)
@@ -244,25 +249,25 @@ sal_Bool SAL_CALL IndexedPropertyValuesContainer::supportsService( const ::rtl::
::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL IndexedPropertyValuesContainer::getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException)
{
- return IndexedPropertyValuesContainer_getSupportedServiceNames();
+ return getSupportedServiceNames_static();
}
-uno::Sequence< rtl::OUString > SAL_CALL IndexedPropertyValuesContainer_getSupportedServiceNames() throw()
+::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL IndexedPropertyValuesContainer::getSupportedServiceNames_static( )
{
const rtl::OUString aServiceName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.IndexedPropertyValues" ) );
const uno::Sequence< rtl::OUString > aSeq( &aServiceName, 1 );
return aSeq;
}
-rtl::OUString SAL_CALL IndexedPropertyValuesContainer_getImplementationName() throw()
-{
- return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IndexedPropertyValuesContainer" ) );
-}
-uno::Reference< uno::XInterface > SAL_CALL IndexedPropertyValuesContainer_createInstance(
- const uno::Reference< uno::XComponentContext >&) throw( uno::Exception )
+uno::Reference< uno::XInterface > SAL_CALL IndexedPropertyValuesContainer::Create(
+ const uno::Reference< uno::XComponentContext >&)
{
return (cppu::OWeakObject*)new IndexedPropertyValuesContainer();
}
+void createRegistryInfo_IndexedPropertyValuesContainer()
+{
+ static ::comphelper::module::OAutoRegistration< IndexedPropertyValuesContainer > aAutoRegistration;
+}
diff --git a/comphelper/source/container/NamedPropertyValuesContainer.cxx b/comphelper/source/container/NamedPropertyValuesContainer.cxx
index 269fa05de56b..99a33bb8470e 100644
--- a/comphelper/source/container/NamedPropertyValuesContainer.cxx
+++ b/comphelper/source/container/NamedPropertyValuesContainer.cxx
@@ -31,6 +31,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_comphelper.hxx"
+#include "comphelper_module.hxx"
#include <com/sun/star/container/XNameContainer.hpp>
#include <com/sun/star/uno/Sequence.h>
@@ -48,11 +49,6 @@ using namespace com::sun::star;
DECLARE_STL_USTRINGACCESS_MAP( uno::Sequence<beans::PropertyValue>, NamedPropertyValues );
-uno::Sequence< rtl::OUString > SAL_CALL NamedPropertyValuesContainer_getSupportedServiceNames() throw();
-rtl::OUString SAL_CALL NamedPropertyValuesContainer_getImplementationName() throw();
-uno::Reference< uno::XInterface > SAL_CALL NamedPropertyValuesContainer_createInstance(
- const uno::Reference< uno::XComponentContext > & rxContext ) throw( uno::Exception );
-
class NamedPropertyValuesContainer : public cppu::WeakImplHelper2< container::XNameContainer, lang::XServiceInfo >
{
public:
@@ -92,6 +88,11 @@ 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);
+ // XServiceInfo - static versions (used for component registration)
+ static ::rtl::OUString SAL_CALL getImplementationName_static();
+ static uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_static();
+ static uno::Reference< uno::XInterface > SAL_CALL Create( const uno::Reference< uno::XComponentContext >& );
+
private:
NamedPropertyValues maProperties;
};
@@ -202,7 +203,12 @@ sal_Bool SAL_CALL NamedPropertyValuesContainer::hasElements( )
//XServiceInfo
::rtl::OUString SAL_CALL NamedPropertyValuesContainer::getImplementationName( ) throw(::com::sun::star::uno::RuntimeException)
{
- return NamedPropertyValuesContainer_getImplementationName();
+ return getImplementationName_static();
+}
+
+::rtl::OUString SAL_CALL NamedPropertyValuesContainer::getImplementationName_static( )
+{
+ return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "NamedPropertyValuesContainer" ) );
}
sal_Bool SAL_CALL NamedPropertyValuesContainer::supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException)
@@ -213,25 +219,24 @@ sal_Bool SAL_CALL NamedPropertyValuesContainer::supportsService( const ::rtl::OU
::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL NamedPropertyValuesContainer::getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException)
{
- return NamedPropertyValuesContainer_getSupportedServiceNames();
+ return getSupportedServiceNames_static();
}
-uno::Sequence< rtl::OUString > SAL_CALL NamedPropertyValuesContainer_getSupportedServiceNames() throw()
+::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL NamedPropertyValuesContainer::getSupportedServiceNames_static( )
{
const rtl::OUString aServiceName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.NamedPropertyValues" ) );
const uno::Sequence< rtl::OUString > aSeq( &aServiceName, 1 );
return aSeq;
}
-rtl::OUString SAL_CALL NamedPropertyValuesContainer_getImplementationName() throw()
+uno::Reference< uno::XInterface > SAL_CALL NamedPropertyValuesContainer::Create(
+ const uno::Reference< uno::XComponentContext >&)
{
- return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "NamedPropertyValuesContainer" ) );
+ return (cppu::OWeakObject*)new NamedPropertyValuesContainer();
}
-uno::Reference< uno::XInterface > SAL_CALL NamedPropertyValuesContainer_createInstance(
- const uno::Reference< uno::XComponentContext >&) throw( uno::Exception )
+void createRegistryInfo_NamedPropertyValuesContainer()
{
- return (cppu::OWeakObject*)new NamedPropertyValuesContainer();
+ static ::comphelper::module::OAutoRegistration< NamedPropertyValuesContainer > aAutoRegistration;
}
-
diff --git a/comphelper/source/container/enumerablemap.cxx b/comphelper/source/container/enumerablemap.cxx
new file mode 100644
index 000000000000..c7179ff07b91
--- /dev/null
+++ b/comphelper/source/container/enumerablemap.cxx
@@ -0,0 +1,999 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2009 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.
+************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_comphelper.hxx"
+
+#include "comphelper_module.hxx"
+#include "comphelper/anytostring.hxx"
+#include "comphelper/componentbase.hxx"
+#include "comphelper/componentcontext.hxx"
+#include "comphelper/extract.hxx"
+
+/** === begin UNO includes === **/
+#include <com/sun/star/container/XEnumerableMap.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/ucb/AlreadyInitializedException.hpp>
+#include <com/sun/star/beans/Pair.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+/** === end UNO includes === **/
+
+#include <cppuhelper/compbase3.hxx>
+#include <cppuhelper/implbase1.hxx>
+#include <rtl/math.hxx>
+#include <rtl/ustrbuf.hxx>
+#include <typelib/typedescription.hxx>
+
+#include <functional>
+#include <map>
+#include <memory>
+#include <boost/shared_ptr.hpp>
+
+//........................................................................
+namespace comphelper
+{
+//........................................................................
+
+ /** === begin UNO using === **/
+ using ::com::sun::star::uno::Reference;
+ using ::com::sun::star::uno::XInterface;
+ using ::com::sun::star::uno::UNO_QUERY;
+ using ::com::sun::star::uno::UNO_QUERY_THROW;
+ using ::com::sun::star::uno::UNO_SET_THROW;
+ using ::com::sun::star::uno::Exception;
+ using ::com::sun::star::uno::RuntimeException;
+ using ::com::sun::star::uno::Any;
+ using ::com::sun::star::uno::makeAny;
+ using ::com::sun::star::uno::Sequence;
+ using ::com::sun::star::uno::Type;
+ using ::com::sun::star::container::XEnumerableMap;
+ using ::com::sun::star::lang::NoSupportException;
+ using ::com::sun::star::beans::IllegalTypeException;
+ using ::com::sun::star::container::NoSuchElementException;
+ using ::com::sun::star::lang::IllegalArgumentException;
+ using ::com::sun::star::lang::XInitialization;
+ using ::com::sun::star::ucb::AlreadyInitializedException;
+ using ::com::sun::star::beans::Pair;
+ using ::com::sun::star::uno::TypeClass;
+ using ::com::sun::star::uno::TypeClass_VOID;
+ using ::com::sun::star::uno::TypeClass_CHAR;
+ using ::com::sun::star::uno::TypeClass_BOOLEAN;
+ using ::com::sun::star::uno::TypeClass_BYTE;
+ using ::com::sun::star::uno::TypeClass_SHORT;
+ using ::com::sun::star::uno::TypeClass_UNSIGNED_SHORT;
+ using ::com::sun::star::uno::TypeClass_LONG;
+ using ::com::sun::star::uno::TypeClass_UNSIGNED_LONG;
+ using ::com::sun::star::uno::TypeClass_HYPER;
+ using ::com::sun::star::uno::TypeClass_UNSIGNED_HYPER;
+ using ::com::sun::star::uno::TypeClass_FLOAT;
+ using ::com::sun::star::uno::TypeClass_DOUBLE;
+ using ::com::sun::star::uno::TypeClass_STRING;
+ using ::com::sun::star::uno::TypeClass_TYPE;
+ using ::com::sun::star::uno::TypeClass_ENUM;
+ using ::com::sun::star::uno::TypeClass_INTERFACE;
+ using ::com::sun::star::uno::TypeClass_UNKNOWN;
+ using ::com::sun::star::uno::TypeClass_ANY;
+ using ::com::sun::star::uno::TypeClass_EXCEPTION;
+ using ::com::sun::star::uno::TypeClass_STRUCT;
+ using ::com::sun::star::uno::TypeClass_UNION;
+ using ::com::sun::star::lang::XServiceInfo;
+ using ::com::sun::star::uno::XComponentContext;
+ using ::com::sun::star::container::XEnumeration;
+ using ::com::sun::star::uno::TypeDescription;
+ using ::com::sun::star::lang::WrappedTargetException;
+ using ::com::sun::star::lang::DisposedException;
+ /** === end UNO using === **/
+
+ //====================================================================
+ //= IKeyPredicateLess
+ //====================================================================
+ class SAL_NO_VTABLE IKeyPredicateLess
+ {
+ public:
+ virtual bool isLess( const Any& _lhs, const Any& _rhs ) const = 0;
+ virtual ~IKeyPredicateLess() {}
+ };
+
+ //====================================================================
+ //= LessPredicateAdapter
+ //====================================================================
+ struct LessPredicateAdapter : public ::std::binary_function< Any, Any, bool >
+ {
+ LessPredicateAdapter( const IKeyPredicateLess& _predicate )
+ :m_predicate( _predicate )
+ {
+ }
+
+ bool operator()( const Any& _lhs, const Any& _rhs ) const
+ {
+ return m_predicate.isLess( _lhs, _rhs );
+ }
+
+ private:
+ const IKeyPredicateLess& m_predicate;
+
+ private:
+ LessPredicateAdapter(); // never implemented
+ };
+
+ //====================================================================
+ //= ScalarPredicateLess
+ //====================================================================
+ template< typename SCALAR >
+ class ScalarPredicateLess : public IKeyPredicateLess
+ {
+ public:
+ virtual bool isLess( const Any& _lhs, const Any& _rhs ) const
+ {
+ SCALAR lhs(0), rhs(0);
+ if ( !( _lhs >>= lhs )
+ || !( _rhs >>= rhs )
+ )
+ throw IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported key type." ) ), NULL, 1 );
+ return lhs < rhs;
+ }
+ };
+
+ //====================================================================
+ //= StringPredicateLess
+ //====================================================================
+ class StringPredicateLess : public IKeyPredicateLess
+ {
+ public:
+ virtual bool isLess( const Any& _lhs, const Any& _rhs ) const
+ {
+ ::rtl::OUString lhs, rhs;
+ if ( !( _lhs >>= lhs )
+ || !( _rhs >>= rhs )
+ )
+ throw IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported key type." ) ), NULL, 1 );
+ return lhs < rhs;
+ }
+ };
+
+ //====================================================================
+ //= TypePredicateLess
+ //====================================================================
+ class TypePredicateLess : public IKeyPredicateLess
+ {
+ public:
+ virtual bool isLess( const Any& _lhs, const Any& _rhs ) const
+ {
+ Type lhs, rhs;
+ if ( !( _lhs >>= lhs )
+ || !( _rhs >>= rhs )
+ )
+ throw IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported key type." ) ), NULL, 1 );
+ return lhs.getTypeName() < rhs.getTypeName();
+ }
+ };
+
+ //====================================================================
+ //= EnumPredicateLess
+ //====================================================================
+ class EnumPredicateLess : public IKeyPredicateLess
+ {
+ public:
+ EnumPredicateLess( const Type& _enumType )
+ :m_enumType( _enumType )
+ {
+ }
+
+ virtual bool isLess( const Any& _lhs, const Any& _rhs ) const
+ {
+ sal_Int32 lhs(0), rhs(0);
+ if ( !::cppu::enum2int( lhs, _lhs )
+ || !::cppu::enum2int( rhs, _rhs )
+ || !_lhs.getValueType().equals( m_enumType )
+ || !_rhs.getValueType().equals( m_enumType )
+ )
+ throw IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported key type." ) ), NULL, 1 );
+ return lhs < rhs;
+ }
+
+ private:
+ const Type m_enumType;
+ };
+
+ //====================================================================
+ //= InterfacePredicateLess
+ //====================================================================
+ class InterfacePredicateLess : public IKeyPredicateLess
+ {
+ public:
+ virtual bool isLess( const Any& _lhs, const Any& _rhs ) const
+ {
+ if ( ( _lhs.getValueTypeClass() != TypeClass_INTERFACE )
+ || ( _rhs.getValueTypeClass() != TypeClass_INTERFACE )
+ )
+ throw IllegalArgumentException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported key type." ) ), NULL, 1 );
+
+ Reference< XInterface > lhs( _lhs, UNO_QUERY );
+ Reference< XInterface > rhs( _rhs, UNO_QUERY );
+ return lhs.get() < rhs.get();
+ }
+ };
+
+ //====================================================================
+ //= MapData
+ //====================================================================
+ class IMapModificationListener;
+ typedef ::std::vector< IMapModificationListener* > MapListeners;
+
+ typedef ::std::map< Any, Any, LessPredicateAdapter > KeyedValues;
+ struct MapData
+ {
+ Type m_aKeyType;
+ Type m_aValueType;
+ ::std::auto_ptr< KeyedValues > m_pValues;
+ ::boost::shared_ptr< IKeyPredicateLess > m_pKeyCompare;
+ bool m_bMutable;
+ MapListeners m_aModListeners;
+
+ MapData()
+ :m_bMutable( true )
+ {
+ }
+
+ MapData( const MapData& _source )
+ :m_aKeyType( _source.m_aKeyType )
+ ,m_aValueType( _source.m_aValueType )
+ ,m_pValues( new KeyedValues( *_source.m_pValues ) )
+ ,m_pKeyCompare( _source.m_pKeyCompare )
+ ,m_bMutable( false )
+ ,m_aModListeners()
+ {
+ }
+ private:
+ MapData& operator=( const MapData& _source ); // not implemented
+ };
+
+ //====================================================================
+ //= IMapModificationListener
+ //====================================================================
+ /** implemented by components who want to be notified of modifications in the MapData they work with
+ */
+ class SAL_NO_VTABLE IMapModificationListener
+ {
+ public:
+ /// called when the map was modified
+ virtual void mapModified() = 0;
+ virtual ~IMapModificationListener()
+ {
+ }
+ };
+
+ //====================================================================
+ //= MapData helpers
+ //====================================================================
+ //--------------------------------------------------------------------
+ static void lcl_registerMapModificationListener( MapData& _mapData, IMapModificationListener& _listener )
+ {
+ #if OSL_DEBUG_LEVEL > 0
+ for ( MapListeners::const_iterator lookup = _mapData.m_aModListeners.begin();
+ lookup != _mapData.m_aModListeners.end();
+ ++lookup
+ )
+ {
+ OSL_ENSURE( *lookup != &_listener, "lcl_registerMapModificationListener: this listener is already registered!" );
+ }
+ #endif
+ _mapData.m_aModListeners.push_back( &_listener );
+ }
+
+ //--------------------------------------------------------------------
+ static void lcl_revokeMapModificationListener( MapData& _mapData, IMapModificationListener& _listener )
+ {
+ for ( MapListeners::iterator lookup = _mapData.m_aModListeners.begin();
+ lookup != _mapData.m_aModListeners.end();
+ ++lookup
+ )
+ {
+ if ( *lookup == &_listener )
+ {
+ _mapData.m_aModListeners.erase( lookup );
+ return;
+ }
+ }
+ OSL_ENSURE( false, "lcl_revokeMapModificationListener: the listener is not registered!" );
+ }
+
+ //--------------------------------------------------------------------
+ static void lcl_notifyMapDataListeners_nothrow( const MapData& _mapData )
+ {
+ for ( MapListeners::const_iterator loop = _mapData.m_aModListeners.begin();
+ loop != _mapData.m_aModListeners.end();
+ ++loop
+ )
+ {
+ (*loop)->mapModified();
+ }
+ }
+
+ //====================================================================
+ //= EnumerableMap
+ //====================================================================
+ typedef ::cppu::WeakAggComponentImplHelper3 < XInitialization
+ , XEnumerableMap
+ , XServiceInfo
+ > Map_IFace;
+
+ class COMPHELPER_DLLPRIVATE EnumerableMap :public Map_IFace
+ ,public ComponentBase
+ {
+ protected:
+ EnumerableMap( const ComponentContext& _rContext );
+ virtual ~EnumerableMap();
+
+ // XInitialization
+ virtual void SAL_CALL initialize( const Sequence< Any >& aArguments ) throw (Exception, RuntimeException);
+
+ // XEnumerableMap
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createKeyEnumeration( ::sal_Bool _Isolated ) throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createValueEnumeration( ::sal_Bool _Isolated ) throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createElementEnumeration( ::sal_Bool _Isolated ) throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException);
+
+ // XMap
+ virtual Type SAL_CALL getKeyType() throw (RuntimeException);
+ virtual Type SAL_CALL getValueType() throw (RuntimeException);
+ virtual void SAL_CALL clear( ) throw (NoSupportException, RuntimeException);
+ virtual ::sal_Bool SAL_CALL containsKey( const Any& _key ) throw (IllegalTypeException, IllegalArgumentException, RuntimeException);
+ virtual ::sal_Bool SAL_CALL containsValue( const Any& _value ) throw (IllegalTypeException, IllegalArgumentException, RuntimeException);
+ virtual Any SAL_CALL get( const Any& _key ) throw (IllegalTypeException, IllegalArgumentException, NoSuchElementException, RuntimeException);
+ virtual Any SAL_CALL put( const Any& _key, const Any& _value ) throw (NoSupportException, IllegalTypeException, IllegalArgumentException, RuntimeException);
+ virtual Any SAL_CALL remove( const Any& _key ) throw (NoSupportException, IllegalTypeException, IllegalArgumentException, NoSuchElementException, RuntimeException);
+
+ // XElementAccess (base of XMap)
+ virtual Type SAL_CALL getElementType() throw (RuntimeException);
+ virtual ::sal_Bool SAL_CALL hasElements() throw (RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (RuntimeException);
+ virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (RuntimeException);
+ virtual Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (RuntimeException);
+
+ public:
+ // XServiceInfo, static version (used for component registration)
+ static ::rtl::OUString SAL_CALL getImplementationName_static( );
+ static Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_static( );
+ static Reference< XInterface > SAL_CALL Create( const Reference< XComponentContext >& );
+
+ private:
+ void impl_initValues_throw( const Sequence< Pair< Any, Any > >& _initialValues );
+
+ /// throws a IllegalTypeException if the given value is not compatible with our ValueType
+ void impl_checkValue_throw( const Any& _value ) const;
+ void impl_checkKey_throw( const Any& _key ) const;
+ void impl_checkNaN_throw( const Any& _keyOrValue, const Type& _keyOrValueType ) const;
+ void impl_checkMutable_throw() const;
+
+ private:
+ ::osl::Mutex m_aMutex;
+ ComponentContext m_aContext;
+ MapData m_aData;
+
+ ::std::vector< ::com::sun::star::uno::WeakReference< XInterface > >
+ m_aDependentComponents;
+ };
+
+ //====================================================================
+ //= EnumerationType
+ //====================================================================
+ enum EnumerationType
+ {
+ eKeys, eValues, eBoth
+ };
+
+ //====================================================================
+ //= MapEnumerator
+ //====================================================================
+ class MapEnumerator : public IMapModificationListener
+ {
+ public:
+ MapEnumerator( ::cppu::OWeakObject& _rParent, MapData& _mapData, const EnumerationType _type )
+ :m_rParent( _rParent )
+ ,m_rMapData( _mapData )
+ ,m_eType( _type )
+ ,m_mapPos( _mapData.m_pValues->begin() )
+ ,m_disposed( false )
+ {
+ lcl_registerMapModificationListener( m_rMapData, *this );
+ }
+
+ virtual ~MapEnumerator()
+ {
+ dispose();
+ }
+
+ void dispose()
+ {
+ if ( !m_disposed )
+ {
+ lcl_revokeMapModificationListener( m_rMapData, *this );
+ m_disposed = true;
+ }
+ }
+
+ // XEnumeration equivalents
+ ::sal_Bool hasMoreElements();
+ Any nextElement();
+
+ // IMapModificationListener
+ virtual void mapModified();
+
+ private:
+ ::cppu::OWeakObject& m_rParent;
+ MapData& m_rMapData;
+ const EnumerationType m_eType;
+ KeyedValues::const_iterator m_mapPos;
+ bool m_disposed;
+
+ private:
+ MapEnumerator(); // not implemented
+ MapEnumerator( const MapEnumerator& ); // not implemented
+ MapEnumerator& operator=( const MapEnumerator& ); // not implemented
+ };
+
+ //====================================================================
+ //= MapEnumeration
+ //====================================================================
+ typedef ::cppu::WeakImplHelper1 < XEnumeration
+ > MapEnumeration_Base;
+ class MapEnumeration :public ComponentBase
+ ,public MapEnumeration_Base
+ {
+ public:
+ MapEnumeration( ::cppu::OWeakObject& _parentMap, MapData& _mapData, ::cppu::OBroadcastHelper& _rBHelper,
+ const EnumerationType _type, const bool _isolated )
+ :ComponentBase( _rBHelper, ComponentBase::NoInitializationNeeded() )
+ ,m_xKeepMapAlive( _parentMap )
+ ,m_pMapDataCopy( _isolated ? new MapData( _mapData ) : NULL )
+ ,m_aEnumerator( *this, _isolated ? *m_pMapDataCopy : _mapData, _type )
+ {
+ }
+
+ // XEnumeration
+ virtual ::sal_Bool SAL_CALL hasMoreElements( ) throw (RuntimeException);
+ virtual Any SAL_CALL nextElement( ) throw (NoSuchElementException, WrappedTargetException, RuntimeException);
+
+ protected:
+ virtual ~MapEnumeration()
+ {
+ acquire();
+ {
+ ::osl::MutexGuard aGuard( getMutex() );
+ m_aEnumerator.dispose();
+ m_pMapDataCopy.reset();
+ }
+ }
+
+ private:
+ // sicne we share our mutex with the main map, we need to keep it alive as long as we live
+ Reference< XInterface > m_xKeepMapAlive;
+ ::std::auto_ptr< MapData > m_pMapDataCopy;
+ MapEnumerator m_aEnumerator;
+ };
+
+ //====================================================================
+ //= EnumerableMap
+ //====================================================================
+ //--------------------------------------------------------------------
+ EnumerableMap::EnumerableMap( const ComponentContext& _rContext )
+ :Map_IFace( m_aMutex )
+ ,ComponentBase( Map_IFace::rBHelper )
+ ,m_aContext( _rContext )
+ {
+ }
+
+ //--------------------------------------------------------------------
+ EnumerableMap::~EnumerableMap()
+ {
+ if ( !impl_isDisposed() )
+ {
+ acquire();
+ dispose();
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void SAL_CALL EnumerableMap::initialize( const Sequence< Any >& _arguments ) throw (Exception, RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this, ComponentMethodGuard::WithoutInit );
+ if ( impl_isInitialized_nothrow() )
+ throw AlreadyInitializedException();
+
+ sal_Int32 nArgumentCount = _arguments.getLength();
+ if ( ( nArgumentCount != 2 ) && ( nArgumentCount != 3 ) )
+ throw IllegalArgumentException();
+
+ Type aKeyType, aValueType;
+ if ( !( _arguments[0] >>= aKeyType ) )
+ throw IllegalArgumentException( ::rtl::OUString::createFromAscii( "com.sun.star.uno.Type expected." ), *this, 1 );
+ if ( !( _arguments[1] >>= aValueType ) )
+ throw IllegalArgumentException( ::rtl::OUString::createFromAscii( "com.sun.star.uno.Type expected." ), *this, 2 );
+
+ Sequence< Pair< Any, Any > > aInitialValues;
+ bool bMutable = true;
+ if ( nArgumentCount == 3 )
+ {
+ if ( !( _arguments[2] >>= aInitialValues ) )
+ throw IllegalArgumentException( ::rtl::OUString::createFromAscii( "[]com.sun.star.beans.Pair<any,any> expected." ), *this, 2 );
+ bMutable = false;
+ }
+
+ // for the value, anything is allowed, except VOID
+ if ( ( aValueType.getTypeClass() == TypeClass_VOID ) || ( aValueType.getTypeClass() == TypeClass_UNKNOWN ) )
+ throw IllegalTypeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported value type." ) ), *this );
+
+ // create the comparator for the KeyType, and throw if the type is not supported
+ TypeClass eKeyTypeClass = aKeyType.getTypeClass();
+ ::std::auto_ptr< IKeyPredicateLess > pComparator;
+ switch ( eKeyTypeClass )
+ {
+ case TypeClass_CHAR:
+ pComparator.reset( new ScalarPredicateLess< sal_Unicode >() );
+ break;
+ case TypeClass_BOOLEAN:
+ pComparator.reset( new ScalarPredicateLess< sal_Bool >() );
+ break;
+ case TypeClass_BYTE:
+ pComparator.reset( new ScalarPredicateLess< sal_Int8 >() );
+ break;
+ case TypeClass_SHORT:
+ pComparator.reset( new ScalarPredicateLess< sal_Int16 >() );
+ break;
+ case TypeClass_UNSIGNED_SHORT:
+ pComparator.reset( new ScalarPredicateLess< sal_uInt16 >() );
+ break;
+ case TypeClass_LONG:
+ pComparator.reset( new ScalarPredicateLess< sal_Int32 >() );
+ break;
+ case TypeClass_UNSIGNED_LONG:
+ pComparator.reset( new ScalarPredicateLess< sal_uInt32 >() );
+ break;
+ case TypeClass_HYPER:
+ pComparator.reset( new ScalarPredicateLess< sal_Int64 >() );
+ break;
+ case TypeClass_UNSIGNED_HYPER:
+ pComparator.reset( new ScalarPredicateLess< sal_uInt64 >() );
+ break;
+ case TypeClass_FLOAT:
+ pComparator.reset( new ScalarPredicateLess< float >() );
+ break;
+ case TypeClass_DOUBLE:
+ pComparator.reset( new ScalarPredicateLess< double >() );
+ break;
+ case TypeClass_STRING:
+ pComparator.reset( new StringPredicateLess() );
+ break;
+ case TypeClass_TYPE:
+ pComparator.reset( new TypePredicateLess() );
+ break;
+ case TypeClass_ENUM:
+ pComparator.reset( new EnumPredicateLess( aKeyType ) );
+ break;
+ case TypeClass_INTERFACE:
+ pComparator.reset( new InterfacePredicateLess() );
+ break;
+ default:
+ throw IllegalTypeException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Unsupported key type." ) ), *this );
+ }
+
+ // init members
+ m_aData.m_aKeyType = aKeyType;
+ m_aData.m_aValueType = aValueType;
+ m_aData.m_pKeyCompare = pComparator;
+ m_aData.m_pValues.reset( new KeyedValues( *m_aData.m_pKeyCompare ) );
+ m_aData.m_bMutable = bMutable;
+
+ if ( aInitialValues.getLength() )
+ impl_initValues_throw( aInitialValues );
+
+ setInitialized();
+ }
+
+ //--------------------------------------------------------------------
+ void EnumerableMap::impl_initValues_throw( const Sequence< Pair< Any, Any > >& _initialValues )
+ {
+ OSL_PRECOND( m_aData.m_pValues.get() && m_aData.m_pValues->empty(), "EnumerableMap::impl_initValues_throw: illegal call!" );
+ if ( !m_aData.m_pValues.get() || !m_aData.m_pValues->empty() )
+ throw RuntimeException();
+
+ const Pair< Any, Any >* mapping = _initialValues.getConstArray();
+ const Pair< Any, Any >* mappingEnd = mapping + _initialValues.getLength();
+ Any normalizedValue;
+ for ( ; mapping != mappingEnd; ++mapping )
+ {
+ impl_checkValue_throw( mapping->Second );
+ (*m_aData.m_pValues)[ mapping->First ] = mapping->Second;
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void EnumerableMap::impl_checkValue_throw( const Any& _value ) const
+ {
+ if ( !_value.hasValue() )
+ // nothing to do, NULL values are always allowed, regardless of the ValueType
+ return;
+
+ TypeClass eAllowedTypeClass = m_aData.m_aValueType.getTypeClass();
+ bool bValid = false;
+
+ switch ( eAllowedTypeClass )
+ {
+ default:
+ bValid = ( _value.getValueTypeClass() == eAllowedTypeClass );
+ break;
+ case TypeClass_ANY:
+ bValid = true;
+ break;
+ case TypeClass_INTERFACE:
+ {
+ // special treatment: _value might contain the proper type, but the interface
+ // might actually be NULL. Which is still valid ...
+ if ( m_aData.m_aValueType.isAssignableFrom( _value.getValueType() ) )
+ // this also catches the special case where XFoo is our value type,
+ // and _value contains a NULL-reference to XFoo, or a derived type
+ bValid = true;
+ else
+ {
+ Reference< XInterface > xValue( _value, UNO_QUERY );
+ Any aTypedValue;
+ if ( xValue.is() )
+ // XInterface is not-NULL, but is X(ValueType) not-NULL, too?
+ xValue.set( xValue->queryInterface( m_aData.m_aValueType ), UNO_QUERY );
+ bValid = xValue.is();
+ }
+ }
+ break;
+ case TypeClass_EXCEPTION:
+ case TypeClass_STRUCT:
+ case TypeClass_UNION:
+ {
+ // values are accepted if and only if their type equals, or is derived from, our value type
+
+ if ( _value.getValueTypeClass() != eAllowedTypeClass )
+ bValid = false;
+ else
+ {
+ const TypeDescription aValueTypeDesc( _value.getValueType() );
+ const TypeDescription aRequiredTypeDesc( m_aData.m_aValueType );
+
+ const _typelib_CompoundTypeDescription* pValueCompoundTypeDesc =
+ reinterpret_cast< const _typelib_CompoundTypeDescription* >( aValueTypeDesc.get() );
+
+ while ( pValueCompoundTypeDesc )
+ {
+ if ( typelib_typedescription_equals( &pValueCompoundTypeDesc->aBase, aRequiredTypeDesc.get() ) )
+ break;
+ pValueCompoundTypeDesc = pValueCompoundTypeDesc->pBaseTypeDescription;
+ }
+ bValid = ( pValueCompoundTypeDesc != NULL );
+ }
+ }
+ break;
+ }
+
+ if ( !bValid )
+ {
+ ::rtl::OUStringBuffer aMessage;
+ aMessage.appendAscii( "Incompatible value type. Found '" );
+ aMessage.append( _value.getValueTypeName() );
+ aMessage.appendAscii( "', where '" );
+ aMessage.append( m_aData.m_aValueType.getTypeName() );
+ aMessage.appendAscii( "' (or compatible type) is expected." );
+ throw IllegalTypeException( aMessage.makeStringAndClear(), *const_cast< EnumerableMap* >( this ) );
+ }
+
+ impl_checkNaN_throw( _value, m_aData.m_aValueType );
+ }
+
+ //--------------------------------------------------------------------
+ void EnumerableMap::impl_checkNaN_throw( const Any& _keyOrValue, const Type& _keyOrValueType ) const
+ {
+ if ( ( _keyOrValueType.getTypeClass() == TypeClass_DOUBLE )
+ || ( _keyOrValueType.getTypeClass() == TypeClass_FLOAT )
+ )
+ {
+ double nValue(0);
+ if ( _keyOrValue >>= nValue )
+ if ( ::rtl::math::isNan( nValue ) )
+ throw IllegalArgumentException(
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "NaN (not-a-number) not supported by this implementation." ) ),
+ *const_cast< EnumerableMap* >( this ), 0 );
+ // (note that the case of _key not containing a float/double value is handled in the
+ // respective IKeyPredicateLess implementation, so there's no need to handle this here.)
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void EnumerableMap::impl_checkKey_throw( const Any& _key ) const
+ {
+ if ( !_key.hasValue() )
+ throw IllegalArgumentException(
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "NULL keys not supported by this implementation." ) ),
+ *const_cast< EnumerableMap* >( this ), 0 );
+
+ impl_checkNaN_throw( _key, m_aData.m_aKeyType );
+ }
+
+ //--------------------------------------------------------------------
+ void EnumerableMap::impl_checkMutable_throw() const
+ {
+ if ( !m_aData.m_bMutable )
+ throw NoSupportException(
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "The map is immutable." ) ),
+ *const_cast< EnumerableMap* >( this ) );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XEnumeration > SAL_CALL EnumerableMap::createKeyEnumeration( ::sal_Bool _Isolated ) throw (NoSupportException, RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ return new MapEnumeration( *this, m_aData, getBroadcastHelper(), eKeys, _Isolated );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XEnumeration > SAL_CALL EnumerableMap::createValueEnumeration( ::sal_Bool _Isolated ) throw (NoSupportException, RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ return new MapEnumeration( *this, m_aData, getBroadcastHelper(), eValues, _Isolated );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XEnumeration > SAL_CALL EnumerableMap::createElementEnumeration( ::sal_Bool _Isolated ) throw (NoSupportException, RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ return new MapEnumeration( *this, m_aData, getBroadcastHelper(), eBoth, _Isolated );
+ }
+
+ //--------------------------------------------------------------------
+ Type SAL_CALL EnumerableMap::getKeyType() throw (RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ return m_aData.m_aKeyType;
+ }
+
+ //--------------------------------------------------------------------
+ Type SAL_CALL EnumerableMap::getValueType() throw (RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ return m_aData.m_aValueType;
+ }
+
+ //--------------------------------------------------------------------
+ void SAL_CALL EnumerableMap::clear( ) throw (NoSupportException, RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ impl_checkMutable_throw();
+
+ m_aData.m_pValues->clear();
+
+ lcl_notifyMapDataListeners_nothrow( m_aData );
+ }
+
+ //--------------------------------------------------------------------
+ ::sal_Bool SAL_CALL EnumerableMap::containsKey( const Any& _key ) throw (IllegalTypeException, IllegalArgumentException, RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ impl_checkKey_throw( _key );
+
+ KeyedValues::const_iterator pos = m_aData.m_pValues->find( _key );
+ return ( pos != m_aData.m_pValues->end() );
+ }
+
+ //--------------------------------------------------------------------
+ ::sal_Bool SAL_CALL EnumerableMap::containsValue( const Any& _value ) throw (IllegalTypeException, IllegalArgumentException, RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ impl_checkValue_throw( _value );
+
+ for ( KeyedValues::const_iterator mapping = m_aData.m_pValues->begin();
+ mapping != m_aData.m_pValues->end();
+ ++mapping
+ )
+ {
+ if ( mapping->second == _value )
+ return sal_True;
+ }
+ return sal_False;
+ }
+
+ //--------------------------------------------------------------------
+ Any SAL_CALL EnumerableMap::get( const Any& _key ) throw (IllegalTypeException, IllegalArgumentException, NoSuchElementException, RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ impl_checkKey_throw( _key );
+
+ KeyedValues::const_iterator pos = m_aData.m_pValues->find( _key );
+ if ( pos == m_aData.m_pValues->end() )
+ throw NoSuchElementException( anyToString( _key ), *this );
+
+ return pos->second;
+ }
+
+ //--------------------------------------------------------------------
+ Any SAL_CALL EnumerableMap::put( const Any& _key, const Any& _value ) throw (NoSupportException, IllegalTypeException, IllegalArgumentException, RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ impl_checkMutable_throw();
+ impl_checkKey_throw( _key );
+ impl_checkValue_throw( _value );
+
+ Any previousValue;
+
+ KeyedValues::iterator pos = m_aData.m_pValues->find( _key );
+ if ( pos != m_aData.m_pValues->end() )
+ {
+ previousValue = pos->second;
+ pos->second = _value;
+ }
+ else
+ {
+ (*m_aData.m_pValues)[ _key ] = _value;
+ }
+
+ lcl_notifyMapDataListeners_nothrow( m_aData );
+
+ return previousValue;
+ }
+
+ //--------------------------------------------------------------------
+ Any SAL_CALL EnumerableMap::remove( const Any& _key ) throw (NoSupportException, IllegalTypeException, IllegalArgumentException, NoSuchElementException, RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ impl_checkMutable_throw();
+ impl_checkKey_throw( _key );
+
+ Any previousValue;
+
+ KeyedValues::iterator pos = m_aData.m_pValues->find( _key );
+ if ( pos != m_aData.m_pValues->end() )
+ {
+ previousValue = pos->second;
+ m_aData.m_pValues->erase( pos );
+ }
+
+ lcl_notifyMapDataListeners_nothrow( m_aData );
+
+ return previousValue;
+ }
+
+ //--------------------------------------------------------------------
+ Type SAL_CALL EnumerableMap::getElementType() throw (RuntimeException)
+ {
+ return ::cppu::UnoType< Pair< Any, Any > >::get();
+ }
+
+ //--------------------------------------------------------------------
+ ::sal_Bool SAL_CALL EnumerableMap::hasElements() throw (RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ return m_aData.m_pValues->empty();
+ }
+
+ //--------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL EnumerableMap::getImplementationName( ) throw (RuntimeException)
+ {
+ return getImplementationName_static();
+ }
+
+ //--------------------------------------------------------------------
+ ::sal_Bool SAL_CALL EnumerableMap::supportsService( const ::rtl::OUString& _serviceName ) throw (RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aServices( getSupportedServiceNames() );
+ for ( sal_Int32 i=0; i<aServices.getLength(); ++i )
+ if ( _serviceName == aServices[i] )
+ return sal_True;
+ return sal_False;
+ }
+
+ //--------------------------------------------------------------------
+ Sequence< ::rtl::OUString > SAL_CALL EnumerableMap::getSupportedServiceNames( ) throw (RuntimeException)
+ {
+ return getSupportedServiceNames_static();
+ }
+
+ //--------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL EnumerableMap::getImplementationName_static( )
+ {
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "org.openoffice.comp.comphelper.EnumerableMap" ) );
+ }
+
+ //--------------------------------------------------------------------
+ Sequence< ::rtl::OUString > SAL_CALL EnumerableMap::getSupportedServiceNames_static( )
+ {
+ Sequence< ::rtl::OUString > aServiceNames(1);
+ aServiceNames[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.container.EnumerableMap" ) );
+ return aServiceNames;
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XInterface > SAL_CALL EnumerableMap::Create( const Reference< XComponentContext >& _context )
+ {
+ return *new EnumerableMap( ComponentContext( _context ) );
+ }
+
+ //====================================================================
+ //= MapEnumerator
+ //====================================================================
+ //--------------------------------------------------------------------
+ ::sal_Bool MapEnumerator::hasMoreElements()
+ {
+ if ( m_disposed )
+ throw DisposedException( ::rtl::OUString(), m_rParent );
+ return m_mapPos != m_rMapData.m_pValues->end();
+ }
+
+ //--------------------------------------------------------------------
+ Any MapEnumerator::nextElement()
+ {
+ if ( m_disposed )
+ throw DisposedException( ::rtl::OUString(), m_rParent );
+ if ( m_mapPos == m_rMapData.m_pValues->end() )
+ throw NoSuchElementException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "No more elements." ) ), m_rParent );
+
+ Any aNextElement;
+ switch ( m_eType )
+ {
+ case eKeys: aNextElement = m_mapPos->first; break;
+ case eValues: aNextElement = m_mapPos->second; break;
+ case eBoth: aNextElement <<= Pair< Any, Any >( m_mapPos->first, m_mapPos->second ); break;
+ }
+ ++m_mapPos;
+ return aNextElement;
+ }
+
+ //--------------------------------------------------------------------
+ void MapEnumerator::mapModified()
+ {
+ m_disposed = true;
+ }
+
+ //====================================================================
+ //= MapEnumeration - implementation
+ //====================================================================
+ //--------------------------------------------------------------------
+ ::sal_Bool SAL_CALL MapEnumeration::hasMoreElements( ) throw (RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ return m_aEnumerator.hasMoreElements();
+ }
+
+ //--------------------------------------------------------------------
+ Any SAL_CALL MapEnumeration::nextElement( ) throw (NoSuchElementException, WrappedTargetException, RuntimeException)
+ {
+ ComponentMethodGuard aGuard( *this );
+ return m_aEnumerator.nextElement();
+ }
+
+//........................................................................
+} // namespace comphelper
+//........................................................................
+
+void createRegistryInfo_Map()
+{
+ ::comphelper::module::OAutoRegistration< ::comphelper::EnumerableMap > aAutoRegistration;
+}
diff --git a/comphelper/source/container/makefile.mk b/comphelper/source/container/makefile.mk
index 2c63d2234a03..2c43a774b030 100644
--- a/comphelper/source/container/makefile.mk
+++ b/comphelper/source/container/makefile.mk
@@ -50,7 +50,8 @@ SLOFILES=\
$(SLO)$/containermultiplexer.obj \
$(SLO)$/IndexedPropertyValuesContainer.obj \
$(SLO)$/embeddedobjectcontainer.obj \
- $(SLO)$/NamedPropertyValuesContainer.obj
+ $(SLO)$/NamedPropertyValuesContainer.obj \
+ $(SLO)$/enumerablemap.obj
# --- Targets ----------------------------------
diff --git a/comphelper/source/inc/comphelper_module.hxx b/comphelper/source/inc/comphelper_module.hxx
new file mode 100644
index 000000000000..5bbac6f9efc6
--- /dev/null
+++ b/comphelper/source/inc/comphelper_module.hxx
@@ -0,0 +1,42 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2009 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 COMPHELPER_COMPHELPER_MODULE_HXX
+#define COMPHELPER_COMPHELPER_MODULE_HXX
+
+#include "comphelper/componentmodule.hxx"
+
+//........................................................................
+namespace comphelper { namespace module
+{
+//........................................................................
+
+ DECLARE_COMPONENT_MODULE( ComphelperModule, ComphelperModuleClient )
+
+//........................................................................
+} } // namespace comphelper::module
+//........................................................................
+
+#endif // COMPHELPER_COMPHELPER_MODULE_HXX
diff --git a/comphelper/source/misc/comphelper_module.cxx b/comphelper/source/misc/comphelper_module.cxx
new file mode 100644
index 000000000000..08cb48b3ef42
--- /dev/null
+++ b/comphelper/source/misc/comphelper_module.cxx
@@ -0,0 +1,40 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2009 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.
+************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_comphelper.hxx"
+
+#include "comphelper_module.hxx"
+
+//........................................................................
+namespace comphelper { namespace module
+{
+//........................................................................
+
+ IMPLEMENT_COMPONENT_MODULE( ComphelperModule );
+
+//........................................................................
+} } // namespace comphelper::module
+//........................................................................
diff --git a/comphelper/source/misc/comphelper_services.cxx b/comphelper/source/misc/comphelper_services.cxx
new file mode 100644
index 000000000000..77ab145e2581
--- /dev/null
+++ b/comphelper/source/misc/comphelper_services.cxx
@@ -0,0 +1,74 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2009 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.
+************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_comphelper.hxx"
+
+#include "comphelper_module.hxx"
+
+//--------------------------------------------------------------------
+extern void createRegistryInfo_OPropertyBag();
+extern void createRegistryInfo_SequenceOutputStream();
+extern void createRegistryInfo_SequenceInputStream();
+extern void createRegistryInfo_UNOMemoryStream();
+extern void createRegistryInfo_IndexedPropertyValuesContainer();
+extern void createRegistryInfo_NamedPropertyValuesContainer();
+extern void createRegistryInfo_AnyCompareFactory();
+extern void createRegistryInfo_OfficeInstallationDirectories();
+extern void createRegistryInfo_OInstanceLocker();
+extern void createRegistryInfo_Map();
+
+//........................................................................
+namespace comphelper { namespace module
+{
+//........................................................................
+
+ static void initializeModule()
+ {
+ static bool bInitialized( false );
+ if ( !bInitialized )
+ {
+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if ( !bInitialized )
+ {
+ createRegistryInfo_OPropertyBag();
+ createRegistryInfo_SequenceOutputStream();
+ createRegistryInfo_SequenceInputStream();
+ createRegistryInfo_UNOMemoryStream();
+ createRegistryInfo_IndexedPropertyValuesContainer();
+ createRegistryInfo_NamedPropertyValuesContainer();
+ createRegistryInfo_AnyCompareFactory();
+ createRegistryInfo_OfficeInstallationDirectories();
+ createRegistryInfo_OInstanceLocker();
+ createRegistryInfo_Map();
+ }
+ }
+ }
+
+//........................................................................
+} } // namespace comphelper::module
+//........................................................................
+
+IMPLEMENT_COMPONENT_LIBRARY_API( ::comphelper::module::ComphelperModule, ::comphelper::module::initializeModule )
diff --git a/comphelper/source/misc/componentbase.cxx b/comphelper/source/misc/componentbase.cxx
new file mode 100644
index 000000000000..bf230f59b132
--- /dev/null
+++ b/comphelper/source/misc/componentbase.cxx
@@ -0,0 +1,73 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2009 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.
+************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_comphelper.hxx"
+
+#include "comphelper/componentbase.hxx"
+
+/** === begin UNO includes === **/
+#include <com/sun/star/lang/NotInitializedException.hpp>
+#include <com/sun/star/lang/DisposedException.hpp>
+/** === end UNO includes === **/
+
+//........................................................................
+namespace comphelper
+{
+//........................................................................
+
+ /** === begin UNO using === **/
+ using ::com::sun::star::lang::NotInitializedException;
+ using ::com::sun::star::lang::DisposedException;
+ using ::com::sun::star::uno::Reference;
+ using ::com::sun::star::uno::XInterface;
+ /** === end UNO using === **/
+
+ //====================================================================
+ //= ComponentBase
+ //====================================================================
+ //--------------------------------------------------------------------
+ void ComponentBase::impl_checkDisposed_throw() const
+ {
+ if ( m_rBHelper.bDisposed )
+ throw DisposedException( ::rtl::OUString(), getComponent() );
+ }
+
+ //--------------------------------------------------------------------
+ void ComponentBase::impl_checkInitialized_throw() const
+ {
+ if ( !m_bInitialized )
+ throw NotInitializedException( ::rtl::OUString(), getComponent() );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XInterface > ComponentBase::getComponent() const
+ {
+ return NULL;
+ }
+
+//........................................................................
+} // namespace comphelper
+//........................................................................
diff --git a/comphelper/source/misc/documentiologring.cxx b/comphelper/source/misc/documentiologring.cxx
new file mode 100644
index 000000000000..7969b938e108
--- /dev/null
+++ b/comphelper/source/misc/documentiologring.cxx
@@ -0,0 +1,175 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: documentiologring.hxx,v $
+ * $Revision: 1.0 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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_comphelper.hxx"
+
+#include <com/sun/star/frame/DoubleInitializationException.hpp>
+#include <com/sun/star/lang/IllegalArgumentException.hpp>
+
+#include "documentiologring.hxx"
+
+using namespace ::com::sun::star;
+
+namespace comphelper
+{
+
+// ----------------------------------------------------------
+OSimpleLogRing::OSimpleLogRing( const uno::Reference< uno::XComponentContext >& /*xContext*/ )
+: m_aMessages( SIMPLELOGRING_SIZE )
+, m_bInitialized( sal_False )
+, m_bFull( sal_False )
+, m_nPos( 0 )
+{
+}
+
+// ----------------------------------------------------------
+OSimpleLogRing::~OSimpleLogRing()
+{
+}
+
+// ----------------------------------------------------------
+uno::Sequence< ::rtl::OUString > SAL_CALL OSimpleLogRing::impl_staticGetSupportedServiceNames()
+{
+ uno::Sequence< rtl::OUString > aResult( 1 );
+ aResult[0] = impl_staticGetServiceName();
+ return aResult;
+}
+
+// ----------------------------------------------------------
+::rtl::OUString SAL_CALL OSimpleLogRing::impl_staticGetImplementationName()
+{
+ return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.logging.SimpleLogRing" ) );
+}
+
+// ----------------------------------------------------------
+::rtl::OUString SAL_CALL OSimpleLogRing::impl_staticGetSingletonName()
+{
+ return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.logging.DocumentIOLogRing" ) );
+}
+
+// ----------------------------------------------------------
+::rtl::OUString SAL_CALL OSimpleLogRing::impl_staticGetServiceName()
+{
+ return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.logging.SimpleLogRing" ) );
+}
+
+// ----------------------------------------------------------
+uno::Reference< uno::XInterface > SAL_CALL OSimpleLogRing::impl_staticCreateSelfInstance( const uno::Reference< uno::XComponentContext >& rxContext )
+{
+ return static_cast< cppu::OWeakObject* >( new OSimpleLogRing( rxContext ) );
+}
+
+// XSimpleLogRing
+// ----------------------------------------------------------
+void SAL_CALL OSimpleLogRing::logString( const ::rtl::OUString& aMessage ) throw (uno::RuntimeException)
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ m_aMessages[m_nPos] = aMessage;
+ if ( ++m_nPos >= m_aMessages.getLength() )
+ {
+ m_nPos = 0;
+ m_bFull = sal_True;
+ }
+
+ // if used once then default initialized
+ m_bInitialized = sal_True;
+}
+
+// ----------------------------------------------------------
+uno::Sequence< ::rtl::OUString > SAL_CALL OSimpleLogRing::getCollectedLog() throw (uno::RuntimeException)
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ sal_Int32 nResLen = m_bFull ? m_aMessages.getLength() : m_nPos;
+ sal_Int32 nStart = m_bFull ? m_nPos : 0;
+ uno::Sequence< ::rtl::OUString > aResult( nResLen );
+
+ for ( sal_Int32 nInd = 0; nInd < nResLen; nInd++ )
+ aResult[nInd] = m_aMessages[ ( nStart + nInd ) % m_aMessages.getLength() ];
+
+ // if used once then default initialized
+ m_bInitialized = sal_True;
+
+ return aResult;
+}
+
+// XInitialization
+// ----------------------------------------------------------
+void SAL_CALL OSimpleLogRing::initialize( const uno::Sequence< uno::Any >& aArguments ) throw (uno::Exception, uno::RuntimeException)
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+ if ( m_bInitialized )
+ throw frame::DoubleInitializationException();
+
+ if ( !m_refCount )
+ throw uno::RuntimeException(); // the object must be refcounted already!
+
+ sal_Int32 nLen = 0;
+ if ( aArguments.getLength() == 1 && ( aArguments[0] >>= nLen ) && nLen )
+ m_aMessages.realloc( nLen );
+ else
+ throw lang::IllegalArgumentException(
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Nonnull size is expected as the first argument!" ) ),
+ uno::Reference< uno::XInterface >(),
+ 0 );
+
+ m_bInitialized = sal_True;
+}
+
+// XServiceInfo
+// ----------------------------------------------------------
+::rtl::OUString SAL_CALL OSimpleLogRing::getImplementationName() throw (uno::RuntimeException)
+{
+ return impl_staticGetImplementationName();
+}
+
+// ----------------------------------------------------------
+::sal_Bool SAL_CALL OSimpleLogRing::supportsService( const ::rtl::OUString& aServiceName ) throw (uno::RuntimeException)
+{
+ const uno::Sequence< rtl::OUString > & aSupportedNames = impl_staticGetSupportedServiceNames();
+ for ( sal_Int32 nInd = 0; nInd < aSupportedNames.getLength(); nInd++ )
+ {
+ if ( aSupportedNames[ nInd ].equals( aServiceName ) )
+ return sal_True;
+ }
+
+ return sal_False;
+}
+
+// ----------------------------------------------------------
+uno::Sequence< ::rtl::OUString > SAL_CALL OSimpleLogRing::getSupportedServiceNames() throw (uno::RuntimeException)
+{
+ return impl_staticGetSupportedServiceNames();
+}
+
+} // namespace comphelper
+
diff --git a/comphelper/source/misc/documentiologring.hxx b/comphelper/source/misc/documentiologring.hxx
new file mode 100644
index 000000000000..ae7d2a6eaf19
--- /dev/null
+++ b/comphelper/source/misc/documentiologring.hxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: documentiologring.hxx,v $
+ * $Revision: 1.0 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General 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 __DOCUMENTIOLOGRING_HXX_
+#define __DOCUMENTIOLOGRING_HXX_
+
+#include <com/sun/star/logging/XSimpleLogRing.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
+
+#include <osl/mutex.hxx>
+#include <cppuhelper/implbase3.hxx>
+
+#define SIMPLELOGRING_SIZE 256
+
+namespace comphelper
+{
+
+class OSimpleLogRing : public ::cppu::WeakImplHelper3< ::com::sun::star::logging::XSimpleLogRing,
+ ::com::sun::star::lang::XInitialization,
+ ::com::sun::star::lang::XServiceInfo >
+{
+ ::osl::Mutex m_aMutex;
+ ::com::sun::star::uno::Sequence< ::rtl::OUString > m_aMessages;
+
+ sal_Bool m_bInitialized;
+ sal_Bool m_bFull;
+ sal_Int32 m_nPos;
+
+public:
+ OSimpleLogRing( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& xContext );
+ virtual ~OSimpleLogRing();
+
+ static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
+ impl_staticGetSupportedServiceNames();
+
+ static ::rtl::OUString SAL_CALL impl_staticGetImplementationName();
+
+ static ::rtl::OUString SAL_CALL impl_staticGetSingletonName();
+
+ static ::rtl::OUString SAL_CALL impl_staticGetServiceName();
+
+ static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
+ impl_staticCreateSelfInstance(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext );
+
+// XSimpleLogRing
+ virtual void SAL_CALL logString( const ::rtl::OUString& aMessage ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getCollectedLog() throw (::com::sun::star::uno::RuntimeException);
+
+// XInitialization
+ virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+
+// XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
+
+};
+
+} // namespace comphelper
+
+#endif
+
diff --git a/comphelper/source/misc/facreg.cxx b/comphelper/source/misc/facreg.cxx
deleted file mode 100644
index 9ad0e12597b0..000000000000
--- a/comphelper/source/misc/facreg.cxx
+++ /dev/null
@@ -1,246 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: facreg.cxx,v $
- * $Revision: 1.15 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_comphelper.hxx"
-
-#include <string.h>
-#include "sal/types.h"
-#include <com/sun/star/registry/XRegistryKey.hpp>
-#include <osl/diagnose.h>
-
-#include "rtl/ustrbuf.hxx"
-
-#include <cppuhelper/factory.hxx>
-#include <uno/lbnames.h>
-
-#include "instancelocker.hxx"
-
-using namespace rtl;
-using namespace com::sun::star;
-
-// IndexedPropertyValuesContainer
-extern uno::Sequence< OUString > SAL_CALL IndexedPropertyValuesContainer_getSupportedServiceNames() throw();
-extern OUString SAL_CALL IndexedPropertyValuesContainer_getImplementationName() throw();
-extern uno::Reference< uno::XInterface > SAL_CALL IndexedPropertyValuesContainer_createInstance(const uno::Reference< uno::XComponentContext > & rxContext) throw( uno::Exception );
-
-// NamedPropertyValuesContainer
-extern uno::Sequence< OUString > SAL_CALL NamedPropertyValuesContainer_getSupportedServiceNames() throw();
-extern OUString SAL_CALL NamedPropertyValuesContainer_getImplementationName() throw();
-extern uno::Reference< uno::XInterface > SAL_CALL NamedPropertyValuesContainer_createInstance(const uno::Reference< uno::XComponentContext > & rxContext) throw( uno::Exception );
-
-// AnyCompareFactory
-extern uno::Sequence< OUString > SAL_CALL AnyCompareFactory_getSupportedServiceNames() throw();
-extern OUString SAL_CALL AnyCompareFactory_getImplementationName() throw();
-extern uno::Reference< uno::XInterface > SAL_CALL AnyCompareFactory_createInstance(const uno::Reference< uno::XComponentContext > & rxContext) throw( uno::Exception );
-
-// OfficeInstallationDirectories
-extern uno::Sequence< OUString > SAL_CALL OfficeInstallationDirectories_getSupportedServiceNames() throw();
-extern OUString SAL_CALL OfficeInstallationDirectories_getImplementationName() throw();
-extern OUString SAL_CALL OfficeInstallationDirectories_getSingletonName() throw();
-extern OUString SAL_CALL OfficeInstallationDirectories_getSingletonServiceName() throw();
-extern uno::Reference< uno::XInterface > SAL_CALL OfficeInstallationDirectories_createInstance(const uno::Reference< uno::XComponentContext > & rxContext) throw( uno::Exception );
-
-// SequenceInputStreamService
-extern uno::Sequence< OUString > SAL_CALL SequenceInputStreamService_getSupportedServiceNames() throw();
-extern OUString SAL_CALL SequenceInputStreamService_getImplementationName() throw();
-extern uno::Reference< uno::XInterface > SAL_CALL SequenceInputStreamService_createInstance(const uno::Reference< uno::XComponentContext > & rxContext) throw( uno::Exception );
-
-//SequenceOutputStreamService
-extern uno::Sequence< OUString > SAL_CALL SequenceOutputStreamService_getSupportedServiceNames() throw();
-extern OUString SAL_CALL SequenceOutputStreamService_getImplementationName() throw();
-extern uno::Reference< uno::XInterface > SAL_CALL SequenceOutputStreamService_createInstance(const uno::Reference< uno::XComponentContext >& rxContext) throw( uno::Exception );
-
-namespace comphelper
-{
-// UNOMemoryStream
-extern uno::Sequence< OUString > SAL_CALL UNOMemoryStream_getSupportedServiceNames() throw();
-extern OUString SAL_CALL UNOMemoryStream_getImplementationName() throw();
-extern uno::Reference< uno::XInterface > SAL_CALL UNOMemoryStream_createInstance(const uno::Reference< uno::XComponentContext > & rxContext) throw( uno::Exception );
-}
-
-// PropertyBag
-extern uno::Sequence< OUString > SAL_CALL PropertyBag_getSupportedServiceNames() throw();
-extern OUString SAL_CALL PropertyBag_getImplementationName() throw();
-extern uno::Reference< uno::XInterface > SAL_CALL PropertyBag_createInstance(const uno::Reference< uno::XComponentContext >& rxContext) throw( uno::Exception );
-
-//
-static void writeInfo( registry::XRegistryKey * pRegistryKey, const OUString& rImplementationName, const uno::Sequence< OUString >& rServices )
-{
- uno::Reference< registry::XRegistryKey > xNewKey(
- pRegistryKey->createKey(
- OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + rImplementationName + OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) ) );
-
- for( sal_Int32 i = 0; i < rServices.getLength(); i++ )
- xNewKey->createKey( rServices.getConstArray()[i]);
-}
-
-static void registerSingleton( registry::XRegistryKey * pRegistryKey, const OUString& rImplementationName, const OUString& rSingletonName, const OUString& rServiceName )
-{
- OUStringBuffer aSingletonKeyName;
- aSingletonKeyName.appendAscii( "/" );
- aSingletonKeyName.append( rImplementationName );
- aSingletonKeyName.appendAscii( "/UNO/SINGLETONS/" );
- aSingletonKeyName.append( rSingletonName );
-
- uno::Reference< registry::XRegistryKey > xNewKey( pRegistryKey->createKey( aSingletonKeyName.makeStringAndClear() ) );
- OSL_ENSURE( xNewKey.is(), "could not create a registry key !");
-
- xNewKey->setStringValue( rServiceName );
-}
-
-//
-extern "C"
-{
-
-SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTypeName, uno_Environment ** )
-{
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-}
-
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void *, void * pRegistryKey )
-{
- if( pRegistryKey )
- {
- try
- {
- registry::XRegistryKey *pKey = reinterpret_cast< registry::XRegistryKey * >( pRegistryKey );
-
- // IndexedPropertyValuesContainer
- writeInfo( pKey, IndexedPropertyValuesContainer_getImplementationName(), IndexedPropertyValuesContainer_getSupportedServiceNames() );
- // NamedPropertyValuesContainer
- writeInfo( pKey, NamedPropertyValuesContainer_getImplementationName(), NamedPropertyValuesContainer_getSupportedServiceNames() );
- // AnyCompareFactory
- writeInfo( pKey, AnyCompareFactory_getImplementationName(), AnyCompareFactory_getSupportedServiceNames() );
- // OfficeInstallationDirectories
- writeInfo( pKey, OfficeInstallationDirectories_getImplementationName(), OfficeInstallationDirectories_getSupportedServiceNames() );
- registerSingleton( pKey, OfficeInstallationDirectories_getImplementationName(), OfficeInstallationDirectories_getSingletonName(), OfficeInstallationDirectories_getSingletonServiceName() );
-
- // InstanceLocker
- writeInfo( pKey, OInstanceLocker::impl_staticGetImplementationName(), OInstanceLocker::impl_staticGetSupportedServiceNames() );
- // SequenceInputStreamService
- writeInfo( pKey, SequenceInputStreamService_getImplementationName(), SequenceInputStreamService_getSupportedServiceNames() );
- // SequenceOutputStreamService
- writeInfo( pKey, SequenceOutputStreamService_getImplementationName(), SequenceOutputStreamService_getSupportedServiceNames() );
- // UNOMemoryStream
- writeInfo( pKey, comphelper::UNOMemoryStream_getImplementationName(), comphelper::UNOMemoryStream_getSupportedServiceNames() );
- // PropertyBag
- writeInfo( pKey, PropertyBag_getImplementationName(), PropertyBag_getSupportedServiceNames() );
- }
- catch (registry::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_True;
-}
-
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * )
-{
- void * pRet = 0;
- if( pServiceManager )
- {
- uno::Reference<lang::XSingleComponentFactory> xComponentFactory;
-
- const sal_Int32 nImplNameLen = strlen( pImplName );
- if( IndexedPropertyValuesContainer_getImplementationName().equalsAsciiL( pImplName, nImplNameLen ) )
- {
- xComponentFactory = ::cppu::createSingleComponentFactory(
- IndexedPropertyValuesContainer_createInstance,
- IndexedPropertyValuesContainer_getImplementationName(),
- IndexedPropertyValuesContainer_getSupportedServiceNames() );
- }
- else if( NamedPropertyValuesContainer_getImplementationName().equalsAsciiL( pImplName, nImplNameLen ) )
- {
- xComponentFactory = ::cppu::createSingleComponentFactory(
- NamedPropertyValuesContainer_createInstance,
- NamedPropertyValuesContainer_getImplementationName(),
- NamedPropertyValuesContainer_getSupportedServiceNames() );
- }
- else if( AnyCompareFactory_getImplementationName().equalsAsciiL( pImplName, nImplNameLen ) )
- {
- xComponentFactory = ::cppu::createSingleComponentFactory(
- AnyCompareFactory_createInstance,
- AnyCompareFactory_getImplementationName(),
- AnyCompareFactory_getSupportedServiceNames() );
- }
- else if( OfficeInstallationDirectories_getImplementationName().equalsAsciiL( pImplName, nImplNameLen ) )
- {
- xComponentFactory = ::cppu::createSingleComponentFactory(
- OfficeInstallationDirectories_createInstance,
- OfficeInstallationDirectories_getImplementationName(),
- OfficeInstallationDirectories_getSupportedServiceNames() );
- }
- else if( OInstanceLocker::impl_staticGetImplementationName().equalsAsciiL( pImplName, nImplNameLen ) )
- {
- xComponentFactory = ::cppu::createSingleComponentFactory(
- OInstanceLocker::impl_staticCreateSelfInstance,
- OInstanceLocker::impl_staticGetImplementationName(),
- OInstanceLocker::impl_staticGetSupportedServiceNames() );
- }
- else if( SequenceInputStreamService_getImplementationName().equalsAsciiL( pImplName, nImplNameLen ) )
- {
- xComponentFactory = ::cppu::createSingleComponentFactory(
- SequenceInputStreamService_createInstance,
- SequenceInputStreamService_getImplementationName(),
- SequenceInputStreamService_getSupportedServiceNames() );
- }
- else if( comphelper::UNOMemoryStream_getImplementationName().equalsAsciiL( pImplName, nImplNameLen ) )
- {
- xComponentFactory = ::cppu::createSingleComponentFactory(
- comphelper::UNOMemoryStream_createInstance,
- comphelper::UNOMemoryStream_getImplementationName(),
- comphelper::UNOMemoryStream_getSupportedServiceNames() );
- }
- else if ( SequenceOutputStreamService_getImplementationName().equalsAsciiL( pImplName, nImplNameLen ) )
- {
- xComponentFactory = ::cppu::createSingleComponentFactory(
- SequenceOutputStreamService_createInstance,
- SequenceOutputStreamService_getImplementationName(),
- SequenceOutputStreamService_getSupportedServiceNames() );
- }
- else if ( PropertyBag_getImplementationName().equalsAsciiL( pImplName, nImplNameLen ) )
- {
- xComponentFactory = ::cppu::createSingleComponentFactory(
- PropertyBag_createInstance,
- PropertyBag_getImplementationName(),
- PropertyBag_getSupportedServiceNames() );
- }
-
- if( xComponentFactory.is())
- {
- xComponentFactory->acquire();
- pRet = xComponentFactory.get();
- }
- }
- return pRet;
-}
-
-}
diff --git a/comphelper/source/misc/instancelocker.cxx b/comphelper/source/misc/instancelocker.cxx
index 6046b7c5e6f5..11a590c618c3 100644
--- a/comphelper/source/misc/instancelocker.cxx
+++ b/comphelper/source/misc/instancelocker.cxx
@@ -30,6 +30,9 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_comphelper.hxx"
+
+#include "comphelper_module.hxx"
+
#include <com/sun/star/util/XCloseBroadcaster.hpp>
#include <com/sun/star/util/XCloseable.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
@@ -205,14 +208,14 @@ void SAL_CALL OInstanceLocker::initialize( const uno::Sequence< uno::Any >& aArg
::rtl::OUString SAL_CALL OInstanceLocker::getImplementationName( )
throw (uno::RuntimeException)
{
- return impl_staticGetImplementationName();
+ return getImplementationName_static();
}
// --------------------------------------------------------
::sal_Bool SAL_CALL OInstanceLocker::supportsService( const ::rtl::OUString& ServiceName )
throw (uno::RuntimeException)
{
- uno::Sequence< ::rtl::OUString > aSeq = impl_staticGetSupportedServiceNames();
+ uno::Sequence< ::rtl::OUString > aSeq = getSupportedServiceNames();
for ( sal_Int32 nInd = 0; nInd < aSeq.getLength(); nInd++ )
if ( ServiceName.compareTo( aSeq[nInd] ) == 0 )
@@ -225,25 +228,25 @@ void SAL_CALL OInstanceLocker::initialize( const uno::Sequence< uno::Any >& aArg
uno::Sequence< ::rtl::OUString > SAL_CALL OInstanceLocker::getSupportedServiceNames()
throw (uno::RuntimeException)
{
- return impl_staticGetSupportedServiceNames();
+ return getSupportedServiceNames_static();
}
// Static methods
// --------------------------------------------------------
-uno::Sequence< ::rtl::OUString > SAL_CALL OInstanceLocker::impl_staticGetSupportedServiceNames()
+uno::Sequence< ::rtl::OUString > SAL_CALL OInstanceLocker::getSupportedServiceNames_static()
{
const rtl::OUString aServiceName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.embed.InstanceLocker" ) );
return uno::Sequence< rtl::OUString >( &aServiceName, 1 );
}
// --------------------------------------------------------
-::rtl::OUString SAL_CALL OInstanceLocker::impl_staticGetImplementationName()
+::rtl::OUString SAL_CALL OInstanceLocker::getImplementationName_static()
{
return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.embed.InstanceLocker" ) );
}
// --------------------------------------------------------
-uno::Reference< uno::XInterface > SAL_CALL OInstanceLocker::impl_staticCreateSelfInstance(
+uno::Reference< uno::XInterface > SAL_CALL OInstanceLocker::Create(
const uno::Reference< uno::XComponentContext >& rxContext )
{
return static_cast< cppu::OWeakObject * >( new OInstanceLocker( rxContext ) );
@@ -506,3 +509,7 @@ sal_Bool OLockListener::Init()
return sal_True;
}
+void createRegistryInfo_OInstanceLocker()
+{
+ static ::comphelper::module::OAutoRegistration< OInstanceLocker > aAutoRegistration;
+}
diff --git a/comphelper/source/misc/instancelocker.hxx b/comphelper/source/misc/instancelocker.hxx
index 1f7d34a64652..637cc9fc4579 100644
--- a/comphelper/source/misc/instancelocker.hxx
+++ b/comphelper/source/misc/instancelocker.hxx
@@ -70,12 +70,12 @@ public:
~OInstanceLocker();
static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
- impl_staticGetSupportedServiceNames();
+ getSupportedServiceNames_static();
- static ::rtl::OUString SAL_CALL impl_staticGetImplementationName();
+ static ::rtl::OUString SAL_CALL getImplementationName_static();
static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
- impl_staticCreateSelfInstance(
+ Create(
const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext );
// XComponent
diff --git a/comphelper/source/misc/makefile.mk b/comphelper/source/misc/makefile.mk
index 2dc0955d68b6..2589c5dde6c1 100644
--- a/comphelper/source/misc/makefile.mk
+++ b/comphelper/source/misc/makefile.mk
@@ -58,9 +58,9 @@ SLOFILES= \
$(SLO)$/componentmodule.obj \
$(SLO)$/configurationhelper.obj \
$(SLO)$/documentinfo.obj \
- $(SLO)$/evtmethodhelper.obj \
+ $(SLO)$/evtmethodhelper.obj \
+ $(SLO)$/documentiologring.obj \
$(SLO)$/evtlistenerhlp.obj \
- $(SLO)$/facreg.obj \
$(SLO)$/ihwrapnofilter.obj \
$(SLO)$/instancelocker.obj \
$(SLO)$/interaction.obj \
@@ -90,6 +90,9 @@ SLOFILES= \
$(SLO)$/uieventslogger.obj \
$(SLO)$/weakeventlistener.obj \
$(SLO)$/weak.obj \
+ $(SLO)$/comphelper_module.obj \
+ $(SLO)$/comphelper_services.obj \
+ $(SLO)$/componentbase.obj \
# --- Targets ----------------------------------
diff --git a/comphelper/source/misc/string.cxx b/comphelper/source/misc/string.cxx
index 77a251372d85..e9437528b0de 100644
--- a/comphelper/source/misc/string.cxx
+++ b/comphelper/source/misc/string.cxx
@@ -36,10 +36,13 @@
#include <vector>
#include <algorithm>
-#include "comphelper/string.hxx"
-#include "rtl/ustring.hxx"
-#include "sal/types.h"
-#include "comphelper/stlunosequence.hxx"
+#include <rtl/ustring.hxx>
+#include <rtl/ustrbuf.hxx>
+#include <sal/types.h>
+
+#include <comphelper/string.hxx>
+#include <comphelper/stlunosequence.hxx>
+#include <comphelper/stl_types.hxx>
namespace comphelper { namespace string {
@@ -96,12 +99,12 @@ rtl::OUString searchAndReplaceAsciiL(
::rtl::OUString convertCommaSeparated(
::com::sun::star::uno::Sequence< ::rtl::OUString > const& i_rSeq)
{
- ::rtl::OUString ret;
- for (sal_Int32 i = 0; i < i_rSeq.getLength(); ++i) {
- if (i != 0) ret += ::rtl::OUString::createFromAscii(", ");
- ret += i_rSeq[i];
- }
- return ret;
+ ::rtl::OUStringBuffer buf;
+ ::comphelper::intersperse(
+ ::comphelper::stl_begin(i_rSeq), ::comphelper::stl_end(i_rSeq),
+ ::comphelper::OUStringBufferAppender(buf),
+ ::rtl::OUString::createFromAscii(", "));
+ return buf.makeStringAndClear();
}
::com::sun::star::uno::Sequence< ::rtl::OUString >
@@ -119,10 +122,6 @@ rtl::OUString searchAndReplaceAsciiL(
} while (idx >= 0);
::com::sun::star::uno::Sequence< ::rtl::OUString > kws(vec.size());
std::copy(vec.begin(), vec.end(), stl_begin(kws));
- /*
- for (size_t i = 0; i < vec.size(); ++i) {
- kws[i] = vec.at(i);
- }*/
return kws;
}
diff --git a/comphelper/source/misc/types.cxx b/comphelper/source/misc/types.cxx
index 2b20fd9acca3..2a9180c038b0 100644
--- a/comphelper/source/misc/types.cxx
+++ b/comphelper/source/misc/types.cxx
@@ -87,8 +87,7 @@ sal_Bool operator ==(const Time& _rLeft, const Time& _rRight)
sal_Int32 getINT32(const Any& _rAny)
{
sal_Int32 nReturn = 0;
- _rAny >>= nReturn;
-
+ OSL_VERIFY( _rAny >>= nReturn );
return nReturn;
}
@@ -96,7 +95,7 @@ sal_Int32 getINT32(const Any& _rAny)
sal_Int16 getINT16(const Any& _rAny)
{
sal_Int16 nReturn = 0;
- _rAny >>= nReturn;
+ OSL_VERIFY( _rAny >>= nReturn );
return nReturn;
}
@@ -104,7 +103,7 @@ sal_Int16 getINT16(const Any& _rAny)
double getDouble(const Any& _rAny)
{
double nReturn = 0.0;
- _rAny >>= nReturn;
+ OSL_VERIFY( _rAny >>= nReturn );
return nReturn;
}
@@ -112,7 +111,7 @@ double getDouble(const Any& _rAny)
float getFloat(const Any& _rAny)
{
float nReturn = 0.0;
- _rAny >>= nReturn;
+ OSL_VERIFY( _rAny >>= nReturn );
return nReturn;
}
@@ -120,7 +119,7 @@ float getFloat(const Any& _rAny)
::rtl::OUString getString(const Any& _rAny)
{
::rtl::OUString nReturn;
- _rAny >>= nReturn;
+ OSL_VERIFY( _rAny >>= nReturn );
return nReturn;
}
diff --git a/comphelper/source/misc/uieventslogger.cxx b/comphelper/source/misc/uieventslogger.cxx
index 3ff875a4e67d..a55d5b58854d 100644
--- a/comphelper/source/misc/uieventslogger.cxx
+++ b/comphelper/source/misc/uieventslogger.cxx
@@ -375,9 +375,10 @@ namespace comphelper
}
else
logdata[2] = UNKNOWN_ORIGIN;
- logdata[3] = url.Complete;
if(url.Complete.match(URL_FILE))
logdata[3] = URL_FILE;
+ else
+ logdata[3] = url.Main;
m_Logger->log(LogLevel::INFO, m_Formatter->formatMultiColumn(logdata));
m_SessionLogEventCount++;
}
diff --git a/comphelper/source/officeinstdir/officeinstallationdirectories.cxx b/comphelper/source/officeinstdir/officeinstallationdirectories.cxx
index 3c56d5479573..219e56ce1a37 100644
--- a/comphelper/source/officeinstdir/officeinstallationdirectories.cxx
+++ b/comphelper/source/officeinstdir/officeinstallationdirectories.cxx
@@ -31,6 +31,8 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_comphelper.hxx"
+#include "comphelper_module.hxx"
+
/**************************************************************************
TODO
**************************************************************************
@@ -51,53 +53,6 @@ using namespace comphelper;
// helpers
//=========================================================================
-uno::Sequence< rtl::OUString > SAL_CALL
-OfficeInstallationDirectories_getSupportedServiceNames()
- throw()
-{
- const rtl::OUString aServiceName(
- RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.util.OfficeInstallationDirectories" ) );
- return uno::Sequence< rtl::OUString >( &aServiceName, 1 );
-}
-
-//=========================================================================
-rtl::OUString SAL_CALL OfficeInstallationDirectories_getImplementationName()
- throw()
-{
- return rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.comp.util.OfficeInstallationDirectories" ) );
-}
-
-//=========================================================================
-rtl::OUString SAL_CALL OfficeInstallationDirectories_getSingletonName()
- throw()
-{
- return rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.util.theOfficeInstallationDirectories" ) );
-}
-
-//=========================================================================
-rtl::OUString SAL_CALL OfficeInstallationDirectories_getSingletonServiceName()
- throw()
-{
- return rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.util.OfficeInstallationDirectories" ) );
-}
-
-//=========================================================================
-uno::Reference< uno::XInterface > SAL_CALL
-OfficeInstallationDirectories_createInstance(
- const uno::Reference< uno::XComponentContext > & rxContext )
- throw( uno::Exception )
-{
- return static_cast< cppu::OWeakObject * >(
- new OfficeInstallationDirectories( rxContext ) );
-}
-
//=========================================================================
static bool makeCanonicalFileURL( rtl::OUString & rURL )
{
@@ -272,7 +227,7 @@ rtl::OUString SAL_CALL
OfficeInstallationDirectories::getImplementationName()
throw ( uno::RuntimeException )
{
- return OfficeInstallationDirectories_getImplementationName();
+ return getImplementationName_static();
}
//=========================================================================
@@ -282,7 +237,7 @@ OfficeInstallationDirectories::supportsService( const rtl::OUString& ServiceName
throw ( uno::RuntimeException )
{
const uno::Sequence< rtl::OUString > & aNames
- = OfficeInstallationDirectories_getSupportedServiceNames();
+ = getSupportedServiceNames();
const rtl::OUString * p = aNames.getConstArray();
for ( sal_Int32 nPos = 0; nPos < aNames.getLength(); nPos++ )
{
@@ -299,7 +254,47 @@ uno::Sequence< ::rtl::OUString > SAL_CALL
OfficeInstallationDirectories::getSupportedServiceNames()
throw ( uno::RuntimeException )
{
- return OfficeInstallationDirectories_getSupportedServiceNames();
+ return getSupportedServiceNames_static();
+}
+
+//=========================================================================
+// static
+rtl::OUString SAL_CALL
+OfficeInstallationDirectories::getImplementationName_static()
+{
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.comp.util.OfficeInstallationDirectories" ) );
+}
+
+//=========================================================================
+// static
+uno::Sequence< ::rtl::OUString > SAL_CALL
+OfficeInstallationDirectories::getSupportedServiceNames_static()
+{
+ const rtl::OUString aServiceName(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.util.OfficeInstallationDirectories" ) );
+ return uno::Sequence< rtl::OUString >( &aServiceName, 1 );
+}
+
+//=========================================================================
+// static
+rtl::OUString SAL_CALL OfficeInstallationDirectories::getSingletonName_static()
+{
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.util.theOfficeInstallationDirectories" ) );
+}
+
+//=========================================================================
+// static
+uno::Reference< uno::XInterface > SAL_CALL
+OfficeInstallationDirectories::Create(
+ const uno::Reference< uno::XComponentContext > & rxContext )
+{
+ return static_cast< cppu::OWeakObject * >(
+ new OfficeInstallationDirectories( rxContext ) );
}
//=========================================================================
@@ -352,3 +347,7 @@ void OfficeInstallationDirectories::initDirs()
}
}
+void createRegistryInfo_OfficeInstallationDirectories()
+{
+ static ::comphelper::module::OSingletonRegistration< OfficeInstallationDirectories > aAutoRegistration;
+}
diff --git a/comphelper/source/officeinstdir/officeinstallationdirectories.hxx b/comphelper/source/officeinstdir/officeinstallationdirectories.hxx
index c829bcdc517c..52dcd38d564a 100644
--- a/comphelper/source/officeinstdir/officeinstallationdirectories.hxx
+++ b/comphelper/source/officeinstdir/officeinstallationdirectories.hxx
@@ -84,6 +84,16 @@ public:
getSupportedServiceNames()
throw (::com::sun::star::uno::RuntimeException);
+ // XServiceInfo - static versions (used for component registration)
+ static ::rtl::OUString SAL_CALL
+ getImplementationName_static();
+ static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
+ getSupportedServiceNames_static();
+ static ::rtl::OUString SAL_CALL
+ getSingletonName_static();
+ static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL
+ Create( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& );
+
private:
void initDirs();
diff --git a/comphelper/source/processfactory/processfactory.cxx b/comphelper/source/processfactory/processfactory.cxx
index 0f50f4a4cb01..c4eac583e3c0 100644
--- a/comphelper/source/processfactory/processfactory.cxx
+++ b/comphelper/source/processfactory/processfactory.cxx
@@ -98,24 +98,30 @@ Reference< XInterface > createProcessComponentWithArguments( const ::rtl::OUStri
return xComponent;
}
-} // namesapce comphelper
-
-extern "C" {
-uno::XComponentContext * comphelper_getProcessComponentContext()
+Reference< XComponentContext > getProcessComponentContext()
{
- uno::Reference<uno::XComponentContext> xRet;
+ Reference< XComponentContext > xRet;
uno::Reference<beans::XPropertySet> const xProps(
comphelper::getProcessServiceFactory(), uno::UNO_QUERY );
if (xProps.is()) {
try {
- xRet.set( xProps->getPropertyValue(
- rtl::OUString(
+ xRet.set( xProps->getPropertyValue( rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("DefaultContext") ) ),
uno::UNO_QUERY );
}
catch (beans::UnknownPropertyException const&) {
}
}
+ return xRet;
+}
+
+} // namespace comphelper
+
+extern "C" {
+uno::XComponentContext * comphelper_getProcessComponentContext()
+{
+ uno::Reference<uno::XComponentContext> xRet;
+ xRet = ::comphelper::getProcessComponentContext();
if (xRet.is())
xRet->acquire();
return xRet.get();
diff --git a/comphelper/source/property/opropertybag.cxx b/comphelper/source/property/opropertybag.cxx
index e7b14795186e..8b816e8c1ce9 100644
--- a/comphelper/source/property/opropertybag.cxx
+++ b/comphelper/source/property/opropertybag.cxx
@@ -32,9 +32,11 @@
#include "precompiled_comphelper.hxx"
#include "opropertybag.hxx"
+#include "comphelper_module.hxx"
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/beans/NamedValue.hpp>
+#include <com/sun/star/beans/Property.hpp>
#include <comphelper/namedvaluecollection.hxx>
@@ -46,28 +48,11 @@
//--------------------------------------------------------------------------
-#if 0
-extern "C" void SAL_CALL createRegistryInfo_OPropertyBag()
-{
- static ::comphelper::OAutoRegistration< ::comphelper::OPropertyBag > aAutoRegistration;
-}
-#endif
-
using namespace ::com::sun::star;
-uno::Sequence< ::rtl::OUString > SAL_CALL PropertyBag_getSupportedServiceNames() throw()
-{
- return ::comphelper::OPropertyBag::getSupportedServiceNames_static();
-}
-
-::rtl::OUString SAL_CALL PropertyBag_getImplementationName() throw()
+void createRegistryInfo_OPropertyBag()
{
- return ::comphelper::OPropertyBag::getImplementationName_static();
-}
-
-uno::Reference< uno::XInterface > SAL_CALL PropertyBag_createInstance(const uno::Reference< uno::XComponentContext >& rxContext) throw( uno::Exception )
-{
- return ::comphelper::OPropertyBag::Create( rxContext );
+ static ::comphelper::module::OAutoRegistration< ::comphelper::OPropertyBag > aAutoRegistration;
}
//........................................................................
@@ -79,6 +64,7 @@ namespace comphelper
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::util;
+ using namespace ::com::sun::star::container;
//====================================================================
//= OPropertyBag
@@ -238,6 +224,73 @@ namespace comphelper
}
//--------------------------------------------------------------------
+ ::sal_Bool SAL_CALL OPropertyBag::has( const Any& /*aElement*/ ) throw (RuntimeException)
+ {
+ // XSet is only a workaround for addProperty not being able to add default-void properties.
+ // So, everything of XSet except insert is implemented empty
+ return sal_False;
+ }
+
+ //--------------------------------------------------------------------
+ void SAL_CALL OPropertyBag::insert( const Any& _element ) throw (IllegalArgumentException, ElementExistException, RuntimeException)
+ {
+ // This is a workaround for addProperty not being able to add default-void properties.
+ // If we ever have a smarter XPropertyContainer::addProperty interface, we can remove this, ehm, well, hack.
+ Property aProperty;
+ if ( !( _element >>= aProperty ) )
+ throw IllegalArgumentException( ::rtl::OUString(), *this, 1 );
+
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ // check whether the type is allowed, everything else will be checked
+ // by m_aDynamicProperties
+ if ( !m_aAllowedTypes.empty()
+ && m_aAllowedTypes.find( aProperty.Type ) == m_aAllowedTypes.end()
+ )
+ throw IllegalTypeException( ::rtl::OUString(), *this );
+
+ m_aDynamicProperties.addVoidProperty( aProperty.Name, aProperty.Type, findFreeHandle(), aProperty.Attributes );
+
+ // our property info is dirty
+ m_pArrayHelper.reset();
+
+ setModified(sal_True);
+ }
+
+ //--------------------------------------------------------------------
+ void SAL_CALL OPropertyBag::remove( const Any& /*aElement*/ ) throw (IllegalArgumentException, NoSuchElementException, RuntimeException)
+ {
+ // XSet is only a workaround for addProperty not being able to add default-void properties.
+ // So, everything of XSet except insert is implemented empty
+ throw NoSuchElementException( ::rtl::OUString(), *this );
+ }
+
+
+ //--------------------------------------------------------------------
+ Reference< XEnumeration > SAL_CALL OPropertyBag::createEnumeration( ) throw (RuntimeException)
+ {
+ // XSet is only a workaround for addProperty not being able to add default-void properties.
+ // So, everything of XSet except insert is implemented empty
+ return NULL;
+ }
+
+ //--------------------------------------------------------------------
+ Type SAL_CALL OPropertyBag::getElementType( ) throw (RuntimeException)
+ {
+ // XSet is only a workaround for addProperty not being able to add default-void properties.
+ // So, everything of XSet except insert is implemented empty
+ return Type();
+ }
+
+ //--------------------------------------------------------------------
+ ::sal_Bool SAL_CALL OPropertyBag::hasElements( ) throw (RuntimeException)
+ {
+ // XSet is only a workaround for addProperty not being able to add default-void properties.
+ // So, everything of XSet except insert is implemented empty
+ return sal_False;
+ }
+
+ //--------------------------------------------------------------------
void SAL_CALL OPropertyBag::getFastPropertyValue( Any& _rValue, sal_Int32 _nHandle ) const
{
m_aDynamicProperties.getFastPropertyValue( _nHandle, _rValue );
diff --git a/comphelper/source/property/opropertybag.hxx b/comphelper/source/property/opropertybag.hxx
index 7acc0f451c4e..47e5816b3484 100644
--- a/comphelper/source/property/opropertybag.hxx
+++ b/comphelper/source/property/opropertybag.hxx
@@ -40,9 +40,10 @@
#include <com/sun/star/beans/XPropertyContainer.hpp>
#include <com/sun/star/beans/XPropertyAccess.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
+#include <com/sun/star/container/XSet.hpp>
/** === end UNO includes === **/
-#include <cppuhelper/implbase5.hxx>
+#include <cppuhelper/implbase6.hxx>
#include <comphelper/propstate.hxx>
#include <comphelper/broadcasthelper.hxx>
#include <comphelper/propertybag.hxx>
@@ -75,11 +76,12 @@ namespace comphelper
//====================================================================
//= OPropertyBag
//====================================================================
- typedef ::cppu::WeakAggImplHelper5 < ::com::sun::star::beans::XPropertyContainer
+ typedef ::cppu::WeakAggImplHelper6 < ::com::sun::star::beans::XPropertyContainer
, ::com::sun::star::beans::XPropertyAccess
, ::com::sun::star::util::XModifiable
, ::com::sun::star::lang::XServiceInfo
, ::com::sun::star::lang::XInitialization
+ , ::com::sun::star::container::XSet
> OPropertyBag_Base;
typedef ::comphelper::OPropertyStateHelper OPropertyBag_PBase;
@@ -157,6 +159,18 @@ namespace comphelper
// XPropertySet
virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XSet
+ virtual ::sal_Bool SAL_CALL has( const ::com::sun::star::uno::Any& aElement ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL insert( const ::com::sun::star::uno::Any& aElement ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::ElementExistException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL remove( const ::com::sun::star::uno::Any& aElement ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::uno::RuntimeException);
+
+ // XEnumerationAccess (base of XSet)
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createEnumeration( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XElementAccess (basf of XEnumerationAccess
+ virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::sal_Bool SAL_CALL hasElements( ) throw (::com::sun::star::uno::RuntimeException);
/** === UNO interface implementations == **/
// XPropertyState
diff --git a/comphelper/source/property/property.cxx b/comphelper/source/property/property.cxx
index 82e38d49c433..fe6cbaa9d767 100644
--- a/comphelper/source/property/property.cxx
+++ b/comphelper/source/property/property.cxx
@@ -97,8 +97,12 @@ void copyProperties(const Reference<XPropertySet>& _rxSource,
try
{
aDestProp = xDestProps->getPropertyByName(pSourceProps->Name);
- if (0 == (aDestProp.Attributes & PropertyAttribute::READONLY))
- _rxDest->setPropertyValue(pSourceProps->Name, _rxSource->getPropertyValue(pSourceProps->Name));
+ if (0 == (aDestProp.Attributes & PropertyAttribute::READONLY) )
+ {
+ const Any aSourceValue = _rxSource->getPropertyValue(pSourceProps->Name);
+ if ( 0 != (aDestProp.Attributes & PropertyAttribute::MAYBEVOID) || aSourceValue.hasValue() )
+ _rxDest->setPropertyValue(pSourceProps->Name, aSourceValue);
+ }
}
catch (Exception&)
{
diff --git a/comphelper/source/property/propertybag.cxx b/comphelper/source/property/propertybag.cxx
index 91c104b119f2..383e1cc2c5aa 100644
--- a/comphelper/source/property/propertybag.cxx
+++ b/comphelper/source/property/propertybag.cxx
@@ -91,6 +91,54 @@ namespace comphelper
}
//--------------------------------------------------------------------
+ namespace
+ {
+ void lcl_checkForEmptyName( const bool _allowEmpty, const ::rtl::OUString& _name )
+ {
+ if ( !_allowEmpty && !_name.getLength() )
+ throw IllegalArgumentException(
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "The property name must not be empty." ) ),
+ // TODO: resource
+ NULL,
+ 1
+ );
+ }
+
+ void lcl_checkNameAndHandle( const ::rtl::OUString& _name, const sal_Int32 _handle, const PropertyBag& _container )
+ {
+ if ( _container.hasPropertyByName( _name ) || _container.hasPropertyByHandle( _handle ) )
+ throw PropertyExistException(
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Property name or handle already used." ) ),
+ // TODO: resource
+ NULL );
+
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void PropertyBag::addVoidProperty( const ::rtl::OUString& _rName, const Type& _rType, sal_Int32 _nHandle, sal_Int32 _nAttributes )
+ {
+ if ( _rType.getTypeClass() == TypeClass_VOID )
+ throw IllegalArgumentException(
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Illegal property type: VOID" ) ),
+ // TODO: resource
+ NULL,
+ 1
+ );
+
+ // check name/handle sanity
+ lcl_checkForEmptyName( m_pImpl->m_bAllowEmptyPropertyName, _rName );
+ lcl_checkNameAndHandle( _rName, _nHandle, *this );
+
+ // register the property
+ OSL_ENSURE( _nAttributes & PropertyAttribute::MAYBEVOID, "PropertyBag::addVoidProperty: this is for default-void properties only!" );
+ registerPropertyNoMember( _rName, _nHandle, _nAttributes | PropertyAttribute::MAYBEVOID, _rType, NULL );
+
+ // remember the default
+ m_pImpl->aDefaults.insert( MapInt2Any::value_type( _nHandle, Any() ) );
+ }
+
+ //--------------------------------------------------------------------
void PropertyBag::addProperty( const ::rtl::OUString& _rName, sal_Int32 _nHandle, sal_Int32 _nAttributes, const Any& _rInitialValue )
{
// check type sanity
@@ -102,17 +150,8 @@ namespace comphelper
NULL );
// check name/handle sanity
- if ( !m_pImpl->m_bAllowEmptyPropertyName && !_rName.getLength() )
- throw IllegalArgumentException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "The property name must not be empty." ) ),
- // TODO: resource
- NULL,
- 1 );
- if ( isRegisteredProperty( _rName ) || isRegisteredProperty( _nHandle ) )
- throw PropertyExistException(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Property name or handle already used." ) ),
- // TODO: resource
- NULL );
+ lcl_checkForEmptyName( m_pImpl->m_bAllowEmptyPropertyName, _rName );
+ lcl_checkNameAndHandle( _rName, _nHandle, *this );
// register the property
registerPropertyNoMember( _rName, _nHandle, _nAttributes, aPropertyType,
@@ -129,10 +168,11 @@ namespace comphelper
// will throw an UnknownPropertyException if necessary
if ( ( rProp.Attributes & PropertyAttribute::REMOVEABLE ) == 0 )
throw NotRemoveableException( ::rtl::OUString(), NULL );
+ const sal_Int32 nHandle = rProp.Handle;
- revokeProperty( rProp.Handle );
+ revokeProperty( nHandle );
- m_pImpl->aDefaults.erase( rProp.Handle );
+ m_pImpl->aDefaults.erase( nHandle );
}
//--------------------------------------------------------------------
diff --git a/comphelper/source/property/propertycontainerhelper.cxx b/comphelper/source/property/propertycontainerhelper.cxx
index 9d1662d1ecf2..7f5db1d6cf7e 100644
--- a/comphelper/source/property/propertycontainerhelper.cxx
+++ b/comphelper/source/property/propertycontainerhelper.cxx
@@ -76,12 +76,12 @@ namespace
// comparing two property descriptions (by name)
struct PropertyDescriptionNameMatch : public ::std::unary_function< PropertyDescription, bool >
{
- const ::rtl::OUString& m_rCompare;
+ ::rtl::OUString m_rCompare;
PropertyDescriptionNameMatch( const ::rtl::OUString& _rCompare ) : m_rCompare( _rCompare ) { }
bool operator() (const PropertyDescription& x ) const
{
- return x.aProperty.Name == m_rCompare;
+ return x.aProperty.Name.equals(m_rCompare);
}
};
}
diff --git a/comphelper/source/streaming/memorystream.cxx b/comphelper/source/streaming/memorystream.cxx
index 5abbb352b14c..a2baef21010e 100644
--- a/comphelper/source/streaming/memorystream.cxx
+++ b/comphelper/source/streaming/memorystream.cxx
@@ -31,17 +31,20 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_comphelper.hxx"
+#include "comphelper_module.hxx"
+
#include <com/sun/star/io/XStream.hpp>
#include <com/sun/star/io/XSeekableInputStream.hpp>
+#include <com/sun/star/io/XTruncate.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
-#include <cppuhelper/implbase3.hxx>
+#include <cppuhelper/implbase4.hxx>
#include <string.h>
#include <vector>
using ::rtl::OUString;
using ::cppu::OWeakObject;
-using ::cppu::WeakImplHelper3;
+using ::cppu::WeakImplHelper4;
using namespace ::com::sun::star::io;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
@@ -50,7 +53,7 @@ using namespace ::osl;
namespace comphelper
{
-class UNOMemoryStream : public WeakImplHelper3 < XStream, XSeekableInputStream, XOutputStream >
+class UNOMemoryStream : public WeakImplHelper4 < XStream, XSeekableInputStream, XOutputStream, XTruncate >
{
public:
UNOMemoryStream();
@@ -77,6 +80,14 @@ public:
virtual void SAL_CALL flush() throw (NotConnectedException, BufferSizeExceededException, IOException, RuntimeException);
virtual void SAL_CALL closeOutput() throw (NotConnectedException, BufferSizeExceededException, IOException, RuntimeException);
+ // XTruncate
+ virtual void SAL_CALL truncate() throw (::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo - static versions (used for component registration)
+ static ::rtl::OUString SAL_CALL getImplementationName_static();
+ static Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_static();
+ static Reference< XInterface > SAL_CALL Create( const Reference< ::com::sun::star::uno::XComponentContext >& );
+
private:
std::vector< sal_Int8 > maData;
sal_Int32 mnCursor;
@@ -109,8 +120,7 @@ sal_Int32 SAL_CALL UNOMemoryStream::readBytes( Sequence< sal_Int8 >& aData, sal_
throw IOException();
nBytesToRead = std::min( nBytesToRead, available() );
- if( aData.getLength() < nBytesToRead )
- aData.realloc( nBytesToRead );
+ aData.realloc( nBytesToRead );
if( nBytesToRead )
{
@@ -150,9 +160,16 @@ void SAL_CALL UNOMemoryStream::closeInput() throw (NotConnectedException, IOExce
// XSeekable
void SAL_CALL UNOMemoryStream::seek( sal_Int64 location ) throw (IllegalArgumentException, IOException, RuntimeException)
{
- if( (location < 0) || (location > SAL_MAX_INT32) || (location > static_cast< sal_Int64 >( maData.size() )) )
+ if( (location < 0) || (location > SAL_MAX_INT32) )
throw IllegalArgumentException( OUString(RTL_CONSTASCII_USTRINGPARAM("this implementation does not support more than 2GB!")), Reference< XInterface >(static_cast<OWeakObject*>(this)), 0 );
+ // seek operation should be able to resize the stream
+ if ( location > static_cast< sal_Int64 >( maData.size() ) )
+ maData.resize( static_cast< sal_Int32 >( location ) );
+
+ if ( location > static_cast< sal_Int64 >( maData.size() ) )
+ maData.resize( static_cast< sal_Int32 >( location ) );
+
mnCursor = static_cast< sal_Int32 >( location );
}
@@ -199,22 +216,35 @@ void SAL_CALL UNOMemoryStream::closeOutput() throw (NotConnectedException, Buffe
mnCursor = 0;
}
-OUString SAL_CALL UNOMemoryStream_getImplementationName() throw()
+//XTruncate
+void SAL_CALL UNOMemoryStream::truncate() throw (IOException, RuntimeException)
+{
+ maData.resize( 0 );
+ mnCursor = 0;
+}
+
+::rtl::OUString SAL_CALL UNOMemoryStream::getImplementationName_static()
{
static const OUString sImplName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.MemoryStream" ) );
return sImplName;
}
-Sequence< OUString > SAL_CALL UNOMemoryStream_getSupportedServiceNames() throw()
+Sequence< ::rtl::OUString > SAL_CALL UNOMemoryStream::getSupportedServiceNames_static()
{
Sequence< OUString > aSeq(1);
- aSeq[0] = UNOMemoryStream_getImplementationName();
+ aSeq[0] = getImplementationName_static();
return aSeq;
}
-Reference< XInterface > SAL_CALL UNOMemoryStream_createInstance(const Reference< XComponentContext > & ) throw( Exception )
+Reference< XInterface > SAL_CALL UNOMemoryStream::Create(
+ const Reference< XComponentContext >& )
{
return static_cast<OWeakObject*>(new UNOMemoryStream());
}
} // namespace comphelper
+
+void createRegistryInfo_UNOMemoryStream()
+{
+ static ::comphelper::module::OAutoRegistration< ::comphelper::UNOMemoryStream > aAutoRegistration;
+}
diff --git a/comphelper/source/streaming/seqinputstreamserv.cxx b/comphelper/source/streaming/seqinputstreamserv.cxx
index b10b38dda05a..af7d9fcf44dd 100644
--- a/comphelper/source/streaming/seqinputstreamserv.cxx
+++ b/comphelper/source/streaming/seqinputstreamserv.cxx
@@ -31,6 +31,8 @@
// MARKER( update_precomp.py ): autogen include statement, do not remove
#include "precompiled_comphelper.hxx"
+#include "comphelper_module.hxx"
+
#include <sal/config.h>
#include <osl/mutex.hxx>
#include <cppuhelper/factory.hxx>
@@ -46,11 +48,6 @@
using namespace ::com::sun::star;
-::rtl::OUString SAL_CALL SequenceInputStreamService_getImplementationName();
-uno::Sequence< ::rtl::OUString > SAL_CALL SequenceInputStreamService_getSupportedServiceNames();
-uno::Reference< uno::XInterface > SAL_CALL SequenceInputStreamService_createInstance( const uno::Reference< uno::XComponentContext > & rxContext ) SAL_THROW( (uno::Exception ) );
-
-
namespace {
class SequenceInputStreamService:
@@ -67,6 +64,11 @@ public:
virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString & ServiceName ) throw ( uno::RuntimeException );
virtual uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw ( uno::RuntimeException );
+ // XServiceInfo - static versions (used for component registration)
+ static ::rtl::OUString SAL_CALL getImplementationName_static();
+ static uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_static();
+ static uno::Reference< uno::XInterface > SAL_CALL Create( const uno::Reference< uno::XComponentContext >& );
+
// ::com::sun::star::io::XInputStream:
virtual ::sal_Int32 SAL_CALL readBytes( uno::Sequence< ::sal_Int8 > & aData, ::sal_Int32 nBytesToRead ) throw ( uno::RuntimeException, io::NotConnectedException, io::BufferSizeExceededException, io::IOException );
virtual ::sal_Int32 SAL_CALL readSomeBytes( uno::Sequence< ::sal_Int8 > & aData, ::sal_Int32 nMaxBytesToRead ) throw ( uno::RuntimeException, io::NotConnectedException, io::BufferSizeExceededException, io::IOException );
@@ -102,12 +104,17 @@ SequenceInputStreamService::SequenceInputStreamService()
// com.sun.star.uno.XServiceInfo:
::rtl::OUString SAL_CALL SequenceInputStreamService::getImplementationName() throw ( uno::RuntimeException )
{
- return SequenceInputStreamService_getImplementationName();
+ return getImplementationName_static();
+}
+
+::rtl::OUString SAL_CALL SequenceInputStreamService::getImplementationName_static()
+{
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.SequenceInputStreamService" ) );
}
::sal_Bool SAL_CALL SequenceInputStreamService::supportsService( ::rtl::OUString const & serviceName ) throw ( uno::RuntimeException )
{
- uno::Sequence< ::rtl::OUString > serviceNames = SequenceInputStreamService_getSupportedServiceNames();
+ uno::Sequence< ::rtl::OUString > serviceNames = getSupportedServiceNames();
for ( ::sal_Int32 i = 0; i < serviceNames.getLength(); ++i ) {
if ( serviceNames[i] == serviceName )
return sal_True;
@@ -117,7 +124,21 @@ SequenceInputStreamService::SequenceInputStreamService()
uno::Sequence< ::rtl::OUString > SAL_CALL SequenceInputStreamService::getSupportedServiceNames() throw ( uno::RuntimeException )
{
- return SequenceInputStreamService_getSupportedServiceNames();
+ return getSupportedServiceNames_static();
+}
+
+uno::Sequence< ::rtl::OUString > SAL_CALL SequenceInputStreamService::getSupportedServiceNames_static()
+{
+ uno::Sequence< ::rtl::OUString > s( 1 );
+ s[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.io.SequenceInputStream" ) );
+ return s;
+}
+
+uno::Reference< uno::XInterface > SAL_CALL SequenceInputStreamService::Create(
+ const uno::Reference< uno::XComponentContext >& )
+{
+ return static_cast< ::cppu::OWeakObject * >( new SequenceInputStreamService() );
}
// ::com::sun::star::io::XInputStream:
@@ -227,23 +248,7 @@ void SAL_CALL SequenceInputStreamService::initialize( const uno::Sequence< ::com
} // anonymous namespace
-::rtl::OUString SAL_CALL SequenceInputStreamService_getImplementationName() {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.comp.SequenceInputStreamService" ) );
-}
-
-uno::Sequence< ::rtl::OUString > SAL_CALL SequenceInputStreamService_getSupportedServiceNames()
+void createRegistryInfo_SequenceInputStream()
{
- uno::Sequence< ::rtl::OUString > s( 1 );
- s[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.io.SequenceInputStream" ) );
- return s;
+ static ::comphelper::module::OAutoRegistration< SequenceInputStreamService > aAutoRegistration;
}
-
-uno::Reference< uno::XInterface > SAL_CALL SequenceInputStreamService_createInstance(
- const uno::Reference< uno::XComponentContext >& )
- SAL_THROW( (uno::Exception ) )
-{
- return static_cast< ::cppu::OWeakObject * >( new SequenceInputStreamService() );
-}
-
diff --git a/comphelper/source/streaming/seqoutputstreamserv.cxx b/comphelper/source/streaming/seqoutputstreamserv.cxx
index 1334412f941d..63ff63321f2e 100644
--- a/comphelper/source/streaming/seqoutputstreamserv.cxx
+++ b/comphelper/source/streaming/seqoutputstreamserv.cxx
@@ -30,6 +30,8 @@
#include "precompiled_comphelper.hxx"
+#include "comphelper_module.hxx"
+
#include <sal/config.h>
#include <osl/mutex.hxx>
#include <cppuhelper/factory.hxx>
@@ -43,11 +45,6 @@
using namespace ::com::sun::star;
-::rtl::OUString SAL_CALL SequenceOutputStreamService_getImplementationName();
-uno::Sequence< ::rtl::OUString > SAL_CALL SequenceOutputStreamService_getSupportedServiceNames();
-uno::Reference< uno::XInterface > SAL_CALL SequenceOutputStreamService_createInstance( const uno::Reference< uno::XComponentContext >& rxContext )SAL_THROW((uno::Exception));
-
-
namespace {
class SequenceOutputStreamService:
@@ -61,6 +58,11 @@ public:
virtual ::sal_Bool SAL_CALL supportsService( const ::rtl::OUString & ServiceName ) throw ( uno::RuntimeException );
virtual uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw ( uno::RuntimeException );
+ // XServiceInfo - static versions (used for component registration)
+ static ::rtl::OUString SAL_CALL getImplementationName_static();
+ static uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_static();
+ static uno::Reference< uno::XInterface > SAL_CALL Create( const uno::Reference< uno::XComponentContext >& );
+
// ::com::sun::star::io::XOutputStream:
virtual void SAL_CALL writeBytes( const uno::Sequence< ::sal_Int8 > & aData ) throw ( io::NotConnectedException, io::BufferSizeExceededException, io::IOException, uno::RuntimeException );
virtual void SAL_CALL flush() throw ( uno::RuntimeException, io::NotConnectedException, io::BufferSizeExceededException, io::IOException );
@@ -88,12 +90,17 @@ SequenceOutputStreamService::SequenceOutputStreamService()
// com.sun.star.uno.XServiceInfo:
::rtl::OUString SAL_CALL SequenceOutputStreamService::getImplementationName() throw ( uno::RuntimeException )
{
- return SequenceOutputStreamService_getImplementationName();
+ return getImplementationName_static();
+}
+
+::rtl::OUString SAL_CALL SequenceOutputStreamService::getImplementationName_static()
+{
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.SequenceOutputStreamService" ) );
}
::sal_Bool SAL_CALL SequenceOutputStreamService::supportsService( ::rtl::OUString const & serviceName ) throw ( uno::RuntimeException )
{
- uno::Sequence< ::rtl::OUString > serviceNames = SequenceOutputStreamService_getSupportedServiceNames();
+ uno::Sequence< ::rtl::OUString > serviceNames = getSupportedServiceNames();
for ( ::sal_Int32 i = 0; i < serviceNames.getLength(); ++i ) {
if ( serviceNames[i] == serviceName )
return sal_True;
@@ -103,7 +110,20 @@ SequenceOutputStreamService::SequenceOutputStreamService()
uno::Sequence< ::rtl::OUString > SAL_CALL SequenceOutputStreamService::getSupportedServiceNames() throw ( uno::RuntimeException )
{
- return SequenceOutputStreamService_getSupportedServiceNames();
+ return getSupportedServiceNames_static();
+}
+
+uno::Sequence< ::rtl::OUString > SAL_CALL SequenceOutputStreamService::getSupportedServiceNames_static()
+{
+ uno::Sequence< ::rtl::OUString > s( 1 );
+ s[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.SequenceOutputStream" ) );
+ return s;
+}
+
+uno::Reference< uno::XInterface > SAL_CALL SequenceOutputStreamService::Create(
+ const uno::Reference< uno::XComponentContext >& )
+{
+ return static_cast< ::cppu::OWeakObject * >( new SequenceOutputStreamService());
}
// ::com::sun::star::io::XOutputStream:
@@ -149,23 +169,7 @@ uno::Sequence< ::sal_Int8 > SAL_CALL SequenceOutputStreamService::getWrittenByte
} // anonymous namespace
-::rtl::OUString SAL_CALL SequenceOutputStreamService_getImplementationName() {
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.comp.SequenceOutputStreamService" ) );
-}
-
-uno::Sequence< ::rtl::OUString > SAL_CALL SequenceOutputStreamService_getSupportedServiceNames()
+void createRegistryInfo_SequenceOutputStream()
{
- uno::Sequence< ::rtl::OUString > s( 1 );
- s[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.io.SequenceOutputStream" ) );
- return s;
+ static ::comphelper::module::OAutoRegistration< SequenceOutputStreamService > aAutoRegistration;
}
-
-uno::Reference< uno::XInterface > SAL_CALL SequenceOutputStreamService_createInstance(
- const uno::Reference< uno::XComponentContext >& )
- SAL_THROW( (uno::Exception) )
-{
- return static_cast< ::cppu::OWeakObject * >( new SequenceOutputStreamService());
-}
-
diff --git a/comphelper/source/xml/attributelist.cxx b/comphelper/source/xml/attributelist.cxx
index 89a5dd3855d8..b0f245afdefb 100644
--- a/comphelper/source/xml/attributelist.cxx
+++ b/comphelper/source/xml/attributelist.cxx
@@ -74,10 +74,7 @@ sal_Int16 SAL_CALL AttributeList::getLength(void) throw( ::com::sun::star::uno::
OUString SAL_CALL AttributeList::getNameByIndex(sal_Int16 i) throw( ::com::sun::star::uno::RuntimeException )
{
- if( i < static_cast < sal_Int16 > (m_pImpl->vecAttribute.size()) ) {
- return m_pImpl->vecAttribute[i].sName;
- }
- return OUString();
+ return ( i < static_cast < sal_Int16 > (m_pImpl->vecAttribute.size()) ) ? m_pImpl->vecAttribute[i].sName : OUString();
}
OUString SAL_CALL AttributeList::getTypeByIndex(sal_Int16 i) throw( ::com::sun::star::uno::RuntimeException )
@@ -90,11 +87,7 @@ OUString SAL_CALL AttributeList::getTypeByIndex(sal_Int16 i) throw( ::com::sun::
OUString SAL_CALL AttributeList::getValueByIndex(sal_Int16 i) throw( ::com::sun::star::uno::RuntimeException )
{
- if( i < static_cast < sal_Int16 > (m_pImpl->vecAttribute.size() ) ) {
- return m_pImpl->vecAttribute[i].sValue;
- }
- return OUString();
-
+ return ( i < static_cast < sal_Int16 > (m_pImpl->vecAttribute.size() ) ) ? m_pImpl->vecAttribute[i].sValue : OUString();
}
OUString SAL_CALL AttributeList::getTypeByName( const OUString& sName ) throw( ::com::sun::star::uno::RuntimeException )
diff --git a/comphelper/util/makefile.mk b/comphelper/util/makefile.mk
index 49b7cf6e9168..74122a0f4e2a 100644
--- a/comphelper/util/makefile.mk
+++ b/comphelper/util/makefile.mk
@@ -55,7 +55,6 @@ SHL1TARGET=comph$(COMPHLP_MAJOR)
.ENDIF
SHL1STDLIBS= \
$(SALLIB) \
- $(SALHELPERLIB) \
$(CPPUHELPERLIB) \
$(CPPULIB) \
$(UCBHELPERLIB) \
diff --git a/cppcanvas/source/mtfrenderer/implrenderer.cxx b/cppcanvas/source/mtfrenderer/implrenderer.cxx
index acf858536f9b..6269cfb11ef4 100644
--- a/cppcanvas/source/mtfrenderer/implrenderer.cxx
+++ b/cppcanvas/source/mtfrenderer/implrenderer.cxx
@@ -1870,8 +1870,16 @@ namespace cppcanvas
::vcl::unotools::xBitmapFromBitmapEx(
rCanvas->getUNOCanvas()->getDevice(),
aBmpEx );
- aTexture.RepeatModeX = rendering::TexturingMode::REPEAT;
- aTexture.RepeatModeY = rendering::TexturingMode::REPEAT;
+ if( aFill.isTiling() )
+ {
+ aTexture.RepeatModeX = rendering::TexturingMode::REPEAT;
+ aTexture.RepeatModeY = rendering::TexturingMode::REPEAT;
+ }
+ else
+ {
+ aTexture.RepeatModeX = rendering::TexturingMode::CLAMP;
+ aTexture.RepeatModeY = rendering::TexturingMode::CLAMP;
+ }
::PolyPolygon aPath;
aFill.getPath( aPath );
diff --git a/cppcanvas/util/makefile.mk b/cppcanvas/util/makefile.mk
index ca73e9a2ab58..a5ac026e262c 100644
--- a/cppcanvas/util/makefile.mk
+++ b/cppcanvas/util/makefile.mk
@@ -52,6 +52,10 @@ SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
SHL1IMPLIB= i$(TARGET)
SHL1STDLIBS= $(TOOLSLIB) $(CPPULIB) $(SALLIB) $(VCLLIB) $(COMPHELPERLIB) $(CANVASTOOLSLIB) $(CPPUHELPERLIB) $(BASEGFXLIB)
+.IF "$(debug)$(dbgutil)"!=""
+SHL1STDLIBS += $(CPPUHELPERLIB)
+.ENDIF # "$(debug)$(dbgutil)"!=""
+
SHL1LIBS= $(SLB)$/$(TARGET).lib
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
diff --git a/dtrans/source/X11/X11_droptarget.cxx b/dtrans/source/X11/X11_droptarget.cxx
index 501eff09ead8..4f71a0507790 100644
--- a/dtrans/source/X11/X11_droptarget.cxx
+++ b/dtrans/source/X11/X11_droptarget.cxx
@@ -143,15 +143,13 @@ void DropTarget::setDefaultActions( sal_Int8 actions ) throw()
void DropTarget::drop( const DropTargetDropEvent& dtde ) throw()
{
- ::osl::Guard< ::osl::Mutex > aGuard( m_aMutex );
+ osl::ClearableGuard< ::osl::Mutex > aGuard( m_aMutex );
+ std::list< Reference< XDropTargetListener > > aListeners( m_aListeners );
+ aGuard.clear();
- ::std::list< Reference< XDropTargetListener > >::iterator it1, it2;
- it1 = m_aListeners.begin();
- while( it1 != m_aListeners.end() )
+ for( std::list< Reference< XDropTargetListener > >::iterator it = aListeners.begin(); it!= aListeners.end(); ++it )
{
- it2 = it1;
- it1++;
- (*it2)->drop( dtde );
+ (*it)->drop( dtde );
}
}
@@ -159,15 +157,13 @@ void DropTarget::drop( const DropTargetDropEvent& dtde ) throw()
void DropTarget::dragEnter( const DropTargetDragEnterEvent& dtde ) throw()
{
- ::osl::Guard< ::osl::Mutex > aGuard( m_aMutex );
+ osl::ClearableGuard< ::osl::Mutex > aGuard( m_aMutex );
+ std::list< Reference< XDropTargetListener > > aListeners( m_aListeners );
+ aGuard.clear();
- ::std::list< Reference< XDropTargetListener > >::iterator it1, it2;
- it1 = m_aListeners.begin();
- while( it1 != m_aListeners.end() )
+ for( std::list< Reference< XDropTargetListener > >::iterator it = aListeners.begin(); it!= aListeners.end(); ++it )
{
- it2 = it1;
- it1++;
- (*it2)->dragEnter( dtde );
+ (*it)->dragEnter( dtde );
}
}
@@ -175,15 +171,13 @@ void DropTarget::dragEnter( const DropTargetDragEnterEvent& dtde ) throw()
void DropTarget::dragExit( const DropTargetEvent& dte ) throw()
{
- ::osl::Guard< ::osl::Mutex > aGuard( m_aMutex );
+ osl::ClearableGuard< ::osl::Mutex > aGuard( m_aMutex );
+ std::list< Reference< XDropTargetListener > > aListeners( m_aListeners );
+ aGuard.clear();
- ::std::list< Reference< XDropTargetListener > >::iterator it1, it2;
- it1 = m_aListeners.begin();
- while( it1 != m_aListeners.end() )
+ for( std::list< Reference< XDropTargetListener > >::iterator it = aListeners.begin(); it!= aListeners.end(); ++it )
{
- it2 = it1;
- it1++;
- (*it2)->dragExit( dte );
+ (*it)->dragExit( dte );
}
}
@@ -191,15 +185,13 @@ void DropTarget::dragExit( const DropTargetEvent& dte ) throw()
void DropTarget::dragOver( const DropTargetDragEvent& dtde ) throw()
{
- ::osl::Guard< ::osl::Mutex > aGuard( m_aMutex );
+ osl::ClearableGuard< ::osl::Mutex > aGuard( m_aMutex );
+ std::list< Reference< XDropTargetListener > > aListeners( m_aListeners );
+ aGuard.clear();
- ::std::list< Reference< XDropTargetListener > >::iterator it1, it2;
- it1 = m_aListeners.begin();
- while( it1 != m_aListeners.end() )
+ for( std::list< Reference< XDropTargetListener > >::iterator it = aListeners.begin(); it!= aListeners.end(); ++it )
{
- it2 = it1;
- it1++;
- (*it2)->dragOver( dtde );
+ (*it)->dragOver( dtde );
}
}
diff --git a/dtrans/source/X11/X11_selection.cxx b/dtrans/source/X11/X11_selection.cxx
index 2a424984850a..21030a220917 100644
--- a/dtrans/source/X11/X11_selection.cxx
+++ b/dtrans/source/X11/X11_selection.cxx
@@ -515,6 +515,15 @@ SelectionManager::~SelectionManager()
// destroy message window
if( m_aWindow )
XDestroyWindow( m_pDisplay, m_aWindow );
+ // release cursors
+ if (m_aMoveCursor != None)
+ XFreeCursor(m_pDisplay, m_aMoveCursor);
+ if (m_aCopyCursor != None)
+ XFreeCursor(m_pDisplay, m_aCopyCursor);
+ if (m_aLinkCursor != None)
+ XFreeCursor(m_pDisplay, m_aLinkCursor);
+ if (m_aNoneCursor != None)
+ XFreeCursor(m_pDisplay, m_aNoneCursor);
// paranoia setting, the drag thread should have
// done that already
@@ -1117,7 +1126,7 @@ bool SelectionManager::getPasteData( Atom selection, const ::rtl::OUString& rTyp
bSuccess = getPasteData( selection, m_nImageBmpAtom, rData );
#if OSL_DEBUG_LEVEL > 1
if( bSuccess )
- fprintf( stderr, "got %d bytes of image/bmp\n" ), (int)rData.getLength();
+ fprintf( stderr, "got %d bytes of image/bmp\n", (int)rData.getLength() );
#endif
if( ! bSuccess )
{
@@ -1685,7 +1694,7 @@ bool SelectionManager::handleSelectionRequest( XSelectionRequestEvent& rRequest
XA_INTEGER, 32, PropModeReplace, (const unsigned char*)&nTimeStamp, 1 );
aNotify.xselection.property = rRequest.property;
#if OSL_DEBUG_LEVEL > 1
- fprintf( stderr, "sending timestamp: %d\n", nTimeStamp );
+ fprintf( stderr, "sending timestamp: %d\n", (int)nTimeStamp );
#endif
}
else
diff --git a/dtrans/source/aqua/DropTarget.cxx b/dtrans/source/aqua/DropTarget.cxx
index bb45742732e7..6f973d7aa08f 100644
--- a/dtrans/source/aqua/DropTarget.cxx
+++ b/dtrans/source/aqua/DropTarget.cxx
@@ -245,8 +245,8 @@ NSDragOperation DropTarget::draggingEntered(id sender)
CocoaToVCL(dragLocation, bounds);
- sal_Int32 posX = dragLocation.x;
- sal_Int32 posY = dragLocation.y;
+ sal_Int32 posX = static_cast<sal_Int32>(dragLocation.x);
+ sal_Int32 posY = static_cast<sal_Int32>(dragLocation.y);
NSPasteboard* dragPboard = [sender draggingPasteboard];
mXCurrentDragClipboard = new AquaClipboard(mXComponentContext, dragPboard, false);
@@ -284,8 +284,8 @@ NSDragOperation DropTarget::draggingUpdated(id sender)
CocoaToVCL(dragLocation, bounds);
- sal_Int32 posX = dragLocation.x;
- sal_Int32 posY = dragLocation.y;
+ sal_Int32 posX = static_cast<sal_Int32>(dragLocation.x);
+ sal_Int32 posY = static_cast<sal_Int32>(dragLocation.y);
DropTargetDragEvent dtde(static_cast<OWeakObject*>(this),
0,
@@ -350,8 +350,8 @@ MacOSBOOL DropTarget::performDragOperation(id sender)
CocoaToVCL(dragLocation, bounds);
- sal_Int32 posX = dragLocation.x;
- sal_Int32 posY = dragLocation.y;
+ sal_Int32 posX = static_cast<sal_Int32>(dragLocation.x);
+ sal_Int32 posY = static_cast<sal_Int32>(dragLocation.y);
DropTargetDropEvent dtde(static_cast<OWeakObject*>(this),
0,
diff --git a/dtrans/source/aqua/aqua_clipboard.cxx b/dtrans/source/aqua/aqua_clipboard.cxx
index d0b821099ea0..370edee90eb7 100644
--- a/dtrans/source/aqua/aqua_clipboard.cxx
+++ b/dtrans/source/aqua/aqua_clipboard.cxx
@@ -323,8 +323,13 @@ void AquaClipboard::fireLostClipboardOwnershipEvent(Reference<XClipboardOwner> o
void AquaClipboard::provideDataForType(NSPasteboard* sender, NSString* type)
{
DataProviderPtr_t dp = mpDataFlavorMapper->getDataProvider(type, mXClipboardContent);
- NSData* pBoardData = (NSData*)dp->getSystemData();
- [sender setData: pBoardData forType: type];
+ NSData* pBoardData = NULL;
+
+ if (dp.get() != NULL)
+ {
+ pBoardData = (NSData*)dp->getSystemData();
+ [sender setData: pBoardData forType: type];
+ }
}
diff --git a/goodies/inc/grfmgr.hxx b/goodies/inc/grfmgr.hxx
index ae2bced9377c..b44c27ea65e3 100644
--- a/goodies/inc/grfmgr.hxx
+++ b/goodies/inc/grfmgr.hxx
@@ -228,7 +228,9 @@ private:
void ImplConstruct();
void ImplAssignGraphicData();
- void ImplSetGraphicManager( const GraphicManager* pMgr, const ByteString* pID = NULL );
+ void ImplSetGraphicManager( const GraphicManager* pMgr,
+ const ByteString* pID = NULL,
+ const GraphicObject* pCopyObj = NULL );
void ImplAutoSwapIn();
BOOL ImplIsAutoSwapped() const { return mbAutoSwapped; }
BOOL ImplGetCropParams( OutputDevice* pOut, Point& rPt, Size& rSz, const GraphicAttr* pAttr,
@@ -524,7 +526,9 @@ private:
const GDIMetaFile& rMtf, const GraphicAttr& rAttr );
// Only used by GraphicObject's Ctor's and Dtor's
- void ImplRegisterObj( const GraphicObject& rObj, Graphic& rSubstitute, const ByteString* pID );
+ void ImplRegisterObj( const GraphicObject& rObj, Graphic& rSubstitute,
+ const ByteString* pID = NULL,
+ const GraphicObject* pCopyObj = NULL );
void ImplUnregisterObj( const GraphicObject& rObj );
inline BOOL ImplHasObjects() const { return( maObjList.Count() > 0UL ); }
diff --git a/goodies/prj/build.lst b/goodies/prj/build.lst
index fb1f7a0f1aca..f8edce86c4f8 100644
--- a/goodies/prj/build.lst
+++ b/goodies/prj/build.lst
@@ -1,4 +1,4 @@
-go goodies : svtools NULL
+go goodies : l10n svtools NULL
go goodies usr1 - all g_mkout NULL
go goodies\inc nmake - all g_inc NULL
go goodies\prj get - all g_prj NULL
diff --git a/goodies/source/filter.vcl/eps/eps.cxx b/goodies/source/filter.vcl/eps/eps.cxx
index cfe17744941a..8a163659050a 100644
--- a/goodies/source/filter.vcl/eps/eps.cxx
+++ b/goodies/source/filter.vcl/eps/eps.cxx
@@ -2639,7 +2639,8 @@ BOOL PSWriter::ImplGetBoundingBox( double* nNumb, BYTE* pSource, ULONG nSize )
BOOL bNegative = FALSE;
BOOL bValid = TRUE;
- while ( ( --nSecurityCount ) && ( *pDest == ' ' ) || ( *pDest == 0x9 ) ) pDest++;
+ while ( ( --nSecurityCount ) && ( ( *pDest == ' ' ) || ( *pDest == 0x9 ) ) )
+ pDest++;
BYTE nByte = *pDest;
while ( nSecurityCount && ( nByte != ' ' ) && ( nByte != 0x9 ) && ( nByte != 0xd ) && ( nByte != 0xa ) )
{
diff --git a/goodies/source/filter.vcl/ieps/ieps.cxx b/goodies/source/filter.vcl/ieps/ieps.cxx
index 7eee1606d511..f315ee864310 100644
--- a/goodies/source/filter.vcl/ieps/ieps.cxx
+++ b/goodies/source/filter.vcl/ieps/ieps.cxx
@@ -93,7 +93,8 @@ static long ImplGetNumber( BYTE **pBuf, int& nSecurityCount )
BOOL bValid = TRUE;
BOOL bNegative = FALSE;
long nRetValue = 0;
- while ( ( --nSecurityCount ) && ( **pBuf == ' ' ) || ( **pBuf == 0x9 ) ) (*pBuf)++;
+ while ( ( --nSecurityCount ) && ( ( **pBuf == ' ' ) || ( **pBuf == 0x9 ) ) )
+ (*pBuf)++;
BYTE nByte = **pBuf;
while ( nSecurityCount && ( nByte != ' ' ) && ( nByte != 0x9 ) && ( nByte != 0xd ) && ( nByte != 0xa ) )
{
diff --git a/goodies/source/graphic/grfcache.cxx b/goodies/source/graphic/grfcache.cxx
index fb7cb94a964c..1a2af16ed741 100644
--- a/goodies/source/graphic/grfcache.cxx
+++ b/goodies/source/graphic/grfcache.cxx
@@ -583,54 +583,79 @@ GraphicCache::~GraphicCache()
// -----------------------------------------------------------------------------
-void GraphicCache::AddGraphicObject( const GraphicObject& rObj, Graphic& rSubstitute, const ByteString* pID )
+void GraphicCache::AddGraphicObject( const GraphicObject& rObj, Graphic& rSubstitute,
+ const ByteString* pID, const GraphicObject* pCopyObj )
{
BOOL bInserted = FALSE;
- if( !rObj.IsSwappedOut() && ( ( rObj.GetType() != GRAPHIC_NONE ) || pID ) )
+ if( !rObj.IsSwappedOut() &&
+ ( pID || ( pCopyObj && ( pCopyObj->GetType() != GRAPHIC_NONE ) ) || ( rObj.GetType() != GRAPHIC_NONE ) ) )
{
- GraphicCacheEntry* pEntry = (GraphicCacheEntry*) maGraphicCache.First();
- const GraphicID aID( rObj );
-
- while( !bInserted && pEntry )
+ if( pCopyObj )
{
- const GraphicID& rEntryID = pEntry->GetID();
+ GraphicCacheEntry* pEntry = static_cast< GraphicCacheEntry* >( maGraphicCache.First() );
- if( pID )
+ while( !bInserted && pEntry )
{
- if( rEntryID.GetIDString() == *pID )
+ if( pEntry->HasGraphicObjectReference( *pCopyObj ) )
+ {
+ pEntry->AddGraphicObjectReference( rObj, rSubstitute );
+ bInserted = TRUE;
+ }
+ else
{
- pEntry->TryToSwapIn();
+ pEntry = static_cast< GraphicCacheEntry* >( maGraphicCache.Next() );
+ }
+ }
+ }
+
+ if( !bInserted )
+ {
+ GraphicCacheEntry* pEntry = static_cast< GraphicCacheEntry* >( maGraphicCache.First() );
+ const GraphicID aID( rObj );
- // since pEntry->TryToSwapIn can modify our current list, we have to
- // iterate from beginning to add a reference to the appropriate
- // CacheEntry object; after this, quickly jump out of the outer iteration
- for( pEntry = (GraphicCacheEntry*) maGraphicCache.First(); !bInserted && pEntry; pEntry = (GraphicCacheEntry*) maGraphicCache.Next() )
+ while( !bInserted && pEntry )
+ {
+ const GraphicID& rEntryID = pEntry->GetID();
+
+ if( pID )
+ {
+ if( rEntryID.GetIDString() == *pID )
{
- const GraphicID& rID = pEntry->GetID();
+ pEntry->TryToSwapIn();
+
+ // since pEntry->TryToSwapIn can modify our current list, we have to
+ // iterate from beginning to add a reference to the appropriate
+ // CacheEntry object; after this, quickly jump out of the outer iteration
+ for( pEntry = static_cast< GraphicCacheEntry* >( maGraphicCache.First() );
+ !bInserted && pEntry;
+ pEntry = static_cast< GraphicCacheEntry* >( maGraphicCache.Next() ) )
+ {
+ const GraphicID& rID = pEntry->GetID();
+
+ if( rID.GetIDString() == *pID )
+ {
+ pEntry->AddGraphicObjectReference( rObj, rSubstitute );
+ bInserted = TRUE;
+ }
+ }
- if( rID.GetIDString() == *pID )
+ if( !bInserted )
{
- pEntry->AddGraphicObjectReference( rObj, rSubstitute );
+ maGraphicCache.Insert( new GraphicCacheEntry( rObj ), LIST_APPEND );
bInserted = TRUE;
}
}
-
- if( !bInserted )
- {
- maGraphicCache.Insert( new GraphicCacheEntry( rObj ), LIST_APPEND );
- bInserted = TRUE;
- }
}
- }
- else if( rEntryID == aID )
- {
- pEntry->AddGraphicObjectReference( rObj, rSubstitute );
- bInserted = TRUE;
- }
+ else if( rEntryID == aID )
+ {
+ pEntry->AddGraphicObjectReference( rObj, rSubstitute );
+ bInserted = TRUE;
+ }
- if( !bInserted )
- pEntry = (GraphicCacheEntry*) maGraphicCache.Next();
+ if( !bInserted )
+ pEntry = static_cast< GraphicCacheEntry* >( maGraphicCache.Next() );
+ }
}
}
@@ -718,7 +743,7 @@ void GraphicCache::GraphicObjectWasSwappedIn( const GraphicObject& rObj )
if( pEntry->GetID().IsEmpty() )
{
ReleaseGraphicObject( rObj );
- AddGraphicObject( rObj, (Graphic&) rObj.GetGraphic(), NULL );
+ AddGraphicObject( rObj, (Graphic&) rObj.GetGraphic(), NULL, NULL );
}
else
pEntry->GraphicObjectWasSwappedIn( rObj );
diff --git a/goodies/source/graphic/grfcache.hxx b/goodies/source/graphic/grfcache.hxx
index 62c7f4e18521..86b982b01498 100644
--- a/goodies/source/graphic/grfcache.hxx
+++ b/goodies/source/graphic/grfcache.hxx
@@ -70,7 +70,8 @@ public:
public:
- void AddGraphicObject( const GraphicObject& rObj, Graphic& rSubstitute, const ByteString* pID );
+ void AddGraphicObject( const GraphicObject& rObj, Graphic& rSubstitute,
+ const ByteString* pID, const GraphicObject* pCopyObj );
void ReleaseGraphicObject( const GraphicObject& rObj );
void GraphicObjectWasSwappedOut( const GraphicObject& rObj );
diff --git a/goodies/source/graphic/grfmgr.cxx b/goodies/source/graphic/grfmgr.cxx
index 29ab26a78c5a..5cb37a51e81f 100644
--- a/goodies/source/graphic/grfmgr.cxx
+++ b/goodies/source/graphic/grfmgr.cxx
@@ -44,7 +44,6 @@
#include <vcl/metaact.hxx>
#include <vcl/virdev.hxx>
#include <vcl/salbtype.hxx>
-#include <vcl/pdfextoutdevdata.hxx>
#include <svtools/cacheoptions.hxx>
#include "grfmgr.hxx"
@@ -126,7 +125,7 @@ GraphicObject::GraphicObject( const GraphicObject& rGraphicObj, const GraphicMan
{
ImplConstruct();
ImplAssignGraphicData();
- ImplSetGraphicManager( pMgr );
+ ImplSetGraphicManager( pMgr, NULL, &rGraphicObj );
}
// -----------------------------------------------------------------------------
@@ -203,7 +202,7 @@ void GraphicObject::ImplAssignGraphicData()
// -----------------------------------------------------------------------------
-void GraphicObject::ImplSetGraphicManager( const GraphicManager* pMgr, const ByteString* pID )
+void GraphicObject::ImplSetGraphicManager( const GraphicManager* pMgr, const ByteString* pID, const GraphicObject* pCopyObj )
{
if( !mpMgr || ( pMgr != mpMgr ) )
{
@@ -235,7 +234,7 @@ void GraphicObject::ImplSetGraphicManager( const GraphicManager* pMgr, const Byt
else
mpMgr = (GraphicManager*) pMgr;
- mpMgr->ImplRegisterObj( *this, maGraphic, pID );
+ mpMgr->ImplRegisterObj( *this, maGraphic, pID, pCopyObj );
}
}
}
@@ -407,7 +406,7 @@ GraphicObject& GraphicObject::operator=( const GraphicObject& rGraphicObj )
mbAutoSwapped = FALSE;
mpMgr = rGraphicObj.mpMgr;
- mpMgr->ImplRegisterObj( *this, maGraphic, NULL );
+ mpMgr->ImplRegisterObj( *this, maGraphic, NULL, &rGraphicObj );
}
return *this;
@@ -674,31 +673,11 @@ BOOL GraphicObject::Draw( OutputDevice* pOut, const Point& rPt, const Size& rSz,
const sal_uInt32 nOldDrawMode = pOut->GetDrawMode();
BOOL bCropped = aAttr.IsCropped();
BOOL bCached = FALSE;
- BOOL bWritingPdfLinkedGraphic = FALSE;
BOOL bRet;
// #i29534# Provide output rects for PDF writer
Rectangle aCropRect;
- // #i29534# Notify PDF writer about linked graphic (if any)
- vcl::ExtOutDevData* pExtOutDevData = pOut->GetExtOutDevData();
- if( pExtOutDevData && pExtOutDevData->ISA(vcl::PDFExtOutDevData) )
- {
- // #i29534# Only delegate image handling to PDF, if no special
- // treatment is necessary
- if( GetGraphic().IsLink() &&
- aSz.Width() > 0L &&
- aSz.Height() > 0L &&
- !aAttr.IsSpecialDrawMode() &&
- !aAttr.IsMirrored() &&
- !aAttr.IsRotated() &&
- !aAttr.IsAdjusted() )
- {
- bWritingPdfLinkedGraphic = TRUE;
- static_cast< vcl::PDFExtOutDevData* >( pExtOutDevData )->BeginGroup();
- }
- }
-
if( !( GRFMGR_DRAW_USE_DRAWMODE_SETTINGS & nFlags ) )
pOut->SetDrawMode( nOldDrawMode & ( ~( DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT ) ) );
@@ -749,16 +728,6 @@ BOOL GraphicObject::Draw( OutputDevice* pOut, const Point& rPt, const Size& rSz,
pOut->SetDrawMode( nOldDrawMode );
- // #i29534# Notify PDF writer about linked graphic (if any)
- if( bWritingPdfLinkedGraphic )
- {
- static_cast< vcl::PDFExtOutDevData* >( pExtOutDevData )->EndGroup(
- const_cast< Graphic& >(GetGraphic()),
- aAttr.GetTransparency(),
- Rectangle( aPt, aSz ),
- aCropRect );
- }
-
// #i29534# Moved below OutDev restoration, to avoid multiple swap-ins
// (code above needs to call GetGraphic twice)
if( bCached )
@@ -889,7 +858,7 @@ void GraphicObject::SetGraphic( const Graphic& rGraphic )
delete mpLink, mpLink = NULL;
delete mpSimpleCache, mpSimpleCache = NULL;
- mpMgr->ImplRegisterObj( *this, maGraphic, NULL );
+ mpMgr->ImplRegisterObj( *this, maGraphic );
if( mpSwapOutTimer )
mpSwapOutTimer->Start();
diff --git a/goodies/source/graphic/grfmgr2.cxx b/goodies/source/graphic/grfmgr2.cxx
index eb5d2b4ee8dc..2b7dc86f7149 100644
--- a/goodies/source/graphic/grfmgr2.cxx
+++ b/goodies/source/graphic/grfmgr2.cxx
@@ -271,10 +271,11 @@ BOOL GraphicManager::DrawObj( OutputDevice* pOut, const Point& rPt, const Size&
// -----------------------------------------------------------------------------
-void GraphicManager::ImplRegisterObj( const GraphicObject& rObj, Graphic& rSubstitute, const ByteString* pID )
+void GraphicManager::ImplRegisterObj( const GraphicObject& rObj, Graphic& rSubstitute,
+ const ByteString* pID, const GraphicObject* pCopyObj )
{
maObjList.Insert( (void*) &rObj, LIST_APPEND );
- mpCache->AddGraphicObject( rObj, rSubstitute, pID );
+ mpCache->AddGraphicObject( rObj, rSubstitute, pID, pCopyObj );
}
// -----------------------------------------------------------------------------
@@ -2320,11 +2321,11 @@ void GraphicObject::ImplTransformBitmap( BitmapEx& rBmpEx,
rBmpEx.Crop( rCropRect );
// #104115# Negative crop sizes mean: enlarge bitmap and pad
- if( bEnlarge &&
+ if( bEnlarge && (
rCropLeftTop.Width() < 0 ||
rCropLeftTop.Height() < 0 ||
rCropRightBottom.Width() < 0 ||
- rCropRightBottom.Height() < 0 )
+ rCropRightBottom.Height() < 0 ) )
{
Size aBmpSize( rBmpEx.GetSizePixel() );
sal_Int32 nPadLeft( rCropLeftTop.Width() < 0 ? -rCropLeftTop.Width() : 0 );
diff --git a/goodies/util/makefile.mk b/goodies/util/makefile.mk
index 2578b4be4f0b..13bb94069804 100644
--- a/goodies/util/makefile.mk
+++ b/goodies/util/makefile.mk
@@ -59,11 +59,9 @@ SHL1STDLIBS=\
$(SVTOOLLIB) \
$(UNOTOOLSLIB) \
$(TOOLSLIB) \
- $(VOSLIB) \
$(SALLIB) \
$(CPPULIB) \
$(COMPHELPERLIB) \
- $(UCBHELPERLIB) \
$(CPPUHELPERLIB) \
$(BASEGFXLIB) \
$(TKLIB)
diff --git a/i18npool/inc/i18npool/paper.hxx b/i18npool/inc/i18npool/paper.hxx
new file mode 100644
index 000000000000..5690a8fe7254
--- /dev/null
+++ b/i18npool/inc/i18npool/paper.hxx
@@ -0,0 +1,155 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile$
+ *
+ * $Revision$
+ *
+ * last change: $Author$ $Date$
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ ************************************************************************/
+
+#ifndef INCLUDED_I18NPOOL_PAPER_HXX
+#define INCLUDED_I18NPOOL_PAPER_HXX
+
+#include <sal/config.h>
+
+#include "i18npool/i18npooldllapi.h"
+#include <rtl/string.hxx>
+#include <com/sun/star/lang/Locale.hpp>
+
+enum Paper
+{
+ PAPER_A0,
+ PAPER_A1,
+ PAPER_A2,
+ PAPER_A3,
+ PAPER_A4,
+ PAPER_A5,
+ PAPER_B4_ISO,
+ PAPER_B5_ISO,
+ PAPER_LETTER,
+ PAPER_LEGAL,
+ PAPER_TABLOID,
+ PAPER_USER,
+ PAPER_B6_ISO,
+ PAPER_ENV_C4,
+ PAPER_ENV_C5,
+ PAPER_ENV_C6,
+ PAPER_ENV_C65,
+ PAPER_ENV_DL,
+ PAPER_SLIDE_DIA,
+ PAPER_SCREEN,
+ PAPER_C,
+ PAPER_D,
+ PAPER_E,
+ PAPER_EXECUTIVE,
+ PAPER_FANFOLD_LEGAL_DE,
+ PAPER_ENV_MONARCH,
+ PAPER_ENV_PERSONAL,
+ PAPER_ENV_9,
+ PAPER_ENV_10,
+ PAPER_ENV_11,
+ PAPER_ENV_12,
+ PAPER_KAI16,
+ PAPER_KAI32,
+ PAPER_KAI32BIG,
+ PAPER_B4_JIS,
+ PAPER_B5_JIS,
+ PAPER_B6_JIS,
+ PAPER_LEDGER,
+ PAPER_STATEMENT,
+ PAPER_QUARTO,
+ PAPER_10x14,
+ PAPER_ENV_14,
+ PAPER_ENV_C3,
+ PAPER_ENV_ITALY,
+ PAPER_FANFOLD_US,
+ PAPER_FANFOLD_DE,
+ PAPER_POSTCARD_JP,
+ PAPER_9x11,
+ PAPER_10x11,
+ PAPER_15x11,
+ PAPER_ENV_INVITE,
+ PAPER_A_PLUS,
+ PAPER_B_PLUS,
+ PAPER_LETTER_PLUS,
+ PAPER_A4_PLUS,
+ PAPER_DOUBLEPOSTCARD_JP,
+ PAPER_A6,
+ PAPER_12x11,
+ PAPER_A7,
+ PAPER_A8,
+ PAPER_A9,
+ PAPER_A10,
+ PAPER_B0_ISO,
+ PAPER_B1_ISO,
+ PAPER_B2_ISO,
+ PAPER_B3_ISO,
+ PAPER_B7_ISO,
+ PAPER_B8_ISO,
+ PAPER_B9_ISO,
+ PAPER_B10_ISO,
+ PAPER_ENV_C2,
+ PAPER_ENV_C7,
+ PAPER_ENV_C8,
+ PAPER_ARCHA,
+ PAPER_ARCHB,
+ PAPER_ARCHC,
+ PAPER_ARCHD,
+ PAPER_ARCHE
+};
+
+// ---------
+// - Paper -
+// ---------
+
+class I18NPOOL_DLLPUBLIC PaperInfo
+{
+ Paper m_eType;
+ long m_nPaperWidth; // width in 100thMM
+ long m_nPaperHeight; // height in 100thMM
+public:
+ PaperInfo(Paper eType);
+ PaperInfo(long nPaperWidth, long nPaperHeight);
+
+ Paper getPaper() const { return m_eType; }
+ long getWidth() const { return m_nPaperWidth; }
+ long getHeight() const { return m_nPaperHeight; }
+ bool sloppyEqual(const PaperInfo &rOther) const;
+ bool doSloppyFit();
+
+ static PaperInfo getSystemDefaultPaper();
+ static PaperInfo getDefaultPaperForLocale(const ::com::sun::star::lang::Locale & rLocale);
+
+ static Paper fromPSName(const rtl::OString &rName);
+ static rtl::OString toPSName(Paper eType);
+
+ static long sloppyFitPageDimension(long nDimension);
+};
+
+#endif // INCLUDED_I18NPOOL_PAPER_HXX
diff --git a/i18npool/prj/build.lst b/i18npool/prj/build.lst
index 98fec96d0149..24e9607596ac 100644
--- a/i18npool/prj/build.lst
+++ b/i18npool/prj/build.lst
@@ -9,6 +9,7 @@ inp i18npool\source\transliteration nmake - all inp_translit inp
inp i18npool\source\isolang nmake - all inp_isolang inp_inc NULL
inp i18npool\source\localedata nmake - all inp_localedata inp_isolang inp_inc NULL
inp i18npool\source\localedata\data nmake - all inp_locdata_data inp_localedata inp_inc NULL
+inp i18npool\source\paper nmake - all inp_paper inp_isolang inp_inc NULL
inp i18npool\source\calendar nmake - all inp_cal inp_inc NULL
inp i18npool\source\numberformatcode nmake - all inp_numformat inp_inc NULL
inp i18npool\source\defaultnumberingprovider nmake - all inp_dnum inp_inc NULL
@@ -22,4 +23,4 @@ inp i18npool\source\textconversion nmake - all inp_textconversi
inp i18npool\source\textconversion\data nmake - all inp_textconv_dict inp_textconversion inp_inc NULL
inp i18npool\source\search nmake - all inp_search inp_inc NULL
inp i18npool\source\ordinalsuffix nmake - all inp_ordinalsuffix NULL
-inp i18npool\util nmake - all inp_util inp_brkit inp_dict inp_chclass inp_translit inp_cal inp_dnum inp_natnum inp_localedata inp_locdata_data inp_numformat inp_rserv inp_index inp_index_data inp_collator inp_collator_data inp_inputchecker inp_textconversion inp_textconv_dict inp_search inp_isolang inp_ordinalsuffix NULL
+inp i18npool\util nmake - all inp_util inp_brkit inp_dict inp_chclass inp_translit inp_cal inp_dnum inp_natnum inp_localedata inp_locdata_data inp_numformat inp_rserv inp_index inp_index_data inp_collator inp_collator_data inp_inputchecker inp_textconversion inp_textconv_dict inp_search inp_isolang inp_paper inp_ordinalsuffix NULL
diff --git a/i18npool/prj/d.lst b/i18npool/prj/d.lst
index 052ad4d23273..54aefa732b89 100644
--- a/i18npool/prj/d.lst
+++ b/i18npool/prj/d.lst
@@ -40,3 +40,9 @@ mkdir: %_DEST%\inc%_EXT%\i18npool
..\%__SRC%\bin\i18nisol*.dll %_DEST%\bin%_EXT%\i18nisol*.dll
..\%__SRC%\lib\libi18nisolang*.so %_DEST%\lib%_EXT%\libi18nisolang*.so
..\%__SRC%\lib\libi18nisolang*.dylib %_DEST%\lib%_EXT%\libi18nisolang*.dylib
+
+..\%__SRC%\lib\ii18npaper*.lib %_DEST%\lib%_EXT%\ii18npaper*.lib
+..\%__SRC%\bin\i18npaper*.dll %_DEST%\bin%_EXT%\i18npaper*.dll
+..\%__SRC%\lib\libi18npaper*.so %_DEST%\lib%_EXT%\libi18npaper*.so
+..\%__SRC%\lib\libi18npaper*.dylib %_DEST%\lib%_EXT%\libi18npaper*.dylib
+
diff --git a/i18npool/source/calendar/calendar_gregorian.cxx b/i18npool/source/calendar/calendar_gregorian.cxx
index 96eee0772bc1..50b61eae5cf1 100644
--- a/i18npool/source/calendar/calendar_gregorian.cxx
+++ b/i18npool/source/calendar/calendar_gregorian.cxx
@@ -148,10 +148,42 @@ void SAL_CALL
Calendar_gregorian::init(Era *_eraArray)
{
cCalendar = "com.sun.star.i18n.Calendar_gregorian";
+
+ // #i102356# With icu::Calendar::createInstance(UErrorCode) in a Thai
+ // th_TH system locale we accidentally used a Buddhist calendar. Though
+ // the ICU documentation says that should be the case only for
+ // th_TH_TRADITIONAL (and ja_JP_TRADITIONAL Gengou), a plain th_TH
+ // already triggers that behavior, ja_JP does not. Strange enough,
+ // passing a th_TH locale to the calendar creation doesn't trigger
+ // this.
+ // See also http://userguide.icu-project.org/datetime/calendar
+
+ // Whatever ICU offers as the default calendar for a locale, ensure we
+ // have a Gregorian calendar as requested.
+
+ /* XXX: with the current implementation the aLocale member variable is
+ * not set prior to loading a calendar from locale data. This
+ * creates an empty (root) locale for ICU, but at least the correct
+ * calendar is used. The language part must not be NULL (respectively
+ * not all, language and country and variant), otherwise the current
+ * default locale would be used again and the calendar keyword ignored.
+ * */
+ icu::Locale aIcuLocale( "", NULL, NULL, "calendar=gregorian");
+
UErrorCode status;
- body = icu::Calendar::createInstance(status = U_ZERO_ERROR);
+ body = icu::Calendar::createInstance( aIcuLocale, status = U_ZERO_ERROR);
if (!body || !U_SUCCESS(status)) throw ERROR;
+#if 0
+ {
+ icu::Locale loc;
+ loc = body->getLocale( ULOC_ACTUAL_LOCALE, status = U_ZERO_ERROR);
+ fprintf( stderr, "\nICU calendar actual locale: %s\n", loc.getName());
+ loc = body->getLocale( ULOC_VALID_LOCALE, status = U_ZERO_ERROR);
+ fprintf( stderr, "ICU calendar valid locale: %s\n", loc.getName());
+ }
+#endif
+
eraArray=_eraArray;
}
diff --git a/i18npool/source/isolang/makefile.mk b/i18npool/source/isolang/makefile.mk
index 4135c3b51db7..be2a3b73f138 100644
--- a/i18npool/source/isolang/makefile.mk
+++ b/i18npool/source/isolang/makefile.mk
@@ -60,7 +60,6 @@ LIB1TARGET= $(SLB)$/$(SHL1TARGET).lib
LIB1OBJFILES=$(SHL1OBJS)
SHL1STDLIBS= \
- $(CPPULIB) \
$(SALLIB)
# --- Targets ------------------------------------------------------
diff --git a/i18npool/source/localedata/makefile.mk b/i18npool/source/localedata/makefile.mk
index 6b7cbc4a9292..e1bd0ac1a6ce 100644
--- a/i18npool/source/localedata/makefile.mk
+++ b/i18npool/source/localedata/makefile.mk
@@ -74,7 +74,6 @@ APP1OBJS = $(OBJFILES)
APP1STDLIBS = \
$(SALLIB) \
- $(SALHELPERLIB) \
$(CPPULIB) \
$(CPPUHELPERLIB)
diff --git a/i18npool/source/paper/makefile.mk b/i18npool/source/paper/makefile.mk
new file mode 100644
index 000000000000..2aef382a32fa
--- /dev/null
+++ b/i18npool/source/paper/makefile.mk
@@ -0,0 +1,75 @@
+#*************************************************************************
+#*
+# DO NOT 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.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.
+#
+#************************************************************************/
+
+PRJ=..$/..
+
+PRJNAME=i18npool
+TARGET=i18npaper
+
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/version.mk
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# --- Files --------------------------------------------------------
+#
+SLOFILES=$(SLO)$/paper.obj
+SHL1OBJS=$(SLOFILES)
+
+SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
+SHL1IMPLIB=i$(TARGET)
+
+DEF1DEPN=$(MISC)$/$(SHL1TARGET).flt
+SHL1DEF=$(MISC)$/$(SHL1TARGET).def
+DEF1NAME=$(SHL1TARGET)
+DEFLIB1NAME=$(SHL1TARGET)
+
+LIB1TARGET= $(SLB)$/$(SHL1TARGET).lib
+LIB1OBJFILES=$(SHL1OBJS)
+
+SHL1STDLIBS= \
+ $(I18NISOLANGLIB) \
+ $(COMPHELPERLIB) \
+ $(CPPULIB) \
+ $(SALLIB)
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+$(MISC)$/$(SHL1TARGET).flt: makefile.mk
+ @echo ------------------------------
+ @echo Making: $@
+ @echo CLEAR_THE_FILE > $@
+ @echo __CT >> $@
diff --git a/i18npool/source/paper/paper.cxx b/i18npool/source/paper/paper.cxx
new file mode 100644
index 000000000000..726a4c3bd898
--- /dev/null
+++ b/i18npool/source/paper/paper.cxx
@@ -0,0 +1,478 @@
+/*************************************************************************
+ *
+ * DO NOT 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.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_i18npool.hxx"
+#include <sal/config.h>
+#include <rtl/ustring.hxx>
+#include <rtl/string.hxx>
+#include <comphelper/processfactory.hxx>
+#include <com/sun/star/i18n/ScriptType.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+
+#include "i18npool/mslangid.hxx"
+#include "i18npool/paper.hxx"
+
+#include <utility>
+#include <cstdlib>
+
+#ifdef UNX
+#include <stdio.h>
+#include <string.h>
+#include <locale.h>
+#include <langinfo.h>
+#endif
+
+struct PageDesc
+{
+ long m_nWidth;
+ long m_nHeight;
+ const char *m_pPSName;
+ const char *m_pAltPSName;
+};
+
+#define PT2MM100( v ) \
+ (long)(((v) * 35.27777778) + 0.5)
+
+#define IN2MM100( v ) \
+ ((long)(((v) * 2540) + 0.5))
+
+#define MM2MM100( v ) \
+ ((long)((v) * 100))
+
+//PostScript Printer Description File Format Specification
+//http://partners.adobe.com/public/developer/en/ps/5003.PPD_Spec_v4.3.pdf
+//http://www.y-adagio.com/public/committees/docsii/doc_00-49/symp_ulaan/china_ppr.pdf (Kai)
+//http://www.sls.psi.ch/controls/help/howto/Howto_Print_a_A0_Poster_at_WSLA_012_2.pdf (Dia)
+static PageDesc aDinTab[] =
+{
+ { MM2MM100( 841 ), MM2MM100( 1189 ), "A0", NULL },
+ { MM2MM100( 594 ), MM2MM100( 841 ), "A1", NULL },
+ { MM2MM100( 420 ), MM2MM100( 594 ), "A2", NULL },
+ { MM2MM100( 297 ), MM2MM100( 420 ), "A3", NULL },
+ { MM2MM100( 210 ), MM2MM100( 297 ), "A4", NULL },
+ { MM2MM100( 148 ), MM2MM100( 210 ), "A5", NULL },
+ { MM2MM100( 250 ), MM2MM100( 353 ), "ISOB4", NULL },
+ { MM2MM100( 176 ), MM2MM100( 250 ), "ISOB5", NULL },
+ { IN2MM100( 8.5 ), IN2MM100( 11 ), "Letter", "Note" },
+ { IN2MM100( 8.5 ), IN2MM100( 14 ), "Legal", NULL },
+ { IN2MM100( 11 ), IN2MM100( 17 ), "Tabloid", "11x17" },
+ { 0, 0, NULL, NULL }, //User
+ { MM2MM100( 125 ), MM2MM100( 176 ), "ISOB6", NULL },
+ { MM2MM100( 229 ), MM2MM100( 324 ), "EnvC4", "C4" },
+ { MM2MM100( 162 ), MM2MM100( 229 ), "EnvC5", "C5" },
+ { MM2MM100( 114 ), MM2MM100( 162 ), "EnvC6", "C6" },
+ { MM2MM100( 114 ), MM2MM100( 229 ), "EnvC65", NULL },
+ { MM2MM100( 110 ), MM2MM100( 220 ), "EnvDL", "DL" },
+ { MM2MM100( 180), MM2MM100( 270 ), NULL, NULL }, //Dia
+ { MM2MM100( 210), MM2MM100( 280 ), NULL, NULL }, //Screen
+ { IN2MM100( 17 ), IN2MM100( 22 ), "AnsiC", "CSheet" },
+ { IN2MM100( 22 ), IN2MM100( 34 ), "AnsiD", "DSheet" },
+ { IN2MM100( 34 ), IN2MM100( 44 ), "AnsiE", "ESheet" },
+ { IN2MM100( 7.25 ), IN2MM100( 10.5 ), "Executive", NULL },
+ //"Folio" is a different size in the PPD documentation than 8.5x11
+ //This "FanFoldGermanLegal" is known in the Philippines as
+ //"Legal" paper or "Long Bond Paper". The "Legal" name causing untold
+ //misery, given the differently sized US "Legal" paper
+ { IN2MM100( 8.5 ), IN2MM100( 13 ), "FanFoldGermanLegal", NULL },
+ { IN2MM100( 3.875 ), IN2MM100( 7.5 ), "EnvMonarch", "Monarch" },
+ { IN2MM100( 3.625 ), IN2MM100( 6.5 ), "EnvPersonal", "Personal" },
+ { IN2MM100( 3.875 ), IN2MM100( 8.875 ), "Env9", NULL },
+ { IN2MM100( 4.125 ), IN2MM100( 9.5 ), "Env10", "Comm10" },
+ { IN2MM100( 4.5 ), IN2MM100( 10.375 ), "Env11", NULL },
+ { IN2MM100( 4.75 ), IN2MM100( 11 ), "Env12", NULL },
+ { MM2MM100( 184 ), MM2MM100( 260 ), NULL, NULL }, //Kai16
+ { MM2MM100( 130 ), MM2MM100( 184 ), NULL, NULL }, //Kai32
+ { MM2MM100( 140 ), MM2MM100( 203 ), NULL, NULL }, //BigKai32
+ { MM2MM100( 257 ), MM2MM100( 364 ), "B4", NULL }, //JIS
+ { MM2MM100( 182 ), MM2MM100( 257 ), "B5", NULL }, //JIS
+ { MM2MM100( 128 ), MM2MM100( 182 ), "B6", NULL }, //JIS
+ { IN2MM100( 17 ), IN2MM100( 11 ), "Ledger", NULL },
+ { IN2MM100( 5.5 ), IN2MM100( 8.5 ), "Statement", NULL },
+ { PT2MM100( 610 ), PT2MM100( 780 ), "Quarto", NULL },
+ { IN2MM100( 10 ), IN2MM100( 14 ), "10x14", NULL },
+ { IN2MM100( 5.5 ), IN2MM100( 11.5 ), "Env14", NULL },
+ { MM2MM100( 324 ), MM2MM100( 458 ), "EnvC3", "C3" },
+ { MM2MM100( 110 ), MM2MM100( 230 ), "EnvItalian", NULL },
+ { IN2MM100( 14.875 ),IN2MM100( 11 ), "FanFoldUS", NULL },
+ { IN2MM100( 8.5 ), IN2MM100( 13 ), "FanFoldGerman", NULL },
+ { MM2MM100( 100 ), MM2MM100( 148 ), "Postcard", NULL },
+ { IN2MM100( 9 ), IN2MM100( 11 ), "9x11", NULL },
+ { IN2MM100( 10 ), IN2MM100( 11 ), "10x11", NULL },
+ { IN2MM100( 15 ), IN2MM100( 11 ), "15x11", NULL },
+ { MM2MM100( 220 ), MM2MM100( 220 ), "EnvInvite", NULL },
+ { MM2MM100( 227 ), MM2MM100( 356 ), "SuperA", NULL },
+ { MM2MM100( 305 ), MM2MM100( 487 ), "SuperB", NULL },
+ { IN2MM100( 8.5 ), IN2MM100( 12.69 ), "LetterPlus", NULL },
+ { IN2MM100( 8.5 ), IN2MM100( 12.69 ), "LetterPlus", NULL },
+ { MM2MM100( 210 ), MM2MM100( 330 ), "A4Plus", NULL },
+ { MM2MM100( 200 ), MM2MM100( 148 ), "DoublePostcard", NULL },
+ { MM2MM100( 105 ), MM2MM100( 148 ), "A6", NULL },
+ { IN2MM100( 12 ), IN2MM100( 11 ), "12x11", NULL },
+ { MM2MM100( 74 ), MM2MM100( 105 ), "A7", NULL },
+ { MM2MM100( 52 ), MM2MM100( 74 ), "A8", NULL },
+ { MM2MM100( 37 ), MM2MM100( 52 ), "A9", NULL },
+ { MM2MM100( 26 ), MM2MM100( 37 ), "A10", NULL },
+ { MM2MM100( 1000 ), MM2MM100( 1414 ), "ISOB0", NULL },
+ { MM2MM100( 707 ), MM2MM100( 1000 ), "ISOB1", NULL },
+ { MM2MM100( 500 ), MM2MM100( 707 ), "ISOB2", NULL },
+ { MM2MM100( 353 ), MM2MM100( 500 ), "ISOB3", NULL },
+ { MM2MM100( 88 ), MM2MM100( 125 ), "ISOB7", NULL },
+ { MM2MM100( 62 ), MM2MM100( 88 ), "ISOB8", NULL },
+ { MM2MM100( 44 ), MM2MM100( 62 ), "ISOB9", NULL },
+ { MM2MM100( 31 ), MM2MM100( 44 ), "ISOB10", NULL },
+ { MM2MM100( 458 ), MM2MM100( 648 ), "EnvC2", "C2" },
+ { MM2MM100( 81 ), MM2MM100( 114 ), "EnvC7", "C7" },
+ { MM2MM100( 57 ), MM2MM100( 81 ), "EnvC8", "C8" },
+ { IN2MM100( 9 ), IN2MM100( 12 ), "ARCHA", NULL },
+ { IN2MM100( 12 ), IN2MM100( 18 ), "ARCHB", NULL },
+ { IN2MM100( 18 ), IN2MM100( 24 ), "ARCHC", NULL },
+ { IN2MM100( 24 ), IN2MM100( 36 ), "ARCHD", NULL },
+ { IN2MM100( 36 ), IN2MM100( 48 ), "ARCHE", NULL }
+};
+
+static const size_t nTabSize = sizeof(aDinTab) / sizeof(aDinTab[0]);
+
+#define MAXSLOPPY 11
+
+bool PaperInfo::doSloppyFit()
+{
+ if (m_eType != PAPER_USER)
+ return true;
+
+ for ( size_t i = 0; i < nTabSize; ++i )
+ {
+ if (i == PAPER_USER) continue;
+
+ long lDiffW = labs(aDinTab[i].m_nWidth - m_nPaperWidth);
+ long lDiffH = labs(aDinTab[i].m_nHeight - m_nPaperHeight);
+
+ if ( lDiffW < MAXSLOPPY && lDiffH < MAXSLOPPY )
+ {
+ m_nPaperWidth = aDinTab[i].m_nWidth;
+ m_nPaperHeight = aDinTab[i].m_nHeight;
+ m_eType = (Paper)i;
+ return true;
+ }
+ }
+
+ return false;
+}
+
+bool PaperInfo::sloppyEqual(const PaperInfo &rOther) const
+{
+ return
+ (
+ (labs(m_nPaperWidth - rOther.m_nPaperWidth) < MAXSLOPPY) &&
+ (labs(m_nPaperHeight - rOther.m_nPaperHeight) < MAXSLOPPY)
+ );
+}
+
+long PaperInfo::sloppyFitPageDimension(long nDimension)
+{
+ for ( size_t i = 0; i < nTabSize; ++i )
+ {
+ if (i == PAPER_USER) continue;
+ long lDiff;
+
+ lDiff = labs(aDinTab[i].m_nWidth - nDimension);
+ if ( lDiff < MAXSLOPPY )
+ return aDinTab[i].m_nWidth;
+
+ lDiff = labs(aDinTab[i].m_nHeight - nDimension);
+ if ( lDiff < MAXSLOPPY )
+ return aDinTab[i].m_nHeight;
+ }
+ return nDimension;
+}
+
+PaperInfo PaperInfo::getSystemDefaultPaper()
+{
+ using ::com::sun::star::uno::Reference;
+ using ::com::sun::star::lang::XMultiServiceFactory;
+ using ::com::sun::star::uno::UNO_QUERY_THROW;
+ using ::com::sun::star::uno::Sequence;
+ using ::com::sun::star::uno::Any;
+ using ::com::sun::star::container::XNameAccess;
+ using ::com::sun::star::uno::Exception;
+# define CREATE_OUSTRING( ascii ) \
+ rtl::OUString::intern( RTL_CONSTASCII_USTRINGPARAM( ascii ) )
+
+ rtl::OUString aLocaleStr;
+
+ Reference< XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory();
+ Reference< XMultiServiceFactory > xConfigProv(
+ xFactory->createInstance( CREATE_OUSTRING( "com.sun.star.configuration.ConfigurationProvider" ) ),
+ UNO_QUERY_THROW );
+
+ Sequence< Any > aArgs( 1 );
+ aArgs[ 0 ] <<= CREATE_OUSTRING( "org.openoffice.Setup/L10N/" );
+ Reference< XNameAccess > xConfigNA( xConfigProv->createInstanceWithArguments(
+ CREATE_OUSTRING( "com.sun.star.configuration.ConfigurationAccess" ), aArgs ), UNO_QUERY_THROW );
+ try
+ {
+ // try user-defined locale setting
+ xConfigNA->getByName( CREATE_OUSTRING( "ooSetupSystemLocale" ) ) >>= aLocaleStr;
+ }
+ catch( Exception& ) {}
+
+#ifdef UNX
+ // if set to "use system", get papersize from system
+ if (aLocaleStr.getLength() == 0)
+ {
+ static bool bInitialized = false;
+ static PaperInfo aInstance(PAPER_A4);
+
+ if (bInitialized)
+ return aInstance;
+
+ // try libpaper
+ // #i78617# workaround missing paperconf command
+ FILE* pPipe = popen( "sh -c paperconf 2>/dev/null", "r" );
+ if( pPipe )
+ {
+ Paper ePaper = PAPER_USER;
+
+ char aBuffer[ 1024 ];
+ aBuffer[0] = 0;
+ char *pBuffer = fgets( aBuffer, sizeof(aBuffer), pPipe );
+ pclose( pPipe );
+
+ if (pBuffer && *pBuffer != 0)
+ {
+ rtl::OString aPaper(pBuffer);
+ aPaper = aPaper.trim();
+ static struct { const char *pName; Paper ePaper; } aCustoms [] =
+ {
+ { "B0", PAPER_B0_ISO },
+ { "B1", PAPER_B1_ISO },
+ { "B2", PAPER_B2_ISO },
+ { "B3", PAPER_B3_ISO },
+ { "B4", PAPER_B4_ISO },
+ { "B5", PAPER_B5_ISO },
+ { "B6", PAPER_B6_ISO },
+ { "B7", PAPER_B7_ISO },
+ { "B8", PAPER_B8_ISO },
+ { "B9", PAPER_B9_ISO },
+ { "B10", PAPER_B10_ISO },
+ { "folio", PAPER_FANFOLD_LEGAL_DE },
+ { "flsa", PAPER_FANFOLD_LEGAL_DE },
+ { "flse", PAPER_FANFOLD_LEGAL_DE }
+ };
+
+ bool bHalve = false;
+
+ size_t nExtraTabSize = sizeof(aCustoms) / sizeof(aCustoms[0]);
+ for (size_t i = 0; i < nExtraTabSize; ++i)
+ {
+ if (rtl_str_compareIgnoreAsciiCase(aCustoms[i].pName, aPaper.getStr()) == 0)
+ {
+ ePaper = aCustoms[i].ePaper;
+ break;
+ }
+ }
+
+ if (ePaper == PAPER_USER)
+ {
+ bHalve = !rtl_str_shortenedCompareIgnoreAsciiCase_WithLength(
+ aPaper.getStr(), aPaper.getLength(), "half", 4, 4);
+ if (bHalve)
+ aPaper = aPaper.copy(4);
+ ePaper = PaperInfo::fromPSName(aPaper);
+ }
+
+ if (ePaper != PAPER_USER)
+ {
+ aInstance = PaperInfo(ePaper);
+ if (bHalve)
+ aInstance = PaperInfo(aInstance.getHeight()/2, aInstance.getWidth());
+ bInitialized = true;
+ return aInstance;
+ }
+ }
+ }
+
+#if defined(LC_PAPER) && defined(_GNU_SOURCE)
+
+ union paperword { char *string; int word; };
+
+ // try LC_PAPER
+ paperword w, h;
+ w.string = nl_langinfo(_NL_PAPER_WIDTH);
+ h.string = nl_langinfo(_NL_PAPER_HEIGHT);
+
+ //glibc stores sizes as integer mm units
+ w.word *= 100;
+ h.word *= 100;
+
+ for ( size_t i = 0; i < nTabSize; ++i )
+ {
+ if (i == PAPER_USER) continue;
+
+ //glibc stores sizes as integer mm units, and so is inaccurate. To
+ //find a standard paper size we calculate the standard paper sizes
+ //into equally inaccurate mm and compare
+ long width = (aDinTab[i].m_nWidth + 50) / 100;
+ long height = (aDinTab[i].m_nHeight + 50) / 100;
+
+ if (width == w.word/100 && height == h.word/100)
+ {
+ w.word = aDinTab[i].m_nWidth;
+ h.word = aDinTab[i].m_nHeight;
+ break;
+ }
+ }
+
+ aInstance = PaperInfo(w.word, h.word);
+ bInitialized = true;
+ return aInstance;
+#endif
+ }
+#endif
+
+ try
+ {
+ // if set to "use system", try to get locale from system
+ if( aLocaleStr.getLength() == 0 )
+ {
+ aArgs[ 0 ] <<= CREATE_OUSTRING( "org.openoffice.System/L10N/" );
+ xConfigNA.set( xConfigProv->createInstanceWithArguments(
+ CREATE_OUSTRING( "com.sun.star.configuration.ConfigurationAccess" ), aArgs ),
+ UNO_QUERY_THROW );
+ xConfigNA->getByName( CREATE_OUSTRING( "Locale" ) ) >>= aLocaleStr;
+ }
+ }
+ catch( Exception& ) {}
+
+ if (aLocaleStr.getLength() == 0)
+ aLocaleStr = CREATE_OUSTRING("en-US");
+
+ // convert locale string to locale struct
+ ::com::sun::star::lang::Locale aSysLocale;
+ sal_Int32 nDashPos = aLocaleStr.indexOf( '-' );
+ if( nDashPos < 0 ) nDashPos = aLocaleStr.getLength();
+ aSysLocale.Language = aLocaleStr.copy( 0, nDashPos );
+ if( nDashPos + 1 < aLocaleStr.getLength() )
+ aSysLocale.Country = aLocaleStr.copy( nDashPos + 1 );
+
+ return PaperInfo::getDefaultPaperForLocale(aSysLocale);
+}
+
+PaperInfo::PaperInfo(Paper eType) : m_eType(eType)
+{
+ m_nPaperWidth = aDinTab[m_eType].m_nWidth;
+ m_nPaperHeight = aDinTab[m_eType].m_nHeight;
+}
+
+PaperInfo::PaperInfo(long nPaperWidth, long nPaperHeight)
+ : m_eType(PAPER_USER),
+ m_nPaperWidth(nPaperWidth),
+ m_nPaperHeight(nPaperHeight)
+{
+ for ( size_t i = 0; i < nTabSize; ++i )
+ {
+ if (
+ (nPaperWidth == aDinTab[i].m_nWidth) &&
+ (nPaperHeight == aDinTab[i].m_nHeight)
+ )
+ {
+ m_eType = static_cast<Paper>(i);
+ break;
+ }
+ }
+}
+
+rtl::OString PaperInfo::toPSName(Paper ePaper)
+{
+ return static_cast<size_t>(ePaper) < nTabSize ?
+ rtl::OString(aDinTab[ePaper].m_pPSName) : rtl::OString();
+}
+
+Paper PaperInfo::fromPSName(const rtl::OString &rName)
+{
+ if (!rName.getLength())
+ return PAPER_USER;
+
+ for ( size_t i = 0; i < nTabSize; ++i )
+ {
+ if (aDinTab[i].m_pPSName &&
+ !rtl_str_compareIgnoreAsciiCase(aDinTab[i].m_pPSName, rName.getStr()))
+ {
+ return static_cast<Paper>(i);
+ }
+ else if (aDinTab[i].m_pAltPSName &&
+ !rtl_str_compareIgnoreAsciiCase(aDinTab[i].m_pAltPSName, rName.getStr()))
+ {
+ return static_cast<Paper>(i);
+ }
+ }
+
+ return PAPER_USER;
+}
+
+//http://wiki.services.openoffice.org/wiki/DefaultPaperSize
+//http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/localedata/locales/?cvsroot=glibc
+//http://www.unicode.org/cldr/data/charts/supplemental/territory_language_information.html
+//http://en.wikipedia.org/wiki/Paper_size
+//http://msdn.microsoft.com/en-us/library/cc195164.aspx
+PaperInfo PaperInfo::getDefaultPaperForLocale(
+ const ::com::sun::star::lang::Locale & rLocale)
+{
+ Paper eType = PAPER_A4;
+
+ if (
+ //United States, Letter
+ !rLocale.Country.compareToAscii("US") ||
+ //Puerto Rico, http://sources.redhat.com/ml/libc-hacker/2001-07/msg00046.html
+ !rLocale.Country.compareToAscii("PR") ||
+ //Canada, http://sources.redhat.com/ml/libc-hacker/2001-07/msg00053.html
+ !rLocale.Country.compareToAscii("CA") ||
+ //Venuzuela, https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00019.html
+ !rLocale.Country.compareToAscii("VE") ||
+ //Chile, https://www.redhat.com/archives/fedora-devel-list/2008-August/msg00240.html
+ !rLocale.Country.compareToAscii("CL") ||
+ //Mexico, http://qa.openoffice.org/issues/show_bug.cgi?id=49739
+ !rLocale.Country.compareToAscii("MX") ||
+ //Colombia, http://qa.openoffice.org/issues/show_bug.cgi?id=69703
+ !rLocale.Country.compareToAscii("CO") ||
+ //Philippines,
+ // http://ubuntuliving.blogspot.com/2008/07/default-paper-size-in-evince.html
+ // http://www.gov.ph/faqs/driverslicense.asp
+ !rLocale.Country.compareToAscii("PH")
+ )
+ {
+ eType = PAPER_LETTER;
+ }
+
+ return eType;
+}
+
+/* vi:set tabstop=4 shiftwidth=4 expandtab: */
diff --git a/i18nutil/source/utility/casefolding.cxx b/i18nutil/source/utility/casefolding.cxx
index 7a74609b0342..7827aa47e30b 100644
--- a/i18nutil/source/utility/casefolding.cxx
+++ b/i18nutil/source/utility/casefolding.cxx
@@ -132,7 +132,10 @@ is_ja_voice_sound_mark(sal_Unicode& current, sal_Unicode next)
sal_Unicode casefolding::getNextChar(const sal_Unicode *str, sal_Int32& idx, sal_Int32 len, MappingElement& e, Locale& aLocale, sal_uInt8 nMappingType, TransliterationModules moduleLoaded) throw (RuntimeException)
{
if( idx >= len )
+ {
+ e = MappingElement();
return 0;
+ }
sal_Unicode c;
diff --git a/o3tl/qa/makefile.mk b/o3tl/qa/makefile.mk
index 563f4e2d3bf2..a6ebfbba4bb9 100644
--- a/o3tl/qa/makefile.mk
+++ b/o3tl/qa/makefile.mk
@@ -75,6 +75,6 @@ unittest : $(SHL1TARGETN)
@echo ----------------------------------------------------------
@echo - start unit test on library $(SHL1TARGETN)
@echo ----------------------------------------------------------
- $(AUGMENT_LIBRARY_PATH) testshl2 -sf $(mktmp ) $(SHL1TARGETN)
+ $(TESTSHL2) -sf $(mktmp ) $(SHL1TARGETN)
ALLTAR : unittest
diff --git a/padmin/prj/build.lst b/padmin/prj/build.lst
index 765675d73137..9aaab83cf7de 100644
--- a/padmin/prj/build.lst
+++ b/padmin/prj/build.lst
@@ -1,3 +1,3 @@
-pd padmin : psprint vcl svtools NULL
+pd padmin : vcl svtools NULL
pd padmin usr1 - all pd_mkout NULL
pd padmin\source nmake - all pd_source NULL
diff --git a/padmin/source/makefile.mk b/padmin/source/makefile.mk
index 63c2c2e5a6e1..336631f1ceaa 100644
--- a/padmin/source/makefile.mk
+++ b/padmin/source/makefile.mk
@@ -85,8 +85,9 @@ SHL1STDLIBS=\
$(VCLLIB) \
$(UNOTOOLSLIB) \
$(TOOLSLIB) \
- $(COMPHELPERLIB) \
- $(CPPULIB) $(SALLIB)
+ $(COMPHELPERLIB) \
+ $(CPPULIB) \
+ $(SALLIB)
APP1TARGET=spadmin.bin
APP1DEPN+=$(SHL1TARGETN)
@@ -97,7 +98,6 @@ APP1OBJS=\
APP1STDLIBS= \
-l$(SHL1TARGET) \
- $(SVTOOLLIB) \
$(VCLLIB) \
$(UNOTOOLSLIB) \
$(TOOLSLIB) \
@@ -106,10 +106,6 @@ APP1STDLIBS= \
$(CPPUHELPERLIB) \
$(CPPULIB) \
$(SALLIB) \
- $(I18NISOLANGLIB) $(ICUUCLIB) $(ICULELIB) $(ICUDATALIB)\
- $(TKLIB) $(SOTLIB) $(SVLLIB) $(I18NUTILLIB) $(VOSLIB) \
- $(BASEGFXLIB) $(JVMFWKLIB) $(SALHELPERLIB) \
- $(JVMACCESSLIB) \
-lXext -lX11
UNIXTEXT = $(MISC)$/spadmin.sh
diff --git a/rsc/source/prj/makefile.mk b/rsc/source/prj/makefile.mk
index 1de2d2dd0f8f..1e58270aa67c 100644
--- a/rsc/source/prj/makefile.mk
+++ b/rsc/source/prj/makefile.mk
@@ -46,7 +46,7 @@ OBJFILES= $(OBJ)$/gui.obj \
$(OBJ)$/start.obj
APP1TARGET= rsc
-APP1STDLIBS=$(TOOLSLIB) $(I18NISOLANGLIB) $(VOSLIB) $(SALLIB) $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB)
+APP1STDLIBS=$(TOOLSLIB) $(I18NISOLANGLIB) $(VOSLIB) $(SALLIB) # $(RTLLIB)
APP1LIBS= $(LB)$/rsctoo.lib
APP1OBJS= $(OBJ)$/start.obj
.IF "$(GUI)" != "OS2"
@@ -62,7 +62,7 @@ APP2TARGET= rsc2
# rsc2 muss daher statisch gelinkt werden
APP2STDLIBS=$(STATIC) -latools $(BPICONVLIB) $(VOSLIB) $(OSLLIB) $(RTLLIB) $(DYNAMIC)
.ELSE
-APP2STDLIBS=$(TOOLSLIB) $(I18NISOLANGLIB) $(VOSLIB) $(SALLIB) $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB)
+APP2STDLIBS=$(TOOLSLIB) $(I18NISOLANGLIB) $(VOSLIB) $(SALLIB) # $(RTLLIB)
.ENDIF
APP2LIBS= $(LB)$/rsctoo.lib \
$(LB)$/rscres.lib \
diff --git a/rsc/source/prj/start.cxx b/rsc/source/prj/start.cxx
index 5a623efeee51..c43879020a8e 100644
--- a/rsc/source/prj/start.cxx
+++ b/rsc/source/prj/start.cxx
@@ -306,8 +306,10 @@ int cdecl main ( int argc, char ** argv)
BOOL bHelp = FALSE;
BOOL bError = FALSE;
BOOL bResponse = FALSE;
- ByteString aPrePro( "rscpp" );
- ByteString aRsc2Name( "rsc2" );
+ ByteString aSolarbin(getenv("SOLARBINDIR"));
+ ByteString aDelim("/");
+ ByteString aPrePro; //( aSolarbin + aDelim + ByteString("rscpp"));
+ ByteString aRsc2Name; //( aSolarbin + aDelim + ByteString("rsc2"));
ByteString aSrsName;
ByteString aResName;
RscStrList aInputList;
@@ -318,6 +320,14 @@ int cdecl main ( int argc, char ** argv)
sal_uInt32 i;
ByteString* pString;
+ aPrePro = aSolarbin;
+ aPrePro += aDelim;
+ aPrePro += ByteString("rscpp");
+
+ aRsc2Name = aSolarbin;
+ aRsc2Name += aDelim;
+ aRsc2Name += ByteString("rsc2");
+
printf( "VCL Resource Compiler 3.0\n" );
pStr = ::ResponseFile( &aCmdLine, argv, argc );
diff --git a/sax/source/fastparser/makefile.mk b/sax/source/fastparser/makefile.mk
index 625d7790ed1a..83c183212656 100644
--- a/sax/source/fastparser/makefile.mk
+++ b/sax/source/fastparser/makefile.mk
@@ -62,7 +62,6 @@ SHL1STDLIBS= \
$(SAXLIB) \
$(CPPULIB) \
$(CPPUHELPERLIB)\
- $(COMPHELPERLIB)\
$(EXPATASCII3RDLIB)
SHL1DEPN=
diff --git a/sax/source/tools/makefile.mk b/sax/source/tools/makefile.mk
index 1f806aef74b4..80f51d8dc806 100644
--- a/sax/source/tools/makefile.mk
+++ b/sax/source/tools/makefile.mk
@@ -52,14 +52,12 @@ SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
SHL1IMPLIB= i$(TARGET)
SHL1STDLIBS= \
- $(VOSLIB) \
$(CPPULIB) \
$(CPPUHELPERLIB)\
$(COMPHELPERLIB)\
$(RTLLIB) \
$(SALLIB) \
- $(ONELIB) \
- $(SALHELPERLIB)
+ $(ONELIB)
SHL1DEPN=
SHL1OBJS= $(SLOFILES)
diff --git a/sot/inc/sot/exchange.hxx b/sot/inc/sot/exchange.hxx
index 68862367e4f0..0c235fffcdbb 100644
--- a/sot/inc/sot/exchange.hxx
+++ b/sot/inc/sot/exchange.hxx
@@ -196,10 +196,7 @@ public:
static ULONG RegisterFormatMimeType( const String& rMimeType );
static ULONG GetFormat( const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
- static ULONG GetStaticNameFormat( const String& rName );
-
static String GetFormatName( ULONG nFormat );
- static String GetFormatStaticName( ULONG nFormat );
static sal_Bool GetFormatDataFlavor( ULONG nFormat, ::com::sun::star::datatransfer::DataFlavor& rFlavor );
static String GetFormatMimeType( ULONG nFormat );
static BOOL IsInternal( const SvGlobalName& );
@@ -216,14 +213,6 @@ public:
static ULONG RegisterSotFormatName( SotFormatStringId nId )
{ return nId; }
- // Anzahl der bereits registrierten Formate bzw. der hoechsten
- // registrierten ID abfragen (fuer System-Registrierung)
- // ACHTUNG: Die Algorithmen zur Registrierung beim System
- // verlassen sich darauf, dass die hier gelieferte maximale
- // Format-ID 'klein' ist, so dass eine Schleife ueber alle
- // Formate laufen kann.
- static ULONG GetMaxFormat( void );
-
// same for XTransferable interface
static USHORT GetExchangeAction(
// XTransferable
diff --git a/sot/source/base/exchange.cxx b/sot/source/base/exchange.cxx
index 05de84bdfd46..6dedd84cdaeb 100644
--- a/sot/source/base/exchange.cxx
+++ b/sot/source/base/exchange.cxx
@@ -481,18 +481,6 @@ ULONG SotExchange::GetFormat( const DataFlavor& rFlavor )
/*************************************************************************
|*
-|* SotExchange::GetStaticNameFormat()
-|*
-|* Beschreibung CLIP.SDW
-*************************************************************************/
-ULONG SotExchange::GetStaticNameFormat( const String& rName )
-{
- // has to be changed to return the format for the static name (KA 27.09.2001)
- return SotExchange::RegisterFormatName( rName );
-}
-
-/*************************************************************************
-|*
|* SotExchange::GetFormatName()
|*
|* Beschreibung CLIP.SDW
@@ -508,28 +496,6 @@ String SotExchange::GetFormatName( ULONG nFormat )
return aRet;
}
-/*************************************************************************
-|*
-|* SotExchange::GetFormatStaticName()
-|*
-|* Beschreibung CLIP.SDW
-*************************************************************************/
-String SotExchange::GetFormatStaticName( ULONG nFormat )
-{
- // has to be changed to return the static format name (KA 27.09.2001)
- return SotExchange::GetFormatName( nFormat );
-}
-
-/*************************************************************************
-|*
-|* SotExchange::GetMaxFormat()
-|*
-*************************************************************************/
-ULONG SotExchange::GetMaxFormat( void )
-{
- return( SOT_FORMATSTR_ID_USER_END + InitFormats_Impl().Count() );
-}
-
BOOL SotExchange::IsInternal( const SvGlobalName& rName )
{
if ( rName == SvGlobalName(SO3_SW_CLASSID_60) ||
diff --git a/svtools/bmpmaker/makefile.mk b/svtools/bmpmaker/makefile.mk
index b5575ab77d23..d5280a2ab500 100644
--- a/svtools/bmpmaker/makefile.mk
+++ b/svtools/bmpmaker/makefile.mk
@@ -54,10 +54,6 @@ APP1TARGET= $(TARGET)
APP1STDLIBS = \
$(VCLLIB) \
$(TOOLSLIB) \
- $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB) \
- $(UNOTOOLSLIB) \
- $(ICUDATALIB) $(ICUUCLIB) $(ICULELIB) \
- $(SOTLIB) $(I18NUTILLIB) $(JVMACCESSLIB) \
$(VOSLIB) \
$(SALLIB)
@@ -74,11 +70,7 @@ APP2OBJS = $(OBJ)$/bmpsum.obj
APP2STDLIBS = $(VCLLIB) \
$(TOOLSLIB) \
- $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB) \
$(VOSLIB) \
- $(UNOTOOLSLIB) \
- $(ICUDATALIB) $(ICUUCLIB) $(ICULELIB) \
- $(SOTLIB) $(I18NUTILLIB) $(JVMACCESSLIB) \
$(SALLIB)
# --- Targets ------------------------------------------------------
diff --git a/svtools/inc/docmspasswdrequest.hxx b/svtools/inc/docmspasswdrequest.hxx
new file mode 100644
index 000000000000..684bffe71760
--- /dev/null
+++ b/svtools/inc/docmspasswdrequest.hxx
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright IBM Corporation 2009.
+ * Copyright 2009 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: docmspasswdrequest.hxx,v $
+ * $Revision: 1.0 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef INCLUDED_SVTOOLS_DOCMSPASSWDREQUEST_HXX
+#define INCLUDED_SVTOOLS_DOCMSPASSWDREQUEST_HXX
+
+#include "svtools/svldllapi.h"
+#include <com/sun/star/task/DocumentMSPasswordRequest.hpp>
+#include <com/sun/star/task/XInteractionRequest.hpp>
+#include <rtl/ustring.hxx>
+#include <cppuhelper/implbase1.hxx>
+
+class MSAbortContinuation;
+class MSPasswordContinuation;
+
+class SVL_DLLPUBLIC RequestMSDocumentPassword : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
+{
+ ::com::sun::star::uno::Any m_aRequest;
+
+ ::com::sun::star::uno::Sequence<
+ ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >
+ > m_lContinuations;
+
+ MSAbortContinuation* m_pAbort;
+ MSPasswordContinuation* m_pPassword;
+
+public:
+ RequestMSDocumentPassword( ::com::sun::star::task::PasswordRequestMode nMode, ::rtl::OUString aName );
+
+ sal_Bool isAbort();
+ sal_Bool isPassword();
+
+ ::rtl::OUString getPassword();
+
+ virtual ::com::sun::star::uno::Any SAL_CALL getRequest()
+ throw( ::com::sun::star::uno::RuntimeException );
+
+ virtual ::com::sun::star::uno::Sequence<
+ ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >
+ > SAL_CALL getContinuations()
+ throw( ::com::sun::star::uno::RuntimeException );
+};
+
+#endif /* INCLUDED_SVTOOLS_DOCMSPASSWDREQUEST_HXX */
diff --git a/svtools/inc/htmlkywd.hxx b/svtools/inc/htmlkywd.hxx
index 7c8f9b0c2f84..ce7cb4dd3e0f 100644
--- a/svtools/inc/htmlkywd.hxx
+++ b/svtools/inc/htmlkywd.hxx
@@ -31,812 +31,774 @@
#ifndef _HTMLKYWD_HXX
#define _HTMLKYWD_HXX
-#include "svtools/svtdllapi.h"
-#include "sal/types.h"
-
-#ifndef SVTOOLS_CONSTASCII_DECL
-#define SVTOOLS_CONSTASCII_DECL( n, s ) n[sizeof(s)]
-#endif
-#ifndef SVTOOLS_CONSTASCII_DEF
-#define SVTOOLS_CONSTASCII_DEF( n, s ) n[sizeof(s)] = s
-#endif
-
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_doctype32,
- "HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\"" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_doctype40,
- "HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"" );
+#include "sal/config.h"
+#define OOO_STRING_SVTOOLS_HTML_doctype32 \
+ "HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\""
+#define OOO_STRING_SVTOOLS_HTML_doctype40 \
+ "HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\""
// diese werden nur eingeschaltet
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_area, "AREA" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_base, "BASE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_comment, "!--" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_doctype, "!DOCTYPE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_embed, "EMBED" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_figureoverlay, "OVERLAY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_horzrule, "HR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_horztab, "TAB" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_image, "IMG" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_image2, "IMAGE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_input, "INPUT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_isindex, "ISINDEX" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_linebreak, "BR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_li, "LI" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_link, "LINK" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_meta, "META" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_nextid, "NEXTID" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_nobr, "NOBR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_object, "OBJECT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_of, "OF" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_option, "OPTION" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_param, "PARAM" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_range, "RANGE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_spacer, "SPACER" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_wbr, "WBR" );
+#define OOO_STRING_SVTOOLS_HTML_area "AREA"
+#define OOO_STRING_SVTOOLS_HTML_base "BASE"
+#define OOO_STRING_SVTOOLS_HTML_comment "!--"
+#define OOO_STRING_SVTOOLS_HTML_doctype "!DOCTYPE"
+#define OOO_STRING_SVTOOLS_HTML_embed "EMBED"
+#define OOO_STRING_SVTOOLS_HTML_figureoverlay "OVERLAY"
+#define OOO_STRING_SVTOOLS_HTML_horzrule "HR"
+#define OOO_STRING_SVTOOLS_HTML_horztab "TAB"
+#define OOO_STRING_SVTOOLS_HTML_image "IMG"
+#define OOO_STRING_SVTOOLS_HTML_image2 "IMAGE"
+#define OOO_STRING_SVTOOLS_HTML_input "INPUT"
+#define OOO_STRING_SVTOOLS_HTML_isindex "ISINDEX"
+#define OOO_STRING_SVTOOLS_HTML_linebreak "BR"
+#define OOO_STRING_SVTOOLS_HTML_li "LI"
+#define OOO_STRING_SVTOOLS_HTML_link "LINK"
+#define OOO_STRING_SVTOOLS_HTML_meta "META"
+#define OOO_STRING_SVTOOLS_HTML_nextid "NEXTID"
+#define OOO_STRING_SVTOOLS_HTML_nobr "NOBR"
+#define OOO_STRING_SVTOOLS_HTML_of "OF"
+#define OOO_STRING_SVTOOLS_HTML_option "OPTION"
+#define OOO_STRING_SVTOOLS_HTML_param "PARAM"
+#define OOO_STRING_SVTOOLS_HTML_range "RANGE"
+#define OOO_STRING_SVTOOLS_HTML_spacer "SPACER"
+#define OOO_STRING_SVTOOLS_HTML_wbr "WBR"
// diese werden wieder abgeschaltet
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_abbreviation, "ABBREV" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_above, "ABOVE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_acronym, "ACRONYM" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_address, "ADDRESS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_anchor, "A" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_applet, "APPLET" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_array, "ARRAY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_author, "AU" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_banner, "BANNER" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_bar, "BAR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_basefont, "BASEFONT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_below, "BELOW" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_bigprint, "BIG" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_blink, "BLINK" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_blockquote, "BLOCKQUOTE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_blockquote30, "BQ" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_body, "BODY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_bold, "B" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_boldtext, "BT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_box, "BOX" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_caption, "CAPTION" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_center, "CENTER" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_citiation, "CITE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_code, "CODE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_col, "COL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_colgroup, "COLGROUP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_credit, "CREDIT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_dd, "DD" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_deflist, "DL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_deletedtext, "DEL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_dirlist, "DIR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_division, "DIV" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_dot, "DOT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_doubledot, "DDOT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_dt, "DT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_emphasis, "EM" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_figure, "FIG" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_font, "FONT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_footnote, "FN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_form, "FORM" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_frame, "FRAME" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_frameset, "FRAMESET" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_hat, "HAT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head1, "H1" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head2, "H2" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head3, "H3" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head4, "H4" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head5, "H5" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head6, "H6" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_head, "HEAD" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_html, "HTML" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_iframe, "IFRAME" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ilayer, "ILAYER" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_insertedtext, "INS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_italic, "I" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_item, "ITEM" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_keyboard, "KBD" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_language, "LANG" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_layer, "LAYER" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_listheader, "LH" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_map, "MAP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_math, "MATH" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_menulist, "MENU" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_multicol, "MULTICOL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_noembed, "NOEMBED" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_noframe, "NOFRAME" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_noframes, "NOFRAMES" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_noscript, "NOSCRIPT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_note, "NOTE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_orderlist, "OL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_parabreak, "P" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_person, "PERSON" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_plaintext, "T" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_preformtxt, "PRE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_root, "ROOT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_row, "ROW" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sample, "SAMP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_script, "SCRIPT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_select, "SELECT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_shortquote, "Q" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_smallprint, "SMALL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_span, "SPAN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_squareroot, "AQRT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_strikethrough, "S" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_strong, "STRONG" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_style, "STYLE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_subscript, "SUB" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_superscript, "SUP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_table, "TABLE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_tablerow, "TR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_tabledata, "TD" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_tableheader, "TH" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_tbody, "TBODY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_teletype, "TT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_text, "TEXT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_textarea, "TEXTAREA" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_textflow, "TEXTFLOW" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_tfoot, "TFOOT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_thead, "THEAD" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_tilde, "TILDE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_title, "TITLE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_underline, "U" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_unorderlist, "UL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_variable, "VAR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_vector, "VEC" );
+#define OOO_STRING_SVTOOLS_HTML_abbreviation "ABBREV"
+#define OOO_STRING_SVTOOLS_HTML_above "ABOVE"
+#define OOO_STRING_SVTOOLS_HTML_acronym "ACRONYM"
+#define OOO_STRING_SVTOOLS_HTML_address "ADDRESS"
+#define OOO_STRING_SVTOOLS_HTML_anchor "A"
+#define OOO_STRING_SVTOOLS_HTML_applet "APPLET"
+#define OOO_STRING_SVTOOLS_HTML_array "ARRAY"
+#define OOO_STRING_SVTOOLS_HTML_author "AU"
+#define OOO_STRING_SVTOOLS_HTML_banner "BANNER"
+#define OOO_STRING_SVTOOLS_HTML_bar "BAR"
+#define OOO_STRING_SVTOOLS_HTML_basefont "BASEFONT"
+#define OOO_STRING_SVTOOLS_HTML_below "BELOW"
+#define OOO_STRING_SVTOOLS_HTML_bigprint "BIG"
+#define OOO_STRING_SVTOOLS_HTML_blink "BLINK"
+#define OOO_STRING_SVTOOLS_HTML_blockquote "BLOCKQUOTE"
+#define OOO_STRING_SVTOOLS_HTML_blockquote30 "BQ"
+#define OOO_STRING_SVTOOLS_HTML_body "BODY"
+#define OOO_STRING_SVTOOLS_HTML_bold "B"
+#define OOO_STRING_SVTOOLS_HTML_boldtext "BT"
+#define OOO_STRING_SVTOOLS_HTML_box "BOX"
+#define OOO_STRING_SVTOOLS_HTML_caption "CAPTION"
+#define OOO_STRING_SVTOOLS_HTML_center "CENTER"
+#define OOO_STRING_SVTOOLS_HTML_citiation "CITE"
+#define OOO_STRING_SVTOOLS_HTML_code "CODE"
+#define OOO_STRING_SVTOOLS_HTML_col "COL"
+#define OOO_STRING_SVTOOLS_HTML_colgroup "COLGROUP"
+#define OOO_STRING_SVTOOLS_HTML_credit "CREDIT"
+#define OOO_STRING_SVTOOLS_HTML_dd "DD"
+#define OOO_STRING_SVTOOLS_HTML_deflist "DL"
+#define OOO_STRING_SVTOOLS_HTML_deletedtext "DEL"
+#define OOO_STRING_SVTOOLS_HTML_dirlist "DIR"
+#define OOO_STRING_SVTOOLS_HTML_division "DIV"
+#define OOO_STRING_SVTOOLS_HTML_dot "DOT"
+#define OOO_STRING_SVTOOLS_HTML_doubledot "DDOT"
+#define OOO_STRING_SVTOOLS_HTML_dt "DT"
+#define OOO_STRING_SVTOOLS_HTML_emphasis "EM"
+#define OOO_STRING_SVTOOLS_HTML_figure "FIG"
+#define OOO_STRING_SVTOOLS_HTML_font "FONT"
+#define OOO_STRING_SVTOOLS_HTML_footnote "FN"
+#define OOO_STRING_SVTOOLS_HTML_form "FORM"
+#define OOO_STRING_SVTOOLS_HTML_frame "FRAME"
+#define OOO_STRING_SVTOOLS_HTML_frameset "FRAMESET"
+#define OOO_STRING_SVTOOLS_HTML_hat "HAT"
+#define OOO_STRING_SVTOOLS_HTML_head1 "H1"
+#define OOO_STRING_SVTOOLS_HTML_head2 "H2"
+#define OOO_STRING_SVTOOLS_HTML_head3 "H3"
+#define OOO_STRING_SVTOOLS_HTML_head4 "H4"
+#define OOO_STRING_SVTOOLS_HTML_head5 "H5"
+#define OOO_STRING_SVTOOLS_HTML_head6 "H6"
+#define OOO_STRING_SVTOOLS_HTML_head "HEAD"
+#define OOO_STRING_SVTOOLS_HTML_html "HTML"
+#define OOO_STRING_SVTOOLS_HTML_iframe "IFRAME"
+#define OOO_STRING_SVTOOLS_HTML_ilayer "ILAYER"
+#define OOO_STRING_SVTOOLS_HTML_insertedtext "INS"
+#define OOO_STRING_SVTOOLS_HTML_italic "I"
+#define OOO_STRING_SVTOOLS_HTML_item "ITEM"
+#define OOO_STRING_SVTOOLS_HTML_keyboard "KBD"
+#define OOO_STRING_SVTOOLS_HTML_language "LANG"
+#define OOO_STRING_SVTOOLS_HTML_layer "LAYER"
+#define OOO_STRING_SVTOOLS_HTML_listheader "LH"
+#define OOO_STRING_SVTOOLS_HTML_map "MAP"
+#define OOO_STRING_SVTOOLS_HTML_math "MATH"
+#define OOO_STRING_SVTOOLS_HTML_menulist "MENU"
+#define OOO_STRING_SVTOOLS_HTML_multicol "MULTICOL"
+#define OOO_STRING_SVTOOLS_HTML_noembed "NOEMBED"
+#define OOO_STRING_SVTOOLS_HTML_noframe "NOFRAME"
+#define OOO_STRING_SVTOOLS_HTML_noframes "NOFRAMES"
+#define OOO_STRING_SVTOOLS_HTML_noscript "NOSCRIPT"
+#define OOO_STRING_SVTOOLS_HTML_note "NOTE"
+#define OOO_STRING_SVTOOLS_HTML_object "OBJECT"
+#define OOO_STRING_SVTOOLS_HTML_orderlist "OL"
+#define OOO_STRING_SVTOOLS_HTML_parabreak "P"
+#define OOO_STRING_SVTOOLS_HTML_person "PERSON"
+#define OOO_STRING_SVTOOLS_HTML_plaintext "T"
+#define OOO_STRING_SVTOOLS_HTML_preformtxt "PRE"
+#define OOO_STRING_SVTOOLS_HTML_root "ROOT"
+#define OOO_STRING_SVTOOLS_HTML_row "ROW"
+#define OOO_STRING_SVTOOLS_HTML_sample "SAMP"
+#define OOO_STRING_SVTOOLS_HTML_script "SCRIPT"
+#define OOO_STRING_SVTOOLS_HTML_select "SELECT"
+#define OOO_STRING_SVTOOLS_HTML_shortquote "Q"
+#define OOO_STRING_SVTOOLS_HTML_smallprint "SMALL"
+#define OOO_STRING_SVTOOLS_HTML_span "SPAN"
+#define OOO_STRING_SVTOOLS_HTML_squareroot "AQRT"
+#define OOO_STRING_SVTOOLS_HTML_strikethrough "S"
+#define OOO_STRING_SVTOOLS_HTML_strong "STRONG"
+#define OOO_STRING_SVTOOLS_HTML_style "STYLE"
+#define OOO_STRING_SVTOOLS_HTML_subscript "SUB"
+#define OOO_STRING_SVTOOLS_HTML_superscript "SUP"
+#define OOO_STRING_SVTOOLS_HTML_table "TABLE"
+#define OOO_STRING_SVTOOLS_HTML_tablerow "TR"
+#define OOO_STRING_SVTOOLS_HTML_tabledata "TD"
+#define OOO_STRING_SVTOOLS_HTML_tableheader "TH"
+#define OOO_STRING_SVTOOLS_HTML_tbody "TBODY"
+#define OOO_STRING_SVTOOLS_HTML_teletype "TT"
+#define OOO_STRING_SVTOOLS_HTML_text "TEXT"
+#define OOO_STRING_SVTOOLS_HTML_textarea "TEXTAREA"
+#define OOO_STRING_SVTOOLS_HTML_textflow "TEXTFLOW"
+#define OOO_STRING_SVTOOLS_HTML_tfoot "TFOOT"
+#define OOO_STRING_SVTOOLS_HTML_thead "THEAD"
+#define OOO_STRING_SVTOOLS_HTML_tilde "TILDE"
+#define OOO_STRING_SVTOOLS_HTML_title "TITLE"
+#define OOO_STRING_SVTOOLS_HTML_underline "U"
+#define OOO_STRING_SVTOOLS_HTML_unorderlist "UL"
+#define OOO_STRING_SVTOOLS_HTML_variable "VAR"
+#define OOO_STRING_SVTOOLS_HTML_vector "VEC"
// obsolete features
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_xmp, "XMP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_listing, "LISTING" );
+#define OOO_STRING_SVTOOLS_HTML_xmp "XMP"
+#define OOO_STRING_SVTOOLS_HTML_listing "LISTING"
// proposed features
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_definstance, "DFN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_strike, "STRIKE" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_bgsound, "BGSOUND" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_comment2, "COMMENT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_marquee, "MARQUEE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_plaintext2, "PLAINTEXT" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdfield, "SDFIELD" );
+#define OOO_STRING_SVTOOLS_HTML_definstance "DFN"
+#define OOO_STRING_SVTOOLS_HTML_strike "STRIKE"
+#define OOO_STRING_SVTOOLS_HTML_bgsound "BGSOUND"
+#define OOO_STRING_SVTOOLS_HTML_comment2 "COMMENT"
+#define OOO_STRING_SVTOOLS_HTML_marquee "MARQUEE"
+#define OOO_STRING_SVTOOLS_HTML_plaintext2 "PLAINTEXT"
+#define OOO_STRING_SVTOOLS_HTML_sdfield "SDFIELD"
// die Namen fuer alle Zeichen
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_lt, "lt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_gt, "gt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_amp, "amp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_quot, "quot" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Aacute, "Aacute" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Agrave, "Agrave" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Acirc, "Acirc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Atilde, "Atilde" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Aring, "Aring" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Auml, "Auml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_AElig, "AElig" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ccedil, "Ccedil" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Eacute, "Eacute" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Egrave, "Egrave" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ecirc, "Ecirc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Euml, "Euml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Iacute, "Iacute" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Igrave, "Igrave" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Icirc, "Icirc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Iuml, "Iuml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_ETH, "ETH" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ntilde, "Ntilde" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Oacute, "Oacute" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ograve, "Ograve" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ocirc, "Ocirc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Otilde, "Otilde" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ouml, "Ouml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Oslash, "Oslash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Uacute, "Uacute" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ugrave, "Ugrave" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Ucirc, "Ucirc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Uuml, "Uuml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_Yacute, "Yacute" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_THORN, "THORN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_szlig, "szlig" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_aacute, "aacute" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_agrave, "agrave" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_acirc, "acirc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_atilde, "atilde" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_aring, "aring" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_auml, "auml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_aelig, "aelig" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ccedil, "ccedil" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_eacute, "eacute" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_egrave, "egrave" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ecirc, "ecirc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_euml, "euml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_iacute, "iacute" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_igrave, "igrave" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_icirc, "icirc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_iuml, "iuml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_eth, "eth" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ntilde, "ntilde" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_oacute, "oacute" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ograve, "ograve" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ocirc, "ocirc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_otilde, "otilde" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ouml, "ouml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_oslash, "oslash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_uacute, "uacute" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ugrave, "ugrave" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ucirc, "ucirc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_uuml, "uuml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_yacute, "yacute" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_thorn, "thorn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_yuml, "yuml" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_acute, "acute" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_brvbar, "brvbar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_cedil, "cedil" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_cent, "cent" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_copy, "copy" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_curren, "curren" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_deg, "deg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_divide, "divide" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_frac12, "frac12" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_frac14, "frac14" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_frac34, "frac34" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_iexcl, "iexcl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_iquest, "iquest" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_laquo, "laquo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_macr, "macr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_micro, "micro" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_middot, "middot" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_nbsp, "nbsp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_not, "not" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ordf, "ordf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ordm, "ordm" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_para, "para" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_plusmn, "plusmn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_pound, "pound" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_raquo, "raquo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_reg, "reg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sect, "sect" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_shy, "shy" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sup1, "sup1" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sup2, "sup2" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sup3, "sup3" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_times, "times" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_uml, "uml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_yen, "yen" );
+#define OOO_STRING_SVTOOLS_HTML_C_lt "lt"
+#define OOO_STRING_SVTOOLS_HTML_C_gt "gt"
+#define OOO_STRING_SVTOOLS_HTML_C_amp "amp"
+#define OOO_STRING_SVTOOLS_HTML_C_quot "quot"
+#define OOO_STRING_SVTOOLS_HTML_C_Aacute "Aacute"
+#define OOO_STRING_SVTOOLS_HTML_C_Agrave "Agrave"
+#define OOO_STRING_SVTOOLS_HTML_C_Acirc "Acirc"
+#define OOO_STRING_SVTOOLS_HTML_C_Atilde "Atilde"
+#define OOO_STRING_SVTOOLS_HTML_C_Aring "Aring"
+#define OOO_STRING_SVTOOLS_HTML_C_Auml "Auml"
+#define OOO_STRING_SVTOOLS_HTML_C_AElig "AElig"
+#define OOO_STRING_SVTOOLS_HTML_C_Ccedil "Ccedil"
+#define OOO_STRING_SVTOOLS_HTML_C_Eacute "Eacute"
+#define OOO_STRING_SVTOOLS_HTML_C_Egrave "Egrave"
+#define OOO_STRING_SVTOOLS_HTML_C_Ecirc "Ecirc"
+#define OOO_STRING_SVTOOLS_HTML_C_Euml "Euml"
+#define OOO_STRING_SVTOOLS_HTML_C_Iacute "Iacute"
+#define OOO_STRING_SVTOOLS_HTML_C_Igrave "Igrave"
+#define OOO_STRING_SVTOOLS_HTML_C_Icirc "Icirc"
+#define OOO_STRING_SVTOOLS_HTML_C_Iuml "Iuml"
+#define OOO_STRING_SVTOOLS_HTML_C_ETH "ETH"
+#define OOO_STRING_SVTOOLS_HTML_C_Ntilde "Ntilde"
+#define OOO_STRING_SVTOOLS_HTML_C_Oacute "Oacute"
+#define OOO_STRING_SVTOOLS_HTML_C_Ograve "Ograve"
+#define OOO_STRING_SVTOOLS_HTML_C_Ocirc "Ocirc"
+#define OOO_STRING_SVTOOLS_HTML_C_Otilde "Otilde"
+#define OOO_STRING_SVTOOLS_HTML_C_Ouml "Ouml"
+#define OOO_STRING_SVTOOLS_HTML_C_Oslash "Oslash"
+#define OOO_STRING_SVTOOLS_HTML_C_Uacute "Uacute"
+#define OOO_STRING_SVTOOLS_HTML_C_Ugrave "Ugrave"
+#define OOO_STRING_SVTOOLS_HTML_C_Ucirc "Ucirc"
+#define OOO_STRING_SVTOOLS_HTML_C_Uuml "Uuml"
+#define OOO_STRING_SVTOOLS_HTML_C_Yacute "Yacute"
+#define OOO_STRING_SVTOOLS_HTML_C_THORN "THORN"
+#define OOO_STRING_SVTOOLS_HTML_C_szlig "szlig"
+#define OOO_STRING_SVTOOLS_HTML_S_aacute "aacute"
+#define OOO_STRING_SVTOOLS_HTML_S_agrave "agrave"
+#define OOO_STRING_SVTOOLS_HTML_S_acirc "acirc"
+#define OOO_STRING_SVTOOLS_HTML_S_atilde "atilde"
+#define OOO_STRING_SVTOOLS_HTML_S_aring "aring"
+#define OOO_STRING_SVTOOLS_HTML_S_auml "auml"
+#define OOO_STRING_SVTOOLS_HTML_S_aelig "aelig"
+#define OOO_STRING_SVTOOLS_HTML_S_ccedil "ccedil"
+#define OOO_STRING_SVTOOLS_HTML_S_eacute "eacute"
+#define OOO_STRING_SVTOOLS_HTML_S_egrave "egrave"
+#define OOO_STRING_SVTOOLS_HTML_S_ecirc "ecirc"
+#define OOO_STRING_SVTOOLS_HTML_S_euml "euml"
+#define OOO_STRING_SVTOOLS_HTML_S_iacute "iacute"
+#define OOO_STRING_SVTOOLS_HTML_S_igrave "igrave"
+#define OOO_STRING_SVTOOLS_HTML_S_icirc "icirc"
+#define OOO_STRING_SVTOOLS_HTML_S_iuml "iuml"
+#define OOO_STRING_SVTOOLS_HTML_S_eth "eth"
+#define OOO_STRING_SVTOOLS_HTML_S_ntilde "ntilde"
+#define OOO_STRING_SVTOOLS_HTML_S_oacute "oacute"
+#define OOO_STRING_SVTOOLS_HTML_S_ograve "ograve"
+#define OOO_STRING_SVTOOLS_HTML_S_ocirc "ocirc"
+#define OOO_STRING_SVTOOLS_HTML_S_otilde "otilde"
+#define OOO_STRING_SVTOOLS_HTML_S_ouml "ouml"
+#define OOO_STRING_SVTOOLS_HTML_S_oslash "oslash"
+#define OOO_STRING_SVTOOLS_HTML_S_uacute "uacute"
+#define OOO_STRING_SVTOOLS_HTML_S_ugrave "ugrave"
+#define OOO_STRING_SVTOOLS_HTML_S_ucirc "ucirc"
+#define OOO_STRING_SVTOOLS_HTML_S_uuml "uuml"
+#define OOO_STRING_SVTOOLS_HTML_S_yacute "yacute"
+#define OOO_STRING_SVTOOLS_HTML_S_thorn "thorn"
+#define OOO_STRING_SVTOOLS_HTML_S_yuml "yuml"
+#define OOO_STRING_SVTOOLS_HTML_S_acute "acute"
+#define OOO_STRING_SVTOOLS_HTML_S_brvbar "brvbar"
+#define OOO_STRING_SVTOOLS_HTML_S_cedil "cedil"
+#define OOO_STRING_SVTOOLS_HTML_S_cent "cent"
+#define OOO_STRING_SVTOOLS_HTML_S_copy "copy"
+#define OOO_STRING_SVTOOLS_HTML_S_curren "curren"
+#define OOO_STRING_SVTOOLS_HTML_S_deg "deg"
+#define OOO_STRING_SVTOOLS_HTML_S_divide "divide"
+#define OOO_STRING_SVTOOLS_HTML_S_frac12 "frac12"
+#define OOO_STRING_SVTOOLS_HTML_S_frac14 "frac14"
+#define OOO_STRING_SVTOOLS_HTML_S_frac34 "frac34"
+#define OOO_STRING_SVTOOLS_HTML_S_iexcl "iexcl"
+#define OOO_STRING_SVTOOLS_HTML_S_iquest "iquest"
+#define OOO_STRING_SVTOOLS_HTML_S_laquo "laquo"
+#define OOO_STRING_SVTOOLS_HTML_S_macr "macr"
+#define OOO_STRING_SVTOOLS_HTML_S_micro "micro"
+#define OOO_STRING_SVTOOLS_HTML_S_middot "middot"
+#define OOO_STRING_SVTOOLS_HTML_S_nbsp "nbsp"
+#define OOO_STRING_SVTOOLS_HTML_S_not "not"
+#define OOO_STRING_SVTOOLS_HTML_S_ordf "ordf"
+#define OOO_STRING_SVTOOLS_HTML_S_ordm "ordm"
+#define OOO_STRING_SVTOOLS_HTML_S_para "para"
+#define OOO_STRING_SVTOOLS_HTML_S_plusmn "plusmn"
+#define OOO_STRING_SVTOOLS_HTML_S_pound "pound"
+#define OOO_STRING_SVTOOLS_HTML_S_raquo "raquo"
+#define OOO_STRING_SVTOOLS_HTML_S_reg "reg"
+#define OOO_STRING_SVTOOLS_HTML_S_sect "sect"
+#define OOO_STRING_SVTOOLS_HTML_S_shy "shy"
+#define OOO_STRING_SVTOOLS_HTML_S_sup1 "sup1"
+#define OOO_STRING_SVTOOLS_HTML_S_sup2 "sup2"
+#define OOO_STRING_SVTOOLS_HTML_S_sup3 "sup3"
+#define OOO_STRING_SVTOOLS_HTML_S_times "times"
+#define OOO_STRING_SVTOOLS_HTML_S_uml "uml"
+#define OOO_STRING_SVTOOLS_HTML_S_yen "yen"
// Netscape kennt noch ein paar in Grossbuchstaben ...
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_LT, "LT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_GT, "GT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_AMP, "AMP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_C_QUOT, "QUOT" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_COPY, "COPY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_REG, "REG" );
-
-//HTML4
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_alefsym, "alefsym" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Alpha, "Alpha" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_alpha, "alpha" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_and, "and" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ang, "ang" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_asymp, "asymp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_bdquo, "bdquo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Beta, "Beta" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_beta, "beta" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_bull, "bull" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_cap, "cap" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_chi, "chi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Chi, "Chi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_circ, "circ" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_clubs, "clubs" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_cong, "cong" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_crarr, "crarr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_cup, "cup" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_dagger, "dagger" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Dagger, "Dagger" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_darr, "darr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_dArr, "dArr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Delta, "Delta" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_delta, "delta" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_diams, "diams" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_empty, "empty" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_emsp, "emsp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ensp, "ensp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Epsilon, "Epsilon" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_epsilon, "epsilon" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_equiv, "equiv" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Eta, "Eta" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_eta, "eta" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_euro, "euro" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_exist, "exist" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_fnof, "fnof" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_forall, "forall" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_frasl, "frasl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Gamma, "Gamma" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_gamma, "gamma" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ge, "ge" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_harr, "harr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_hArr, "hArr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_hearts, "hearts" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_hellip, "hellip" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_image, "image" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_infin, "infin" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_int, "int" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Iota, "Iota" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_iota, "iota" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_isin, "isin" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Kappa, "Kappa" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_kappa, "kappa" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Lambda, "Lambda" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lambda, "lambda" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lang, "lang" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_larr, "larr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lArr, "lArr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lceil, "lceil" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ldquo, "ldquo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_le, "le" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lfloor, "lfloor" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lowast, "lowast" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_loz, "loz" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lrm, "lrm" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lsaquo, "lsaquo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_lsquo, "lsquo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_mdash, "mdash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_minus, "minus" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Mu, "Mu" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_mu, "mu" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_nabla, "nabla" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ndash, "ndash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ne, "ne" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_ni, "ni" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_notin, "notin" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_nsub, "nsub" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Nu, "Nu" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_nu, "nu" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_OElig, "OElig" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_oelig, "oelig" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_oline, "oline" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Omega, "Omega" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_omega, "omega" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Omicron, "Omicron" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_omicron, "omicron" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_oplus, "oplus" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_or, "or" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_otimes, "otimes" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_part, "part" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_permil, "permil" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_perp, "perp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Phi, "Phi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_phi, "phi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Pi, "Pi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_pi, "pi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_piv, "piv" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_prime, "prime" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Prime, "Prime" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_prod, "prod" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_prop, "prop" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Psi, "Psi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_psi, "psi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_radic, "radic" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rang, "rang" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rarr, "rarr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rArr, "rArr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rceil, "rceil" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rdquo, "rdquo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_real, "real" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rfloor, "rfloor" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Rho, "Rho" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rho, "rho" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rlm, "rlm" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rsaquo, "rsaquo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_rsquo, "rsquo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sbquo, "sbquo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Scaron, "Scaron" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_scaron, "scaron" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sdot, "sdot" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Sigma, "Sigma" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sigma, "sigma" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sigmaf, "sigmaf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sim, "sim" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_spades, "spades" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sub, "sub" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sube, "sube" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sum, "sum" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_sup, "sup" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_supe, "supe" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Tau, "Tau" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_tau, "tau" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_there4, "there4" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Theta, "Theta" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_theta, "theta" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_thetasym, "thetasym" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_thinsp, "thinsp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_tilde, "tilde" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_trade, "trade" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_uarr, "uarr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_uArr, "uArr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_upsih, "upsih" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Upsilon, "Upsilon" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_upsilon, "upsilon" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_weierp, "weierp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Xi, "Xi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_xi, "xi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Yuml, "Yuml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_Zeta, "Zeta" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_zeta, "zeta" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_zwj, "zwj" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_S_zwnj, "zwnj" );
+#define OOO_STRING_SVTOOLS_HTML_C_LT "LT"
+#define OOO_STRING_SVTOOLS_HTML_C_GT "GT"
+#define OOO_STRING_SVTOOLS_HTML_C_AMP "AMP"
+#define OOO_STRING_SVTOOLS_HTML_C_QUOT "QUOT"
+#define OOO_STRING_SVTOOLS_HTML_S_COPY "COPY"
+#define OOO_STRING_SVTOOLS_HTML_S_REG "REG"
+
+// HTML4
+#define OOO_STRING_SVTOOLS_HTML_S_alefsym "alefsym"
+#define OOO_STRING_SVTOOLS_HTML_S_Alpha "Alpha"
+#define OOO_STRING_SVTOOLS_HTML_S_alpha "alpha"
+#define OOO_STRING_SVTOOLS_HTML_S_and "and"
+#define OOO_STRING_SVTOOLS_HTML_S_ang "ang"
+#define OOO_STRING_SVTOOLS_HTML_S_asymp "asymp"
+#define OOO_STRING_SVTOOLS_HTML_S_bdquo "bdquo"
+#define OOO_STRING_SVTOOLS_HTML_S_Beta "Beta"
+#define OOO_STRING_SVTOOLS_HTML_S_beta "beta"
+#define OOO_STRING_SVTOOLS_HTML_S_bull "bull"
+#define OOO_STRING_SVTOOLS_HTML_S_cap "cap"
+#define OOO_STRING_SVTOOLS_HTML_S_chi "chi"
+#define OOO_STRING_SVTOOLS_HTML_S_Chi "Chi"
+#define OOO_STRING_SVTOOLS_HTML_S_circ "circ"
+#define OOO_STRING_SVTOOLS_HTML_S_clubs "clubs"
+#define OOO_STRING_SVTOOLS_HTML_S_cong "cong"
+#define OOO_STRING_SVTOOLS_HTML_S_crarr "crarr"
+#define OOO_STRING_SVTOOLS_HTML_S_cup "cup"
+#define OOO_STRING_SVTOOLS_HTML_S_dagger "dagger"
+#define OOO_STRING_SVTOOLS_HTML_S_Dagger "Dagger"
+#define OOO_STRING_SVTOOLS_HTML_S_darr "darr"
+#define OOO_STRING_SVTOOLS_HTML_S_dArr "dArr"
+#define OOO_STRING_SVTOOLS_HTML_S_Delta "Delta"
+#define OOO_STRING_SVTOOLS_HTML_S_delta "delta"
+#define OOO_STRING_SVTOOLS_HTML_S_diams "diams"
+#define OOO_STRING_SVTOOLS_HTML_S_empty "empty"
+#define OOO_STRING_SVTOOLS_HTML_S_emsp "emsp"
+#define OOO_STRING_SVTOOLS_HTML_S_ensp "ensp"
+#define OOO_STRING_SVTOOLS_HTML_S_Epsilon "Epsilon"
+#define OOO_STRING_SVTOOLS_HTML_S_epsilon "epsilon"
+#define OOO_STRING_SVTOOLS_HTML_S_equiv "equiv"
+#define OOO_STRING_SVTOOLS_HTML_S_Eta "Eta"
+#define OOO_STRING_SVTOOLS_HTML_S_eta "eta"
+#define OOO_STRING_SVTOOLS_HTML_S_euro "euro"
+#define OOO_STRING_SVTOOLS_HTML_S_exist "exist"
+#define OOO_STRING_SVTOOLS_HTML_S_fnof "fnof"
+#define OOO_STRING_SVTOOLS_HTML_S_forall "forall"
+#define OOO_STRING_SVTOOLS_HTML_S_frasl "frasl"
+#define OOO_STRING_SVTOOLS_HTML_S_Gamma "Gamma"
+#define OOO_STRING_SVTOOLS_HTML_S_gamma "gamma"
+#define OOO_STRING_SVTOOLS_HTML_S_ge "ge"
+#define OOO_STRING_SVTOOLS_HTML_S_harr "harr"
+#define OOO_STRING_SVTOOLS_HTML_S_hArr "hArr"
+#define OOO_STRING_SVTOOLS_HTML_S_hearts "hearts"
+#define OOO_STRING_SVTOOLS_HTML_S_hellip "hellip"
+#define OOO_STRING_SVTOOLS_HTML_S_image "image"
+#define OOO_STRING_SVTOOLS_HTML_S_infin "infin"
+#define OOO_STRING_SVTOOLS_HTML_S_int "int"
+#define OOO_STRING_SVTOOLS_HTML_S_Iota "Iota"
+#define OOO_STRING_SVTOOLS_HTML_S_iota "iota"
+#define OOO_STRING_SVTOOLS_HTML_S_isin "isin"
+#define OOO_STRING_SVTOOLS_HTML_S_Kappa "Kappa"
+#define OOO_STRING_SVTOOLS_HTML_S_kappa "kappa"
+#define OOO_STRING_SVTOOLS_HTML_S_Lambda "Lambda"
+#define OOO_STRING_SVTOOLS_HTML_S_lambda "lambda"
+#define OOO_STRING_SVTOOLS_HTML_S_lang "lang"
+#define OOO_STRING_SVTOOLS_HTML_S_larr "larr"
+#define OOO_STRING_SVTOOLS_HTML_S_lArr "lArr"
+#define OOO_STRING_SVTOOLS_HTML_S_lceil "lceil"
+#define OOO_STRING_SVTOOLS_HTML_S_ldquo "ldquo"
+#define OOO_STRING_SVTOOLS_HTML_S_le "le"
+#define OOO_STRING_SVTOOLS_HTML_S_lfloor "lfloor"
+#define OOO_STRING_SVTOOLS_HTML_S_lowast "lowast"
+#define OOO_STRING_SVTOOLS_HTML_S_loz "loz"
+#define OOO_STRING_SVTOOLS_HTML_S_lrm "lrm"
+#define OOO_STRING_SVTOOLS_HTML_S_lsaquo "lsaquo"
+#define OOO_STRING_SVTOOLS_HTML_S_lsquo "lsquo"
+#define OOO_STRING_SVTOOLS_HTML_S_mdash "mdash"
+#define OOO_STRING_SVTOOLS_HTML_S_minus "minus"
+#define OOO_STRING_SVTOOLS_HTML_S_Mu "Mu"
+#define OOO_STRING_SVTOOLS_HTML_S_mu "mu"
+#define OOO_STRING_SVTOOLS_HTML_S_nabla "nabla"
+#define OOO_STRING_SVTOOLS_HTML_S_ndash "ndash"
+#define OOO_STRING_SVTOOLS_HTML_S_ne "ne"
+#define OOO_STRING_SVTOOLS_HTML_S_ni "ni"
+#define OOO_STRING_SVTOOLS_HTML_S_notin "notin"
+#define OOO_STRING_SVTOOLS_HTML_S_nsub "nsub"
+#define OOO_STRING_SVTOOLS_HTML_S_Nu "Nu"
+#define OOO_STRING_SVTOOLS_HTML_S_nu "nu"
+#define OOO_STRING_SVTOOLS_HTML_S_OElig "OElig"
+#define OOO_STRING_SVTOOLS_HTML_S_oelig "oelig"
+#define OOO_STRING_SVTOOLS_HTML_S_oline "oline"
+#define OOO_STRING_SVTOOLS_HTML_S_Omega "Omega"
+#define OOO_STRING_SVTOOLS_HTML_S_omega "omega"
+#define OOO_STRING_SVTOOLS_HTML_S_Omicron "Omicron"
+#define OOO_STRING_SVTOOLS_HTML_S_omicron "omicron"
+#define OOO_STRING_SVTOOLS_HTML_S_oplus "oplus"
+#define OOO_STRING_SVTOOLS_HTML_S_or "or"
+#define OOO_STRING_SVTOOLS_HTML_S_otimes "otimes"
+#define OOO_STRING_SVTOOLS_HTML_S_part "part"
+#define OOO_STRING_SVTOOLS_HTML_S_permil "permil"
+#define OOO_STRING_SVTOOLS_HTML_S_perp "perp"
+#define OOO_STRING_SVTOOLS_HTML_S_Phi "Phi"
+#define OOO_STRING_SVTOOLS_HTML_S_phi "phi"
+#define OOO_STRING_SVTOOLS_HTML_S_Pi "Pi"
+#define OOO_STRING_SVTOOLS_HTML_S_pi "pi"
+#define OOO_STRING_SVTOOLS_HTML_S_piv "piv"
+#define OOO_STRING_SVTOOLS_HTML_S_prime "prime"
+#define OOO_STRING_SVTOOLS_HTML_S_Prime "Prime"
+#define OOO_STRING_SVTOOLS_HTML_S_prod "prod"
+#define OOO_STRING_SVTOOLS_HTML_S_prop "prop"
+#define OOO_STRING_SVTOOLS_HTML_S_Psi "Psi"
+#define OOO_STRING_SVTOOLS_HTML_S_psi "psi"
+#define OOO_STRING_SVTOOLS_HTML_S_radic "radic"
+#define OOO_STRING_SVTOOLS_HTML_S_rang "rang"
+#define OOO_STRING_SVTOOLS_HTML_S_rarr "rarr"
+#define OOO_STRING_SVTOOLS_HTML_S_rArr "rArr"
+#define OOO_STRING_SVTOOLS_HTML_S_rceil "rceil"
+#define OOO_STRING_SVTOOLS_HTML_S_rdquo "rdquo"
+#define OOO_STRING_SVTOOLS_HTML_S_real "real"
+#define OOO_STRING_SVTOOLS_HTML_S_rfloor "rfloor"
+#define OOO_STRING_SVTOOLS_HTML_S_Rho "Rho"
+#define OOO_STRING_SVTOOLS_HTML_S_rho "rho"
+#define OOO_STRING_SVTOOLS_HTML_S_rlm "rlm"
+#define OOO_STRING_SVTOOLS_HTML_S_rsaquo "rsaquo"
+#define OOO_STRING_SVTOOLS_HTML_S_rsquo "rsquo"
+#define OOO_STRING_SVTOOLS_HTML_S_sbquo "sbquo"
+#define OOO_STRING_SVTOOLS_HTML_S_Scaron "Scaron"
+#define OOO_STRING_SVTOOLS_HTML_S_scaron "scaron"
+#define OOO_STRING_SVTOOLS_HTML_S_sdot "sdot"
+#define OOO_STRING_SVTOOLS_HTML_S_Sigma "Sigma"
+#define OOO_STRING_SVTOOLS_HTML_S_sigma "sigma"
+#define OOO_STRING_SVTOOLS_HTML_S_sigmaf "sigmaf"
+#define OOO_STRING_SVTOOLS_HTML_S_sim "sim"
+#define OOO_STRING_SVTOOLS_HTML_S_spades "spades"
+#define OOO_STRING_SVTOOLS_HTML_S_sub "sub"
+#define OOO_STRING_SVTOOLS_HTML_S_sube "sube"
+#define OOO_STRING_SVTOOLS_HTML_S_sum "sum"
+#define OOO_STRING_SVTOOLS_HTML_S_sup "sup"
+#define OOO_STRING_SVTOOLS_HTML_S_supe "supe"
+#define OOO_STRING_SVTOOLS_HTML_S_Tau "Tau"
+#define OOO_STRING_SVTOOLS_HTML_S_tau "tau"
+#define OOO_STRING_SVTOOLS_HTML_S_there4 "there4"
+#define OOO_STRING_SVTOOLS_HTML_S_Theta "Theta"
+#define OOO_STRING_SVTOOLS_HTML_S_theta "theta"
+#define OOO_STRING_SVTOOLS_HTML_S_thetasym "thetasym"
+#define OOO_STRING_SVTOOLS_HTML_S_thinsp "thinsp"
+#define OOO_STRING_SVTOOLS_HTML_S_tilde "tilde"
+#define OOO_STRING_SVTOOLS_HTML_S_trade "trade"
+#define OOO_STRING_SVTOOLS_HTML_S_uarr "uarr"
+#define OOO_STRING_SVTOOLS_HTML_S_uArr "uArr"
+#define OOO_STRING_SVTOOLS_HTML_S_upsih "upsih"
+#define OOO_STRING_SVTOOLS_HTML_S_Upsilon "Upsilon"
+#define OOO_STRING_SVTOOLS_HTML_S_upsilon "upsilon"
+#define OOO_STRING_SVTOOLS_HTML_S_weierp "weierp"
+#define OOO_STRING_SVTOOLS_HTML_S_Xi "Xi"
+#define OOO_STRING_SVTOOLS_HTML_S_xi "xi"
+#define OOO_STRING_SVTOOLS_HTML_S_Yuml "Yuml"
+#define OOO_STRING_SVTOOLS_HTML_S_Zeta "Zeta"
+#define OOO_STRING_SVTOOLS_HTML_S_zeta "zeta"
+#define OOO_STRING_SVTOOLS_HTML_S_zwj "zwj"
+#define OOO_STRING_SVTOOLS_HTML_S_zwnj "zwnj"
// HTML Attribut-Token (=Optionen)
// Attribute ohne Wert
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_box, "BOX" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_checked, "CHECKED" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_compact, "COMPACT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_continue, "CONTINUE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_controls, "CONTROLS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_declare, "DECLARE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_disabled, "DISABLED" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_folded, "FOLDED" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_ismap, "ISMAP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_mayscript, "MAYSCRIPT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_multiple, "MULTIPLE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_noflow, "NOFLOW" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_nohref, "NOHREF" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_noresize, "NORESIZE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_noshade, "NOSHADE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_nowrap, "NOWRAP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_plain, "PLAIN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sdfixed, "SDFIXED" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_selected, "SELECTED" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_shapes, "SHAPES" );
+#define OOO_STRING_SVTOOLS_HTML_O_box "BOX"
+#define OOO_STRING_SVTOOLS_HTML_O_checked "CHECKED"
+#define OOO_STRING_SVTOOLS_HTML_O_compact "COMPACT"
+#define OOO_STRING_SVTOOLS_HTML_O_continue "CONTINUE"
+#define OOO_STRING_SVTOOLS_HTML_O_controls "CONTROLS"
+#define OOO_STRING_SVTOOLS_HTML_O_declare "DECLARE"
+#define OOO_STRING_SVTOOLS_HTML_O_disabled "DISABLED"
+#define OOO_STRING_SVTOOLS_HTML_O_folded "FOLDED"
+#define OOO_STRING_SVTOOLS_HTML_O_ismap "ISMAP"
+#define OOO_STRING_SVTOOLS_HTML_O_mayscript "MAYSCRIPT"
+#define OOO_STRING_SVTOOLS_HTML_O_multiple "MULTIPLE"
+#define OOO_STRING_SVTOOLS_HTML_O_noflow "NOFLOW"
+#define OOO_STRING_SVTOOLS_HTML_O_nohref "NOHREF"
+#define OOO_STRING_SVTOOLS_HTML_O_noresize "NORESIZE"
+#define OOO_STRING_SVTOOLS_HTML_O_noshade "NOSHADE"
+#define OOO_STRING_SVTOOLS_HTML_O_nowrap "NOWRAP"
+#define OOO_STRING_SVTOOLS_HTML_O_plain "PLAIN"
+#define OOO_STRING_SVTOOLS_HTML_O_sdfixed "SDFIXED"
+#define OOO_STRING_SVTOOLS_HTML_O_selected "SELECTED"
+#define OOO_STRING_SVTOOLS_HTML_O_shapes "SHAPES"
// Attribute mit einem String als Wert
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_above, "ABOVE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_accesskey, "ACCESSKEY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_accept, "ACCEPT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_add_date, "ADD_DATE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_alt, "ALT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_axes, "AXES" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_axis, "AXIS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_below, "BELOW" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_char, "CHAR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_class, "CLASS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_clip, "CLIP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_code, "CODE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_codetype, "CODETYPE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_colspec, "COLSPEC" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_content, "CONTENT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_coords, "COORDS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_dp, "DP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_enctype, "ENCTYPE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_error, "ERROR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_face, "FACE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_frameborder, "FRAMEBORDER" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_httpequiv, "HTTP-EQUIV" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_language, "LANGUAGE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_last_modified, "LAST_MODIFIED" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_last_visit, "LAST_VISIT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_md, "MD" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_n, "N" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_name, "NAME" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_notation, "NOTATION" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_prompt, "PROMPT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_shape, "SHAPE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_standby, "STANDBY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_style, "STYLE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_title, "TITLE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_value, "VALUE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDval, "SDVAL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDnum, "SDNUM" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sdlibrary, "SDLIBRARY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sdmodule, "SDMODULE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sdevent, "SDEVENT-" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sdaddparam, "SDADDPARAM-" );
+#define OOO_STRING_SVTOOLS_HTML_O_above "ABOVE"
+#define OOO_STRING_SVTOOLS_HTML_O_accesskey "ACCESSKEY"
+#define OOO_STRING_SVTOOLS_HTML_O_accept "ACCEPT"
+#define OOO_STRING_SVTOOLS_HTML_O_add_date "ADD_DATE"
+#define OOO_STRING_SVTOOLS_HTML_O_alt "ALT"
+#define OOO_STRING_SVTOOLS_HTML_O_axes "AXES"
+#define OOO_STRING_SVTOOLS_HTML_O_axis "AXIS"
+#define OOO_STRING_SVTOOLS_HTML_O_below "BELOW"
+#define OOO_STRING_SVTOOLS_HTML_O_char "CHAR"
+#define OOO_STRING_SVTOOLS_HTML_O_class "CLASS"
+#define OOO_STRING_SVTOOLS_HTML_O_clip "CLIP"
+#define OOO_STRING_SVTOOLS_HTML_O_code "CODE"
+#define OOO_STRING_SVTOOLS_HTML_O_codetype "CODETYPE"
+#define OOO_STRING_SVTOOLS_HTML_O_colspec "COLSPEC"
+#define OOO_STRING_SVTOOLS_HTML_O_content "CONTENT"
+#define OOO_STRING_SVTOOLS_HTML_O_coords "COORDS"
+#define OOO_STRING_SVTOOLS_HTML_O_dp "DP"
+#define OOO_STRING_SVTOOLS_HTML_O_enctype "ENCTYPE"
+#define OOO_STRING_SVTOOLS_HTML_O_error "ERROR"
+#define OOO_STRING_SVTOOLS_HTML_O_face "FACE"
+#define OOO_STRING_SVTOOLS_HTML_O_frameborder "FRAMEBORDER"
+#define OOO_STRING_SVTOOLS_HTML_O_httpequiv "HTTP-EQUIV"
+#define OOO_STRING_SVTOOLS_HTML_O_language "LANGUAGE"
+#define OOO_STRING_SVTOOLS_HTML_O_last_modified "LAST_MODIFIED"
+#define OOO_STRING_SVTOOLS_HTML_O_last_visit "LAST_VISIT"
+#define OOO_STRING_SVTOOLS_HTML_O_md "MD"
+#define OOO_STRING_SVTOOLS_HTML_O_n "N"
+#define OOO_STRING_SVTOOLS_HTML_O_name "NAME"
+#define OOO_STRING_SVTOOLS_HTML_O_notation "NOTATION"
+#define OOO_STRING_SVTOOLS_HTML_O_prompt "PROMPT"
+#define OOO_STRING_SVTOOLS_HTML_O_shape "SHAPE"
+#define OOO_STRING_SVTOOLS_HTML_O_standby "STANDBY"
+#define OOO_STRING_SVTOOLS_HTML_O_style "STYLE"
+#define OOO_STRING_SVTOOLS_HTML_O_title "TITLE"
+#define OOO_STRING_SVTOOLS_HTML_O_value "VALUE"
+#define OOO_STRING_SVTOOLS_HTML_O_SDval "SDVAL"
+#define OOO_STRING_SVTOOLS_HTML_O_SDnum "SDNUM"
+#define OOO_STRING_SVTOOLS_HTML_O_sdlibrary "SDLIBRARY"
+#define OOO_STRING_SVTOOLS_HTML_O_sdmodule "SDMODULE"
+#define OOO_STRING_SVTOOLS_HTML_O_sdevent "SDEVENT-"
+#define OOO_STRING_SVTOOLS_HTML_O_sdaddparam "SDADDPARAM-"
// Attribute mit einem SGML-Identifier als Wert
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_from, "FROM" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_id, "ID" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_target, "TARGET" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_to, "TO" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_until, "UNTIL" );
+#define OOO_STRING_SVTOOLS_HTML_O_from "FROM"
+#define OOO_STRING_SVTOOLS_HTML_O_id "ID"
+#define OOO_STRING_SVTOOLS_HTML_O_target "TARGET"
+#define OOO_STRING_SVTOOLS_HTML_O_to "TO"
+#define OOO_STRING_SVTOOLS_HTML_O_until "UNTIL"
// Attribute mit einem URI als Wert
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_action, "ACTION" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_archive, "ARCHIVE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_background, "BACKGROUND" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_classid, "CLASSID" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_codebase, "CODEBASE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_data, "DATA" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_dynsrc, "DYNSRC" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_dynsync, "DYNSYNC" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_imagemap, "IMAGEMAP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_href, "HREF" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_lowsrc, "LOWSRC" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_script, "SCRIPT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_src, "SRC" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_usemap, "USEMAP" );
+#define OOO_STRING_SVTOOLS_HTML_O_action "ACTION"
+#define OOO_STRING_SVTOOLS_HTML_O_archive "ARCHIVE"
+#define OOO_STRING_SVTOOLS_HTML_O_background "BACKGROUND"
+#define OOO_STRING_SVTOOLS_HTML_O_classid "CLASSID"
+#define OOO_STRING_SVTOOLS_HTML_O_codebase "CODEBASE"
+#define OOO_STRING_SVTOOLS_HTML_O_data "DATA"
+#define OOO_STRING_SVTOOLS_HTML_O_dynsrc "DYNSRC"
+#define OOO_STRING_SVTOOLS_HTML_O_dynsync "DYNSYNC"
+#define OOO_STRING_SVTOOLS_HTML_O_imagemap "IMAGEMAP"
+#define OOO_STRING_SVTOOLS_HTML_O_href "HREF"
+#define OOO_STRING_SVTOOLS_HTML_O_lowsrc "LOWSRC"
+#define OOO_STRING_SVTOOLS_HTML_O_script "SCRIPT"
+#define OOO_STRING_SVTOOLS_HTML_O_src "SRC"
+#define OOO_STRING_SVTOOLS_HTML_O_usemap "USEMAP"
// Attribute mit Entity-Namen als Wert
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_dingbat, "DINGBAT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sym, "SYM" );
+#define OOO_STRING_SVTOOLS_HTML_O_dingbat "DINGBAT"
+#define OOO_STRING_SVTOOLS_HTML_O_sym "SYM"
// Attribute mit einer Farbe als Wert (alle Netscape)
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_alink, "ALINK" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_bgcolor, "BGCOLOR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_bordercolor, "BORDERCOLOR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_bordercolorlight, "BORDERCOLORLIGHT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_bordercolordark, "BORDERCOLORDARK" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_color, "COLOR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_link, "LINK" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_text, "TEXT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_vlink, "VLINK" );
+#define OOO_STRING_SVTOOLS_HTML_O_alink "ALINK"
+#define OOO_STRING_SVTOOLS_HTML_O_bgcolor "BGCOLOR"
+#define OOO_STRING_SVTOOLS_HTML_O_bordercolor "BORDERCOLOR"
+#define OOO_STRING_SVTOOLS_HTML_O_bordercolorlight "BORDERCOLORLIGHT"
+#define OOO_STRING_SVTOOLS_HTML_O_bordercolordark "BORDERCOLORDARK"
+#define OOO_STRING_SVTOOLS_HTML_O_color "COLOR"
+#define OOO_STRING_SVTOOLS_HTML_O_link "LINK"
+#define OOO_STRING_SVTOOLS_HTML_O_text "TEXT"
+#define OOO_STRING_SVTOOLS_HTML_O_vlink "VLINK"
// Attribute mit einem numerischen Wert
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_border, "BORDER" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_cellspacing, "CELLSPACING" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_cellpadding, "CELLPADDING" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_charoff, "CHAROFF" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_colspan, "COLSPAN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_framespacing, "FRAMESPACING" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_gutter, "GUTTER" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_indent, "INDENT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_height, "HEIGHT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_hspace, "HSPACE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_left, "LEFT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_leftmargin, "LEFTMARGIN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_loop, "LOOP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_marginheight, "MARGINHEIGHT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_marginwidth, "MARGINWIDTH" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_max, "MAX" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_maxlength, "MAXLENGTH" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_min, "MIN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_pagex, "PAGEX" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_pagey, "PAGEY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_pointsize, "POINT-SIZE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_rowspan, "ROWSPAN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_scrollamount, "SCROLLAMOUNT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_scrolldelay, "SCROLLDELAY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_seqnum, "SEQNUM" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_skip, "SKIP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_span, "SPAN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_tabindex, "TABINDEX" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_top, "TOP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_topmargin, "TOPMARGIN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_vspace, "VSPACE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_weight, "WEIGHT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_width, "WIDTH" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_x, "X" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_y, "Y" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_zindex, "Z-INDEX" );
+#define OOO_STRING_SVTOOLS_HTML_O_border "BORDER"
+#define OOO_STRING_SVTOOLS_HTML_O_cellspacing "CELLSPACING"
+#define OOO_STRING_SVTOOLS_HTML_O_cellpadding "CELLPADDING"
+#define OOO_STRING_SVTOOLS_HTML_O_charoff "CHAROFF"
+#define OOO_STRING_SVTOOLS_HTML_O_colspan "COLSPAN"
+#define OOO_STRING_SVTOOLS_HTML_O_framespacing "FRAMESPACING"
+#define OOO_STRING_SVTOOLS_HTML_O_gutter "GUTTER"
+#define OOO_STRING_SVTOOLS_HTML_O_indent "INDENT"
+#define OOO_STRING_SVTOOLS_HTML_O_height "HEIGHT"
+#define OOO_STRING_SVTOOLS_HTML_O_hspace "HSPACE"
+#define OOO_STRING_SVTOOLS_HTML_O_left "LEFT"
+#define OOO_STRING_SVTOOLS_HTML_O_leftmargin "LEFTMARGIN"
+#define OOO_STRING_SVTOOLS_HTML_O_loop "LOOP"
+#define OOO_STRING_SVTOOLS_HTML_O_marginheight "MARGINHEIGHT"
+#define OOO_STRING_SVTOOLS_HTML_O_marginwidth "MARGINWIDTH"
+#define OOO_STRING_SVTOOLS_HTML_O_max "MAX"
+#define OOO_STRING_SVTOOLS_HTML_O_maxlength "MAXLENGTH"
+#define OOO_STRING_SVTOOLS_HTML_O_min "MIN"
+#define OOO_STRING_SVTOOLS_HTML_O_pagex "PAGEX"
+#define OOO_STRING_SVTOOLS_HTML_O_pagey "PAGEY"
+#define OOO_STRING_SVTOOLS_HTML_O_pointsize "POINT-SIZE"
+#define OOO_STRING_SVTOOLS_HTML_O_rowspan "ROWSPAN"
+#define OOO_STRING_SVTOOLS_HTML_O_scrollamount "SCROLLAMOUNT"
+#define OOO_STRING_SVTOOLS_HTML_O_scrolldelay "SCROLLDELAY"
+#define OOO_STRING_SVTOOLS_HTML_O_seqnum "SEQNUM"
+#define OOO_STRING_SVTOOLS_HTML_O_skip "SKIP"
+#define OOO_STRING_SVTOOLS_HTML_O_span "SPAN"
+#define OOO_STRING_SVTOOLS_HTML_O_tabindex "TABINDEX"
+#define OOO_STRING_SVTOOLS_HTML_O_top "TOP"
+#define OOO_STRING_SVTOOLS_HTML_O_topmargin "TOPMARGIN"
+#define OOO_STRING_SVTOOLS_HTML_O_vspace "VSPACE"
+#define OOO_STRING_SVTOOLS_HTML_O_weight "WEIGHT"
+#define OOO_STRING_SVTOOLS_HTML_O_width "WIDTH"
+#define OOO_STRING_SVTOOLS_HTML_O_x "X"
+#define OOO_STRING_SVTOOLS_HTML_O_y "Y"
+#define OOO_STRING_SVTOOLS_HTML_O_zindex "Z-INDEX"
// Attribute mit Enum-Werten
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_behavior, "BEHAVIOR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_bgproperties, "BGPROPERTIES" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_clear, "CLEAR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_dir, "DIR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_direction, "DIRECTION" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_format, "FORMAT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_frame, "FRAME" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_lang, "LANG" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_method, "METHOD" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_palette, "PALETTE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_rel, "REL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_rev, "REV" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_rules, "RULES" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_scrolling, "SCROLLING" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_sdreadonly, "READONLY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_subtype, "SUBTYPE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_type, "TYPE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_valign, "VALIGN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_valuetype, "VALUETYPE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_visibility, "VISIBILITY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_wrap, "WRAP" );
+#define OOO_STRING_SVTOOLS_HTML_O_behavior "BEHAVIOR"
+#define OOO_STRING_SVTOOLS_HTML_O_bgproperties "BGPROPERTIES"
+#define OOO_STRING_SVTOOLS_HTML_O_clear "CLEAR"
+#define OOO_STRING_SVTOOLS_HTML_O_dir "DIR"
+#define OOO_STRING_SVTOOLS_HTML_O_direction "DIRECTION"
+#define OOO_STRING_SVTOOLS_HTML_O_format "FORMAT"
+#define OOO_STRING_SVTOOLS_HTML_O_frame "FRAME"
+#define OOO_STRING_SVTOOLS_HTML_O_lang "LANG"
+#define OOO_STRING_SVTOOLS_HTML_O_method "METHOD"
+#define OOO_STRING_SVTOOLS_HTML_O_palette "PALETTE"
+#define OOO_STRING_SVTOOLS_HTML_O_rel "REL"
+#define OOO_STRING_SVTOOLS_HTML_O_rev "REV"
+#define OOO_STRING_SVTOOLS_HTML_O_rules "RULES"
+#define OOO_STRING_SVTOOLS_HTML_O_scrolling "SCROLLING"
+#define OOO_STRING_SVTOOLS_HTML_O_sdreadonly "READONLY"
+#define OOO_STRING_SVTOOLS_HTML_O_subtype "SUBTYPE"
+#define OOO_STRING_SVTOOLS_HTML_O_type "TYPE"
+#define OOO_STRING_SVTOOLS_HTML_O_valign "VALIGN"
+#define OOO_STRING_SVTOOLS_HTML_O_valuetype "VALUETYPE"
+#define OOO_STRING_SVTOOLS_HTML_O_visibility "VISIBILITY"
+#define OOO_STRING_SVTOOLS_HTML_O_wrap "WRAP"
// Attribute mit Script-Code als Wert
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onblur, "ONBLUR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onchange, "ONCHANGE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onclick, "ONCLICK" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onfocus, "ONFOCUS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onload, "ONLOAD" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onmouseover, "ONMOUSEOVER" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onreset, "ONRESET" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onselect, "ONSELECT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onsubmit, "ONSUBMIT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onunload, "ONUNLOAD" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onabort, "ONABORT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onerror, "ONERROR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_onmouseout, "ONMOUSEOUT" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonblur, "SDONBLUR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonchange, "SDONCHANGE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonclick, "SDONCLICK" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonfocus, "SDONFOCUS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonload, "SDONLOAD" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonmouseover, "SDONMOUSEOVER" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonreset, "SDONRESET" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonselect, "SDONSELECT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonsubmit, "SDONSUBMIT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonunload, "SDONUNLOAD" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonabort, "SDONABORT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonerror, "SDONERROR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_SDonmouseout, "SDONMOUSEOUT" );
+#define OOO_STRING_SVTOOLS_HTML_O_onblur "ONBLUR"
+#define OOO_STRING_SVTOOLS_HTML_O_onchange "ONCHANGE"
+#define OOO_STRING_SVTOOLS_HTML_O_onclick "ONCLICK"
+#define OOO_STRING_SVTOOLS_HTML_O_onfocus "ONFOCUS"
+#define OOO_STRING_SVTOOLS_HTML_O_onload "ONLOAD"
+#define OOO_STRING_SVTOOLS_HTML_O_onmouseover "ONMOUSEOVER"
+#define OOO_STRING_SVTOOLS_HTML_O_onreset "ONRESET"
+#define OOO_STRING_SVTOOLS_HTML_O_onselect "ONSELECT"
+#define OOO_STRING_SVTOOLS_HTML_O_onsubmit "ONSUBMIT"
+#define OOO_STRING_SVTOOLS_HTML_O_onunload "ONUNLOAD"
+#define OOO_STRING_SVTOOLS_HTML_O_onabort "ONABORT"
+#define OOO_STRING_SVTOOLS_HTML_O_onerror "ONERROR"
+#define OOO_STRING_SVTOOLS_HTML_O_onmouseout "ONMOUSEOUT"
+#define OOO_STRING_SVTOOLS_HTML_O_SDonblur "SDONBLUR"
+#define OOO_STRING_SVTOOLS_HTML_O_SDonchange "SDONCHANGE"
+#define OOO_STRING_SVTOOLS_HTML_O_SDonclick "SDONCLICK"
+#define OOO_STRING_SVTOOLS_HTML_O_SDonfocus "SDONFOCUS"
+#define OOO_STRING_SVTOOLS_HTML_O_SDonload "SDONLOAD"
+#define OOO_STRING_SVTOOLS_HTML_O_SDonmouseover "SDONMOUSEOVER"
+#define OOO_STRING_SVTOOLS_HTML_O_SDonreset "SDONRESET"
+#define OOO_STRING_SVTOOLS_HTML_O_SDonselect "SDONSELECT"
+#define OOO_STRING_SVTOOLS_HTML_O_SDonsubmit "SDONSUBMIT"
+#define OOO_STRING_SVTOOLS_HTML_O_SDonunload "SDONUNLOAD"
+#define OOO_STRING_SVTOOLS_HTML_O_SDonabort "SDONABORT"
+#define OOO_STRING_SVTOOLS_HTML_O_SDonerror "SDONERROR"
+#define OOO_STRING_SVTOOLS_HTML_O_SDonmouseout "SDONMOUSEOUT"
// Attribute mit Kontext-abhaengigen Werten
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_align, "ALIGN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_cols, "COLS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_rows, "ROWS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_start, "START" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_size, "SIZE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_O_units, "UNITS" );
-
+#define OOO_STRING_SVTOOLS_HTML_O_align "ALIGN"
+#define OOO_STRING_SVTOOLS_HTML_O_cols "COLS"
+#define OOO_STRING_SVTOOLS_HTML_O_rows "ROWS"
+#define OOO_STRING_SVTOOLS_HTML_O_start "START"
+#define OOO_STRING_SVTOOLS_HTML_O_size "SIZE"
+#define OOO_STRING_SVTOOLS_HTML_O_units "UNITS"
// Werte von <INPUT TYPE=...>
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_text, "TEXT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_password, "PASSWORD" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_checkbox, "CHECKBOX" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_radio, "RADIO" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_range, "RANGE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_scribble, "SCRIBBLE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_file, "FILE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_hidden, "HIDDEN" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_submit, "SUBMIT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_image, "IMAGE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_reset, "RESET" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_IT_button, "BUTTON" );
+#define OOO_STRING_SVTOOLS_HTML_IT_text "TEXT"
+#define OOO_STRING_SVTOOLS_HTML_IT_password "PASSWORD"
+#define OOO_STRING_SVTOOLS_HTML_IT_checkbox "CHECKBOX"
+#define OOO_STRING_SVTOOLS_HTML_IT_radio "RADIO"
+#define OOO_STRING_SVTOOLS_HTML_IT_range "RANGE"
+#define OOO_STRING_SVTOOLS_HTML_IT_scribble "SCRIBBLE"
+#define OOO_STRING_SVTOOLS_HTML_IT_file "FILE"
+#define OOO_STRING_SVTOOLS_HTML_IT_hidden "HIDDEN"
+#define OOO_STRING_SVTOOLS_HTML_IT_submit "SUBMIT"
+#define OOO_STRING_SVTOOLS_HTML_IT_image "IMAGE"
+#define OOO_STRING_SVTOOLS_HTML_IT_reset "RESET"
+#define OOO_STRING_SVTOOLS_HTML_IT_button "BUTTON"
// Werte von <TABLE FRAME=...>
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_void, "VOID" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_above, "ABOVE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_below, "BELOW" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_hsides, "HSIDES" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_lhs, "LHS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_rhs, "RHS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_vsides, "VSIDES" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_box, "BOX" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TF_border, "BORDER" );
+#define OOO_STRING_SVTOOLS_HTML_TF_void "VOID"
+#define OOO_STRING_SVTOOLS_HTML_TF_above "ABOVE"
+#define OOO_STRING_SVTOOLS_HTML_TF_below "BELOW"
+#define OOO_STRING_SVTOOLS_HTML_TF_hsides "HSIDES"
+#define OOO_STRING_SVTOOLS_HTML_TF_lhs "LHS"
+#define OOO_STRING_SVTOOLS_HTML_TF_rhs "RHS"
+#define OOO_STRING_SVTOOLS_HTML_TF_vsides "VSIDES"
+#define OOO_STRING_SVTOOLS_HTML_TF_box "BOX"
+#define OOO_STRING_SVTOOLS_HTML_TF_border "BORDER"
// Werte von <TABLE RULES=...>
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TR_none, "NONE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TR_groups, "GROUPS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TR_rows, "ROWS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TR_cols, "COLS" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_TR_all, "ALL" );
+#define OOO_STRING_SVTOOLS_HTML_TR_none "NONE"
+#define OOO_STRING_SVTOOLS_HTML_TR_groups "GROUPS"
+#define OOO_STRING_SVTOOLS_HTML_TR_rows "ROWS"
+#define OOO_STRING_SVTOOLS_HTML_TR_cols "COLS"
+#define OOO_STRING_SVTOOLS_HTML_TR_all "ALL"
// Werte von <P, H?, TR, TH, TD ALIGN=...>
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_left, "LEFT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_center, "CENTER" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_middle, "MIDDLE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_right, "RIGHT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_justify, "JUSTIFY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_char, "CHAR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_all, "ALL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_AL_none, "NONE" );
+#define OOO_STRING_SVTOOLS_HTML_AL_left "LEFT"
+#define OOO_STRING_SVTOOLS_HTML_AL_center "CENTER"
+#define OOO_STRING_SVTOOLS_HTML_AL_middle "MIDDLE"
+#define OOO_STRING_SVTOOLS_HTML_AL_right "RIGHT"
+#define OOO_STRING_SVTOOLS_HTML_AL_justify "JUSTIFY"
+#define OOO_STRING_SVTOOLS_HTML_AL_char "CHAR"
+#define OOO_STRING_SVTOOLS_HTML_AL_all "ALL"
+#define OOO_STRING_SVTOOLS_HTML_AL_none "NONE"
// Werte von <TR VALIGN=...>, <IMG ALIGN=...>
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_top, "TOP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_middle, "MIDDLE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_bottom, "BOTTOM" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_baseline, "BASELINE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_texttop, "TEXTTOP" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_absmiddle, "ABSMIDDLE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_VA_absbottom, "ABSBOTTOM" );
+#define OOO_STRING_SVTOOLS_HTML_VA_top "TOP"
+#define OOO_STRING_SVTOOLS_HTML_VA_middle "MIDDLE"
+#define OOO_STRING_SVTOOLS_HTML_VA_bottom "BOTTOM"
+#define OOO_STRING_SVTOOLS_HTML_VA_baseline "BASELINE"
+#define OOO_STRING_SVTOOLS_HTML_VA_texttop "TEXTTOP"
+#define OOO_STRING_SVTOOLS_HTML_VA_absmiddle "ABSMIDDLE"
+#define OOO_STRING_SVTOOLS_HTML_VA_absbottom "ABSBOTTOM"
// Werte von <AREA SHAPE=...>
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_rect, "RECT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_rectangle, "RECTANGLE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_circ, "CIRC" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_circle, "CIRCLE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_poly, "POLY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_polygon, "POLYGON" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SH_default, "DEFAULT" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_starbasic, "STARBASIC" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_javascript, "JAVASCRIPT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_javascript11, "JAVASCRIPT1.1" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_livescript, "LIVESCRIPT" );
-//extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_vbscript, "VBSCRIPT" );
-//extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_unused_javascript, "UNUSED JAVASCRIPT" );
-//extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LG_starone, "StarScript" );
+#define OOO_STRING_SVTOOLS_HTML_SH_rect "RECT"
+#define OOO_STRING_SVTOOLS_HTML_SH_rectangle "RECTANGLE"
+#define OOO_STRING_SVTOOLS_HTML_SH_circ "CIRC"
+#define OOO_STRING_SVTOOLS_HTML_SH_circle "CIRCLE"
+#define OOO_STRING_SVTOOLS_HTML_SH_poly "POLY"
+#define OOO_STRING_SVTOOLS_HTML_SH_polygon "POLYGON"
+#define OOO_STRING_SVTOOLS_HTML_SH_default "DEFAULT"
+
+#define OOO_STRING_SVTOOLS_HTML_LG_starbasic "STARBASIC"
+#define OOO_STRING_SVTOOLS_HTML_LG_javascript "JAVASCRIPT"
+#define OOO_STRING_SVTOOLS_HTML_LG_javascript11 "JAVASCRIPT1.1"
+#define OOO_STRING_SVTOOLS_HTML_LG_livescript "LIVESCRIPT"
// ein par Werte fuer unser StarBASIC-Support
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SB_library, "$LIBRARY:" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SB_module, "$MODULE:" );
-
+#define OOO_STRING_SVTOOLS_HTML_SB_library "$LIBRARY:"
+#define OOO_STRING_SVTOOLS_HTML_SB_module "$MODULE:"
// Werte von <FORM METHOD=...>
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_METHOD_get, "GET" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_METHOD_post, "POST" );
+#define OOO_STRING_SVTOOLS_HTML_METHOD_get "GET"
+#define OOO_STRING_SVTOOLS_HTML_METHOD_post "POST"
// Werte von <META CONTENT/HTTP-EQUIV=...>
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_refresh, "REFRESH" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_generator, "GENERATOR" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_author, "AUTHOR" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_classification, "CLASSIFICATION" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_description, "DESCRIPTION" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_keywords, "KEYWORDS" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_changed, "CHANGED" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_changedby, "CHANGEDBY" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_created, "CREATED" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_content_type, "CONTENT-TYPE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_content_script_type, "CONTENT-SCRIPT-TYPE" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_sdendnote, "SDENDNOTE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_META_sdfootnote, "SDFOOTNOTE" );
+#define OOO_STRING_SVTOOLS_HTML_META_refresh "REFRESH"
+#define OOO_STRING_SVTOOLS_HTML_META_generator "GENERATOR"
+#define OOO_STRING_SVTOOLS_HTML_META_author "AUTHOR"
+#define OOO_STRING_SVTOOLS_HTML_META_classification "CLASSIFICATION"
+#define OOO_STRING_SVTOOLS_HTML_META_description "DESCRIPTION"
+#define OOO_STRING_SVTOOLS_HTML_META_keywords "KEYWORDS"
+#define OOO_STRING_SVTOOLS_HTML_META_changed "CHANGED"
+#define OOO_STRING_SVTOOLS_HTML_META_changedby "CHANGEDBY"
+#define OOO_STRING_SVTOOLS_HTML_META_created "CREATED"
+#define OOO_STRING_SVTOOLS_HTML_META_content_type "CONTENT-TYPE"
+#define OOO_STRING_SVTOOLS_HTML_META_content_script_type "CONTENT-SCRIPT-TYPE"
+#define OOO_STRING_SVTOOLS_HTML_META_sdendnote "SDENDNOTE"
+#define OOO_STRING_SVTOOLS_HTML_META_sdfootnote "SDFOOTNOTE"
// Werte von <UL TYPE=...>
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ULTYPE_disc, "DISC" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ULTYPE_square, "SQUARE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ULTYPE_circle, "CIRCLE" );
+#define OOO_STRING_SVTOOLS_HTML_ULTYPE_disc "DISC"
+#define OOO_STRING_SVTOOLS_HTML_ULTYPE_square "SQUARE"
+#define OOO_STRING_SVTOOLS_HTML_ULTYPE_circle "CIRCLE"
// Werte von <FRAMESET SCROLLING=...>
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SCROLL_yes, "YES" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SCROLL_no, "NO" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SCROLL_auto, "AUTO" );
+#define OOO_STRING_SVTOOLS_HTML_SCROLL_yes "YES"
+#define OOO_STRING_SVTOOLS_HTML_SCROLL_no "NO"
+#define OOO_STRING_SVTOOLS_HTML_SCROLL_auto "AUTO"
// Werte von <MULTICOL TYPE=...>
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_MCTYPE_horizontal, "HORIZONTAL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_MCTYPE_vertical, "VERTICAL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_MCTYPE_box, "BOX" );
+#define OOO_STRING_SVTOOLS_HTML_MCTYPE_horizontal "HORIZONTAL"
+#define OOO_STRING_SVTOOLS_HTML_MCTYPE_vertical "VERTICAL"
+#define OOO_STRING_SVTOOLS_HTML_MCTYPE_box "BOX"
// Werte von <MARQUEE BEHAVIOUR=...>
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_BEHAV_scroll, "SCROLL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_BEHAV_slide, "SLIDE" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_BEHAV_alternate, "ALTERNATE" );
+#define OOO_STRING_SVTOOLS_HTML_BEHAV_scroll "SCROLL"
+#define OOO_STRING_SVTOOLS_HTML_BEHAV_slide "SLIDE"
+#define OOO_STRING_SVTOOLS_HTML_BEHAV_alternate "ALTERNATE"
// Werte von <MARQUEE LOOP=...>
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_LOOP_infinite, "INFINITE" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SPTYPE_block, "BLOCK" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SPTYPE_horizontal, "HORIZONTAL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_SPTYPE_vertical, "VERTICAL" );
-
+#define OOO_STRING_SVTOOLS_HTML_LOOP_infinite "INFINITE"
+#define OOO_STRING_SVTOOLS_HTML_SPTYPE_block "BLOCK"
+#define OOO_STRING_SVTOOLS_HTML_SPTYPE_horizontal "HORIZONTAL"
+#define OOO_STRING_SVTOOLS_HTML_SPTYPE_vertical "VERTICAL"
// interne Grafik-Namen
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_private_image, "private:image/" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_internal_gopher, "internal-gopher-" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_internal_icon, "internal-icon-" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_binary, "binary" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_image, "image" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_index, "index" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_menu, "menu" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_movie, "movie" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_sound, "sound" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_telnet, "telnet" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_text, "text" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_GOPHER_unknown, "unknown" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_ICON_baddata, "baddata" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_ICON_delayed, "delayed" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_ICON_embed, "embed" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_ICON_insecure, "insecure" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_INT_ICON_notfound, "notfound" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdendnote, "sdendnote" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdendnote_anc, "sdendnoteanc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdendnote_sym, "sdendnotesym" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdfootnote, "sdfootnote" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdfootnote_anc, "sdfootnoteanc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_sdfootnote_sym, "sdfootnotesym" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_FTN_anchor, "anc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_FTN_symbol, "sym" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_WW_off, "OFF" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_WW_hard, "HARD" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_WW_soft, "SOFT" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_WW_virtual, "VIRTUAL" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_WW_physical, "PHYSICAL" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_on, "on" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ET_url, "application/x-www-form-urlencoded" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ET_multipart, "multipart/form-data" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sHTML_ET_text, "text/plain" );
-
+#define OOO_STRING_SVTOOLS_HTML_private_image "private:image/"
+#define OOO_STRING_SVTOOLS_HTML_internal_gopher "internal-gopher-"
+#define OOO_STRING_SVTOOLS_HTML_internal_icon "internal-icon-"
+#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_binary "binary"
+#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_image "image"
+#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_index "index"
+#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_menu "menu"
+#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_movie "movie"
+#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_sound "sound"
+#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_telnet "telnet"
+#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_text "text"
+#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_unknown "unknown"
+#define OOO_STRING_SVTOOLS_HTML_INT_ICON_baddata "baddata"
+#define OOO_STRING_SVTOOLS_HTML_INT_ICON_delayed "delayed"
+#define OOO_STRING_SVTOOLS_HTML_INT_ICON_embed "embed"
+#define OOO_STRING_SVTOOLS_HTML_INT_ICON_insecure "insecure"
+#define OOO_STRING_SVTOOLS_HTML_INT_ICON_notfound "notfound"
+#define OOO_STRING_SVTOOLS_HTML_sdendnote "sdendnote"
+#define OOO_STRING_SVTOOLS_HTML_sdendnote_anc "sdendnoteanc"
+#define OOO_STRING_SVTOOLS_HTML_sdendnote_sym "sdendnotesym"
+#define OOO_STRING_SVTOOLS_HTML_sdfootnote "sdfootnote"
+#define OOO_STRING_SVTOOLS_HTML_sdfootnote_anc "sdfootnoteanc"
+#define OOO_STRING_SVTOOLS_HTML_sdfootnote_sym "sdfootnotesym"
+#define OOO_STRING_SVTOOLS_HTML_FTN_anchor "anc"
+#define OOO_STRING_SVTOOLS_HTML_FTN_symbol "sym"
+#define OOO_STRING_SVTOOLS_HTML_WW_off "OFF"
+#define OOO_STRING_SVTOOLS_HTML_WW_hard "HARD"
+#define OOO_STRING_SVTOOLS_HTML_WW_soft "SOFT"
+#define OOO_STRING_SVTOOLS_HTML_WW_virtual "VIRTUAL"
+#define OOO_STRING_SVTOOLS_HTML_WW_physical "PHYSICAL"
+#define OOO_STRING_SVTOOLS_HTML_on "on"
+#define OOO_STRING_SVTOOLS_HTML_ET_url "application/x-www-form-urlencoded"
+#define OOO_STRING_SVTOOLS_HTML_ET_multipart "multipart/form-data"
+#define OOO_STRING_SVTOOLS_HTML_ET_text "text/plain"
#endif
diff --git a/svtools/inc/pch/precompiled_svtools.hxx b/svtools/inc/pch/precompiled_svtools.hxx
index 440bd04dce36..cab81cac04ec 100644
--- a/svtools/inc/pch/precompiled_svtools.hxx
+++ b/svtools/inc/pch/precompiled_svtools.hxx
@@ -227,6 +227,7 @@
#include <com/sun/star/system/XProxySettings.hpp>
#include <com/sun/star/system/XSystemShellExecute.hpp>
#include <com/sun/star/task/DocumentPasswordRequest.hpp>
+#include <com/sun/star/task/DocumentMSPasswordRequest.hpp>
#include <com/sun/star/task/MasterPasswordRequest.hpp>
#include <com/sun/star/task/NoMasterException.hpp>
#include <com/sun/star/task/PasswordRequestMode.hpp>
diff --git a/svtools/inc/sfxecode.hxx b/svtools/inc/sfxecode.hxx
index 100336796ea4..01292f1c87fa 100644
--- a/svtools/inc/sfxecode.hxx
+++ b/svtools/inc/sfxecode.hxx
@@ -84,6 +84,7 @@
#define ERRCODE_SFX_MACROS_SUPPORT_DISABLED (ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 51)
#define ERRCODE_SFX_DOCUMENT_MACRO_DISABLED (ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 52)
#define ERRCODE_SFX_BROKENSIGNATURE (ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 53)
+#define ERRCODE_SFX_SHARED_NOPASSWORDCHANGE (ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 54)
diff --git a/svtools/inc/svtools/itemprop.hxx b/svtools/inc/svtools/itemprop.hxx
index 34064595753e..feab0eab004b 100644
--- a/svtools/inc/svtools/itemprop.hxx
+++ b/svtools/inc/svtools/itemprop.hxx
@@ -38,12 +38,13 @@
#include <com/sun/star/beans/XPropertySetInfo.hpp>
#include <com/sun/star/beans/PropertyState.hpp>
#include <com/sun/star/lang/IllegalArgumentException.hpp>
-
+#include <vector>
/* -----------------------------21.02.00 11:03--------------------------------
UNO III - Implementation
---------------------------------------------------------------------------*/
#define MAP_CHAR_LEN(cchar) cchar, sizeof(cchar) - 1
-struct SfxItemPropertyMap
+
+struct SfxItemPropertyMapEntry
{
const char* pName;
USHORT nNameLen;
@@ -52,34 +53,83 @@ struct SfxItemPropertyMap
long nFlags;
BYTE nMemberId;
- SVL_DLLPUBLIC static const SfxItemPropertyMap* GetByName(
- const SfxItemPropertyMap *pMap,
- const ::rtl::OUString &rName );
- SVL_DLLPUBLIC static const SfxItemPropertyMap* GetTolerantByName(
- const SfxItemPropertyMap *pMap,
- const ::rtl::OUString &rName );
+};
+
+struct SfxItemPropertySimpleEntry
+{
+ USHORT nWID;
+ const com::sun::star::uno::Type* pType;
+ long nFlags;
+ BYTE nMemberId;
+
+ SfxItemPropertySimpleEntry() :
+ nWID( 0 ),
+ pType( 0 ),
+ nFlags( 0 ),
+ nMemberId( 0 ){}
+
+ SfxItemPropertySimpleEntry(USHORT _nWID, const com::sun::star::uno::Type* _pType,
+ long _nFlags, BYTE _nMemberId) :
+ nWID( _nWID ),
+ pType( _pType ),
+ nFlags( _nFlags ),
+ nMemberId( _nMemberId ){}
+
+ SfxItemPropertySimpleEntry( const SfxItemPropertyMapEntry* pMapEntry ) :
+ nWID( pMapEntry->nWID ),
+ pType( pMapEntry->pType ),
+ nFlags( pMapEntry->nFlags ),
+ nMemberId( pMapEntry->nMemberId ){}
+
+};
+struct SfxItemPropertyNamedEntry : public SfxItemPropertySimpleEntry
+{
+ ::rtl::OUString sName;
+ SfxItemPropertyNamedEntry( const String& rName, const SfxItemPropertySimpleEntry& rSimpleEntry) :
+ SfxItemPropertySimpleEntry( rSimpleEntry ),
+ sName( rName ){}
+
+};
+typedef std::vector< SfxItemPropertyNamedEntry > PropertyEntryVector_t;
+class SfxItemPropertyMap_Impl;
+class SVL_DLLPUBLIC SfxItemPropertyMap
+{
+ SfxItemPropertyMap_Impl* m_pImpl;
+public:
+ SfxItemPropertyMap( const SfxItemPropertyMapEntry* pEntries );
+ SfxItemPropertyMap( const SfxItemPropertyMap* pSource );
+ ~SfxItemPropertyMap();
+
+ const SfxItemPropertySimpleEntry* getByName( const ::rtl::OUString &rName ) const;
+ com::sun::star::uno::Sequence< com::sun::star::beans::Property > getProperties() const;
+ com::sun::star::beans::Property getPropertyByName( const ::rtl::OUString rName ) const
+ throw( ::com::sun::star::beans::UnknownPropertyException );
+ sal_Bool hasPropertyByName( const ::rtl::OUString& rName ) const;
+
+ void mergeProperties( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property >& rPropSeq );
+ PropertyEntryVector_t getPropertyEntries() const;
+ sal_uInt32 getSize() const;
+
};
/* -----------------------------21.02.00 11:19--------------------------------
---------------------------------------------------------------------------*/
class SVL_DLLPUBLIC SfxItemPropertySet
{
- const SfxItemPropertyMap* _pMap;
+ SfxItemPropertyMap m_aMap;
+ mutable com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo> m_xInfo;
protected:
virtual BOOL FillItem(SfxItemSet& rSet, USHORT nWhich, BOOL bGetProperty) const;
public:
- SfxItemPropertySet( const SfxItemPropertyMap *pMap ) :
- _pMap(pMap) {}
-
- void getPropertyValue( const SfxItemPropertyMap& rMap,
- const SfxItemSet& rSet,
- com::sun::star::uno::Any& rAny) const
- throw(::com::sun::star::uno::RuntimeException);
- com::sun::star::uno::Any
- getPropertyValue( const SfxItemPropertyMap& rMap,
- const SfxItemSet& rSet ) const
- throw(::com::sun::star::uno::RuntimeException);
+ SfxItemPropertySet( const SfxItemPropertyMapEntry *pMap ) :
+ m_aMap(pMap) {}
+ virtual ~SfxItemPropertySet();
+
+ void getPropertyValue( const SfxItemPropertySimpleEntry& rEntry,
+ const SfxItemSet& rSet,
+ com::sun::star::uno::Any& rAny) const
+ throw(::com::sun::star::uno::RuntimeException);
void getPropertyValue( const ::rtl::OUString &rName,
const SfxItemSet& rSet,
com::sun::star::uno::Any& rAny) const
@@ -90,11 +140,11 @@ public:
const SfxItemSet& rSet ) const
throw(::com::sun::star::uno::RuntimeException,
::com::sun::star::beans::UnknownPropertyException);
- void setPropertyValue( const SfxItemPropertyMap& rMap,
- const com::sun::star::uno::Any& aVal,
- SfxItemSet& rSet ) const
- throw(::com::sun::star::uno::RuntimeException,
- com::sun::star::lang::IllegalArgumentException);
+ void setPropertyValue( const SfxItemPropertySimpleEntry& rEntry,
+ const com::sun::star::uno::Any& aVal,
+ SfxItemSet& rSet ) const
+ throw(::com::sun::star::uno::RuntimeException,
+ com::sun::star::lang::IllegalArgumentException);
void setPropertyValue( const ::rtl::OUString& rPropertyName,
const com::sun::star::uno::Any& aVal,
SfxItemSet& rSet ) const
@@ -103,29 +153,31 @@ public:
::com::sun::star::beans::UnknownPropertyException);
com::sun::star::beans::PropertyState
- getPropertyState(const ::rtl::OUString& rName, const SfxItemSet& rSet)
+ getPropertyState(const ::rtl::OUString& rName, const SfxItemSet& rSet)const
throw(com::sun::star::beans::UnknownPropertyException);
com::sun::star::beans::PropertyState
- getPropertyState(const SfxItemPropertyMap& rMap, const SfxItemSet& rSet)
+ getPropertyState(const SfxItemPropertySimpleEntry& rEntry, const SfxItemSet& rSet) const
throw();
com::sun::star::uno::Reference<com::sun::star::beans::XPropertySetInfo>
getPropertySetInfo() const;
const SfxItemPropertyMap*
- getPropertyMap() const {return _pMap;}
+ getPropertyMap() const {return &m_aMap;}
};
/* -----------------------------21.02.00 11:09--------------------------------
---------------------------------------------------------------------------*/
+struct SfxItemPropertySetInfo_Impl;
class SVL_DLLPUBLIC SfxItemPropertySetInfo : public
cppu::WeakImplHelper1<com::sun::star::beans::XPropertySetInfo>
{
- const SfxItemPropertyMap* _pMap;
+ SfxItemPropertySetInfo_Impl* m_pImpl;
public:
- SfxItemPropertySetInfo(const SfxItemPropertyMap *pMap ) :
- _pMap(pMap) {}
+ SfxItemPropertySetInfo(const SfxItemPropertyMap *pMap );
+ SfxItemPropertySetInfo(const SfxItemPropertyMapEntry *pEntries );
+ virtual ~SfxItemPropertySetInfo();
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > SAL_CALL
getProperties( )
@@ -140,19 +192,19 @@ public:
hasPropertyByName( const ::rtl::OUString& Name )
throw(::com::sun::star::uno::RuntimeException);
- const SfxItemPropertyMap* getMap() const { return _pMap; }
+ const SfxItemPropertyMap* getMap() const;
};
/* -----------------------------21.02.00 12:01--------------------------------
---------------------------------------------------------------------------*/
class SVL_DLLPUBLIC SfxExtItemPropertySetInfo: public cppu::WeakImplHelper1<com::sun::star::beans::XPropertySetInfo >
{
- const SfxItemPropertyMap* _pExtMap;
- com::sun::star::uno::Sequence<com::sun::star::beans::Property> aPropertySeq;
+ SfxItemPropertyMap aExtMap;
public:
SfxExtItemPropertySetInfo(
- const SfxItemPropertyMap *pMap,
+ const SfxItemPropertyMapEntry *pMap,
const com::sun::star::uno::Sequence<com::sun::star::beans::Property>& rPropSeq );
+ virtual ~SfxExtItemPropertySetInfo();
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property > SAL_CALL
getProperties( )
diff --git a/svtools/inc/svtools/menuoptions.hxx b/svtools/inc/svtools/menuoptions.hxx
index f98c33ec33a5..1d93d9068e1c 100644
--- a/svtools/inc/svtools/menuoptions.hxx
+++ b/svtools/inc/svtools/menuoptions.hxx
@@ -122,11 +122,11 @@ class SVL_DLLPUBLIC SvtMenuOptions: public svt::detail::Options
sal_Bool IsEntryHidingEnabled() const;
sal_Bool IsFollowMouseEnabled() const;
- sal_Bool IsMenuIconsEnabled() const;
+ sal_Int16 GetMenuIconsState() const;
void SetEntryHidingState( sal_Bool bState );
void SetFollowMouseState( sal_Bool bState );
- void SetMenuIconsState( sal_Bool bState );
+ void SetMenuIconsState( sal_Int16 bState );
//-------------------------------------------------------------------------------------------------------------
// private methods
diff --git a/svtools/inc/svtools/parhtml.hxx b/svtools/inc/svtools/parhtml.hxx
index d129a8c14595..f5de6aea358d 100644
--- a/svtools/inc/svtools/parhtml.hxx
+++ b/svtools/inc/svtools/parhtml.hxx
@@ -37,9 +37,17 @@
#include <svtools/svarray.hxx>
#include <svtools/svparser.hxx>
+
+namespace com { namespace sun { namespace star {
+ namespace document {
+ class XDocumentProperties;
+ }
+} } }
+
class Color;
class SvNumberFormatter;
class SvULongs;
+class SvKeyValueIterator;
#define HTMLFONTSZ1_DFLT 7
#define HTMLFONTSZ2_DFLT 10
@@ -224,6 +232,28 @@ public:
// virtual void RestoreState();
virtual void Continue( int nToken );
+
+protected:
+
+ static rtl_TextEncoding GetEncodingByMIME( const String& rMime );
+
+ /// template method: called when ParseMetaOptions adds a user-defined meta
+ virtual void AddMetaUserDefined( ::rtl::OUString const & i_rMetaName );
+
+private:
+ /// parse meta options into XDocumentProperties and encoding
+ bool ParseMetaOptionsImpl( const ::com::sun::star::uno::Reference<
+ ::com::sun::star::document::XDocumentProperties>&,
+ SvKeyValueIterator*,
+ const HTMLOptions*,
+ rtl_TextEncoding& rEnc );
+
+public:
+ /// overriding method must call this implementation!
+ virtual bool ParseMetaOptions( const ::com::sun::star::uno::Reference<
+ ::com::sun::star::document::XDocumentProperties>&,
+ SvKeyValueIterator* );
+
// Ist der uebergebene 0-terminierte String (vermutlich) der Anfang
// eines HTML-Files? Er sollte mind. 80 Zeichen lang sein.
// Mit Ausnahme des Falls, dass SwitchToUCS2==FALSE und
diff --git a/svtools/inc/svtools/svlbox.hxx b/svtools/inc/svtools/svlbox.hxx
index ba119263eff8..7371c2feee05 100644
--- a/svtools/inc/svtools/svlbox.hxx
+++ b/svtools/inc/svtools/svlbox.hxx
@@ -328,6 +328,9 @@ protected:
// wird an der Target-View aufgerufen (im Drop-Handler)
virtual void ReadDragServerInfo( const Point&,SvLBoxDDInfo* );
+ // invalidate children on enable/disable
+ virtual void StateChanged( StateChangedType );
+
virtual ULONG Insert( SvLBoxEntry* pEnt,SvLBoxEntry* pPar,ULONG nPos=LIST_APPEND);
virtual ULONG Insert( SvLBoxEntry* pEntry,ULONG nRootPos = LIST_APPEND );
void InsertTree( SvLBoxEntry* pTree, SvLBoxEntry* pTarget) {pModel->InsertTree( pTree, pTarget ); }
diff --git a/svtools/inc/svtools/svparser.hxx b/svtools/inc/svtools/svparser.hxx
index d63777d05b1b..96c1aadc6319 100644
--- a/svtools/inc/svtools/svparser.hxx
+++ b/svtools/inc/svtools/svparser.hxx
@@ -37,6 +37,7 @@
#include <tools/string.hxx>
#include <tools/ref.hxx>
#include <rtl/textenc.h>
+#include <boost/utility.hpp>
struct SvParser_Impl;
@@ -204,6 +205,84 @@ inline USHORT SvParser::GetCharSize() const
{
return (RTL_TEXTENCODING_UCS2 == eSrcEnc) ? 2 : 1;
}
+
+
+/*========================================================================
+ *
+ * SvKeyValue.
+ *
+ *======================================================================*/
+
+SV_DECL_REF(SvKeyValueIterator)
+
+class SvKeyValue
+{
+ /** Representation.
+ */
+ String m_aKey;
+ String m_aValue;
+
+public:
+ /** Construction.
+ */
+ SvKeyValue (void)
+ {}
+
+ SvKeyValue (const String &rKey, const String &rValue)
+ : m_aKey (rKey), m_aValue (rValue)
+ {}
+
+ SvKeyValue (const SvKeyValue &rOther)
+ : m_aKey (rOther.m_aKey), m_aValue (rOther.m_aValue)
+ {}
+
+ /** Assignment.
+ */
+ SvKeyValue& operator= (SvKeyValue &rOther)
+ {
+ m_aKey = rOther.m_aKey;
+ m_aValue = rOther.m_aValue;
+ return *this;
+ }
+
+ /** Operation.
+ */
+ const String& GetKey (void) const { return m_aKey; }
+ const String& GetValue (void) const { return m_aValue; }
+
+ void SetKey (const String &rKey ) { m_aKey = rKey; }
+ void SetValue (const String &rValue) { m_aValue = rValue; }
+};
+
+/*========================================================================
+ *
+ * SvKeyValueIterator.
+ *
+ *======================================================================*/
+class SvKeyValueList_Impl;
+class SVT_DLLPUBLIC SvKeyValueIterator : public SvRefBase,
+ private boost::noncopyable
+{
+ /** Representation.
+ */
+ SvKeyValueList_Impl* m_pList;
+ USHORT m_nPos;
+
+public:
+ /** Construction/Destruction.
+ */
+ SvKeyValueIterator (void);
+ virtual ~SvKeyValueIterator (void);
+
+ /** Operation.
+ */
+ virtual BOOL GetFirst (SvKeyValue &rKeyVal);
+ virtual BOOL GetNext (SvKeyValue &rKeyVal);
+ virtual void Append (const SvKeyValue &rKeyVal);
+};
+
+SV_IMPL_REF(SvKeyValueIterator);
+
#endif //_SVPARSER_HXX
/* vi:set tabstop=4 shiftwidth=4 expandtab: */
diff --git a/svtools/inc/svtools/undo.hxx b/svtools/inc/svtools/undo.hxx
index 986a72093af2..38cbfb227f1b 100644
--- a/svtools/inc/svtools/undo.hxx
+++ b/svtools/inc/svtools/undo.hxx
@@ -143,6 +143,7 @@ class SVT_DLLPUBLIC SfxUndoManager
SfxUndoArray *pActUndoArray;
SfxUndoArray *pFatherUndoArray;
+ bool mbUndoEnabled;
public:
SfxUndoManager( USHORT nMaxUndoActionCount = 20 );
virtual ~SfxUndoManager();
@@ -182,6 +183,16 @@ public:
/** clears the redo stack and removes the top undo action */
void RemoveLastUndoAction();
+
+ // enables (true) or disables (false) recording of undo actions
+ // If undo actions are added while undo is disabled, they are deleted.
+ // Disabling undo does not clear the current undo buffer!
+ void EnableUndo( bool bEnable );
+
+ // returns true if undo is currently enabled
+ // This returns false if undo was disabled using EnableUndo( false ) and
+ // also during the runtime of the Undo() and Redo() methods.
+ bool IsUndoEnabled() const { return mbUndoEnabled; }
};
//=========================================================================
diff --git a/svtools/inc/tabbar.hxx b/svtools/inc/tabbar.hxx
index c5be561fec9d..5261697dd8b0 100644
--- a/svtools/inc/tabbar.hxx
+++ b/svtools/inc/tabbar.hxx
@@ -323,12 +323,12 @@ typedef USHORT TabBarPageBits;
// - TabBar-Types -
// ----------------
-#define TAB_APPEND ((USHORT)0xFFFF)
-#define TAB_PAGE_NOTFOUND ((USHORT)0xFFFF)
+#define TABBAR_APPEND ((USHORT)0xFFFF)
+#define TABBAR_PAGE_NOTFOUND ((USHORT)0xFFFF)
-#define TAB_RENAMING_YES ((long)TRUE)
-#define TAB_RENAMING_NO ((long)FALSE)
-#define TAB_RENAMING_CANCEL ((long)2)
+#define TABBAR_RENAMING_YES ((long)TRUE)
+#define TABBAR_RENAMING_NO ((long)FALSE)
+#define TABBAR_RENAMING_CANCEL ((long)2)
// ----------
// - TabBar -
@@ -427,7 +427,7 @@ public:
void InsertPage( USHORT nPageId, const XubString& rText,
TabBarPageBits nBits = 0,
- USHORT nPos = TAB_APPEND );
+ USHORT nPos = TABBAR_APPEND );
void RemovePage( USHORT nPageId );
void MovePage( USHORT nPageId, USHORT nNewPos );
void Clear();
@@ -456,7 +456,7 @@ public:
void SelectPage( USHORT nPageId, BOOL bSelect = TRUE );
void SelectPageRange( BOOL bSelect = FALSE,
USHORT nStartPos = 0,
- USHORT nEndPos = TAB_APPEND );
+ USHORT nEndPos = TABBAR_APPEND );
USHORT GetSelectPage( USHORT nSelIndex = 0 ) const;
USHORT GetSelectPageCount() const;
BOOL IsPageSelected( USHORT nPageId ) const;
diff --git a/svtools/prj/build.lst b/svtools/prj/build.lst
index ee2414e0da59..a6a409055faa 100644
--- a/svtools/prj/build.lst
+++ b/svtools/prj/build.lst
@@ -1,4 +1,4 @@
-st svtools : offuh toolkit ucbhelper unotools JPEG:jpeg cppu cppuhelper comphelper sal sot jvmfwk NULL
+st svtools : l10n offuh toolkit ucbhelper unotools JPEG:jpeg cppu cppuhelper comphelper sal sot jvmfwk NULL
st svtools usr1 - all st_mkout NULL
st svtools\inc nmake - all st_inc NULL
st svtools\inc\sane get - all st_incsa NULL
diff --git a/svtools/prj/d.lst b/svtools/prj/d.lst
index 6b85194db6c1..4ff74419b9d4 100644
--- a/svtools/prj/d.lst
+++ b/svtools/prj/d.lst
@@ -312,6 +312,7 @@ mkdir: %_DEST%\inc%_EXT%\svtools
..\inc\textwindowaccessibility.hxx %_DEST%\inc%_EXT%\svtools\textwindowaccessibility.hxx
..\inc\docpasswdrequest.hxx %_DEST%\inc%_EXT%\svtools\docpasswdrequest.hxx
+..\inc\docmspasswdrequest.hxx %_DEST%\inc%_EXT%\svtools\docmspasswdrequest.hxx
..\inc\fontsubstconfig.hxx %_DEST%\inc%_EXT%\svtools\fontsubstconfig.hxx
..\inc\apearcfg.hxx %_DEST%\inc%_EXT%\svtools\apearcfg.hxx
..\inc\fltrcfg.hxx %_DEST%\inc%_EXT%\svtools\fltrcfg.hxx
diff --git a/svtools/qa/complex/ConfigItems/helper/HistoryOptTest.cxx b/svtools/qa/complex/ConfigItems/helper/HistoryOptTest.cxx
index 8f191abf61ca..723b3e44f3e5 100644
--- a/svtools/qa/complex/ConfigItems/helper/HistoryOptTest.cxx
+++ b/svtools/qa/complex/ConfigItems/helper/HistoryOptTest.cxx
@@ -803,4 +803,4 @@ void HistoryOptTest::impl_checkHelpBookmarks()
impl_checkGetList(s_sHelpBookmarks);
impl_checkAppendItem(s_sHelpBookmarks);
}
-*/
+*/
diff --git a/svtools/qa/complex/ConfigItems/helper/UserOptTest.cxx b/svtools/qa/complex/ConfigItems/helper/UserOptTest.cxx
index 3780eff3f741..14ee513ee0cb 100644
--- a/svtools/qa/complex/ConfigItems/helper/UserOptTest.cxx
+++ b/svtools/qa/complex/ConfigItems/helper/UserOptTest.cxx
@@ -31,12 +31,12 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
- ************************************************************************/
-
-#include "UserOptTest.hxx"
-
-namespace css = ::com::sun::star;
-
+ ************************************************************************/
+
+#include "UserOptTest.hxx"
+
+namespace css = ::com::sun::star;
+
//=============================================================================
static const ::rtl::OUString MESSAGE_SETCOMPANY_FAILED = ::rtl::OUString::createFromAscii("set company failed") ;
static const ::rtl::OUString MESSAGE_SETFIRSTNAME_FAILED = ::rtl::OUString::createFromAscii("set firstname failed") ;
@@ -57,59 +57,59 @@ static const ::rtl::OUString MESSAGE_SETCUSTOMERNUMBER_FAILED = ::rtl::OUString:
static const ::rtl::OUString MESSAGE_SETFATHERSNAME_FAILED = ::rtl::OUString::createFromAscii("set fathersname failed") ;
static const ::rtl::OUString MESSAGE_SETAPARTMENT_FAILED = ::rtl::OUString::createFromAscii("set apartment failed") ;
-//=============================================================================
-
-
-UserOptTest::UserOptTest()
- :m_aConfigItem()
- ,m_xCfg()
-{
-}
-
-UserOptTest::~UserOptTest()
-{
-}
-
-void UserOptTest::impl_checkUserData()
-{
- impl_checkSetCompany( ::rtl::OUString() );
- impl_checkSetFirstName( ::rtl::OUString() );
- impl_checkSetLastName( ::rtl::OUString() );
- impl_checkSetID( ::rtl::OUString() );
- impl_checkSetStreet( ::rtl::OUString() );
- impl_checkSetCity( ::rtl::OUString() );
- impl_checkSetState( ::rtl::OUString() );
- impl_checkSetZip( ::rtl::OUString() );
- impl_checkSetCountry( ::rtl::OUString() );
- impl_checkSetPosition( ::rtl::OUString() );
- impl_checkSetTitle( ::rtl::OUString() );
- impl_checkSetTelephoneHome( ::rtl::OUString() );
- impl_checkSetTelephoneWork( ::rtl::OUString() );
- impl_checkSetFax( ::rtl::OUString() );
- impl_checkSetEmail( ::rtl::OUString() );
- //impl_checkSetCustomerNumber( ::rtl::OUString() );
- impl_checkSetFathersName( ::rtl::OUString() );
- impl_checkSetApartment( ::rtl::OUString() );
-
- impl_checkSetCompany( ::rtl::OUString::createFromAscii("RedFlag2000") );
- impl_checkSetFirstName( ::rtl::OUString::createFromAscii("Yan") );
- impl_checkSetLastName( ::rtl::OUString::createFromAscii("Wu") );
- impl_checkSetID( ::rtl::OUString::createFromAscii("wuy") );
- impl_checkSetStreet( ::rtl::OUString::createFromAscii("SouthFifthRing") );
- impl_checkSetCity( ::rtl::OUString::createFromAscii("Beijing") );
- impl_checkSetState( ::rtl::OUString::createFromAscii("Beijing") );
- impl_checkSetZip( ::rtl::OUString::createFromAscii("100176") );
- impl_checkSetCountry( ::rtl::OUString::createFromAscii("China") );
- impl_checkSetPosition( ::rtl::OUString::createFromAscii("Engineer") );
- impl_checkSetTitle( ::rtl::OUString::createFromAscii("Software Engineer") );
- impl_checkSetTelephoneHome( ::rtl::OUString::createFromAscii("010-51570010") );
- impl_checkSetTelephoneWork( ::rtl::OUString::createFromAscii("010-51570010") );
- impl_checkSetFax( ::rtl::OUString::createFromAscii("010-51570010") );
- impl_checkSetEmail( ::rtl::OUString::createFromAscii("wuy@redflag2000.cn") );
- //impl_checkSetCustomerNumber( ::rtl::OUString::createFromAscii("87654321") );
- impl_checkSetFathersName( ::rtl::OUString::createFromAscii("father") );
- impl_checkSetApartment( ::rtl::OUString::createFromAscii("apartment") );
-}
+//=============================================================================
+
+
+UserOptTest::UserOptTest()
+ :m_aConfigItem()
+ ,m_xCfg()
+{
+}
+
+UserOptTest::~UserOptTest()
+{
+}
+
+void UserOptTest::impl_checkUserData()
+{
+ impl_checkSetCompany( ::rtl::OUString() );
+ impl_checkSetFirstName( ::rtl::OUString() );
+ impl_checkSetLastName( ::rtl::OUString() );
+ impl_checkSetID( ::rtl::OUString() );
+ impl_checkSetStreet( ::rtl::OUString() );
+ impl_checkSetCity( ::rtl::OUString() );
+ impl_checkSetState( ::rtl::OUString() );
+ impl_checkSetZip( ::rtl::OUString() );
+ impl_checkSetCountry( ::rtl::OUString() );
+ impl_checkSetPosition( ::rtl::OUString() );
+ impl_checkSetTitle( ::rtl::OUString() );
+ impl_checkSetTelephoneHome( ::rtl::OUString() );
+ impl_checkSetTelephoneWork( ::rtl::OUString() );
+ impl_checkSetFax( ::rtl::OUString() );
+ impl_checkSetEmail( ::rtl::OUString() );
+ //impl_checkSetCustomerNumber( ::rtl::OUString() );
+ impl_checkSetFathersName( ::rtl::OUString() );
+ impl_checkSetApartment( ::rtl::OUString() );
+
+ impl_checkSetCompany( ::rtl::OUString::createFromAscii("RedFlag2000") );
+ impl_checkSetFirstName( ::rtl::OUString::createFromAscii("Yan") );
+ impl_checkSetLastName( ::rtl::OUString::createFromAscii("Wu") );
+ impl_checkSetID( ::rtl::OUString::createFromAscii("wuy") );
+ impl_checkSetStreet( ::rtl::OUString::createFromAscii("SouthFifthRing") );
+ impl_checkSetCity( ::rtl::OUString::createFromAscii("Beijing") );
+ impl_checkSetState( ::rtl::OUString::createFromAscii("Beijing") );
+ impl_checkSetZip( ::rtl::OUString::createFromAscii("100176") );
+ impl_checkSetCountry( ::rtl::OUString::createFromAscii("China") );
+ impl_checkSetPosition( ::rtl::OUString::createFromAscii("Engineer") );
+ impl_checkSetTitle( ::rtl::OUString::createFromAscii("Software Engineer") );
+ impl_checkSetTelephoneHome( ::rtl::OUString::createFromAscii("010-51570010") );
+ impl_checkSetTelephoneWork( ::rtl::OUString::createFromAscii("010-51570010") );
+ impl_checkSetFax( ::rtl::OUString::createFromAscii("010-51570010") );
+ impl_checkSetEmail( ::rtl::OUString::createFromAscii("wuy@redflag2000.cn") );
+ //impl_checkSetCustomerNumber( ::rtl::OUString::createFromAscii("87654321") );
+ impl_checkSetFathersName( ::rtl::OUString::createFromAscii("father") );
+ impl_checkSetApartment( ::rtl::OUString::createFromAscii("apartment") );
+}
void UserOptTest::impl_checkSetCompany( const ::rtl::OUString& sUserData )
{
diff --git a/svtools/qa/complex/ConfigItems/helper/UserOptTest.hxx b/svtools/qa/complex/ConfigItems/helper/UserOptTest.hxx
index 203a4cbc7cbd..8234b0b7edf4 100644
--- a/svtools/qa/complex/ConfigItems/helper/UserOptTest.hxx
+++ b/svtools/qa/complex/ConfigItems/helper/UserOptTest.hxx
@@ -31,48 +31,48 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
- ************************************************************************/
-
-#ifndef SVTOOLS_USEROPTTEST_HXX
-#define SVTOOLS_USEROPTTEST_HXX
-
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <svtools/useroptions.hxx>
-
-namespace css = ::com::sun::star;
-
-class UserOptTest
-{
-public:
- UserOptTest();
- ~UserOptTest();
-
- void impl_checkUserData();
-
-private:
- void impl_checkSetCompany( const ::rtl::OUString& sUserData );
- void impl_checkSetFirstName( const ::rtl::OUString& sUserData );
- void impl_checkSetLastName( const ::rtl::OUString& sUserData );
- void impl_checkSetID( const ::rtl::OUString& sUserData );
- void impl_checkSetStreet( const ::rtl::OUString& sUserData );
- void impl_checkSetCity( const ::rtl::OUString& sUserData );
- void impl_checkSetState( const ::rtl::OUString& sUserData );
- void impl_checkSetZip( const ::rtl::OUString& sUserData );
- void impl_checkSetCountry( const ::rtl::OUString& sUserData );
- void impl_checkSetPosition( const ::rtl::OUString& sUserData );
- void impl_checkSetTitle( const ::rtl::OUString& sUserData );
- void impl_checkSetTelephoneHome( const ::rtl::OUString& sUserData );
- void impl_checkSetTelephoneWork( const ::rtl::OUString& sUserData );
- void impl_checkSetFax( const ::rtl::OUString& sUserData );
- void impl_checkSetEmail( const ::rtl::OUString& sUserData );
- void impl_checkSetCustomerNumber( const ::rtl::OUString& sUserData );
- void impl_checkSetFathersName( const ::rtl::OUString& sUserData );
- void impl_checkSetApartment( const ::rtl::OUString& sUserData );
-
-private:
- SvtUserOptions m_aConfigItem;
-
- css::uno::Reference< css::container::XNameAccess > m_xCfg;
-};
-
-#endif // #ifndef SVTOOLS_USEROPTTEST_HXX
+ ************************************************************************/
+
+#ifndef SVTOOLS_USEROPTTEST_HXX
+#define SVTOOLS_USEROPTTEST_HXX
+
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <svtools/useroptions.hxx>
+
+namespace css = ::com::sun::star;
+
+class UserOptTest
+{
+public:
+ UserOptTest();
+ ~UserOptTest();
+
+ void impl_checkUserData();
+
+private:
+ void impl_checkSetCompany( const ::rtl::OUString& sUserData );
+ void impl_checkSetFirstName( const ::rtl::OUString& sUserData );
+ void impl_checkSetLastName( const ::rtl::OUString& sUserData );
+ void impl_checkSetID( const ::rtl::OUString& sUserData );
+ void impl_checkSetStreet( const ::rtl::OUString& sUserData );
+ void impl_checkSetCity( const ::rtl::OUString& sUserData );
+ void impl_checkSetState( const ::rtl::OUString& sUserData );
+ void impl_checkSetZip( const ::rtl::OUString& sUserData );
+ void impl_checkSetCountry( const ::rtl::OUString& sUserData );
+ void impl_checkSetPosition( const ::rtl::OUString& sUserData );
+ void impl_checkSetTitle( const ::rtl::OUString& sUserData );
+ void impl_checkSetTelephoneHome( const ::rtl::OUString& sUserData );
+ void impl_checkSetTelephoneWork( const ::rtl::OUString& sUserData );
+ void impl_checkSetFax( const ::rtl::OUString& sUserData );
+ void impl_checkSetEmail( const ::rtl::OUString& sUserData );
+ void impl_checkSetCustomerNumber( const ::rtl::OUString& sUserData );
+ void impl_checkSetFathersName( const ::rtl::OUString& sUserData );
+ void impl_checkSetApartment( const ::rtl::OUString& sUserData );
+
+private:
+ SvtUserOptions m_aConfigItem;
+
+ css::uno::Reference< css::container::XNameAccess > m_xCfg;
+};
+
+#endif // #ifndef SVTOOLS_USEROPTTEST_HXX
diff --git a/svtools/source/brwbox/brwbox1.cxx b/svtools/source/brwbox/brwbox1.cxx
index 05ab0e1b0c91..767283a8e425 100644
--- a/svtools/source/brwbox/brwbox1.cxx
+++ b/svtools/source/brwbox/brwbox1.cxx
@@ -1711,7 +1711,7 @@ BOOL BrowseBox::GoToColumnId( USHORT nColId, BOOL bMakeVisible, BOOL bRowColMove
if (!bRowColMove && !IsCursorMoveAllowed( nCurRow, nColId ) )
return FALSE;
- if ( nColId != nCurColId || bMakeVisible && !IsFieldVisible(nCurRow, nColId, TRUE))
+ if ( nColId != nCurColId || (bMakeVisible && !IsFieldVisible(nCurRow, nColId, TRUE)))
{
USHORT nNewPos = GetColumnPos(nColId);
BrowserColumn* pColumn = pCols->GetObject( nNewPos );
diff --git a/svtools/source/config/extcolorcfg.cxx b/svtools/source/config/extcolorcfg.cxx
index 61ae3d1d0ca0..4610a1571baf 100644
--- a/svtools/source/config/extcolorcfg.cxx
+++ b/svtools/source/config/extcolorcfg.cxx
@@ -53,6 +53,7 @@
#include <vcl/svapp.hxx>
#include <vcl/event.hxx>
#include <rtl/instance.hxx>
+#include <rtl/strbuf.hxx>
#include <comphelper/stl_types.hxx>
@@ -119,10 +120,17 @@ public:
if ( aFind != m_aConfigValues.end() )
{
TConfigValues::iterator aFind2 = aFind->second.first.find(_sName);
- if ( aFind != m_aConfigValues.end() )
+ if ( aFind2 != aFind->second.first.end() )
return aFind2->second;
}
- OSL_ENSURE(0,"Could find the required config!");
+#if OSL_DEBUG_LEVEL > 0
+ ::rtl::OStringBuffer aMessage( "Could find the required config:\n" );
+ aMessage.append( "component: " );
+ aMessage.append( ::rtl::OUStringToOString( _sComponentName, RTL_TEXTENCODING_UTF8 ) );
+ aMessage.append( "\nname: " );
+ aMessage.append( ::rtl::OUStringToOString( _sName, RTL_TEXTENCODING_UTF8 ) );
+ OSL_ENSURE( 0, aMessage.makeStringAndClear().getStr() );
+#endif
return ExtendedColorConfigValue();
}
void SetColorConfigValue(const ::rtl::OUString& _sName,
diff --git a/svtools/source/config/historyoptions.cxx b/svtools/source/config/historyoptions.cxx
index d658f25d1a73..758753df0e4e 100644
--- a/svtools/source/config/historyoptions.cxx
+++ b/svtools/source/config/historyoptions.cxx
@@ -160,8 +160,8 @@ public:
const OUString& sTitle ,
const OUString& sPassword );
-private:
- void impl_truncateList (EHistoryType eHistory, sal_uInt32 nSize);
+private:
+ void impl_truncateList (EHistoryType eHistory, sal_uInt32 nSize);
private:
css::uno::Reference< css::container::XNameAccess > m_xCfg;
@@ -248,12 +248,12 @@ sal_uInt32 SvtHistoryOptions_Impl::GetSize( EHistoryType eHistory )
//*****************************************************************************************************************
void SvtHistoryOptions_Impl::SetSize( EHistoryType eHistory, sal_uInt32 nSize )
{
- css::uno::Reference< css::beans::XPropertySet > xListAccess(m_xCommonXCU, css::uno::UNO_QUERY);
- if (! xListAccess.is ())
+ css::uno::Reference< css::beans::XPropertySet > xListAccess(m_xCommonXCU, css::uno::UNO_QUERY);
+ if (! xListAccess.is ())
return;
try
- {
+ {
switch( eHistory )
{
case ePICKLIST:
@@ -291,15 +291,15 @@ void SvtHistoryOptions_Impl::SetSize( EHistoryType eHistory, sal_uInt32 nSize )
LogHelper::logIt(ex);
}
}
-
+
//*****************************************************************************************************************
-void SvtHistoryOptions_Impl::impl_truncateList ( EHistoryType eHistory, sal_uInt32 nSize )
+void SvtHistoryOptions_Impl::impl_truncateList ( EHistoryType eHistory, sal_uInt32 nSize )
{
css::uno::Reference< css::container::XNameAccess > xList;
css::uno::Reference< css::container::XNameContainer > xItemList;
css::uno::Reference< css::container::XNameContainer > xOrderList;
css::uno::Reference< css::beans::XPropertySet > xSet;
-
+
try
{
switch( eHistory )
@@ -322,11 +322,11 @@ void SvtHistoryOptions_Impl::impl_truncateList ( EHistoryType eHistory, sal_uInt
// If too much items in current list ...
// truncate the oldest items BEFORE you set the new one.
- if ( ! xList.is())
- return;
+ if ( ! xList.is())
+ return;
xList->getByName(s_sOrderList) >>= xOrderList;
- xList->getByName(s_sItemList) >>= xItemList;
+ xList->getByName(s_sItemList) >>= xItemList;
const sal_uInt32 nLength = xOrderList->getElementNames().getLength();
if (nSize < nLength)
@@ -348,7 +348,7 @@ void SvtHistoryOptions_Impl::impl_truncateList ( EHistoryType eHistory, sal_uInt
{
LogHelper::logIt(ex);
}
-}
+}
//*****************************************************************************************************************
// public method
@@ -416,8 +416,8 @@ void SvtHistoryOptions_Impl::Clear( EHistoryType eHistory )
//*****************************************************************************************************************
Sequence< Sequence< PropertyValue > > SvtHistoryOptions_Impl::GetList( EHistoryType eHistory )
{
- impl_truncateList (eHistory, GetSize (eHistory));
-
+ impl_truncateList (eHistory, GetSize (eHistory));
+
Sequence< Sequence< PropertyValue > > seqReturn; // Set default return value.
Sequence< PropertyValue > seqProperties( 4 );
Sequence< ::rtl::OUString > lOrders;
@@ -433,12 +433,12 @@ Sequence< Sequence< PropertyValue > > SvtHistoryOptions_Impl::GetList( EHistoryT
seqProperties[s_nOffsetPassword ].Name = HISTORY_PROPERTYNAME_PASSWORD;
try
- {
+ {
switch( eHistory )
{
case ePICKLIST:
{
- m_xCfg->getByName(s_sPickList) >>= xListAccess;
+ m_xCfg->getByName(s_sPickList) >>= xListAccess;
break;
}
@@ -457,7 +457,7 @@ Sequence< Sequence< PropertyValue > > SvtHistoryOptions_Impl::GetList( EHistoryT
default:
break;
}
-
+
if (xListAccess.is())
{
xListAccess->getByName(s_sItemList) >>= xItemList;
@@ -500,8 +500,8 @@ void SvtHistoryOptions_Impl::AppendItem( EHistoryType eHistory ,
const OUString& sTitle ,
const OUString& sPassword )
{
- impl_truncateList (eHistory, GetSize (eHistory));
-
+ impl_truncateList (eHistory, GetSize (eHistory));
+
css::uno::Reference< css::container::XNameAccess > xListAccess;
sal_Int32 nMaxSize = 0;
diff --git a/svtools/source/config/menuoptions.cxx b/svtools/source/config/menuoptions.cxx
index e8fa39d6b7bb..2d0e8d905ad9 100644
--- a/svtools/source/config/menuoptions.cxx
+++ b/svtools/source/config/menuoptions.cxx
@@ -43,6 +43,7 @@
#include <tools/debug.hxx>
#include <com/sun/star/uno/Any.hxx>
#include <com/sun/star/uno/Sequence.hxx>
+#include <vcl/svapp.hxx>
#include <rtl/logfile.hxx>
#include "itemholder1.hxx"
@@ -63,17 +64,19 @@ using namespace ::com::sun::star::uno ;
#define ROOTNODE_MENU OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Common/View/Menu" ))
#define DEFAULT_DONTHIDEDISABLEDENTRIES sal_False
#define DEFAULT_FOLLOWMOUSE sal_True
-#define DEFAULT_MENUICONS sal_True
+#define DEFAULT_MENUICONS 2
#define PROPERTYNAME_DONTHIDEDISABLEDENTRIES OUString(RTL_CONSTASCII_USTRINGPARAM("DontHideDisabledEntry" ))
#define PROPERTYNAME_FOLLOWMOUSE OUString(RTL_CONSTASCII_USTRINGPARAM("FollowMouse" ))
#define PROPERTYNAME_SHOWICONSINMENUES OUString(RTL_CONSTASCII_USTRINGPARAM("ShowIconsInMenues" ))
+#define PROPERTYNAME_SYSTEMICONSINMENUES OUString(RTL_CONSTASCII_USTRINGPARAM("IsSystemIconsInMenus" ))
#define PROPERTYHANDLE_DONTHIDEDISABLEDENTRIES 0
#define PROPERTYHANDLE_FOLLOWMOUSE 1
#define PROPERTYHANDLE_SHOWICONSINMENUES 2
+#define PROPERTYHANDLE_SYSTEMICONSINMENUES 3
-#define PROPERTYCOUNT 3
+#define PROPERTYCOUNT 4
#include <tools/link.hxx>
#include <tools/list.hxx>
@@ -93,7 +96,7 @@ class SvtMenuOptions_Impl : public ConfigItem
LinkList aList;
sal_Bool m_bDontHideDisabledEntries ; /// cache "DontHideDisabledEntries" of Menu section
sal_Bool m_bFollowMouse ; /// cache "FollowMouse" of Menu section
- sal_Bool m_bMenuIcons ; /// cache "MenuIcons" of Menu section
+ sal_Int16 m_nMenuIcons ; /// cache "MenuIcons" of Menu section
//-------------------------------------------------------------------------------------------------------------
// public methods
@@ -169,8 +172,8 @@ class SvtMenuOptions_Impl : public ConfigItem
sal_Bool IsFollowMouseEnabled() const
{ return m_bFollowMouse; }
- sal_Bool IsMenuIconsEnabled() const
- { return m_bMenuIcons; }
+ sal_Int16 GetMenuIconsState() const
+ { return m_nMenuIcons; }
void SetEntryHidingState ( sal_Bool bState )
{
@@ -190,9 +193,9 @@ class SvtMenuOptions_Impl : public ConfigItem
Commit();
}
- void SetMenuIconsState ( sal_Bool bState )
+ void SetMenuIconsState ( sal_Int16 bState )
{
- m_bMenuIcons = bState;
+ m_nMenuIcons = bState;
SetModified();
for ( USHORT n=0; n<aList.Count(); n++ )
aList.GetObject(n)->Call( this );
@@ -234,7 +237,7 @@ SvtMenuOptions_Impl::SvtMenuOptions_Impl()
// Init member then.
, m_bDontHideDisabledEntries ( DEFAULT_DONTHIDEDISABLEDENTRIES )
, m_bFollowMouse ( DEFAULT_FOLLOWMOUSE )
- , m_bMenuIcons ( DEFAULT_MENUICONS )
+ , m_nMenuIcons ( DEFAULT_MENUICONS )
{
// Use our static list of configuration keys to get his values.
Sequence< OUString > seqNames = impl_GetPropertyNames();
@@ -245,6 +248,9 @@ SvtMenuOptions_Impl::SvtMenuOptions_Impl()
// Follow assignment use order of values in relation to our list of key names!
DBG_ASSERT( !(seqNames.getLength()!=seqValues.getLength()), "SvtMenuOptions_Impl::SvtMenuOptions_Impl()\nI miss some values of configuration keys!\n" );
+ sal_Bool bMenuIcons = true;
+ sal_Bool bSystemMenuIcons = true;
+
// Copy values from list in right order to ouer internal member.
sal_Int32 nPropertyCount = seqValues.getLength() ;
sal_Int32 nProperty = 0 ;
@@ -268,12 +274,19 @@ SvtMenuOptions_Impl::SvtMenuOptions_Impl()
break;
case PROPERTYHANDLE_SHOWICONSINMENUES : {
DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::SvtMenuOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Menu\\ShowIconsInMenues\"?" );
- seqValues[nProperty] >>= m_bMenuIcons;
+ seqValues[nProperty] >>= bMenuIcons;
+ }
+ break;
+ case PROPERTYHANDLE_SYSTEMICONSINMENUES : {
+ DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::SvtMenuOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Menu\\IsSystemIconsInMenus\"?" );
+ seqValues[nProperty] >>= bSystemMenuIcons;
}
break;
}
}
+ m_nMenuIcons = bSystemMenuIcons ? 2 : bMenuIcons;
+
EnableNotification( seqNames );
}
@@ -303,6 +316,10 @@ void SvtMenuOptions_Impl::Notify( const Sequence< OUString >& seqPropertyNames )
// Safe impossible cases.
// We need values from ALL notified configuration keys.
DBG_ASSERT( !(seqPropertyNames.getLength()!=seqValues.getLength()), "SvtMenuOptions_Impl::Notify()\nI miss some values of configuration keys!\n" );
+
+ sal_Bool bMenuIcons = true;
+ sal_Bool bSystemMenuIcons = true;
+
// Step over list of property names and get right value from coreesponding value list to set it on internal members!
sal_Int32 nCount = seqPropertyNames.getLength();
for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty )
@@ -312,22 +329,29 @@ void SvtMenuOptions_Impl::Notify( const Sequence< OUString >& seqPropertyNames )
DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::Notify()\nWho has changed the value type of \"Office.Common\\View\\Menu\\DontHideDisabledEntry\"?" );
seqValues[nProperty] >>= m_bDontHideDisabledEntries;
}
- else
- if( seqPropertyNames[nProperty] == PROPERTYNAME_FOLLOWMOUSE )
+ else if( seqPropertyNames[nProperty] == PROPERTYNAME_FOLLOWMOUSE )
{
DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::Notify()\nWho has changed the value type of \"Office.Common\\View\\Menu\\FollowMouse\"?" );
seqValues[nProperty] >>= m_bFollowMouse;
}
- if( seqPropertyNames[nProperty] == PROPERTYNAME_SHOWICONSINMENUES )
+ else if( seqPropertyNames[nProperty] == PROPERTYNAME_SHOWICONSINMENUES )
{
DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::SvtMenuOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Menu\\ShowIconsInMenues\"?" );
- seqValues[nProperty] >>= m_bMenuIcons;
+ seqValues[nProperty] >>= bMenuIcons;
}
+ else if( seqPropertyNames[nProperty] == PROPERTYNAME_SYSTEMICONSINMENUES )
+ {
+ DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::SvtMenuOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Menu\\IsSystemIconsInMenus\"?" );
+ seqValues[nProperty] >>= bSystemMenuIcons;
+ }
+
#if OSL_DEBUG_LEVEL > 1
else DBG_ASSERT( sal_False, "SvtMenuOptions_Impl::Notify()\nUnkown property detected ... I can't handle these!\n" );
#endif
}
+ m_nMenuIcons = bSystemMenuIcons ? 2 : bMenuIcons;
+
for ( USHORT n=0; n<aList.Count(); n++ )
aList.GetObject(n)->Call( this );
}
@@ -354,8 +378,13 @@ void SvtMenuOptions_Impl::Commit()
seqValues[nProperty] <<= m_bFollowMouse;
}
break;
+ //Output cache of current setting as possibly modified by System Theme for older version
case PROPERTYHANDLE_SHOWICONSINMENUES : {
- seqValues[nProperty] <<= m_bMenuIcons;
+ seqValues[nProperty] <<=(sal_Bool)(Application::GetSettings().GetStyleSettings().GetUseImagesInMenus());
+ }
+ break;
+ case PROPERTYHANDLE_SYSTEMICONSINMENUES : {
+ seqValues[nProperty] <<= (m_nMenuIcons == 2 ? sal_True : sal_False) ;
}
break;
}
@@ -374,7 +403,8 @@ Sequence< OUString > SvtMenuOptions_Impl::impl_GetPropertyNames()
{
PROPERTYNAME_DONTHIDEDISABLEDENTRIES ,
PROPERTYNAME_FOLLOWMOUSE ,
- PROPERTYNAME_SHOWICONSINMENUES
+ PROPERTYNAME_SHOWICONSINMENUES ,
+ PROPERTYNAME_SYSTEMICONSINMENUES
};
// Initialize return sequence with these list ...
static const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT );
@@ -483,16 +513,16 @@ void SvtMenuOptions::SetFollowMouseState( sal_Bool bState )
//*****************************************************************************************************************
// public method
//*****************************************************************************************************************
-sal_Bool SvtMenuOptions::IsMenuIconsEnabled() const
+sal_Int16 SvtMenuOptions::GetMenuIconsState() const
{
MutexGuard aGuard( GetOwnStaticMutex() );
- return m_pDataContainer->IsMenuIconsEnabled();
+ return m_pDataContainer->GetMenuIconsState();
}
//*****************************************************************************************************************
// public method
//*****************************************************************************************************************
-void SvtMenuOptions::SetMenuIconsState( sal_Bool bState )
+void SvtMenuOptions::SetMenuIconsState( sal_Int16 bState )
{
MutexGuard aGuard( GetOwnStaticMutex() );
m_pDataContainer->SetMenuIconsState( bState );
diff --git a/svtools/source/config/printoptions.cxx b/svtools/source/config/printoptions.cxx
index 657d82ddb44e..0f54366c47f6 100644
--- a/svtools/source/config/printoptions.cxx
+++ b/svtools/source/config/printoptions.cxx
@@ -168,17 +168,17 @@ public:
void SetReducedBitmapResolution( sal_Int16 nResolution ) ;
void SetReducedBitmapIncludesTransparency( sal_Bool bState ) ;
void SetConvertToGreyscales( sal_Bool bState ) ;
-
+
//-------------------------------------------------------------------------------------------------------------
// private API
-//-------------------------------------------------------------------------------------------------------------
-
-private:
- void impl_setValue (const ::rtl::OUString& sProp,
- ::sal_Bool bNew );
- void impl_setValue (const ::rtl::OUString& sProp,
- ::sal_Int16 nNew );
-
+//-------------------------------------------------------------------------------------------------------------
+
+private:
+ void impl_setValue (const ::rtl::OUString& sProp,
+ ::sal_Bool bNew );
+ void impl_setValue (const ::rtl::OUString& sProp,
+ ::sal_Int16 nNew );
+
//-------------------------------------------------------------------------------------------------------------
// private member
//-------------------------------------------------------------------------------------------------------------
@@ -431,7 +431,7 @@ sal_Bool SvtPrintOptions_Impl::IsConvertToGreyscales() const
return bRet;
}
-
+
void SvtPrintOptions_Impl::SetReduceTransparency(sal_Bool bState)
{
impl_setValue(PROPERTYNAME_REDUCETRANSPARENCY, bState);
@@ -488,21 +488,21 @@ SvtPrintOptions_Impl::~SvtPrintOptions_Impl()
m_xCfg.clear();
}
-void SvtPrintOptions_Impl::impl_setValue (const ::rtl::OUString& sProp,
- ::sal_Bool bNew )
-{
+void SvtPrintOptions_Impl::impl_setValue (const ::rtl::OUString& sProp,
+ ::sal_Bool bNew )
+{
try
{
- if ( ! m_xNode.is())
- return;
+ if ( ! m_xNode.is())
+ return;
css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if ( ! xSet.is())
- return;
+ if ( ! xSet.is())
+ return;
::sal_Bool bOld = ! bNew;
- if ( ! (xSet->getPropertyValue(sProp) >>= bOld))
- return;
+ if ( ! (xSet->getPropertyValue(sProp) >>= bOld))
+ return;
if (bOld != bNew)
{
@@ -514,23 +514,23 @@ void SvtPrintOptions_Impl::impl_setValue (const ::rtl::OUString& sProp,
{
LogHelper::logIt(ex);
}
-}
+}
-void SvtPrintOptions_Impl::impl_setValue (const ::rtl::OUString& sProp,
- ::sal_Int16 nNew )
-{
+void SvtPrintOptions_Impl::impl_setValue (const ::rtl::OUString& sProp,
+ ::sal_Int16 nNew )
+{
try
{
- if ( ! m_xNode.is())
- return;
+ if ( ! m_xNode.is())
+ return;
css::uno::Reference<css::beans::XPropertySet> xSet(m_xNode, css::uno::UNO_QUERY);
- if ( ! xSet.is())
- return;
+ if ( ! xSet.is())
+ return;
::sal_Int16 nOld = nNew+1;
- if ( ! (xSet->getPropertyValue(sProp) >>= nOld))
- return;
+ if ( ! (xSet->getPropertyValue(sProp) >>= nOld))
+ return;
if (nOld != nNew)
{
@@ -542,8 +542,8 @@ void SvtPrintOptions_Impl::impl_setValue (const ::rtl::OUString& sProp,
{
LogHelper::logIt(ex);
}
-}
-
+}
+
// -----------------------------------------------------------------------------
diff --git a/svtools/source/config/regoptions.cxx b/svtools/source/config/regoptions.cxx
index 98c4bb7ae2d5..7c94807f2c25 100644
--- a/svtools/source/config/regoptions.cxx
+++ b/svtools/source/config/regoptions.cxx
@@ -35,6 +35,8 @@
#include <tools/date.hxx>
#include <comphelper/processfactory.hxx>
#include <osl/mutex.hxx>
+#include <unotools/bootstrap.hxx>
+#include <rtl/ustring.hxx>
//........................................................................
namespace svt
@@ -172,6 +174,7 @@ namespace svt
static ::osl::Mutex& getStaticMutex(); // get the mutex used to protect the static members of this class
void commit( );
+ sal_Int32 getBuildId() const;
private:
RegOptions::DialogPermission implGetDialogPermission( ) const;
@@ -282,13 +285,8 @@ namespace svt
m_aRegistrationNode.getNodeValue( lcl_getReminderDateName() ) >>= sStringValue;
bool bIsPatchDate = ( sStringValue.equals( lcl_getPatchName() ) != sal_False );
if ( !bIsPatchDate && sStringValue.getLength() )
- {
nIntDate = lcl_convertString2Date( sStringValue );
- OSL_ENSURE( nIntDate, "RegOptionsImpl::RegOptionsImpl: incorrect value found for the reminder date!" );
- }
m_aReminderDate.SetDate( nIntDate );
- OSL_ENSURE( bIsPatchDate || !sStringValue.getLength() || m_aReminderDate.IsValid(),
- "RegOptionsImpl::RegOptionsImpl: inavlid reminder date value!" );
}
//--------------------------------------------------------------------
@@ -364,13 +362,34 @@ namespace svt
//--------------------------------------------------------------------
void RegOptionsImpl::removeReminder()
{
+ ::rtl::OUString aDefault;
+ ::rtl::OUString aReminderValue( lcl_getPatchName() );
+ aReminderValue += ::rtl::OUString::valueOf(getBuildId());
+
m_aRegistrationNode.setNodeValue(
lcl_getReminderDateName(),
- makeAny( ::rtl::OUString() )
+ Any( aReminderValue )
);
}
//--------------------------------------------------------------------
+ sal_Int32 RegOptionsImpl::getBuildId() const
+ {
+ sal_Int32 nBuildId( 0 );
+ ::rtl::OUString aDefault;
+ ::rtl::OUString aBuildIdData = utl::Bootstrap::getBuildIdData( aDefault );
+ sal_Int32 nIndex1 = aBuildIdData.indexOf(':');
+ sal_Int32 nIndex2 = aBuildIdData.indexOf(')');
+ if (( nIndex1 > 0 ) && ( nIndex2 > 0 ) && ( nIndex2-1 > nIndex1+1 ))
+ {
+ ::rtl::OUString aBuildId = aBuildIdData.copy( nIndex1+1, nIndex2-nIndex1-1 );
+ nBuildId = aBuildId.toInt32();
+ }
+
+ return nBuildId;
+ }
+
+ //--------------------------------------------------------------------
bool RegOptionsImpl::hasReminderDateCome() const
{
bool bRet = false;
@@ -379,8 +398,22 @@ namespace svt
m_aRegistrationNode.getNodeValue( lcl_getReminderDateName() ) >>= sDate;
if ( sDate.getLength() )
{
- if ( sDate.equals( lcl_getPatchName() ) )
- bRet = true;
+ if ( sDate.indexOf( lcl_getPatchName() ) == 0)
+ {
+ if (sDate.equals( lcl_getPatchName() ))
+ bRet = true;
+ else if (sDate.getLength() > lcl_getPatchName().getLength() )
+ {
+ // Check the build ID to determine if the registration
+ // dialog needs to be shown.
+ sal_Int32 nBuildId = getBuildId();
+ ::rtl::OUString aStoredBuildId( sDate.copy(lcl_getPatchName().getLength()));
+
+ // remind if the current build ID is not the same as the stored one
+ if ( nBuildId != aStoredBuildId.toInt32() )
+ bRet = true;
+ }
+ }
else
{
nDate = lcl_convertString2Date( sDate );
@@ -392,6 +425,9 @@ namespace svt
}
}
}
+ else
+ bRet = true;
+
return bRet;
}
@@ -423,10 +459,7 @@ namespace svt
);
// and clear the reminder date
- m_aRegistrationNode.setNodeValue(
- lcl_getReminderDateName(),
- Any()
- );
+ removeReminder();
}
}
}
diff --git a/svtools/source/config/securityoptions.cxx b/svtools/source/config/securityoptions.cxx
index 6fdb314f9c74..8fbc9008d51e 100644
--- a/svtools/source/config/securityoptions.cxx
+++ b/svtools/source/config/securityoptions.cxx
@@ -901,7 +901,7 @@ sal_Bool SvtSecurityOptions_Impl::IsSecureURL( const OUString& sURL ,
INetProtocol aProtocol = aURL.GetProtocol();
// All other URLs must checked in combination with referer and internal information about security
- if ( aProtocol != INET_PROT_MACRO && aProtocol != INET_PROT_SLOT ||
+ if ( (aProtocol != INET_PROT_MACRO && aProtocol != INET_PROT_SLOT) ||
aURL.GetMainURL( INetURLObject::NO_DECODE ).matchIgnoreAsciiCaseAsciiL( "macro:///", 9 ) == 0)
{
// security check only for "macro" ( without app basic ) or "slot" protocols
diff --git a/svtools/source/contnr/fileview.cxx b/svtools/source/contnr/fileview.cxx
index d56c270fd5a8..274557051c27 100644
--- a/svtools/source/contnr/fileview.cxx
+++ b/svtools/source/contnr/fileview.cxx
@@ -1065,7 +1065,10 @@ BOOL ViewTabListBox_Impl::DoubleClickHdl()
::rtl::OUString sRet = SvHeaderTabListBox::GetAccessibleObjectDescription( _eType, _nPos );
if ( ::svt::BBTYPE_TABLECELL == _eType )
{
- sal_Int32 nRow = _nPos / GetColumnCount();
+ sal_Int32 nRow = -1;
+ const sal_uInt16 nColumnCount = GetColumnCount();
+ if (nColumnCount > 0)
+ nRow = _nPos / nColumnCount;
SvLBoxEntry* pEntry = GetEntry( nRow );
if ( pEntry )
{
diff --git a/svtools/source/contnr/svimpbox.cxx b/svtools/source/contnr/svimpbox.cxx
index 276557854f02..e17b81e548a9 100644
--- a/svtools/source/contnr/svimpbox.cxx
+++ b/svtools/source/contnr/svimpbox.cxx
@@ -3213,7 +3213,9 @@ void SvImpLBox::Command( const CommandEvent& rCEvt )
if( pPopup )
{
// do action for selected entry in popup menu
- pView->ExcecuteContextMenuAction( pPopup->Execute( pView, aPopupPos ) );
+ USHORT nMenuAction = pPopup->Execute( pView, aPopupPos );
+ if ( nMenuAction )
+ pView->ExcecuteContextMenuAction( nMenuAction );
lcl_DeleteSubPopups(pPopup);
delete pPopup;
}
diff --git a/svtools/source/contnr/svlbox.cxx b/svtools/source/contnr/svlbox.cxx
index 1c81343cd84f..e56db398b8fb 100644
--- a/svtools/source/contnr/svlbox.cxx
+++ b/svtools/source/contnr/svlbox.cxx
@@ -1203,6 +1203,12 @@ void SvLBox::ViewDataInitialized( SvLBoxEntry* )
DBG_CHKTHIS(SvLBox,0);
}
+void SvLBox::StateChanged( StateChangedType eType )
+{
+ if( eType == STATE_CHANGE_ENABLE )
+ Invalidate( INVALIDATE_CHILDREN );
+ Control::StateChanged( eType );
+}
void SvLBox::ImplShowTargetEmphasis( SvLBoxEntry* pEntry, BOOL bShow)
{
diff --git a/svtools/source/contnr/svtabbx.cxx b/svtools/source/contnr/svtabbx.cxx
index 32e8e68facb1..fc02c85dfd25 100644
--- a/svtools/source/contnr/svtabbx.cxx
+++ b/svtools/source/contnr/svtabbx.cxx
@@ -980,10 +980,12 @@ Reference< XAccessible > SvHeaderTabListBox::CreateAccessibleCell( sal_Int32 _nR
if ( !AreChildrenTransient() )
{
+ const sal_uInt16 nColumnCount = GetColumnCount();
+
// first call? -> initial list
if ( m_aAccessibleChildren.empty() )
{
- sal_Int32 nCount = ( GetRowCount() + 1 ) * GetColumnCount();
+ sal_Int32 nCount = ( GetRowCount() + 1 ) * nColumnCount;
m_aAccessibleChildren.assign( nCount, Reference< XAccessible >() );
}
@@ -1021,8 +1023,9 @@ Reference< XAccessible > SvHeaderTabListBox::CreateAccessibleColumnHeader( sal_u
// first call? -> initial list
if ( m_aAccessibleChildren.empty() )
{
- sal_Int32 nCount = AreChildrenTransient() ? GetColumnCount()
- : ( GetRowCount() + 1 ) * GetColumnCount();
+ const sal_uInt16 nColumnCount = GetColumnCount();
+ sal_Int32 nCount = AreChildrenTransient() ?
+ nColumnCount : ( GetRowCount() + 1 ) * nColumnCount;
m_aAccessibleChildren.assign( nCount, Reference< XAccessible >() );
}
@@ -1098,9 +1101,12 @@ sal_Bool SvHeaderTabListBox::ConvertPointToColumnHeader( sal_uInt16&, const Poin
if ( _nPos >= 0 )
{
sal_uInt16 nColumnCount = GetColumnCount();
- sal_Int32 nRow = _nPos / nColumnCount;
- sal_uInt16 nColumn = static_cast< sal_uInt16 >( _nPos % nColumnCount );
- aRetText = GetCellText( nRow, nColumn );
+ if (nColumnCount > 0)
+ {
+ sal_Int32 nRow = _nPos / nColumnCount;
+ sal_uInt16 nColumn = static_cast< sal_uInt16 >( _nPos % nColumnCount );
+ aRetText = GetCellText( nRow, nColumn );
+ }
}
break;
}
@@ -1135,16 +1141,19 @@ sal_Bool SvHeaderTabListBox::ConvertPointToColumnHeader( sal_uInt16&, const Poin
static const String sVar2( RTL_CONSTASCII_USTRINGPARAM( "%2" ) );
sal_uInt16 nColumnCount = GetColumnCount();
- sal_Int32 nRow = _nPos / nColumnCount;
- sal_uInt16 nColumn = static_cast< sal_uInt16 >( _nPos % nColumnCount );
-
- String aText( SvtResId( STR_SVT_ACC_DESC_TABLISTBOX ) );
- aText.SearchAndReplace( sVar1, String::CreateFromInt32( nRow ) );
- String sColHeader = m_pImpl->m_pHeaderBar->GetItemText( m_pImpl->m_pHeaderBar->GetItemId( nColumn ) );
- if ( sColHeader.Len() == 0 )
- sColHeader = String::CreateFromInt32( nColumn );
- aText.SearchAndReplace( sVar2, sColHeader );
- aRetText = aText;
+ if (nColumnCount > 0)
+ {
+ sal_Int32 nRow = _nPos / nColumnCount;
+ sal_uInt16 nColumn = static_cast< sal_uInt16 >( _nPos % nColumnCount );
+
+ String aText( SvtResId( STR_SVT_ACC_DESC_TABLISTBOX ) );
+ aText.SearchAndReplace( sVar1, String::CreateFromInt32( nRow ) );
+ String sColHeader = m_pImpl->m_pHeaderBar->GetItemText( m_pImpl->m_pHeaderBar->GetItemId( nColumn ) );
+ if ( sColHeader.Len() == 0 )
+ sColHeader = String::CreateFromInt32( nColumn );
+ aText.SearchAndReplace( sVar2, sColHeader );
+ aRetText = aText;
+ }
}
return aRetText;
diff --git a/svtools/source/contnr/templwin.cxx b/svtools/source/contnr/templwin.cxx
index 042088d317bb..2b212fdcffeb 100644
--- a/svtools/source/contnr/templwin.cxx
+++ b/svtools/source/contnr/templwin.cxx
@@ -35,6 +35,7 @@
#include <svtools/svtdata.hxx>
#include <svtools/pathoptions.hxx>
#include <svtools/dynamicmenuoptions.hxx>
+#include <svtools/extendedsecurityoptions.hxx>
#include <svtools/xtextedt.hxx>
#include <svtools/inettype.hxx>
#include "imagemgr.hxx"
@@ -1742,9 +1743,16 @@ void SvtDocumentTemplateDialog::InitImpl( )
pImpl = new SvtTmplDlg_Impl( this );
pImpl->aTitle = GetText();
+ bool bHideLink = ( SvtExtendedSecurityOptions().GetOpenHyperlinkMode()
+ == SvtExtendedSecurityOptions::OPEN_NEVER );
+ if ( !bHideLink )
+ {
aMoreTemplatesLink.SetURL( String(
RTL_CONSTASCII_STRINGPARAM( "http://templates.services.openoffice.org/?cid=923508" ) ) );
aMoreTemplatesLink.SetClickHdl( LINK( this, SvtDocumentTemplateDialog, OpenLinkHdl_Impl ) );
+ }
+ else
+ aMoreTemplatesLink.Hide();
aManageBtn.SetClickHdl( LINK( this, SvtDocumentTemplateDialog, OrganizerHdl_Impl ) );
Link aLink = LINK( this, SvtDocumentTemplateDialog, OKHdl_Impl );
@@ -1762,14 +1770,17 @@ void SvtDocumentTemplateDialog::InitImpl( )
Size aSize = GetOutputSizePixel();
Point aPos = aMoreTemplatesLink.GetPosPixel();
Size a6Size = LogicToPixel( Size( 6, 6 ), MAP_APPFONT );
- aPos.Y() -= a6Size.Height();
+ if ( bHideLink )
+ aPos.Y() += aMoreTemplatesLink.GetSizePixel().Height();
+ else
+ aPos.Y() -= a6Size.Height();
long nDelta = aPos.Y() - nHeight;
aSize.Height() -= nDelta;
SetOutputSizePixel( aSize );
aSize.Height() = nHeight;
- aSize.Width() -= a6Size.Width();
- pImpl->pWin->SetPosSizePixel( Point( a6Size.Width() / 2, 0 ), aSize );
+ aSize.Width() -= ( a6Size.Width() * 2 );
+ pImpl->pWin->SetPosSizePixel( Point( a6Size.Width(), 0 ), aSize );
aPos = aMoreTemplatesLink.GetPosPixel();
aPos.Y() -= nDelta;
diff --git a/svtools/source/contnr/templwin.src b/svtools/source/contnr/templwin.src
index c8b9c4d58123..30149de4da14 100644
--- a/svtools/source/contnr/templwin.src
+++ b/svtools/source/contnr/templwin.src
@@ -275,7 +275,7 @@ ModalDialog DLG_DOCTEMPLATE
HelpId = HID_TEMPLATEDLG_DIALOG ;
OutputSize = TRUE ;
SVLook = TRUE ;
- Size = MAP_APPFONT( 320, 245 );
+ Size = MAP_APPFONT( 320, 250 );
Text [ en-US ] = "Templates and Documents" ;
Moveable = TRUE ;
FixedText FT_DOCTEMPLATE_LINK
@@ -288,35 +288,35 @@ ModalDialog DLG_DOCTEMPLATE
FixedLine FL_DOCTEMPLATE
{
Pos = MAP_APPFONT( 0, 219 );
- Size = MAP_APPFONT( 320, 1 );
+ Size = MAP_APPFONT( 320, 8 );
};
PushButton BTN_DOCTEMPLATE_MANAGE
{
- Pos = MAP_APPFONT( 3, 225 );
+ Pos = MAP_APPFONT( 6, 230 );
Size = MAP_APPFONT( 50, 14 );
Text [ en-US ] = "Organi~ze...";
};
PushButton BTN_DOCTEMPLATE_EDIT
{
- Pos = MAP_APPFONT( 56, 225 );
+ Pos = MAP_APPFONT( 59, 230 );
Size = MAP_APPFONT( 50, 14 );
Text [ en-US ] = "~Edit";
};
OKButton BTN_DOCTEMPLATE_OPEN
{
- Pos = MAP_APPFONT( 158, 225 );
+ Pos = MAP_APPFONT( 155, 230 );
Size = MAP_APPFONT( 50, 14 );
DefButton = TRUE;
Text [ en-US ] = "~Open";
};
CancelButton BTN_DOCTEMPLATE_CANCEL
{
- Pos = MAP_APPFONT( 211, 225 );
+ Pos = MAP_APPFONT( 208, 230 );
Size = MAP_APPFONT( 50, 14 );
};
HelpButton BTN_DOCTEMPLATE_HELP
{
- Pos = MAP_APPFONT( 267, 225 );
+ Pos = MAP_APPFONT( 264, 230 );
Size = MAP_APPFONT( 50, 14 );
};
};
diff --git a/svtools/source/control/filectrl.cxx b/svtools/source/control/filectrl.cxx
index 76893744688b..d820dce097ed 100644
--- a/svtools/source/control/filectrl.cxx
+++ b/svtools/source/control/filectrl.cxx
@@ -47,7 +47,7 @@
FileControl::FileControl( Window* pParent, WinBits nStyle, FileControlMode nFlags ) :
Window( pParent, nStyle|WB_DIALOGCONTROL ),
maEdit( this, (nStyle&(~WB_BORDER))|WB_NOTABSTOP ),
- maButton( this, nStyle&(~WB_BORDER)|WB_NOLIGHTBORDER|WB_NOPOINTERFOCUS|WB_NOTABSTOP ),
+ maButton( this, (nStyle&(~WB_BORDER))|WB_NOLIGHTBORDER|WB_NOPOINTERFOCUS|WB_NOTABSTOP ),
maButtonText( SvtResId( STR_FILECTRL_BUTTONTEXT ) ),
mnFlags( nFlags ),
mnInternalFlags( FILECTRL_ORIGINALBUTTONTEXT )
@@ -164,11 +164,11 @@ void FileControl::Resize()
Size aOutSz = GetOutputSizePixel();
long nButtonTextWidth = maButton.GetTextWidth( maButtonText );
if ( ((mnInternalFlags & FILECTRL_ORIGINALBUTTONTEXT) == 0) ||
- nButtonTextWidth < aOutSz.Width()/3 &&
+ ( nButtonTextWidth < aOutSz.Width()/3 &&
( mnFlags & FILECTRL_RESIZEBUTTONBYPATHLEN
? ( maEdit.GetTextWidth( maEdit.GetText() )
<= aOutSz.Width() - nButtonTextWidth - ButtonBorder )
- : TRUE )
+ : TRUE ) )
)
{
maButton.SetText( maButtonText );
diff --git a/svtools/source/control/inettbc.cxx b/svtools/source/control/inettbc.cxx
index 2f9e881e39c9..4a01a03ad759 100644
--- a/svtools/source/control/inettbc.cxx
+++ b/svtools/source/control/inettbc.cxx
@@ -374,8 +374,8 @@ void SvtMatchContext_Impl::ReadFolder( const String& rURL,
sal_Bool bExectMatch = bPureHomePath
|| aText.CompareToAscii( "." ) == COMPARE_EQUAL
- || aText.Len() > 1 && aText.Copy( aText.Len() - 2, 2 ).CompareToAscii( "/." ) == COMPARE_EQUAL
- || aText.Len() > 1 && aText.Copy( aText.Len() - 3, 3 ).CompareToAscii( "/.." ) == COMPARE_EQUAL;
+ || (aText.Len() > 1 && aText.Copy( aText.Len() - 2, 2 ).CompareToAscii( "/." ) == COMPARE_EQUAL)
+ || (aText.Len() > 2 && aText.Copy( aText.Len() - 3, 3 ).CompareToAscii( "/.." ) == COMPARE_EQUAL);
// for pure home pathes ( ~username ) the '.' at the end of rMatch
// means that it poits to root catalog
@@ -641,7 +641,7 @@ void SvtMatchContext_Impl::run()
// if the user input is a valid URL, go on with it
// otherwise it could be parsed smart with a predefined smart protocol
// ( or if this is not set with the protocol of a predefined base URL )
- if( eProt == INET_PROT_NOT_VALID || eProt == eSmartProt || eSmartProt == INET_PROT_NOT_VALID && eProt == eBaseProt )
+ if( eProt == INET_PROT_NOT_VALID || eProt == eSmartProt || (eSmartProt == INET_PROT_NOT_VALID && eProt == eBaseProt) )
{
// not stopped yet ?
if( schedule() )
diff --git a/svtools/source/control/scrwin.cxx b/svtools/source/control/scrwin.cxx
index 9805110c9254..162f23948385 100644
--- a/svtools/source/control/scrwin.cxx
+++ b/svtools/source/control/scrwin.cxx
@@ -273,8 +273,8 @@ void __EXPORT ScrollableWindow::Resize()
// disable painting in the corner between the scrollbars
if ( bVVisible && bHVisible )
{
- aCornerWin.SetPosSizePixel(
- *((Point*) &aOutPixSz), Size(nScrSize, nScrSize) );
+ aCornerWin.SetPosSizePixel(Point(aOutPixSz.Width(), aOutPixSz.Height()),
+ Size(nScrSize, nScrSize) );
aCornerWin.Show();
}
else
diff --git a/svtools/source/control/tabbar.cxx b/svtools/source/control/tabbar.cxx
index 6f3db6175677..ed1abbe53a2a 100644
--- a/svtools/source/control/tabbar.cxx
+++ b/svtools/source/control/tabbar.cxx
@@ -1543,7 +1543,7 @@ void TabBar::InsertPage( USHORT nPageId, const XubString& rText,
TabBarPageBits nBits, USHORT nPos )
{
DBG_ASSERT( nPageId, "TabBar::InsertPage(): PageId == 0" );
- DBG_ASSERT( GetPagePos( nPageId ) == TAB_PAGE_NOTFOUND,
+ DBG_ASSERT( GetPagePos( nPageId ) == TABBAR_PAGE_NOTFOUND,
"TabBar::InsertPage(): PageId already exists" );
DBG_ASSERT( nBits <= TPB_SPECIAL, "TabBar::InsertPage(): nBits is wrong" );
@@ -1570,7 +1570,7 @@ void TabBar::RemovePage( USHORT nPageId )
USHORT nPos = GetPagePos( nPageId );
// Existiert Item
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
{
if ( mnCurPageId == nPageId )
mnCurPageId = 0;
@@ -1605,7 +1605,7 @@ void TabBar::MovePage( USHORT nPageId, USHORT nNewPos )
return;
// Existiert Item
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
{
// TabBar-Item in der Liste verschieben
ImplTabBarItem* pItem = mpItemList->Remove( nPos );
@@ -1643,7 +1643,7 @@ void TabBar::Clear()
if ( IsReallyVisible() && IsUpdateMode() )
Invalidate();
- CallEventListeners( VCLEVENT_TABBAR_PAGEREMOVED, (void*) TAB_PAGE_NOTFOUND );
+ CallEventListeners( VCLEVENT_TABBAR_PAGEREMOVED, (void*) TABBAR_PAGE_NOTFOUND );
}
// -----------------------------------------------------------------------
@@ -1652,7 +1652,7 @@ void TabBar::EnablePage( USHORT nPageId, BOOL bEnable )
{
USHORT nPos = GetPagePos( nPageId );
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
{
ImplTabBarItem* pItem = mpItemList->GetObject( nPos );
@@ -1675,7 +1675,7 @@ BOOL TabBar::IsPageEnabled( USHORT nPageId ) const
{
USHORT nPos = GetPagePos( nPageId );
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
return mpItemList->GetObject( nPos )->mbEnable;
else
return FALSE;
@@ -1687,7 +1687,7 @@ void TabBar::SetPageBits( USHORT nPageId, TabBarPageBits nBits )
{
USHORT nPos = GetPagePos( nPageId );
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
{
ImplTabBarItem* pItem = mpItemList->GetObject( nPos );
@@ -1708,7 +1708,7 @@ TabBarPageBits TabBar::GetPageBits( USHORT nPageId ) const
{
USHORT nPos = GetPagePos( nPageId );
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
return mpItemList->GetObject( nPos )->mnBits;
else
return FALSE;
@@ -1745,7 +1745,7 @@ USHORT TabBar::GetPagePos( USHORT nPageId ) const
pItem = mpItemList->Next();
}
- return TAB_PAGE_NOTFOUND;
+ return TABBAR_PAGE_NOTFOUND;
}
// -----------------------------------------------------------------------
@@ -1770,7 +1770,7 @@ Rectangle TabBar::GetPageRect( USHORT nPageId ) const
{
USHORT nPos = GetPagePos( nPageId );
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
return mpItemList->GetObject( nPos )->maRect;
else
return Rectangle();
@@ -1783,7 +1783,7 @@ void TabBar::SetCurPageId( USHORT nPageId )
USHORT nPos = GetPagePos( nPageId );
// Wenn Item nicht existiert, dann nichts machen
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
{
// Wenn sich aktuelle Page nicht geaendert hat, dann muessen wir
// jetzt nichts mehr machen
@@ -1875,7 +1875,7 @@ void TabBar::MakeVisible( USHORT nPageId )
USHORT nPos = GetPagePos( nPageId );
// Wenn Item nicht existiert, dann nichts machen
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
{
if ( nPos < mnFirstPos )
SetFirstPageId( nPageId );
@@ -1924,7 +1924,7 @@ void TabBar::SetFirstPageId( USHORT nPageId )
USHORT nPos = GetPagePos( nPageId );
// Wenn Item nicht existiert, dann FALSE zurueckgeben
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
{
if ( nPos != mnFirstPos )
{
@@ -1958,7 +1958,7 @@ void TabBar::SelectPage( USHORT nPageId, BOOL bSelect )
{
USHORT nPos = GetPagePos( nPageId );
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
{
ImplTabBarItem* pItem = mpItemList->GetObject( nPos );
@@ -2039,7 +2039,7 @@ USHORT TabBar::GetSelectPageCount() const
BOOL TabBar::IsPageSelected( USHORT nPageId ) const
{
USHORT nPos = GetPagePos( nPageId );
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
return mpItemList->GetObject( nPos )->mbSelect;
else
return FALSE;
@@ -2050,7 +2050,7 @@ BOOL TabBar::IsPageSelected( USHORT nPageId ) const
BOOL TabBar::StartEditMode( USHORT nPageId )
{
USHORT nPos = GetPagePos( nPageId );
- if ( mpEdit || (nPos == TAB_PAGE_NOTFOUND) || (mnLastOffX < 8) )
+ if ( mpEdit || (nPos == TABBAR_PAGE_NOTFOUND) || (mnLastOffX < 8) )
return FALSE;
mnEditId = nPageId;
@@ -2126,11 +2126,11 @@ void TabBar::EndEditMode( BOOL bCancel )
if ( !bCancel )
{
long nAllowRenaming = AllowRenaming();
- if ( nAllowRenaming == TAB_RENAMING_YES )
+ if ( nAllowRenaming == TABBAR_RENAMING_YES )
SetPageText( mnEditId, maEditText );
- else if ( nAllowRenaming == TAB_RENAMING_NO )
+ else if ( nAllowRenaming == TABBAR_RENAMING_NO )
bEnd = FALSE;
- else // nAllowRenaming == TAB_RENAMING_CANCEL
+ else // nAllowRenaming == TABBAR_RENAMING_CANCEL
mbEditCanceled = TRUE;
}
@@ -2271,7 +2271,7 @@ void TabBar::SetSelectTextColor( const Color& rColor )
void TabBar::SetPageText( USHORT nPageId, const XubString& rText )
{
USHORT nPos = GetPagePos( nPageId );
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
{
mpItemList->GetObject( nPos )->maText = rText;
mbSizeFormat = TRUE;
@@ -2289,7 +2289,7 @@ void TabBar::SetPageText( USHORT nPageId, const XubString& rText )
XubString TabBar::GetPageText( USHORT nPageId ) const
{
USHORT nPos = GetPagePos( nPageId );
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
return mpItemList->GetObject( nPos )->maText;
else
return XubString();
@@ -2300,7 +2300,7 @@ XubString TabBar::GetPageText( USHORT nPageId ) const
void TabBar::SetHelpText( USHORT nPageId, const XubString& rText )
{
USHORT nPos = GetPagePos( nPageId );
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
mpItemList->GetObject( nPos )->maHelpText = rText;
}
@@ -2309,7 +2309,7 @@ void TabBar::SetHelpText( USHORT nPageId, const XubString& rText )
XubString TabBar::GetHelpText( USHORT nPageId ) const
{
USHORT nPos = GetPagePos( nPageId );
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
{
ImplTabBarItem* pItem = mpItemList->GetObject( nPos );
if ( !pItem->maHelpText.Len() && pItem->mnHelpId )
@@ -2330,7 +2330,7 @@ XubString TabBar::GetHelpText( USHORT nPageId ) const
void TabBar::SetHelpId( USHORT nPageId, ULONG nHelpId )
{
USHORT nPos = GetPagePos( nPageId );
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
mpItemList->GetObject( nPos )->mnHelpId = nHelpId;
}
@@ -2339,7 +2339,7 @@ void TabBar::SetHelpId( USHORT nPageId, ULONG nHelpId )
ULONG TabBar::GetHelpId( USHORT nPageId ) const
{
USHORT nPos = GetPagePos( nPageId );
- if ( nPos != TAB_PAGE_NOTFOUND )
+ if ( nPos != TABBAR_PAGE_NOTFOUND )
return mpItemList->GetObject( nPos )->mnHelpId;
else
return 0;
diff --git a/svtools/source/edit/editsyntaxhighlighter.cxx b/svtools/source/edit/editsyntaxhighlighter.cxx
index 74d72e32155c..990e3041d903 100644
--- a/svtools/source/edit/editsyntaxhighlighter.cxx
+++ b/svtools/source/edit/editsyntaxhighlighter.cxx
@@ -29,14 +29,14 @@
************************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
+#include "precompiled_svtools.hxx"
+
#include <svtools/svmedit.hxx>
-#include <svtools/xtextedt.hxx>
-#include <svtools/editsyntaxhighlighter.hxx>
-#include "../../inc/txtattr.hxx"
-
-
+#include <svtools/xtextedt.hxx>
+#include <svtools/editsyntaxhighlighter.hxx>
+#include "../../inc/txtattr.hxx"
+
+
MultiLineEditSyntaxHighlight::MultiLineEditSyntaxHighlight( Window* pParent, WinBits nWinStyle,
HighlighterLanguage aLanguage): MultiLineEdit(pParent,nWinStyle), mbDoBracketHilight(true)
{
diff --git a/svtools/source/edit/svmedit.cxx b/svtools/source/edit/svmedit.cxx
index 279af7c83cef..135761195e48 100644
--- a/svtools/source/edit/svmedit.cxx
+++ b/svtools/source/edit/svmedit.cxx
@@ -452,46 +452,62 @@ String ImpSvMEdit::GetSelected( LineEnd aSeparator ) const
void ImpSvMEdit::Resize()
{
- WinBits nWinStyle( pSvMultiLineEdit->GetStyle() );
- if ( ( nWinStyle & WB_AUTOVSCROLL ) == WB_AUTOVSCROLL )
- ImpUpdateSrollBarVis( nWinStyle );
-
- Size aSz = pSvMultiLineEdit->GetOutputSizePixel();
- Size aEditSize = aSz;
- long nSBWidth = pSvMultiLineEdit->GetSettings().GetStyleSettings().GetScrollBarSize();
- nSBWidth = pSvMultiLineEdit->CalcZoom( nSBWidth );
-
- if ( mpHScrollBar )
- aSz.Height() -= nSBWidth+1;
- if ( mpVScrollBar )
- aSz.Width() -= nSBWidth+1;
+ size_t nIteration = 1;
+ do
+ {
+ WinBits nWinStyle( pSvMultiLineEdit->GetStyle() );
+ if ( ( nWinStyle & WB_AUTOVSCROLL ) == WB_AUTOVSCROLL )
+ ImpUpdateSrollBarVis( nWinStyle );
- Size aTextWindowSz( aSz );
- aTextWindowSz.Width() -= maTextWindowOffset.X();
- aTextWindowSz.Height() -= maTextWindowOffset.Y();
- Point aTextWindowPos( maTextWindowOffset );
+ Size aSz = pSvMultiLineEdit->GetOutputSizePixel();
+ Size aEditSize = aSz;
+ long nSBWidth = pSvMultiLineEdit->GetSettings().GetStyleSettings().GetScrollBarSize();
+ nSBWidth = pSvMultiLineEdit->CalcZoom( nSBWidth );
- if ( !mpHScrollBar )
- mpTextWindow->GetTextEngine()->SetMaxTextWidth( aSz.Width() );
+ if ( mpHScrollBar )
+ aSz.Height() -= nSBWidth+1;
+ if ( mpVScrollBar )
+ aSz.Width() -= nSBWidth+1;
- if ( mpHScrollBar )
- mpHScrollBar->SetPosSizePixel( 0, aEditSize.Height()-nSBWidth, aSz.Width(), nSBWidth );
+ if ( !mpHScrollBar )
+ mpTextWindow->GetTextEngine()->SetMaxTextWidth( aSz.Width() );
+ else
+ mpHScrollBar->SetPosSizePixel( 0, aEditSize.Height()-nSBWidth, aSz.Width(), nSBWidth );
- if ( mpVScrollBar )
- {
- if( Application::GetSettings().GetLayoutRTL() )
+ Point aTextWindowPos( maTextWindowOffset );
+ if ( mpVScrollBar )
{
- mpVScrollBar->SetPosSizePixel( 0, 0, nSBWidth, aSz.Height() );
- aTextWindowPos.X() += nSBWidth;
+ if( Application::GetSettings().GetLayoutRTL() )
+ {
+ mpVScrollBar->SetPosSizePixel( 0, 0, nSBWidth, aSz.Height() );
+ aTextWindowPos.X() += nSBWidth;
+ }
+ else
+ mpVScrollBar->SetPosSizePixel( aEditSize.Width()-nSBWidth, 0, nSBWidth, aSz.Height() );
}
- else
- mpVScrollBar->SetPosSizePixel( aEditSize.Width()-nSBWidth, 0, nSBWidth, aSz.Height() );
- }
- mpTextWindow->SetPosSizePixel( aTextWindowPos, aTextWindowSz );
+ if ( mpScrollBox )
+ mpScrollBox->SetPosSizePixel( aSz.Width(), aSz.Height(), nSBWidth, nSBWidth );
+
+ Size aTextWindowSize( aSz );
+ aTextWindowSize.Width() -= maTextWindowOffset.X();
+ aTextWindowSize.Height() -= maTextWindowOffset.Y();
+ if ( aTextWindowSize.Width() < 0 )
+ aTextWindowSize.Width() = 0;
+ if ( aTextWindowSize.Height() < 0 )
+ aTextWindowSize.Height() = 0;
+
+ Size aOldTextWindowSize( mpTextWindow->GetSizePixel() );
+ mpTextWindow->SetPosSizePixel( aTextWindowPos, aTextWindowSize );
+ if ( aOldTextWindowSize == aTextWindowSize )
+ break;
+
+ // Changing the text window size might effectively have changed the need for
+ // scrollbars, so do another iteration.
+ ++nIteration;
+ OSL_ENSURE( nIteration < 3, "ImpSvMEdit::Resize: isn't this expected to terminate with the second iteration?" );
- if ( mpScrollBox )
- mpScrollBox->SetPosSizePixel( aSz.Width(), aSz.Height(), nSBWidth, nSBWidth );
+ } while ( nIteration <= 3 ); // artificial break after four iterations
ImpInitScrollBars();
}
diff --git a/svtools/source/filter.vcl/ixbm/xbmread.cxx b/svtools/source/filter.vcl/ixbm/xbmread.cxx
index 7429ffcc90cd..32f73d62c195 100644
--- a/svtools/source/filter.vcl/ixbm/xbmread.cxx
+++ b/svtools/source/filter.vcl/ixbm/xbmread.cxx
@@ -157,7 +157,7 @@ long XBMReader::ParseDefine( const sal_Char* pDefine )
{
long nRet = 0;
char* pTmp = (char*) pDefine;
- char cTmp;
+ unsigned char cTmp;
// bis zum Ende gehen
pTmp += ( strlen( pDefine ) - 1 );
diff --git a/svtools/source/filter.vcl/wmf/enhwmf.cxx b/svtools/source/filter.vcl/wmf/enhwmf.cxx
index 5efc20be09d2..db12dab82cbd 100644
--- a/svtools/source/filter.vcl/wmf/enhwmf.cxx
+++ b/svtools/source/filter.vcl/wmf/enhwmf.cxx
@@ -390,10 +390,10 @@ BOOL EnhWMFReader::ReadEnhWMF()
pnPoints[ i ] = (UINT16)nPoints;
}
- if ( ( nGesPoints * sizeof(Point) ) <= ( nEndPos - pWMF->Tell() ) )
+ if ( ( nGesPoints * (sizeof(sal_uInt32)+sizeof(sal_uInt32)) ) <= ( nEndPos - pWMF->Tell() ) )
{
// Polygonpunkte holen:
- pPtAry = (Point*) new char[ nGesPoints * sizeof(Point) ];
+ pPtAry = new Point[ nGesPoints ];
for ( i = 0; i < nGesPoints; i++ )
{
@@ -403,7 +403,7 @@ BOOL EnhWMFReader::ReadEnhWMF()
// PolyPolygon Actions erzeugen
PolyPolygon aPolyPoly( (UINT16)nPoly, pnPoints, pPtAry );
pOut->DrawPolyPolygon( aPolyPoly, bRecordPath );
- delete[] (char*) pPtAry;
+ delete[] pPtAry;
}
delete[] pnPoints;
}
@@ -1157,10 +1157,10 @@ BOOL EnhWMFReader::ReadEnhWMF()
*pWMF >> nPoints;
pnPoints[ i ] = (UINT16)nPoints;
}
- if ( ( nGesPoints * sizeof(Point) ) <= ( nEndPos - pWMF->Tell() ) )
+ if ( ( nGesPoints * (sizeof(sal_uInt16)+sizeof(sal_uInt16)) ) <= ( nEndPos - pWMF->Tell() ) )
{
// Polygonpunkte holen:
- pPtAry = (Point*) new char[ nGesPoints * sizeof(Point) ];
+ pPtAry = new Point[ nGesPoints ];
for ( i = 0; i < nGesPoints; i++ )
{
*pWMF >> nX16 >> nY16;
@@ -1170,7 +1170,7 @@ BOOL EnhWMFReader::ReadEnhWMF()
// PolyPolygon Actions erzeugen
PolyPolygon aPolyPoly( (UINT16)nPoly, pnPoints, pPtAry );
pOut->DrawPolyPolygon( aPolyPoly, bRecordPath );
- delete[] (char*) pPtAry;
+ delete[] pPtAry;
}
delete[] pnPoints;
}
diff --git a/svtools/source/filter.vcl/wmf/winwmf.cxx b/svtools/source/filter.vcl/wmf/winwmf.cxx
index 490ddaa82d40..0930b0ece8a8 100644
--- a/svtools/source/filter.vcl/wmf/winwmf.cxx
+++ b/svtools/source/filter.vcl/wmf/winwmf.cxx
@@ -276,7 +276,7 @@ void WMFReader::ReadRecordParams( USHORT nFunc )
case W_META_ROUNDRECT:
{
Size aSize( ReadYXExt() );
- pOut->DrawRoundRect( ReadRectangle(), aSize );
+ pOut->DrawRoundRect( ReadRectangle(), Size( aSize.Width() / 2, aSize.Height() / 2 ) );
}
break;
@@ -290,7 +290,9 @@ void WMFReader::ReadRecordParams( USHORT nFunc )
{
Point aEnd( ReadYX() );
Point aStart( ReadYX() );
- pOut->DrawArc( ReadRectangle(), aStart, aEnd );
+ Rectangle aRect( ReadRectangle() );
+ aRect.Justify();
+ pOut->DrawArc( aRect, aStart, aEnd );
}
break;
@@ -299,6 +301,7 @@ void WMFReader::ReadRecordParams( USHORT nFunc )
Point aEnd( ReadYX() );
Point aStart( ReadYX() );
Rectangle aRect( ReadRectangle() );
+ aRect.Justify();
// #i73608# OutputDevice deviates from WMF
// semantics. start==end means full ellipse here.
@@ -313,7 +316,9 @@ void WMFReader::ReadRecordParams( USHORT nFunc )
{
Point aEnd( ReadYX() );
Point aStart( ReadYX() );
- pOut->DrawChord( ReadRectangle(), aStart, aEnd );
+ Rectangle aRect( ReadRectangle() );
+ aRect.Justify();
+ pOut->DrawChord( aRect, aStart, aEnd );
}
break;
diff --git a/svtools/source/inc/configitems/useroptions_const.hxx b/svtools/source/inc/configitems/useroptions_const.hxx
index bd3c6535b00c..4dbd6da8bba3 100644
--- a/svtools/source/inc/configitems/useroptions_const.hxx
+++ b/svtools/source/inc/configitems/useroptions_const.hxx
@@ -31,34 +31,34 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
- ************************************************************************/
-
-#ifndef INCLUDE_CONFIGITEMS_USEROPTIONS_CONST_HXX
-#define INCLUDE_CONFIGITEMS_USEROPTIONS_CONST_HXX
-
-#include <rtl/ustring.hxx>
-
-namespace
-{
- static const ::rtl::OUString s_sData = ::rtl::OUString::createFromAscii("org.openoffice.UserProfile/Data");
- static const ::rtl::OUString s_so = ::rtl::OUString::createFromAscii("o"); // USER_OPT_COMPANY
- static const ::rtl::OUString s_sgivenname = ::rtl::OUString::createFromAscii("givenname"); // USER_OPT_FIRSTNAME
- static const ::rtl::OUString s_ssn = ::rtl::OUString::createFromAscii("sn"); // USER_OPT_LASTNAME
- static const ::rtl::OUString s_sinitials = ::rtl::OUString::createFromAscii("initials"); // USER_OPT_ID
- static const ::rtl::OUString s_sstreet = ::rtl::OUString::createFromAscii("street"); // USER_OPT_STREET
- static const ::rtl::OUString s_sl = ::rtl::OUString::createFromAscii("l"); // USER_OPT_CITY
- static const ::rtl::OUString s_sst = ::rtl::OUString::createFromAscii("st"); // USER_OPT_STATE
- static const ::rtl::OUString s_spostalcode = ::rtl::OUString::createFromAscii("postalcode"); // USER_OPT_ZIP
- static const ::rtl::OUString s_sc = ::rtl::OUString::createFromAscii("c"); // USER_OPT_COUNTRY
- static const ::rtl::OUString s_stitle = ::rtl::OUString::createFromAscii("title"); // USER_OPT_TITLE
- static const ::rtl::OUString s_sposition = ::rtl::OUString::createFromAscii("position"); // USER_OPT_POSITION
- static const ::rtl::OUString s_shomephone = ::rtl::OUString::createFromAscii("homephone"); // USER_OPT_TELEPHONEHOME
- static const ::rtl::OUString s_stelephonenumber = ::rtl::OUString::createFromAscii("telephonenumber"); // USER_OPT_TELEPHONEWORK
- static const ::rtl::OUString s_sfacsimiletelephonenumber = ::rtl::OUString::createFromAscii("facsimiletelephonenumber"); // USER_OPT_FAX
- static const ::rtl::OUString s_smail = ::rtl::OUString::createFromAscii("mail"); // USER_OPT_EMAIL
- static const ::rtl::OUString s_scustomernumber = ::rtl::OUString::createFromAscii("customernumber"); // USER_OPT_CUSTOMERNUMBER
- static const ::rtl::OUString s_sfathersname = ::rtl::OUString::createFromAscii("fathersname"); // USER_OPT_FATHERSNAME
- static const ::rtl::OUString s_sapartment = ::rtl::OUString::createFromAscii("apartment"); // USER_OPT_APARTMENT
-}
-
-#endif // INCLUDE_CONFIGITEMS_USEROPTIONS_CONST_HXX
+ ************************************************************************/
+
+#ifndef INCLUDE_CONFIGITEMS_USEROPTIONS_CONST_HXX
+#define INCLUDE_CONFIGITEMS_USEROPTIONS_CONST_HXX
+
+#include <rtl/ustring.hxx>
+
+namespace
+{
+ static const ::rtl::OUString s_sData = ::rtl::OUString::createFromAscii("org.openoffice.UserProfile/Data");
+ static const ::rtl::OUString s_so = ::rtl::OUString::createFromAscii("o"); // USER_OPT_COMPANY
+ static const ::rtl::OUString s_sgivenname = ::rtl::OUString::createFromAscii("givenname"); // USER_OPT_FIRSTNAME
+ static const ::rtl::OUString s_ssn = ::rtl::OUString::createFromAscii("sn"); // USER_OPT_LASTNAME
+ static const ::rtl::OUString s_sinitials = ::rtl::OUString::createFromAscii("initials"); // USER_OPT_ID
+ static const ::rtl::OUString s_sstreet = ::rtl::OUString::createFromAscii("street"); // USER_OPT_STREET
+ static const ::rtl::OUString s_sl = ::rtl::OUString::createFromAscii("l"); // USER_OPT_CITY
+ static const ::rtl::OUString s_sst = ::rtl::OUString::createFromAscii("st"); // USER_OPT_STATE
+ static const ::rtl::OUString s_spostalcode = ::rtl::OUString::createFromAscii("postalcode"); // USER_OPT_ZIP
+ static const ::rtl::OUString s_sc = ::rtl::OUString::createFromAscii("c"); // USER_OPT_COUNTRY
+ static const ::rtl::OUString s_stitle = ::rtl::OUString::createFromAscii("title"); // USER_OPT_TITLE
+ static const ::rtl::OUString s_sposition = ::rtl::OUString::createFromAscii("position"); // USER_OPT_POSITION
+ static const ::rtl::OUString s_shomephone = ::rtl::OUString::createFromAscii("homephone"); // USER_OPT_TELEPHONEHOME
+ static const ::rtl::OUString s_stelephonenumber = ::rtl::OUString::createFromAscii("telephonenumber"); // USER_OPT_TELEPHONEWORK
+ static const ::rtl::OUString s_sfacsimiletelephonenumber = ::rtl::OUString::createFromAscii("facsimiletelephonenumber"); // USER_OPT_FAX
+ static const ::rtl::OUString s_smail = ::rtl::OUString::createFromAscii("mail"); // USER_OPT_EMAIL
+ static const ::rtl::OUString s_scustomernumber = ::rtl::OUString::createFromAscii("customernumber"); // USER_OPT_CUSTOMERNUMBER
+ static const ::rtl::OUString s_sfathersname = ::rtl::OUString::createFromAscii("fathersname"); // USER_OPT_FATHERSNAME
+ static const ::rtl::OUString s_sapartment = ::rtl::OUString::createFromAscii("apartment"); // USER_OPT_APARTMENT
+}
+
+#endif // INCLUDE_CONFIGITEMS_USEROPTIONS_CONST_HXX
diff --git a/svtools/source/items1/itemprop.cxx b/svtools/source/items1/itemprop.cxx
index 0c31e3f0a64a..354e0a1441ba 100644
--- a/svtools/source/items1/itemprop.cxx
+++ b/svtools/source/items1/itemprop.cxx
@@ -30,56 +30,189 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
-#include <string.h>
-#ifndef GCC
-#endif
#include <svtools/itemprop.hxx>
#include <svtools/itempool.hxx>
#include <svtools/itemset.hxx>
#include <com/sun/star/beans/PropertyAttribute.hpp>
-
+#include <hash_map>
/*************************************************************************
UNO III Implementation
*************************************************************************/
+using namespace com::sun::star;
using namespace com::sun::star::beans;
using namespace com::sun::star::lang;
using namespace com::sun::star::uno;
using namespace ::rtl;
-/* -----------------------------21.02.00 11:26--------------------------------
+/*-- 16.02.2009 10:03:55---------------------------------------------------
- ---------------------------------------------------------------------------*/
-const SfxItemPropertyMap* SfxItemPropertyMap::GetByName(
- const SfxItemPropertyMap *pMap, const OUString &rName )
+ -----------------------------------------------------------------------*/
+
+struct equalOUString
+{
+ bool operator()(const ::rtl::OUString& r1, const ::rtl::OUString& r2) const
+ {
+ return r1.equals( r2 );
+ }
+};
+
+typedef ::std::hash_map< ::rtl::OUString,
+ SfxItemPropertySimpleEntry,
+ ::rtl::OUStringHash,
+ equalOUString > SfxItemPropertyHashMap_t;
+
+class SfxItemPropertyMap_Impl : public SfxItemPropertyHashMap_t
+{
+public:
+ mutable uno::Sequence< beans::Property > m_aPropSeq;
+
+ SfxItemPropertyMap_Impl(){}
+ SfxItemPropertyMap_Impl( const SfxItemPropertyMap_Impl* pSource );
+};
+SfxItemPropertyMap_Impl::SfxItemPropertyMap_Impl( const SfxItemPropertyMap_Impl* pSource )
{
- while ( pMap->pName )
+ this->SfxItemPropertyHashMap_t::operator=( *pSource );
+ m_aPropSeq = pSource->m_aPropSeq;
+}
+
+/*-- 16.02.2009 10:03:51---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+SfxItemPropertyMap::SfxItemPropertyMap( const SfxItemPropertyMapEntry* pEntries ) :
+ m_pImpl( new SfxItemPropertyMap_Impl )
+{
+ while( pEntries->pName )
{
- if( rName.equalsAsciiL( pMap->pName, pMap->nNameLen ) )
- return pMap;
- ++pMap;
+ ::rtl::OUString sEntry(pEntries->pName, pEntries->nNameLen, RTL_TEXTENCODING_ASCII_US );
+ (*m_pImpl) [ sEntry ] = pEntries;
+ ++pEntries;
}
- return 0;
}
-/* -----------------------------12.12.03 14:04--------------------------------
+/*-- 16.02.2009 12:46:41---------------------------------------------------
- ---------------------------------------------------------------------------*/
-const SfxItemPropertyMap* SfxItemPropertyMap::GetTolerantByName(
- const SfxItemPropertyMap *pMap, const OUString &rName )
+ -----------------------------------------------------------------------*/
+SfxItemPropertyMap::SfxItemPropertyMap( const SfxItemPropertyMap* pSource ) :
+ m_pImpl( new SfxItemPropertyMap_Impl( pSource->m_pImpl ) )
{
- sal_Int32 nLength(rName.getLength());
- while ( pMap->pName )
+}
+/*-- 16.02.2009 10:03:51---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+SfxItemPropertyMap::~SfxItemPropertyMap()
+{
+ delete m_pImpl;
+}
+/*-- 16.02.2009 10:03:51---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+const SfxItemPropertySimpleEntry* SfxItemPropertyMap::getByName( const ::rtl::OUString &rName ) const
+{
+ SfxItemPropertyHashMap_t::const_iterator aIter = m_pImpl->find(rName);
+ if( aIter == m_pImpl->end() )
+ return 0;
+ return &aIter->second;
+}
+
+/*-- 16.02.2009 10:44:24---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+uno::Sequence<beans::Property> SfxItemPropertyMap::getProperties() const
+{
+ if( !m_pImpl->m_aPropSeq.getLength() )
{
- if( nLength == pMap->nNameLen )
+ m_pImpl->m_aPropSeq.realloc( m_pImpl->size() );
+ beans::Property* pPropArray = m_pImpl->m_aPropSeq.getArray();
+ sal_uInt32 n = 0;
+ SfxItemPropertyHashMap_t::const_iterator aIt = m_pImpl->begin();
+ while( aIt != m_pImpl->end() )
+ //for ( const SfxItemPropertyMap *pMap = _pMap; pMap->pName; ++pMap )
{
- sal_Int32 nResult(rName.compareToAscii(pMap->pName));
- if (nResult == 0)
- return pMap;
- else if (nResult < 0)
- return 0;
+ const SfxItemPropertySimpleEntry* pEntry = &(*aIt).second;
+ pPropArray[n].Name = (*aIt).first;
+ pPropArray[n].Handle = pEntry->nWID;
+ if(pEntry->pType)
+ pPropArray[n].Type = *pEntry->pType;
+ pPropArray[n].Attributes =
+ sal::static_int_cast< sal_Int16 >(pEntry->nFlags);
+ n++;
+ ++aIt;
}
- ++pMap;
}
- return 0;
+
+ return m_pImpl->m_aPropSeq;
+}
+/*-- 16.02.2009 11:04:31---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+beans::Property SfxItemPropertyMap::getPropertyByName( const ::rtl::OUString rName ) const
+ throw( beans::UnknownPropertyException )
+{
+ SfxItemPropertyHashMap_t::const_iterator aIter = m_pImpl->find(rName);
+ if( aIter == m_pImpl->end() )
+ throw UnknownPropertyException();
+ const SfxItemPropertySimpleEntry* pEntry = &aIter->second;
+ beans::Property aProp;
+ aProp.Name = rName;
+ aProp.Handle = pEntry->nWID;
+ if(pEntry->pType)
+ aProp.Type = *pEntry->pType;
+ aProp.Attributes = sal::static_int_cast< sal_Int16 >(pEntry->nFlags);
+ return aProp;
+}
+/*-- 16.02.2009 11:09:16---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+sal_Bool SfxItemPropertyMap::hasPropertyByName( const ::rtl::OUString& rName ) const
+{
+ SfxItemPropertyHashMap_t::const_iterator aIter = m_pImpl->find(rName);
+ return aIter != m_pImpl->end();
+}
+/*-- 16.02.2009 11:25:14---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+void SfxItemPropertyMap::mergeProperties( const uno::Sequence< beans::Property >& rPropSeq )
+{
+ const beans::Property* pPropArray = rPropSeq.getConstArray();
+ sal_uInt32 nElements = rPropSeq.getLength();
+ for( sal_uInt32 nElement = 0; nElement < nElements; ++nElement )
+ {
+ SfxItemPropertySimpleEntry aTemp(
+ sal::static_int_cast< sal_Int16 >( pPropArray[nElement].Handle ), //nWID
+ &pPropArray[nElement].Type, //pType
+ pPropArray[nElement].Attributes, //nFlags
+ 0 ); //nMemberId
+ (*m_pImpl)[pPropArray[nElement].Name] = aTemp;
+ }
+}
+/*-- 18.02.2009 12:04:42---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+PropertyEntryVector_t SfxItemPropertyMap::getPropertyEntries() const
+{
+ PropertyEntryVector_t aRet;
+ aRet.reserve(m_pImpl->size());
+
+ SfxItemPropertyHashMap_t::const_iterator aIt = m_pImpl->begin();
+ while( aIt != m_pImpl->end() )
+ {
+ const SfxItemPropertySimpleEntry* pEntry = &(*aIt).second;
+ aRet.push_back( SfxItemPropertyNamedEntry( (*aIt).first, * pEntry ) );
+ ++aIt;
+ }
+ return aRet;
+}
+/*-- 18.02.2009 15:11:06---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+sal_uInt32 SfxItemPropertyMap::getSize() const
+{
+ return m_pImpl->size();
+}
+/*-- 16.02.2009 13:44:54---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+SfxItemPropertySet::~SfxItemPropertySet()
+{
}
/* -----------------------------21.02.00 11:26--------------------------------
@@ -91,55 +224,41 @@ BOOL SfxItemPropertySet::FillItem(SfxItemSet&, USHORT, BOOL) const
/* -----------------------------06.06.01 12:32--------------------------------
---------------------------------------------------------------------------*/
-void SfxItemPropertySet::getPropertyValue( const SfxItemPropertyMap& rMap,
+void SfxItemPropertySet::getPropertyValue( const SfxItemPropertySimpleEntry& rEntry,
const SfxItemSet& rSet, Any& rAny ) const
throw(RuntimeException)
{
- // item holen
+ // get the SfxPoolItem
const SfxPoolItem* pItem = 0;
- SfxItemState eState = rSet.GetItemState( rMap.nWID, TRUE, &pItem );
- if(SFX_ITEM_SET != eState && SFX_WHICH_MAX > rMap.nWID )
- pItem = &rSet.GetPool()->GetDefaultItem(rMap.nWID);
- // item-Wert als UnoAny zurueckgeben
+ SfxItemState eState = rSet.GetItemState( rEntry.nWID, TRUE, &pItem );
+ if(SFX_ITEM_SET != eState && SFX_WHICH_MAX > rEntry.nWID )
+ pItem = &rSet.GetPool()->GetDefaultItem(rEntry.nWID);
+ // return item values as uno::Any
if(eState >= SFX_ITEM_DEFAULT && pItem)
{
- pItem->QueryValue( rAny, rMap.nMemberId );
+ pItem->QueryValue( rAny, rEntry.nMemberId );
}
else
{
- SfxItemSet aSet(*rSet.GetPool(), rMap.nWID, rMap.nWID);
- if(FillItem(aSet, rMap.nWID, TRUE))
+ SfxItemSet aSet(*rSet.GetPool(), rEntry.nWID, rEntry.nWID);
+ if(FillItem(aSet, rEntry.nWID, TRUE))
{
- const SfxPoolItem& rItem = aSet.Get(rMap.nWID);
- rItem.QueryValue( rAny, rMap.nMemberId );
+ const SfxPoolItem& rItem = aSet.Get(rEntry.nWID);
+ rItem.QueryValue( rAny, rEntry.nMemberId );
}
- else if(0 == (rMap.nFlags & PropertyAttribute::MAYBEVOID))
+ else if(0 == (rEntry.nFlags & PropertyAttribute::MAYBEVOID))
throw RuntimeException();
}
- // allgemeine SfxEnumItem Values in konkrete wandeln
- if( rMap.pType && TypeClass_ENUM == rMap.pType->getTypeClass() &&
+ // convert general SfxEnumItem values to specific values
+ if( rEntry.pType && TypeClass_ENUM == rEntry.pType->getTypeClass() &&
rAny.getValueTypeClass() == TypeClass_LONG )
{
INT32 nTmp = *(INT32*)rAny.getValue();
- rAny.setValue( &nTmp, *rMap.pType );
+ rAny.setValue( &nTmp, *rEntry.pType );
}
}
-
-
-/* -----------------------------15.11.00 12:32--------------------------------
-
- ---------------------------------------------------------------------------*/
-Any SfxItemPropertySet::getPropertyValue( const SfxItemPropertyMap& rMap,
- const SfxItemSet& rSet ) const
- throw(RuntimeException)
-{
- Any aAny;
- getPropertyValue(rMap, rSet, aAny);
- return aAny;
-}
-
/* -----------------------------06.06.01 12:32--------------------------------
---------------------------------------------------------------------------*/
@@ -147,11 +266,11 @@ void SfxItemPropertySet::getPropertyValue( const OUString &rName,
const SfxItemSet& rSet, Any& rAny ) const
throw(RuntimeException, UnknownPropertyException)
{
- // which-id ermitteln
- const SfxItemPropertyMap* pMap = SfxItemPropertyMap::GetByName( _pMap, rName );
- if ( !pMap )
+ // detect which-id
+ const SfxItemPropertySimpleEntry* pEntry = m_aMap.getByName( rName );
+ if ( !pEntry )
throw UnknownPropertyException();
- getPropertyValue( *pMap,rSet, rAny );
+ getPropertyValue( *pEntry,rSet, rAny );
}
/* -----------------------------21.02.00 11:26--------------------------------
@@ -167,25 +286,25 @@ Any SfxItemPropertySet::getPropertyValue( const OUString &rName,
/* -----------------------------15.11.00 14:46--------------------------------
---------------------------------------------------------------------------*/
-void SfxItemPropertySet::setPropertyValue( const SfxItemPropertyMap& rMap,
+void SfxItemPropertySet::setPropertyValue( const SfxItemPropertySimpleEntry& rEntry,
const Any& aVal,
SfxItemSet& rSet ) const
throw(RuntimeException,
IllegalArgumentException)
{
- // item holen
+ // get the SfxPoolItem
const SfxPoolItem* pItem = 0;
SfxPoolItem *pNewItem = 0;
- SfxItemState eState = rSet.GetItemState( rMap.nWID, TRUE, &pItem );
- if(SFX_ITEM_SET != eState && SFX_WHICH_MAX > rMap.nWID )
- pItem = &rSet.GetPool()->GetDefaultItem(rMap.nWID);
+ SfxItemState eState = rSet.GetItemState( rEntry.nWID, TRUE, &pItem );
+ if(SFX_ITEM_SET != eState && SFX_WHICH_MAX > rEntry.nWID )
+ pItem = &rSet.GetPool()->GetDefaultItem(rEntry.nWID);
//maybe there's another way to find an Item
if(eState < SFX_ITEM_DEFAULT)
{
- SfxItemSet aSet(*rSet.GetPool(), rMap.nWID, rMap.nWID);
- if(FillItem(aSet, rMap.nWID, FALSE))
+ SfxItemSet aSet(*rSet.GetPool(), rEntry.nWID, rEntry.nWID);
+ if(FillItem(aSet, rEntry.nWID, FALSE))
{
- const SfxPoolItem &rItem = aSet.Get(rMap.nWID);
+ const SfxPoolItem &rItem = aSet.Get(rEntry.nWID);
pNewItem = rItem.Clone();
}
}
@@ -195,13 +314,13 @@ void SfxItemPropertySet::setPropertyValue( const SfxItemPropertyMap& rMap,
}
if(pNewItem)
{
- if( !pNewItem->PutValue( aVal, rMap.nMemberId ) )
+ if( !pNewItem->PutValue( aVal, rEntry.nMemberId ) )
{
DELETEZ(pNewItem);
throw IllegalArgumentException();
}
- // neues item in itemset setzen
- rSet.Put( *pNewItem, rMap.nWID );
+ // apply new item
+ rSet.Put( *pNewItem, rEntry.nWID );
delete pNewItem;
}
}
@@ -215,21 +334,21 @@ void SfxItemPropertySet::setPropertyValue( const OUString &rName,
IllegalArgumentException,
UnknownPropertyException)
{
- const SfxItemPropertyMap* pMap = SfxItemPropertyMap::GetByName( _pMap, rName );
- if ( !pMap )
+ const SfxItemPropertySimpleEntry* pEntry = m_aMap.getByName( rName );
+ if ( !pEntry )
{
throw UnknownPropertyException();
}
- setPropertyValue(*pMap, aVal, rSet);
+ setPropertyValue(*pEntry, aVal, rSet);
}
/* -----------------------------21.02.00 11:26--------------------------------
---------------------------------------------------------------------------*/
-PropertyState SfxItemPropertySet::getPropertyState(const SfxItemPropertyMap& rMap, const SfxItemSet& rSet)
+PropertyState SfxItemPropertySet::getPropertyState(const SfxItemPropertySimpleEntry& rEntry, const SfxItemSet& rSet) const
throw()
{
PropertyState eRet = PropertyState_DIRECT_VALUE;
- USHORT nWhich = rMap.nWID;
+ USHORT nWhich = rEntry.nWID;
// item state holen
SfxItemState eState = rSet.GetItemState( nWhich, FALSE );
@@ -240,20 +359,19 @@ PropertyState SfxItemPropertySet::getPropertyState(const SfxItemPropertyMap& rMa
eRet = PropertyState_AMBIGUOUS_VALUE;
return eRet;
}
-
PropertyState SfxItemPropertySet::getPropertyState(
- const OUString& rName, const SfxItemSet& rSet)
+ const OUString& rName, const SfxItemSet& rSet) const
throw(UnknownPropertyException)
{
PropertyState eRet = PropertyState_DIRECT_VALUE;
// which-id ermitteln
- const SfxItemPropertyMap* pMap = SfxItemPropertyMap::GetByName( _pMap, rName );
- USHORT nWhich = pMap ? pMap->nWID : 0;
- if ( !nWhich )
+ const SfxItemPropertySimpleEntry* pEntry = m_aMap.getByName( rName );
+ if( !pEntry || !pEntry->nWID )
{
throw UnknownPropertyException();
}
+ USHORT nWhich = pEntry->nWID;
// item holen
const SfxPoolItem* pItem = 0;
@@ -273,10 +391,33 @@ PropertyState SfxItemPropertySet::getPropertyState(
Reference<XPropertySetInfo>
SfxItemPropertySet::getPropertySetInfo() const
{
- Reference<XPropertySetInfo> aRef(new SfxItemPropertySetInfo( _pMap ));
- return aRef;
+ if( !m_xInfo.is() )
+ m_xInfo = new SfxItemPropertySetInfo( &m_aMap );
+ return m_xInfo;
+}
+/*-- 16.02.2009 13:49:25---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+struct SfxItemPropertySetInfo_Impl
+{
+ SfxItemPropertyMap* m_pOwnMap;
+};
+/*-- 16.02.2009 13:49:24---------------------------------------------------
+
+ -----------------------------------------------------------------------*/
+SfxItemPropertySetInfo::SfxItemPropertySetInfo(const SfxItemPropertyMap *pMap ) :
+ m_pImpl( new SfxItemPropertySetInfo_Impl )
+{
+ m_pImpl->m_pOwnMap = new SfxItemPropertyMap( pMap );
}
+/*-- 16.02.2009 13:49:25---------------------------------------------------
+ -----------------------------------------------------------------------*/
+SfxItemPropertySetInfo::SfxItemPropertySetInfo(const SfxItemPropertyMapEntry *pEntries ) :
+ m_pImpl( new SfxItemPropertySetInfo_Impl )
+{
+ m_pImpl->m_pOwnMap = new SfxItemPropertyMap( pEntries );
+}
/* -----------------------------21.02.00 11:09--------------------------------
---------------------------------------------------------------------------*/
@@ -284,26 +425,23 @@ Sequence< Property > SAL_CALL
SfxItemPropertySetInfo::getProperties( )
throw(RuntimeException)
{
- USHORT n = 0;
- {
- for ( const SfxItemPropertyMap *pMap = _pMap; pMap->pName; ++pMap )
- ++n;
- }
+ return m_pImpl->m_pOwnMap->getProperties();
+}
+/*-- 16.02.2009 13:49:27---------------------------------------------------
- Sequence<Property> aPropSeq( n );
- n = 0;
- for ( const SfxItemPropertyMap *pMap = _pMap; pMap->pName; ++pMap )
- {
- aPropSeq.getArray()[n].Name = OUString::createFromAscii( pMap->pName );
- aPropSeq.getArray()[n].Handle = pMap->nWID;
- if(pMap->pType)
- aPropSeq.getArray()[n].Type = *pMap->pType;
- aPropSeq.getArray()[n].Attributes =
- sal::static_int_cast< sal_Int16 >(pMap->nFlags);
- n++;
- }
+ -----------------------------------------------------------------------*/
+const SfxItemPropertyMap* SfxItemPropertySetInfo::getMap() const
+{
+ return m_pImpl->m_pOwnMap;
+}
+
+/*-- 16.02.2009 12:43:36---------------------------------------------------
- return aPropSeq;
+ -----------------------------------------------------------------------*/
+SfxItemPropertySetInfo::~SfxItemPropertySetInfo()
+{
+ delete m_pImpl->m_pOwnMap;
+ delete m_pImpl;
}
/* -----------------------------21.02.00 11:27--------------------------------
@@ -312,22 +450,7 @@ Property SAL_CALL
SfxItemPropertySetInfo::getPropertyByName( const ::rtl::OUString& rName )
throw(UnknownPropertyException, RuntimeException)
{
- Property aProp;
- for( const SfxItemPropertyMap *pMap = _pMap; pMap->pName; ++pMap )
- {
- if( rName.equalsAsciiL( pMap->pName, pMap->nNameLen ))
- {
- aProp.Name = rName;
- aProp.Handle = pMap->nWID;
- if(pMap->pType)
- aProp.Type = *pMap->pType;
- aProp.Attributes = sal::static_int_cast< sal_Int16 >(pMap->nFlags);
- break;
- }
- }
- if(!aProp.Name.getLength())
- throw UnknownPropertyException();
- return aProp;
+ return m_pImpl->m_pOwnMap->getPropertyByName( rName );
}
/* -----------------------------21.02.00 11:28--------------------------------
@@ -336,79 +459,23 @@ sal_Bool SAL_CALL
SfxItemPropertySetInfo::hasPropertyByName( const ::rtl::OUString& rName )
throw(RuntimeException)
{
- for ( const SfxItemPropertyMap *pMap = _pMap; pMap->pName; ++pMap )
- {
- if( rName.equalsAsciiL( pMap->pName, pMap->nNameLen ))
- return TRUE;
- }
- return FALSE;
+ return m_pImpl->m_pOwnMap->hasPropertyByName( rName );
}
/* -----------------------------21.02.00 12:03--------------------------------
---------------------------------------------------------------------------*/
SfxExtItemPropertySetInfo::SfxExtItemPropertySetInfo(
- const SfxItemPropertyMap *pMap,
+ const SfxItemPropertyMapEntry *pMap,
const Sequence<Property>& rPropSeq ) :
- _pExtMap(pMap)
+ aExtMap( pMap )
{
- long nLen = rPropSeq.getLength();
- long nExtLen = 0;
- while(pMap[nExtLen].pName)
- nExtLen++;
- aPropertySeq.realloc(nExtLen + nLen);
-
-
- long nNewLen = aPropertySeq.getLength();
- Property* pNewArr = aPropertySeq.getArray();
- long nCount1 = 0;//map
- long nCount2 = 0;//sequence
- long nDouble = 0;//Anzahl gleicher Property-Namen
- BOOL bFromMap, bZero = FALSE;
+ aExtMap.mergeProperties( rPropSeq );
+}
+/*-- 16.02.2009 12:06:49---------------------------------------------------
- const Property* pPropSeqArr = rPropSeq.getConstArray();
- for( long i = 0; i < nNewLen; i++)
- {
- bFromMap = FALSE;
- if(nCount1 < nExtLen && nCount2 < nLen)
- {
-// int nDiff = strcmp(pMap[nCount1].pName, OUStringToString(rPropSeq.getConstArray()[nCount2].Name, CHARSET_SYSTEM ));
- sal_Int32 nDiff = pPropSeqArr[nCount2].Name.compareToAscii(pMap[nCount1].pName, pMap[nCount1].nNameLen );
- if(nDiff > 0)
- {
- bFromMap = TRUE;
- }
- else if(0 == nDiff)
- {
- nDouble++;
- bFromMap = TRUE;
- nCount2++;
- }
- }
- else
- {
- if(nCount1 < nExtLen)
- bFromMap = TRUE;
- else if(nCount2>= nLen)
- bZero = TRUE;
- }
- if(bFromMap)
- {
- pNewArr[i].Name = OUString::createFromAscii( pMap[nCount1].pName );
- pNewArr[i].Handle = pMap[nCount1].nWID;
- if(pMap[nCount1].pType)
- pNewArr[i].Type = *pMap[nCount1].pType;
- pNewArr[i].Attributes = sal::static_int_cast< sal_Int16 >(
- pMap[nCount1].nFlags);
- nCount1++;
- }
- else if(!bZero)
- {
- pNewArr[i] = pPropSeqArr[nCount2];
- nCount2++;
- }
- }
- if(nDouble)
- aPropertySeq.realloc(nExtLen + nLen - nDouble);
+ -----------------------------------------------------------------------*/
+SfxExtItemPropertySetInfo::~SfxExtItemPropertySetInfo()
+{
}
/* -----------------------------21.02.00 12:03--------------------------------
@@ -416,38 +483,24 @@ SfxExtItemPropertySetInfo::SfxExtItemPropertySetInfo(
Sequence< Property > SAL_CALL
SfxExtItemPropertySetInfo::getProperties( ) throw(RuntimeException)
{
- return aPropertySeq;
+ return aExtMap.getProperties();
}
/* -----------------------------21.02.00 12:03--------------------------------
---------------------------------------------------------------------------*/
Property SAL_CALL
- SfxExtItemPropertySetInfo::getPropertyByName( const OUString& aPropertyName )
+ SfxExtItemPropertySetInfo::getPropertyByName( const OUString& rPropertyName )
throw(UnknownPropertyException, RuntimeException)
{
- const Property* pPropArr = aPropertySeq.getConstArray();
- long nLen = aPropertySeq.getLength();
- for( long i = 0; i < nLen; i++)
- {
- if(aPropertyName == pPropArr[i].Name)
- return pPropArr[i];
- }
- return Property();
+ return aExtMap.getPropertyByName( rPropertyName );
}
/* -----------------------------21.02.00 12:03--------------------------------
---------------------------------------------------------------------------*/
sal_Bool SAL_CALL
- SfxExtItemPropertySetInfo::hasPropertyByName( const OUString& aPropertyName )
+ SfxExtItemPropertySetInfo::hasPropertyByName( const OUString& rPropertyName )
throw(RuntimeException)
{
- const Property* pPropArr = aPropertySeq.getConstArray();
- long nLen = aPropertySeq.getLength();
- for( long i = 0; i < nLen; i++)
- {
- if(aPropertyName == pPropArr[i].Name)
- return TRUE;
- }
- return FALSE;
+ return aExtMap.hasPropertyByName( rPropertyName );
}
diff --git a/svtools/source/items1/itemset.cxx b/svtools/source/items1/itemset.cxx
index 48fe2877b892..6edeffe6d250 100644
--- a/svtools/source/items1/itemset.cxx
+++ b/svtools/source/items1/itemset.cxx
@@ -541,7 +541,7 @@ SfxItemState SfxItemSet::GetItemState( USHORT nWhich,
// Unterschiedlich vorhanden
return SFX_ITEM_DONTCARE;
- if ( (*ppFnd)->IsA(TYPE(SfxVoidItem)) )
+ if ( (*ppFnd)->Type() == TYPE(SfxVoidItem) )
return SFX_ITEM_DISABLED;
if (ppItem)
diff --git a/svtools/source/misc/acceleratorexecute.cxx b/svtools/source/misc/acceleratorexecute.cxx
index e6e78656eedd..16bc8339a0d9 100644
--- a/svtools/source/misc/acceleratorexecute.cxx
+++ b/svtools/source/misc/acceleratorexecute.cxx
@@ -79,7 +79,6 @@
#include <vcl/window.hxx>
#include <vcl/svapp.hxx>
#include <vos/mutex.hxx>
-#include <comphelper/uieventslogger.hxx>
//===============================================
// namespace
@@ -257,22 +256,6 @@ sal_Bool AcceleratorExecute::execute(const css::awt::KeyEvent& aAWTKey)
sal_Bool bRet = xDispatch.is();
if ( bRet )
{
- if(::comphelper::UiEventsLogger::isEnabled() && m_xSMGR.is() && m_xDispatcher.is()) //#i88653#
- {
- try
- {
- css::uno::Reference< css::frame::XModuleManager > xModuleDetection(
- m_xSMGR->createInstance(::rtl::OUString::createFromAscii("com.sun.star.frame.ModuleManager")),
- css::uno::UNO_QUERY_THROW);
-
- const ::rtl::OUString sModule = xModuleDetection->identify(m_xDispatcher);
- css::uno::Sequence<css::beans::PropertyValue> source;
- ::comphelper::UiEventsLogger::appendDispatchOrigin(source, sModule, ::rtl::OUString::createFromAscii("AcceleratorExecute"));
- ::comphelper::UiEventsLogger::logDispatch(aURL, source);
- }
- catch(const css::uno::Exception&)
- { }
- }
// Note: Such instance can be used one times only and destroy itself afterwards .-)
AsyncAccelExec* pExec = AsyncAccelExec::createOnShotInstance(xDispatch, aURL);
pExec->execAsync();
@@ -294,7 +277,8 @@ css::awt::KeyEvent AcceleratorExecute::st_VCLKey2AWTKey(const KeyCode& aVCLKey)
aAWTKey.Modifiers |= css::awt::KeyModifier::MOD1;
if (aVCLKey.IsMod2())
aAWTKey.Modifiers |= css::awt::KeyModifier::MOD2;
-
+ if (aVCLKey.IsMod3())
+ aAWTKey.Modifiers |= css::awt::KeyModifier::MOD3;
return aAWTKey;
}
@@ -304,9 +288,10 @@ KeyCode AcceleratorExecute::st_AWTKey2VCLKey(const css::awt::KeyEvent& aAWTKey)
sal_Bool bShift = ((aAWTKey.Modifiers & css::awt::KeyModifier::SHIFT) == css::awt::KeyModifier::SHIFT );
sal_Bool bMod1 = ((aAWTKey.Modifiers & css::awt::KeyModifier::MOD1 ) == css::awt::KeyModifier::MOD1 );
sal_Bool bMod2 = ((aAWTKey.Modifiers & css::awt::KeyModifier::MOD2 ) == css::awt::KeyModifier::MOD2 );
+ sal_Bool bMod3 = ((aAWTKey.Modifiers & css::awt::KeyModifier::MOD3 ) == css::awt::KeyModifier::MOD3 );
USHORT nKey = (USHORT)aAWTKey.KeyCode;
- return KeyCode(nKey, bShift, bMod1, bMod2);
+ return KeyCode(nKey, bShift, bMod1, bMod2, bMod3);
}
//-----------------------------------------------
::rtl::OUString AcceleratorExecute::findCommand(const css::awt::KeyEvent& aKey)
@@ -482,8 +467,8 @@ css::uno::Reference< css::ui::XAcceleratorConfiguration > AcceleratorExecute::st
{
sModule = xModuleDetection->identify(xFrame);
}
- catch(const css::uno::RuntimeException&)
- { throw; }
+ catch(const css::uno::RuntimeException&rEx)
+ { (void) rEx; throw; }
catch(const css::uno::Exception&)
{ return css::uno::Reference< css::ui::XAcceleratorConfiguration >(); }
@@ -491,8 +476,14 @@ css::uno::Reference< css::ui::XAcceleratorConfiguration > AcceleratorExecute::st
xSMGR->createInstance(::rtl::OUString::createFromAscii("com.sun.star.ui.ModuleUIConfigurationManagerSupplier")),
css::uno::UNO_QUERY_THROW);
- css::uno::Reference< css::ui::XUIConfigurationManager > xUIManager = xUISupplier->getUIConfigurationManager(sModule);
- css::uno::Reference< css::ui::XAcceleratorConfiguration > xAccCfg (xUIManager->getShortCutManager(), css::uno::UNO_QUERY_THROW);
+ css::uno::Reference< css::ui::XAcceleratorConfiguration > xAccCfg;
+ try
+ {
+ css::uno::Reference< css::ui::XUIConfigurationManager > xUIManager = xUISupplier->getUIConfigurationManager(sModule);
+ xAccCfg = css::uno::Reference< css::ui::XAcceleratorConfiguration >(xUIManager->getShortCutManager(), css::uno::UNO_QUERY_THROW);
+ }
+ catch(const css::container::NoSuchElementException&)
+ {}
return xAccCfg;
}
@@ -577,7 +568,7 @@ IMPL_LINK(AsyncAccelExec, impl_ts_asyncCallback, void*,)
}
catch(const css::lang::DisposedException&)
{}
- catch(const css::uno::RuntimeException&)
+ catch(const css::uno::RuntimeException& )
{ throw; }
catch(const css::uno::Exception&)
{}
diff --git a/svtools/source/misc/documentlockfile.cxx b/svtools/source/misc/documentlockfile.cxx
index 71b541cfe894..990f1ba58d73 100644
--- a/svtools/source/misc/documentlockfile.cxx
+++ b/svtools/source/misc/documentlockfile.cxx
@@ -202,7 +202,7 @@ sal_Bool DocumentLockFile::OverwriteOwnLockFile()
WriteEntryToStream( aNewEntry, xOutput );
xOutput->closeOutput();
}
- catch( ucb::NameClashException& )
+ catch( uno::Exception& )
{
return sal_False;
}
diff --git a/svtools/source/misc/errtxt.src b/svtools/source/misc/errtxt.src
index 72b575f96f43..033ecefc10e7 100644
--- a/svtools/source/misc/errtxt.src
+++ b/svtools/source/misc/errtxt.src
@@ -503,6 +503,10 @@ Resource RID_ERRHDL
{
Text [ en-US ] = "Function not possible: write protected." ;
};
+ String ERRCODE_SFX_SHARED_NOPASSWORDCHANGE
+ {
+ Text [ en-US ] = "The password of a shared spreadsheet cannot be set or changed.\nDeactivate sharing mode first.";
+ };
};
// eof ------------------------------------------------------------------------
diff --git a/svtools/source/misc1/adrparse.cxx b/svtools/source/misc1/adrparse.cxx
index d9b389513f80..37c25d6c669f 100644
--- a/svtools/source/misc1/adrparse.cxx
+++ b/svtools/source/misc1/adrparse.cxx
@@ -172,8 +172,8 @@ inline void SvAddressParser_Impl::addTokenToRealName()
if (!m_pRealNameBegin)
m_pRealNameBegin = m_pRealNameContentBegin = m_pCurTokenBegin;
else if (m_pRealNameEnd < m_pCurTokenBegin - 1
- || m_pRealNameEnd == m_pCurTokenBegin - 1
- && *m_pRealNameEnd != ' ')
+ || (m_pRealNameEnd == m_pCurTokenBegin - 1
+ && *m_pRealNameEnd != ' '))
m_bRealNameReparse = true;
m_pRealNameEnd = m_pRealNameContentEnd = m_pCurTokenEnd;
}
@@ -634,8 +634,8 @@ SvAddressParser_Impl::SvAddressParser_Impl(SvAddressParser * pParser,
else
{
m_pAddrSpec = m_aInnerAddrSpec.isValid()
- || !m_aOuterAddrSpec.isValid()
- && m_aInnerAddrSpec.isPoorlyValid() ?
+ || (!m_aOuterAddrSpec.isValid()
+ && m_aInnerAddrSpec.isPoorlyValid()) ?
&m_aInnerAddrSpec :
m_aOuterAddrSpec.isPoorlyValid() ?
&m_aOuterAddrSpec : 0;
@@ -663,11 +663,11 @@ SvAddressParser_Impl::SvAddressParser_Impl(SvAddressParser * pParser,
}
UniString aTheRealName;
if (!m_pRealNameBegin
- || m_pAddrSpec == &m_aOuterAddrSpec
+ || (m_pAddrSpec == &m_aOuterAddrSpec
&& m_pRealNameBegin
== m_aOuterAddrSpec.m_pBegin
&& m_pRealNameEnd == m_aOuterAddrSpec.m_pEnd
- && m_pFirstCommentBegin)
+ && m_pFirstCommentBegin))
if (!m_pFirstCommentBegin)
aTheRealName = aTheAddrSpec;
else if (m_bFirstCommentReparse)
@@ -820,7 +820,7 @@ bool SvAddressParser::createRFC822Mailbox(String const & rPhrase,
return false;
if (*p == '"')
break;
- if (*p == '\x0D' || *p == '\\' && ++p == pEnd
+ if (*p == '\x0D' || (*p == '\\' && ++p == pEnd)
|| !INetMIME::isUSASCII(*p))
return false;
if (INetMIME::needsQuotedStringEscape(*p))
@@ -868,7 +868,7 @@ bool SvAddressParser::createRFC822Mailbox(String const & rPhrase,
return false;
if (*p == ']')
break;
- if (*p == '\x0D' || *p == '[' || *p == '\\' && ++p == pEnd
+ if (*p == '\x0D' || *p == '[' || (*p == '\\' && ++p == pEnd)
|| !INetMIME::isUSASCII(*p))
return false;
if (*p >= '[' && *p <= ']')
diff --git a/svtools/source/misc1/docmspasswdrequest.cxx b/svtools/source/misc1/docmspasswdrequest.cxx
new file mode 100644
index 000000000000..e892d3a57d1a
--- /dev/null
+++ b/svtools/source/misc1/docmspasswdrequest.cxx
@@ -0,0 +1,143 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright IBM Corporation 2009.
+ * Copyright 2009 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: docmspasswdrequest.cxx,v $
+ * $Revision: 1.0 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_svtools.hxx"
+
+#include "docmspasswdrequest.hxx"
+#include <com/sun/star/task/XInteractionAbort.hpp>
+#include <com/sun/star/task/XInteractionPassword.hpp>
+
+//==========================================================================
+
+class MSAbortContinuation : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionAbort >
+{
+ sal_Bool mbSelected;
+
+public:
+ MSAbortContinuation() : mbSelected( sal_False ) {}
+
+ sal_Bool isSelected() { return mbSelected; }
+
+ void reset() { mbSelected = sal_False; }
+
+ virtual void SAL_CALL select() throw(::com::sun::star::uno::RuntimeException) { mbSelected = sal_True; }
+};
+
+//==========================================================================
+
+class MSPasswordContinuation : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionPassword >
+{
+ sal_Bool mbSelected;
+ ::rtl::OUString maPassword;
+
+public:
+ MSPasswordContinuation() : mbSelected( sal_False ) {}
+
+ sal_Bool isSelected() { return mbSelected; }
+
+ void reset() { mbSelected = sal_False; }
+
+ virtual void SAL_CALL select() throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setPassword( const ::rtl::OUString& aPass ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getPassword( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+void SAL_CALL MSPasswordContinuation::select()
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ mbSelected = sal_True;
+}
+
+void SAL_CALL MSPasswordContinuation::setPassword( const ::rtl::OUString& aPass )
+ throw (::com::sun::star::uno::RuntimeException)
+{
+ maPassword = aPass;
+}
+
+::rtl::OUString SAL_CALL MSPasswordContinuation::getPassword()
+ throw (::com::sun::star::uno::RuntimeException)
+{
+ return maPassword;
+}
+
+//==========================================================================
+
+RequestMSDocumentPassword::RequestMSDocumentPassword( ::com::sun::star::task::PasswordRequestMode nMode, ::rtl::OUString aName )
+{
+ ::rtl::OUString temp;
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > temp2;
+ ::com::sun::star::task::DocumentMSPasswordRequest
+ aDocumentMSPasswordRequest( temp,
+ temp2,
+ ::com::sun::star::task::InteractionClassification_QUERY,
+ nMode,
+ aName );
+
+ m_aRequest <<= aDocumentMSPasswordRequest;
+
+ m_pAbort = new MSAbortContinuation;
+ m_pPassword = new MSPasswordContinuation;
+
+ m_lContinuations.realloc( 2 );
+ m_lContinuations[0] = ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >( m_pAbort );
+ m_lContinuations[1] = ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation >( m_pPassword );
+}
+
+sal_Bool RequestMSDocumentPassword::isAbort()
+{
+ return m_pAbort->isSelected();
+}
+
+sal_Bool RequestMSDocumentPassword::isPassword()
+{
+ return m_pPassword->isSelected();
+}
+
+::rtl::OUString RequestMSDocumentPassword::getPassword()
+{
+ return m_pPassword->getPassword();
+}
+
+::com::sun::star::uno::Any SAL_CALL RequestMSDocumentPassword::getRequest()
+ throw( ::com::sun::star::uno::RuntimeException )
+{
+ return m_aRequest;
+}
+
+::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > >
+ SAL_CALL RequestMSDocumentPassword::getContinuations()
+ throw( ::com::sun::star::uno::RuntimeException )
+{
+ return m_lContinuations;
+}
+
+
diff --git a/svtools/source/misc1/makefile.mk b/svtools/source/misc1/makefile.mk
index 0d1e67fd9021..3ca57ff36f92 100644
--- a/svtools/source/misc1/makefile.mk
+++ b/svtools/source/misc1/makefile.mk
@@ -50,6 +50,7 @@ SLOFILES=\
$(EXCEPTIONSFILES) \
$(SLO)$/adrparse.obj \
$(SLO)$/docpasswdrequest.obj \
+ $(SLO)$/docmspasswdrequest.obj \
$(SLO)$/filenotation.obj \
$(SLO)$/inethist.obj \
$(SLO)$/inettype.obj \
diff --git a/svtools/source/numbers/numfmuno.cxx b/svtools/source/numbers/numfmuno.cxx
index 5d9c88ec8760..7417367ec124 100644
--- a/svtools/source/numbers/numfmuno.cxx
+++ b/svtools/source/numbers/numfmuno.cxx
@@ -83,9 +83,9 @@ using namespace com::sun::star;
// alles ohne Which-ID, Map nur fuer PropertySetInfo
-const SfxItemPropertyMap* lcl_GetNumberFormatPropertyMap()
+const SfxItemPropertyMapEntry* lcl_GetNumberFormatPropertyMap()
{
- static SfxItemPropertyMap aNumberFormatPropertyMap_Impl[] =
+ static SfxItemPropertyMapEntry aNumberFormatPropertyMap_Impl[] =
{
{MAP_CHAR_LEN(PROPERTYNAME_FMTSTR), 0, &getCppuType((rtl::OUString*)0),beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
{MAP_CHAR_LEN(PROPERTYNAME_LOCALE), 0, &getCppuType((lang::Locale*)0),beans::PropertyAttribute::BOUND | beans::PropertyAttribute::READONLY, 0},
@@ -105,9 +105,9 @@ const SfxItemPropertyMap* lcl_GetNumberFormatPropertyMap()
return aNumberFormatPropertyMap_Impl;
}
-const SfxItemPropertyMap* lcl_GetNumberSettingsPropertyMap()
+const SfxItemPropertyMapEntry* lcl_GetNumberSettingsPropertyMap()
{
- static SfxItemPropertyMap aNumberSettingsPropertyMap_Impl[] =
+ static SfxItemPropertyMapEntry aNumberSettingsPropertyMap_Impl[] =
{
{MAP_CHAR_LEN(PROPERTYNAME_NOZERO), 0, &getBooleanCppuType(), beans::PropertyAttribute::BOUND, 0},
{MAP_CHAR_LEN(PROPERTYNAME_NULLDATE), 0, &getCppuType((util::Date*)0), beans::PropertyAttribute::BOUND, 0},
diff --git a/svtools/source/svhtml/htmlkey2.cxx b/svtools/source/svhtml/htmlkey2.cxx
deleted file mode 100644
index 10820f7feba3..000000000000
--- a/svtools/source/svhtml/htmlkey2.cxx
+++ /dev/null
@@ -1,830 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: htmlkey2.cxx,v $
- * $Revision: 1.9 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svtools.hxx"
-
-#include "htmlkywd.hxx"
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_doctype32,
- "HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\"" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_doctype40,
- "HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"" );
-
-
-// diese werden nur eingeschaltet
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_area, "AREA" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_base, "BASE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_comment, "!--" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_doctype, "!DOCTYPE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_embed, "EMBED" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_figureoverlay, "OVERLAY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_horzrule, "HR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_horztab, "TAB" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_image, "IMG" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_image2, "IMAGE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_input, "INPUT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_isindex, "ISINDEX" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_linebreak, "BR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_li, "LI" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_link, "LINK" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_meta, "META" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_nextid, "NEXTID" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_nobr, "NOBR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_of, "OF" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_option, "OPTION" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_param, "PARAM" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_range, "RANGE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_spacer, "SPACER" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_wbr, "WBR" );
-
-// diese werden wieder abgeschaltet
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_abbreviation, "ABBREV" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_above, "ABOVE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_acronym, "ACRONYM" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_address, "ADDRESS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_anchor, "A" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_applet, "APPLET" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_array, "ARRAY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_author, "AU" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_banner, "BANNER" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_bar, "BAR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_basefont, "BASEFONT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_below, "BELOW" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_bigprint, "BIG" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_blink, "BLINK" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_blockquote, "BLOCKQUOTE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_blockquote30, "BQ" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_body, "BODY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_bold, "B" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_boldtext, "BT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_box, "BOX" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_caption, "CAPTION" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_center, "CENTER" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_citiation, "CITE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_code, "CODE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_col, "COL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_colgroup, "COLGROUP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_credit, "CREDIT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_dd, "DD" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_deflist, "DL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_deletedtext, "DEL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_dirlist, "DIR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_division, "DIV" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_dot, "DOT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_doubledot, "DDOT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_dt, "DT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_emphasis, "EM" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_figure, "FIG" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_font, "FONT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_footnote, "FN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_form, "FORM" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_frame, "FRAME" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_frameset, "FRAMESET" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_hat, "HAT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head1, "H1" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head2, "H2" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head3, "H3" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head4, "H4" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head5, "H5" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head6, "H6" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_head, "HEAD" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_html, "HTML" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_iframe, "IFRAME" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ilayer, "ILAYER" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_insertedtext, "INS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_italic, "I" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_item, "ITEM" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_keyboard, "KBD" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_language, "LANG" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_layer, "LAYER" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_listheader, "LH" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_map, "MAP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_math, "MATH" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_menulist, "MENU" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_multicol, "MULTICOL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_noembed, "NOEMBED" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_noframe, "NOFRAME" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_noframes, "NOFRAMES" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_noscript, "NOSCRIPT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_note, "NOTE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_object, "OBJECT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_orderlist, "OL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_parabreak, "P" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_person, "PERSON" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_plaintext, "T" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_preformtxt, "PRE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_root, "ROOT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_row, "ROW" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sample, "SAMP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_script, "SCRIPT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_select, "SELECT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_shortquote, "Q" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_smallprint, "SMALL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_span, "SPAN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_squareroot, "AQRT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_strikethrough, "S" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_strong, "STRONG" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_style, "STYLE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_subscript, "SUB" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_superscript, "SUP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_table, "TABLE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_tablerow, "TR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_tabledata, "TD" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_tableheader, "TH" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_tbody, "TBODY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_teletype, "TT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_text, "TEXT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_textarea, "TEXTAREA" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_textflow, "TEXTFLOW" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_tfoot, "TFOOT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_thead, "THEAD" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_tilde, "TILDE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_title, "TITLE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_underline, "U" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_unorderlist, "UL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_variable, "VAR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_vector, "VEC" );
-
-// obsolete features
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_xmp, "XMP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_listing, "LISTING" );
-
-// proposed features
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_definstance, "DFN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_strike, "STRIKE" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_bgsound, "BGSOUND" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_comment2, "COMMENT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_marquee, "MARQUEE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_plaintext2, "PLAINTEXT" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdfield, "SDFIELD" );
-
-// die Namen fuer alle Zeichen
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_lt, "lt" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_gt, "gt" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_amp, "amp" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_quot, "quot" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Aacute, "Aacute" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Agrave, "Agrave" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Acirc, "Acirc" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Atilde, "Atilde" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Aring, "Aring" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Auml, "Auml" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_AElig, "AElig" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ccedil, "Ccedil" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Eacute, "Eacute" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Egrave, "Egrave" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ecirc, "Ecirc" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Euml, "Euml" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Iacute, "Iacute" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Igrave, "Igrave" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Icirc, "Icirc" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Iuml, "Iuml" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_ETH, "ETH" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ntilde, "Ntilde" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Oacute, "Oacute" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ograve, "Ograve" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ocirc, "Ocirc" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Otilde, "Otilde" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ouml, "Ouml" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Oslash, "Oslash" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Uacute, "Uacute" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ugrave, "Ugrave" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Ucirc, "Ucirc" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Uuml, "Uuml" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_Yacute, "Yacute" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_THORN, "THORN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_szlig, "szlig" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_aacute, "aacute" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_agrave, "agrave" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_acirc, "acirc" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_atilde, "atilde" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_aring, "aring" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_auml, "auml" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_aelig, "aelig" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ccedil, "ccedil" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_eacute, "eacute" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_egrave, "egrave" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ecirc, "ecirc" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_euml, "euml" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_iacute, "iacute" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_igrave, "igrave" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_icirc, "icirc" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_iuml, "iuml" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_eth, "eth" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ntilde, "ntilde" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_oacute, "oacute" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ograve, "ograve" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ocirc, "ocirc" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_otilde, "otilde" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ouml, "ouml" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_oslash, "oslash" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_uacute, "uacute" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ugrave, "ugrave" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ucirc, "ucirc" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_uuml, "uuml" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_yacute, "yacute" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_thorn, "thorn" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_yuml, "yuml" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_acute, "acute" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_brvbar, "brvbar" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_cedil, "cedil" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_cent, "cent" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_copy, "copy" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_curren, "curren" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_deg, "deg" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_divide, "divide" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_frac12, "frac12" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_frac14, "frac14" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_frac34, "frac34" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_iexcl, "iexcl" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_iquest, "iquest" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_laquo, "laquo" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_macr, "macr" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_micro, "micro" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_middot, "middot" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_nbsp, "nbsp" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_not, "not" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ordf, "ordf" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ordm, "ordm" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_para, "para" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_plusmn, "plusmn" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_pound, "pound" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_raquo, "raquo" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_reg, "reg" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sect, "sect" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_shy, "shy" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sup1, "sup1" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sup2, "sup2" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sup3, "sup3" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_times, "times" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_uml, "uml" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_yen, "yen" );
-
-// Netscape kennt noch ein paar in Grossbuchstaben ...
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_LT, "LT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_GT, "GT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_AMP, "AMP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_C_QUOT, "QUOT" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_COPY, "COPY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_REG, "REG" );
-
-// HTML4
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_alefsym, "alefsym" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Alpha, "Alpha" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_alpha, "alpha" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_and, "and" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ang, "ang" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_asymp, "asymp" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_bdquo, "bdquo" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Beta, "Beta" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_beta, "beta" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_bull, "bull" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_cap, "cap" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_chi, "chi" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Chi, "Chi" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_circ, "circ" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_clubs, "clubs" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_cong, "cong" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_crarr, "crarr" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_cup, "cup" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_dagger, "dagger" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Dagger, "Dagger" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_darr, "darr" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_dArr, "dArr" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Delta, "Delta" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_delta, "delta" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_diams, "diams" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_empty, "empty" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_emsp, "emsp" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ensp, "ensp" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Epsilon, "Epsilon" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_epsilon, "epsilon" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_equiv, "equiv" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Eta, "Eta" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_eta, "eta" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_euro, "euro" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_exist, "exist" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_fnof, "fnof" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_forall, "forall" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_frasl, "frasl" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Gamma, "Gamma" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_gamma, "gamma" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ge, "ge" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_harr, "harr" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_hArr, "hArr" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_hearts, "hearts" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_hellip, "hellip" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_image, "image" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_infin, "infin" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_int, "int" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Iota, "Iota" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_iota, "iota" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_isin, "isin" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Kappa, "Kappa" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_kappa, "kappa" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Lambda, "Lambda" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lambda, "lambda" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lang, "lang" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_larr, "larr" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lArr, "lArr" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lceil, "lceil" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ldquo, "ldquo" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_le, "le" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lfloor, "lfloor" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lowast, "lowast" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_loz, "loz" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lrm, "lrm" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lsaquo, "lsaquo" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_lsquo, "lsquo" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_mdash, "mdash" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_minus, "minus" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Mu, "Mu" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_mu, "mu" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_nabla, "nabla" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ndash, "ndash" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ne, "ne" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_ni, "ni" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_notin, "notin" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_nsub, "nsub" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Nu, "Nu" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_nu, "nu" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_OElig, "OElig" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_oelig, "oelig" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_oline, "oline" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Omega, "Omega" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_omega, "omega" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Omicron, "Omicron" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_omicron, "omicron" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_oplus, "oplus" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_or, "or" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_otimes, "otimes" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_part, "part" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_permil, "permil" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_perp, "perp" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Phi, "Phi" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_phi, "phi" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Pi, "Pi" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_pi, "pi" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_piv, "piv" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_prime, "prime" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Prime, "Prime" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_prod, "prod" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_prop, "prop" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Psi, "Psi" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_psi, "psi" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_radic, "radic" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rang, "rang" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rarr, "rarr" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rArr, "rArr" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rceil, "rceil" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rdquo, "rdquo" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_real, "real" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rfloor, "rfloor" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Rho, "Rho" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rho, "rho" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rlm, "rlm" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rsaquo, "rsaquo" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_rsquo, "rsquo" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sbquo, "sbquo" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Scaron, "Scaron" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_scaron, "scaron" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sdot, "sdot" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Sigma, "Sigma" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sigma, "sigma" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sigmaf, "sigmaf" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sim, "sim" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_spades, "spades" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sub, "sub" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sube, "sube" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sum, "sum" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_sup, "sup" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_supe, "supe" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Tau, "Tau" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_tau, "tau" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_there4, "there4" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Theta, "Theta" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_theta, "theta" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_thetasym, "thetasym" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_thinsp, "thinsp" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_tilde, "tilde" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_trade, "trade" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_uarr, "uarr" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_uArr, "uArr" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_upsih, "upsih" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Upsilon, "Upsilon" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_upsilon, "upsilon" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_weierp, "weierp" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Xi, "Xi" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_xi, "xi" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Yuml, "Yuml" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_Zeta, "Zeta" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_zeta, "zeta" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_zwj, "zwj" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_S_zwnj, "zwnj" );
-
-// HTML Attribut-Token (=Optionen)
-
-// Attribute ohne Wert
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_box, "BOX" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_checked, "CHECKED" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_compact, "COMPACT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_continue, "CONTINUE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_controls, "CONTROLS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_declare, "DECLARE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_disabled, "DISABLED" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_folded, "FOLDED" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_ismap, "ISMAP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_mayscript, "MAYSCRIPT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_multiple, "MULTIPLE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_noflow, "NOFLOW" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_nohref, "NOHREF" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_noresize, "NORESIZE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_noshade, "NOSHADE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_nowrap, "NOWRAP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_plain, "PLAIN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sdfixed, "SDFIXED" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_selected, "SELECTED" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_shapes, "SHAPES" );
-
-// Attribute mit einem String als Wert
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_above, "ABOVE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_accesskey, "ACCESSKEY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_accept, "ACCEPT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_add_date, "ADD_DATE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_alt, "ALT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_axes, "AXES" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_axis, "AXIS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_below, "BELOW" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_char, "CHAR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_class, "CLASS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_clip, "CLIP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_code, "CODE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_codetype, "CODETYPE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_colspec, "COLSPEC" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_content, "CONTENT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_coords, "COORDS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_dp, "DP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_enctype, "ENCTYPE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_error, "ERROR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_face, "FACE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_frameborder, "FRAMEBORDER" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_httpequiv, "HTTP-EQUIV" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_language, "LANGUAGE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_last_modified, "LAST_MODIFIED" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_last_visit, "LAST_VISIT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_md, "MD" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_n, "N" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_name, "NAME" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_notation, "NOTATION" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_prompt, "PROMPT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_shape, "SHAPE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_standby, "STANDBY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_style, "STYLE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_title, "TITLE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_value, "VALUE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDval, "SDVAL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDnum, "SDNUM" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sdlibrary, "SDLIBRARY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sdmodule, "SDMODULE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sdevent, "SDEVENT-" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sdaddparam, "SDADDPARAM-" );
-
-// Attribute mit einem SGML-Identifier als Wert
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_from, "FROM" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_id, "ID" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_target, "TARGET" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_to, "TO" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_until, "UNTIL" );
-
-// Attribute mit einem URI als Wert
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_action, "ACTION" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_archive, "ARCHIVE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_background, "BACKGROUND" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_classid, "CLASSID" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_codebase, "CODEBASE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_data, "DATA" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_dynsrc, "DYNSRC" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_dynsync, "DYNSYNC" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_imagemap, "IMAGEMAP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_href, "HREF" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_lowsrc, "LOWSRC" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_script, "SCRIPT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_src, "SRC" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_usemap, "USEMAP" );
-
-// Attribute mit Entity-Namen als Wert
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_dingbat, "DINGBAT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sym, "SYM" );
-
-// Attribute mit einer Farbe als Wert (alle Netscape)
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_alink, "ALINK" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_bgcolor, "BGCOLOR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_bordercolor, "BORDERCOLOR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_bordercolorlight, "BORDERCOLORLIGHT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_bordercolordark, "BORDERCOLORDARK" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_color, "COLOR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_link, "LINK" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_text, "TEXT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_vlink, "VLINK" );
-
-// Attribute mit einem numerischen Wert
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_border, "BORDER" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_cellspacing, "CELLSPACING" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_cellpadding, "CELLPADDING" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_charoff, "CHAROFF" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_colspan, "COLSPAN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_framespacing, "FRAMESPACING" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_gutter, "GUTTER" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_indent, "INDENT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_height, "HEIGHT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_hspace, "HSPACE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_left, "LEFT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_leftmargin, "LEFTMARGIN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_loop, "LOOP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_marginheight, "MARGINHEIGHT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_marginwidth, "MARGINWIDTH" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_max, "MAX" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_maxlength, "MAXLENGTH" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_min, "MIN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_pagex, "PAGEX" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_pagey, "PAGEY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_pointsize, "POINT-SIZE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_rowspan, "ROWSPAN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_scrollamount, "SCROLLAMOUNT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_scrolldelay, "SCROLLDELAY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_seqnum, "SEQNUM" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_skip, "SKIP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_span, "SPAN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_tabindex, "TABINDEX" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_top, "TOP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_topmargin, "TOPMARGIN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_vspace, "VSPACE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_weight, "WEIGHT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_width, "WIDTH" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_x, "X" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_y, "Y" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_zindex, "Z-INDEX" );
-
-// Attribute mit Enum-Werten
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_behavior, "BEHAVIOR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_bgproperties, "BGPROPERTIES" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_clear, "CLEAR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_dir, "DIR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_direction, "DIRECTION" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_format, "FORMAT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_frame, "FRAME" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_lang, "LANG" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_method, "METHOD" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_palette, "PALETTE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_rel, "REL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_rev, "REV" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_rules, "RULES" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_scrolling, "SCROLLING" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_sdreadonly, "READONLY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_subtype, "SUBTYPE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_type, "TYPE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_valign, "VALIGN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_valuetype, "VALUETYPE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_visibility, "VISIBILITY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_wrap, "WRAP" );
-
-// Attribute mit Script-Code als Wert
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onblur, "ONBLUR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onchange, "ONCHANGE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onclick, "ONCLICK" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onfocus, "ONFOCUS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onload, "ONLOAD" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onmouseover, "ONMOUSEOVER" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onreset, "ONRESET" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onselect, "ONSELECT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onsubmit, "ONSUBMIT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onunload, "ONUNLOAD" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onabort, "ONABORT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onerror, "ONERROR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_onmouseout, "ONMOUSEOUT" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonblur, "SDONBLUR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonchange, "SDONCHANGE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonclick, "SDONCLICK" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonfocus, "SDONFOCUS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonload, "SDONLOAD" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonmouseover, "SDONMOUSEOVER" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonreset, "SDONRESET" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonselect, "SDONSELECT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonsubmit, "SDONSUBMIT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonunload, "SDONUNLOAD" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonabort, "SDONABORT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonerror, "SDONERROR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_SDonmouseout, "SDONMOUSEOUT" );
-
-// Attribute mit Kontext-abhaengigen Werten
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_align, "ALIGN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_cols, "COLS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_rows, "ROWS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_start, "START" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_size, "SIZE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_O_units, "UNITS" );
-
-
-// Werte von <INPUT TYPE=...>
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_text, "TEXT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_password, "PASSWORD" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_checkbox, "CHECKBOX" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_radio, "RADIO" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_range, "RANGE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_scribble, "SCRIBBLE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_file, "FILE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_hidden, "HIDDEN" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_submit, "SUBMIT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_image, "IMAGE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_reset, "RESET" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_IT_button, "BUTTON" );
-
-// Werte von <TABLE FRAME=...>
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_void, "VOID" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_above, "ABOVE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_below, "BELOW" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_hsides, "HSIDES" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_lhs, "LHS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_rhs, "RHS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_vsides, "VSIDES" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_box, "BOX" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TF_border, "BORDER" );
-
-// Werte von <TABLE RULES=...>
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TR_none, "NONE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TR_groups, "GROUPS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TR_rows, "ROWS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TR_cols, "COLS" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_TR_all, "ALL" );
-
-// Werte von <P, H?, TR, TH, TD ALIGN=...>
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_left, "LEFT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_center, "CENTER" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_middle, "MIDDLE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_right, "RIGHT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_justify, "JUSTIFY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_char, "CHAR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_all, "ALL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_AL_none, "NONE" );
-
-// Werte von <TR VALIGN=...>, <IMG ALIGN=...>
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_top, "TOP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_middle, "MIDDLE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_bottom, "BOTTOM" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_baseline, "BASELINE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_texttop, "TEXTTOP" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_absmiddle, "ABSMIDDLE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_VA_absbottom, "ABSBOTTOM" );
-
-// Werte von <AREA SHAPE=...>
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_rect, "RECT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_rectangle, "RECTANGLE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_circ, "CIRC" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_circle, "CIRCLE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_poly, "POLY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_polygon, "POLYGON" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SH_default, "DEFAULT" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_starbasic, "STARBASIC" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_javascript, "JAVASCRIPT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_javascript11, "JAVASCRIPT1.1" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_livescript, "LIVESCRIPT" );
-//sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_vbscript, "VBSCRIPT" );
-//sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_unused_javascript, "UNUSED JAVASCRIPT" );
-//sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LG_starone, "StarScript" );
-
-// ein par Werte fuer unser StarBASIC-Support
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SB_library, "$LIBRARY:" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SB_module, "$MODULE:" );
-
-
-// Werte von <FORM METHOD=...>
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_METHOD_get, "GET" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_METHOD_post, "POST" );
-
-// Werte von <META CONTENT/HTTP-EQUIV=...>
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_refresh, "REFRESH" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_generator, "GENERATOR" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_author, "AUTHOR" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_classification, "CLASSIFICATION" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_description, "DESCRIPTION" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_keywords, "KEYWORDS" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_changed, "CHANGED" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_changedby, "CHANGEDBY" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_created, "CREATED" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_content_type, "CONTENT-TYPE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_content_script_type, "CONTENT-SCRIPT-TYPE" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_sdendnote, "SDENDNOTE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_META_sdfootnote, "SDFOOTNOTE" );
-
-// Werte von <UL TYPE=...>
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ULTYPE_disc, "DISC" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ULTYPE_square, "SQUARE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ULTYPE_circle, "CIRCLE" );
-
-// Werte von <FRAMESET SCROLLING=...>
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SCROLL_yes, "YES" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SCROLL_no, "NO" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SCROLL_auto, "AUTO" );
-
-// Werte von <MULTICOL TYPE=...>
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_MCTYPE_horizontal, "HORIZONTAL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_MCTYPE_vertical, "VERTICAL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_MCTYPE_box, "BOX" );
-
-// Werte von <MARQUEE BEHAVIOUR=...>
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_BEHAV_scroll, "SCROLL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_BEHAV_slide, "SLIDE" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_BEHAV_alternate, "ALTERNATE" );
-
-// Werte von <MARQUEE LOOP=...>
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_LOOP_infinite, "INFINITE" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SPTYPE_block, "BLOCK" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SPTYPE_horizontal, "HORIZONTAL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_SPTYPE_vertical, "VERTICAL" );
-
-
-// interne Grafik-Namen
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_private_image, "private:image/" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_internal_gopher, "internal-gopher-" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_internal_icon, "internal-icon-" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_binary, "binary" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_image, "image" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_index, "index" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_menu, "menu" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_movie, "movie" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_sound, "sound" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_telnet, "telnet" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_text, "text" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_GOPHER_unknown, "unknown" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_ICON_baddata, "baddata" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_ICON_delayed, "delayed" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_ICON_embed, "embed" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_ICON_insecure, "insecure" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_INT_ICON_notfound, "notfound" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdendnote, "sdendnote" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdendnote_anc, "sdendnoteanc" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdendnote_sym, "sdendnotesym" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdfootnote, "sdfootnote" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdfootnote_anc, "sdfootnoteanc" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_sdfootnote_sym, "sdfootnotesym" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_FTN_anchor, "anc" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_FTN_symbol, "sym" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_WW_off, "OFF" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_WW_hard, "HARD" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_WW_soft, "SOFT" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_WW_virtual, "VIRTUAL" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_WW_physical, "PHYSICAL" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_on, "on" );
-
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ET_url, "application/x-www-form-urlencoded" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ET_multipart, "multipart/form-data" );
-sal_Char const SVTOOLS_CONSTASCII_DEF( sHTML_ET_text, "text/plain" );
diff --git a/svtools/source/svhtml/htmlkywd.cxx b/svtools/source/svhtml/htmlkywd.cxx
index 12077840167c..052b10d2c564 100644
--- a/svtools/source/svhtml/htmlkywd.cxx
+++ b/svtools/source/svhtml/htmlkywd.cxx
@@ -51,301 +51,154 @@ struct HTML_TokenEntry
int nToken;
};
-// die Farbnamen werden nicht exportiert
-// Sie stammen aus "http://www.uio.no/~mnbjerke/colors_w.html"
-// und scheinen im Gegensatz zu denen aus
-// "http://www.infi.net/wwwimages/colorindex.html"
-// zu stimmen
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_aliceblue, "ALICEBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_antiquewhite, "ANTIQUEWHITE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_aqua, "AQUA" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_aquamarine, "AQUAMARINE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_azure, "AZURE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_beige, "BEIGE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_bisque, "BISQUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_black, "BLACK" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_blanchedalmond, "BLANCHEDALMOND" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_blue, "BLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_blueviolet, "BLUEVIOLET" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_brown, "BROWN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_burlywood, "BURLYWOOD" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_cadetblue, "CADETBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_chartreuse, "CHARTREUSE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_chocolate, "CHOCOLATE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_coral, "CORAL" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_cornflowerblue, "CORNFLOWERBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_cornsilk, "CORNSILK" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_crimson, "CRIMSON" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_cyan, "CYAN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkblue, "DARKBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkcyan, "DARKCYAN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkgoldenrod, "DARKGOLDENROD" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkgray, "DARKGRAY" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkgreen, "DARKGREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkkhaki, "DARKKHAKI" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkmagenta, "DARKMAGENTA" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkolivegreen, "DARKOLIVEGREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkorange, "DARKORANGE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkorchid, "DARKORCHID" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkred, "DARKRED" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darksalmon, "DARKSALMON" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkseagreen, "DARKSEAGREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkslateblue, "DARKSLATEBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkslategray, "DARKSLATEGRAY" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkturquoise, "DARKTURQUOISE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_darkviolet, "DARKVIOLET" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_deeppink, "DEEPPINK" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_deepskyblue, "DEEPSKYBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_dimgray, "DIMGRAY" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_dodgerblue, "DODGERBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_firebrick, "FIREBRICK" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_floralwhite, "FLORALWHITE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_forestgreen, "FORESTGREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_fuchsia, "FUCHSIA" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_gainsboro, "GAINSBORO" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_ghostwhite, "GHOSTWHITE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_gold, "GOLD" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_goldenrod, "GOLDENROD" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_gray, "GRAY" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_green, "GREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_greenyellow, "GREENYELLOW" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_honeydew, "HONEYDEW" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_hotpink, "HOTPINK" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_indianred, "INDIANRED" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_indigo, "INDIGO" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_ivory, "IVORY" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_khaki, "KHAKI" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lavender, "LAVENDER" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lavenderblush, "LAVENDERBLUSH" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lawngreen, "LAWNGREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lemonchiffon, "LEMONCHIFFON" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightblue, "LIGHTBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightcoral, "LIGHTCORAL" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightcyan, "LIGHTCYAN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightgoldenrodyellow, "LIGHTGOLDENRODYELLOW" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightgreen, "LIGHTGREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightgrey, "LIGHTGREY" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightpink, "LIGHTPINK" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightsalmon, "LIGHTSALMON" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightseagreen, "LIGHTSEAGREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightskyblue, "LIGHTSKYBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightslategray, "LIGHTSLATEGRAY" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightsteelblue, "LIGHTSTEELBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lightyellow, "LIGHTYELLOW" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_lime, "LIME" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_limegreen, "LIMEGREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_linen, "LINEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_magenta, "MAGENTA" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_maroon, "MAROON" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumaquamarine, "MEDIUMAQUAMARINE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumblue, "MEDIUMBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumorchid, "MEDIUMORCHID" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumpurple, "MEDIUMPURPLE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumseagreen, "MEDIUMSEAGREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumslateblue, "MEDIUMSLATEBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumspringgreen, "MEDIUMSPRINGGREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumturquoise, "MEDIUMTURQUOISE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mediumvioletred, "MEDIUMVIOLETRED" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_midnightblue, "MIDNIGHTBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mintcream, "MINTCREAM" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_mistyrose, "MISTYROSE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_moccasin, "MOCCASIN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_navajowhite, "NAVAJOWHITE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_navy, "NAVY" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_oldlace, "OLDLACE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_olive, "OLIVE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_olivedrab, "OLIVEDRAB" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_orange, "ORANGE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_orangered, "ORANGERED" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_orchid, "ORCHID" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_palegoldenrod, "PALEGOLDENROD" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_palegreen, "PALEGREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_paleturquoise, "PALETURQUOISE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_palevioletred, "PALEVIOLETRED" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_papayawhip, "PAPAYAWHIP" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_peachpuff, "PEACHPUFF" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_peru, "PERU" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_pink, "PINK" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_plum, "PLUM" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_powderblue, "POWDERBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_purple, "PURPLE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_red, "RED" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_rosybrown, "ROSYBROWN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_royalblue, "ROYALBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_saddlebrown, "SADDLEBROWN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_salmon, "SALMON" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_sandybrown, "SANDYBROWN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_seagreen, "SEAGREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_seashell, "SEASHELL" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_sienna, "SIENNA" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_silver, "SILVER" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_skyblue, "SKYBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_slateblue, "SLATEBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_slategray, "SLATEGRAY" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_snow, "SNOW" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_springgreen, "SPRINGGREEN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_steelblue, "STEELBLUE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_tan, "TAN" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_teal, "TEAL" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_thistle, "THISTLE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_tomato, "TOMATO" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_turquoise, "TURQUOISE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_violet, "VIOLET" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_wheat, "WHEAT" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_white, "WHITE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_whitesmoke, "WHITESMOKE" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_yellow, "YELLOW" );
-sal_Char __READONLY_DATA SVTOOLS_CONSTASCII_DEF( sHTML_COL_yellowgreen, "YELLOWGREEN" );
-
-
// Flag: RTF-Token Tabelle wurde schon sortiert
static int __FAR_DATA bSortKeyWords = FALSE;
static HTML_TokenEntry __FAR_DATA aHTMLTokenTab[] = {
- {{sHTML_area}, HTML_AREA}, // Netscape 2.0
- {{sHTML_base}, HTML_BASE}, // HTML 3.0
- {{sHTML_comment}, HTML_COMMENT},
- {{sHTML_doctype}, HTML_DOCTYPE},
- {{sHTML_embed}, HTML_EMBED}, // Netscape 2.0
- {{sHTML_figureoverlay}, HTML_FIGUREOVERLAY}, // HTML 3.0
- {{sHTML_horzrule}, HTML_HORZRULE},
- {{sHTML_horztab}, HTML_HORZTAB}, // HTML 3.0
- {{sHTML_image}, HTML_IMAGE},
- {{sHTML_image2}, HTML_IMAGE},
- {{sHTML_input}, HTML_INPUT},
- {{sHTML_isindex}, HTML_ISINDEX}, // HTML 3.0
- {{sHTML_li}, HTML_LI_ON},
- {{sHTML_linebreak}, HTML_LINEBREAK},
- {{sHTML_link}, HTML_LINK}, // HTML 3.0
- {{sHTML_meta}, HTML_META}, // HTML 3.0
- {{sHTML_nextid}, HTML_NEXTID}, // HTML 3.0
- {{sHTML_of}, HTML_OF}, // HTML 3.0
- {{sHTML_option}, HTML_OPTION},
- {{sHTML_param}, HTML_PARAM}, // HotJava
- {{sHTML_range}, HTML_RANGE}, // HTML 3.0
- {{sHTML_spacer}, HTML_SPACER}, // Netscape 3.0b5
- {{sHTML_wbr}, HTML_WBR}, // Netscape
-
- {{sHTML_abbreviation}, HTML_ABBREVIATION_ON}, // HTML 3.0
- {{sHTML_above}, HTML_ABOVE_ON}, // HTML 3.0
- {{sHTML_acronym}, HTML_ACRONYM_ON}, // HTML 3.0
- {{sHTML_address}, HTML_ADDRESS_ON},
- {{sHTML_anchor}, HTML_ANCHOR_ON},
- {{sHTML_applet}, HTML_APPLET_ON}, // HotJava
- {{sHTML_array}, HTML_ARRAY_ON}, // HTML 3.0
- {{sHTML_author}, HTML_AUTHOR_ON}, // HTML 3.0
- {{sHTML_banner}, HTML_BANNER_ON}, // HTML 3.0
- {{sHTML_bar}, HTML_BAR_ON}, // HTML 3.0
- {{sHTML_basefont}, HTML_BASEFONT_ON}, // Netscape
- {{sHTML_below}, HTML_BELOW_ON}, // HTML 3.0
- {{sHTML_bigprint}, HTML_BIGPRINT_ON}, // HTML 3.0
- {{sHTML_blink}, HTML_BLINK_ON}, // Netscape
- {{sHTML_blockquote}, HTML_BLOCKQUOTE_ON},
- {{sHTML_blockquote30}, HTML_BLOCKQUOTE30_ON}, // HTML 3.0
- {{sHTML_body}, HTML_BODY_ON},
- {{sHTML_bold}, HTML_BOLD_ON},
- {{sHTML_boldtext}, HTML_BOLDTEXT_ON}, // HTML 3.0
- {{sHTML_box}, HTML_BOX_ON}, // HTML 3.0
- {{sHTML_caption}, HTML_CAPTION_ON}, // HTML 3.0
- {{sHTML_center}, HTML_CENTER_ON}, // Netscape
- {{sHTML_citiation}, HTML_CITIATION_ON},
- {{sHTML_col}, HTML_COL_ON}, // HTML 3 Table Model Draft
- {{sHTML_colgroup}, HTML_COLGROUP_ON}, // HTML 3 Table Model Draft
- {{sHTML_code}, HTML_CODE_ON},
- {{sHTML_credit}, HTML_CREDIT_ON}, // HTML 3.0
- {{sHTML_dd}, HTML_DD_ON},
- {{sHTML_deflist}, HTML_DEFLIST_ON},
- {{sHTML_deletedtext}, HTML_DELETEDTEXT_ON}, // HTML 3.0
- {{sHTML_dirlist}, HTML_DIRLIST_ON},
- {{sHTML_division}, HTML_DIVISION_ON}, // HTML 3.0
- {{sHTML_dot}, HTML_DOT_ON}, // HTML 3.0
- {{sHTML_doubledot}, HTML_DOUBLEDOT_ON}, // HTML 3.0
- {{sHTML_dt}, HTML_DT_ON},
- {{sHTML_emphasis}, HTML_EMPHASIS_ON},
- {{sHTML_figure}, HTML_FIGURE_ON}, // HTML 3.0
- {{sHTML_font}, HTML_FONT_ON}, // Netscpe
- {{sHTML_footnote}, HTML_FOOTNOTE_ON}, // HTML 3.0
- {{sHTML_form}, HTML_FORM_ON},
- {{sHTML_frame}, HTML_FRAME_ON}, // Netscape 2.0
- {{sHTML_frameset}, HTML_FRAMESET_ON}, // Netscape 2.0
- {{sHTML_hat}, HTML_HAT_ON}, // HTML 3.0
- {{sHTML_head}, HTML_HEAD_ON},
- {{sHTML_head1}, HTML_HEAD1_ON},
- {{sHTML_head2}, HTML_HEAD2_ON},
- {{sHTML_head3}, HTML_HEAD3_ON},
- {{sHTML_head4}, HTML_HEAD4_ON},
- {{sHTML_head5}, HTML_HEAD5_ON},
- {{sHTML_head6}, HTML_HEAD6_ON},
- {{sHTML_html}, HTML_HTML_ON},
- {{sHTML_iframe}, HTML_IFRAME_ON}, // IE 3.0b2
- {{sHTML_ilayer}, HTML_ILAYER_ON},
- {{sHTML_insertedtext}, HTML_INSERTEDTEXT_ON}, // HTML 3.0
- {{sHTML_italic}, HTML_ITALIC_ON},
- {{sHTML_item}, HTML_ITEM_ON}, // HTML 3.0
- {{sHTML_keyboard}, HTML_KEYBOARD_ON},
- {{sHTML_language}, HTML_LANGUAGE_ON}, // HTML 3.0
- {{sHTML_layer}, HTML_LAYER_ON},
- {{sHTML_listheader}, HTML_LISTHEADER_ON}, // HTML 3.0
- {{sHTML_map}, HTML_MAP_ON}, // Netscape 2.0
- {{sHTML_math}, HTML_MATH_ON}, // HTML 3.0
- {{sHTML_menulist}, HTML_MENULIST_ON},
- {{sHTML_multicol}, HTML_MULTICOL_ON}, // Netscape 3.0b5
- {{sHTML_nobr}, HTML_NOBR_ON}, // Netscape
- {{sHTML_noembed}, HTML_NOEMBED_ON}, // Netscape 2.0 ???
- {{sHTML_noframe}, HTML_NOFRAMES_ON}, // Netscape 2.0 ???
- {{sHTML_noframes}, HTML_NOFRAMES_ON}, // Netscape 2.0
- {{sHTML_noscript}, HTML_NOSCRIPT_ON}, // Netscape 3.0
- {{sHTML_note}, HTML_NOTE_ON}, // HTML 3.0
- {{sHTML_object}, HTML_OBJECT_ON},
- {{sHTML_orderlist}, HTML_ORDERLIST_ON},
- {{sHTML_parabreak}, HTML_PARABREAK_ON},
- {{sHTML_person}, HTML_PERSON_ON}, // HTML 3.0
- {{sHTML_plaintext}, HTML_PLAINTEXT_ON}, // HTML 3.0
- {{sHTML_preformtxt}, HTML_PREFORMTXT_ON},
- {{sHTML_root}, HTML_ROOT_ON}, // HTML 3.0
- {{sHTML_row}, HTML_ROW_ON}, // HTML 3.0
- {{sHTML_sample}, HTML_SAMPLE_ON},
- {{sHTML_script}, HTML_SCRIPT_ON}, // HTML 3.2
- {{sHTML_select}, HTML_SELECT_ON},
- {{sHTML_shortquote}, HTML_SHORTQUOTE_ON}, // HTML 3.0
- {{sHTML_smallprint}, HTML_SMALLPRINT_ON}, // HTML 3.0
- {{sHTML_span}, HTML_SPAN_ON}, // Style Sheets
- {{sHTML_squareroot}, HTML_SQUAREROOT_ON}, // HTML 3.0
- {{sHTML_strikethrough},HTML_STRIKETHROUGH_ON}, // HTML 3.0
- {{sHTML_strong}, HTML_STRONG_ON},
- {{sHTML_style}, HTML_STYLE_ON}, // HTML 3.0
- {{sHTML_subscript}, HTML_SUBSCRIPT_ON}, // HTML 3.0
- {{sHTML_superscript}, HTML_SUPERSCRIPT_ON}, // HTML 3.0
- {{sHTML_table}, HTML_TABLE_ON}, // HTML 3.0
- {{sHTML_tabledata}, HTML_TABLEDATA_ON}, // HTML 3.0
- {{sHTML_tableheader}, HTML_TABLEHEADER_ON}, // HTML 3.0
- {{sHTML_tablerow}, HTML_TABLEROW_ON}, // HTML 3.0
- {{sHTML_tbody}, HTML_TBODY_ON}, // HTML 3 Table Model Draft
- {{sHTML_teletype}, HTML_TELETYPE_ON},
- {{sHTML_text}, HTML_TEXT_ON}, // HTML 3.0
- {{sHTML_textarea}, HTML_TEXTAREA_ON},
- {{sHTML_textflow}, HTML_TEXTFLOW_ON},
- {{sHTML_tfoot}, HTML_TFOOT_ON}, // HTML 3 Table Model Draft
- {{sHTML_thead}, HTML_THEAD_ON}, // HTML 3 Table Model Draft
- {{sHTML_tilde}, HTML_TILDE_ON}, // HTML 3.0
- {{sHTML_title}, HTML_TITLE_ON},
- {{sHTML_underline}, HTML_UNDERLINE_ON},
- {{sHTML_unorderlist}, HTML_UNORDERLIST_ON},
- {{sHTML_variable}, HTML_VARIABLE_ON},
- {{sHTML_vector}, HTML_VECTOR_ON}, // HTML 3.0
-
- {{sHTML_xmp}, HTML_XMP_ON},
- {{sHTML_listing}, HTML_LISTING_ON},
-
- {{sHTML_definstance}, HTML_DEFINSTANCE_ON},
- {{sHTML_strike}, HTML_STRIKE_ON},
-
- {{sHTML_bgsound}, HTML_BGSOUND},
- {{sHTML_comment2}, HTML_COMMENT2_ON},
- {{sHTML_marquee}, HTML_MARQUEE_ON},
- {{sHTML_plaintext2}, HTML_PLAINTEXT2_ON},
-
- {{sHTML_sdfield}, HTML_SDFIELD_ON}
+ {{OOO_STRING_SVTOOLS_HTML_area}, HTML_AREA}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_base}, HTML_BASE}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_comment}, HTML_COMMENT},
+ {{OOO_STRING_SVTOOLS_HTML_doctype}, HTML_DOCTYPE},
+ {{OOO_STRING_SVTOOLS_HTML_embed}, HTML_EMBED}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_figureoverlay}, HTML_FIGUREOVERLAY}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_horzrule}, HTML_HORZRULE},
+ {{OOO_STRING_SVTOOLS_HTML_horztab}, HTML_HORZTAB}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_image}, HTML_IMAGE},
+ {{OOO_STRING_SVTOOLS_HTML_image2}, HTML_IMAGE},
+ {{OOO_STRING_SVTOOLS_HTML_input}, HTML_INPUT},
+ {{OOO_STRING_SVTOOLS_HTML_isindex}, HTML_ISINDEX}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_li}, HTML_LI_ON},
+ {{OOO_STRING_SVTOOLS_HTML_linebreak}, HTML_LINEBREAK},
+ {{OOO_STRING_SVTOOLS_HTML_link}, HTML_LINK}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_meta}, HTML_META}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_nextid}, HTML_NEXTID}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_of}, HTML_OF}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_option}, HTML_OPTION},
+ {{OOO_STRING_SVTOOLS_HTML_param}, HTML_PARAM}, // HotJava
+ {{OOO_STRING_SVTOOLS_HTML_range}, HTML_RANGE}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_spacer}, HTML_SPACER}, // Netscape 3.0b5
+ {{OOO_STRING_SVTOOLS_HTML_wbr}, HTML_WBR}, // Netscape
+
+ {{OOO_STRING_SVTOOLS_HTML_abbreviation}, HTML_ABBREVIATION_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_above}, HTML_ABOVE_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_acronym}, HTML_ACRONYM_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_address}, HTML_ADDRESS_ON},
+ {{OOO_STRING_SVTOOLS_HTML_anchor}, HTML_ANCHOR_ON},
+ {{OOO_STRING_SVTOOLS_HTML_applet}, HTML_APPLET_ON}, // HotJava
+ {{OOO_STRING_SVTOOLS_HTML_array}, HTML_ARRAY_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_author}, HTML_AUTHOR_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_banner}, HTML_BANNER_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_bar}, HTML_BAR_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_basefont}, HTML_BASEFONT_ON}, // Netscape
+ {{OOO_STRING_SVTOOLS_HTML_below}, HTML_BELOW_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_bigprint}, HTML_BIGPRINT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_blink}, HTML_BLINK_ON}, // Netscape
+ {{OOO_STRING_SVTOOLS_HTML_blockquote}, HTML_BLOCKQUOTE_ON},
+ {{OOO_STRING_SVTOOLS_HTML_blockquote30}, HTML_BLOCKQUOTE30_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_body}, HTML_BODY_ON},
+ {{OOO_STRING_SVTOOLS_HTML_bold}, HTML_BOLD_ON},
+ {{OOO_STRING_SVTOOLS_HTML_boldtext}, HTML_BOLDTEXT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_box}, HTML_BOX_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_caption}, HTML_CAPTION_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_center}, HTML_CENTER_ON}, // Netscape
+ {{OOO_STRING_SVTOOLS_HTML_citiation}, HTML_CITIATION_ON},
+ {{OOO_STRING_SVTOOLS_HTML_col}, HTML_COL_ON}, // HTML 3 Table Model Draft
+ {{OOO_STRING_SVTOOLS_HTML_colgroup}, HTML_COLGROUP_ON}, // HTML 3 Table Model Draft
+ {{OOO_STRING_SVTOOLS_HTML_code}, HTML_CODE_ON},
+ {{OOO_STRING_SVTOOLS_HTML_credit}, HTML_CREDIT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_dd}, HTML_DD_ON},
+ {{OOO_STRING_SVTOOLS_HTML_deflist}, HTML_DEFLIST_ON},
+ {{OOO_STRING_SVTOOLS_HTML_deletedtext}, HTML_DELETEDTEXT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_dirlist}, HTML_DIRLIST_ON},
+ {{OOO_STRING_SVTOOLS_HTML_division}, HTML_DIVISION_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_dot}, HTML_DOT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_doubledot}, HTML_DOUBLEDOT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_dt}, HTML_DT_ON},
+ {{OOO_STRING_SVTOOLS_HTML_emphasis}, HTML_EMPHASIS_ON},
+ {{OOO_STRING_SVTOOLS_HTML_figure}, HTML_FIGURE_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_font}, HTML_FONT_ON}, // Netscpe
+ {{OOO_STRING_SVTOOLS_HTML_footnote}, HTML_FOOTNOTE_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_form}, HTML_FORM_ON},
+ {{OOO_STRING_SVTOOLS_HTML_frame}, HTML_FRAME_ON}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_frameset}, HTML_FRAMESET_ON}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_hat}, HTML_HAT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_head}, HTML_HEAD_ON},
+ {{OOO_STRING_SVTOOLS_HTML_head1}, HTML_HEAD1_ON},
+ {{OOO_STRING_SVTOOLS_HTML_head2}, HTML_HEAD2_ON},
+ {{OOO_STRING_SVTOOLS_HTML_head3}, HTML_HEAD3_ON},
+ {{OOO_STRING_SVTOOLS_HTML_head4}, HTML_HEAD4_ON},
+ {{OOO_STRING_SVTOOLS_HTML_head5}, HTML_HEAD5_ON},
+ {{OOO_STRING_SVTOOLS_HTML_head6}, HTML_HEAD6_ON},
+ {{OOO_STRING_SVTOOLS_HTML_html}, HTML_HTML_ON},
+ {{OOO_STRING_SVTOOLS_HTML_iframe}, HTML_IFRAME_ON}, // IE 3.0b2
+ {{OOO_STRING_SVTOOLS_HTML_ilayer}, HTML_ILAYER_ON},
+ {{OOO_STRING_SVTOOLS_HTML_insertedtext}, HTML_INSERTEDTEXT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_italic}, HTML_ITALIC_ON},
+ {{OOO_STRING_SVTOOLS_HTML_item}, HTML_ITEM_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_keyboard}, HTML_KEYBOARD_ON},
+ {{OOO_STRING_SVTOOLS_HTML_language}, HTML_LANGUAGE_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_layer}, HTML_LAYER_ON},
+ {{OOO_STRING_SVTOOLS_HTML_listheader}, HTML_LISTHEADER_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_map}, HTML_MAP_ON}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_math}, HTML_MATH_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_menulist}, HTML_MENULIST_ON},
+ {{OOO_STRING_SVTOOLS_HTML_multicol}, HTML_MULTICOL_ON}, // Netscape 3.0b5
+ {{OOO_STRING_SVTOOLS_HTML_nobr}, HTML_NOBR_ON}, // Netscape
+ {{OOO_STRING_SVTOOLS_HTML_noembed}, HTML_NOEMBED_ON}, // Netscape 2.0 ???
+ {{OOO_STRING_SVTOOLS_HTML_noframe}, HTML_NOFRAMES_ON}, // Netscape 2.0 ???
+ {{OOO_STRING_SVTOOLS_HTML_noframes}, HTML_NOFRAMES_ON}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_noscript}, HTML_NOSCRIPT_ON}, // Netscape 3.0
+ {{OOO_STRING_SVTOOLS_HTML_note}, HTML_NOTE_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_object}, HTML_OBJECT_ON},
+ {{OOO_STRING_SVTOOLS_HTML_orderlist}, HTML_ORDERLIST_ON},
+ {{OOO_STRING_SVTOOLS_HTML_parabreak}, HTML_PARABREAK_ON},
+ {{OOO_STRING_SVTOOLS_HTML_person}, HTML_PERSON_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_plaintext}, HTML_PLAINTEXT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_preformtxt}, HTML_PREFORMTXT_ON},
+ {{OOO_STRING_SVTOOLS_HTML_root}, HTML_ROOT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_row}, HTML_ROW_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_sample}, HTML_SAMPLE_ON},
+ {{OOO_STRING_SVTOOLS_HTML_script}, HTML_SCRIPT_ON}, // HTML 3.2
+ {{OOO_STRING_SVTOOLS_HTML_select}, HTML_SELECT_ON},
+ {{OOO_STRING_SVTOOLS_HTML_shortquote}, HTML_SHORTQUOTE_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_smallprint}, HTML_SMALLPRINT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_span}, HTML_SPAN_ON}, // Style Sheets
+ {{OOO_STRING_SVTOOLS_HTML_squareroot}, HTML_SQUAREROOT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_strikethrough},HTML_STRIKETHROUGH_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_strong}, HTML_STRONG_ON},
+ {{OOO_STRING_SVTOOLS_HTML_style}, HTML_STYLE_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_subscript}, HTML_SUBSCRIPT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_superscript}, HTML_SUPERSCRIPT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_table}, HTML_TABLE_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_tabledata}, HTML_TABLEDATA_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_tableheader}, HTML_TABLEHEADER_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_tablerow}, HTML_TABLEROW_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_tbody}, HTML_TBODY_ON}, // HTML 3 Table Model Draft
+ {{OOO_STRING_SVTOOLS_HTML_teletype}, HTML_TELETYPE_ON},
+ {{OOO_STRING_SVTOOLS_HTML_text}, HTML_TEXT_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_textarea}, HTML_TEXTAREA_ON},
+ {{OOO_STRING_SVTOOLS_HTML_textflow}, HTML_TEXTFLOW_ON},
+ {{OOO_STRING_SVTOOLS_HTML_tfoot}, HTML_TFOOT_ON}, // HTML 3 Table Model Draft
+ {{OOO_STRING_SVTOOLS_HTML_thead}, HTML_THEAD_ON}, // HTML 3 Table Model Draft
+ {{OOO_STRING_SVTOOLS_HTML_tilde}, HTML_TILDE_ON}, // HTML 3.0
+ {{OOO_STRING_SVTOOLS_HTML_title}, HTML_TITLE_ON},
+ {{OOO_STRING_SVTOOLS_HTML_underline}, HTML_UNDERLINE_ON},
+ {{OOO_STRING_SVTOOLS_HTML_unorderlist}, HTML_UNORDERLIST_ON},
+ {{OOO_STRING_SVTOOLS_HTML_variable}, HTML_VARIABLE_ON},
+ {{OOO_STRING_SVTOOLS_HTML_vector}, HTML_VECTOR_ON}, // HTML 3.0
+
+ {{OOO_STRING_SVTOOLS_HTML_xmp}, HTML_XMP_ON},
+ {{OOO_STRING_SVTOOLS_HTML_listing}, HTML_LISTING_ON},
+
+ {{OOO_STRING_SVTOOLS_HTML_definstance}, HTML_DEFINSTANCE_ON},
+ {{OOO_STRING_SVTOOLS_HTML_strike}, HTML_STRIKE_ON},
+
+ {{OOO_STRING_SVTOOLS_HTML_bgsound}, HTML_BGSOUND},
+ {{OOO_STRING_SVTOOLS_HTML_comment2}, HTML_COMMENT2_ON},
+ {{OOO_STRING_SVTOOLS_HTML_marquee}, HTML_MARQUEE_ON},
+ {{OOO_STRING_SVTOOLS_HTML_plaintext2}, HTML_PLAINTEXT2_ON},
+
+ {{OOO_STRING_SVTOOLS_HTML_sdfield}, HTML_SDFIELD_ON}
};
@@ -399,7 +252,7 @@ int GetHTMLToken( const String& rName )
int nRet = 0;
- if( !rName.CompareToAscii( sHTML_comment, 3UL) )
+ if( !rName.CompareToAscii( OOO_STRING_SVTOOLS_HTML_comment, 3UL) )
return HTML_COMMENT;
void* pFound;
@@ -432,276 +285,276 @@ struct HTML_CharEntry
static int __FAR_DATA bSortCharKeyWords = FALSE;
static HTML_CharEntry __FAR_DATA aHTMLCharNameTab[] = {
- {{sHTML_C_lt}, 60},
- {{sHTML_C_gt}, 62},
- {{sHTML_C_amp}, 38},
- {{sHTML_C_quot}, 34},
-
- {{sHTML_C_Agrave}, 192},
- {{sHTML_C_Aacute}, 193},
- {{sHTML_C_Acirc}, 194},
- {{sHTML_C_Atilde}, 195},
- {{sHTML_C_Auml}, 196},
- {{sHTML_C_Aring}, 197},
- {{sHTML_C_AElig}, 198},
- {{sHTML_C_Ccedil}, 199},
- {{sHTML_C_Egrave}, 200},
- {{sHTML_C_Eacute}, 201},
- {{sHTML_C_Ecirc}, 202},
- {{sHTML_C_Euml}, 203},
- {{sHTML_C_Igrave}, 204},
- {{sHTML_C_Iacute}, 205},
- {{sHTML_C_Icirc}, 206},
- {{sHTML_C_Iuml}, 207},
- {{sHTML_C_ETH}, 208},
- {{sHTML_C_Ntilde}, 209},
- {{sHTML_C_Ograve}, 210},
- {{sHTML_C_Oacute}, 211},
- {{sHTML_C_Ocirc}, 212},
- {{sHTML_C_Otilde}, 213},
- {{sHTML_C_Ouml}, 214},
- {{sHTML_C_Oslash}, 216},
- {{sHTML_C_Ugrave}, 217},
- {{sHTML_C_Uacute}, 218},
- {{sHTML_C_Ucirc}, 219},
- {{sHTML_C_Uuml}, 220},
- {{sHTML_C_Yacute}, 221},
-
- {{sHTML_C_THORN}, 222},
- {{sHTML_C_szlig}, 223},
-
- {{sHTML_S_agrave}, 224},
- {{sHTML_S_aacute}, 225},
- {{sHTML_S_acirc}, 226},
- {{sHTML_S_atilde}, 227},
- {{sHTML_S_auml}, 228},
- {{sHTML_S_aring}, 229},
- {{sHTML_S_aelig}, 230},
- {{sHTML_S_ccedil}, 231},
- {{sHTML_S_egrave}, 232},
- {{sHTML_S_eacute}, 233},
- {{sHTML_S_ecirc}, 234},
- {{sHTML_S_euml}, 235},
- {{sHTML_S_igrave}, 236},
- {{sHTML_S_iacute}, 237},
- {{sHTML_S_icirc}, 238},
- {{sHTML_S_iuml}, 239},
- {{sHTML_S_eth}, 240},
- {{sHTML_S_ntilde}, 241},
- {{sHTML_S_ograve}, 242},
- {{sHTML_S_oacute}, 243},
- {{sHTML_S_ocirc}, 244},
- {{sHTML_S_otilde}, 245},
- {{sHTML_S_ouml}, 246},
- {{sHTML_S_oslash}, 248},
- {{sHTML_S_ugrave}, 249},
- {{sHTML_S_uacute}, 250},
- {{sHTML_S_ucirc}, 251},
- {{sHTML_S_uuml}, 252},
- {{sHTML_S_yacute}, 253},
- {{sHTML_S_thorn}, 254},
- {{sHTML_S_yuml}, 255},
+ {{OOO_STRING_SVTOOLS_HTML_C_lt}, 60},
+ {{OOO_STRING_SVTOOLS_HTML_C_gt}, 62},
+ {{OOO_STRING_SVTOOLS_HTML_C_amp}, 38},
+ {{OOO_STRING_SVTOOLS_HTML_C_quot}, 34},
+
+ {{OOO_STRING_SVTOOLS_HTML_C_Agrave}, 192},
+ {{OOO_STRING_SVTOOLS_HTML_C_Aacute}, 193},
+ {{OOO_STRING_SVTOOLS_HTML_C_Acirc}, 194},
+ {{OOO_STRING_SVTOOLS_HTML_C_Atilde}, 195},
+ {{OOO_STRING_SVTOOLS_HTML_C_Auml}, 196},
+ {{OOO_STRING_SVTOOLS_HTML_C_Aring}, 197},
+ {{OOO_STRING_SVTOOLS_HTML_C_AElig}, 198},
+ {{OOO_STRING_SVTOOLS_HTML_C_Ccedil}, 199},
+ {{OOO_STRING_SVTOOLS_HTML_C_Egrave}, 200},
+ {{OOO_STRING_SVTOOLS_HTML_C_Eacute}, 201},
+ {{OOO_STRING_SVTOOLS_HTML_C_Ecirc}, 202},
+ {{OOO_STRING_SVTOOLS_HTML_C_Euml}, 203},
+ {{OOO_STRING_SVTOOLS_HTML_C_Igrave}, 204},
+ {{OOO_STRING_SVTOOLS_HTML_C_Iacute}, 205},
+ {{OOO_STRING_SVTOOLS_HTML_C_Icirc}, 206},
+ {{OOO_STRING_SVTOOLS_HTML_C_Iuml}, 207},
+ {{OOO_STRING_SVTOOLS_HTML_C_ETH}, 208},
+ {{OOO_STRING_SVTOOLS_HTML_C_Ntilde}, 209},
+ {{OOO_STRING_SVTOOLS_HTML_C_Ograve}, 210},
+ {{OOO_STRING_SVTOOLS_HTML_C_Oacute}, 211},
+ {{OOO_STRING_SVTOOLS_HTML_C_Ocirc}, 212},
+ {{OOO_STRING_SVTOOLS_HTML_C_Otilde}, 213},
+ {{OOO_STRING_SVTOOLS_HTML_C_Ouml}, 214},
+ {{OOO_STRING_SVTOOLS_HTML_C_Oslash}, 216},
+ {{OOO_STRING_SVTOOLS_HTML_C_Ugrave}, 217},
+ {{OOO_STRING_SVTOOLS_HTML_C_Uacute}, 218},
+ {{OOO_STRING_SVTOOLS_HTML_C_Ucirc}, 219},
+ {{OOO_STRING_SVTOOLS_HTML_C_Uuml}, 220},
+ {{OOO_STRING_SVTOOLS_HTML_C_Yacute}, 221},
+
+ {{OOO_STRING_SVTOOLS_HTML_C_THORN}, 222},
+ {{OOO_STRING_SVTOOLS_HTML_C_szlig}, 223},
+
+ {{OOO_STRING_SVTOOLS_HTML_S_agrave}, 224},
+ {{OOO_STRING_SVTOOLS_HTML_S_aacute}, 225},
+ {{OOO_STRING_SVTOOLS_HTML_S_acirc}, 226},
+ {{OOO_STRING_SVTOOLS_HTML_S_atilde}, 227},
+ {{OOO_STRING_SVTOOLS_HTML_S_auml}, 228},
+ {{OOO_STRING_SVTOOLS_HTML_S_aring}, 229},
+ {{OOO_STRING_SVTOOLS_HTML_S_aelig}, 230},
+ {{OOO_STRING_SVTOOLS_HTML_S_ccedil}, 231},
+ {{OOO_STRING_SVTOOLS_HTML_S_egrave}, 232},
+ {{OOO_STRING_SVTOOLS_HTML_S_eacute}, 233},
+ {{OOO_STRING_SVTOOLS_HTML_S_ecirc}, 234},
+ {{OOO_STRING_SVTOOLS_HTML_S_euml}, 235},
+ {{OOO_STRING_SVTOOLS_HTML_S_igrave}, 236},
+ {{OOO_STRING_SVTOOLS_HTML_S_iacute}, 237},
+ {{OOO_STRING_SVTOOLS_HTML_S_icirc}, 238},
+ {{OOO_STRING_SVTOOLS_HTML_S_iuml}, 239},
+ {{OOO_STRING_SVTOOLS_HTML_S_eth}, 240},
+ {{OOO_STRING_SVTOOLS_HTML_S_ntilde}, 241},
+ {{OOO_STRING_SVTOOLS_HTML_S_ograve}, 242},
+ {{OOO_STRING_SVTOOLS_HTML_S_oacute}, 243},
+ {{OOO_STRING_SVTOOLS_HTML_S_ocirc}, 244},
+ {{OOO_STRING_SVTOOLS_HTML_S_otilde}, 245},
+ {{OOO_STRING_SVTOOLS_HTML_S_ouml}, 246},
+ {{OOO_STRING_SVTOOLS_HTML_S_oslash}, 248},
+ {{OOO_STRING_SVTOOLS_HTML_S_ugrave}, 249},
+ {{OOO_STRING_SVTOOLS_HTML_S_uacute}, 250},
+ {{OOO_STRING_SVTOOLS_HTML_S_ucirc}, 251},
+ {{OOO_STRING_SVTOOLS_HTML_S_uuml}, 252},
+ {{OOO_STRING_SVTOOLS_HTML_S_yacute}, 253},
+ {{OOO_STRING_SVTOOLS_HTML_S_thorn}, 254},
+ {{OOO_STRING_SVTOOLS_HTML_S_yuml}, 255},
// Sonderzeichen
- {{sHTML_S_acute}, 180},
- {{sHTML_S_brvbar}, 166},
- {{sHTML_S_cedil}, 184},
- {{sHTML_S_cent}, 162},
- {{sHTML_S_copy}, 169},
- {{sHTML_S_curren}, 164},
- {{sHTML_S_deg}, 176},
- {{sHTML_S_divide}, 247},
- {{sHTML_S_frac12}, 189},
- {{sHTML_S_frac14}, 188},
- {{sHTML_S_frac34}, 190},
- {{sHTML_S_iexcl}, 161},
- {{sHTML_S_iquest}, 191},
- {{sHTML_S_laquo}, 171},
- {{sHTML_S_macr}, 175},
- {{sHTML_S_micro}, 181},
- {{sHTML_S_middot}, 183},
- {{sHTML_S_not}, 172},
- {{sHTML_S_ordf}, 170},
- {{sHTML_S_ordm}, 186},
- {{sHTML_S_para}, 182},
- {{sHTML_S_plusmn}, 177},
- {{sHTML_S_pound}, 163},
- {{sHTML_S_raquo}, 187},
- {{sHTML_S_reg}, 174},
- {{sHTML_S_sect}, 167},
- {{sHTML_S_sup1}, 185},
- {{sHTML_S_sup2}, 178},
- {{sHTML_S_sup3}, 179},
- {{sHTML_S_times}, 215},
- {{sHTML_S_uml}, 168},
- {{sHTML_S_yen}, 165},
+ {{OOO_STRING_SVTOOLS_HTML_S_acute}, 180},
+ {{OOO_STRING_SVTOOLS_HTML_S_brvbar}, 166},
+ {{OOO_STRING_SVTOOLS_HTML_S_cedil}, 184},
+ {{OOO_STRING_SVTOOLS_HTML_S_cent}, 162},
+ {{OOO_STRING_SVTOOLS_HTML_S_copy}, 169},
+ {{OOO_STRING_SVTOOLS_HTML_S_curren}, 164},
+ {{OOO_STRING_SVTOOLS_HTML_S_deg}, 176},
+ {{OOO_STRING_SVTOOLS_HTML_S_divide}, 247},
+ {{OOO_STRING_SVTOOLS_HTML_S_frac12}, 189},
+ {{OOO_STRING_SVTOOLS_HTML_S_frac14}, 188},
+ {{OOO_STRING_SVTOOLS_HTML_S_frac34}, 190},
+ {{OOO_STRING_SVTOOLS_HTML_S_iexcl}, 161},
+ {{OOO_STRING_SVTOOLS_HTML_S_iquest}, 191},
+ {{OOO_STRING_SVTOOLS_HTML_S_laquo}, 171},
+ {{OOO_STRING_SVTOOLS_HTML_S_macr}, 175},
+ {{OOO_STRING_SVTOOLS_HTML_S_micro}, 181},
+ {{OOO_STRING_SVTOOLS_HTML_S_middot}, 183},
+ {{OOO_STRING_SVTOOLS_HTML_S_not}, 172},
+ {{OOO_STRING_SVTOOLS_HTML_S_ordf}, 170},
+ {{OOO_STRING_SVTOOLS_HTML_S_ordm}, 186},
+ {{OOO_STRING_SVTOOLS_HTML_S_para}, 182},
+ {{OOO_STRING_SVTOOLS_HTML_S_plusmn}, 177},
+ {{OOO_STRING_SVTOOLS_HTML_S_pound}, 163},
+ {{OOO_STRING_SVTOOLS_HTML_S_raquo}, 187},
+ {{OOO_STRING_SVTOOLS_HTML_S_reg}, 174},
+ {{OOO_STRING_SVTOOLS_HTML_S_sect}, 167},
+ {{OOO_STRING_SVTOOLS_HTML_S_sup1}, 185},
+ {{OOO_STRING_SVTOOLS_HTML_S_sup2}, 178},
+ {{OOO_STRING_SVTOOLS_HTML_S_sup3}, 179},
+ {{OOO_STRING_SVTOOLS_HTML_S_times}, 215},
+ {{OOO_STRING_SVTOOLS_HTML_S_uml}, 168},
+ {{OOO_STRING_SVTOOLS_HTML_S_yen}, 165},
// Netscape kennt noch ein paar in Grossbuchstaben ...
- {{sHTML_C_LT}, 60},
- {{sHTML_C_GT}, 62},
- {{sHTML_C_AMP}, 38},
- {{sHTML_C_QUOT}, 34},
- {{sHTML_S_COPY}, 169},
- {{sHTML_S_REG}, 174},
+ {{OOO_STRING_SVTOOLS_HTML_C_LT}, 60},
+ {{OOO_STRING_SVTOOLS_HTML_C_GT}, 62},
+ {{OOO_STRING_SVTOOLS_HTML_C_AMP}, 38},
+ {{OOO_STRING_SVTOOLS_HTML_C_QUOT}, 34},
+ {{OOO_STRING_SVTOOLS_HTML_S_COPY}, 169},
+ {{OOO_STRING_SVTOOLS_HTML_S_REG}, 174},
// Sonderzeichen, die zu Tokens konvertiert werden !!!
- {{sHTML_S_nbsp}, 1},
- {{sHTML_S_shy}, 2},
+ {{OOO_STRING_SVTOOLS_HTML_S_nbsp}, 1},
+ {{OOO_STRING_SVTOOLS_HTML_S_shy}, 2},
// HTML4
- {{sHTML_S_OElig}, 338},
- {{sHTML_S_oelig}, 339},
- {{sHTML_S_Scaron}, 352},
- {{sHTML_S_scaron}, 353},
- {{sHTML_S_Yuml}, 376},
- {{sHTML_S_fnof}, 402},
- {{sHTML_S_circ}, 710},
- {{sHTML_S_tilde}, 732},
- {{sHTML_S_Alpha}, 913},
- {{sHTML_S_Beta}, 914},
- {{sHTML_S_Gamma}, 915},
- {{sHTML_S_Delta}, 916},
- {{sHTML_S_Epsilon}, 917},
- {{sHTML_S_Zeta}, 918},
- {{sHTML_S_Eta}, 919},
- {{sHTML_S_Theta}, 920},
- {{sHTML_S_Iota}, 921},
- {{sHTML_S_Kappa}, 922},
- {{sHTML_S_Lambda}, 923},
- {{sHTML_S_Mu}, 924},
- {{sHTML_S_Nu}, 925},
- {{sHTML_S_Xi}, 926},
- {{sHTML_S_Omicron}, 927},
- {{sHTML_S_Pi}, 928},
- {{sHTML_S_Rho}, 929},
- {{sHTML_S_Sigma}, 931},
- {{sHTML_S_Tau}, 932},
- {{sHTML_S_Upsilon}, 933},
- {{sHTML_S_Phi}, 934},
- {{sHTML_S_Chi}, 935},
- {{sHTML_S_Psi}, 936},
- {{sHTML_S_Omega}, 937},
- {{sHTML_S_alpha}, 945},
- {{sHTML_S_beta}, 946},
- {{sHTML_S_gamma}, 947},
- {{sHTML_S_delta}, 948},
- {{sHTML_S_epsilon}, 949},
- {{sHTML_S_zeta}, 950},
- {{sHTML_S_eta}, 951},
- {{sHTML_S_theta}, 952},
- {{sHTML_S_iota}, 953},
- {{sHTML_S_kappa}, 954},
- {{sHTML_S_lambda}, 955},
- {{sHTML_S_mu}, 956},
- {{sHTML_S_nu}, 957},
- {{sHTML_S_xi}, 958},
- {{sHTML_S_omicron}, 959},
- {{sHTML_S_pi}, 960},
- {{sHTML_S_rho}, 961},
- {{sHTML_S_sigmaf}, 962},
- {{sHTML_S_sigma}, 963},
- {{sHTML_S_tau}, 964},
- {{sHTML_S_upsilon}, 965},
- {{sHTML_S_phi}, 966},
- {{sHTML_S_chi}, 967},
- {{sHTML_S_psi}, 968},
- {{sHTML_S_omega}, 969},
- {{sHTML_S_thetasym}, 977},
- {{sHTML_S_upsih}, 978},
- {{sHTML_S_piv}, 982},
- {{sHTML_S_ensp}, 8194},
- {{sHTML_S_emsp}, 8195},
- {{sHTML_S_thinsp}, 8201},
- {{sHTML_S_zwnj}, 8204},
- {{sHTML_S_zwj}, 8205},
- {{sHTML_S_lrm}, 8206},
- {{sHTML_S_rlm}, 8207},
- {{sHTML_S_ndash}, 8211},
- {{sHTML_S_mdash}, 8212},
- {{sHTML_S_lsquo}, 8216},
- {{sHTML_S_rsquo}, 8217},
- {{sHTML_S_sbquo}, 8218},
- {{sHTML_S_ldquo}, 8220},
- {{sHTML_S_rdquo}, 8221},
- {{sHTML_S_bdquo}, 8222},
- {{sHTML_S_dagger}, 8224},
- {{sHTML_S_Dagger}, 8225},
- {{sHTML_S_bull}, 8226},
- {{sHTML_S_hellip}, 8230},
- {{sHTML_S_permil}, 8240},
- {{sHTML_S_prime}, 8242},
- {{sHTML_S_Prime}, 8243},
- {{sHTML_S_lsaquo}, 8249},
- {{sHTML_S_rsaquo}, 8250},
- {{sHTML_S_oline}, 8254},
- {{sHTML_S_frasl}, 8260},
- {{sHTML_S_euro}, 8364},
- {{sHTML_S_image}, 8465},
- {{sHTML_S_weierp}, 8472},
- {{sHTML_S_real}, 8476},
- {{sHTML_S_trade}, 8482},
- {{sHTML_S_alefsym}, 8501},
- {{sHTML_S_larr}, 8592},
- {{sHTML_S_uarr}, 8593},
- {{sHTML_S_rarr}, 8594},
- {{sHTML_S_darr}, 8595},
- {{sHTML_S_harr}, 8596},
- {{sHTML_S_crarr}, 8629},
- {{sHTML_S_lArr}, 8656},
- {{sHTML_S_uArr}, 8657},
- {{sHTML_S_rArr}, 8658},
- {{sHTML_S_dArr}, 8659},
- {{sHTML_S_hArr}, 8660},
- {{sHTML_S_forall}, 8704},
- {{sHTML_S_part}, 8706},
- {{sHTML_S_exist}, 8707},
- {{sHTML_S_empty}, 8709},
- {{sHTML_S_nabla}, 8711},
- {{sHTML_S_isin}, 8712},
- {{sHTML_S_notin}, 8713},
- {{sHTML_S_ni}, 8715},
- {{sHTML_S_prod}, 8719},
- {{sHTML_S_sum}, 8721},
- {{sHTML_S_minus}, 8722},
- {{sHTML_S_lowast}, 8727},
- {{sHTML_S_radic}, 8730},
- {{sHTML_S_prop}, 8733},
- {{sHTML_S_infin}, 8734},
- {{sHTML_S_ang}, 8736},
- {{sHTML_S_and}, 8743},
- {{sHTML_S_or}, 8744},
- {{sHTML_S_cap}, 8745},
- {{sHTML_S_cup}, 8746},
- {{sHTML_S_int}, 8747},
- {{sHTML_S_there4}, 8756},
- {{sHTML_S_sim}, 8764},
- {{sHTML_S_cong}, 8773},
- {{sHTML_S_asymp}, 8776},
- {{sHTML_S_ne}, 8800},
- {{sHTML_S_equiv}, 8801},
- {{sHTML_S_le}, 8804},
- {{sHTML_S_ge}, 8805},
- {{sHTML_S_sub}, 8834},
- {{sHTML_S_sup}, 8835},
- {{sHTML_S_nsub}, 8836},
- {{sHTML_S_sube}, 8838},
- {{sHTML_S_supe}, 8839},
- {{sHTML_S_oplus}, 8853},
- {{sHTML_S_otimes}, 8855},
- {{sHTML_S_perp}, 8869},
- {{sHTML_S_sdot}, 8901},
- {{sHTML_S_lceil}, 8968},
- {{sHTML_S_rceil}, 8969},
- {{sHTML_S_lfloor}, 8970},
- {{sHTML_S_rfloor}, 8971},
- {{sHTML_S_lang}, 9001},
- {{sHTML_S_rang}, 9002},
- {{sHTML_S_loz}, 9674},
- {{sHTML_S_spades}, 9824},
- {{sHTML_S_clubs}, 9827},
- {{sHTML_S_hearts}, 9829},
- {{sHTML_S_diams}, 9830}
+ {{OOO_STRING_SVTOOLS_HTML_S_OElig}, 338},
+ {{OOO_STRING_SVTOOLS_HTML_S_oelig}, 339},
+ {{OOO_STRING_SVTOOLS_HTML_S_Scaron}, 352},
+ {{OOO_STRING_SVTOOLS_HTML_S_scaron}, 353},
+ {{OOO_STRING_SVTOOLS_HTML_S_Yuml}, 376},
+ {{OOO_STRING_SVTOOLS_HTML_S_fnof}, 402},
+ {{OOO_STRING_SVTOOLS_HTML_S_circ}, 710},
+ {{OOO_STRING_SVTOOLS_HTML_S_tilde}, 732},
+ {{OOO_STRING_SVTOOLS_HTML_S_Alpha}, 913},
+ {{OOO_STRING_SVTOOLS_HTML_S_Beta}, 914},
+ {{OOO_STRING_SVTOOLS_HTML_S_Gamma}, 915},
+ {{OOO_STRING_SVTOOLS_HTML_S_Delta}, 916},
+ {{OOO_STRING_SVTOOLS_HTML_S_Epsilon}, 917},
+ {{OOO_STRING_SVTOOLS_HTML_S_Zeta}, 918},
+ {{OOO_STRING_SVTOOLS_HTML_S_Eta}, 919},
+ {{OOO_STRING_SVTOOLS_HTML_S_Theta}, 920},
+ {{OOO_STRING_SVTOOLS_HTML_S_Iota}, 921},
+ {{OOO_STRING_SVTOOLS_HTML_S_Kappa}, 922},
+ {{OOO_STRING_SVTOOLS_HTML_S_Lambda}, 923},
+ {{OOO_STRING_SVTOOLS_HTML_S_Mu}, 924},
+ {{OOO_STRING_SVTOOLS_HTML_S_Nu}, 925},
+ {{OOO_STRING_SVTOOLS_HTML_S_Xi}, 926},
+ {{OOO_STRING_SVTOOLS_HTML_S_Omicron}, 927},
+ {{OOO_STRING_SVTOOLS_HTML_S_Pi}, 928},
+ {{OOO_STRING_SVTOOLS_HTML_S_Rho}, 929},
+ {{OOO_STRING_SVTOOLS_HTML_S_Sigma}, 931},
+ {{OOO_STRING_SVTOOLS_HTML_S_Tau}, 932},
+ {{OOO_STRING_SVTOOLS_HTML_S_Upsilon}, 933},
+ {{OOO_STRING_SVTOOLS_HTML_S_Phi}, 934},
+ {{OOO_STRING_SVTOOLS_HTML_S_Chi}, 935},
+ {{OOO_STRING_SVTOOLS_HTML_S_Psi}, 936},
+ {{OOO_STRING_SVTOOLS_HTML_S_Omega}, 937},
+ {{OOO_STRING_SVTOOLS_HTML_S_alpha}, 945},
+ {{OOO_STRING_SVTOOLS_HTML_S_beta}, 946},
+ {{OOO_STRING_SVTOOLS_HTML_S_gamma}, 947},
+ {{OOO_STRING_SVTOOLS_HTML_S_delta}, 948},
+ {{OOO_STRING_SVTOOLS_HTML_S_epsilon}, 949},
+ {{OOO_STRING_SVTOOLS_HTML_S_zeta}, 950},
+ {{OOO_STRING_SVTOOLS_HTML_S_eta}, 951},
+ {{OOO_STRING_SVTOOLS_HTML_S_theta}, 952},
+ {{OOO_STRING_SVTOOLS_HTML_S_iota}, 953},
+ {{OOO_STRING_SVTOOLS_HTML_S_kappa}, 954},
+ {{OOO_STRING_SVTOOLS_HTML_S_lambda}, 955},
+ {{OOO_STRING_SVTOOLS_HTML_S_mu}, 956},
+ {{OOO_STRING_SVTOOLS_HTML_S_nu}, 957},
+ {{OOO_STRING_SVTOOLS_HTML_S_xi}, 958},
+ {{OOO_STRING_SVTOOLS_HTML_S_omicron}, 959},
+ {{OOO_STRING_SVTOOLS_HTML_S_pi}, 960},
+ {{OOO_STRING_SVTOOLS_HTML_S_rho}, 961},
+ {{OOO_STRING_SVTOOLS_HTML_S_sigmaf}, 962},
+ {{OOO_STRING_SVTOOLS_HTML_S_sigma}, 963},
+ {{OOO_STRING_SVTOOLS_HTML_S_tau}, 964},
+ {{OOO_STRING_SVTOOLS_HTML_S_upsilon}, 965},
+ {{OOO_STRING_SVTOOLS_HTML_S_phi}, 966},
+ {{OOO_STRING_SVTOOLS_HTML_S_chi}, 967},
+ {{OOO_STRING_SVTOOLS_HTML_S_psi}, 968},
+ {{OOO_STRING_SVTOOLS_HTML_S_omega}, 969},
+ {{OOO_STRING_SVTOOLS_HTML_S_thetasym}, 977},
+ {{OOO_STRING_SVTOOLS_HTML_S_upsih}, 978},
+ {{OOO_STRING_SVTOOLS_HTML_S_piv}, 982},
+ {{OOO_STRING_SVTOOLS_HTML_S_ensp}, 8194},
+ {{OOO_STRING_SVTOOLS_HTML_S_emsp}, 8195},
+ {{OOO_STRING_SVTOOLS_HTML_S_thinsp}, 8201},
+ {{OOO_STRING_SVTOOLS_HTML_S_zwnj}, 8204},
+ {{OOO_STRING_SVTOOLS_HTML_S_zwj}, 8205},
+ {{OOO_STRING_SVTOOLS_HTML_S_lrm}, 8206},
+ {{OOO_STRING_SVTOOLS_HTML_S_rlm}, 8207},
+ {{OOO_STRING_SVTOOLS_HTML_S_ndash}, 8211},
+ {{OOO_STRING_SVTOOLS_HTML_S_mdash}, 8212},
+ {{OOO_STRING_SVTOOLS_HTML_S_lsquo}, 8216},
+ {{OOO_STRING_SVTOOLS_HTML_S_rsquo}, 8217},
+ {{OOO_STRING_SVTOOLS_HTML_S_sbquo}, 8218},
+ {{OOO_STRING_SVTOOLS_HTML_S_ldquo}, 8220},
+ {{OOO_STRING_SVTOOLS_HTML_S_rdquo}, 8221},
+ {{OOO_STRING_SVTOOLS_HTML_S_bdquo}, 8222},
+ {{OOO_STRING_SVTOOLS_HTML_S_dagger}, 8224},
+ {{OOO_STRING_SVTOOLS_HTML_S_Dagger}, 8225},
+ {{OOO_STRING_SVTOOLS_HTML_S_bull}, 8226},
+ {{OOO_STRING_SVTOOLS_HTML_S_hellip}, 8230},
+ {{OOO_STRING_SVTOOLS_HTML_S_permil}, 8240},
+ {{OOO_STRING_SVTOOLS_HTML_S_prime}, 8242},
+ {{OOO_STRING_SVTOOLS_HTML_S_Prime}, 8243},
+ {{OOO_STRING_SVTOOLS_HTML_S_lsaquo}, 8249},
+ {{OOO_STRING_SVTOOLS_HTML_S_rsaquo}, 8250},
+ {{OOO_STRING_SVTOOLS_HTML_S_oline}, 8254},
+ {{OOO_STRING_SVTOOLS_HTML_S_frasl}, 8260},
+ {{OOO_STRING_SVTOOLS_HTML_S_euro}, 8364},
+ {{OOO_STRING_SVTOOLS_HTML_S_image}, 8465},
+ {{OOO_STRING_SVTOOLS_HTML_S_weierp}, 8472},
+ {{OOO_STRING_SVTOOLS_HTML_S_real}, 8476},
+ {{OOO_STRING_SVTOOLS_HTML_S_trade}, 8482},
+ {{OOO_STRING_SVTOOLS_HTML_S_alefsym}, 8501},
+ {{OOO_STRING_SVTOOLS_HTML_S_larr}, 8592},
+ {{OOO_STRING_SVTOOLS_HTML_S_uarr}, 8593},
+ {{OOO_STRING_SVTOOLS_HTML_S_rarr}, 8594},
+ {{OOO_STRING_SVTOOLS_HTML_S_darr}, 8595},
+ {{OOO_STRING_SVTOOLS_HTML_S_harr}, 8596},
+ {{OOO_STRING_SVTOOLS_HTML_S_crarr}, 8629},
+ {{OOO_STRING_SVTOOLS_HTML_S_lArr}, 8656},
+ {{OOO_STRING_SVTOOLS_HTML_S_uArr}, 8657},
+ {{OOO_STRING_SVTOOLS_HTML_S_rArr}, 8658},
+ {{OOO_STRING_SVTOOLS_HTML_S_dArr}, 8659},
+ {{OOO_STRING_SVTOOLS_HTML_S_hArr}, 8660},
+ {{OOO_STRING_SVTOOLS_HTML_S_forall}, 8704},
+ {{OOO_STRING_SVTOOLS_HTML_S_part}, 8706},
+ {{OOO_STRING_SVTOOLS_HTML_S_exist}, 8707},
+ {{OOO_STRING_SVTOOLS_HTML_S_empty}, 8709},
+ {{OOO_STRING_SVTOOLS_HTML_S_nabla}, 8711},
+ {{OOO_STRING_SVTOOLS_HTML_S_isin}, 8712},
+ {{OOO_STRING_SVTOOLS_HTML_S_notin}, 8713},
+ {{OOO_STRING_SVTOOLS_HTML_S_ni}, 8715},
+ {{OOO_STRING_SVTOOLS_HTML_S_prod}, 8719},
+ {{OOO_STRING_SVTOOLS_HTML_S_sum}, 8721},
+ {{OOO_STRING_SVTOOLS_HTML_S_minus}, 8722},
+ {{OOO_STRING_SVTOOLS_HTML_S_lowast}, 8727},
+ {{OOO_STRING_SVTOOLS_HTML_S_radic}, 8730},
+ {{OOO_STRING_SVTOOLS_HTML_S_prop}, 8733},
+ {{OOO_STRING_SVTOOLS_HTML_S_infin}, 8734},
+ {{OOO_STRING_SVTOOLS_HTML_S_ang}, 8736},
+ {{OOO_STRING_SVTOOLS_HTML_S_and}, 8743},
+ {{OOO_STRING_SVTOOLS_HTML_S_or}, 8744},
+ {{OOO_STRING_SVTOOLS_HTML_S_cap}, 8745},
+ {{OOO_STRING_SVTOOLS_HTML_S_cup}, 8746},
+ {{OOO_STRING_SVTOOLS_HTML_S_int}, 8747},
+ {{OOO_STRING_SVTOOLS_HTML_S_there4}, 8756},
+ {{OOO_STRING_SVTOOLS_HTML_S_sim}, 8764},
+ {{OOO_STRING_SVTOOLS_HTML_S_cong}, 8773},
+ {{OOO_STRING_SVTOOLS_HTML_S_asymp}, 8776},
+ {{OOO_STRING_SVTOOLS_HTML_S_ne}, 8800},
+ {{OOO_STRING_SVTOOLS_HTML_S_equiv}, 8801},
+ {{OOO_STRING_SVTOOLS_HTML_S_le}, 8804},
+ {{OOO_STRING_SVTOOLS_HTML_S_ge}, 8805},
+ {{OOO_STRING_SVTOOLS_HTML_S_sub}, 8834},
+ {{OOO_STRING_SVTOOLS_HTML_S_sup}, 8835},
+ {{OOO_STRING_SVTOOLS_HTML_S_nsub}, 8836},
+ {{OOO_STRING_SVTOOLS_HTML_S_sube}, 8838},
+ {{OOO_STRING_SVTOOLS_HTML_S_supe}, 8839},
+ {{OOO_STRING_SVTOOLS_HTML_S_oplus}, 8853},
+ {{OOO_STRING_SVTOOLS_HTML_S_otimes}, 8855},
+ {{OOO_STRING_SVTOOLS_HTML_S_perp}, 8869},
+ {{OOO_STRING_SVTOOLS_HTML_S_sdot}, 8901},
+ {{OOO_STRING_SVTOOLS_HTML_S_lceil}, 8968},
+ {{OOO_STRING_SVTOOLS_HTML_S_rceil}, 8969},
+ {{OOO_STRING_SVTOOLS_HTML_S_lfloor}, 8970},
+ {{OOO_STRING_SVTOOLS_HTML_S_rfloor}, 8971},
+ {{OOO_STRING_SVTOOLS_HTML_S_lang}, 9001},
+ {{OOO_STRING_SVTOOLS_HTML_S_rang}, 9002},
+ {{OOO_STRING_SVTOOLS_HTML_S_loz}, 9674},
+ {{OOO_STRING_SVTOOLS_HTML_S_spades}, 9824},
+ {{OOO_STRING_SVTOOLS_HTML_S_clubs}, 9827},
+ {{OOO_STRING_SVTOOLS_HTML_S_hearts}, 9829},
+ {{OOO_STRING_SVTOOLS_HTML_S_diams}, 9830}
};
extern "C"
@@ -775,203 +628,203 @@ static int __FAR_DATA bSortOptionKeyWords = FALSE;
static HTML_TokenEntry __FAR_DATA aHTMLOptionTab[] = {
// Attribute ohne Wert
- {{sHTML_O_box}, HTML_O_BOX},
- {{sHTML_O_checked}, HTML_O_CHECKED},
- {{sHTML_O_compact}, HTML_O_COMPACT},
- {{sHTML_O_continue}, HTML_O_CONTINUE},
- {{sHTML_O_controls}, HTML_O_CONTROLS}, // IExplorer 2.0
- {{sHTML_O_declare}, HTML_O_DECLARE},
- {{sHTML_O_disabled}, HTML_O_DISABLED},
- {{sHTML_O_folded}, HTML_O_FOLDED}, // Netscape internal
- {{sHTML_O_ismap}, HTML_O_ISMAP},
- {{sHTML_O_mayscript}, HTML_O_MAYSCRIPT},
- {{sHTML_O_multiple}, HTML_O_MULTIPLE},
- {{sHTML_O_noflow}, HTML_O_NOFLOW},
- {{sHTML_O_nohref}, HTML_O_NOHREF}, // Netscape 2.0
- {{sHTML_O_noresize}, HTML_O_NORESIZE}, // Netscape 2.0
- {{sHTML_O_noshade}, HTML_O_NOSHADE}, // Netscape 2.0
- {{sHTML_O_nowrap}, HTML_O_NOWRAP},
- {{sHTML_O_plain}, HTML_O_PLAIN},
- {{sHTML_O_sdfixed}, HTML_O_SDFIXED},
- {{sHTML_O_selected}, HTML_O_SELECTED},
- {{sHTML_O_shapes}, HTML_O_SHAPES},
+ {{OOO_STRING_SVTOOLS_HTML_O_box}, HTML_O_BOX},
+ {{OOO_STRING_SVTOOLS_HTML_O_checked}, HTML_O_CHECKED},
+ {{OOO_STRING_SVTOOLS_HTML_O_compact}, HTML_O_COMPACT},
+ {{OOO_STRING_SVTOOLS_HTML_O_continue}, HTML_O_CONTINUE},
+ {{OOO_STRING_SVTOOLS_HTML_O_controls}, HTML_O_CONTROLS}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_declare}, HTML_O_DECLARE},
+ {{OOO_STRING_SVTOOLS_HTML_O_disabled}, HTML_O_DISABLED},
+ {{OOO_STRING_SVTOOLS_HTML_O_folded}, HTML_O_FOLDED}, // Netscape internal
+ {{OOO_STRING_SVTOOLS_HTML_O_ismap}, HTML_O_ISMAP},
+ {{OOO_STRING_SVTOOLS_HTML_O_mayscript}, HTML_O_MAYSCRIPT},
+ {{OOO_STRING_SVTOOLS_HTML_O_multiple}, HTML_O_MULTIPLE},
+ {{OOO_STRING_SVTOOLS_HTML_O_noflow}, HTML_O_NOFLOW},
+ {{OOO_STRING_SVTOOLS_HTML_O_nohref}, HTML_O_NOHREF}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_noresize}, HTML_O_NORESIZE}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_noshade}, HTML_O_NOSHADE}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_nowrap}, HTML_O_NOWRAP},
+ {{OOO_STRING_SVTOOLS_HTML_O_plain}, HTML_O_PLAIN},
+ {{OOO_STRING_SVTOOLS_HTML_O_sdfixed}, HTML_O_SDFIXED},
+ {{OOO_STRING_SVTOOLS_HTML_O_selected}, HTML_O_SELECTED},
+ {{OOO_STRING_SVTOOLS_HTML_O_shapes}, HTML_O_SHAPES},
// Attribute mit einem String als Wert
- {{sHTML_O_above}, HTML_O_ABOVE},
- {{sHTML_O_accept}, HTML_O_ACCEPT},
- {{sHTML_O_accesskey}, HTML_O_ACCESSKEY},
- {{sHTML_O_add_date}, HTML_O_ADD_DATE}, // Netscape internal
- {{sHTML_O_alt}, HTML_O_ALT},
- {{sHTML_O_axes}, HTML_O_AXES},
- {{sHTML_O_axis}, HTML_O_AXIS},
- {{sHTML_O_below}, HTML_O_BELOW},
- {{sHTML_O_char}, HTML_O_CHAR}, // HTML 3 Table Model Draft
- {{sHTML_O_class}, HTML_O_CLASS},
- {{sHTML_O_clip}, HTML_O_CLIP},
- {{sHTML_O_code}, HTML_O_CODE}, // HotJava
- {{sHTML_O_codetype}, HTML_O_CODETYPE},
- {{sHTML_O_colspec}, HTML_O_COLSPEC},
- {{sHTML_O_content}, HTML_O_CONTENT},
- {{sHTML_O_coords}, HTML_O_COORDS}, // Netscape 2.0
- {{sHTML_O_dp}, HTML_O_DP},
- {{sHTML_O_enctype}, HTML_O_ENCTYPE},
- {{sHTML_O_error}, HTML_O_ERROR},
- {{sHTML_O_face}, HTML_O_FACE}, // IExplorer 2.0
- {{sHTML_O_frameborder}, HTML_O_FRAMEBORDER}, // IExplorer 3.0
- {{sHTML_O_httpequiv}, HTML_O_HTTPEQUIV},
- {{sHTML_O_language}, HTML_O_LANGUAGE}, // JavaScript
- {{sHTML_O_last_modified}, HTML_O_LAST_MODIFIED}, // Netscape internal
- {{sHTML_O_last_visit}, HTML_O_LAST_VISIT}, // Netscape internal
- {{sHTML_O_md}, HTML_O_MD},
- {{sHTML_O_n}, HTML_O_N},
- {{sHTML_O_name}, HTML_O_NAME},
- {{sHTML_O_notation}, HTML_O_NOTATION},
- {{sHTML_O_prompt}, HTML_O_PROMPT},
- {{sHTML_O_shape}, HTML_O_SHAPE},
- {{sHTML_O_standby}, HTML_O_STANDBY},
- {{sHTML_O_style}, HTML_O_STYLE},
- {{sHTML_O_title}, HTML_O_TITLE},
- {{sHTML_O_value}, HTML_O_VALUE},
- {{sHTML_O_SDval}, HTML_O_SDVAL}, // StarDiv NumberValue
- {{sHTML_O_SDnum}, HTML_O_SDNUM}, // StarDiv NumberFormat
- {{sHTML_O_sdlibrary}, HTML_O_SDLIBRARY},
- {{sHTML_O_sdmodule}, HTML_O_SDMODULE},
+ {{OOO_STRING_SVTOOLS_HTML_O_above}, HTML_O_ABOVE},
+ {{OOO_STRING_SVTOOLS_HTML_O_accept}, HTML_O_ACCEPT},
+ {{OOO_STRING_SVTOOLS_HTML_O_accesskey}, HTML_O_ACCESSKEY},
+ {{OOO_STRING_SVTOOLS_HTML_O_add_date}, HTML_O_ADD_DATE}, // Netscape internal
+ {{OOO_STRING_SVTOOLS_HTML_O_alt}, HTML_O_ALT},
+ {{OOO_STRING_SVTOOLS_HTML_O_axes}, HTML_O_AXES},
+ {{OOO_STRING_SVTOOLS_HTML_O_axis}, HTML_O_AXIS},
+ {{OOO_STRING_SVTOOLS_HTML_O_below}, HTML_O_BELOW},
+ {{OOO_STRING_SVTOOLS_HTML_O_char}, HTML_O_CHAR}, // HTML 3 Table Model Draft
+ {{OOO_STRING_SVTOOLS_HTML_O_class}, HTML_O_CLASS},
+ {{OOO_STRING_SVTOOLS_HTML_O_clip}, HTML_O_CLIP},
+ {{OOO_STRING_SVTOOLS_HTML_O_code}, HTML_O_CODE}, // HotJava
+ {{OOO_STRING_SVTOOLS_HTML_O_codetype}, HTML_O_CODETYPE},
+ {{OOO_STRING_SVTOOLS_HTML_O_colspec}, HTML_O_COLSPEC},
+ {{OOO_STRING_SVTOOLS_HTML_O_content}, HTML_O_CONTENT},
+ {{OOO_STRING_SVTOOLS_HTML_O_coords}, HTML_O_COORDS}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_dp}, HTML_O_DP},
+ {{OOO_STRING_SVTOOLS_HTML_O_enctype}, HTML_O_ENCTYPE},
+ {{OOO_STRING_SVTOOLS_HTML_O_error}, HTML_O_ERROR},
+ {{OOO_STRING_SVTOOLS_HTML_O_face}, HTML_O_FACE}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_frameborder}, HTML_O_FRAMEBORDER}, // IExplorer 3.0
+ {{OOO_STRING_SVTOOLS_HTML_O_httpequiv}, HTML_O_HTTPEQUIV},
+ {{OOO_STRING_SVTOOLS_HTML_O_language}, HTML_O_LANGUAGE}, // JavaScript
+ {{OOO_STRING_SVTOOLS_HTML_O_last_modified}, HTML_O_LAST_MODIFIED}, // Netscape internal
+ {{OOO_STRING_SVTOOLS_HTML_O_last_visit}, HTML_O_LAST_VISIT}, // Netscape internal
+ {{OOO_STRING_SVTOOLS_HTML_O_md}, HTML_O_MD},
+ {{OOO_STRING_SVTOOLS_HTML_O_n}, HTML_O_N},
+ {{OOO_STRING_SVTOOLS_HTML_O_name}, HTML_O_NAME},
+ {{OOO_STRING_SVTOOLS_HTML_O_notation}, HTML_O_NOTATION},
+ {{OOO_STRING_SVTOOLS_HTML_O_prompt}, HTML_O_PROMPT},
+ {{OOO_STRING_SVTOOLS_HTML_O_shape}, HTML_O_SHAPE},
+ {{OOO_STRING_SVTOOLS_HTML_O_standby}, HTML_O_STANDBY},
+ {{OOO_STRING_SVTOOLS_HTML_O_style}, HTML_O_STYLE},
+ {{OOO_STRING_SVTOOLS_HTML_O_title}, HTML_O_TITLE},
+ {{OOO_STRING_SVTOOLS_HTML_O_value}, HTML_O_VALUE},
+ {{OOO_STRING_SVTOOLS_HTML_O_SDval}, HTML_O_SDVAL}, // StarDiv NumberValue
+ {{OOO_STRING_SVTOOLS_HTML_O_SDnum}, HTML_O_SDNUM}, // StarDiv NumberFormat
+ {{OOO_STRING_SVTOOLS_HTML_O_sdlibrary}, HTML_O_SDLIBRARY},
+ {{OOO_STRING_SVTOOLS_HTML_O_sdmodule}, HTML_O_SDMODULE},
// Attribute mit einem SGML-Identifier als Wert
- {{sHTML_O_from}, HTML_O_FROM},
- {{sHTML_O_id}, HTML_O_ID},
- {{sHTML_O_target}, HTML_O_TARGET}, // Netscape 2.0
- {{sHTML_O_to}, HTML_O_TO},
- {{sHTML_O_until}, HTML_O_UNTIL},
+ {{OOO_STRING_SVTOOLS_HTML_O_from}, HTML_O_FROM},
+ {{OOO_STRING_SVTOOLS_HTML_O_id}, HTML_O_ID},
+ {{OOO_STRING_SVTOOLS_HTML_O_target}, HTML_O_TARGET}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_to}, HTML_O_TO},
+ {{OOO_STRING_SVTOOLS_HTML_O_until}, HTML_O_UNTIL},
// Attribute mit einem URI als Wert
- {{sHTML_O_action}, HTML_O_ACTION},
- {{sHTML_O_archive}, HTML_O_ARCHIVE},
- {{sHTML_O_background}, HTML_O_BACKGROUND},
- {{sHTML_O_classid}, HTML_O_CLASSID},
- {{sHTML_O_codebase}, HTML_O_CODEBASE}, // HotJava
- {{sHTML_O_data}, HTML_O_DATA},
- {{sHTML_O_dynsrc}, HTML_O_DYNSRC}, // IExplorer 3.0b1
- {{sHTML_O_dynsync}, HTML_O_DYNSYNC}, // IExplorer 2.0
- {{sHTML_O_imagemap}, HTML_O_IMAGEMAP},
- {{sHTML_O_href}, HTML_O_HREF},
- {{sHTML_O_lowsrc}, HTML_O_LOWSRC}, // Netscape 3.0
- {{sHTML_O_script}, HTML_O_SCRIPT},
- {{sHTML_O_src}, HTML_O_SRC},
- {{sHTML_O_usemap}, HTML_O_USEMAP}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_action}, HTML_O_ACTION},
+ {{OOO_STRING_SVTOOLS_HTML_O_archive}, HTML_O_ARCHIVE},
+ {{OOO_STRING_SVTOOLS_HTML_O_background}, HTML_O_BACKGROUND},
+ {{OOO_STRING_SVTOOLS_HTML_O_classid}, HTML_O_CLASSID},
+ {{OOO_STRING_SVTOOLS_HTML_O_codebase}, HTML_O_CODEBASE}, // HotJava
+ {{OOO_STRING_SVTOOLS_HTML_O_data}, HTML_O_DATA},
+ {{OOO_STRING_SVTOOLS_HTML_O_dynsrc}, HTML_O_DYNSRC}, // IExplorer 3.0b1
+ {{OOO_STRING_SVTOOLS_HTML_O_dynsync}, HTML_O_DYNSYNC}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_imagemap}, HTML_O_IMAGEMAP},
+ {{OOO_STRING_SVTOOLS_HTML_O_href}, HTML_O_HREF},
+ {{OOO_STRING_SVTOOLS_HTML_O_lowsrc}, HTML_O_LOWSRC}, // Netscape 3.0
+ {{OOO_STRING_SVTOOLS_HTML_O_script}, HTML_O_SCRIPT},
+ {{OOO_STRING_SVTOOLS_HTML_O_src}, HTML_O_SRC},
+ {{OOO_STRING_SVTOOLS_HTML_O_usemap}, HTML_O_USEMAP}, // Netscape 2.0
// Attribute mit Entity-Namen als Wert
- {{sHTML_O_dingbat}, HTML_O_DINGBAT},
- {{sHTML_O_sym}, HTML_O_SYM},
+ {{OOO_STRING_SVTOOLS_HTML_O_dingbat}, HTML_O_DINGBAT},
+ {{OOO_STRING_SVTOOLS_HTML_O_sym}, HTML_O_SYM},
// Attribute mit einer Farbe als Wert (alle Netscape)
- {{sHTML_O_alink}, HTML_O_ALINK},
- {{sHTML_O_bgcolor}, HTML_O_BGCOLOR},
- {{sHTML_O_bordercolor}, HTML_O_BORDERCOLOR}, // IExplorer 2.0
- {{sHTML_O_bordercolorlight}, HTML_O_BORDERCOLORLIGHT}, // IExplorer 2.0
- {{sHTML_O_bordercolordark}, HTML_O_BORDERCOLORDARK}, // IExplorer 2.0
- {{sHTML_O_color}, HTML_O_COLOR},
- {{sHTML_O_link}, HTML_O_LINK},
- {{sHTML_O_text}, HTML_O_TEXT},
- {{sHTML_O_vlink}, HTML_O_VLINK},
+ {{OOO_STRING_SVTOOLS_HTML_O_alink}, HTML_O_ALINK},
+ {{OOO_STRING_SVTOOLS_HTML_O_bgcolor}, HTML_O_BGCOLOR},
+ {{OOO_STRING_SVTOOLS_HTML_O_bordercolor}, HTML_O_BORDERCOLOR}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_bordercolorlight}, HTML_O_BORDERCOLORLIGHT}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_bordercolordark}, HTML_O_BORDERCOLORDARK}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_color}, HTML_O_COLOR},
+ {{OOO_STRING_SVTOOLS_HTML_O_link}, HTML_O_LINK},
+ {{OOO_STRING_SVTOOLS_HTML_O_text}, HTML_O_TEXT},
+ {{OOO_STRING_SVTOOLS_HTML_O_vlink}, HTML_O_VLINK},
// Attribute mit einem numerischen Wert
- {{sHTML_O_border}, HTML_O_BORDER},
- {{sHTML_O_cellspacing},HTML_O_CELLSPACING}, // HTML 3 Table Model Draft
- {{sHTML_O_cellpadding},HTML_O_CELLPADDING}, // HTML 3 Table Model Draft
- {{sHTML_O_charoff}, HTML_O_CHAROFF}, // HTML 3 Table Model Draft
- {{sHTML_O_colspan}, HTML_O_COLSPAN},
- {{sHTML_O_framespacing}, HTML_O_FRAMESPACING}, // IExplorer 3.0
- {{sHTML_O_gutter}, HTML_O_GUTTER}, // Netscape 3.0b5
- {{sHTML_O_indent}, HTML_O_INDENT},
- {{sHTML_O_height}, HTML_O_HEIGHT},
- {{sHTML_O_hspace}, HTML_O_HSPACE}, // Netscape
- {{sHTML_O_left}, HTML_O_LEFT},
- {{sHTML_O_leftmargin}, HTML_O_LEFTMARGIN}, // IExplorer 2.0
- {{sHTML_O_loop}, HTML_O_LOOP}, // IExplorer 2.0
- {{sHTML_O_marginheight},HTML_O_MARGINHEIGHT}, // Netscape 2.0
- {{sHTML_O_marginwidth},HTML_O_MARGINWIDTH}, // Netscape 2.0
- {{sHTML_O_max}, HTML_O_MAX},
- {{sHTML_O_maxlength}, HTML_O_MAXLENGTH},
- {{sHTML_O_min}, HTML_O_MIN},
- {{sHTML_O_pagex}, HTML_O_PAGEX},
- {{sHTML_O_pagey}, HTML_O_PAGEY},
- {{sHTML_O_pointsize}, HTML_O_POINTSIZE},
- {{sHTML_O_rowspan}, HTML_O_ROWSPAN},
- {{sHTML_O_scrollamount}, HTML_O_SCROLLAMOUNT}, // IExplorer 2.0
- {{sHTML_O_scrolldelay}, HTML_O_SCROLLDELAY}, // IExplorer 2.0
- {{sHTML_O_seqnum}, HTML_O_SEQNUM},
- {{sHTML_O_skip}, HTML_O_SKIP},
- {{sHTML_O_span}, HTML_O_SPAN}, // HTML 3 Table Model Draft
- {{sHTML_O_tabindex}, HTML_O_TABINDEX},
- {{sHTML_O_top}, HTML_O_TOP},
- {{sHTML_O_topmargin}, HTML_O_TOPMARGIN}, // IExplorer 2.0
- {{sHTML_O_vspace}, HTML_O_VSPACE}, // Netscape
- {{sHTML_O_weight}, HTML_O_WEIGHT},
- {{sHTML_O_width}, HTML_O_WIDTH},
- {{sHTML_O_x}, HTML_O_X},
- {{sHTML_O_y}, HTML_O_Y},
- {{sHTML_O_zindex}, HTML_O_ZINDEX},
+ {{OOO_STRING_SVTOOLS_HTML_O_border}, HTML_O_BORDER},
+ {{OOO_STRING_SVTOOLS_HTML_O_cellspacing},HTML_O_CELLSPACING}, // HTML 3 Table Model Draft
+ {{OOO_STRING_SVTOOLS_HTML_O_cellpadding},HTML_O_CELLPADDING}, // HTML 3 Table Model Draft
+ {{OOO_STRING_SVTOOLS_HTML_O_charoff}, HTML_O_CHAROFF}, // HTML 3 Table Model Draft
+ {{OOO_STRING_SVTOOLS_HTML_O_colspan}, HTML_O_COLSPAN},
+ {{OOO_STRING_SVTOOLS_HTML_O_framespacing}, HTML_O_FRAMESPACING}, // IExplorer 3.0
+ {{OOO_STRING_SVTOOLS_HTML_O_gutter}, HTML_O_GUTTER}, // Netscape 3.0b5
+ {{OOO_STRING_SVTOOLS_HTML_O_indent}, HTML_O_INDENT},
+ {{OOO_STRING_SVTOOLS_HTML_O_height}, HTML_O_HEIGHT},
+ {{OOO_STRING_SVTOOLS_HTML_O_hspace}, HTML_O_HSPACE}, // Netscape
+ {{OOO_STRING_SVTOOLS_HTML_O_left}, HTML_O_LEFT},
+ {{OOO_STRING_SVTOOLS_HTML_O_leftmargin}, HTML_O_LEFTMARGIN}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_loop}, HTML_O_LOOP}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_marginheight},HTML_O_MARGINHEIGHT}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_marginwidth},HTML_O_MARGINWIDTH}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_max}, HTML_O_MAX},
+ {{OOO_STRING_SVTOOLS_HTML_O_maxlength}, HTML_O_MAXLENGTH},
+ {{OOO_STRING_SVTOOLS_HTML_O_min}, HTML_O_MIN},
+ {{OOO_STRING_SVTOOLS_HTML_O_pagex}, HTML_O_PAGEX},
+ {{OOO_STRING_SVTOOLS_HTML_O_pagey}, HTML_O_PAGEY},
+ {{OOO_STRING_SVTOOLS_HTML_O_pointsize}, HTML_O_POINTSIZE},
+ {{OOO_STRING_SVTOOLS_HTML_O_rowspan}, HTML_O_ROWSPAN},
+ {{OOO_STRING_SVTOOLS_HTML_O_scrollamount}, HTML_O_SCROLLAMOUNT}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_scrolldelay}, HTML_O_SCROLLDELAY}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_seqnum}, HTML_O_SEQNUM},
+ {{OOO_STRING_SVTOOLS_HTML_O_skip}, HTML_O_SKIP},
+ {{OOO_STRING_SVTOOLS_HTML_O_span}, HTML_O_SPAN}, // HTML 3 Table Model Draft
+ {{OOO_STRING_SVTOOLS_HTML_O_tabindex}, HTML_O_TABINDEX},
+ {{OOO_STRING_SVTOOLS_HTML_O_top}, HTML_O_TOP},
+ {{OOO_STRING_SVTOOLS_HTML_O_topmargin}, HTML_O_TOPMARGIN}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_vspace}, HTML_O_VSPACE}, // Netscape
+ {{OOO_STRING_SVTOOLS_HTML_O_weight}, HTML_O_WEIGHT},
+ {{OOO_STRING_SVTOOLS_HTML_O_width}, HTML_O_WIDTH},
+ {{OOO_STRING_SVTOOLS_HTML_O_x}, HTML_O_X},
+ {{OOO_STRING_SVTOOLS_HTML_O_y}, HTML_O_Y},
+ {{OOO_STRING_SVTOOLS_HTML_O_zindex}, HTML_O_ZINDEX},
// Attribute mit Enum-Werten
- {{sHTML_O_bgproperties}, HTML_O_BGPROPERTIES}, // IExplorer 2.0
- {{sHTML_O_behavior}, HTML_O_BEHAVIOR}, // IExplorer 2.0
- {{sHTML_O_clear}, HTML_O_CLEAR},
- {{sHTML_O_dir}, HTML_O_DIR}, // HTML 3 Table Model Draft
- {{sHTML_O_direction}, HTML_O_DIRECTION}, // IExplorer 2.0
- {{sHTML_O_format}, HTML_O_FORMAT},
- {{sHTML_O_frame}, HTML_O_FRAME}, // HTML 3 Table Model Draft
- {{sHTML_O_lang}, HTML_O_LANG},
- {{sHTML_O_method}, HTML_O_METHOD},
- {{sHTML_O_palette}, HTML_O_PALETTE},
- {{sHTML_O_rel}, HTML_O_REL},
- {{sHTML_O_rev}, HTML_O_REV},
- {{sHTML_O_rules}, HTML_O_RULES}, // HTML 3 Table Model Draft
- {{sHTML_O_scrolling}, HTML_O_SCROLLING}, // Netscape 2.0
- {{sHTML_O_sdreadonly}, HTML_O_SDREADONLY},
- {{sHTML_O_subtype}, HTML_O_SUBTYPE},
- {{sHTML_O_type}, HTML_O_TYPE},
- {{sHTML_O_valign}, HTML_O_VALIGN},
- {{sHTML_O_valuetype}, HTML_O_VALUETYPE},
- {{sHTML_O_wrap}, HTML_O_WRAP},
- {{sHTML_O_visibility}, HTML_O_VISIBILITY},
+ {{OOO_STRING_SVTOOLS_HTML_O_bgproperties}, HTML_O_BGPROPERTIES}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_behavior}, HTML_O_BEHAVIOR}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_clear}, HTML_O_CLEAR},
+ {{OOO_STRING_SVTOOLS_HTML_O_dir}, HTML_O_DIR}, // HTML 3 Table Model Draft
+ {{OOO_STRING_SVTOOLS_HTML_O_direction}, HTML_O_DIRECTION}, // IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_format}, HTML_O_FORMAT},
+ {{OOO_STRING_SVTOOLS_HTML_O_frame}, HTML_O_FRAME}, // HTML 3 Table Model Draft
+ {{OOO_STRING_SVTOOLS_HTML_O_lang}, HTML_O_LANG},
+ {{OOO_STRING_SVTOOLS_HTML_O_method}, HTML_O_METHOD},
+ {{OOO_STRING_SVTOOLS_HTML_O_palette}, HTML_O_PALETTE},
+ {{OOO_STRING_SVTOOLS_HTML_O_rel}, HTML_O_REL},
+ {{OOO_STRING_SVTOOLS_HTML_O_rev}, HTML_O_REV},
+ {{OOO_STRING_SVTOOLS_HTML_O_rules}, HTML_O_RULES}, // HTML 3 Table Model Draft
+ {{OOO_STRING_SVTOOLS_HTML_O_scrolling}, HTML_O_SCROLLING}, // Netscape 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_sdreadonly}, HTML_O_SDREADONLY},
+ {{OOO_STRING_SVTOOLS_HTML_O_subtype}, HTML_O_SUBTYPE},
+ {{OOO_STRING_SVTOOLS_HTML_O_type}, HTML_O_TYPE},
+ {{OOO_STRING_SVTOOLS_HTML_O_valign}, HTML_O_VALIGN},
+ {{OOO_STRING_SVTOOLS_HTML_O_valuetype}, HTML_O_VALUETYPE},
+ {{OOO_STRING_SVTOOLS_HTML_O_wrap}, HTML_O_WRAP},
+ {{OOO_STRING_SVTOOLS_HTML_O_visibility}, HTML_O_VISIBILITY},
// Attribute mit Script-Code als Wert
- {{sHTML_O_onblur}, HTML_O_ONBLUR}, // JavaScript
- {{sHTML_O_onchange}, HTML_O_ONCHANGE}, // JavaScript
- {{sHTML_O_onclick}, HTML_O_ONCLICK}, // JavaScript
- {{sHTML_O_onfocus}, HTML_O_ONFOCUS}, // JavaScript
- {{sHTML_O_onload}, HTML_O_ONLOAD}, // JavaScript
- {{sHTML_O_onmouseover}, HTML_O_ONMOUSEOVER}, // JavaScript
- {{sHTML_O_onreset}, HTML_O_ONRESET}, // JavaScript
- {{sHTML_O_onselect}, HTML_O_ONSELECT}, // JavaScript
- {{sHTML_O_onsubmit}, HTML_O_ONSUBMIT}, // JavaScript
- {{sHTML_O_onunload}, HTML_O_ONUNLOAD}, // JavaScript
- {{sHTML_O_onabort}, HTML_O_ONABORT}, // JavaScript
- {{sHTML_O_onerror}, HTML_O_ONERROR}, // JavaScript
- {{sHTML_O_onmouseout}, HTML_O_ONMOUSEOUT}, // JavaScript
-
- {{sHTML_O_SDonblur}, HTML_O_SDONBLUR}, // StarBasic
- {{sHTML_O_SDonchange}, HTML_O_SDONCHANGE}, // StarBasic
- {{sHTML_O_SDonclick}, HTML_O_SDONCLICK}, // StarBasic
- {{sHTML_O_SDonfocus}, HTML_O_SDONFOCUS}, // StarBasic
- {{sHTML_O_SDonload}, HTML_O_SDONLOAD}, // StarBasic
- {{sHTML_O_SDonmouseover}, HTML_O_SDONMOUSEOVER}, // StarBasic
- {{sHTML_O_SDonreset}, HTML_O_SDONRESET}, // StarBasic
- {{sHTML_O_SDonselect}, HTML_O_SDONSELECT}, // StarBasic
- {{sHTML_O_SDonsubmit}, HTML_O_SDONSUBMIT}, // StarBasic
- {{sHTML_O_SDonunload}, HTML_O_SDONUNLOAD}, // StarBasic
- {{sHTML_O_SDonabort}, HTML_O_SDONABORT}, // StarBasic
- {{sHTML_O_SDonerror}, HTML_O_SDONERROR}, // StarBasic
- {{sHTML_O_SDonmouseout}, HTML_O_SDONMOUSEOUT}, // StarBasic
+ {{OOO_STRING_SVTOOLS_HTML_O_onblur}, HTML_O_ONBLUR}, // JavaScript
+ {{OOO_STRING_SVTOOLS_HTML_O_onchange}, HTML_O_ONCHANGE}, // JavaScript
+ {{OOO_STRING_SVTOOLS_HTML_O_onclick}, HTML_O_ONCLICK}, // JavaScript
+ {{OOO_STRING_SVTOOLS_HTML_O_onfocus}, HTML_O_ONFOCUS}, // JavaScript
+ {{OOO_STRING_SVTOOLS_HTML_O_onload}, HTML_O_ONLOAD}, // JavaScript
+ {{OOO_STRING_SVTOOLS_HTML_O_onmouseover}, HTML_O_ONMOUSEOVER}, // JavaScript
+ {{OOO_STRING_SVTOOLS_HTML_O_onreset}, HTML_O_ONRESET}, // JavaScript
+ {{OOO_STRING_SVTOOLS_HTML_O_onselect}, HTML_O_ONSELECT}, // JavaScript
+ {{OOO_STRING_SVTOOLS_HTML_O_onsubmit}, HTML_O_ONSUBMIT}, // JavaScript
+ {{OOO_STRING_SVTOOLS_HTML_O_onunload}, HTML_O_ONUNLOAD}, // JavaScript
+ {{OOO_STRING_SVTOOLS_HTML_O_onabort}, HTML_O_ONABORT}, // JavaScript
+ {{OOO_STRING_SVTOOLS_HTML_O_onerror}, HTML_O_ONERROR}, // JavaScript
+ {{OOO_STRING_SVTOOLS_HTML_O_onmouseout}, HTML_O_ONMOUSEOUT}, // JavaScript
+
+ {{OOO_STRING_SVTOOLS_HTML_O_SDonblur}, HTML_O_SDONBLUR}, // StarBasic
+ {{OOO_STRING_SVTOOLS_HTML_O_SDonchange}, HTML_O_SDONCHANGE}, // StarBasic
+ {{OOO_STRING_SVTOOLS_HTML_O_SDonclick}, HTML_O_SDONCLICK}, // StarBasic
+ {{OOO_STRING_SVTOOLS_HTML_O_SDonfocus}, HTML_O_SDONFOCUS}, // StarBasic
+ {{OOO_STRING_SVTOOLS_HTML_O_SDonload}, HTML_O_SDONLOAD}, // StarBasic
+ {{OOO_STRING_SVTOOLS_HTML_O_SDonmouseover}, HTML_O_SDONMOUSEOVER}, // StarBasic
+ {{OOO_STRING_SVTOOLS_HTML_O_SDonreset}, HTML_O_SDONRESET}, // StarBasic
+ {{OOO_STRING_SVTOOLS_HTML_O_SDonselect}, HTML_O_SDONSELECT}, // StarBasic
+ {{OOO_STRING_SVTOOLS_HTML_O_SDonsubmit}, HTML_O_SDONSUBMIT}, // StarBasic
+ {{OOO_STRING_SVTOOLS_HTML_O_SDonunload}, HTML_O_SDONUNLOAD}, // StarBasic
+ {{OOO_STRING_SVTOOLS_HTML_O_SDonabort}, HTML_O_SDONABORT}, // StarBasic
+ {{OOO_STRING_SVTOOLS_HTML_O_SDonerror}, HTML_O_SDONERROR}, // StarBasic
+ {{OOO_STRING_SVTOOLS_HTML_O_SDonmouseout}, HTML_O_SDONMOUSEOUT}, // StarBasic
// Attribute mit Kontext-abhaengigen Werten
- {{sHTML_O_align}, HTML_O_ALIGN},
- {{sHTML_O_cols}, HTML_O_COLS}, // Netscape 2.0 vs HTML 2.0
- {{sHTML_O_rows}, HTML_O_ROWS}, // Netscape 2.0 vs HTML 2.0
- {{sHTML_O_size}, HTML_O_SIZE},
- {{sHTML_O_start}, HTML_O_START}, // Netscape 2.0 vs IExplorer 2.0
- {{sHTML_O_units}, HTML_O_UNITS}
+ {{OOO_STRING_SVTOOLS_HTML_O_align}, HTML_O_ALIGN},
+ {{OOO_STRING_SVTOOLS_HTML_O_cols}, HTML_O_COLS}, // Netscape 2.0 vs HTML 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_rows}, HTML_O_ROWS}, // Netscape 2.0 vs HTML 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_size}, HTML_O_SIZE},
+ {{OOO_STRING_SVTOOLS_HTML_O_start}, HTML_O_START}, // Netscape 2.0 vs IExplorer 2.0
+ {{OOO_STRING_SVTOOLS_HTML_O_units}, HTML_O_UNITS}
};
int GetHTMLOption( const String& rName )
@@ -1017,147 +870,152 @@ static int __FAR_DATA bSortColorKeyWords = FALSE;
#define HTML_NO_COLOR 0xffffffffUL
+// die Farbnamen werden nicht exportiert
+// Sie stammen aus "http://www.uio.no/~mnbjerke/colors_w.html"
+// und scheinen im Gegensatz zu denen aus
+// "http://www.infi.net/wwwimages/colorindex.html"
+// zu stimmen
static HTML_ColorEntry __FAR_DATA aHTMLColorNameTab[] = {
- {{sHTML_COL_aliceblue}, 0x00f0f8ffUL},
- {{sHTML_COL_antiquewhite}, 0x00faebd7UL},
- {{sHTML_COL_aqua}, 0x0000ffffUL},
- {{sHTML_COL_aquamarine}, 0x007fffd4UL},
- {{sHTML_COL_azure}, 0x00f0ffffUL},
- {{sHTML_COL_beige}, 0x00f5f5dcUL},
- {{sHTML_COL_bisque}, 0x00ffe4c4UL},
- {{sHTML_COL_black}, 0x00000000UL},
- {{sHTML_COL_blanchedalmond}, 0x00ffebcdUL},
- {{sHTML_COL_blue}, 0x000000ffUL},
- {{sHTML_COL_blueviolet}, 0x008a2be2UL},
- {{sHTML_COL_brown}, 0x00a52a2aUL},
- {{sHTML_COL_burlywood}, 0x00deb887UL},
- {{sHTML_COL_cadetblue}, 0x005f9ea0UL},
- {{sHTML_COL_chartreuse}, 0x007fff00UL},
- {{sHTML_COL_chocolate}, 0x00d2691eUL},
- {{sHTML_COL_coral}, 0x00ff7f50UL},
- {{sHTML_COL_cornflowerblue}, 0x006495edUL},
- {{sHTML_COL_cornsilk}, 0x00fff8dcUL},
- {{sHTML_COL_crimson}, 0x00dc143cUL},
- {{sHTML_COL_cyan}, 0x0000ffffUL},
- {{sHTML_COL_darkblue}, 0x0000008bUL},
- {{sHTML_COL_darkcyan}, 0x00008b8bUL},
- {{sHTML_COL_darkgoldenrod}, 0x00b8860bUL},
- {{sHTML_COL_darkgray}, 0x00a9a9a9UL},
- {{sHTML_COL_darkgreen}, 0x00006400UL},
- {{sHTML_COL_darkkhaki}, 0x00bdb76bUL},
- {{sHTML_COL_darkmagenta}, 0x008b008bUL},
- {{sHTML_COL_darkolivegreen}, 0x00556b2fUL},
- {{sHTML_COL_darkorange}, 0x00ff8c00UL},
- {{sHTML_COL_darkorchid}, 0x009932ccUL},
- {{sHTML_COL_darkred}, 0x008b0000UL},
- {{sHTML_COL_darksalmon}, 0x00e9967aUL},
- {{sHTML_COL_darkseagreen}, 0x008fbc8fUL},
- {{sHTML_COL_darkslateblue}, 0x00483d8bUL},
- {{sHTML_COL_darkslategray}, 0x002f4f4fUL},
- {{sHTML_COL_darkturquoise}, 0x0000ced1UL},
- {{sHTML_COL_darkviolet}, 0x009400d3UL},
- {{sHTML_COL_deeppink}, 0x00ff1493UL},
- {{sHTML_COL_deepskyblue}, 0x0000bfffUL},
- {{sHTML_COL_dimgray}, 0x00696969UL},
- {{sHTML_COL_dodgerblue}, 0x001e90ffUL},
- {{sHTML_COL_firebrick}, 0x00b22222UL},
- {{sHTML_COL_floralwhite}, 0x00fffaf0UL},
- {{sHTML_COL_forestgreen}, 0x00228b22UL},
- {{sHTML_COL_fuchsia}, 0x00ff00ffUL},
- {{sHTML_COL_gainsboro}, 0x00dcdcdcUL},
- {{sHTML_COL_ghostwhite}, 0x00f8f8ffUL},
- {{sHTML_COL_gold}, 0x00ffd700UL},
- {{sHTML_COL_goldenrod}, 0x00daa520UL},
- {{sHTML_COL_gray}, 0x00808080UL},
- {{sHTML_COL_green}, 0x00008000UL},
- {{sHTML_COL_greenyellow}, 0x00adff2fUL},
- {{sHTML_COL_honeydew}, 0x00f0fff0UL},
- {{sHTML_COL_hotpink}, 0x00ff69b4UL},
- {{sHTML_COL_indianred}, 0x00cd5c5cUL},
- {{sHTML_COL_indigo}, 0x004b0082UL},
- {{sHTML_COL_ivory}, 0x00fffff0UL},
- {{sHTML_COL_khaki}, 0x00f0e68cUL},
- {{sHTML_COL_lavender}, 0x00e6e6faUL},
- {{sHTML_COL_lavenderblush}, 0x00fff0f5UL},
- {{sHTML_COL_lawngreen}, 0x007cfc00UL},
- {{sHTML_COL_lemonchiffon}, 0x00fffacdUL},
- {{sHTML_COL_lightblue}, 0x00add8e6UL},
- {{sHTML_COL_lightcoral}, 0x00f08080UL},
- {{sHTML_COL_lightcyan}, 0x00e0ffffUL},
- {{sHTML_COL_lightgoldenrodyellow}, 0x00fafad2UL},
- {{sHTML_COL_lightgreen}, 0x0090ee90UL},
- {{sHTML_COL_lightgrey}, 0x00d3d3d3UL},
- {{sHTML_COL_lightpink}, 0x00ffb6c1UL},
- {{sHTML_COL_lightsalmon}, 0x00ffa07aUL},
- {{sHTML_COL_lightseagreen}, 0x0020b2aaUL},
- {{sHTML_COL_lightskyblue}, 0x0087cefaUL},
- {{sHTML_COL_lightslategray}, 0x00778899UL},
- {{sHTML_COL_lightsteelblue}, 0x00b0c4deUL},
- {{sHTML_COL_lightyellow}, 0x00ffffe0UL},
- {{sHTML_COL_lime}, 0x0000ff00UL},
- {{sHTML_COL_limegreen}, 0x0032cd32UL},
- {{sHTML_COL_linen}, 0x00faf0e6UL},
- {{sHTML_COL_magenta}, 0x00ff00ffUL},
- {{sHTML_COL_maroon}, 0x00800000UL},
- {{sHTML_COL_mediumaquamarine}, 0x0066cdaaUL},
- {{sHTML_COL_mediumblue}, 0x000000cdUL},
- {{sHTML_COL_mediumorchid}, 0x00ba55d3UL},
- {{sHTML_COL_mediumpurple}, 0x009370dbUL},
- {{sHTML_COL_mediumseagreen}, 0x003cb371UL},
- {{sHTML_COL_mediumslateblue}, 0x007b68eeUL},
- {{sHTML_COL_mediumspringgreen}, 0x0000fa9aUL},
- {{sHTML_COL_mediumturquoise}, 0x0048d1ccUL},
- {{sHTML_COL_mediumvioletred}, 0x00c71585UL},
- {{sHTML_COL_midnightblue}, 0x00191970UL},
- {{sHTML_COL_mintcream}, 0x00f5fffaUL},
- {{sHTML_COL_mistyrose}, 0x00ffe4e1UL},
- {{sHTML_COL_moccasin}, 0x00ffe4b5UL},
- {{sHTML_COL_navajowhite}, 0x00ffdeadUL},
- {{sHTML_COL_navy}, 0x00000080UL},
- {{sHTML_COL_oldlace}, 0x00fdf5e6UL},
- {{sHTML_COL_olive}, 0x00808000UL},
- {{sHTML_COL_olivedrab}, 0x006b8e23UL},
- {{sHTML_COL_orange}, 0x00ffa500UL},
- {{sHTML_COL_orangered}, 0x00ff4500UL},
- {{sHTML_COL_orchid}, 0x00da70d6UL},
- {{sHTML_COL_palegoldenrod}, 0x00eee8aaUL},
- {{sHTML_COL_palegreen}, 0x0098fb98UL},
- {{sHTML_COL_paleturquoise}, 0x00afeeeeUL},
- {{sHTML_COL_palevioletred}, 0x00db7093UL},
- {{sHTML_COL_papayawhip}, 0x00ffefd5UL},
- {{sHTML_COL_peachpuff}, 0x00ffdab9UL},
- {{sHTML_COL_peru}, 0x00cd853fUL},
- {{sHTML_COL_pink}, 0x00ffc0cbUL},
- {{sHTML_COL_plum}, 0x00dda0ddUL},
- {{sHTML_COL_powderblue}, 0x00b0e0e6UL},
- {{sHTML_COL_purple}, 0x00800080UL},
- {{sHTML_COL_red}, 0x00ff0000UL},
- {{sHTML_COL_rosybrown}, 0x00bc8f8fUL},
- {{sHTML_COL_royalblue}, 0x004169e1UL},
- {{sHTML_COL_saddlebrown}, 0x008b4513UL},
- {{sHTML_COL_salmon}, 0x00fa8072UL},
- {{sHTML_COL_sandybrown}, 0x00f4a460UL},
- {{sHTML_COL_seagreen}, 0x002e8b57UL},
- {{sHTML_COL_seashell}, 0x00fff5eeUL},
- {{sHTML_COL_sienna}, 0x00a0522dUL},
- {{sHTML_COL_silver}, 0x00c0c0c0UL},
- {{sHTML_COL_skyblue}, 0x0087ceebUL},
- {{sHTML_COL_slateblue}, 0x006a5acdUL},
- {{sHTML_COL_slategray}, 0x00708090UL},
- {{sHTML_COL_snow}, 0x00fffafaUL},
- {{sHTML_COL_springgreen}, 0x0000ff7fUL},
- {{sHTML_COL_steelblue}, 0x004682b4UL},
- {{sHTML_COL_tan}, 0x00d2b48cUL},
- {{sHTML_COL_teal}, 0x00008080UL},
- {{sHTML_COL_thistle}, 0x00d8bfd8UL},
- {{sHTML_COL_tomato}, 0x00ff6347UL},
- {{sHTML_COL_turquoise}, 0x0040e0d0UL},
- {{sHTML_COL_violet}, 0x00ee82eeUL},
- {{sHTML_COL_wheat}, 0x00f5deb3UL},
- {{sHTML_COL_white}, 0x00ffffffUL},
- {{sHTML_COL_whitesmoke}, 0x00f5f5f5UL},
- {{sHTML_COL_yellow}, 0x00ffff00UL},
- {{sHTML_COL_yellowgreen}, 0x009acd32UL}
+ { { "ALICEBLUE" }, 0x00f0f8ffUL },
+ { { "ANTIQUEWHITE" }, 0x00faebd7UL },
+ { { "AQUA" }, 0x0000ffffUL },
+ { { "AQUAMARINE" }, 0x007fffd4UL },
+ { { "AZURE" }, 0x00f0ffffUL },
+ { { "BEIGE" }, 0x00f5f5dcUL },
+ { { "BISQUE" }, 0x00ffe4c4UL },
+ { { "BLACK" }, 0x00000000UL },
+ { { "BLANCHEDALMOND" }, 0x00ffebcdUL },
+ { { "BLUE" }, 0x000000ffUL },
+ { { "BLUEVIOLET" }, 0x008a2be2UL },
+ { { "BROWN" }, 0x00a52a2aUL },
+ { { "BURLYWOOD" }, 0x00deb887UL },
+ { { "CADETBLUE" }, 0x005f9ea0UL },
+ { { "CHARTREUSE" }, 0x007fff00UL },
+ { { "CHOCOLATE" }, 0x00d2691eUL },
+ { { "CORAL" }, 0x00ff7f50UL },
+ { { "CORNFLOWERBLUE" }, 0x006495edUL },
+ { { "CORNSILK" }, 0x00fff8dcUL },
+ { { "CRIMSON" }, 0x00dc143cUL },
+ { { "CYAN" }, 0x0000ffffUL },
+ { { "DARKBLUE" }, 0x0000008bUL },
+ { { "DARKCYAN" }, 0x00008b8bUL },
+ { { "DARKGOLDENROD" }, 0x00b8860bUL },
+ { { "DARKGRAY" }, 0x00a9a9a9UL },
+ { { "DARKGREEN" }, 0x00006400UL },
+ { { "DARKKHAKI" }, 0x00bdb76bUL },
+ { { "DARKMAGENTA" }, 0x008b008bUL },
+ { { "DARKOLIVEGREEN" }, 0x00556b2fUL },
+ { { "DARKORANGE" }, 0x00ff8c00UL },
+ { { "DARKORCHID" }, 0x009932ccUL },
+ { { "DARKRED" }, 0x008b0000UL },
+ { { "DARKSALMON" }, 0x00e9967aUL },
+ { { "DARKSEAGREEN" }, 0x008fbc8fUL },
+ { { "DARKSLATEBLUE" }, 0x00483d8bUL },
+ { { "DARKSLATEGRAY" }, 0x002f4f4fUL },
+ { { "DARKTURQUOISE" }, 0x0000ced1UL },
+ { { "DARKVIOLET" }, 0x009400d3UL },
+ { { "DEEPPINK" }, 0x00ff1493UL },
+ { { "DEEPSKYBLUE" }, 0x0000bfffUL },
+ { { "DIMGRAY" }, 0x00696969UL },
+ { { "DODGERBLUE" }, 0x001e90ffUL },
+ { { "FIREBRICK" }, 0x00b22222UL },
+ { { "FLORALWHITE" }, 0x00fffaf0UL },
+ { { "FORESTGREEN" }, 0x00228b22UL },
+ { { "FUCHSIA" }, 0x00ff00ffUL },
+ { { "GAINSBORO" }, 0x00dcdcdcUL },
+ { { "GHOSTWHITE" }, 0x00f8f8ffUL },
+ { { "GOLD" }, 0x00ffd700UL },
+ { { "GOLDENROD" }, 0x00daa520UL },
+ { { "GRAY" }, 0x00808080UL },
+ { { "GREEN" }, 0x00008000UL },
+ { { "GREENYELLOW" }, 0x00adff2fUL },
+ { { "HONEYDEW" }, 0x00f0fff0UL },
+ { { "HOTPINK" }, 0x00ff69b4UL },
+ { { "INDIANRED" }, 0x00cd5c5cUL },
+ { { "INDIGO" }, 0x004b0082UL },
+ { { "IVORY" }, 0x00fffff0UL },
+ { { "KHAKI" }, 0x00f0e68cUL },
+ { { "LAVENDER" }, 0x00e6e6faUL },
+ { { "LAVENDERBLUSH" }, 0x00fff0f5UL },
+ { { "LAWNGREEN" }, 0x007cfc00UL },
+ { { "LEMONCHIFFON" }, 0x00fffacdUL },
+ { { "LIGHTBLUE" }, 0x00add8e6UL },
+ { { "LIGHTCORAL" }, 0x00f08080UL },
+ { { "LIGHTCYAN" }, 0x00e0ffffUL },
+ { { "LIGHTGOLDENRODYELLOW" }, 0x00fafad2UL },
+ { { "LIGHTGREEN" }, 0x0090ee90UL },
+ { { "LIGHTGREY" }, 0x00d3d3d3UL },
+ { { "LIGHTPINK" }, 0x00ffb6c1UL },
+ { { "LIGHTSALMON" }, 0x00ffa07aUL },
+ { { "LIGHTSEAGREEN" }, 0x0020b2aaUL },
+ { { "LIGHTSKYBLUE" }, 0x0087cefaUL },
+ { { "LIGHTSLATEGRAY" }, 0x00778899UL },
+ { { "LIGHTSTEELBLUE" }, 0x00b0c4deUL },
+ { { "LIGHTYELLOW" }, 0x00ffffe0UL },
+ { { "LIME" }, 0x0000ff00UL },
+ { { "LIMEGREEN" }, 0x0032cd32UL },
+ { { "LINEN" }, 0x00faf0e6UL },
+ { { "MAGENTA" }, 0x00ff00ffUL },
+ { { "MAROON" }, 0x00800000UL },
+ { { "MEDIUMAQUAMARINE" }, 0x0066cdaaUL },
+ { { "MEDIUMBLUE" }, 0x000000cdUL },
+ { { "MEDIUMORCHID" }, 0x00ba55d3UL },
+ { { "MEDIUMPURPLE" }, 0x009370dbUL },
+ { { "MEDIUMSEAGREEN" }, 0x003cb371UL },
+ { { "MEDIUMSLATEBLUE" }, 0x007b68eeUL },
+ { { "MEDIUMSPRINGGREEN" }, 0x0000fa9aUL },
+ { { "MEDIUMTURQUOISE" }, 0x0048d1ccUL },
+ { { "MEDIUMVIOLETRED" }, 0x00c71585UL },
+ { { "MIDNIGHTBLUE" }, 0x00191970UL },
+ { { "MINTCREAM" }, 0x00f5fffaUL },
+ { { "MISTYROSE" }, 0x00ffe4e1UL },
+ { { "MOCCASIN" }, 0x00ffe4b5UL },
+ { { "NAVAJOWHITE" }, 0x00ffdeadUL },
+ { { "NAVY" }, 0x00000080UL },
+ { { "OLDLACE" }, 0x00fdf5e6UL },
+ { { "OLIVE" }, 0x00808000UL },
+ { { "OLIVEDRAB" }, 0x006b8e23UL },
+ { { "ORANGE" }, 0x00ffa500UL },
+ { { "ORANGERED" }, 0x00ff4500UL },
+ { { "ORCHID" }, 0x00da70d6UL },
+ { { "PALEGOLDENROD" }, 0x00eee8aaUL },
+ { { "PALEGREEN" }, 0x0098fb98UL },
+ { { "PALETURQUOISE" }, 0x00afeeeeUL },
+ { { "PALEVIOLETRED" }, 0x00db7093UL },
+ { { "PAPAYAWHIP" }, 0x00ffefd5UL },
+ { { "PEACHPUFF" }, 0x00ffdab9UL },
+ { { "PERU" }, 0x00cd853fUL },
+ { { "PINK" }, 0x00ffc0cbUL },
+ { { "PLUM" }, 0x00dda0ddUL },
+ { { "POWDERBLUE" }, 0x00b0e0e6UL },
+ { { "PURPLE" }, 0x00800080UL },
+ { { "RED" }, 0x00ff0000UL },
+ { { "ROSYBROWN" }, 0x00bc8f8fUL },
+ { { "ROYALBLUE" }, 0x004169e1UL },
+ { { "SADDLEBROWN" }, 0x008b4513UL },
+ { { "SALMON" }, 0x00fa8072UL },
+ { { "SANDYBROWN" }, 0x00f4a460UL },
+ { { "SEAGREEN" }, 0x002e8b57UL },
+ { { "SEASHELL" }, 0x00fff5eeUL },
+ { { "SIENNA" }, 0x00a0522dUL },
+ { { "SILVER" }, 0x00c0c0c0UL },
+ { { "SKYBLUE" }, 0x0087ceebUL },
+ { { "SLATEBLUE" }, 0x006a5acdUL },
+ { { "SLATEGRAY" }, 0x00708090UL },
+ { { "SNOW" }, 0x00fffafaUL },
+ { { "SPRINGGREEN" }, 0x0000ff7fUL },
+ { { "STEELBLUE" }, 0x004682b4UL },
+ { { "TAN" }, 0x00d2b48cUL },
+ { { "TEAL" }, 0x00008080UL },
+ { { "THISTLE" }, 0x00d8bfd8UL },
+ { { "TOMATO" }, 0x00ff6347UL },
+ { { "TURQUOISE" }, 0x0040e0d0UL },
+ { { "VIOLET" }, 0x00ee82eeUL },
+ { { "WHEAT" }, 0x00f5deb3UL },
+ { { "WHITE" }, 0x00ffffffUL },
+ { { "WHITESMOKE" }, 0x00f5f5f5UL },
+ { { "YELLOW" }, 0x00ffff00UL },
+ { { "YELLOWGREEN" }, 0x009acd32UL }
};
extern "C"
diff --git a/svtools/source/svhtml/htmlout.cxx b/svtools/source/svhtml/htmlout.cxx
index 6b6e0b34a975..5b584a37059d 100644
--- a/svtools/source/svhtml/htmlout.cxx
+++ b/svtools/source/svhtml/htmlout.cxx
@@ -132,216 +132,216 @@ const sal_Char *lcl_svhtml_GetEntityForChar( sal_Unicode c,
switch( c )
{
-// case '\x0a': return HTMLOutFuncs::Out_Tag( rStream, sHTML_linebreak );
-
- case '<': pStr = sHTML_C_lt; break;
- case '>': pStr = sHTML_C_gt; break;
- case '&': pStr = sHTML_C_amp; break;
- case '"': pStr = sHTML_C_quot; break;
-
- case 161: pStr = sHTML_S_iexcl; break;
- case 162: pStr = sHTML_S_cent; break;
- case 163: pStr = sHTML_S_pound; break;
- case 164: pStr = sHTML_S_curren; break;
- case 165: pStr = sHTML_S_yen; break;
- case 166: pStr = sHTML_S_brvbar; break;
- case 167: pStr = sHTML_S_sect; break;
- case 168: pStr = sHTML_S_uml; break;
- case 169: pStr = sHTML_S_copy; break;
- case 170: pStr = sHTML_S_ordf; break;
- case 171: pStr = sHTML_S_laquo; break;
- case 172: pStr = sHTML_S_not; break;
- case 174: pStr = sHTML_S_reg; break;
- case 175: pStr = sHTML_S_macr; break;
- case 176: pStr = sHTML_S_deg; break;
- case 177: pStr = sHTML_S_plusmn; break;
- case 178: pStr = sHTML_S_sup2; break;
- case 179: pStr = sHTML_S_sup3; break;
- case 180: pStr = sHTML_S_acute; break;
- case 181: pStr = sHTML_S_micro; break;
- case 182: pStr = sHTML_S_para; break;
- case 183: pStr = sHTML_S_middot; break;
- case 184: pStr = sHTML_S_cedil; break;
- case 185: pStr = sHTML_S_sup1; break;
- case 186: pStr = sHTML_S_ordm; break;
- case 187: pStr = sHTML_S_raquo; break;
- case 188: pStr = sHTML_S_frac14; break;
- case 189: pStr = sHTML_S_frac12; break;
- case 190: pStr = sHTML_S_frac34; break;
- case 191: pStr = sHTML_S_iquest; break;
-
- case 192: pStr = sHTML_C_Agrave; break;
- case 193: pStr = sHTML_C_Aacute; break;
- case 194: pStr = sHTML_C_Acirc; break;
- case 195: pStr = sHTML_C_Atilde; break;
- case 196: pStr = sHTML_C_Auml; break;
- case 197: pStr = sHTML_C_Aring; break;
- case 198: pStr = sHTML_C_AElig; break;
- case 199: pStr = sHTML_C_Ccedil; break;
- case 200: pStr = sHTML_C_Egrave; break;
- case 201: pStr = sHTML_C_Eacute; break;
- case 202: pStr = sHTML_C_Ecirc; break;
- case 203: pStr = sHTML_C_Euml; break;
- case 204: pStr = sHTML_C_Igrave; break;
- case 205: pStr = sHTML_C_Iacute; break;
- case 206: pStr = sHTML_C_Icirc; break;
- case 207: pStr = sHTML_C_Iuml; break;
- case 208: pStr = sHTML_C_ETH; break;
- case 209: pStr = sHTML_C_Ntilde; break;
- case 210: pStr = sHTML_C_Ograve; break;
- case 211: pStr = sHTML_C_Oacute; break;
- case 212: pStr = sHTML_C_Ocirc; break;
- case 213: pStr = sHTML_C_Otilde; break;
- case 214: pStr = sHTML_C_Ouml; break;
- case 215: pStr = sHTML_S_times; break;
- case 216: pStr = sHTML_C_Oslash; break;
- case 217: pStr = sHTML_C_Ugrave; break;
- case 218: pStr = sHTML_C_Uacute; break;
- case 219: pStr = sHTML_C_Ucirc; break;
- case 220: pStr = sHTML_C_Uuml; break;
- case 221: pStr = sHTML_C_Yacute; break;
-
- case 222: pStr = sHTML_C_THORN; break;
- case 223: pStr = sHTML_C_szlig; break;
-
- case 224: pStr = sHTML_S_agrave; break;
- case 225: pStr = sHTML_S_aacute; break;
- case 226: pStr = sHTML_S_acirc; break;
- case 227: pStr = sHTML_S_atilde; break;
- case 228: pStr = sHTML_S_auml; break;
- case 229: pStr = sHTML_S_aring; break;
- case 230: pStr = sHTML_S_aelig; break;
- case 231: pStr = sHTML_S_ccedil; break;
- case 232: pStr = sHTML_S_egrave; break;
- case 233: pStr = sHTML_S_eacute; break;
- case 234: pStr = sHTML_S_ecirc; break;
- case 235: pStr = sHTML_S_euml; break;
- case 236: pStr = sHTML_S_igrave; break;
- case 237: pStr = sHTML_S_iacute; break;
- case 238: pStr = sHTML_S_icirc; break;
- case 239: pStr = sHTML_S_iuml; break;
- case 240: pStr = sHTML_S_eth; break;
- case 241: pStr = sHTML_S_ntilde; break;
- case 242: pStr = sHTML_S_ograve; break;
- case 243: pStr = sHTML_S_oacute; break;
- case 244: pStr = sHTML_S_ocirc; break;
- case 245: pStr = sHTML_S_otilde; break;
- case 246: pStr = sHTML_S_ouml; break;
- case 247: pStr = sHTML_S_divide; break;
- case 248: pStr = sHTML_S_oslash; break;
- case 249: pStr = sHTML_S_ugrave; break;
- case 250: pStr = sHTML_S_uacute; break;
- case 251: pStr = sHTML_S_ucirc; break;
- case 252: pStr = sHTML_S_uuml; break;
- case 253: pStr = sHTML_S_yacute; break;
- case 254: pStr = sHTML_S_thorn; break;
- case 255: pStr = sHTML_S_yuml; break;
-
- case 338: pStr = sHTML_S_OElig; break;
- case 339: pStr = sHTML_S_oelig; break;
- case 352: pStr = sHTML_S_Scaron; break;
- case 353: pStr = sHTML_S_scaron; break;
- case 376: pStr = sHTML_S_Yuml; break;
- case 402: pStr = sHTML_S_fnof; break;
- case 710: pStr = sHTML_S_circ; break;
- case 732: pStr = sHTML_S_tilde; break;
+// case '\x0a': return HTMLOutFuncs::Out_Tag( rStream, OOO_STRING_SVTOOLS_HTML_linebreak );
+
+ case '<': pStr = OOO_STRING_SVTOOLS_HTML_C_lt; break;
+ case '>': pStr = OOO_STRING_SVTOOLS_HTML_C_gt; break;
+ case '&': pStr = OOO_STRING_SVTOOLS_HTML_C_amp; break;
+ case '"': pStr = OOO_STRING_SVTOOLS_HTML_C_quot; break;
+
+ case 161: pStr = OOO_STRING_SVTOOLS_HTML_S_iexcl; break;
+ case 162: pStr = OOO_STRING_SVTOOLS_HTML_S_cent; break;
+ case 163: pStr = OOO_STRING_SVTOOLS_HTML_S_pound; break;
+ case 164: pStr = OOO_STRING_SVTOOLS_HTML_S_curren; break;
+ case 165: pStr = OOO_STRING_SVTOOLS_HTML_S_yen; break;
+ case 166: pStr = OOO_STRING_SVTOOLS_HTML_S_brvbar; break;
+ case 167: pStr = OOO_STRING_SVTOOLS_HTML_S_sect; break;
+ case 168: pStr = OOO_STRING_SVTOOLS_HTML_S_uml; break;
+ case 169: pStr = OOO_STRING_SVTOOLS_HTML_S_copy; break;
+ case 170: pStr = OOO_STRING_SVTOOLS_HTML_S_ordf; break;
+ case 171: pStr = OOO_STRING_SVTOOLS_HTML_S_laquo; break;
+ case 172: pStr = OOO_STRING_SVTOOLS_HTML_S_not; break;
+ case 174: pStr = OOO_STRING_SVTOOLS_HTML_S_reg; break;
+ case 175: pStr = OOO_STRING_SVTOOLS_HTML_S_macr; break;
+ case 176: pStr = OOO_STRING_SVTOOLS_HTML_S_deg; break;
+ case 177: pStr = OOO_STRING_SVTOOLS_HTML_S_plusmn; break;
+ case 178: pStr = OOO_STRING_SVTOOLS_HTML_S_sup2; break;
+ case 179: pStr = OOO_STRING_SVTOOLS_HTML_S_sup3; break;
+ case 180: pStr = OOO_STRING_SVTOOLS_HTML_S_acute; break;
+ case 181: pStr = OOO_STRING_SVTOOLS_HTML_S_micro; break;
+ case 182: pStr = OOO_STRING_SVTOOLS_HTML_S_para; break;
+ case 183: pStr = OOO_STRING_SVTOOLS_HTML_S_middot; break;
+ case 184: pStr = OOO_STRING_SVTOOLS_HTML_S_cedil; break;
+ case 185: pStr = OOO_STRING_SVTOOLS_HTML_S_sup1; break;
+ case 186: pStr = OOO_STRING_SVTOOLS_HTML_S_ordm; break;
+ case 187: pStr = OOO_STRING_SVTOOLS_HTML_S_raquo; break;
+ case 188: pStr = OOO_STRING_SVTOOLS_HTML_S_frac14; break;
+ case 189: pStr = OOO_STRING_SVTOOLS_HTML_S_frac12; break;
+ case 190: pStr = OOO_STRING_SVTOOLS_HTML_S_frac34; break;
+ case 191: pStr = OOO_STRING_SVTOOLS_HTML_S_iquest; break;
+
+ case 192: pStr = OOO_STRING_SVTOOLS_HTML_C_Agrave; break;
+ case 193: pStr = OOO_STRING_SVTOOLS_HTML_C_Aacute; break;
+ case 194: pStr = OOO_STRING_SVTOOLS_HTML_C_Acirc; break;
+ case 195: pStr = OOO_STRING_SVTOOLS_HTML_C_Atilde; break;
+ case 196: pStr = OOO_STRING_SVTOOLS_HTML_C_Auml; break;
+ case 197: pStr = OOO_STRING_SVTOOLS_HTML_C_Aring; break;
+ case 198: pStr = OOO_STRING_SVTOOLS_HTML_C_AElig; break;
+ case 199: pStr = OOO_STRING_SVTOOLS_HTML_C_Ccedil; break;
+ case 200: pStr = OOO_STRING_SVTOOLS_HTML_C_Egrave; break;
+ case 201: pStr = OOO_STRING_SVTOOLS_HTML_C_Eacute; break;
+ case 202: pStr = OOO_STRING_SVTOOLS_HTML_C_Ecirc; break;
+ case 203: pStr = OOO_STRING_SVTOOLS_HTML_C_Euml; break;
+ case 204: pStr = OOO_STRING_SVTOOLS_HTML_C_Igrave; break;
+ case 205: pStr = OOO_STRING_SVTOOLS_HTML_C_Iacute; break;
+ case 206: pStr = OOO_STRING_SVTOOLS_HTML_C_Icirc; break;
+ case 207: pStr = OOO_STRING_SVTOOLS_HTML_C_Iuml; break;
+ case 208: pStr = OOO_STRING_SVTOOLS_HTML_C_ETH; break;
+ case 209: pStr = OOO_STRING_SVTOOLS_HTML_C_Ntilde; break;
+ case 210: pStr = OOO_STRING_SVTOOLS_HTML_C_Ograve; break;
+ case 211: pStr = OOO_STRING_SVTOOLS_HTML_C_Oacute; break;
+ case 212: pStr = OOO_STRING_SVTOOLS_HTML_C_Ocirc; break;
+ case 213: pStr = OOO_STRING_SVTOOLS_HTML_C_Otilde; break;
+ case 214: pStr = OOO_STRING_SVTOOLS_HTML_C_Ouml; break;
+ case 215: pStr = OOO_STRING_SVTOOLS_HTML_S_times; break;
+ case 216: pStr = OOO_STRING_SVTOOLS_HTML_C_Oslash; break;
+ case 217: pStr = OOO_STRING_SVTOOLS_HTML_C_Ugrave; break;
+ case 218: pStr = OOO_STRING_SVTOOLS_HTML_C_Uacute; break;
+ case 219: pStr = OOO_STRING_SVTOOLS_HTML_C_Ucirc; break;
+ case 220: pStr = OOO_STRING_SVTOOLS_HTML_C_Uuml; break;
+ case 221: pStr = OOO_STRING_SVTOOLS_HTML_C_Yacute; break;
+
+ case 222: pStr = OOO_STRING_SVTOOLS_HTML_C_THORN; break;
+ case 223: pStr = OOO_STRING_SVTOOLS_HTML_C_szlig; break;
+
+ case 224: pStr = OOO_STRING_SVTOOLS_HTML_S_agrave; break;
+ case 225: pStr = OOO_STRING_SVTOOLS_HTML_S_aacute; break;
+ case 226: pStr = OOO_STRING_SVTOOLS_HTML_S_acirc; break;
+ case 227: pStr = OOO_STRING_SVTOOLS_HTML_S_atilde; break;
+ case 228: pStr = OOO_STRING_SVTOOLS_HTML_S_auml; break;
+ case 229: pStr = OOO_STRING_SVTOOLS_HTML_S_aring; break;
+ case 230: pStr = OOO_STRING_SVTOOLS_HTML_S_aelig; break;
+ case 231: pStr = OOO_STRING_SVTOOLS_HTML_S_ccedil; break;
+ case 232: pStr = OOO_STRING_SVTOOLS_HTML_S_egrave; break;
+ case 233: pStr = OOO_STRING_SVTOOLS_HTML_S_eacute; break;
+ case 234: pStr = OOO_STRING_SVTOOLS_HTML_S_ecirc; break;
+ case 235: pStr = OOO_STRING_SVTOOLS_HTML_S_euml; break;
+ case 236: pStr = OOO_STRING_SVTOOLS_HTML_S_igrave; break;
+ case 237: pStr = OOO_STRING_SVTOOLS_HTML_S_iacute; break;
+ case 238: pStr = OOO_STRING_SVTOOLS_HTML_S_icirc; break;
+ case 239: pStr = OOO_STRING_SVTOOLS_HTML_S_iuml; break;
+ case 240: pStr = OOO_STRING_SVTOOLS_HTML_S_eth; break;
+ case 241: pStr = OOO_STRING_SVTOOLS_HTML_S_ntilde; break;
+ case 242: pStr = OOO_STRING_SVTOOLS_HTML_S_ograve; break;
+ case 243: pStr = OOO_STRING_SVTOOLS_HTML_S_oacute; break;
+ case 244: pStr = OOO_STRING_SVTOOLS_HTML_S_ocirc; break;
+ case 245: pStr = OOO_STRING_SVTOOLS_HTML_S_otilde; break;
+ case 246: pStr = OOO_STRING_SVTOOLS_HTML_S_ouml; break;
+ case 247: pStr = OOO_STRING_SVTOOLS_HTML_S_divide; break;
+ case 248: pStr = OOO_STRING_SVTOOLS_HTML_S_oslash; break;
+ case 249: pStr = OOO_STRING_SVTOOLS_HTML_S_ugrave; break;
+ case 250: pStr = OOO_STRING_SVTOOLS_HTML_S_uacute; break;
+ case 251: pStr = OOO_STRING_SVTOOLS_HTML_S_ucirc; break;
+ case 252: pStr = OOO_STRING_SVTOOLS_HTML_S_uuml; break;
+ case 253: pStr = OOO_STRING_SVTOOLS_HTML_S_yacute; break;
+ case 254: pStr = OOO_STRING_SVTOOLS_HTML_S_thorn; break;
+ case 255: pStr = OOO_STRING_SVTOOLS_HTML_S_yuml; break;
+
+ case 338: pStr = OOO_STRING_SVTOOLS_HTML_S_OElig; break;
+ case 339: pStr = OOO_STRING_SVTOOLS_HTML_S_oelig; break;
+ case 352: pStr = OOO_STRING_SVTOOLS_HTML_S_Scaron; break;
+ case 353: pStr = OOO_STRING_SVTOOLS_HTML_S_scaron; break;
+ case 376: pStr = OOO_STRING_SVTOOLS_HTML_S_Yuml; break;
+ case 402: pStr = OOO_STRING_SVTOOLS_HTML_S_fnof; break;
+ case 710: pStr = OOO_STRING_SVTOOLS_HTML_S_circ; break;
+ case 732: pStr = OOO_STRING_SVTOOLS_HTML_S_tilde; break;
// Greek chars are handled later,
// since they should *not* be transformed to entities
// when generating Greek text (== using Greek encoding)
- case 8194: pStr = sHTML_S_ensp; break;
- case 8195: pStr = sHTML_S_emsp; break;
- case 8201: pStr = sHTML_S_thinsp; break;
- case 8204: pStr = sHTML_S_zwnj; break;
- case 8205: pStr = sHTML_S_zwj; break;
- case 8206: pStr = sHTML_S_lrm; break;
- case 8207: pStr = sHTML_S_rlm; break;
- case 8211: pStr = sHTML_S_ndash; break;
- case 8212: pStr = sHTML_S_mdash; break;
- case 8216: pStr = sHTML_S_lsquo; break;
- case 8217: pStr = sHTML_S_rsquo; break;
- case 8218: pStr = sHTML_S_sbquo; break;
- case 8220: pStr = sHTML_S_ldquo; break;
- case 8221: pStr = sHTML_S_rdquo; break;
- case 8222: pStr = sHTML_S_bdquo; break;
- case 8224: pStr = sHTML_S_dagger; break;
- case 8225: pStr = sHTML_S_Dagger; break;
- case 8226: pStr = sHTML_S_bull; break;
- case 8230: pStr = sHTML_S_hellip; break;
- case 8240: pStr = sHTML_S_permil; break;
- case 8242: pStr = sHTML_S_prime; break;
- case 8243: pStr = sHTML_S_Prime; break;
- case 8249: pStr = sHTML_S_lsaquo; break;
- case 8250: pStr = sHTML_S_rsaquo; break;
- case 8254: pStr = sHTML_S_oline; break;
- case 8260: pStr = sHTML_S_frasl; break;
- case 8364: pStr = sHTML_S_euro; break;
- case 8465: pStr = sHTML_S_image; break;
- case 8472: pStr = sHTML_S_weierp; break;
- case 8476: pStr = sHTML_S_real; break;
- case 8482: pStr = sHTML_S_trade; break;
- case 8501: pStr = sHTML_S_alefsym; break;
- case 8592: pStr = sHTML_S_larr; break;
- case 8593: pStr = sHTML_S_uarr; break;
- case 8594: pStr = sHTML_S_rarr; break;
- case 8595: pStr = sHTML_S_darr; break;
- case 8596: pStr = sHTML_S_harr; break;
- case 8629: pStr = sHTML_S_crarr; break;
- case 8656: pStr = sHTML_S_lArr; break;
- case 8657: pStr = sHTML_S_uArr; break;
- case 8658: pStr = sHTML_S_rArr; break;
- case 8659: pStr = sHTML_S_dArr; break;
- case 8660: pStr = sHTML_S_hArr; break;
- case 8704: pStr = sHTML_S_forall; break;
- case 8706: pStr = sHTML_S_part; break;
- case 8707: pStr = sHTML_S_exist; break;
- case 8709: pStr = sHTML_S_empty; break;
- case 8711: pStr = sHTML_S_nabla; break;
- case 8712: pStr = sHTML_S_isin; break;
- case 8713: pStr = sHTML_S_notin; break;
- case 8715: pStr = sHTML_S_ni; break;
- case 8719: pStr = sHTML_S_prod; break;
- case 8721: pStr = sHTML_S_sum; break;
- case 8722: pStr = sHTML_S_minus; break;
- case 8727: pStr = sHTML_S_lowast; break;
- case 8730: pStr = sHTML_S_radic; break;
- case 8733: pStr = sHTML_S_prop; break;
- case 8734: pStr = sHTML_S_infin; break;
- case 8736: pStr = sHTML_S_ang; break;
- case 8743: pStr = sHTML_S_and; break;
- case 8744: pStr = sHTML_S_or; break;
- case 8745: pStr = sHTML_S_cap; break;
- case 8746: pStr = sHTML_S_cup; break;
- case 8747: pStr = sHTML_S_int; break;
- case 8756: pStr = sHTML_S_there4; break;
- case 8764: pStr = sHTML_S_sim; break;
- case 8773: pStr = sHTML_S_cong; break;
- case 8776: pStr = sHTML_S_asymp; break;
- case 8800: pStr = sHTML_S_ne; break;
- case 8801: pStr = sHTML_S_equiv; break;
- case 8804: pStr = sHTML_S_le; break;
- case 8805: pStr = sHTML_S_ge; break;
- case 8834: pStr = sHTML_S_sub; break;
- case 8835: pStr = sHTML_S_sup; break;
- case 8836: pStr = sHTML_S_nsub; break;
- case 8838: pStr = sHTML_S_sube; break;
- case 8839: pStr = sHTML_S_supe; break;
- case 8853: pStr = sHTML_S_oplus; break;
- case 8855: pStr = sHTML_S_otimes; break;
- case 8869: pStr = sHTML_S_perp; break;
- case 8901: pStr = sHTML_S_sdot; break;
- case 8968: pStr = sHTML_S_lceil; break;
- case 8969: pStr = sHTML_S_rceil; break;
- case 8970: pStr = sHTML_S_lfloor; break;
- case 8971: pStr = sHTML_S_rfloor; break;
- case 9001: pStr = sHTML_S_lang; break;
- case 9002: pStr = sHTML_S_rang; break;
- case 9674: pStr = sHTML_S_loz; break;
- case 9824: pStr = sHTML_S_spades; break;
- case 9827: pStr = sHTML_S_clubs; break;
- case 9829: pStr = sHTML_S_hearts; break;
- case 9830: pStr = sHTML_S_diams; break;
+ case 8194: pStr = OOO_STRING_SVTOOLS_HTML_S_ensp; break;
+ case 8195: pStr = OOO_STRING_SVTOOLS_HTML_S_emsp; break;
+ case 8201: pStr = OOO_STRING_SVTOOLS_HTML_S_thinsp; break;
+ case 8204: pStr = OOO_STRING_SVTOOLS_HTML_S_zwnj; break;
+ case 8205: pStr = OOO_STRING_SVTOOLS_HTML_S_zwj; break;
+ case 8206: pStr = OOO_STRING_SVTOOLS_HTML_S_lrm; break;
+ case 8207: pStr = OOO_STRING_SVTOOLS_HTML_S_rlm; break;
+ case 8211: pStr = OOO_STRING_SVTOOLS_HTML_S_ndash; break;
+ case 8212: pStr = OOO_STRING_SVTOOLS_HTML_S_mdash; break;
+ case 8216: pStr = OOO_STRING_SVTOOLS_HTML_S_lsquo; break;
+ case 8217: pStr = OOO_STRING_SVTOOLS_HTML_S_rsquo; break;
+ case 8218: pStr = OOO_STRING_SVTOOLS_HTML_S_sbquo; break;
+ case 8220: pStr = OOO_STRING_SVTOOLS_HTML_S_ldquo; break;
+ case 8221: pStr = OOO_STRING_SVTOOLS_HTML_S_rdquo; break;
+ case 8222: pStr = OOO_STRING_SVTOOLS_HTML_S_bdquo; break;
+ case 8224: pStr = OOO_STRING_SVTOOLS_HTML_S_dagger; break;
+ case 8225: pStr = OOO_STRING_SVTOOLS_HTML_S_Dagger; break;
+ case 8226: pStr = OOO_STRING_SVTOOLS_HTML_S_bull; break;
+ case 8230: pStr = OOO_STRING_SVTOOLS_HTML_S_hellip; break;
+ case 8240: pStr = OOO_STRING_SVTOOLS_HTML_S_permil; break;
+ case 8242: pStr = OOO_STRING_SVTOOLS_HTML_S_prime; break;
+ case 8243: pStr = OOO_STRING_SVTOOLS_HTML_S_Prime; break;
+ case 8249: pStr = OOO_STRING_SVTOOLS_HTML_S_lsaquo; break;
+ case 8250: pStr = OOO_STRING_SVTOOLS_HTML_S_rsaquo; break;
+ case 8254: pStr = OOO_STRING_SVTOOLS_HTML_S_oline; break;
+ case 8260: pStr = OOO_STRING_SVTOOLS_HTML_S_frasl; break;
+ case 8364: pStr = OOO_STRING_SVTOOLS_HTML_S_euro; break;
+ case 8465: pStr = OOO_STRING_SVTOOLS_HTML_S_image; break;
+ case 8472: pStr = OOO_STRING_SVTOOLS_HTML_S_weierp; break;
+ case 8476: pStr = OOO_STRING_SVTOOLS_HTML_S_real; break;
+ case 8482: pStr = OOO_STRING_SVTOOLS_HTML_S_trade; break;
+ case 8501: pStr = OOO_STRING_SVTOOLS_HTML_S_alefsym; break;
+ case 8592: pStr = OOO_STRING_SVTOOLS_HTML_S_larr; break;
+ case 8593: pStr = OOO_STRING_SVTOOLS_HTML_S_uarr; break;
+ case 8594: pStr = OOO_STRING_SVTOOLS_HTML_S_rarr; break;
+ case 8595: pStr = OOO_STRING_SVTOOLS_HTML_S_darr; break;
+ case 8596: pStr = OOO_STRING_SVTOOLS_HTML_S_harr; break;
+ case 8629: pStr = OOO_STRING_SVTOOLS_HTML_S_crarr; break;
+ case 8656: pStr = OOO_STRING_SVTOOLS_HTML_S_lArr; break;
+ case 8657: pStr = OOO_STRING_SVTOOLS_HTML_S_uArr; break;
+ case 8658: pStr = OOO_STRING_SVTOOLS_HTML_S_rArr; break;
+ case 8659: pStr = OOO_STRING_SVTOOLS_HTML_S_dArr; break;
+ case 8660: pStr = OOO_STRING_SVTOOLS_HTML_S_hArr; break;
+ case 8704: pStr = OOO_STRING_SVTOOLS_HTML_S_forall; break;
+ case 8706: pStr = OOO_STRING_SVTOOLS_HTML_S_part; break;
+ case 8707: pStr = OOO_STRING_SVTOOLS_HTML_S_exist; break;
+ case 8709: pStr = OOO_STRING_SVTOOLS_HTML_S_empty; break;
+ case 8711: pStr = OOO_STRING_SVTOOLS_HTML_S_nabla; break;
+ case 8712: pStr = OOO_STRING_SVTOOLS_HTML_S_isin; break;
+ case 8713: pStr = OOO_STRING_SVTOOLS_HTML_S_notin; break;
+ case 8715: pStr = OOO_STRING_SVTOOLS_HTML_S_ni; break;
+ case 8719: pStr = OOO_STRING_SVTOOLS_HTML_S_prod; break;
+ case 8721: pStr = OOO_STRING_SVTOOLS_HTML_S_sum; break;
+ case 8722: pStr = OOO_STRING_SVTOOLS_HTML_S_minus; break;
+ case 8727: pStr = OOO_STRING_SVTOOLS_HTML_S_lowast; break;
+ case 8730: pStr = OOO_STRING_SVTOOLS_HTML_S_radic; break;
+ case 8733: pStr = OOO_STRING_SVTOOLS_HTML_S_prop; break;
+ case 8734: pStr = OOO_STRING_SVTOOLS_HTML_S_infin; break;
+ case 8736: pStr = OOO_STRING_SVTOOLS_HTML_S_ang; break;
+ case 8743: pStr = OOO_STRING_SVTOOLS_HTML_S_and; break;
+ case 8744: pStr = OOO_STRING_SVTOOLS_HTML_S_or; break;
+ case 8745: pStr = OOO_STRING_SVTOOLS_HTML_S_cap; break;
+ case 8746: pStr = OOO_STRING_SVTOOLS_HTML_S_cup; break;
+ case 8747: pStr = OOO_STRING_SVTOOLS_HTML_S_int; break;
+ case 8756: pStr = OOO_STRING_SVTOOLS_HTML_S_there4; break;
+ case 8764: pStr = OOO_STRING_SVTOOLS_HTML_S_sim; break;
+ case 8773: pStr = OOO_STRING_SVTOOLS_HTML_S_cong; break;
+ case 8776: pStr = OOO_STRING_SVTOOLS_HTML_S_asymp; break;
+ case 8800: pStr = OOO_STRING_SVTOOLS_HTML_S_ne; break;
+ case 8801: pStr = OOO_STRING_SVTOOLS_HTML_S_equiv; break;
+ case 8804: pStr = OOO_STRING_SVTOOLS_HTML_S_le; break;
+ case 8805: pStr = OOO_STRING_SVTOOLS_HTML_S_ge; break;
+ case 8834: pStr = OOO_STRING_SVTOOLS_HTML_S_sub; break;
+ case 8835: pStr = OOO_STRING_SVTOOLS_HTML_S_sup; break;
+ case 8836: pStr = OOO_STRING_SVTOOLS_HTML_S_nsub; break;
+ case 8838: pStr = OOO_STRING_SVTOOLS_HTML_S_sube; break;
+ case 8839: pStr = OOO_STRING_SVTOOLS_HTML_S_supe; break;
+ case 8853: pStr = OOO_STRING_SVTOOLS_HTML_S_oplus; break;
+ case 8855: pStr = OOO_STRING_SVTOOLS_HTML_S_otimes; break;
+ case 8869: pStr = OOO_STRING_SVTOOLS_HTML_S_perp; break;
+ case 8901: pStr = OOO_STRING_SVTOOLS_HTML_S_sdot; break;
+ case 8968: pStr = OOO_STRING_SVTOOLS_HTML_S_lceil; break;
+ case 8969: pStr = OOO_STRING_SVTOOLS_HTML_S_rceil; break;
+ case 8970: pStr = OOO_STRING_SVTOOLS_HTML_S_lfloor; break;
+ case 8971: pStr = OOO_STRING_SVTOOLS_HTML_S_rfloor; break;
+ case 9001: pStr = OOO_STRING_SVTOOLS_HTML_S_lang; break;
+ case 9002: pStr = OOO_STRING_SVTOOLS_HTML_S_rang; break;
+ case 9674: pStr = OOO_STRING_SVTOOLS_HTML_S_loz; break;
+ case 9824: pStr = OOO_STRING_SVTOOLS_HTML_S_spades; break;
+ case 9827: pStr = OOO_STRING_SVTOOLS_HTML_S_clubs; break;
+ case 9829: pStr = OOO_STRING_SVTOOLS_HTML_S_hearts; break;
+ case 9830: pStr = OOO_STRING_SVTOOLS_HTML_S_diams; break;
}
// Greek chars: if we do not produce a Greek encoding,
@@ -352,58 +352,58 @@ const sal_Char *lcl_svhtml_GetEntityForChar( sal_Unicode c,
{
switch( c )
{
- case 913: pStr = sHTML_S_Alpha; break;
- case 914: pStr = sHTML_S_Beta; break;
- case 915: pStr = sHTML_S_Gamma; break;
- case 916: pStr = sHTML_S_Delta; break;
- case 917: pStr = sHTML_S_Epsilon; break;
- case 918: pStr = sHTML_S_Zeta; break;
- case 919: pStr = sHTML_S_Eta; break;
- case 920: pStr = sHTML_S_Theta; break;
- case 921: pStr = sHTML_S_Iota; break;
- case 922: pStr = sHTML_S_Kappa; break;
- case 923: pStr = sHTML_S_Lambda; break;
- case 924: pStr = sHTML_S_Mu; break;
- case 925: pStr = sHTML_S_Nu; break;
- case 926: pStr = sHTML_S_Xi; break;
- case 927: pStr = sHTML_S_Omicron; break;
- case 928: pStr = sHTML_S_Pi; break;
- case 929: pStr = sHTML_S_Rho; break;
- case 931: pStr = sHTML_S_Sigma; break;
- case 932: pStr = sHTML_S_Tau; break;
- case 933: pStr = sHTML_S_Upsilon; break;
- case 934: pStr = sHTML_S_Phi; break;
- case 935: pStr = sHTML_S_Chi; break;
- case 936: pStr = sHTML_S_Psi; break;
- case 937: pStr = sHTML_S_Omega; break;
- case 945: pStr = sHTML_S_alpha; break;
- case 946: pStr = sHTML_S_beta; break;
- case 947: pStr = sHTML_S_gamma; break;
- case 948: pStr = sHTML_S_delta; break;
- case 949: pStr = sHTML_S_epsilon; break;
- case 950: pStr = sHTML_S_zeta; break;
- case 951: pStr = sHTML_S_eta; break;
- case 952: pStr = sHTML_S_theta; break;
- case 953: pStr = sHTML_S_iota; break;
- case 954: pStr = sHTML_S_kappa; break;
- case 955: pStr = sHTML_S_lambda; break;
- case 956: pStr = sHTML_S_mu; break;
- case 957: pStr = sHTML_S_nu; break;
- case 958: pStr = sHTML_S_xi; break;
- case 959: pStr = sHTML_S_omicron; break;
- case 960: pStr = sHTML_S_pi; break;
- case 961: pStr = sHTML_S_rho; break;
- case 962: pStr = sHTML_S_sigmaf; break;
- case 963: pStr = sHTML_S_sigma; break;
- case 964: pStr = sHTML_S_tau; break;
- case 965: pStr = sHTML_S_upsilon; break;
- case 966: pStr = sHTML_S_phi; break;
- case 967: pStr = sHTML_S_chi; break;
- case 968: pStr = sHTML_S_psi; break;
- case 969: pStr = sHTML_S_omega; break;
- case 977: pStr = sHTML_S_thetasym;break;
- case 978: pStr = sHTML_S_upsih; break;
- case 982: pStr = sHTML_S_piv; break;
+ case 913: pStr = OOO_STRING_SVTOOLS_HTML_S_Alpha; break;
+ case 914: pStr = OOO_STRING_SVTOOLS_HTML_S_Beta; break;
+ case 915: pStr = OOO_STRING_SVTOOLS_HTML_S_Gamma; break;
+ case 916: pStr = OOO_STRING_SVTOOLS_HTML_S_Delta; break;
+ case 917: pStr = OOO_STRING_SVTOOLS_HTML_S_Epsilon; break;
+ case 918: pStr = OOO_STRING_SVTOOLS_HTML_S_Zeta; break;
+ case 919: pStr = OOO_STRING_SVTOOLS_HTML_S_Eta; break;
+ case 920: pStr = OOO_STRING_SVTOOLS_HTML_S_Theta; break;
+ case 921: pStr = OOO_STRING_SVTOOLS_HTML_S_Iota; break;
+ case 922: pStr = OOO_STRING_SVTOOLS_HTML_S_Kappa; break;
+ case 923: pStr = OOO_STRING_SVTOOLS_HTML_S_Lambda; break;
+ case 924: pStr = OOO_STRING_SVTOOLS_HTML_S_Mu; break;
+ case 925: pStr = OOO_STRING_SVTOOLS_HTML_S_Nu; break;
+ case 926: pStr = OOO_STRING_SVTOOLS_HTML_S_Xi; break;
+ case 927: pStr = OOO_STRING_SVTOOLS_HTML_S_Omicron; break;
+ case 928: pStr = OOO_STRING_SVTOOLS_HTML_S_Pi; break;
+ case 929: pStr = OOO_STRING_SVTOOLS_HTML_S_Rho; break;
+ case 931: pStr = OOO_STRING_SVTOOLS_HTML_S_Sigma; break;
+ case 932: pStr = OOO_STRING_SVTOOLS_HTML_S_Tau; break;
+ case 933: pStr = OOO_STRING_SVTOOLS_HTML_S_Upsilon; break;
+ case 934: pStr = OOO_STRING_SVTOOLS_HTML_S_Phi; break;
+ case 935: pStr = OOO_STRING_SVTOOLS_HTML_S_Chi; break;
+ case 936: pStr = OOO_STRING_SVTOOLS_HTML_S_Psi; break;
+ case 937: pStr = OOO_STRING_SVTOOLS_HTML_S_Omega; break;
+ case 945: pStr = OOO_STRING_SVTOOLS_HTML_S_alpha; break;
+ case 946: pStr = OOO_STRING_SVTOOLS_HTML_S_beta; break;
+ case 947: pStr = OOO_STRING_SVTOOLS_HTML_S_gamma; break;
+ case 948: pStr = OOO_STRING_SVTOOLS_HTML_S_delta; break;
+ case 949: pStr = OOO_STRING_SVTOOLS_HTML_S_epsilon; break;
+ case 950: pStr = OOO_STRING_SVTOOLS_HTML_S_zeta; break;
+ case 951: pStr = OOO_STRING_SVTOOLS_HTML_S_eta; break;
+ case 952: pStr = OOO_STRING_SVTOOLS_HTML_S_theta; break;
+ case 953: pStr = OOO_STRING_SVTOOLS_HTML_S_iota; break;
+ case 954: pStr = OOO_STRING_SVTOOLS_HTML_S_kappa; break;
+ case 955: pStr = OOO_STRING_SVTOOLS_HTML_S_lambda; break;
+ case 956: pStr = OOO_STRING_SVTOOLS_HTML_S_mu; break;
+ case 957: pStr = OOO_STRING_SVTOOLS_HTML_S_nu; break;
+ case 958: pStr = OOO_STRING_SVTOOLS_HTML_S_xi; break;
+ case 959: pStr = OOO_STRING_SVTOOLS_HTML_S_omicron; break;
+ case 960: pStr = OOO_STRING_SVTOOLS_HTML_S_pi; break;
+ case 961: pStr = OOO_STRING_SVTOOLS_HTML_S_rho; break;
+ case 962: pStr = OOO_STRING_SVTOOLS_HTML_S_sigmaf; break;
+ case 963: pStr = OOO_STRING_SVTOOLS_HTML_S_sigma; break;
+ case 964: pStr = OOO_STRING_SVTOOLS_HTML_S_tau; break;
+ case 965: pStr = OOO_STRING_SVTOOLS_HTML_S_upsilon; break;
+ case 966: pStr = OOO_STRING_SVTOOLS_HTML_S_phi; break;
+ case 967: pStr = OOO_STRING_SVTOOLS_HTML_S_chi; break;
+ case 968: pStr = OOO_STRING_SVTOOLS_HTML_S_psi; break;
+ case 969: pStr = OOO_STRING_SVTOOLS_HTML_S_omega; break;
+ case 977: pStr = OOO_STRING_SVTOOLS_HTML_S_thetasym;break;
+ case 978: pStr = OOO_STRING_SVTOOLS_HTML_S_upsih; break;
+ case 982: pStr = OOO_STRING_SVTOOLS_HTML_S_piv; break;
}
}
@@ -423,10 +423,10 @@ void lcl_ConvertCharToHTML( sal_Unicode c, ByteString& rDest,
//!! the TextConverter has a problem with this character - so change it to
// a hard space - that's the same as our 5.2
case 0x2011: // is a hard hyphen
- pStr = sHTML_S_nbsp;
+ pStr = OOO_STRING_SVTOOLS_HTML_S_nbsp;
break;
case 0xAD: // is a soft hyphen
- pStr = sHTML_S_shy;
+ pStr = OOO_STRING_SVTOOLS_HTML_S_shy;
break;
default:
// There may be an entity for the character.
@@ -634,9 +634,9 @@ SvStream& HTMLOutFuncs::Out_ImageMap( SvStream& rStream,
return rStream;
ByteString sOut( '<' );
- sOut.Append( RTL_CONSTASCII_STRINGPARAM(sHTML_map ) );
+ sOut.Append( RTL_CONSTASCII_STRINGPARAM(OOO_STRING_SVTOOLS_HTML_map ) );
sOut.Append( ' ' );
- sOut.Append( RTL_CONSTASCII_STRINGPARAM(sHTML_O_name) );
+ sOut.Append( RTL_CONSTASCII_STRINGPARAM(OOO_STRING_SVTOOLS_HTML_O_name) );
sOut.Append( RTL_CONSTASCII_STRINGPARAM("=\"") );
rStream << sOut.GetBuffer();
sOut.Erase();
@@ -658,7 +658,7 @@ SvStream& HTMLOutFuncs::Out_ImageMap( SvStream& rStream,
{
const IMapRectangleObject* pRectObj =
(const IMapRectangleObject *)pObj;
- pShape = sHTML_SH_rect;
+ pShape = OOO_STRING_SVTOOLS_HTML_SH_rect;
Rectangle aRect( pRectObj->GetRectangle() );
((((((aCoords =
ByteString::CreateFromInt32(aRect.Left())) += ',')
@@ -671,7 +671,7 @@ SvStream& HTMLOutFuncs::Out_ImageMap( SvStream& rStream,
{
const IMapCircleObject* pCirc =
(const IMapCircleObject *)pObj;
- pShape= sHTML_SH_circ;
+ pShape= OOO_STRING_SVTOOLS_HTML_SH_circ;
Point aCenter( pCirc->GetCenter() );
long nOff = pCirc->GetRadius();
((((aCoords =
@@ -684,7 +684,7 @@ SvStream& HTMLOutFuncs::Out_ImageMap( SvStream& rStream,
{
const IMapPolygonObject* pPolyObj =
(const IMapPolygonObject *)pObj;
- pShape= sHTML_SH_poly;
+ pShape= OOO_STRING_SVTOOLS_HTML_SH_poly;
Polygon aPoly( pPolyObj->GetPolygon() );
USHORT nCount = aPoly.GetSize();
if( nCount>0 )
@@ -715,9 +715,9 @@ SvStream& HTMLOutFuncs::Out_ImageMap( SvStream& rStream,
if( pIndentArea )
rStream << pIndentArea;
- ((((((((((sOut = '<') += sHTML_area) += ' ')
- += sHTML_O_shape) += '=') += pShape) += ' ')
- += sHTML_O_coords) += "=\"") += aCoords) += "\" ";
+ ((((((((((sOut = '<') += OOO_STRING_SVTOOLS_HTML_area) += ' ')
+ += OOO_STRING_SVTOOLS_HTML_O_shape) += '=') += pShape) += ' ')
+ += OOO_STRING_SVTOOLS_HTML_O_coords) += "=\"") += aCoords) += "\" ";
rStream << sOut.GetBuffer();
String aURL( pObj->GetURL() );
@@ -725,17 +725,17 @@ SvStream& HTMLOutFuncs::Out_ImageMap( SvStream& rStream,
{
aURL = URIHelper::simpleNormalizedMakeRelative(
rBaseURL, aURL );
- (sOut = sHTML_O_href) += "=\"";
+ (sOut = OOO_STRING_SVTOOLS_HTML_O_href) += "=\"";
rStream << sOut.GetBuffer();
Out_String( rStream, aURL, eDestEnc, pNonConvertableChars ) << '\"';
}
else
- rStream << sHTML_O_nohref;
+ rStream << OOO_STRING_SVTOOLS_HTML_O_nohref;
const String& rObjName = pObj->GetName();
if( rObjName.Len() )
{
- ((sOut = ' ') += sHTML_O_name) += "=\"";
+ ((sOut = ' ') += OOO_STRING_SVTOOLS_HTML_O_name) += "=\"";
rStream << sOut.GetBuffer();
Out_String( rStream, rObjName, eDestEnc, pNonConvertableChars ) << '\"';
}
@@ -743,7 +743,7 @@ SvStream& HTMLOutFuncs::Out_ImageMap( SvStream& rStream,
const String& rTarget = pObj->GetTarget();
if( rTarget.Len() && pObj->IsActive() )
{
- ((sOut = ' ') += sHTML_O_target) += "=\"";
+ ((sOut = ' ') += OOO_STRING_SVTOOLS_HTML_O_target) += "=\"";
rStream << sOut.GetBuffer();
Out_String( rStream, rTarget, eDestEnc, pNonConvertableChars ) << '\"';
}
@@ -754,7 +754,7 @@ SvStream& HTMLOutFuncs::Out_ImageMap( SvStream& rStream,
if( rDesc.Len() )
{
- ((sOut = ' ') += sHTML_O_alt) += "=\"";
+ ((sOut = ' ') += OOO_STRING_SVTOOLS_HTML_O_alt) += "=\"";
rStream << sOut.GetBuffer();
Out_String( rStream, rDesc, eDestEnc, pNonConvertableChars ) << '\"';
}
@@ -774,7 +774,7 @@ SvStream& HTMLOutFuncs::Out_ImageMap( SvStream& rStream,
rStream << pDelim;
if( pIndentMap )
rStream << pIndentMap;
- Out_AsciiTag( rStream, sHTML_map, FALSE );
+ Out_AsciiTag( rStream, OOO_STRING_SVTOOLS_HTML_map, FALSE );
return rStream;
}
@@ -795,12 +795,12 @@ SvStream& HTMLOutFuncs::OutScript( SvStream& rStrm,
// Script wird komplett nicht eingerueckt!
ByteString sOut( '<' );
- sOut.Append( RTL_CONSTASCII_STRINGPARAM(sHTML_script) );
+ sOut.Append( RTL_CONSTASCII_STRINGPARAM(OOO_STRING_SVTOOLS_HTML_script) );
if( rLanguage.Len() )
{
sOut.Append( ' ' );
- sOut.Append( RTL_CONSTASCII_STRINGPARAM(sHTML_O_language) );
+ sOut.Append( RTL_CONSTASCII_STRINGPARAM(OOO_STRING_SVTOOLS_HTML_O_language) );
sOut.Append( RTL_CONSTASCII_STRINGPARAM("=\"") );
rStrm << sOut.GetBuffer();
Out_String( rStrm, rLanguage, eDestEnc, pNonConvertableChars );
@@ -809,7 +809,7 @@ SvStream& HTMLOutFuncs::OutScript( SvStream& rStrm,
if( rSrc.Len() )
{
- ((sOut += ' ') += sHTML_O_src) += "=\"";
+ ((sOut += ' ') += OOO_STRING_SVTOOLS_HTML_O_src) += "=\"";
rStrm << sOut.GetBuffer();
Out_String( rStrm, URIHelper::simpleNormalizedMakeRelative(rBaseURL, rSrc), eDestEnc, pNonConvertableChars );
sOut = '\"';
@@ -817,7 +817,7 @@ SvStream& HTMLOutFuncs::OutScript( SvStream& rStrm,
if( STARBASIC != eScriptType && pSBLibrary )
{
- ((sOut += ' ') += sHTML_O_sdlibrary) += "=\"";
+ ((sOut += ' ') += OOO_STRING_SVTOOLS_HTML_O_sdlibrary) += "=\"";
rStrm << sOut.GetBuffer();
Out_String( rStrm, *pSBLibrary, eDestEnc, pNonConvertableChars );
sOut = '\"';
@@ -825,7 +825,7 @@ SvStream& HTMLOutFuncs::OutScript( SvStream& rStrm,
if( STARBASIC != eScriptType && pSBModule )
{
- ((sOut += ' ') += sHTML_O_sdmodule) += "=\"";
+ ((sOut += ' ') += OOO_STRING_SVTOOLS_HTML_O_sdmodule) += "=\"";
rStrm << sOut.GetBuffer();
Out_String( rStrm, *pSBModule, eDestEnc, pNonConvertableChars );
sOut = '\"';
@@ -850,7 +850,7 @@ SvStream& HTMLOutFuncs::OutScript( SvStream& rStrm,
if( pSBLibrary )
{
sOut.Assign( RTL_CONSTASCII_STRINGPARAM("' ") );
- sOut.Append( RTL_CONSTASCII_STRINGPARAM(sHTML_SB_library) );
+ sOut.Append( RTL_CONSTASCII_STRINGPARAM(OOO_STRING_SVTOOLS_HTML_SB_library) );
sOut.Append( ' ' );
ByteString sTmp( *pSBLibrary, eDestEnc );
sOut.Append( sTmp );
@@ -860,7 +860,7 @@ SvStream& HTMLOutFuncs::OutScript( SvStream& rStrm,
if( pSBModule )
{
sOut.Assign( RTL_CONSTASCII_STRINGPARAM("' ") );
- sOut.Append( RTL_CONSTASCII_STRINGPARAM(sHTML_SB_module) );
+ sOut.Append( RTL_CONSTASCII_STRINGPARAM(OOO_STRING_SVTOOLS_HTML_SB_module) );
sOut.Append( ' ' );
ByteString sTmp( *pSBModule, eDestEnc );
sOut.Append( sTmp );
@@ -888,7 +888,7 @@ SvStream& HTMLOutFuncs::OutScript( SvStream& rStrm,
}
}
- HTMLOutFuncs::Out_AsciiTag( rStrm, sHTML_script, FALSE );
+ HTMLOutFuncs::Out_AsciiTag( rStrm, OOO_STRING_SVTOOLS_HTML_script, FALSE );
return rStrm;
}
@@ -940,11 +940,11 @@ ByteString& HTMLOutFuncs::CreateTableDataOptionsValNum( ByteString& aStrTD,
String aValStr;
rFormatter.GetInputLineString( fVal, 0, aValStr );
ByteString sTmp( aValStr, eDestEnc );
- ((((aStrTD += ' ') += sHTML_O_SDval) += "=\"") += sTmp) += '\"';
+ ((((aStrTD += ' ') += OOO_STRING_SVTOOLS_HTML_O_SDval) += "=\"") += sTmp) += '\"';
}
if ( bValue || nFormat )
{
- ((aStrTD += ' ') += sHTML_O_SDnum) += "=\"";
+ ((aStrTD += ' ') += OOO_STRING_SVTOOLS_HTML_O_SDnum) += "=\"";
(aStrTD += ByteString::CreateFromInt32(
Application::GetSettings().GetLanguage() ))
+= ';'; // Language fuer Format 0
@@ -971,7 +971,7 @@ ByteString& HTMLOutFuncs::CreateTableDataOptionsValNum( ByteString& aStrTD,
BOOL HTMLOutFuncs::PrivateURLToInternalImg( String& rURL )
{
if( rURL.Len() > 14UL &&
- rURL.CompareToAscii( sHTML_private_image, 14UL ) == COMPARE_EQUAL )
+ rURL.CompareToAscii( OOO_STRING_SVTOOLS_HTML_private_image, 14UL ) == COMPARE_EQUAL )
{
rURL.Erase( 0UL, 14UL );
return TRUE;
diff --git a/svtools/source/svhtml/htmlsupp.cxx b/svtools/source/svhtml/htmlsupp.cxx
index 15a041a11306..11f48e7fdf5d 100644
--- a/svtools/source/svhtml/htmlsupp.cxx
+++ b/svtools/source/svhtml/htmlsupp.cxx
@@ -49,13 +49,13 @@
static HTMLOptionEnum __READONLY_DATA aScriptLangOptEnums[] =
{
- { sHTML_LG_starbasic, HTML_SL_STARBASIC },
- { sHTML_LG_javascript, HTML_SL_JAVASCRIPT },
- { sHTML_LG_javascript11,HTML_SL_JAVASCRIPT },
- { sHTML_LG_livescript, HTML_SL_JAVASCRIPT },
-// { sHTML_LG_unused_javascript, HTML_SL_UNUSEDJS },
-// { sHTML_LG_vbscript, HTML_SL_VBSCRIPT },
-// { sHTML_LG_starone, HTML_SL_STARONE },
+ { OOO_STRING_SVTOOLS_HTML_LG_starbasic, HTML_SL_STARBASIC },
+ { OOO_STRING_SVTOOLS_HTML_LG_javascript, HTML_SL_JAVASCRIPT },
+ { OOO_STRING_SVTOOLS_HTML_LG_javascript11,HTML_SL_JAVASCRIPT },
+ { OOO_STRING_SVTOOLS_HTML_LG_livescript, HTML_SL_JAVASCRIPT },
+// { OOO_STRING_SVTOOLS_HTML_LG_unused_javascript, HTML_SL_UNUSEDJS },
+// { OOO_STRING_SVTOOLS_HTML_LG_vbscript, HTML_SL_VBSCRIPT },
+// { OOO_STRING_SVTOOLS_HTML_LG_starone, HTML_SL_STARONE },
{ 0, 0 }
};
diff --git a/svtools/source/svhtml/makefile.mk b/svtools/source/svhtml/makefile.mk
index e7dc1f2cd1ac..b597763ac390 100644
--- a/svtools/source/svhtml/makefile.mk
+++ b/svtools/source/svhtml/makefile.mk
@@ -34,6 +34,8 @@ PRJ=..$/..
PRJNAME=svtools
TARGET=svhtml
+ENABLE_EXCEPTIONS=TRUE
+
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
@@ -42,7 +44,6 @@ TARGET=svhtml
# --- Files --------------------------------------------------------
SLOFILES=\
- $(SLO)$/htmlkey2.obj \
$(SLO)$/htmlkywd.obj \
$(SLO)$/htmlsupp.obj \
$(SLO)$/htmlout.obj \
diff --git a/svtools/source/svhtml/parhtml.cxx b/svtools/source/svhtml/parhtml.cxx
index 53151514e4d5..215133c8efb4 100644
--- a/svtools/source/svhtml/parhtml.cxx
+++ b/svtools/source/svhtml/parhtml.cxx
@@ -43,10 +43,21 @@
#include <svtools/svstdarr.hxx>
#endif
+#include <tools/tenccvt.hxx>
+#include <tools/datetime.hxx>
+#include <svtools/inettype.hxx>
+#include <comphelper/string.hxx>
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#include <com/sun/star/document/XDocumentProperties.hpp>
+
#include <svtools/parhtml.hxx>
#include "htmltokn.h"
#include "htmlkywd.hxx"
+
+using namespace ::com::sun::star;
+
+
const sal_Int32 MAX_LEN( 1024L );
//static sal_Unicode sTmpBuffer[ MAX_LEN+1 ];
const sal_Int32 MAX_MACRO_LEN( 1024 );
@@ -60,44 +71,44 @@ const sal_Int32 MAX_ENTITY_LEN( 8L );
// <INPUT TYPE=xxx>
static HTMLOptionEnum __READONLY_DATA aInputTypeOptEnums[] =
{
- { sHTML_IT_text, HTML_IT_TEXT },
- { sHTML_IT_password, HTML_IT_PASSWORD },
- { sHTML_IT_checkbox, HTML_IT_CHECKBOX },
- { sHTML_IT_radio, HTML_IT_RADIO },
- { sHTML_IT_range, HTML_IT_RANGE },
- { sHTML_IT_scribble, HTML_IT_SCRIBBLE },
- { sHTML_IT_file, HTML_IT_FILE },
- { sHTML_IT_hidden, HTML_IT_HIDDEN },
- { sHTML_IT_submit, HTML_IT_SUBMIT },
- { sHTML_IT_image, HTML_IT_IMAGE },
- { sHTML_IT_reset, HTML_IT_RESET },
- { sHTML_IT_button, HTML_IT_BUTTON },
+ { OOO_STRING_SVTOOLS_HTML_IT_text, HTML_IT_TEXT },
+ { OOO_STRING_SVTOOLS_HTML_IT_password, HTML_IT_PASSWORD },
+ { OOO_STRING_SVTOOLS_HTML_IT_checkbox, HTML_IT_CHECKBOX },
+ { OOO_STRING_SVTOOLS_HTML_IT_radio, HTML_IT_RADIO },
+ { OOO_STRING_SVTOOLS_HTML_IT_range, HTML_IT_RANGE },
+ { OOO_STRING_SVTOOLS_HTML_IT_scribble, HTML_IT_SCRIBBLE },
+ { OOO_STRING_SVTOOLS_HTML_IT_file, HTML_IT_FILE },
+ { OOO_STRING_SVTOOLS_HTML_IT_hidden, HTML_IT_HIDDEN },
+ { OOO_STRING_SVTOOLS_HTML_IT_submit, HTML_IT_SUBMIT },
+ { OOO_STRING_SVTOOLS_HTML_IT_image, HTML_IT_IMAGE },
+ { OOO_STRING_SVTOOLS_HTML_IT_reset, HTML_IT_RESET },
+ { OOO_STRING_SVTOOLS_HTML_IT_button, HTML_IT_BUTTON },
{ 0, 0 }
};
// <TABLE FRAME=xxx>
static HTMLOptionEnum __READONLY_DATA aTableFrameOptEnums[] =
{
- { sHTML_TF_void, HTML_TF_VOID },
- { sHTML_TF_above, HTML_TF_ABOVE },
- { sHTML_TF_below, HTML_TF_BELOW },
- { sHTML_TF_hsides, HTML_TF_HSIDES },
- { sHTML_TF_lhs, HTML_TF_LHS },
- { sHTML_TF_rhs, HTML_TF_RHS },
- { sHTML_TF_vsides, HTML_TF_VSIDES },
- { sHTML_TF_box, HTML_TF_BOX },
- { sHTML_TF_border, HTML_TF_BOX },
+ { OOO_STRING_SVTOOLS_HTML_TF_void, HTML_TF_VOID },
+ { OOO_STRING_SVTOOLS_HTML_TF_above, HTML_TF_ABOVE },
+ { OOO_STRING_SVTOOLS_HTML_TF_below, HTML_TF_BELOW },
+ { OOO_STRING_SVTOOLS_HTML_TF_hsides, HTML_TF_HSIDES },
+ { OOO_STRING_SVTOOLS_HTML_TF_lhs, HTML_TF_LHS },
+ { OOO_STRING_SVTOOLS_HTML_TF_rhs, HTML_TF_RHS },
+ { OOO_STRING_SVTOOLS_HTML_TF_vsides, HTML_TF_VSIDES },
+ { OOO_STRING_SVTOOLS_HTML_TF_box, HTML_TF_BOX },
+ { OOO_STRING_SVTOOLS_HTML_TF_border, HTML_TF_BOX },
{ 0, 0 }
};
// <TABLE RULES=xxx>
static HTMLOptionEnum __READONLY_DATA aTableRulesOptEnums[] =
{
- { sHTML_TR_none, HTML_TR_NONE },
- { sHTML_TR_groups, HTML_TR_GROUPS },
- { sHTML_TR_rows, HTML_TR_ROWS },
- { sHTML_TR_cols, HTML_TR_COLS },
- { sHTML_TR_all, HTML_TR_ALL },
+ { OOO_STRING_SVTOOLS_HTML_TR_none, HTML_TR_NONE },
+ { OOO_STRING_SVTOOLS_HTML_TR_groups, HTML_TR_GROUPS },
+ { OOO_STRING_SVTOOLS_HTML_TR_rows, HTML_TR_ROWS },
+ { OOO_STRING_SVTOOLS_HTML_TR_cols, HTML_TR_COLS },
+ { OOO_STRING_SVTOOLS_HTML_TR_all, HTML_TR_ALL },
{ 0, 0 }
};
@@ -930,7 +941,7 @@ int HTMLParser::_GetNextRawToken()
{
if( !bReadComment )
{
- if( aTok.CompareToAscii( sHTML_comment, 3 )
+ if( aTok.CompareToAscii( OOO_STRING_SVTOOLS_HTML_comment, 3 )
== COMPARE_EQUAL )
{
bReadComment = TRUE;
@@ -942,7 +953,7 @@ int HTMLParser::_GetNextRawToken()
// erstmal nicht so genau nehmen
bDone = bOffState && // '>'==nNextCh &&
COMPARE_EQUAL == ( bReadScript
- ? aTok.CompareToAscii(sHTML_script)
+ ? aTok.CompareToAscii(OOO_STRING_SVTOOLS_HTML_script)
: aTok.CompareTo(aEndToken) );
}
}
@@ -958,13 +969,13 @@ int HTMLParser::_GetNextRawToken()
// ein Style-Sheet kann mit </STYLE>, </HEAD> oder
// <BODY> aughoehren
if( bOffState )
- bDone = aTok.CompareToAscii(sHTML_style)
+ bDone = aTok.CompareToAscii(OOO_STRING_SVTOOLS_HTML_style)
== COMPARE_EQUAL ||
- aTok.CompareToAscii(sHTML_head)
+ aTok.CompareToAscii(OOO_STRING_SVTOOLS_HTML_head)
== COMPARE_EQUAL;
else
bDone =
- aTok.CompareToAscii(sHTML_body) == COMPARE_EQUAL;
+ aTok.CompareToAscii(OOO_STRING_SVTOOLS_HTML_body) == COMPARE_EQUAL;
}
if( bDone )
@@ -2002,7 +2013,7 @@ FASTBOOL HTMLParser::IsHTMLFormat( const sal_Char* pHeader,
return TRUE;
// oder wir finden irgendwo ein <HTML> in den ersten 80 Zeichen
- nStart = sCmp.Search( sHTML_html );
+ nStart = sCmp.Search( OOO_STRING_SVTOOLS_HTML_html );
if( nStart!=STRING_NOTFOUND &&
nStart>0 && '<'==sCmp.GetChar(nStart-1) &&
nStart+4 < sCmp.Len() && '>'==sCmp.GetChar(nStart+4) )
@@ -2015,72 +2026,71 @@ FASTBOOL HTMLParser::IsHTMLFormat( const sal_Char* pHeader,
BOOL HTMLParser::InternalImgToPrivateURL( String& rURL )
{
if( rURL.Len() < 19 || 'i' != rURL.GetChar(0) ||
- rURL.CompareToAscii( sHTML_internal_gopher, 9 ) != COMPARE_EQUAL )
+ rURL.CompareToAscii( OOO_STRING_SVTOOLS_HTML_internal_gopher, 9 ) != COMPARE_EQUAL )
return FALSE;
BOOL bFound = FALSE;
- if( rURL.CompareToAscii( sHTML_internal_gopher,16) == COMPARE_EQUAL )
+ if( rURL.CompareToAscii( OOO_STRING_SVTOOLS_HTML_internal_gopher,16) == COMPARE_EQUAL )
{
String aName( rURL.Copy(16) );
switch( aName.GetChar(0) )
{
case 'b':
- bFound = aName.EqualsAscii( sHTML_INT_GOPHER_binary );
+ bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_binary );
break;
case 'i':
- bFound = aName.EqualsAscii( sHTML_INT_GOPHER_image ) ||
- aName.EqualsAscii( sHTML_INT_GOPHER_index );
+ bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_image ) ||
+ aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_index );
break;
case 'm':
- bFound = aName.EqualsAscii( sHTML_INT_GOPHER_menu ) ||
- aName.EqualsAscii( sHTML_INT_GOPHER_movie );
+ bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_menu ) ||
+ aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_movie );
break;
case 's':
- bFound = aName.EqualsAscii( sHTML_INT_GOPHER_sound );
+ bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_sound );
break;
case 't':
- bFound = aName.EqualsAscii( sHTML_INT_GOPHER_telnet ) ||
- aName.EqualsAscii( sHTML_INT_GOPHER_text );
+ bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_telnet ) ||
+ aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_text );
break;
case 'u':
- bFound = aName.EqualsAscii( sHTML_INT_GOPHER_unknown );
+ bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_GOPHER_unknown );
break;
}
}
- else if( rURL.CompareToAscii( sHTML_internal_icon,14) == COMPARE_EQUAL )
+ else if( rURL.CompareToAscii( OOO_STRING_SVTOOLS_HTML_internal_icon,14) == COMPARE_EQUAL )
{
String aName( rURL.Copy(14) );
switch( aName.GetChar(0) )
{
case 'b':
- bFound = aName.EqualsAscii( sHTML_INT_ICON_baddata );
+ bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_ICON_baddata );
break;
case 'd':
- bFound = aName.EqualsAscii( sHTML_INT_ICON_delayed );
+ bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_ICON_delayed );
break;
case 'e':
- bFound = aName.EqualsAscii( sHTML_INT_ICON_embed );
+ bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_ICON_embed );
break;
case 'i':
- bFound = aName.EqualsAscii( sHTML_INT_ICON_insecure );
+ bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_ICON_insecure );
break;
case 'n':
- bFound = aName.EqualsAscii( sHTML_INT_ICON_notfound );
+ bFound = aName.EqualsAscii( OOO_STRING_SVTOOLS_HTML_INT_ICON_notfound );
break;
}
}
if( bFound )
{
String sTmp ( rURL );
- rURL.AssignAscii( sHTML_private_image );
+ rURL.AssignAscii( OOO_STRING_SVTOOLS_HTML_private_image );
rURL.Append( sTmp );
}
return bFound;
}
-
#ifdef USED
void HTMLParser::SaveState( int nToken )
{
@@ -2093,3 +2103,241 @@ void HTMLParser::RestoreState()
}
#endif
+
+enum eHtmlMetas {
+ HTML_META_NONE = 0,
+ HTML_META_AUTHOR,
+ HTML_META_DESCRIPTION,
+ HTML_META_KEYWORDS,
+ HTML_META_REFRESH,
+ HTML_META_CLASSIFICATION,
+ HTML_META_CREATED,
+ HTML_META_CHANGEDBY,
+ HTML_META_CHANGED,
+ HTML_META_GENERATOR,
+ HTML_META_SDFOOTNOTE,
+ HTML_META_SDENDNOTE,
+ HTML_META_CONTENT_TYPE
+};
+
+// <META NAME=xxx>
+#ifdef __MINGW32__ // for runtime pseudo reloc
+static HTMLOptionEnum aHTMLMetaNameTable[] =
+#else
+static HTMLOptionEnum __READONLY_DATA aHTMLMetaNameTable[] =
+#endif
+{
+ { OOO_STRING_SVTOOLS_HTML_META_author, HTML_META_AUTHOR },
+ { OOO_STRING_SVTOOLS_HTML_META_changed, HTML_META_CHANGED },
+ { OOO_STRING_SVTOOLS_HTML_META_changedby, HTML_META_CHANGEDBY },
+ { OOO_STRING_SVTOOLS_HTML_META_classification,HTML_META_CLASSIFICATION},
+ { OOO_STRING_SVTOOLS_HTML_META_content_type, HTML_META_CONTENT_TYPE },
+ { OOO_STRING_SVTOOLS_HTML_META_created, HTML_META_CREATED },
+ { OOO_STRING_SVTOOLS_HTML_META_description, HTML_META_DESCRIPTION },
+ { OOO_STRING_SVTOOLS_HTML_META_keywords, HTML_META_KEYWORDS },
+ { OOO_STRING_SVTOOLS_HTML_META_generator, HTML_META_GENERATOR },
+ { OOO_STRING_SVTOOLS_HTML_META_refresh, HTML_META_REFRESH },
+ { OOO_STRING_SVTOOLS_HTML_META_sdendnote, HTML_META_SDENDNOTE },
+ { OOO_STRING_SVTOOLS_HTML_META_sdfootnote, HTML_META_SDFOOTNOTE },
+ { 0, 0 }
+};
+
+
+void HTMLParser::AddMetaUserDefined( ::rtl::OUString const & )
+{
+}
+
+bool HTMLParser::ParseMetaOptionsImpl(
+ const uno::Reference<document::XDocumentProperties> & i_xDocProps,
+ SvKeyValueIterator *i_pHTTPHeader,
+ const HTMLOptions *i_pOptions,
+ rtl_TextEncoding& o_rEnc )
+{
+ String aName, aContent;
+ USHORT nAction = HTML_META_NONE;
+ bool bHTTPEquiv = false, bChanged = false;
+
+ for ( USHORT i = i_pOptions->Count(); i; )
+ {
+ const HTMLOption *pOption = (*i_pOptions)[ --i ];
+ switch ( pOption->GetToken() )
+ {
+ case HTML_O_NAME:
+ aName = pOption->GetString();
+ if ( HTML_META_NONE==nAction )
+ {
+ pOption->GetEnum( nAction, aHTMLMetaNameTable );
+ }
+ break;
+ case HTML_O_HTTPEQUIV:
+ aName = pOption->GetString();
+ pOption->GetEnum( nAction, aHTMLMetaNameTable );
+ bHTTPEquiv = true;
+ break;
+ case HTML_O_CONTENT:
+ aContent = pOption->GetString();
+ break;
+ }
+ }
+
+ if ( bHTTPEquiv || HTML_META_DESCRIPTION != nAction )
+ {
+ // if it is not a Description, remove CRs and LFs from CONTENT
+ aContent.EraseAllChars( _CR );
+ aContent.EraseAllChars( _LF );
+ }
+ else
+ {
+ // convert line endings for Description
+ aContent.ConvertLineEnd();
+ }
+
+
+ if ( bHTTPEquiv && i_pHTTPHeader )
+ {
+ // #57232#: Netscape seems to just ignore a closing ", so we do too
+ if ( aContent.Len() && '"' == aContent.GetChar( aContent.Len()-1 ) )
+ {
+ aContent.Erase( aContent.Len() - 1 );
+ }
+ SvKeyValue aKeyValue( aName, aContent );
+ i_pHTTPHeader->Append( aKeyValue );
+ }
+
+ switch ( nAction )
+ {
+ case HTML_META_AUTHOR:
+ if (i_xDocProps.is()) {
+ i_xDocProps->setAuthor( aContent );
+ bChanged = true;
+ }
+ break;
+ case HTML_META_DESCRIPTION:
+ if (i_xDocProps.is()) {
+ i_xDocProps->setDescription( aContent );
+ bChanged = true;
+ }
+ break;
+ case HTML_META_KEYWORDS:
+ if (i_xDocProps.is()) {
+ i_xDocProps->setKeywords(
+ ::comphelper::string::convertCommaSeparated(aContent));
+ bChanged = true;
+ }
+ break;
+ case HTML_META_CLASSIFICATION:
+ if (i_xDocProps.is()) {
+ i_xDocProps->setSubject( aContent );
+ bChanged = true;
+ }
+ break;
+
+ case HTML_META_CHANGEDBY:
+ if (i_xDocProps.is()) {
+ i_xDocProps->setModifiedBy( aContent );
+ }
+ break;
+
+ case HTML_META_CREATED:
+ case HTML_META_CHANGED:
+ if ( i_xDocProps.is() && aContent.Len() &&
+ aContent.GetTokenCount() == 2 )
+ {
+ Date aDate( (ULONG)aContent.GetToken(0).ToInt32() );
+ Time aTime( (ULONG)aContent.GetToken(1).ToInt32() );
+ DateTime aDateTime( aDate, aTime );
+ ::util::DateTime uDT(aDateTime.Get100Sec(),
+ aDateTime.GetSec(), aDateTime.GetMin(),
+ aDateTime.GetHour(), aDateTime.GetDay(),
+ aDateTime.GetMonth(), aDateTime.GetYear());
+ if ( HTML_META_CREATED==nAction )
+ i_xDocProps->setCreationDate( uDT );
+ else
+ i_xDocProps->setModificationDate( uDT );
+ bChanged = true;
+ }
+ break;
+
+ case HTML_META_REFRESH:
+ DBG_ASSERT( !bHTTPEquiv || i_pHTTPHeader,
+ "Reload-URL aufgrund unterlassener MUSS-Aenderung verlorengegangen" );
+ break;
+
+ case HTML_META_CONTENT_TYPE:
+ if ( aContent.Len() )
+ {
+ o_rEnc = GetEncodingByMIME( aContent );
+ }
+ break;
+
+ case HTML_META_NONE:
+ if ( !bHTTPEquiv )
+ {
+ if (i_xDocProps.is())
+ {
+ uno::Reference<beans::XPropertyContainer> xUDProps
+ = i_xDocProps->getUserDefinedProperties();
+ try {
+ xUDProps->addProperty(aName,
+ beans::PropertyAttribute::REMOVEABLE,
+ uno::makeAny(::rtl::OUString(aContent)));
+ AddMetaUserDefined(aName);
+ bChanged = true;
+ } catch (uno::Exception &) {
+ // ignore
+ }
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
+ return bChanged;
+}
+
+bool HTMLParser::ParseMetaOptions(
+ const uno::Reference<document::XDocumentProperties> & i_xDocProps,
+ SvKeyValueIterator *i_pHeader )
+{
+ USHORT nContentOption = HTML_O_CONTENT;
+ rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW;
+
+ bool bRet = ParseMetaOptionsImpl( i_xDocProps, i_pHeader,
+ GetOptions(&nContentOption),
+ eEnc );
+
+ // If the encoding is set by a META tag, it may only overwrite the
+ // current encoding if both, the current and the new encoding, are 1-BYTE
+ // encodings. Everything else cannot lead to reasonable results.
+ if (RTL_TEXTENCODING_DONTKNOW != eEnc &&
+ rtl_isOctetTextEncoding( eEnc ) &&
+ rtl_isOctetTextEncoding( GetSrcEncoding() ) )
+ {
+ eEnc = GetExtendedCompatibilityTextEncoding( eEnc ); // #89973#
+ SetSrcEncoding( eEnc );
+ }
+
+ return bRet;
+}
+
+rtl_TextEncoding HTMLParser::GetEncodingByMIME( const String& rMime )
+{
+ ByteString sType;
+ ByteString sSubType;
+ INetContentTypeParameterList aParameters;
+ ByteString sMime( rMime, RTL_TEXTENCODING_ASCII_US );
+ if (INetContentTypes::parse(sMime, sType, sSubType, &aParameters))
+ {
+ const INetContentTypeParameter * pCharset
+ = aParameters.find("charset");
+ if (pCharset != 0)
+ {
+ ByteString sValue( pCharset->m_sValue, RTL_TEXTENCODING_ASCII_US );
+ return GetExtendedCompatibilityTextEncoding(
+ rtl_getTextEncodingFromMimeCharset( sValue.GetBuffer() ) );
+ }
+ }
+ return RTL_TEXTENCODING_DONTKNOW;
+}
+
diff --git a/svtools/source/svrtf/makefile.mk b/svtools/source/svrtf/makefile.mk
index 311b9a48c34c..549b67897ecb 100644
--- a/svtools/source/svrtf/makefile.mk
+++ b/svtools/source/svrtf/makefile.mk
@@ -45,8 +45,7 @@ SLOFILES = \
$(SLO)$/svparser.obj \
$(SLO)$/parrtf.obj \
$(SLO)$/rtfout.obj \
- $(SLO)$/rtfkeywd.obj \
- $(SLO)$/rtfkey2.obj
+ $(SLO)$/rtfkeywd.obj
# ==========================================================================
diff --git a/svtools/source/svrtf/rtfkeywd.cxx b/svtools/source/svrtf/rtfkeywd.cxx
index 0762ea1b9c81..0dc90d0da8ab 100644
--- a/svtools/source/svrtf/rtfkeywd.cxx
+++ b/svtools/source/svrtf/rtfkeywd.cxx
@@ -55,1135 +55,1135 @@ struct RTF_TokenEntry
static int __FAR_DATA bSortKeyWords = FALSE;
static RTF_TokenEntry __FAR_DATA aRTFTokenTab[] = {
-{{sRTF_IGNORE}, RTF_IGNOREFLAG},
-{{sRTF_RTF}, RTF_RTF},
-{{sRTF_ANSI}, RTF_ANSITYPE},
-{{sRTF_MAC}, RTF_MACTYPE},
-{{sRTF_PC}, RTF_PCTYPE},
-{{sRTF_PCA}, RTF_PCATYPE},
-{{sRTF_NEXTCSET}, RTF_NEXTTYPE},
-{{sRTF_STYLESHEET}, RTF_STYLESHEET},
-{{sRTF_SBASEDON}, RTF_SBASEDON},
-{{sRTF_SNEXT}, RTF_SNEXT},
-{{sRTF_FONTTBL}, RTF_FONTTBL},
-{{sRTF_DEFF}, RTF_DEFF},
-{{sRTF_FNIL}, RTF_FNIL},
-{{sRTF_FROMAN}, RTF_FROMAN},
-{{sRTF_FSWISS}, RTF_FSWISS},
-{{sRTF_FMODERN}, RTF_FMODERN},
-{{sRTF_FSCRIPT}, RTF_FSCRIPT},
-{{sRTF_FDECOR}, RTF_FDECOR},
-{{sRTF_FTECH}, RTF_FTECH},
-{{sRTF_FCHARSET}, RTF_FCHARSET},
-{{sRTF_FALT}, RTF_FALT},
-{{sRTF_FPRQ}, RTF_FPRQ},
-{{sRTF_COLORTBL}, RTF_COLORTBL},
-{{sRTF_RED}, RTF_RED},
-{{sRTF_GREEN}, RTF_GREEN},
-{{sRTF_BLUE}, RTF_BLUE},
-{{sRTF_CF}, RTF_CF},
-{{sRTF_CB}, RTF_CB},
-{{sRTF_INFO}, RTF_INFO},
-{{sRTF_TITLE}, RTF_TITLE},
-{{sRTF_SUBJECT}, RTF_SUBJECT},
-{{sRTF_AUTHOR}, RTF_AUTHOR},
-{{sRTF_OPERATOR}, RTF_OPERATOR},
-{{sRTF_KEYWORDS}, RTF_KEYWORDS},
-{{sRTF_COMMENT}, RTF_COMMENT},
-{{sRTF_VERSION}, RTF_VERSION},
-{{sRTF_DOCCOMM}, RTF_DOCCOMM},
-{{sRTF_VERN}, RTF_VERN},
-{{sRTF_CREATIM}, RTF_CREATIM},
-{{sRTF_REVTIM}, RTF_REVTIM},
-{{sRTF_PRINTIM}, RTF_PRINTIM},
-{{sRTF_BUPTIM}, RTF_BUPTIM},
-{{sRTF_EDMINS}, RTF_EDMINS},
-{{sRTF_NOFPAGES}, RTF_NOFPAGES},
-{{sRTF_NOFWORDS}, RTF_NOFWORDS},
-{{sRTF_NOFCHARS}, RTF_NOFCHARS},
-{{sRTF_ID}, RTF_ID},
-{{sRTF_YR}, RTF_YR},
-{{sRTF_MO}, RTF_MO},
-{{sRTF_DY}, RTF_DY},
-{{sRTF_HR}, RTF_HR},
-{{sRTF_MIN}, RTF_MIN},
-{{sRTF_ANNOTATION}, RTF_ANNOTATION},
-{{sRTF_ATNID}, RTF_ATNID},
-{{sRTF_FOOTNOTE}, RTF_FOOTNOTE},
-{{sRTF_FOOTER}, RTF_FOOTER},
-{{sRTF_FOOTERL}, RTF_FOOTERL},
-{{sRTF_FOOTERR}, RTF_FOOTERR},
-{{sRTF_FOOTERF}, RTF_FOOTERF},
-{{sRTF_HEADER}, RTF_HEADER},
-{{sRTF_HEADERL}, RTF_HEADERL},
-{{sRTF_HEADERR}, RTF_HEADERR},
-{{sRTF_HEADERF}, RTF_HEADERF},
-{{sRTF_XE}, RTF_XE},
-{{sRTF_BXE}, RTF_BXE},
-{{sRTF_IXE}, RTF_IXE},
-{{sRTF_RXE}, RTF_RXE},
-{{sRTF_TXE}, RTF_TXE},
-{{sRTF_TC}, RTF_TC},
-{{sRTF_TCF}, RTF_TCF},
-{{sRTF_TCL}, RTF_TCL},
-{{sRTF_BKMKSTART}, RTF_BKMKSTART},
-{{sRTF_BKMKEND}, RTF_BKMKEND},
-{{sRTF_PICT}, RTF_PICT},
-{{sRTF_PICW}, RTF_PICW},
-{{sRTF_PICH}, RTF_PICH},
-{{sRTF_WBMBITSPIXEL}, RTF_WBMBITSPIXEL},
-{{sRTF_WBMPLANES}, RTF_WBMPLANES},
-{{sRTF_WBMWIDTHBYTES}, RTF_WBMWIDTHBYTES},
-{{sRTF_PICWGOAL}, RTF_PICWGOAL},
-{{sRTF_PICHGOAL}, RTF_PICHGOAL},
-{{sRTF_BIN}, RTF_BIN},
-{{sRTF_PICSCALEX}, RTF_PICSCALEX},
-{{sRTF_PICSCALEY}, RTF_PICSCALEY},
-{{sRTF_PICSCALED}, RTF_PICSCALED},
-{{sRTF_WBITMAP}, RTF_WBITMAP},
-{{sRTF_WMETAFILE}, RTF_WMETAFILE},
-{{sRTF_MACPICT}, RTF_MACPICT},
-{{sRTF_PICCROPT}, RTF_PICCROPT},
-{{sRTF_PICCROPB}, RTF_PICCROPB},
-{{sRTF_PICCROPL}, RTF_PICCROPL},
-{{sRTF_PICCROPR}, RTF_PICCROPR},
-{{sRTF_FIELD}, RTF_FIELD},
-{{sRTF_FLDDIRTY}, RTF_FLDDIRTY},
-{{sRTF_FLDEDIT}, RTF_FLDEDIT},
-{{sRTF_FLDLOCK}, RTF_FLDLOCK},
-{{sRTF_FLDPRIV}, RTF_FLDPRIV},
-{{sRTF_FLDINST}, RTF_FLDINST},
-{{sRTF_FLDRSLT}, RTF_FLDRSLT},
-{{sRTF_PAPERW}, RTF_PAPERW},
-{{sRTF_PAPERH}, RTF_PAPERH},
-{{sRTF_MARGL}, RTF_MARGL},
-{{sRTF_MARGR}, RTF_MARGR},
-{{sRTF_MARGT}, RTF_MARGT},
-{{sRTF_MARGB}, RTF_MARGB},
-{{sRTF_FACINGP}, RTF_FACINGP},
-{{sRTF_GUTTER}, RTF_GUTTER},
-{{sRTF_DEFTAB}, RTF_DEFTAB},
-{{sRTF_WIDOWCTRL}, RTF_WIDOWCTRL},
-{{sRTF_HYPHHOTZ}, RTF_HYPHHOTZ},
-{{sRTF_FTNSEP}, RTF_FTNSEP},
-{{sRTF_FTNSEPC}, RTF_FTNSEPC},
-{{sRTF_FTNCN}, RTF_FTNCN},
-{{sRTF_ENDNOTES}, RTF_ENDNOTES},
-{{sRTF_ENDDOC}, RTF_ENDDOC},
-{{sRTF_FTNTJ}, RTF_FTNTJ},
-{{sRTF_FTNBJ}, RTF_FTNBJ},
-{{sRTF_FTNSTART}, RTF_FTNSTART},
-{{sRTF_FTNRESTART}, RTF_FTNRESTART},
-{{sRTF_PGNSTART}, RTF_PGNSTART},
-{{sRTF_LINESTART}, RTF_LINESTART},
-{{sRTF_LANDSCAPE}, RTF_LANDSCAPE},
-{{sRTF_FRACWIDTH}, RTF_FRACWIDTH},
-{{sRTF_NEXTFILE}, RTF_NEXTFILE},
-{{sRTF_TEMPLATE}, RTF_TEMPLATE},
-{{sRTF_MAKEBACKUP}, RTF_MAKEBACKUP},
-{{sRTF_DEFFORMAT}, RTF_DEFFORMAT},
-{{sRTF_REVISIONS}, RTF_REVISIONS},
-{{sRTF_MARGMIRROR}, RTF_MARGMIRROR},
-{{sRTF_REVPROP}, RTF_REVPROP},
-{{sRTF_REVBAR}, RTF_REVBAR},
-{{sRTF_SECTD}, RTF_SECTD},
-{{sRTF_SBKNONE}, RTF_SBKNONE},
-{{sRTF_SBKCOL}, RTF_SBKCOL},
-{{sRTF_SBKPAGE}, RTF_SBKPAGE},
-{{sRTF_SBKEVEN}, RTF_SBKEVEN},
-{{sRTF_SBKODD}, RTF_SBKODD},
-{{sRTF_PGNSTARTS}, RTF_PGNSTARTS},
-{{sRTF_PGNCONT}, RTF_PGNCONT},
-{{sRTF_PGNRESTART}, RTF_PGNRESTART},
-{{sRTF_PGNDEC}, RTF_PGNDEC},
-{{sRTF_PGNUCRM}, RTF_PGNUCRM},
-{{sRTF_PGNLCRM}, RTF_PGNLCRM},
-{{sRTF_PGNUCLTR}, RTF_PGNUCLTR},
-{{sRTF_PGNLCLTR}, RTF_PGNLCLTR},
-{{sRTF_PGNX}, RTF_PGNX},
-{{sRTF_PGNY}, RTF_PGNY},
-{{sRTF_HEADERY}, RTF_HEADERY},
-{{sRTF_FOOTERY}, RTF_FOOTERY},
-{{sRTF_LINEMOD}, RTF_LINEMOD},
-{{sRTF_LINEX}, RTF_LINEX},
-{{sRTF_LINESTARTS}, RTF_LINESTARTS},
-{{sRTF_LINERESTART}, RTF_LINERESTART},
-{{sRTF_LINEPPAGE}, RTF_LINEPAGE},
-{{sRTF_LINECONT}, RTF_LINECONT},
-{{sRTF_VERTALT}, RTF_VERTALT},
-{{sRTF_VERTALB}, RTF_VERTALB},
-{{sRTF_VERTALC}, RTF_VERTALC},
-{{sRTF_VERTALJ}, RTF_VERTALJ},
-{{sRTF_COLS}, RTF_COLS},
-{{sRTF_COLSX}, RTF_COLSX},
-{{sRTF_COLNO}, RTF_COLNO},
-{{sRTF_COLSR}, RTF_COLSR},
-{{sRTF_COLW}, RTF_COLW},
-{{sRTF_LINEBETCOL}, RTF_LINEBETCOL},
-{{sRTF_ENDNHERE}, RTF_ENDNHERE},
-{{sRTF_TITLEPG}, RTF_TITLEPG},
-{{sRTF_PARD}, RTF_PARD},
-{{sRTF_S}, RTF_S},
-{{sRTF_QL}, RTF_QL},
-{{sRTF_QR}, RTF_QR},
-{{sRTF_QJ}, RTF_QJ},
-{{sRTF_QC}, RTF_QC},
-{{sRTF_FI}, RTF_FI},
-{{sRTF_LI}, RTF_LI},
-{{sRTF_LIN}, RTF_LIN},
-{{sRTF_RI}, RTF_RI},
-{{sRTF_RIN}, RTF_RIN},
-{{sRTF_SB}, RTF_SB},
-{{sRTF_SA}, RTF_SA},
-{{sRTF_SL}, RTF_SL},
-{{sRTF_INTBL}, RTF_INTBL},
-{{sRTF_KEEP}, RTF_KEEP},
-{{sRTF_KEEPN}, RTF_KEEPN},
-{{sRTF_LEVEL}, RTF_LEVEL},
-{{sRTF_SBYS}, RTF_SBYS},
-{{sRTF_PAGEBB}, RTF_PAGEBB},
-{{sRTF_NOLINE}, RTF_NOLINE},
-{{sRTF_TX}, RTF_TX},
-{{sRTF_TQL}, RTF_TQL},
-{{sRTF_TQR}, RTF_TQR},
-{{sRTF_TQC}, RTF_TQC},
-{{sRTF_TQDEC}, RTF_TQDEC},
-{{sRTF_TB}, RTF_TB},
-{{sRTF_BRDRT}, RTF_BRDRT},
-{{sRTF_BRDRB}, RTF_BRDRB},
-{{sRTF_BRDRL}, RTF_BRDRL},
-{{sRTF_BRDRR}, RTF_BRDRR},
-{{sRTF_BOX}, RTF_BOX},
-{{sRTF_BRDRS}, RTF_BRDRS},
-{{sRTF_BRDRTH}, RTF_BRDRTH},
-{{sRTF_BRDRSH}, RTF_BRDRSH},
-{{sRTF_BRDRDB}, RTF_BRDRDB},
-{{sRTF_BRDRDOT}, RTF_BRDRDOT},
-{{sRTF_BRDRHAIR}, RTF_BRDRHAIR},
-{{sRTF_BRSP}, RTF_BRSP},
-{{sRTF_TLDOT}, RTF_TLDOT},
-{{sRTF_TLHYPH}, RTF_TLHYPH},
-{{sRTF_TLUL}, RTF_TLUL},
-{{sRTF_TLTH}, RTF_TLTH},
-{{sRTF_POSX}, RTF_POSX},
-{{sRTF_POSXC}, RTF_POSXC},
-{{sRTF_POSXI}, RTF_POSXI},
-{{sRTF_POSXL}, RTF_POSXL},
-{{sRTF_POSXO}, RTF_POSXO},
-{{sRTF_POSXR}, RTF_POSXR},
-{{sRTF_POSY}, RTF_POSY},
-{{sRTF_POSYIL}, RTF_POSYIL},
-{{sRTF_POSYT}, RTF_POSYT},
-{{sRTF_POSYC}, RTF_POSYC},
-{{sRTF_POSYB}, RTF_POSYB},
-{{sRTF_ABSW}, RTF_ABSW},
-{{sRTF_DXFRTEXT}, RTF_DXFRTEXT},
-{{sRTF_PVMRG}, RTF_PVMRG},
-{{sRTF_PVPG}, RTF_PVPG},
-{{sRTF_PHMRG}, RTF_PHMRG},
-{{sRTF_PHPG}, RTF_PHPG},
-{{sRTF_PHCOL}, RTF_PHCOL},
-{{sRTF_CLBRDRB}, RTF_CLBRDRB},
-{{sRTF_CLBRDRT}, RTF_CLBRDRT},
-{{sRTF_CLBRDRL}, RTF_CLBRDRL},
-{{sRTF_CLBRDRR}, RTF_CLBRDRR},
-{{sRTF_CLPADL}, RTF_CLPADL},
-{{sRTF_CLPADT}, RTF_CLPADT},
-{{sRTF_CLPADB}, RTF_CLPADB},
-{{sRTF_CLPADR}, RTF_CLPADR},
-{{sRTF_CLPADFL}, RTF_CLPADFL},
-{{sRTF_CLPADFT}, RTF_CLPADFT},
-{{sRTF_CLPADFB}, RTF_CLPADFB},
-{{sRTF_CLPADFR}, RTF_CLPADFR},
-{{sRTF_TROWD}, RTF_TROWD},
-{{sRTF_TRQL}, RTF_TRQL},
-{{sRTF_TRQR}, RTF_TRQR},
-{{sRTF_TRQC}, RTF_TRQC},
-{{sRTF_TRGAPH}, RTF_TRGAPH},
-{{sRTF_TRRH}, RTF_TRRH},
-{{sRTF_TRLEFT}, RTF_TRLEFT},
-{{sRTF_CELLX}, RTF_CELLX},
-{{sRTF_CLMGF}, RTF_CLMGF},
-{{sRTF_CLMRG}, RTF_CLMRG},
-{{sRTF_PLAIN}, RTF_PLAIN},
-{{sRTF_B}, RTF_B},
-{{sRTF_I}, RTF_I},
-{{sRTF_STRIKE}, RTF_STRIKE},
-{{sRTF_OUTL}, RTF_OUTL},
-{{sRTF_SHAD}, RTF_SHAD},
-{{sRTF_SCAPS}, RTF_SCAPS},
-{{sRTF_CAPS}, RTF_CAPS},
-{{sRTF_V}, RTF_V},
-{{sRTF_F}, RTF_F},
-{{sRTF_FS}, RTF_FS},
-{{sRTF_EXPND}, RTF_EXPND},
-{{sRTF_EXPNDTW}, RTF_EXPNDTW},
-{{sRTF_KERNING}, RTF_KERNING},
-{{sRTF_UL}, RTF_UL},
-{{sRTF_ULW}, RTF_ULW},
-{{sRTF_ULD}, RTF_ULD},
-{{sRTF_ULDB}, RTF_ULDB},
-{{sRTF_ULNONE}, RTF_ULNONE},
-{{sRTF_UP}, RTF_UP},
-{{sRTF_DN}, RTF_DN},
-{{sRTF_REVISED}, RTF_REVISED},
-{{sRTF_SUB}, RTF_SUB},
-{{sRTF_NOSUPERSUB}, RTF_NOSUPERSUB},
-{{sRTF_SUPER}, RTF_SUPER},
-{{sRTF_CHDATE}, RTF_CHDATE},
-{{sRTF_CHTIME}, RTF_CHTIME},
-{{sRTF_CHPGN}, RTF_CHPGN},
-{{sRTF_CHFTN}, RTF_CHFTN},
-{{sRTF_CHATN}, RTF_CHATN},
-{{sRTF_CHFTNSEP}, RTF_CHFTNSEP},
-{{sRTF_CHFTNSEPC}, RTF_CHFTNSEPC},
-{{sRTF_FORMULA}, RTF_FORMULA},
-{{sRTF_NOBREAK}, RTF_NONBREAKINGSPACE},
-{{sRTF_OPTHYPH}, RTF_OPTIONALHYPHEN},
-{{sRTF_NOBRKHYPH}, RTF_NONBREAKINGHYPHEN},
-{{sRTF_HEXCHAR}, RTF_HEX},
-{{sRTF_CELL}, RTF_CELL},
-{{sRTF_ROW}, RTF_ROW},
-{{sRTF_PAR}, RTF_PAR},
-{{sRTF_SECT}, RTF_SECT},
-{{sRTF_PAGE}, RTF_PAGE},
-{{sRTF_COLUMN}, RTF_COLUM},
-{{sRTF_LINE}, RTF_LINE},
-{{sRTF_TAB}, RTF_TAB},
-{{sRTF_SUBENTRY}, RTF_SUBENTRYINDEX},
+{{OOO_STRING_SVTOOLS_RTF_IGNORE}, RTF_IGNOREFLAG},
+{{OOO_STRING_SVTOOLS_RTF_RTF}, RTF_RTF},
+{{OOO_STRING_SVTOOLS_RTF_ANSI}, RTF_ANSITYPE},
+{{OOO_STRING_SVTOOLS_RTF_MAC}, RTF_MACTYPE},
+{{OOO_STRING_SVTOOLS_RTF_PC}, RTF_PCTYPE},
+{{OOO_STRING_SVTOOLS_RTF_PCA}, RTF_PCATYPE},
+{{OOO_STRING_SVTOOLS_RTF_NEXTCSET}, RTF_NEXTTYPE},
+{{OOO_STRING_SVTOOLS_RTF_STYLESHEET}, RTF_STYLESHEET},
+{{OOO_STRING_SVTOOLS_RTF_SBASEDON}, RTF_SBASEDON},
+{{OOO_STRING_SVTOOLS_RTF_SNEXT}, RTF_SNEXT},
+{{OOO_STRING_SVTOOLS_RTF_FONTTBL}, RTF_FONTTBL},
+{{OOO_STRING_SVTOOLS_RTF_DEFF}, RTF_DEFF},
+{{OOO_STRING_SVTOOLS_RTF_FNIL}, RTF_FNIL},
+{{OOO_STRING_SVTOOLS_RTF_FROMAN}, RTF_FROMAN},
+{{OOO_STRING_SVTOOLS_RTF_FSWISS}, RTF_FSWISS},
+{{OOO_STRING_SVTOOLS_RTF_FMODERN}, RTF_FMODERN},
+{{OOO_STRING_SVTOOLS_RTF_FSCRIPT}, RTF_FSCRIPT},
+{{OOO_STRING_SVTOOLS_RTF_FDECOR}, RTF_FDECOR},
+{{OOO_STRING_SVTOOLS_RTF_FTECH}, RTF_FTECH},
+{{OOO_STRING_SVTOOLS_RTF_FCHARSET}, RTF_FCHARSET},
+{{OOO_STRING_SVTOOLS_RTF_FALT}, RTF_FALT},
+{{OOO_STRING_SVTOOLS_RTF_FPRQ}, RTF_FPRQ},
+{{OOO_STRING_SVTOOLS_RTF_COLORTBL}, RTF_COLORTBL},
+{{OOO_STRING_SVTOOLS_RTF_RED}, RTF_RED},
+{{OOO_STRING_SVTOOLS_RTF_GREEN}, RTF_GREEN},
+{{OOO_STRING_SVTOOLS_RTF_BLUE}, RTF_BLUE},
+{{OOO_STRING_SVTOOLS_RTF_CF}, RTF_CF},
+{{OOO_STRING_SVTOOLS_RTF_CB}, RTF_CB},
+{{OOO_STRING_SVTOOLS_RTF_INFO}, RTF_INFO},
+{{OOO_STRING_SVTOOLS_RTF_TITLE}, RTF_TITLE},
+{{OOO_STRING_SVTOOLS_RTF_SUBJECT}, RTF_SUBJECT},
+{{OOO_STRING_SVTOOLS_RTF_AUTHOR}, RTF_AUTHOR},
+{{OOO_STRING_SVTOOLS_RTF_OPERATOR}, RTF_OPERATOR},
+{{OOO_STRING_SVTOOLS_RTF_KEYWORDS}, RTF_KEYWORDS},
+{{OOO_STRING_SVTOOLS_RTF_COMMENT}, RTF_COMMENT},
+{{OOO_STRING_SVTOOLS_RTF_VERSION}, RTF_VERSION},
+{{OOO_STRING_SVTOOLS_RTF_DOCCOMM}, RTF_DOCCOMM},
+{{OOO_STRING_SVTOOLS_RTF_VERN}, RTF_VERN},
+{{OOO_STRING_SVTOOLS_RTF_CREATIM}, RTF_CREATIM},
+{{OOO_STRING_SVTOOLS_RTF_REVTIM}, RTF_REVTIM},
+{{OOO_STRING_SVTOOLS_RTF_PRINTIM}, RTF_PRINTIM},
+{{OOO_STRING_SVTOOLS_RTF_BUPTIM}, RTF_BUPTIM},
+{{OOO_STRING_SVTOOLS_RTF_EDMINS}, RTF_EDMINS},
+{{OOO_STRING_SVTOOLS_RTF_NOFPAGES}, RTF_NOFPAGES},
+{{OOO_STRING_SVTOOLS_RTF_NOFWORDS}, RTF_NOFWORDS},
+{{OOO_STRING_SVTOOLS_RTF_NOFCHARS}, RTF_NOFCHARS},
+{{OOO_STRING_SVTOOLS_RTF_ID}, RTF_ID},
+{{OOO_STRING_SVTOOLS_RTF_YR}, RTF_YR},
+{{OOO_STRING_SVTOOLS_RTF_MO}, RTF_MO},
+{{OOO_STRING_SVTOOLS_RTF_DY}, RTF_DY},
+{{OOO_STRING_SVTOOLS_RTF_HR}, RTF_HR},
+{{OOO_STRING_SVTOOLS_RTF_MIN}, RTF_MIN},
+{{OOO_STRING_SVTOOLS_RTF_ANNOTATION}, RTF_ANNOTATION},
+{{OOO_STRING_SVTOOLS_RTF_ATNID}, RTF_ATNID},
+{{OOO_STRING_SVTOOLS_RTF_FOOTNOTE}, RTF_FOOTNOTE},
+{{OOO_STRING_SVTOOLS_RTF_FOOTER}, RTF_FOOTER},
+{{OOO_STRING_SVTOOLS_RTF_FOOTERL}, RTF_FOOTERL},
+{{OOO_STRING_SVTOOLS_RTF_FOOTERR}, RTF_FOOTERR},
+{{OOO_STRING_SVTOOLS_RTF_FOOTERF}, RTF_FOOTERF},
+{{OOO_STRING_SVTOOLS_RTF_HEADER}, RTF_HEADER},
+{{OOO_STRING_SVTOOLS_RTF_HEADERL}, RTF_HEADERL},
+{{OOO_STRING_SVTOOLS_RTF_HEADERR}, RTF_HEADERR},
+{{OOO_STRING_SVTOOLS_RTF_HEADERF}, RTF_HEADERF},
+{{OOO_STRING_SVTOOLS_RTF_XE}, RTF_XE},
+{{OOO_STRING_SVTOOLS_RTF_BXE}, RTF_BXE},
+{{OOO_STRING_SVTOOLS_RTF_IXE}, RTF_IXE},
+{{OOO_STRING_SVTOOLS_RTF_RXE}, RTF_RXE},
+{{OOO_STRING_SVTOOLS_RTF_TXE}, RTF_TXE},
+{{OOO_STRING_SVTOOLS_RTF_TC}, RTF_TC},
+{{OOO_STRING_SVTOOLS_RTF_TCF}, RTF_TCF},
+{{OOO_STRING_SVTOOLS_RTF_TCL}, RTF_TCL},
+{{OOO_STRING_SVTOOLS_RTF_BKMKSTART}, RTF_BKMKSTART},
+{{OOO_STRING_SVTOOLS_RTF_BKMKEND}, RTF_BKMKEND},
+{{OOO_STRING_SVTOOLS_RTF_PICT}, RTF_PICT},
+{{OOO_STRING_SVTOOLS_RTF_PICW}, RTF_PICW},
+{{OOO_STRING_SVTOOLS_RTF_PICH}, RTF_PICH},
+{{OOO_STRING_SVTOOLS_RTF_WBMBITSPIXEL}, RTF_WBMBITSPIXEL},
+{{OOO_STRING_SVTOOLS_RTF_WBMPLANES}, RTF_WBMPLANES},
+{{OOO_STRING_SVTOOLS_RTF_WBMWIDTHBYTES}, RTF_WBMWIDTHBYTES},
+{{OOO_STRING_SVTOOLS_RTF_PICWGOAL}, RTF_PICWGOAL},
+{{OOO_STRING_SVTOOLS_RTF_PICHGOAL}, RTF_PICHGOAL},
+{{OOO_STRING_SVTOOLS_RTF_BIN}, RTF_BIN},
+{{OOO_STRING_SVTOOLS_RTF_PICSCALEX}, RTF_PICSCALEX},
+{{OOO_STRING_SVTOOLS_RTF_PICSCALEY}, RTF_PICSCALEY},
+{{OOO_STRING_SVTOOLS_RTF_PICSCALED}, RTF_PICSCALED},
+{{OOO_STRING_SVTOOLS_RTF_WBITMAP}, RTF_WBITMAP},
+{{OOO_STRING_SVTOOLS_RTF_WMETAFILE}, RTF_WMETAFILE},
+{{OOO_STRING_SVTOOLS_RTF_MACPICT}, RTF_MACPICT},
+{{OOO_STRING_SVTOOLS_RTF_PICCROPT}, RTF_PICCROPT},
+{{OOO_STRING_SVTOOLS_RTF_PICCROPB}, RTF_PICCROPB},
+{{OOO_STRING_SVTOOLS_RTF_PICCROPL}, RTF_PICCROPL},
+{{OOO_STRING_SVTOOLS_RTF_PICCROPR}, RTF_PICCROPR},
+{{OOO_STRING_SVTOOLS_RTF_FIELD}, RTF_FIELD},
+{{OOO_STRING_SVTOOLS_RTF_FLDDIRTY}, RTF_FLDDIRTY},
+{{OOO_STRING_SVTOOLS_RTF_FLDEDIT}, RTF_FLDEDIT},
+{{OOO_STRING_SVTOOLS_RTF_FLDLOCK}, RTF_FLDLOCK},
+{{OOO_STRING_SVTOOLS_RTF_FLDPRIV}, RTF_FLDPRIV},
+{{OOO_STRING_SVTOOLS_RTF_FLDINST}, RTF_FLDINST},
+{{OOO_STRING_SVTOOLS_RTF_FLDRSLT}, RTF_FLDRSLT},
+{{OOO_STRING_SVTOOLS_RTF_PAPERW}, RTF_PAPERW},
+{{OOO_STRING_SVTOOLS_RTF_PAPERH}, RTF_PAPERH},
+{{OOO_STRING_SVTOOLS_RTF_MARGL}, RTF_MARGL},
+{{OOO_STRING_SVTOOLS_RTF_MARGR}, RTF_MARGR},
+{{OOO_STRING_SVTOOLS_RTF_MARGT}, RTF_MARGT},
+{{OOO_STRING_SVTOOLS_RTF_MARGB}, RTF_MARGB},
+{{OOO_STRING_SVTOOLS_RTF_FACINGP}, RTF_FACINGP},
+{{OOO_STRING_SVTOOLS_RTF_GUTTER}, RTF_GUTTER},
+{{OOO_STRING_SVTOOLS_RTF_DEFTAB}, RTF_DEFTAB},
+{{OOO_STRING_SVTOOLS_RTF_WIDOWCTRL}, RTF_WIDOWCTRL},
+{{OOO_STRING_SVTOOLS_RTF_HYPHHOTZ}, RTF_HYPHHOTZ},
+{{OOO_STRING_SVTOOLS_RTF_FTNSEP}, RTF_FTNSEP},
+{{OOO_STRING_SVTOOLS_RTF_FTNSEPC}, RTF_FTNSEPC},
+{{OOO_STRING_SVTOOLS_RTF_FTNCN}, RTF_FTNCN},
+{{OOO_STRING_SVTOOLS_RTF_ENDNOTES}, RTF_ENDNOTES},
+{{OOO_STRING_SVTOOLS_RTF_ENDDOC}, RTF_ENDDOC},
+{{OOO_STRING_SVTOOLS_RTF_FTNTJ}, RTF_FTNTJ},
+{{OOO_STRING_SVTOOLS_RTF_FTNBJ}, RTF_FTNBJ},
+{{OOO_STRING_SVTOOLS_RTF_FTNSTART}, RTF_FTNSTART},
+{{OOO_STRING_SVTOOLS_RTF_FTNRESTART}, RTF_FTNRESTART},
+{{OOO_STRING_SVTOOLS_RTF_PGNSTART}, RTF_PGNSTART},
+{{OOO_STRING_SVTOOLS_RTF_LINESTART}, RTF_LINESTART},
+{{OOO_STRING_SVTOOLS_RTF_LANDSCAPE}, RTF_LANDSCAPE},
+{{OOO_STRING_SVTOOLS_RTF_FRACWIDTH}, RTF_FRACWIDTH},
+{{OOO_STRING_SVTOOLS_RTF_NEXTFILE}, RTF_NEXTFILE},
+{{OOO_STRING_SVTOOLS_RTF_TEMPLATE}, RTF_TEMPLATE},
+{{OOO_STRING_SVTOOLS_RTF_MAKEBACKUP}, RTF_MAKEBACKUP},
+{{OOO_STRING_SVTOOLS_RTF_DEFFORMAT}, RTF_DEFFORMAT},
+{{OOO_STRING_SVTOOLS_RTF_REVISIONS}, RTF_REVISIONS},
+{{OOO_STRING_SVTOOLS_RTF_MARGMIRROR}, RTF_MARGMIRROR},
+{{OOO_STRING_SVTOOLS_RTF_REVPROP}, RTF_REVPROP},
+{{OOO_STRING_SVTOOLS_RTF_REVBAR}, RTF_REVBAR},
+{{OOO_STRING_SVTOOLS_RTF_SECTD}, RTF_SECTD},
+{{OOO_STRING_SVTOOLS_RTF_SBKNONE}, RTF_SBKNONE},
+{{OOO_STRING_SVTOOLS_RTF_SBKCOL}, RTF_SBKCOL},
+{{OOO_STRING_SVTOOLS_RTF_SBKPAGE}, RTF_SBKPAGE},
+{{OOO_STRING_SVTOOLS_RTF_SBKEVEN}, RTF_SBKEVEN},
+{{OOO_STRING_SVTOOLS_RTF_SBKODD}, RTF_SBKODD},
+{{OOO_STRING_SVTOOLS_RTF_PGNSTARTS}, RTF_PGNSTARTS},
+{{OOO_STRING_SVTOOLS_RTF_PGNCONT}, RTF_PGNCONT},
+{{OOO_STRING_SVTOOLS_RTF_PGNRESTART}, RTF_PGNRESTART},
+{{OOO_STRING_SVTOOLS_RTF_PGNDEC}, RTF_PGNDEC},
+{{OOO_STRING_SVTOOLS_RTF_PGNUCRM}, RTF_PGNUCRM},
+{{OOO_STRING_SVTOOLS_RTF_PGNLCRM}, RTF_PGNLCRM},
+{{OOO_STRING_SVTOOLS_RTF_PGNUCLTR}, RTF_PGNUCLTR},
+{{OOO_STRING_SVTOOLS_RTF_PGNLCLTR}, RTF_PGNLCLTR},
+{{OOO_STRING_SVTOOLS_RTF_PGNX}, RTF_PGNX},
+{{OOO_STRING_SVTOOLS_RTF_PGNY}, RTF_PGNY},
+{{OOO_STRING_SVTOOLS_RTF_HEADERY}, RTF_HEADERY},
+{{OOO_STRING_SVTOOLS_RTF_FOOTERY}, RTF_FOOTERY},
+{{OOO_STRING_SVTOOLS_RTF_LINEMOD}, RTF_LINEMOD},
+{{OOO_STRING_SVTOOLS_RTF_LINEX}, RTF_LINEX},
+{{OOO_STRING_SVTOOLS_RTF_LINESTARTS}, RTF_LINESTARTS},
+{{OOO_STRING_SVTOOLS_RTF_LINERESTART}, RTF_LINERESTART},
+{{OOO_STRING_SVTOOLS_RTF_LINEPPAGE}, RTF_LINEPAGE},
+{{OOO_STRING_SVTOOLS_RTF_LINECONT}, RTF_LINECONT},
+{{OOO_STRING_SVTOOLS_RTF_VERTALT}, RTF_VERTALT},
+{{OOO_STRING_SVTOOLS_RTF_VERTALB}, RTF_VERTALB},
+{{OOO_STRING_SVTOOLS_RTF_VERTALC}, RTF_VERTALC},
+{{OOO_STRING_SVTOOLS_RTF_VERTALJ}, RTF_VERTALJ},
+{{OOO_STRING_SVTOOLS_RTF_COLS}, RTF_COLS},
+{{OOO_STRING_SVTOOLS_RTF_COLSX}, RTF_COLSX},
+{{OOO_STRING_SVTOOLS_RTF_COLNO}, RTF_COLNO},
+{{OOO_STRING_SVTOOLS_RTF_COLSR}, RTF_COLSR},
+{{OOO_STRING_SVTOOLS_RTF_COLW}, RTF_COLW},
+{{OOO_STRING_SVTOOLS_RTF_LINEBETCOL}, RTF_LINEBETCOL},
+{{OOO_STRING_SVTOOLS_RTF_ENDNHERE}, RTF_ENDNHERE},
+{{OOO_STRING_SVTOOLS_RTF_TITLEPG}, RTF_TITLEPG},
+{{OOO_STRING_SVTOOLS_RTF_PARD}, RTF_PARD},
+{{OOO_STRING_SVTOOLS_RTF_S}, RTF_S},
+{{OOO_STRING_SVTOOLS_RTF_QL}, RTF_QL},
+{{OOO_STRING_SVTOOLS_RTF_QR}, RTF_QR},
+{{OOO_STRING_SVTOOLS_RTF_QJ}, RTF_QJ},
+{{OOO_STRING_SVTOOLS_RTF_QC}, RTF_QC},
+{{OOO_STRING_SVTOOLS_RTF_FI}, RTF_FI},
+{{OOO_STRING_SVTOOLS_RTF_LI}, RTF_LI},
+{{OOO_STRING_SVTOOLS_RTF_LIN}, RTF_LIN},
+{{OOO_STRING_SVTOOLS_RTF_RI}, RTF_RI},
+{{OOO_STRING_SVTOOLS_RTF_RIN}, RTF_RIN},
+{{OOO_STRING_SVTOOLS_RTF_SB}, RTF_SB},
+{{OOO_STRING_SVTOOLS_RTF_SA}, RTF_SA},
+{{OOO_STRING_SVTOOLS_RTF_SL}, RTF_SL},
+{{OOO_STRING_SVTOOLS_RTF_INTBL}, RTF_INTBL},
+{{OOO_STRING_SVTOOLS_RTF_KEEP}, RTF_KEEP},
+{{OOO_STRING_SVTOOLS_RTF_KEEPN}, RTF_KEEPN},
+{{OOO_STRING_SVTOOLS_RTF_LEVEL}, RTF_LEVEL},
+{{OOO_STRING_SVTOOLS_RTF_SBYS}, RTF_SBYS},
+{{OOO_STRING_SVTOOLS_RTF_PAGEBB}, RTF_PAGEBB},
+{{OOO_STRING_SVTOOLS_RTF_NOLINE}, RTF_NOLINE},
+{{OOO_STRING_SVTOOLS_RTF_TX}, RTF_TX},
+{{OOO_STRING_SVTOOLS_RTF_TQL}, RTF_TQL},
+{{OOO_STRING_SVTOOLS_RTF_TQR}, RTF_TQR},
+{{OOO_STRING_SVTOOLS_RTF_TQC}, RTF_TQC},
+{{OOO_STRING_SVTOOLS_RTF_TQDEC}, RTF_TQDEC},
+{{OOO_STRING_SVTOOLS_RTF_TB}, RTF_TB},
+{{OOO_STRING_SVTOOLS_RTF_BRDRT}, RTF_BRDRT},
+{{OOO_STRING_SVTOOLS_RTF_BRDRB}, RTF_BRDRB},
+{{OOO_STRING_SVTOOLS_RTF_BRDRL}, RTF_BRDRL},
+{{OOO_STRING_SVTOOLS_RTF_BRDRR}, RTF_BRDRR},
+{{OOO_STRING_SVTOOLS_RTF_BOX}, RTF_BOX},
+{{OOO_STRING_SVTOOLS_RTF_BRDRS}, RTF_BRDRS},
+{{OOO_STRING_SVTOOLS_RTF_BRDRTH}, RTF_BRDRTH},
+{{OOO_STRING_SVTOOLS_RTF_BRDRSH}, RTF_BRDRSH},
+{{OOO_STRING_SVTOOLS_RTF_BRDRDB}, RTF_BRDRDB},
+{{OOO_STRING_SVTOOLS_RTF_BRDRDOT}, RTF_BRDRDOT},
+{{OOO_STRING_SVTOOLS_RTF_BRDRHAIR}, RTF_BRDRHAIR},
+{{OOO_STRING_SVTOOLS_RTF_BRSP}, RTF_BRSP},
+{{OOO_STRING_SVTOOLS_RTF_TLDOT}, RTF_TLDOT},
+{{OOO_STRING_SVTOOLS_RTF_TLHYPH}, RTF_TLHYPH},
+{{OOO_STRING_SVTOOLS_RTF_TLUL}, RTF_TLUL},
+{{OOO_STRING_SVTOOLS_RTF_TLTH}, RTF_TLTH},
+{{OOO_STRING_SVTOOLS_RTF_POSX}, RTF_POSX},
+{{OOO_STRING_SVTOOLS_RTF_POSXC}, RTF_POSXC},
+{{OOO_STRING_SVTOOLS_RTF_POSXI}, RTF_POSXI},
+{{OOO_STRING_SVTOOLS_RTF_POSXL}, RTF_POSXL},
+{{OOO_STRING_SVTOOLS_RTF_POSXO}, RTF_POSXO},
+{{OOO_STRING_SVTOOLS_RTF_POSXR}, RTF_POSXR},
+{{OOO_STRING_SVTOOLS_RTF_POSY}, RTF_POSY},
+{{OOO_STRING_SVTOOLS_RTF_POSYIL}, RTF_POSYIL},
+{{OOO_STRING_SVTOOLS_RTF_POSYT}, RTF_POSYT},
+{{OOO_STRING_SVTOOLS_RTF_POSYC}, RTF_POSYC},
+{{OOO_STRING_SVTOOLS_RTF_POSYB}, RTF_POSYB},
+{{OOO_STRING_SVTOOLS_RTF_ABSW}, RTF_ABSW},
+{{OOO_STRING_SVTOOLS_RTF_DXFRTEXT}, RTF_DXFRTEXT},
+{{OOO_STRING_SVTOOLS_RTF_PVMRG}, RTF_PVMRG},
+{{OOO_STRING_SVTOOLS_RTF_PVPG}, RTF_PVPG},
+{{OOO_STRING_SVTOOLS_RTF_PHMRG}, RTF_PHMRG},
+{{OOO_STRING_SVTOOLS_RTF_PHPG}, RTF_PHPG},
+{{OOO_STRING_SVTOOLS_RTF_PHCOL}, RTF_PHCOL},
+{{OOO_STRING_SVTOOLS_RTF_CLBRDRB}, RTF_CLBRDRB},
+{{OOO_STRING_SVTOOLS_RTF_CLBRDRT}, RTF_CLBRDRT},
+{{OOO_STRING_SVTOOLS_RTF_CLBRDRL}, RTF_CLBRDRL},
+{{OOO_STRING_SVTOOLS_RTF_CLBRDRR}, RTF_CLBRDRR},
+{{OOO_STRING_SVTOOLS_RTF_CLPADL}, RTF_CLPADL},
+{{OOO_STRING_SVTOOLS_RTF_CLPADT}, RTF_CLPADT},
+{{OOO_STRING_SVTOOLS_RTF_CLPADB}, RTF_CLPADB},
+{{OOO_STRING_SVTOOLS_RTF_CLPADR}, RTF_CLPADR},
+{{OOO_STRING_SVTOOLS_RTF_CLPADFL}, RTF_CLPADFL},
+{{OOO_STRING_SVTOOLS_RTF_CLPADFT}, RTF_CLPADFT},
+{{OOO_STRING_SVTOOLS_RTF_CLPADFB}, RTF_CLPADFB},
+{{OOO_STRING_SVTOOLS_RTF_CLPADFR}, RTF_CLPADFR},
+{{OOO_STRING_SVTOOLS_RTF_TROWD}, RTF_TROWD},
+{{OOO_STRING_SVTOOLS_RTF_TRQL}, RTF_TRQL},
+{{OOO_STRING_SVTOOLS_RTF_TRQR}, RTF_TRQR},
+{{OOO_STRING_SVTOOLS_RTF_TRQC}, RTF_TRQC},
+{{OOO_STRING_SVTOOLS_RTF_TRGAPH}, RTF_TRGAPH},
+{{OOO_STRING_SVTOOLS_RTF_TRRH}, RTF_TRRH},
+{{OOO_STRING_SVTOOLS_RTF_TRLEFT}, RTF_TRLEFT},
+{{OOO_STRING_SVTOOLS_RTF_CELLX}, RTF_CELLX},
+{{OOO_STRING_SVTOOLS_RTF_CLMGF}, RTF_CLMGF},
+{{OOO_STRING_SVTOOLS_RTF_CLMRG}, RTF_CLMRG},
+{{OOO_STRING_SVTOOLS_RTF_PLAIN}, RTF_PLAIN},
+{{OOO_STRING_SVTOOLS_RTF_B}, RTF_B},
+{{OOO_STRING_SVTOOLS_RTF_I}, RTF_I},
+{{OOO_STRING_SVTOOLS_RTF_STRIKE}, RTF_STRIKE},
+{{OOO_STRING_SVTOOLS_RTF_OUTL}, RTF_OUTL},
+{{OOO_STRING_SVTOOLS_RTF_SHAD}, RTF_SHAD},
+{{OOO_STRING_SVTOOLS_RTF_SCAPS}, RTF_SCAPS},
+{{OOO_STRING_SVTOOLS_RTF_CAPS}, RTF_CAPS},
+{{OOO_STRING_SVTOOLS_RTF_V}, RTF_V},
+{{OOO_STRING_SVTOOLS_RTF_F}, RTF_F},
+{{OOO_STRING_SVTOOLS_RTF_FS}, RTF_FS},
+{{OOO_STRING_SVTOOLS_RTF_EXPND}, RTF_EXPND},
+{{OOO_STRING_SVTOOLS_RTF_EXPNDTW}, RTF_EXPNDTW},
+{{OOO_STRING_SVTOOLS_RTF_KERNING}, RTF_KERNING},
+{{OOO_STRING_SVTOOLS_RTF_UL}, RTF_UL},
+{{OOO_STRING_SVTOOLS_RTF_ULW}, RTF_ULW},
+{{OOO_STRING_SVTOOLS_RTF_ULD}, RTF_ULD},
+{{OOO_STRING_SVTOOLS_RTF_ULDB}, RTF_ULDB},
+{{OOO_STRING_SVTOOLS_RTF_ULNONE}, RTF_ULNONE},
+{{OOO_STRING_SVTOOLS_RTF_UP}, RTF_UP},
+{{OOO_STRING_SVTOOLS_RTF_DN}, RTF_DN},
+{{OOO_STRING_SVTOOLS_RTF_REVISED}, RTF_REVISED},
+{{OOO_STRING_SVTOOLS_RTF_SUB}, RTF_SUB},
+{{OOO_STRING_SVTOOLS_RTF_NOSUPERSUB}, RTF_NOSUPERSUB},
+{{OOO_STRING_SVTOOLS_RTF_SUPER}, RTF_SUPER},
+{{OOO_STRING_SVTOOLS_RTF_CHDATE}, RTF_CHDATE},
+{{OOO_STRING_SVTOOLS_RTF_CHTIME}, RTF_CHTIME},
+{{OOO_STRING_SVTOOLS_RTF_CHPGN}, RTF_CHPGN},
+{{OOO_STRING_SVTOOLS_RTF_CHFTN}, RTF_CHFTN},
+{{OOO_STRING_SVTOOLS_RTF_CHATN}, RTF_CHATN},
+{{OOO_STRING_SVTOOLS_RTF_CHFTNSEP}, RTF_CHFTNSEP},
+{{OOO_STRING_SVTOOLS_RTF_CHFTNSEPC}, RTF_CHFTNSEPC},
+{{OOO_STRING_SVTOOLS_RTF_FORMULA}, RTF_FORMULA},
+{{OOO_STRING_SVTOOLS_RTF_NOBREAK}, RTF_NONBREAKINGSPACE},
+{{OOO_STRING_SVTOOLS_RTF_OPTHYPH}, RTF_OPTIONALHYPHEN},
+{{OOO_STRING_SVTOOLS_RTF_NOBRKHYPH}, RTF_NONBREAKINGHYPHEN},
+{{OOO_STRING_SVTOOLS_RTF_HEXCHAR}, RTF_HEX},
+{{OOO_STRING_SVTOOLS_RTF_CELL}, RTF_CELL},
+{{OOO_STRING_SVTOOLS_RTF_ROW}, RTF_ROW},
+{{OOO_STRING_SVTOOLS_RTF_PAR}, RTF_PAR},
+{{OOO_STRING_SVTOOLS_RTF_SECT}, RTF_SECT},
+{{OOO_STRING_SVTOOLS_RTF_PAGE}, RTF_PAGE},
+{{OOO_STRING_SVTOOLS_RTF_COLUMN}, RTF_COLUM},
+{{OOO_STRING_SVTOOLS_RTF_LINE}, RTF_LINE},
+{{OOO_STRING_SVTOOLS_RTF_TAB}, RTF_TAB},
+{{OOO_STRING_SVTOOLS_RTF_SUBENTRY}, RTF_SUBENTRYINDEX},
-{{sRTF_DEFLANG}, RTF_DEFLANG},
-{{sRTF_LANG}, RTF_LANG},
-{{sRTF_PMMETAFILE}, RTF_OSMETAFILE},
-{{sRTF_DIBITMAP}, RTF_DIBITMAP},
-{{sRTF_KEYCODE}, RTF_KEYCODE},
-{{sRTF_FN}, RTF_FNKEY},
-{{sRTF_ALT}, RTF_ALTKEY},
-{{sRTF_SHIFT}, RTF_SHIFTKEY},
-{{sRTF_CTRL}, RTF_CTRLKEY},
-{{sRTF_CHDPL}, RTF_CHDATEL},
-{{sRTF_CHDPA}, RTF_CHDATEA},
-{{sRTF_EMDASH}, RTF_EMDASH},
-{{sRTF_ENDASH}, RTF_ENDASH},
-{{sRTF_BULLET}, RTF_BULLET},
-{{sRTF_LQUOTE}, RTF_LQUOTE},
-{{sRTF_RQUOTE}, RTF_RQUOTE},
-{{sRTF_LDBLQUOTE}, RTF_LDBLQUOTE},
-{{sRTF_RDBLQUOTE}, RTF_RDBLQUOTE},
+{{OOO_STRING_SVTOOLS_RTF_DEFLANG}, RTF_DEFLANG},
+{{OOO_STRING_SVTOOLS_RTF_LANG}, RTF_LANG},
+{{OOO_STRING_SVTOOLS_RTF_PMMETAFILE}, RTF_OSMETAFILE},
+{{OOO_STRING_SVTOOLS_RTF_DIBITMAP}, RTF_DIBITMAP},
+{{OOO_STRING_SVTOOLS_RTF_KEYCODE}, RTF_KEYCODE},
+{{OOO_STRING_SVTOOLS_RTF_FN}, RTF_FNKEY},
+{{OOO_STRING_SVTOOLS_RTF_ALT}, RTF_ALTKEY},
+{{OOO_STRING_SVTOOLS_RTF_SHIFT}, RTF_SHIFTKEY},
+{{OOO_STRING_SVTOOLS_RTF_CTRL}, RTF_CTRLKEY},
+{{OOO_STRING_SVTOOLS_RTF_CHDPL}, RTF_CHDATEL},
+{{OOO_STRING_SVTOOLS_RTF_CHDPA}, RTF_CHDATEA},
+{{OOO_STRING_SVTOOLS_RTF_EMDASH}, RTF_EMDASH},
+{{OOO_STRING_SVTOOLS_RTF_ENDASH}, RTF_ENDASH},
+{{OOO_STRING_SVTOOLS_RTF_BULLET}, RTF_BULLET},
+{{OOO_STRING_SVTOOLS_RTF_LQUOTE}, RTF_LQUOTE},
+{{OOO_STRING_SVTOOLS_RTF_RQUOTE}, RTF_RQUOTE},
+{{OOO_STRING_SVTOOLS_RTF_LDBLQUOTE}, RTF_LDBLQUOTE},
+{{OOO_STRING_SVTOOLS_RTF_RDBLQUOTE}, RTF_RDBLQUOTE},
-{{sRTF_BKMKCOLF}, RTF_BKMKCOLF},
-{{sRTF_BKMKCOLL}, RTF_BKMKCOLL},
-{{sRTF_PSOVER}, RTF_PSOVER},
-{{sRTF_DOCTEMP}, RTF_DOCTEMP},
-{{sRTF_BINFSXN}, RTF_BINFSXN},
-{{sRTF_BINSXN}, RTF_BINSXN},
-{{sRTF_PGWSXN}, RTF_PGWSXN},
-{{sRTF_PGHSXN}, RTF_PGHSXN},
-{{sRTF_MARGLSXN}, RTF_MARGLSXN},
-{{sRTF_MARGRSXN}, RTF_MARGRSXN},
-{{sRTF_MARGTSXN}, RTF_MARGTSXN},
-{{sRTF_MARGBSXN}, RTF_MARGBSXN},
-{{sRTF_GUTTERSXN}, RTF_GUTTERSXN},
-{{sRTF_LNDSCPSXN}, RTF_LNDSCPSXN},
-{{sRTF_FACPGSXN}, RTF_FACPGSXN},
-{{sRTF_TLEQ}, RTF_TLEQ},
-{{sRTF_BRDRBTW}, RTF_BRDRBTW},
-{{sRTF_BRDRBAR}, RTF_BRDRBAR},
-{{sRTF_BRDRW}, RTF_BRDRW},
-{{sRTF_BRDRCF}, RTF_BRDRCF},
-{{sRTF_ABSH}, RTF_ABSH},
-{{sRTF_PVPARA}, RTF_PVPARA},
-{{sRTF_NOWRAP}, RTF_NOWRAP},
-{{sRTF_DFRMTXTX}, RTF_DFRMTXTX},
-{{sRTF_DFRMTXTY}, RTF_DFRMTXTY},
-{{sRTF_DROPCAPLI}, RTF_DROPCAPLI},
-{{sRTF_DROPCAPT}, RTF_DROPCAPT},
-{{sRTF_ABSNOOVRLP}, RTF_ABSNOOVRLP},
-{{sRTF_POSNEGX}, RTF_POSNEGX},
-{{sRTF_POSNEGY}, RTF_POSNEGY},
-{{sRTF_DELETED}, RTF_DELETED},
+{{OOO_STRING_SVTOOLS_RTF_BKMKCOLF}, RTF_BKMKCOLF},
+{{OOO_STRING_SVTOOLS_RTF_BKMKCOLL}, RTF_BKMKCOLL},
+{{OOO_STRING_SVTOOLS_RTF_PSOVER}, RTF_PSOVER},
+{{OOO_STRING_SVTOOLS_RTF_DOCTEMP}, RTF_DOCTEMP},
+{{OOO_STRING_SVTOOLS_RTF_BINFSXN}, RTF_BINFSXN},
+{{OOO_STRING_SVTOOLS_RTF_BINSXN}, RTF_BINSXN},
+{{OOO_STRING_SVTOOLS_RTF_PGWSXN}, RTF_PGWSXN},
+{{OOO_STRING_SVTOOLS_RTF_PGHSXN}, RTF_PGHSXN},
+{{OOO_STRING_SVTOOLS_RTF_MARGLSXN}, RTF_MARGLSXN},
+{{OOO_STRING_SVTOOLS_RTF_MARGRSXN}, RTF_MARGRSXN},
+{{OOO_STRING_SVTOOLS_RTF_MARGTSXN}, RTF_MARGTSXN},
+{{OOO_STRING_SVTOOLS_RTF_MARGBSXN}, RTF_MARGBSXN},
+{{OOO_STRING_SVTOOLS_RTF_GUTTERSXN}, RTF_GUTTERSXN},
+{{OOO_STRING_SVTOOLS_RTF_LNDSCPSXN}, RTF_LNDSCPSXN},
+{{OOO_STRING_SVTOOLS_RTF_FACPGSXN}, RTF_FACPGSXN},
+{{OOO_STRING_SVTOOLS_RTF_TLEQ}, RTF_TLEQ},
+{{OOO_STRING_SVTOOLS_RTF_BRDRBTW}, RTF_BRDRBTW},
+{{OOO_STRING_SVTOOLS_RTF_BRDRBAR}, RTF_BRDRBAR},
+{{OOO_STRING_SVTOOLS_RTF_BRDRW}, RTF_BRDRW},
+{{OOO_STRING_SVTOOLS_RTF_BRDRCF}, RTF_BRDRCF},
+{{OOO_STRING_SVTOOLS_RTF_ABSH}, RTF_ABSH},
+{{OOO_STRING_SVTOOLS_RTF_PVPARA}, RTF_PVPARA},
+{{OOO_STRING_SVTOOLS_RTF_NOWRAP}, RTF_NOWRAP},
+{{OOO_STRING_SVTOOLS_RTF_DFRMTXTX}, RTF_DFRMTXTX},
+{{OOO_STRING_SVTOOLS_RTF_DFRMTXTY}, RTF_DFRMTXTY},
+{{OOO_STRING_SVTOOLS_RTF_DROPCAPLI}, RTF_DROPCAPLI},
+{{OOO_STRING_SVTOOLS_RTF_DROPCAPT}, RTF_DROPCAPT},
+{{OOO_STRING_SVTOOLS_RTF_ABSNOOVRLP}, RTF_ABSNOOVRLP},
+{{OOO_STRING_SVTOOLS_RTF_POSNEGX}, RTF_POSNEGX},
+{{OOO_STRING_SVTOOLS_RTF_POSNEGY}, RTF_POSNEGY},
+{{OOO_STRING_SVTOOLS_RTF_DELETED}, RTF_DELETED},
-{{sRTF_SHADING}, RTF_SHADING},
-{{sRTF_BGHORIZ}, RTF_BGHORIZ},
-{{sRTF_BGVERT}, RTF_BGVERT},
-{{sRTF_BGFDIAG}, RTF_BGFDIAG},
-{{sRTF_BGBDIAG}, RTF_BGBDIAG},
-{{sRTF_BGCROSS}, RTF_BGCROSS},
-{{sRTF_BGDCROSS}, RTF_BGDCROSS},
-{{sRTF_BGDKHORIZ}, RTF_BGDKHORIZ},
-{{sRTF_BGDKVERT}, RTF_BGDKVERT},
-{{sRTF_BGDKFDIAG}, RTF_BGDKFDIAG},
-{{sRTF_BGDKBDIAG}, RTF_BGDKBDIAG},
-{{sRTF_BGDKCROSS}, RTF_BGDKCROSS},
-{{sRTF_BGDKDCROSS}, RTF_BGDKDCROSS},
-{{sRTF_CFPAT}, RTF_CFPAT},
-{{sRTF_CBPAT}, RTF_CBPAT},
+{{OOO_STRING_SVTOOLS_RTF_SHADING}, RTF_SHADING},
+{{OOO_STRING_SVTOOLS_RTF_BGHORIZ}, RTF_BGHORIZ},
+{{OOO_STRING_SVTOOLS_RTF_BGVERT}, RTF_BGVERT},
+{{OOO_STRING_SVTOOLS_RTF_BGFDIAG}, RTF_BGFDIAG},
+{{OOO_STRING_SVTOOLS_RTF_BGBDIAG}, RTF_BGBDIAG},
+{{OOO_STRING_SVTOOLS_RTF_BGCROSS}, RTF_BGCROSS},
+{{OOO_STRING_SVTOOLS_RTF_BGDCROSS}, RTF_BGDCROSS},
+{{OOO_STRING_SVTOOLS_RTF_BGDKHORIZ}, RTF_BGDKHORIZ},
+{{OOO_STRING_SVTOOLS_RTF_BGDKVERT}, RTF_BGDKVERT},
+{{OOO_STRING_SVTOOLS_RTF_BGDKFDIAG}, RTF_BGDKFDIAG},
+{{OOO_STRING_SVTOOLS_RTF_BGDKBDIAG}, RTF_BGDKBDIAG},
+{{OOO_STRING_SVTOOLS_RTF_BGDKCROSS}, RTF_BGDKCROSS},
+{{OOO_STRING_SVTOOLS_RTF_BGDKDCROSS}, RTF_BGDKDCROSS},
+{{OOO_STRING_SVTOOLS_RTF_CFPAT}, RTF_CFPAT},
+{{OOO_STRING_SVTOOLS_RTF_CBPAT}, RTF_CBPAT},
-{{sRTF_CLSHDNG}, RTF_CLSHDNG},
-{{sRTF_CLBGHORIZ}, RTF_CLBGHORIZ},
-{{sRTF_CLBGVERT}, RTF_CLBGVERT},
-{{sRTF_CLBGFDIAG}, RTF_CLBGFDIAG},
-{{sRTF_CLBGBDIAG}, RTF_CLBGBDIAG},
-{{sRTF_CLBGCROSS}, RTF_CLBGCROSS},
-{{sRTF_CLBGDCROSS}, RTF_CLBGDCROSS},
-{{sRTF_CLBGDKHOR}, RTF_CLBGDKHOR},
-{{sRTF_CLBGDKVERT}, RTF_CLBGDKVERT},
-{{sRTF_CLBGDKFDIAG}, RTF_CLBGDKFDIAG},
-{{sRTF_CLBGDKBDIAG}, RTF_CLBGDKBDIAG},
-{{sRTF_CLBGDKCROSS}, RTF_CLBGDKCROSS},
-{{sRTF_CLBGDKDCROSS}, RTF_CLBGDKDCROSS},
-{{sRTF_CLCFPAT}, RTF_CLCFPAT},
-{{sRTF_CLCBPAT}, RTF_CLCBPAT},
+{{OOO_STRING_SVTOOLS_RTF_CLSHDNG}, RTF_CLSHDNG},
+{{OOO_STRING_SVTOOLS_RTF_CLBGHORIZ}, RTF_CLBGHORIZ},
+{{OOO_STRING_SVTOOLS_RTF_CLBGVERT}, RTF_CLBGVERT},
+{{OOO_STRING_SVTOOLS_RTF_CLBGFDIAG}, RTF_CLBGFDIAG},
+{{OOO_STRING_SVTOOLS_RTF_CLBGBDIAG}, RTF_CLBGBDIAG},
+{{OOO_STRING_SVTOOLS_RTF_CLBGCROSS}, RTF_CLBGCROSS},
+{{OOO_STRING_SVTOOLS_RTF_CLBGDCROSS}, RTF_CLBGDCROSS},
+{{OOO_STRING_SVTOOLS_RTF_CLBGDKHOR}, RTF_CLBGDKHOR},
+{{OOO_STRING_SVTOOLS_RTF_CLBGDKVERT}, RTF_CLBGDKVERT},
+{{OOO_STRING_SVTOOLS_RTF_CLBGDKFDIAG}, RTF_CLBGDKFDIAG},
+{{OOO_STRING_SVTOOLS_RTF_CLBGDKBDIAG}, RTF_CLBGDKBDIAG},
+{{OOO_STRING_SVTOOLS_RTF_CLBGDKCROSS}, RTF_CLBGDKCROSS},
+{{OOO_STRING_SVTOOLS_RTF_CLBGDKDCROSS}, RTF_CLBGDKDCROSS},
+{{OOO_STRING_SVTOOLS_RTF_CLCFPAT}, RTF_CLCFPAT},
+{{OOO_STRING_SVTOOLS_RTF_CLCBPAT}, RTF_CLCBPAT},
-{{sRTF_AB}, RTF_AB},
-{{sRTF_ACAPS}, RTF_ACAPS},
-{{sRTF_ACF}, RTF_ACF},
-{{sRTF_ADDITIVE}, RTF_ADDITIVE},
-{{sRTF_ADN}, RTF_ADN},
-{{sRTF_AENDDOC}, RTF_AENDDOC},
-{{sRTF_AENDNOTES}, RTF_AENDNOTES},
-{{sRTF_AEXPND}, RTF_AEXPND},
-{{sRTF_AF}, RTF_AF},
-{{sRTF_AFS}, RTF_AFS},
-{{sRTF_AFTNBJ}, RTF_AFTNBJ},
-{{sRTF_AFTNCN}, RTF_AFTNCN},
-{{sRTF_AFTNNALC}, RTF_AFTNNALC},
-{{sRTF_AFTNNAR}, RTF_AFTNNAR},
-{{sRTF_AFTNNAUC}, RTF_AFTNNAUC},
-{{sRTF_AFTNNCHI}, RTF_AFTNNCHI},
-{{sRTF_AFTNNRLC}, RTF_AFTNNRLC},
-{{sRTF_AFTNNRUC}, RTF_AFTNNRUC},
-{{sRTF_AFTNRESTART}, RTF_AFTNRESTART},
-{{sRTF_AFTNRSTCONT}, RTF_AFTNRSTCONT},
-{{sRTF_AFTNSEP}, RTF_AFTNSEP},
-{{sRTF_AFTNSEPC}, RTF_AFTNSEPC},
-{{sRTF_AFTNSTART}, RTF_AFTNSTART},
-{{sRTF_AFTNTJ}, RTF_AFTNTJ},
-{{sRTF_AI}, RTF_AI},
-{{sRTF_ALANG}, RTF_ALANG},
-{{sRTF_ALLPROT}, RTF_ALLPROT},
-{{sRTF_ANNOTPROT}, RTF_ANNOTPROT},
-{{sRTF_AOUTL}, RTF_AOUTL},
-{{sRTF_ASCAPS}, RTF_ASCAPS},
-{{sRTF_ASHAD}, RTF_ASHAD},
-{{sRTF_ASTRIKE}, RTF_ASTRIKE},
-{{sRTF_ATNAUTHOR}, RTF_ATNAUTHOR},
-{{sRTF_ATNICN}, RTF_ATNICN},
-{{sRTF_ATNREF}, RTF_ATNREF},
-{{sRTF_ATNTIME}, RTF_ATNTIME},
-{{sRTF_ATRFEND}, RTF_ATRFEND},
-{{sRTF_ATRFSTART}, RTF_ATRFSTART},
-{{sRTF_AUL}, RTF_AUL},
-{{sRTF_AULD}, RTF_AULD},
-{{sRTF_AULDB}, RTF_AULDB},
-{{sRTF_AULNONE}, RTF_AULNONE},
-{{sRTF_AULW}, RTF_AULW},
-{{sRTF_AUP}, RTF_AUP},
-{{sRTF_BKMKPUB}, RTF_BKMKPUB},
-{{sRTF_BRDRDASH}, RTF_BRDRDASH},
-{{sRTF_BRKFRM}, RTF_BRKFRM},
-{{sRTF_CCHS}, RTF_CCHS},
-{{sRTF_CPG}, RTF_CPG},
-{{sRTF_CS}, RTF_CS},
-{{sRTF_CVMME}, RTF_CVMME},
-{{sRTF_DATAFIELD}, RTF_DATAFIELD},
-{{sRTF_DO}, RTF_DO},
-{{sRTF_DOBXCOLUMN}, RTF_DOBXCOLUMN},
-{{sRTF_DOBXMARGIN}, RTF_DOBXMARGIN},
-{{sRTF_DOBXPAGE}, RTF_DOBXPAGE},
-{{sRTF_DOBYMARGIN}, RTF_DOBYMARGIN},
-{{sRTF_DOBYPAGE}, RTF_DOBYPAGE},
-{{sRTF_DOBYPARA}, RTF_DOBYPARA},
-{{sRTF_DODHGT}, RTF_DODHGT},
-{{sRTF_DOLOCK}, RTF_DOLOCK},
-{{sRTF_DPAENDHOL}, RTF_DPAENDHOL},
-{{sRTF_DPAENDL}, RTF_DPAENDL},
-{{sRTF_DPAENDSOL}, RTF_DPAENDSOL},
-{{sRTF_DPAENDW}, RTF_DPAENDW},
-{{sRTF_DPARC}, RTF_DPARC},
-{{sRTF_DPARCFLIPX}, RTF_DPARCFLIPX},
-{{sRTF_DPARCFLIPY}, RTF_DPARCFLIPY},
-{{sRTF_DPASTARTHOL}, RTF_DPASTARTHOL},
-{{sRTF_DPASTARTL}, RTF_DPASTARTL},
-{{sRTF_DPASTARTSOL}, RTF_DPASTARTSOL},
-{{sRTF_DPASTARTW}, RTF_DPASTARTW},
-{{sRTF_DPCALLOUT}, RTF_DPCALLOUT},
-{{sRTF_DPCOA}, RTF_DPCOA},
-{{sRTF_DPCOACCENT}, RTF_DPCOACCENT},
-{{sRTF_DPCOBESTFIT}, RTF_DPCOBESTFIT},
-{{sRTF_DPCOBORDER}, RTF_DPCOBORDER},
-{{sRTF_DPCODABS}, RTF_DPCODABS},
-{{sRTF_DPCODBOTTOM}, RTF_DPCODBOTTOM},
-{{sRTF_DPCODCENTER}, RTF_DPCODCENTER},
-{{sRTF_DPCODTOP}, RTF_DPCODTOP},
-{{sRTF_DPCOLENGTH}, RTF_DPCOLENGTH},
-{{sRTF_DPCOMINUSX}, RTF_DPCOMINUSX},
-{{sRTF_DPCOMINUSY}, RTF_DPCOMINUSY},
-{{sRTF_DPCOOFFSET}, RTF_DPCOOFFSET},
-{{sRTF_DPCOSMARTA}, RTF_DPCOSMARTA},
-{{sRTF_DPCOTDOUBLE}, RTF_DPCOTDOUBLE},
-{{sRTF_DPCOTRIGHT}, RTF_DPCOTRIGHT},
-{{sRTF_DPCOTSINGLE}, RTF_DPCOTSINGLE},
-{{sRTF_DPCOTTRIPLE}, RTF_DPCOTTRIPLE},
-{{sRTF_DPCOUNT}, RTF_DPCOUNT},
-{{sRTF_DPELLIPSE}, RTF_DPELLIPSE},
-{{sRTF_DPENDGROUP}, RTF_DPENDGROUP},
-{{sRTF_DPFILLBGCB}, RTF_DPFILLBGCB},
-{{sRTF_DPFILLBGCG}, RTF_DPFILLBGCG},
-{{sRTF_DPFILLBGCR}, RTF_DPFILLBGCR},
-{{sRTF_DPFILLBGGRAY}, RTF_DPFILLBGGRAY},
-{{sRTF_DPFILLBGPAL}, RTF_DPFILLBGPAL},
-{{sRTF_DPFILLFGCB}, RTF_DPFILLFGCB},
-{{sRTF_DPFILLFGCG}, RTF_DPFILLFGCG},
-{{sRTF_DPFILLFGCR}, RTF_DPFILLFGCR},
-{{sRTF_DPFILLFGGRAY}, RTF_DPFILLFGGRAY},
-{{sRTF_DPFILLFGPAL}, RTF_DPFILLFGPAL},
-{{sRTF_DPFILLPAT}, RTF_DPFILLPAT},
-{{sRTF_DPGROUP}, RTF_DPGROUP},
-{{sRTF_DPLINE}, RTF_DPLINE},
-{{sRTF_DPLINECOB}, RTF_DPLINECOB},
-{{sRTF_DPLINECOG}, RTF_DPLINECOG},
-{{sRTF_DPLINECOR}, RTF_DPLINECOR},
-{{sRTF_DPLINEDADO}, RTF_DPLINEDADO},
-{{sRTF_DPLINEDADODO}, RTF_DPLINEDADODO},
-{{sRTF_DPLINEDASH}, RTF_DPLINEDASH},
-{{sRTF_DPLINEDOT}, RTF_DPLINEDOT},
-{{sRTF_DPLINEGRAY}, RTF_DPLINEGRAY},
-{{sRTF_DPLINEHOLLOW}, RTF_DPLINEHOLLOW},
-{{sRTF_DPLINEPAL}, RTF_DPLINEPAL},
-{{sRTF_DPLINESOLID}, RTF_DPLINESOLID},
-{{sRTF_DPLINEW}, RTF_DPLINEW},
-{{sRTF_DPPOLYCOUNT}, RTF_DPPOLYCOUNT},
-{{sRTF_DPPOLYGON}, RTF_DPPOLYGON},
-{{sRTF_DPPOLYLINE}, RTF_DPPOLYLINE},
-{{sRTF_DPPTX}, RTF_DPPTX},
-{{sRTF_DPPTY}, RTF_DPPTY},
-{{sRTF_DPRECT}, RTF_DPRECT},
-{{sRTF_DPROUNDR}, RTF_DPROUNDR},
-{{sRTF_DPSHADOW}, RTF_DPSHADOW},
-{{sRTF_DPSHADX}, RTF_DPSHADX},
-{{sRTF_DPSHADY}, RTF_DPSHADY},
-{{sRTF_DPTXBX}, RTF_DPTXBX},
-{{sRTF_DPTXBXMAR}, RTF_DPTXBXMAR},
-{{sRTF_DPTXBXTEXT}, RTF_DPTXBXTEXT},
-{{sRTF_DPX}, RTF_DPX},
-{{sRTF_DPXSIZE}, RTF_DPXSIZE},
-{{sRTF_DPY}, RTF_DPY},
-{{sRTF_DPYSIZE}, RTF_DPYSIZE},
-{{sRTF_DS}, RTF_DS},
-{{sRTF_EMSPACE}, RTF_EMSPACE},
-{{sRTF_ENSPACE}, RTF_ENSPACE},
-{{sRTF_FBIDI}, RTF_FBIDI},
-{{sRTF_FET}, RTF_FET},
-{{sRTF_FID}, RTF_FID},
-{{sRTF_FILE}, RTF_FILE},
-{{sRTF_FILETBL}, RTF_FILETBL},
-{{sRTF_FLDALT}, RTF_FLDALT},
-{{sRTF_FNETWORK}, RTF_FNETWORK},
-{{sRTF_FONTEMB}, RTF_FONTEMB},
-{{sRTF_FONTFILE}, RTF_FONTFILE},
-{{sRTF_FORMDISP}, RTF_FORMDISP},
-{{sRTF_FORMPROT}, RTF_FORMPROT},
-{{sRTF_FORMSHADE}, RTF_FORMSHADE},
-{{sRTF_FOSNUM}, RTF_FOSNUM},
-{{sRTF_FRELATIVE}, RTF_FRELATIVE},
-{{sRTF_FTNALT}, RTF_FTNALT},
-{{sRTF_FTNIL}, RTF_FTNIL},
-{{sRTF_FTNNALC}, RTF_FTNNALC},
-{{sRTF_FTNNAR}, RTF_FTNNAR},
-{{sRTF_FTNNAUC}, RTF_FTNNAUC},
-{{sRTF_FTNNCHI}, RTF_FTNNCHI},
-{{sRTF_FTNNRLC}, RTF_FTNNRLC},
-{{sRTF_FTNNRUC}, RTF_FTNNRUC},
-{{sRTF_FTNRSTCONT}, RTF_FTNRSTCONT},
-{{sRTF_FTNRSTPG}, RTF_FTNRSTPG},
-{{sRTF_FTTRUETYPE}, RTF_FTTRUETYPE},
-{{sRTF_FVALIDDOS}, RTF_FVALIDDOS},
-{{sRTF_FVALIDHPFS}, RTF_FVALIDHPFS},
-{{sRTF_FVALIDMAC}, RTF_FVALIDMAC},
-{{sRTF_FVALIDNTFS}, RTF_FVALIDNTFS},
-{{sRTF_HYPHAUTO}, RTF_HYPHAUTO},
-{{sRTF_HYPHCAPS}, RTF_HYPHCAPS},
-{{sRTF_HYPHCONSEC}, RTF_HYPHCONSEC},
-{{sRTF_HYPHPAR}, RTF_HYPHPAR},
-{{sRTF_LINKSELF}, RTF_LINKSELF},
-{{sRTF_LINKSTYLES}, RTF_LINKSTYLES},
-{{sRTF_LTRCH}, RTF_LTRCH},
-{{sRTF_LTRDOC}, RTF_LTRDOC},
-{{sRTF_LTRMARK}, RTF_LTRMARK},
-{{sRTF_LTRPAR}, RTF_LTRPAR},
-{{sRTF_LTRROW}, RTF_LTRROW},
-{{sRTF_LTRSECT}, RTF_LTRSECT},
-{{sRTF_NOCOLBAL}, RTF_NOCOLBAL},
-{{sRTF_NOEXTRASPRL}, RTF_NOEXTRASPRL},
-{{sRTF_NOTABIND}, RTF_NOTABIND},
-{{sRTF_NOWIDCTLPAR}, RTF_NOWIDCTLPAR},
-{{sRTF_OBJALIAS}, RTF_OBJALIAS},
-{{sRTF_OBJALIGN}, RTF_OBJALIGN},
-{{sRTF_OBJAUTLINK}, RTF_OBJAUTLINK},
-{{sRTF_OBJCLASS}, RTF_OBJCLASS},
-{{sRTF_OBJCROPB}, RTF_OBJCROPB},
-{{sRTF_OBJCROPL}, RTF_OBJCROPL},
-{{sRTF_OBJCROPR}, RTF_OBJCROPR},
-{{sRTF_OBJCROPT}, RTF_OBJCROPT},
-{{sRTF_OBJDATA}, RTF_OBJDATA},
-{{sRTF_OBJECT}, RTF_OBJECT},
-{{sRTF_OBJEMB}, RTF_OBJEMB},
-{{sRTF_OBJH}, RTF_OBJH},
-{{sRTF_OBJICEMB}, RTF_OBJICEMB},
-{{sRTF_OBJLINK}, RTF_OBJLINK},
-{{sRTF_OBJLOCK}, RTF_OBJLOCK},
-{{sRTF_OBJNAME}, RTF_OBJNAME},
-{{sRTF_OBJPUB}, RTF_OBJPUB},
-{{sRTF_OBJSCALEX}, RTF_OBJSCALEX},
-{{sRTF_OBJSCALEY}, RTF_OBJSCALEY},
-{{sRTF_OBJSECT}, RTF_OBJSECT},
-{{sRTF_OBJSETSIZE}, RTF_OBJSETSIZE},
-{{sRTF_OBJSUB}, RTF_OBJSUB},
-{{sRTF_OBJTIME}, RTF_OBJTIME},
-{{sRTF_OBJTRANSY}, RTF_OBJTRANSY},
-{{sRTF_OBJUPDATE}, RTF_OBJUPDATE},
-{{sRTF_OBJW}, RTF_OBJW},
-{{sRTF_OTBLRUL}, RTF_OTBLRUL},
-{{sRTF_PGNHN}, RTF_PGNHN},
-{{sRTF_PGNHNSC}, RTF_PGNHNSC},
-{{sRTF_PGNHNSH}, RTF_PGNHNSH},
-{{sRTF_PGNHNSM}, RTF_PGNHNSM},
-{{sRTF_PGNHNSN}, RTF_PGNHNSN},
-{{sRTF_PGNHNSP}, RTF_PGNHNSP},
-{{sRTF_PICBMP}, RTF_PICBMP},
-{{sRTF_PICBPP}, RTF_PICBPP},
-{{sRTF_PN}, RTF_PN},
-{{sRTF_PNACROSS}, RTF_PNACROSS},
-{{sRTF_PNB}, RTF_PNB},
-{{sRTF_PNCAPS}, RTF_PNCAPS},
-{{sRTF_PNCARD}, RTF_PNCARD},
-{{sRTF_PNCF}, RTF_PNCF},
-{{sRTF_PNDEC}, RTF_PNDEC},
-{{sRTF_PNF}, RTF_PNF},
-{{sRTF_PNFS}, RTF_PNFS},
-{{sRTF_PNHANG}, RTF_PNHANG},
-{{sRTF_PNI}, RTF_PNI},
-{{sRTF_PNINDENT}, RTF_PNINDENT},
-{{sRTF_PNLCLTR}, RTF_PNLCLTR},
-{{sRTF_PNLCRM}, RTF_PNLCRM},
-{{sRTF_PNLVL}, RTF_PNLVL},
-{{sRTF_PNLVLBLT}, RTF_PNLVLBLT},
-{{sRTF_PNLVLBODY}, RTF_PNLVLBODY},
-{{sRTF_PNLVLCONT}, RTF_PNLVLCONT},
-{{sRTF_PNNUMONCE}, RTF_PNNUMONCE},
-{{sRTF_PNORD}, RTF_PNORD},
-{{sRTF_PNORDT}, RTF_PNORDT},
-{{sRTF_PNPREV}, RTF_PNPREV},
-{{sRTF_PNQC}, RTF_PNQC},
-{{sRTF_PNQL}, RTF_PNQL},
-{{sRTF_PNQR}, RTF_PNQR},
-{{sRTF_PNRESTART}, RTF_PNRESTART},
-{{sRTF_PNSCAPS}, RTF_PNSCAPS},
-{{sRTF_PNSECLVL}, RTF_PNSECLVL},
-{{sRTF_PNSP}, RTF_PNSP},
-{{sRTF_PNSTART}, RTF_PNSTART},
-{{sRTF_PNSTRIKE}, RTF_PNSTRIKE},
-{{sRTF_PNTEXT}, RTF_PNTEXT},
-{{sRTF_PNTXTA}, RTF_PNTXTA},
-{{sRTF_PNTXTB}, RTF_PNTXTB},
-{{sRTF_PNUCLTR}, RTF_PNUCLTR},
-{{sRTF_PNUCRM}, RTF_PNUCRM},
-{{sRTF_PNUL}, RTF_PNUL},
-{{sRTF_PNULD}, RTF_PNULD},
-{{sRTF_PNULDB}, RTF_PNULDB},
-{{sRTF_PNULNONE}, RTF_PNULNONE},
-{{sRTF_PNULW}, RTF_PNULW},
-{{sRTF_PRCOLBL}, RTF_PRCOLBL},
-{{sRTF_PRINTDATA}, RTF_PRINTDATA},
-{{sRTF_PSZ}, RTF_PSZ},
-{{sRTF_PUBAUTO}, RTF_PUBAUTO},
-{{sRTF_RESULT}, RTF_RESULT},
-{{sRTF_REVAUTH}, RTF_REVAUTH},
-{{sRTF_REVDTTM}, RTF_REVDTTM},
-{{sRTF_REVPROT}, RTF_REVPROT},
-{{sRTF_REVTBL}, RTF_REVTBL},
-{{sRTF_RSLTBMP}, RTF_RSLTBMP},
-{{sRTF_RSLTMERGE}, RTF_RSLTMERGE},
-{{sRTF_RSLTPICT}, RTF_RSLTPICT},
-{{sRTF_RSLTRTF}, RTF_RSLTRTF},
-{{sRTF_RSLTTXT}, RTF_RSLTTXT},
-{{sRTF_RTLCH}, RTF_RTLCH},
-{{sRTF_RTLDOC}, RTF_RTLDOC},
-{{sRTF_RTLMARK}, RTF_RTLMARK},
-{{sRTF_RTLPAR}, RTF_RTLPAR},
-{{sRTF_RTLROW}, RTF_RTLROW},
-{{sRTF_RTLSECT}, RTF_RTLSECT},
-{{sRTF_SEC}, RTF_SEC},
-{{sRTF_SECTNUM}, RTF_SECTNUM},
-{{sRTF_SECTUNLOCKED}, RTF_SECTUNLOCKED},
-{{sRTF_SLMULT}, RTF_SLMULT},
-{{sRTF_SOFTCOL}, RTF_SOFTCOL},
-{{sRTF_SOFTLHEIGHT}, RTF_SOFTLHEIGHT},
-{{sRTF_SOFTLINE}, RTF_SOFTLINE},
-{{sRTF_SOFTPAGE}, RTF_SOFTPAGE},
-{{sRTF_SPRSSPBF}, RTF_SPRSSPBF},
-{{sRTF_SPRSTSP}, RTF_SPRSTSP},
-{{sRTF_SUBDOCUMENT}, RTF_SUBDOCUMENT},
-{{sRTF_SWPBDR}, RTF_SWPBDR},
-{{sRTF_TCN}, RTF_TCN},
-{{sRTF_TRANSMF}, RTF_TRANSMF},
-{{sRTF_TRBRDRB}, RTF_TRBRDRB},
-{{sRTF_TRBRDRH}, RTF_TRBRDRH},
-{{sRTF_TRBRDRL}, RTF_TRBRDRL},
-{{sRTF_TRBRDRR}, RTF_TRBRDRR},
-{{sRTF_TRBRDRT}, RTF_TRBRDRT},
-{{sRTF_TRBRDRV}, RTF_TRBRDRV},
-{{sRTF_TRHDR}, RTF_TRHDR},
-{{sRTF_TRKEEP}, RTF_TRKEEP},
-{{sRTF_TRPADDB}, RTF_TRPADDB},
-{{sRTF_TRPADDL}, RTF_TRPADDL},
-{{sRTF_TRPADDR}, RTF_TRPADDR},
-{{sRTF_TRPADDT}, RTF_TRPADDT},
-{{sRTF_TRPADDFB}, RTF_TRPADDFB},
-{{sRTF_TRPADDFL}, RTF_TRPADDFL},
-{{sRTF_TRPADDFR}, RTF_TRPADDFR},
-{{sRTF_TRPADDFT}, RTF_TRPADDFT},
+{{OOO_STRING_SVTOOLS_RTF_AB}, RTF_AB},
+{{OOO_STRING_SVTOOLS_RTF_ACAPS}, RTF_ACAPS},
+{{OOO_STRING_SVTOOLS_RTF_ACF}, RTF_ACF},
+{{OOO_STRING_SVTOOLS_RTF_ADDITIVE}, RTF_ADDITIVE},
+{{OOO_STRING_SVTOOLS_RTF_ADN}, RTF_ADN},
+{{OOO_STRING_SVTOOLS_RTF_AENDDOC}, RTF_AENDDOC},
+{{OOO_STRING_SVTOOLS_RTF_AENDNOTES}, RTF_AENDNOTES},
+{{OOO_STRING_SVTOOLS_RTF_AEXPND}, RTF_AEXPND},
+{{OOO_STRING_SVTOOLS_RTF_AF}, RTF_AF},
+{{OOO_STRING_SVTOOLS_RTF_AFS}, RTF_AFS},
+{{OOO_STRING_SVTOOLS_RTF_AFTNBJ}, RTF_AFTNBJ},
+{{OOO_STRING_SVTOOLS_RTF_AFTNCN}, RTF_AFTNCN},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNALC}, RTF_AFTNNALC},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNAR}, RTF_AFTNNAR},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNAUC}, RTF_AFTNNAUC},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNCHI}, RTF_AFTNNCHI},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNRLC}, RTF_AFTNNRLC},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNRUC}, RTF_AFTNNRUC},
+{{OOO_STRING_SVTOOLS_RTF_AFTNRESTART}, RTF_AFTNRESTART},
+{{OOO_STRING_SVTOOLS_RTF_AFTNRSTCONT}, RTF_AFTNRSTCONT},
+{{OOO_STRING_SVTOOLS_RTF_AFTNSEP}, RTF_AFTNSEP},
+{{OOO_STRING_SVTOOLS_RTF_AFTNSEPC}, RTF_AFTNSEPC},
+{{OOO_STRING_SVTOOLS_RTF_AFTNSTART}, RTF_AFTNSTART},
+{{OOO_STRING_SVTOOLS_RTF_AFTNTJ}, RTF_AFTNTJ},
+{{OOO_STRING_SVTOOLS_RTF_AI}, RTF_AI},
+{{OOO_STRING_SVTOOLS_RTF_ALANG}, RTF_ALANG},
+{{OOO_STRING_SVTOOLS_RTF_ALLPROT}, RTF_ALLPROT},
+{{OOO_STRING_SVTOOLS_RTF_ANNOTPROT}, RTF_ANNOTPROT},
+{{OOO_STRING_SVTOOLS_RTF_AOUTL}, RTF_AOUTL},
+{{OOO_STRING_SVTOOLS_RTF_ASCAPS}, RTF_ASCAPS},
+{{OOO_STRING_SVTOOLS_RTF_ASHAD}, RTF_ASHAD},
+{{OOO_STRING_SVTOOLS_RTF_ASTRIKE}, RTF_ASTRIKE},
+{{OOO_STRING_SVTOOLS_RTF_ATNAUTHOR}, RTF_ATNAUTHOR},
+{{OOO_STRING_SVTOOLS_RTF_ATNICN}, RTF_ATNICN},
+{{OOO_STRING_SVTOOLS_RTF_ATNREF}, RTF_ATNREF},
+{{OOO_STRING_SVTOOLS_RTF_ATNTIME}, RTF_ATNTIME},
+{{OOO_STRING_SVTOOLS_RTF_ATRFEND}, RTF_ATRFEND},
+{{OOO_STRING_SVTOOLS_RTF_ATRFSTART}, RTF_ATRFSTART},
+{{OOO_STRING_SVTOOLS_RTF_AUL}, RTF_AUL},
+{{OOO_STRING_SVTOOLS_RTF_AULD}, RTF_AULD},
+{{OOO_STRING_SVTOOLS_RTF_AULDB}, RTF_AULDB},
+{{OOO_STRING_SVTOOLS_RTF_AULNONE}, RTF_AULNONE},
+{{OOO_STRING_SVTOOLS_RTF_AULW}, RTF_AULW},
+{{OOO_STRING_SVTOOLS_RTF_AUP}, RTF_AUP},
+{{OOO_STRING_SVTOOLS_RTF_BKMKPUB}, RTF_BKMKPUB},
+{{OOO_STRING_SVTOOLS_RTF_BRDRDASH}, RTF_BRDRDASH},
+{{OOO_STRING_SVTOOLS_RTF_BRKFRM}, RTF_BRKFRM},
+{{OOO_STRING_SVTOOLS_RTF_CCHS}, RTF_CCHS},
+{{OOO_STRING_SVTOOLS_RTF_CPG}, RTF_CPG},
+{{OOO_STRING_SVTOOLS_RTF_CS}, RTF_CS},
+{{OOO_STRING_SVTOOLS_RTF_CVMME}, RTF_CVMME},
+{{OOO_STRING_SVTOOLS_RTF_DATAFIELD}, RTF_DATAFIELD},
+{{OOO_STRING_SVTOOLS_RTF_DO}, RTF_DO},
+{{OOO_STRING_SVTOOLS_RTF_DOBXCOLUMN}, RTF_DOBXCOLUMN},
+{{OOO_STRING_SVTOOLS_RTF_DOBXMARGIN}, RTF_DOBXMARGIN},
+{{OOO_STRING_SVTOOLS_RTF_DOBXPAGE}, RTF_DOBXPAGE},
+{{OOO_STRING_SVTOOLS_RTF_DOBYMARGIN}, RTF_DOBYMARGIN},
+{{OOO_STRING_SVTOOLS_RTF_DOBYPAGE}, RTF_DOBYPAGE},
+{{OOO_STRING_SVTOOLS_RTF_DOBYPARA}, RTF_DOBYPARA},
+{{OOO_STRING_SVTOOLS_RTF_DODHGT}, RTF_DODHGT},
+{{OOO_STRING_SVTOOLS_RTF_DOLOCK}, RTF_DOLOCK},
+{{OOO_STRING_SVTOOLS_RTF_DPAENDHOL}, RTF_DPAENDHOL},
+{{OOO_STRING_SVTOOLS_RTF_DPAENDL}, RTF_DPAENDL},
+{{OOO_STRING_SVTOOLS_RTF_DPAENDSOL}, RTF_DPAENDSOL},
+{{OOO_STRING_SVTOOLS_RTF_DPAENDW}, RTF_DPAENDW},
+{{OOO_STRING_SVTOOLS_RTF_DPARC}, RTF_DPARC},
+{{OOO_STRING_SVTOOLS_RTF_DPARCFLIPX}, RTF_DPARCFLIPX},
+{{OOO_STRING_SVTOOLS_RTF_DPARCFLIPY}, RTF_DPARCFLIPY},
+{{OOO_STRING_SVTOOLS_RTF_DPASTARTHOL}, RTF_DPASTARTHOL},
+{{OOO_STRING_SVTOOLS_RTF_DPASTARTL}, RTF_DPASTARTL},
+{{OOO_STRING_SVTOOLS_RTF_DPASTARTSOL}, RTF_DPASTARTSOL},
+{{OOO_STRING_SVTOOLS_RTF_DPASTARTW}, RTF_DPASTARTW},
+{{OOO_STRING_SVTOOLS_RTF_DPCALLOUT}, RTF_DPCALLOUT},
+{{OOO_STRING_SVTOOLS_RTF_DPCOA}, RTF_DPCOA},
+{{OOO_STRING_SVTOOLS_RTF_DPCOACCENT}, RTF_DPCOACCENT},
+{{OOO_STRING_SVTOOLS_RTF_DPCOBESTFIT}, RTF_DPCOBESTFIT},
+{{OOO_STRING_SVTOOLS_RTF_DPCOBORDER}, RTF_DPCOBORDER},
+{{OOO_STRING_SVTOOLS_RTF_DPCODABS}, RTF_DPCODABS},
+{{OOO_STRING_SVTOOLS_RTF_DPCODBOTTOM}, RTF_DPCODBOTTOM},
+{{OOO_STRING_SVTOOLS_RTF_DPCODCENTER}, RTF_DPCODCENTER},
+{{OOO_STRING_SVTOOLS_RTF_DPCODTOP}, RTF_DPCODTOP},
+{{OOO_STRING_SVTOOLS_RTF_DPCOLENGTH}, RTF_DPCOLENGTH},
+{{OOO_STRING_SVTOOLS_RTF_DPCOMINUSX}, RTF_DPCOMINUSX},
+{{OOO_STRING_SVTOOLS_RTF_DPCOMINUSY}, RTF_DPCOMINUSY},
+{{OOO_STRING_SVTOOLS_RTF_DPCOOFFSET}, RTF_DPCOOFFSET},
+{{OOO_STRING_SVTOOLS_RTF_DPCOSMARTA}, RTF_DPCOSMARTA},
+{{OOO_STRING_SVTOOLS_RTF_DPCOTDOUBLE}, RTF_DPCOTDOUBLE},
+{{OOO_STRING_SVTOOLS_RTF_DPCOTRIGHT}, RTF_DPCOTRIGHT},
+{{OOO_STRING_SVTOOLS_RTF_DPCOTSINGLE}, RTF_DPCOTSINGLE},
+{{OOO_STRING_SVTOOLS_RTF_DPCOTTRIPLE}, RTF_DPCOTTRIPLE},
+{{OOO_STRING_SVTOOLS_RTF_DPCOUNT}, RTF_DPCOUNT},
+{{OOO_STRING_SVTOOLS_RTF_DPELLIPSE}, RTF_DPELLIPSE},
+{{OOO_STRING_SVTOOLS_RTF_DPENDGROUP}, RTF_DPENDGROUP},
+{{OOO_STRING_SVTOOLS_RTF_DPFILLBGCB}, RTF_DPFILLBGCB},
+{{OOO_STRING_SVTOOLS_RTF_DPFILLBGCG}, RTF_DPFILLBGCG},
+{{OOO_STRING_SVTOOLS_RTF_DPFILLBGCR}, RTF_DPFILLBGCR},
+{{OOO_STRING_SVTOOLS_RTF_DPFILLBGGRAY}, RTF_DPFILLBGGRAY},
+{{OOO_STRING_SVTOOLS_RTF_DPFILLBGPAL}, RTF_DPFILLBGPAL},
+{{OOO_STRING_SVTOOLS_RTF_DPFILLFGCB}, RTF_DPFILLFGCB},
+{{OOO_STRING_SVTOOLS_RTF_DPFILLFGCG}, RTF_DPFILLFGCG},
+{{OOO_STRING_SVTOOLS_RTF_DPFILLFGCR}, RTF_DPFILLFGCR},
+{{OOO_STRING_SVTOOLS_RTF_DPFILLFGGRAY}, RTF_DPFILLFGGRAY},
+{{OOO_STRING_SVTOOLS_RTF_DPFILLFGPAL}, RTF_DPFILLFGPAL},
+{{OOO_STRING_SVTOOLS_RTF_DPFILLPAT}, RTF_DPFILLPAT},
+{{OOO_STRING_SVTOOLS_RTF_DPGROUP}, RTF_DPGROUP},
+{{OOO_STRING_SVTOOLS_RTF_DPLINE}, RTF_DPLINE},
+{{OOO_STRING_SVTOOLS_RTF_DPLINECOB}, RTF_DPLINECOB},
+{{OOO_STRING_SVTOOLS_RTF_DPLINECOG}, RTF_DPLINECOG},
+{{OOO_STRING_SVTOOLS_RTF_DPLINECOR}, RTF_DPLINECOR},
+{{OOO_STRING_SVTOOLS_RTF_DPLINEDADO}, RTF_DPLINEDADO},
+{{OOO_STRING_SVTOOLS_RTF_DPLINEDADODO}, RTF_DPLINEDADODO},
+{{OOO_STRING_SVTOOLS_RTF_DPLINEDASH}, RTF_DPLINEDASH},
+{{OOO_STRING_SVTOOLS_RTF_DPLINEDOT}, RTF_DPLINEDOT},
+{{OOO_STRING_SVTOOLS_RTF_DPLINEGRAY}, RTF_DPLINEGRAY},
+{{OOO_STRING_SVTOOLS_RTF_DPLINEHOLLOW}, RTF_DPLINEHOLLOW},
+{{OOO_STRING_SVTOOLS_RTF_DPLINEPAL}, RTF_DPLINEPAL},
+{{OOO_STRING_SVTOOLS_RTF_DPLINESOLID}, RTF_DPLINESOLID},
+{{OOO_STRING_SVTOOLS_RTF_DPLINEW}, RTF_DPLINEW},
+{{OOO_STRING_SVTOOLS_RTF_DPPOLYCOUNT}, RTF_DPPOLYCOUNT},
+{{OOO_STRING_SVTOOLS_RTF_DPPOLYGON}, RTF_DPPOLYGON},
+{{OOO_STRING_SVTOOLS_RTF_DPPOLYLINE}, RTF_DPPOLYLINE},
+{{OOO_STRING_SVTOOLS_RTF_DPPTX}, RTF_DPPTX},
+{{OOO_STRING_SVTOOLS_RTF_DPPTY}, RTF_DPPTY},
+{{OOO_STRING_SVTOOLS_RTF_DPRECT}, RTF_DPRECT},
+{{OOO_STRING_SVTOOLS_RTF_DPROUNDR}, RTF_DPROUNDR},
+{{OOO_STRING_SVTOOLS_RTF_DPSHADOW}, RTF_DPSHADOW},
+{{OOO_STRING_SVTOOLS_RTF_DPSHADX}, RTF_DPSHADX},
+{{OOO_STRING_SVTOOLS_RTF_DPSHADY}, RTF_DPSHADY},
+{{OOO_STRING_SVTOOLS_RTF_DPTXBX}, RTF_DPTXBX},
+{{OOO_STRING_SVTOOLS_RTF_DPTXBXMAR}, RTF_DPTXBXMAR},
+{{OOO_STRING_SVTOOLS_RTF_DPTXBXTEXT}, RTF_DPTXBXTEXT},
+{{OOO_STRING_SVTOOLS_RTF_DPX}, RTF_DPX},
+{{OOO_STRING_SVTOOLS_RTF_DPXSIZE}, RTF_DPXSIZE},
+{{OOO_STRING_SVTOOLS_RTF_DPY}, RTF_DPY},
+{{OOO_STRING_SVTOOLS_RTF_DPYSIZE}, RTF_DPYSIZE},
+{{OOO_STRING_SVTOOLS_RTF_DS}, RTF_DS},
+{{OOO_STRING_SVTOOLS_RTF_EMSPACE}, RTF_EMSPACE},
+{{OOO_STRING_SVTOOLS_RTF_ENSPACE}, RTF_ENSPACE},
+{{OOO_STRING_SVTOOLS_RTF_FBIDI}, RTF_FBIDI},
+{{OOO_STRING_SVTOOLS_RTF_FET}, RTF_FET},
+{{OOO_STRING_SVTOOLS_RTF_FID}, RTF_FID},
+{{OOO_STRING_SVTOOLS_RTF_FILE}, RTF_FILE},
+{{OOO_STRING_SVTOOLS_RTF_FILETBL}, RTF_FILETBL},
+{{OOO_STRING_SVTOOLS_RTF_FLDALT}, RTF_FLDALT},
+{{OOO_STRING_SVTOOLS_RTF_FNETWORK}, RTF_FNETWORK},
+{{OOO_STRING_SVTOOLS_RTF_FONTEMB}, RTF_FONTEMB},
+{{OOO_STRING_SVTOOLS_RTF_FONTFILE}, RTF_FONTFILE},
+{{OOO_STRING_SVTOOLS_RTF_FORMDISP}, RTF_FORMDISP},
+{{OOO_STRING_SVTOOLS_RTF_FORMPROT}, RTF_FORMPROT},
+{{OOO_STRING_SVTOOLS_RTF_FORMSHADE}, RTF_FORMSHADE},
+{{OOO_STRING_SVTOOLS_RTF_FOSNUM}, RTF_FOSNUM},
+{{OOO_STRING_SVTOOLS_RTF_FRELATIVE}, RTF_FRELATIVE},
+{{OOO_STRING_SVTOOLS_RTF_FTNALT}, RTF_FTNALT},
+{{OOO_STRING_SVTOOLS_RTF_FTNIL}, RTF_FTNIL},
+{{OOO_STRING_SVTOOLS_RTF_FTNNALC}, RTF_FTNNALC},
+{{OOO_STRING_SVTOOLS_RTF_FTNNAR}, RTF_FTNNAR},
+{{OOO_STRING_SVTOOLS_RTF_FTNNAUC}, RTF_FTNNAUC},
+{{OOO_STRING_SVTOOLS_RTF_FTNNCHI}, RTF_FTNNCHI},
+{{OOO_STRING_SVTOOLS_RTF_FTNNRLC}, RTF_FTNNRLC},
+{{OOO_STRING_SVTOOLS_RTF_FTNNRUC}, RTF_FTNNRUC},
+{{OOO_STRING_SVTOOLS_RTF_FTNRSTCONT}, RTF_FTNRSTCONT},
+{{OOO_STRING_SVTOOLS_RTF_FTNRSTPG}, RTF_FTNRSTPG},
+{{OOO_STRING_SVTOOLS_RTF_FTTRUETYPE}, RTF_FTTRUETYPE},
+{{OOO_STRING_SVTOOLS_RTF_FVALIDDOS}, RTF_FVALIDDOS},
+{{OOO_STRING_SVTOOLS_RTF_FVALIDHPFS}, RTF_FVALIDHPFS},
+{{OOO_STRING_SVTOOLS_RTF_FVALIDMAC}, RTF_FVALIDMAC},
+{{OOO_STRING_SVTOOLS_RTF_FVALIDNTFS}, RTF_FVALIDNTFS},
+{{OOO_STRING_SVTOOLS_RTF_HYPHAUTO}, RTF_HYPHAUTO},
+{{OOO_STRING_SVTOOLS_RTF_HYPHCAPS}, RTF_HYPHCAPS},
+{{OOO_STRING_SVTOOLS_RTF_HYPHCONSEC}, RTF_HYPHCONSEC},
+{{OOO_STRING_SVTOOLS_RTF_HYPHPAR}, RTF_HYPHPAR},
+{{OOO_STRING_SVTOOLS_RTF_LINKSELF}, RTF_LINKSELF},
+{{OOO_STRING_SVTOOLS_RTF_LINKSTYLES}, RTF_LINKSTYLES},
+{{OOO_STRING_SVTOOLS_RTF_LTRCH}, RTF_LTRCH},
+{{OOO_STRING_SVTOOLS_RTF_LTRDOC}, RTF_LTRDOC},
+{{OOO_STRING_SVTOOLS_RTF_LTRMARK}, RTF_LTRMARK},
+{{OOO_STRING_SVTOOLS_RTF_LTRPAR}, RTF_LTRPAR},
+{{OOO_STRING_SVTOOLS_RTF_LTRROW}, RTF_LTRROW},
+{{OOO_STRING_SVTOOLS_RTF_LTRSECT}, RTF_LTRSECT},
+{{OOO_STRING_SVTOOLS_RTF_NOCOLBAL}, RTF_NOCOLBAL},
+{{OOO_STRING_SVTOOLS_RTF_NOEXTRASPRL}, RTF_NOEXTRASPRL},
+{{OOO_STRING_SVTOOLS_RTF_NOTABIND}, RTF_NOTABIND},
+{{OOO_STRING_SVTOOLS_RTF_NOWIDCTLPAR}, RTF_NOWIDCTLPAR},
+{{OOO_STRING_SVTOOLS_RTF_OBJALIAS}, RTF_OBJALIAS},
+{{OOO_STRING_SVTOOLS_RTF_OBJALIGN}, RTF_OBJALIGN},
+{{OOO_STRING_SVTOOLS_RTF_OBJAUTLINK}, RTF_OBJAUTLINK},
+{{OOO_STRING_SVTOOLS_RTF_OBJCLASS}, RTF_OBJCLASS},
+{{OOO_STRING_SVTOOLS_RTF_OBJCROPB}, RTF_OBJCROPB},
+{{OOO_STRING_SVTOOLS_RTF_OBJCROPL}, RTF_OBJCROPL},
+{{OOO_STRING_SVTOOLS_RTF_OBJCROPR}, RTF_OBJCROPR},
+{{OOO_STRING_SVTOOLS_RTF_OBJCROPT}, RTF_OBJCROPT},
+{{OOO_STRING_SVTOOLS_RTF_OBJDATA}, RTF_OBJDATA},
+{{OOO_STRING_SVTOOLS_RTF_OBJECT}, RTF_OBJECT},
+{{OOO_STRING_SVTOOLS_RTF_OBJEMB}, RTF_OBJEMB},
+{{OOO_STRING_SVTOOLS_RTF_OBJH}, RTF_OBJH},
+{{OOO_STRING_SVTOOLS_RTF_OBJICEMB}, RTF_OBJICEMB},
+{{OOO_STRING_SVTOOLS_RTF_OBJLINK}, RTF_OBJLINK},
+{{OOO_STRING_SVTOOLS_RTF_OBJLOCK}, RTF_OBJLOCK},
+{{OOO_STRING_SVTOOLS_RTF_OBJNAME}, RTF_OBJNAME},
+{{OOO_STRING_SVTOOLS_RTF_OBJPUB}, RTF_OBJPUB},
+{{OOO_STRING_SVTOOLS_RTF_OBJSCALEX}, RTF_OBJSCALEX},
+{{OOO_STRING_SVTOOLS_RTF_OBJSCALEY}, RTF_OBJSCALEY},
+{{OOO_STRING_SVTOOLS_RTF_OBJSECT}, RTF_OBJSECT},
+{{OOO_STRING_SVTOOLS_RTF_OBJSETSIZE}, RTF_OBJSETSIZE},
+{{OOO_STRING_SVTOOLS_RTF_OBJSUB}, RTF_OBJSUB},
+{{OOO_STRING_SVTOOLS_RTF_OBJTIME}, RTF_OBJTIME},
+{{OOO_STRING_SVTOOLS_RTF_OBJTRANSY}, RTF_OBJTRANSY},
+{{OOO_STRING_SVTOOLS_RTF_OBJUPDATE}, RTF_OBJUPDATE},
+{{OOO_STRING_SVTOOLS_RTF_OBJW}, RTF_OBJW},
+{{OOO_STRING_SVTOOLS_RTF_OTBLRUL}, RTF_OTBLRUL},
+{{OOO_STRING_SVTOOLS_RTF_PGNHN}, RTF_PGNHN},
+{{OOO_STRING_SVTOOLS_RTF_PGNHNSC}, RTF_PGNHNSC},
+{{OOO_STRING_SVTOOLS_RTF_PGNHNSH}, RTF_PGNHNSH},
+{{OOO_STRING_SVTOOLS_RTF_PGNHNSM}, RTF_PGNHNSM},
+{{OOO_STRING_SVTOOLS_RTF_PGNHNSN}, RTF_PGNHNSN},
+{{OOO_STRING_SVTOOLS_RTF_PGNHNSP}, RTF_PGNHNSP},
+{{OOO_STRING_SVTOOLS_RTF_PICBMP}, RTF_PICBMP},
+{{OOO_STRING_SVTOOLS_RTF_PICBPP}, RTF_PICBPP},
+{{OOO_STRING_SVTOOLS_RTF_PN}, RTF_PN},
+{{OOO_STRING_SVTOOLS_RTF_PNACROSS}, RTF_PNACROSS},
+{{OOO_STRING_SVTOOLS_RTF_PNB}, RTF_PNB},
+{{OOO_STRING_SVTOOLS_RTF_PNCAPS}, RTF_PNCAPS},
+{{OOO_STRING_SVTOOLS_RTF_PNCARD}, RTF_PNCARD},
+{{OOO_STRING_SVTOOLS_RTF_PNCF}, RTF_PNCF},
+{{OOO_STRING_SVTOOLS_RTF_PNDEC}, RTF_PNDEC},
+{{OOO_STRING_SVTOOLS_RTF_PNF}, RTF_PNF},
+{{OOO_STRING_SVTOOLS_RTF_PNFS}, RTF_PNFS},
+{{OOO_STRING_SVTOOLS_RTF_PNHANG}, RTF_PNHANG},
+{{OOO_STRING_SVTOOLS_RTF_PNI}, RTF_PNI},
+{{OOO_STRING_SVTOOLS_RTF_PNINDENT}, RTF_PNINDENT},
+{{OOO_STRING_SVTOOLS_RTF_PNLCLTR}, RTF_PNLCLTR},
+{{OOO_STRING_SVTOOLS_RTF_PNLCRM}, RTF_PNLCRM},
+{{OOO_STRING_SVTOOLS_RTF_PNLVL}, RTF_PNLVL},
+{{OOO_STRING_SVTOOLS_RTF_PNLVLBLT}, RTF_PNLVLBLT},
+{{OOO_STRING_SVTOOLS_RTF_PNLVLBODY}, RTF_PNLVLBODY},
+{{OOO_STRING_SVTOOLS_RTF_PNLVLCONT}, RTF_PNLVLCONT},
+{{OOO_STRING_SVTOOLS_RTF_PNNUMONCE}, RTF_PNNUMONCE},
+{{OOO_STRING_SVTOOLS_RTF_PNORD}, RTF_PNORD},
+{{OOO_STRING_SVTOOLS_RTF_PNORDT}, RTF_PNORDT},
+{{OOO_STRING_SVTOOLS_RTF_PNPREV}, RTF_PNPREV},
+{{OOO_STRING_SVTOOLS_RTF_PNQC}, RTF_PNQC},
+{{OOO_STRING_SVTOOLS_RTF_PNQL}, RTF_PNQL},
+{{OOO_STRING_SVTOOLS_RTF_PNQR}, RTF_PNQR},
+{{OOO_STRING_SVTOOLS_RTF_PNRESTART}, RTF_PNRESTART},
+{{OOO_STRING_SVTOOLS_RTF_PNSCAPS}, RTF_PNSCAPS},
+{{OOO_STRING_SVTOOLS_RTF_PNSECLVL}, RTF_PNSECLVL},
+{{OOO_STRING_SVTOOLS_RTF_PNSP}, RTF_PNSP},
+{{OOO_STRING_SVTOOLS_RTF_PNSTART}, RTF_PNSTART},
+{{OOO_STRING_SVTOOLS_RTF_PNSTRIKE}, RTF_PNSTRIKE},
+{{OOO_STRING_SVTOOLS_RTF_PNTEXT}, RTF_PNTEXT},
+{{OOO_STRING_SVTOOLS_RTF_PNTXTA}, RTF_PNTXTA},
+{{OOO_STRING_SVTOOLS_RTF_PNTXTB}, RTF_PNTXTB},
+{{OOO_STRING_SVTOOLS_RTF_PNUCLTR}, RTF_PNUCLTR},
+{{OOO_STRING_SVTOOLS_RTF_PNUCRM}, RTF_PNUCRM},
+{{OOO_STRING_SVTOOLS_RTF_PNUL}, RTF_PNUL},
+{{OOO_STRING_SVTOOLS_RTF_PNULD}, RTF_PNULD},
+{{OOO_STRING_SVTOOLS_RTF_PNULDB}, RTF_PNULDB},
+{{OOO_STRING_SVTOOLS_RTF_PNULNONE}, RTF_PNULNONE},
+{{OOO_STRING_SVTOOLS_RTF_PNULW}, RTF_PNULW},
+{{OOO_STRING_SVTOOLS_RTF_PRCOLBL}, RTF_PRCOLBL},
+{{OOO_STRING_SVTOOLS_RTF_PRINTDATA}, RTF_PRINTDATA},
+{{OOO_STRING_SVTOOLS_RTF_PSZ}, RTF_PSZ},
+{{OOO_STRING_SVTOOLS_RTF_PUBAUTO}, RTF_PUBAUTO},
+{{OOO_STRING_SVTOOLS_RTF_RESULT}, RTF_RESULT},
+{{OOO_STRING_SVTOOLS_RTF_REVAUTH}, RTF_REVAUTH},
+{{OOO_STRING_SVTOOLS_RTF_REVDTTM}, RTF_REVDTTM},
+{{OOO_STRING_SVTOOLS_RTF_REVPROT}, RTF_REVPROT},
+{{OOO_STRING_SVTOOLS_RTF_REVTBL}, RTF_REVTBL},
+{{OOO_STRING_SVTOOLS_RTF_RSLTBMP}, RTF_RSLTBMP},
+{{OOO_STRING_SVTOOLS_RTF_RSLTMERGE}, RTF_RSLTMERGE},
+{{OOO_STRING_SVTOOLS_RTF_RSLTPICT}, RTF_RSLTPICT},
+{{OOO_STRING_SVTOOLS_RTF_RSLTRTF}, RTF_RSLTRTF},
+{{OOO_STRING_SVTOOLS_RTF_RSLTTXT}, RTF_RSLTTXT},
+{{OOO_STRING_SVTOOLS_RTF_RTLCH}, RTF_RTLCH},
+{{OOO_STRING_SVTOOLS_RTF_RTLDOC}, RTF_RTLDOC},
+{{OOO_STRING_SVTOOLS_RTF_RTLMARK}, RTF_RTLMARK},
+{{OOO_STRING_SVTOOLS_RTF_RTLPAR}, RTF_RTLPAR},
+{{OOO_STRING_SVTOOLS_RTF_RTLROW}, RTF_RTLROW},
+{{OOO_STRING_SVTOOLS_RTF_RTLSECT}, RTF_RTLSECT},
+{{OOO_STRING_SVTOOLS_RTF_SEC}, RTF_SEC},
+{{OOO_STRING_SVTOOLS_RTF_SECTNUM}, RTF_SECTNUM},
+{{OOO_STRING_SVTOOLS_RTF_SECTUNLOCKED}, RTF_SECTUNLOCKED},
+{{OOO_STRING_SVTOOLS_RTF_SLMULT}, RTF_SLMULT},
+{{OOO_STRING_SVTOOLS_RTF_SOFTCOL}, RTF_SOFTCOL},
+{{OOO_STRING_SVTOOLS_RTF_SOFTLHEIGHT}, RTF_SOFTLHEIGHT},
+{{OOO_STRING_SVTOOLS_RTF_SOFTLINE}, RTF_SOFTLINE},
+{{OOO_STRING_SVTOOLS_RTF_SOFTPAGE}, RTF_SOFTPAGE},
+{{OOO_STRING_SVTOOLS_RTF_SPRSSPBF}, RTF_SPRSSPBF},
+{{OOO_STRING_SVTOOLS_RTF_SPRSTSP}, RTF_SPRSTSP},
+{{OOO_STRING_SVTOOLS_RTF_SUBDOCUMENT}, RTF_SUBDOCUMENT},
+{{OOO_STRING_SVTOOLS_RTF_SWPBDR}, RTF_SWPBDR},
+{{OOO_STRING_SVTOOLS_RTF_TCN}, RTF_TCN},
+{{OOO_STRING_SVTOOLS_RTF_TRANSMF}, RTF_TRANSMF},
+{{OOO_STRING_SVTOOLS_RTF_TRBRDRB}, RTF_TRBRDRB},
+{{OOO_STRING_SVTOOLS_RTF_TRBRDRH}, RTF_TRBRDRH},
+{{OOO_STRING_SVTOOLS_RTF_TRBRDRL}, RTF_TRBRDRL},
+{{OOO_STRING_SVTOOLS_RTF_TRBRDRR}, RTF_TRBRDRR},
+{{OOO_STRING_SVTOOLS_RTF_TRBRDRT}, RTF_TRBRDRT},
+{{OOO_STRING_SVTOOLS_RTF_TRBRDRV}, RTF_TRBRDRV},
+{{OOO_STRING_SVTOOLS_RTF_TRHDR}, RTF_TRHDR},
+{{OOO_STRING_SVTOOLS_RTF_TRKEEP}, RTF_TRKEEP},
+{{OOO_STRING_SVTOOLS_RTF_TRPADDB}, RTF_TRPADDB},
+{{OOO_STRING_SVTOOLS_RTF_TRPADDL}, RTF_TRPADDL},
+{{OOO_STRING_SVTOOLS_RTF_TRPADDR}, RTF_TRPADDR},
+{{OOO_STRING_SVTOOLS_RTF_TRPADDT}, RTF_TRPADDT},
+{{OOO_STRING_SVTOOLS_RTF_TRPADDFB}, RTF_TRPADDFB},
+{{OOO_STRING_SVTOOLS_RTF_TRPADDFL}, RTF_TRPADDFL},
+{{OOO_STRING_SVTOOLS_RTF_TRPADDFR}, RTF_TRPADDFR},
+{{OOO_STRING_SVTOOLS_RTF_TRPADDFT}, RTF_TRPADDFT},
-{{sRTF_WRAPTRSP}, RTF_WRAPTRSP},
-{{sRTF_XEF}, RTF_XEF},
-{{sRTF_ZWJ}, RTF_ZWJ},
-{{sRTF_ZWNJ}, RTF_ZWNJ},
+{{OOO_STRING_SVTOOLS_RTF_WRAPTRSP}, RTF_WRAPTRSP},
+{{OOO_STRING_SVTOOLS_RTF_XEF}, RTF_XEF},
+{{OOO_STRING_SVTOOLS_RTF_ZWJ}, RTF_ZWJ},
+{{OOO_STRING_SVTOOLS_RTF_ZWNJ}, RTF_ZWNJ},
-{{sRTF_ABSLOCK}, RTF_ABSLOCK},
-{{sRTF_ADJUSTRIGHT}, RTF_ADJUSTRIGHT},
-{{sRTF_AFTNNCHOSUNG}, RTF_AFTNNCHOSUNG},
-{{sRTF_AFTNNCNUM}, RTF_AFTNNCNUM},
-{{sRTF_AFTNNDBAR}, RTF_AFTNNDBAR},
-{{sRTF_AFTNNDBNUM}, RTF_AFTNNDBNUM},
-{{sRTF_AFTNNDBNUMD}, RTF_AFTNNDBNUMD},
-{{sRTF_AFTNNDBNUMK}, RTF_AFTNNDBNUMK},
-{{sRTF_AFTNNDBNUMT}, RTF_AFTNNDBNUMT},
-{{sRTF_AFTNNGANADA}, RTF_AFTNNGANADA},
-{{sRTF_AFTNNGBNUM}, RTF_AFTNNGBNUM},
-{{sRTF_AFTNNGBNUMD}, RTF_AFTNNGBNUMD},
-{{sRTF_AFTNNGBNUMK}, RTF_AFTNNGBNUMK},
-{{sRTF_AFTNNGBNUML}, RTF_AFTNNGBNUML},
-{{sRTF_AFTNNZODIAC}, RTF_AFTNNZODIAC},
-{{sRTF_AFTNNZODIACD}, RTF_AFTNNZODIACD},
-{{sRTF_AFTNNZODIACL}, RTF_AFTNNZODIACL},
-{{sRTF_ANIMTEXT}, RTF_ANIMTEXT},
-{{sRTF_ANSICPG}, RTF_ANSICPG},
-{{sRTF_BACKGROUND}, RTF_BACKGROUND},
-{{sRTF_BDBFHDR}, RTF_BDBFHDR},
-{{sRTF_BLIPTAG}, RTF_BLIPTAG},
-{{sRTF_BLIPUID}, RTF_BLIPUID},
-{{sRTF_BLIPUPI}, RTF_BLIPUPI},
-{{sRTF_BRDRART}, RTF_BRDRART},
-{{sRTF_BRDRDASHD}, RTF_BRDRDASHD},
-{{sRTF_BRDRDASHDD}, RTF_BRDRDASHDD},
-{{sRTF_BRDRDASHDOTSTR},RTF_BRDRDASHDOTSTR},
-{{sRTF_BRDRDASHSM}, RTF_BRDRDASHSM},
-{{sRTF_BRDREMBOSS}, RTF_BRDREMBOSS},
-{{sRTF_BRDRENGRAVE}, RTF_BRDRENGRAVE},
-{{sRTF_BRDRFRAME}, RTF_BRDRFRAME},
-{{sRTF_BRDRTHTNLG}, RTF_BRDRTHTNLG},
-{{sRTF_BRDRTHTNMG}, RTF_BRDRTHTNMG},
-{{sRTF_BRDRTHTNSG}, RTF_BRDRTHTNSG},
-{{sRTF_BRDRTNTHLG}, RTF_BRDRTNTHLG},
-{{sRTF_BRDRTNTHMG}, RTF_BRDRTNTHMG},
-{{sRTF_BRDRTNTHSG}, RTF_BRDRTNTHSG},
-{{sRTF_BRDRTNTHTNLG}, RTF_BRDRTNTHTNLG},
-{{sRTF_BRDRTNTHTNMG}, RTF_BRDRTNTHTNMG},
-{{sRTF_BRDRTNTHTNSG}, RTF_BRDRTNTHTNSG},
-{{sRTF_BRDRTRIPLE}, RTF_BRDRTRIPLE},
-{{sRTF_BRDRWAVY}, RTF_BRDRWAVY},
-{{sRTF_BRDRWAVYDB}, RTF_BRDRWAVYDB},
-{{sRTF_CATEGORY}, RTF_CATEGORY},
-{{sRTF_CGRID}, RTF_CGRID},
-{{sRTF_CHARSCALEX}, RTF_CHARSCALEX},
-{{sRTF_CHBGBDIAG}, RTF_CHBGBDIAG},
-{{sRTF_CHBGCROSS}, RTF_CHBGCROSS},
-{{sRTF_CHBGDCROSS}, RTF_CHBGDCROSS},
-{{sRTF_CHBGDKBDIAG}, RTF_CHBGDKBDIAG},
-{{sRTF_CHBGDKCROSS}, RTF_CHBGDKCROSS},
-{{sRTF_CHBGDKDCROSS}, RTF_CHBGDKDCROSS},
-{{sRTF_CHBGDKFDIAG}, RTF_CHBGDKFDIAG},
-{{sRTF_CHBGDKHORIZ}, RTF_CHBGDKHORIZ},
-{{sRTF_CHBGDKVERT}, RTF_CHBGDKVERT},
-{{sRTF_CHBGFDIAG}, RTF_CHBGFDIAG},
-{{sRTF_CHBGHORIZ}, RTF_CHBGHORIZ},
-{{sRTF_CHBGVERT}, RTF_CHBGVERT},
-{{sRTF_CHBRDR}, RTF_CHBRDR},
-{{sRTF_CHCBPAT}, RTF_CHCBPAT},
-{{sRTF_CHCFPAT}, RTF_CHCFPAT},
-{{sRTF_CHSHDNG}, RTF_CHSHDNG},
-{{sRTF_CLTXLRTB}, RTF_CLTXLRTB},
-{{sRTF_CLTXTBRL}, RTF_CLTXTBRL},
-{{sRTF_CLVERTALB}, RTF_CLVERTALB},
-{{sRTF_CLVERTALC}, RTF_CLVERTALC},
-{{sRTF_CLVERTALT}, RTF_CLVERTALT},
-{{sRTF_CLVMGF}, RTF_CLVMGF},
-{{sRTF_CLVMRG}, RTF_CLVMRG},
-{{sRTF_CLTXTBRLV}, RTF_CLTXTBRLV},
-{{sRTF_CLTXBTLR}, RTF_CLTXBTLR},
-{{sRTF_CLTXLRTBV}, RTF_CLTXLRTBV},
-{{sRTF_COMPANY}, RTF_COMPANY},
-{{sRTF_CRAUTH}, RTF_CRAUTH},
-{{sRTF_CRDATE}, RTF_CRDATE},
-{{sRTF_DATE}, RTF_DATE},
-{{sRTF_DEFLANGFE}, RTF_DEFLANGFE},
-{{sRTF_DFRAUTH}, RTF_DFRAUTH},
-{{sRTF_DFRDATE}, RTF_DFRDATE},
-{{sRTF_DFRSTART}, RTF_DFRSTART},
-{{sRTF_DFRSTOP}, RTF_DFRSTOP},
-{{sRTF_DFRXST}, RTF_DFRXST},
-{{sRTF_DGMARGIN}, RTF_DGMARGIN},
-{{sRTF_DNTBLNSBDB}, RTF_DNTBLNSBDB},
-{{sRTF_DOCTYPE}, RTF_DOCTYPE},
-{{sRTF_DOCVAR}, RTF_DOCVAR},
-{{sRTF_DPCODESCENT}, RTF_DPCODESCENT},
-{{sRTF_EMBO}, RTF_EMBO},
-{{sRTF_EMFBLIP}, RTF_EMFBLIP},
-{{sRTF_EXPSHRTN}, RTF_EXPSHRTN},
-{{sRTF_FAAUTO}, RTF_FAAUTO},
-{{sRTF_FBIAS}, RTF_FBIAS},
-{{sRTF_FFDEFRES}, RTF_FFDEFRES},
-{{sRTF_FFDEFTEXT}, RTF_FFDEFTEXT},
-{{sRTF_FFENTRYMCR}, RTF_FFENTRYMCR},
-{{sRTF_FFEXITMCR}, RTF_FFEXITMCR},
-{{sRTF_FFFORMAT}, RTF_FFFORMAT},
-{{sRTF_FFHASLISTBOX}, RTF_FFHASLISTBOX},
-{{sRTF_FFHELPTEXT}, RTF_FFHELPTEXT},
-{{sRTF_FFHPS}, RTF_FFHPS},
-{{sRTF_FFL}, RTF_FFL},
-{{sRTF_FFMAXLEN}, RTF_FFMAXLEN},
-{{sRTF_FFNAME}, RTF_FFNAME},
-{{sRTF_FFOWNHELP}, RTF_FFOWNHELP},
-{{sRTF_FFOWNSTAT}, RTF_FFOWNSTAT},
-{{sRTF_FFPROT}, RTF_FFPROT},
-{{sRTF_FFRECALC}, RTF_FFRECALC},
-{{sRTF_FFRES}, RTF_FFRES},
-{{sRTF_FFSIZE}, RTF_FFSIZE},
-{{sRTF_FFSTATTEXT}, RTF_FFSTATTEXT},
-{{sRTF_FFTYPE}, RTF_FFTYPE},
-{{sRTF_FFTYPETXT}, RTF_FFTYPETXT},
-{{sRTF_FLDTYPE}, RTF_FLDTYPE},
-{{sRTF_FNAME}, RTF_FNAME},
-{{sRTF_FORMFIELD}, RTF_FORMFIELD},
-{{sRTF_FROMTEXT}, RTF_FROMTEXT},
-{{sRTF_FTNNCHOSUNG}, RTF_FTNNCHOSUNG},
-{{sRTF_FTNNCNUM}, RTF_FTNNCNUM},
-{{sRTF_FTNNDBAR}, RTF_FTNNDBAR},
-{{sRTF_FTNNDBNUM}, RTF_FTNNDBNUM},
-{{sRTF_FTNNDBNUMD}, RTF_FTNNDBNUMD},
-{{sRTF_FTNNDBNUMK}, RTF_FTNNDBNUMK},
-{{sRTF_FTNNDBNUMT}, RTF_FTNNDBNUMT},
-{{sRTF_FTNNGANADA}, RTF_FTNNGANADA},
-{{sRTF_FTNNGBNUM}, RTF_FTNNGBNUM},
-{{sRTF_FTNNGBNUMD}, RTF_FTNNGBNUMD},
-{{sRTF_FTNNGBNUMK}, RTF_FTNNGBNUMK},
-{{sRTF_FTNNGBNUML}, RTF_FTNNGBNUML},
-{{sRTF_FTNNZODIAC}, RTF_FTNNZODIAC},
-{{sRTF_FTNNZODIACD}, RTF_FTNNZODIACD},
-{{sRTF_FTNNZODIACL}, RTF_FTNNZODIACL},
-{{sRTF_G}, RTF_G},
-{{sRTF_GCW}, RTF_GCW},
-{{sRTF_GRIDTBL}, RTF_GRIDTBL},
-{{sRTF_HIGHLIGHT}, RTF_HIGHLIGHT},
-{{sRTF_HLFR}, RTF_HLFR},
-{{sRTF_HLINKBASE}, RTF_HLINKBASE},
-{{sRTF_HLLOC}, RTF_HLLOC},
-{{sRTF_HLSRC}, RTF_HLSRC},
-{{sRTF_ILVL}, RTF_ILVL},
-{{sRTF_IMPR}, RTF_IMPR},
-{{sRTF_JPEGBLIP}, RTF_JPEGBLIP},
-{{sRTF_LEVELFOLLOW}, RTF_LEVELFOLLOW},
-{{sRTF_LEVELINDENT}, RTF_LEVELINDENT},
-{{sRTF_LEVELJC}, RTF_LEVELJC},
-{{sRTF_LEVELLEGAL}, RTF_LEVELLEGAL},
-{{sRTF_LEVELNFC}, RTF_LEVELNFC},
-{{sRTF_LEVELNORESTART},RTF_LEVELNORESTART},
-{{sRTF_LEVELNUMBERS}, RTF_LEVELNUMBERS},
-{{sRTF_LEVELOLD}, RTF_LEVELOLD},
-{{sRTF_LEVELPREV}, RTF_LEVELPREV},
-{{sRTF_LEVELPREVSPACE},RTF_LEVELPREVSPACE},
-{{sRTF_LEVELSPACE}, RTF_LEVELSPACE},
-{{sRTF_LEVELSTARTAT}, RTF_LEVELSTARTAT},
-{{sRTF_LEVELTEXT}, RTF_LEVELTEXT},
-{{sRTF_LINKVAL}, RTF_LINKVAL},
-{{sRTF_LIST}, RTF_LIST},
-{{sRTF_LISTID}, RTF_LISTID},
-{{sRTF_LISTLEVEL}, RTF_LISTLEVEL},
-{{sRTF_LISTNAME}, RTF_LISTNAME},
-{{sRTF_LISTOVERRIDE}, RTF_LISTOVERRIDE},
-{{sRTF_LISTOVERRIDECOUNT}, RTF_LISTOVERRIDECOUNT},
-{{sRTF_LISTOVERRIDEFORMAT}, RTF_LISTOVERRIDEFORMAT},
-{{sRTF_LISTOVERRIDESTART}, RTF_LISTOVERRIDESTART},
-{{sRTF_LISTOVERRIDETABLE}, RTF_LISTOVERRIDETABLE},
-{{sRTF_LISTRESTARTHDN},RTF_LISTRESTARTHDN},
-{{sRTF_LISTSIMPLE}, RTF_LISTSIMPLE},
-{{sRTF_LISTTABLE}, RTF_LISTTABLE},
-{{sRTF_LISTTEMPLATEID},RTF_LISTTEMPLATEID},
-{{sRTF_LISTTEXT}, RTF_LISTTEXT},
-{{sRTF_LS}, RTF_LS},
-{{sRTF_LYTEXCTTP}, RTF_LYTEXCTTP},
-{{sRTF_LYTPRTMET}, RTF_LYTPRTMET},
-{{sRTF_MANAGER}, RTF_MANAGER},
-{{sRTF_MSMCAP}, RTF_MSMCAP},
-{{sRTF_NOFCHARSWS}, RTF_NOFCHARSWS},
-{{sRTF_NOLEAD}, RTF_NOLEAD},
-{{sRTF_NONSHPPICT}, RTF_NONSHPPICT},
-{{sRTF_NOSECTEXPAND}, RTF_NOSECTEXPAND},
-{{sRTF_NOSNAPLINEGRID},RTF_NOSNAPLINEGRID},
-{{sRTF_NOSPACEFORUL}, RTF_NOSPACEFORUL},
-{{sRTF_NOULTRLSPC}, RTF_NOULTRLSPC},
-{{sRTF_NOXLATTOYEN}, RTF_NOXLATTOYEN},
-{{sRTF_OBJATTPH}, RTF_OBJATTPH},
-{{sRTF_OBJHTML}, RTF_OBJHTML},
-{{sRTF_OBJOCX}, RTF_OBJOCX},
-{{sRTF_OLDLINEWRAP}, RTF_OLDLINEWRAP},
-{{sRTF_OUTLINELEVEL}, RTF_OUTLINELEVEL},
-{{sRTF_OVERLAY}, RTF_OVERLAY},
-{{sRTF_PANOSE}, RTF_PANOSE},
-{{sRTF_PGBRDRB}, RTF_PGBRDRB},
-{{sRTF_PGBRDRFOOT}, RTF_PGBRDRFOOT},
-{{sRTF_PGBRDRHEAD}, RTF_PGBRDRHEAD},
-{{sRTF_PGBRDRL}, RTF_PGBRDRL},
-{{sRTF_PGBRDROPT}, RTF_PGBRDROPT},
-{{sRTF_PGBRDRR}, RTF_PGBRDRR},
-{{sRTF_PGBRDRSNAP}, RTF_PGBRDRSNAP},
-{{sRTF_PGBRDRT}, RTF_PGBRDRT},
-{{sRTF_PGNCHOSUNG}, RTF_PGNCHOSUNG},
-{{sRTF_PGNCNUM}, RTF_PGNCNUM},
-{{sRTF_PGNDBNUMK}, RTF_PGNDBNUMK},
-{{sRTF_PGNDBNUMT}, RTF_PGNDBNUMT},
-{{sRTF_PGNGANADA}, RTF_PGNGANADA},
-{{sRTF_PGNGBNUM}, RTF_PGNGBNUM},
-{{sRTF_PGNGBNUMD}, RTF_PGNGBNUMD},
-{{sRTF_PGNGBNUMK}, RTF_PGNGBNUMK},
-{{sRTF_PGNGBNUML}, RTF_PGNGBNUML},
-{{sRTF_PGNZODIAC}, RTF_PGNZODIAC},
-{{sRTF_PGNZODIACD}, RTF_PGNZODIACD},
-{{sRTF_PGNZODIACL}, RTF_PGNZODIACL},
-{{sRTF_PICPROP}, RTF_PICPROP},
-{{sRTF_PNAIUEO}, RTF_PNAIUEO},
-{{sRTF_PNAIUEOD}, RTF_PNAIUEOD},
-{{sRTF_PNCHOSUNG}, RTF_PNCHOSUNG},
-{{sRTF_PNDBNUMD}, RTF_PNDBNUMD},
-{{sRTF_PNDBNUMK}, RTF_PNDBNUMK},
-{{sRTF_PNDBNUML}, RTF_PNDBNUML},
-{{sRTF_PNDBNUMT}, RTF_PNDBNUMT},
-{{sRTF_PNGANADA}, RTF_PNGANADA},
-{{sRTF_PNGBLIP}, RTF_PNGBLIP},
-{{sRTF_PNGBNUM}, RTF_PNGBNUM},
-{{sRTF_PNGBNUMD}, RTF_PNGBNUMD},
-{{sRTF_PNGBNUMK}, RTF_PNGBNUMK},
-{{sRTF_PNGBNUML}, RTF_PNGBNUML},
-{{sRTF_PNRAUTH}, RTF_PNRAUTH},
-{{sRTF_PNRDATE}, RTF_PNRDATE},
-{{sRTF_PNRNFC}, RTF_PNRNFC},
-{{sRTF_PNRNOT}, RTF_PNRNOT},
-{{sRTF_PNRPNBR}, RTF_PNRPNBR},
-{{sRTF_PNRRGB}, RTF_PNRRGB},
-{{sRTF_PNRSTART}, RTF_PNRSTART},
-{{sRTF_PNRSTOP}, RTF_PNRSTOP},
-{{sRTF_PNRXST}, RTF_PNRXST},
-{{sRTF_PNZODIAC}, RTF_PNZODIAC},
-{{sRTF_PNZODIACD}, RTF_PNZODIACD},
-{{sRTF_PNZODIACL}, RTF_PNZODIACL},
-{{sRTF_LFOLEVEL}, RTF_LFOLEVEL},
-{{sRTF_POSYIN}, RTF_POSYIN},
-{{sRTF_POSYOUT}, RTF_POSYOUT},
-{{sRTF_PRIVATE}, RTF_PRIVATE},
-{{sRTF_PROPNAME}, RTF_PROPNAME},
-{{sRTF_PROPTYPE}, RTF_PROPTYPE},
-{{sRTF_REVAUTHDEL}, RTF_REVAUTHDEL},
-{{sRTF_REVDTTMDEL}, RTF_REVDTTMDEL},
-{{sRTF_SAUTOUPD}, RTF_SAUTOUPD},
-{{sRTF_SECTDEFAULTCL}, RTF_SECTDEFAULTCL},
-{{sRTF_SECTEXPAND}, RTF_SECTEXPAND},
-{{sRTF_SECTLINEGRID}, RTF_SECTLINEGRID},
-{{sRTF_SECTSPECIFYCL}, RTF_SECTSPECIFYCL},
-{{sRTF_SECTSPECIFYL}, RTF_SECTSPECIFYL},
-{{sRTF_SHIDDEN}, RTF_SHIDDEN},
-{{sRTF_SHPBOTTOM}, RTF_SHPBOTTOM},
-{{sRTF_SHPBXCOLUMN}, RTF_SHPBXCOLUMN},
-{{sRTF_SHPBXMARGIN}, RTF_SHPBXMARGIN},
-{{sRTF_SHPBXPAGE}, RTF_SHPBXPAGE},
-{{sRTF_SHPBYMARGIN}, RTF_SHPBYMARGIN},
-{{sRTF_SHPBYPAGE}, RTF_SHPBYPAGE},
-{{sRTF_SHPBYPARA}, RTF_SHPBYPARA},
-{{sRTF_SHPFBLWTXT}, RTF_SHPFBLWTXT},
-{{sRTF_SHPFHDR}, RTF_SHPFHDR},
-{{sRTF_SHPGRP}, RTF_SHPGRP},
-{{sRTF_SHPLEFT}, RTF_SHPLEFT},
-{{sRTF_SHPLID}, RTF_SHPLID},
-{{sRTF_SHPLOCKANCHOR}, RTF_SHPLOCKANCHOR},
-{{sRTF_SHPPICT}, RTF_SHPPICT},
-{{sRTF_SHPRIGHT}, RTF_SHPRIGHT},
-{{sRTF_SHPRSLT}, RTF_SHPRSLT},
-{{sRTF_SHPTOP}, RTF_SHPTOP},
-{{sRTF_SHPTXT}, RTF_SHPTXT},
-{{sRTF_SHPWRK}, RTF_SHPWRK},
-{{sRTF_SHPWR}, RTF_SHPWR},
-{{sRTF_SHPZ}, RTF_SHPZ},
-{{sRTF_SPRSBSP}, RTF_SPRSBSP},
-{{sRTF_SPRSLNSP}, RTF_SPRSLNSP},
-{{sRTF_SPRSTSM}, RTF_SPRSTSM},
-{{sRTF_STATICVAL}, RTF_STATICVAL},
-{{sRTF_STEXTFLOW}, RTF_STEXTFLOW},
-{{sRTF_STRIKED}, RTF_STRIKED},
-{{sRTF_SUBFONTBYSIZE}, RTF_SUBFONTBYSIZE},
-{{sRTF_TCELLD}, RTF_TCELLD},
-{{sRTF_TIME}, RTF_TIME},
-{{sRTF_TRUNCATEFONTHEIGHT}, RTF_TRUNCATEFONTHEIGHT},
-{{sRTF_UC}, RTF_UC},
-{{sRTF_UD}, RTF_UD},
-{{sRTF_ULDASH}, RTF_ULDASH},
-{{sRTF_ULDASHD}, RTF_ULDASHD},
-{{sRTF_ULDASHDD}, RTF_ULDASHDD},
-{{sRTF_ULTH}, RTF_ULTH},
-{{sRTF_ULWAVE}, RTF_ULWAVE},
-{{sRTF_ULC}, RTF_ULC},
-{{sRTF_U}, RTF_U},
-{{sRTF_UPR}, RTF_UPR},
-{{sRTF_USERPROPS}, RTF_USERPROPS},
-{{sRTF_VIEWKIND}, RTF_VIEWKIND},
-{{sRTF_VIEWSCALE}, RTF_VIEWSCALE},
-{{sRTF_VIEWZK}, RTF_VIEWZK},
-{{sRTF_WIDCTLPAR}, RTF_WIDCTLPAR},
-{{sRTF_WINDOWCAPTION}, RTF_WINDOWCAPTION},
-{{sRTF_WPEQN}, RTF_WPEQN},
-{{sRTF_WPJST}, RTF_WPJST},
-{{sRTF_WPSP}, RTF_WPSP},
-{{sRTF_YXE}, RTF_YXE},
-{{sRTF_FRMTXLRTB}, RTF_FRMTXLRTB},
-{{sRTF_FRMTXTBRL}, RTF_FRMTXTBRL},
-{{sRTF_FRMTXBTLR}, RTF_FRMTXBTLR},
-{{sRTF_FRMTXLRTBV}, RTF_FRMTXLRTBV},
-{{sRTF_FRMTXTBRLV}, RTF_FRMTXTBRLV},
+{{OOO_STRING_SVTOOLS_RTF_ABSLOCK}, RTF_ABSLOCK},
+{{OOO_STRING_SVTOOLS_RTF_ADJUSTRIGHT}, RTF_ADJUSTRIGHT},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNCHOSUNG}, RTF_AFTNNCHOSUNG},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNCNUM}, RTF_AFTNNCNUM},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNDBAR}, RTF_AFTNNDBAR},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNDBNUM}, RTF_AFTNNDBNUM},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNDBNUMD}, RTF_AFTNNDBNUMD},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNDBNUMK}, RTF_AFTNNDBNUMK},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNDBNUMT}, RTF_AFTNNDBNUMT},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNGANADA}, RTF_AFTNNGANADA},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNGBNUM}, RTF_AFTNNGBNUM},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNGBNUMD}, RTF_AFTNNGBNUMD},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNGBNUMK}, RTF_AFTNNGBNUMK},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNGBNUML}, RTF_AFTNNGBNUML},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNZODIAC}, RTF_AFTNNZODIAC},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNZODIACD}, RTF_AFTNNZODIACD},
+{{OOO_STRING_SVTOOLS_RTF_AFTNNZODIACL}, RTF_AFTNNZODIACL},
+{{OOO_STRING_SVTOOLS_RTF_ANIMTEXT}, RTF_ANIMTEXT},
+{{OOO_STRING_SVTOOLS_RTF_ANSICPG}, RTF_ANSICPG},
+{{OOO_STRING_SVTOOLS_RTF_BACKGROUND}, RTF_BACKGROUND},
+{{OOO_STRING_SVTOOLS_RTF_BDBFHDR}, RTF_BDBFHDR},
+{{OOO_STRING_SVTOOLS_RTF_BLIPTAG}, RTF_BLIPTAG},
+{{OOO_STRING_SVTOOLS_RTF_BLIPUID}, RTF_BLIPUID},
+{{OOO_STRING_SVTOOLS_RTF_BLIPUPI}, RTF_BLIPUPI},
+{{OOO_STRING_SVTOOLS_RTF_BRDRART}, RTF_BRDRART},
+{{OOO_STRING_SVTOOLS_RTF_BRDRDASHD}, RTF_BRDRDASHD},
+{{OOO_STRING_SVTOOLS_RTF_BRDRDASHDD}, RTF_BRDRDASHDD},
+{{OOO_STRING_SVTOOLS_RTF_BRDRDASHDOTSTR},RTF_BRDRDASHDOTSTR},
+{{OOO_STRING_SVTOOLS_RTF_BRDRDASHSM}, RTF_BRDRDASHSM},
+{{OOO_STRING_SVTOOLS_RTF_BRDREMBOSS}, RTF_BRDREMBOSS},
+{{OOO_STRING_SVTOOLS_RTF_BRDRENGRAVE}, RTF_BRDRENGRAVE},
+{{OOO_STRING_SVTOOLS_RTF_BRDRFRAME}, RTF_BRDRFRAME},
+{{OOO_STRING_SVTOOLS_RTF_BRDRTHTNLG}, RTF_BRDRTHTNLG},
+{{OOO_STRING_SVTOOLS_RTF_BRDRTHTNMG}, RTF_BRDRTHTNMG},
+{{OOO_STRING_SVTOOLS_RTF_BRDRTHTNSG}, RTF_BRDRTHTNSG},
+{{OOO_STRING_SVTOOLS_RTF_BRDRTNTHLG}, RTF_BRDRTNTHLG},
+{{OOO_STRING_SVTOOLS_RTF_BRDRTNTHMG}, RTF_BRDRTNTHMG},
+{{OOO_STRING_SVTOOLS_RTF_BRDRTNTHSG}, RTF_BRDRTNTHSG},
+{{OOO_STRING_SVTOOLS_RTF_BRDRTNTHTNLG}, RTF_BRDRTNTHTNLG},
+{{OOO_STRING_SVTOOLS_RTF_BRDRTNTHTNMG}, RTF_BRDRTNTHTNMG},
+{{OOO_STRING_SVTOOLS_RTF_BRDRTNTHTNSG}, RTF_BRDRTNTHTNSG},
+{{OOO_STRING_SVTOOLS_RTF_BRDRTRIPLE}, RTF_BRDRTRIPLE},
+{{OOO_STRING_SVTOOLS_RTF_BRDRWAVY}, RTF_BRDRWAVY},
+{{OOO_STRING_SVTOOLS_RTF_BRDRWAVYDB}, RTF_BRDRWAVYDB},
+{{OOO_STRING_SVTOOLS_RTF_CATEGORY}, RTF_CATEGORY},
+{{OOO_STRING_SVTOOLS_RTF_CGRID}, RTF_CGRID},
+{{OOO_STRING_SVTOOLS_RTF_CHARSCALEX}, RTF_CHARSCALEX},
+{{OOO_STRING_SVTOOLS_RTF_CHBGBDIAG}, RTF_CHBGBDIAG},
+{{OOO_STRING_SVTOOLS_RTF_CHBGCROSS}, RTF_CHBGCROSS},
+{{OOO_STRING_SVTOOLS_RTF_CHBGDCROSS}, RTF_CHBGDCROSS},
+{{OOO_STRING_SVTOOLS_RTF_CHBGDKBDIAG}, RTF_CHBGDKBDIAG},
+{{OOO_STRING_SVTOOLS_RTF_CHBGDKCROSS}, RTF_CHBGDKCROSS},
+{{OOO_STRING_SVTOOLS_RTF_CHBGDKDCROSS}, RTF_CHBGDKDCROSS},
+{{OOO_STRING_SVTOOLS_RTF_CHBGDKFDIAG}, RTF_CHBGDKFDIAG},
+{{OOO_STRING_SVTOOLS_RTF_CHBGDKHORIZ}, RTF_CHBGDKHORIZ},
+{{OOO_STRING_SVTOOLS_RTF_CHBGDKVERT}, RTF_CHBGDKVERT},
+{{OOO_STRING_SVTOOLS_RTF_CHBGFDIAG}, RTF_CHBGFDIAG},
+{{OOO_STRING_SVTOOLS_RTF_CHBGHORIZ}, RTF_CHBGHORIZ},
+{{OOO_STRING_SVTOOLS_RTF_CHBGVERT}, RTF_CHBGVERT},
+{{OOO_STRING_SVTOOLS_RTF_CHBRDR}, RTF_CHBRDR},
+{{OOO_STRING_SVTOOLS_RTF_CHCBPAT}, RTF_CHCBPAT},
+{{OOO_STRING_SVTOOLS_RTF_CHCFPAT}, RTF_CHCFPAT},
+{{OOO_STRING_SVTOOLS_RTF_CHSHDNG}, RTF_CHSHDNG},
+{{OOO_STRING_SVTOOLS_RTF_CLTXLRTB}, RTF_CLTXLRTB},
+{{OOO_STRING_SVTOOLS_RTF_CLTXTBRL}, RTF_CLTXTBRL},
+{{OOO_STRING_SVTOOLS_RTF_CLVERTALB}, RTF_CLVERTALB},
+{{OOO_STRING_SVTOOLS_RTF_CLVERTALC}, RTF_CLVERTALC},
+{{OOO_STRING_SVTOOLS_RTF_CLVERTALT}, RTF_CLVERTALT},
+{{OOO_STRING_SVTOOLS_RTF_CLVMGF}, RTF_CLVMGF},
+{{OOO_STRING_SVTOOLS_RTF_CLVMRG}, RTF_CLVMRG},
+{{OOO_STRING_SVTOOLS_RTF_CLTXTBRLV}, RTF_CLTXTBRLV},
+{{OOO_STRING_SVTOOLS_RTF_CLTXBTLR}, RTF_CLTXBTLR},
+{{OOO_STRING_SVTOOLS_RTF_CLTXLRTBV}, RTF_CLTXLRTBV},
+{{OOO_STRING_SVTOOLS_RTF_COMPANY}, RTF_COMPANY},
+{{OOO_STRING_SVTOOLS_RTF_CRAUTH}, RTF_CRAUTH},
+{{OOO_STRING_SVTOOLS_RTF_CRDATE}, RTF_CRDATE},
+{{OOO_STRING_SVTOOLS_RTF_DATE}, RTF_DATE},
+{{OOO_STRING_SVTOOLS_RTF_DEFLANGFE}, RTF_DEFLANGFE},
+{{OOO_STRING_SVTOOLS_RTF_DFRAUTH}, RTF_DFRAUTH},
+{{OOO_STRING_SVTOOLS_RTF_DFRDATE}, RTF_DFRDATE},
+{{OOO_STRING_SVTOOLS_RTF_DFRSTART}, RTF_DFRSTART},
+{{OOO_STRING_SVTOOLS_RTF_DFRSTOP}, RTF_DFRSTOP},
+{{OOO_STRING_SVTOOLS_RTF_DFRXST}, RTF_DFRXST},
+{{OOO_STRING_SVTOOLS_RTF_DGMARGIN}, RTF_DGMARGIN},
+{{OOO_STRING_SVTOOLS_RTF_DNTBLNSBDB}, RTF_DNTBLNSBDB},
+{{OOO_STRING_SVTOOLS_RTF_DOCTYPE}, RTF_DOCTYPE},
+{{OOO_STRING_SVTOOLS_RTF_DOCVAR}, RTF_DOCVAR},
+{{OOO_STRING_SVTOOLS_RTF_DPCODESCENT}, RTF_DPCODESCENT},
+{{OOO_STRING_SVTOOLS_RTF_EMBO}, RTF_EMBO},
+{{OOO_STRING_SVTOOLS_RTF_EMFBLIP}, RTF_EMFBLIP},
+{{OOO_STRING_SVTOOLS_RTF_EXPSHRTN}, RTF_EXPSHRTN},
+{{OOO_STRING_SVTOOLS_RTF_FAAUTO}, RTF_FAAUTO},
+{{OOO_STRING_SVTOOLS_RTF_FBIAS}, RTF_FBIAS},
+{{OOO_STRING_SVTOOLS_RTF_FFDEFRES}, RTF_FFDEFRES},
+{{OOO_STRING_SVTOOLS_RTF_FFDEFTEXT}, RTF_FFDEFTEXT},
+{{OOO_STRING_SVTOOLS_RTF_FFENTRYMCR}, RTF_FFENTRYMCR},
+{{OOO_STRING_SVTOOLS_RTF_FFEXITMCR}, RTF_FFEXITMCR},
+{{OOO_STRING_SVTOOLS_RTF_FFFORMAT}, RTF_FFFORMAT},
+{{OOO_STRING_SVTOOLS_RTF_FFHASLISTBOX}, RTF_FFHASLISTBOX},
+{{OOO_STRING_SVTOOLS_RTF_FFHELPTEXT}, RTF_FFHELPTEXT},
+{{OOO_STRING_SVTOOLS_RTF_FFHPS}, RTF_FFHPS},
+{{OOO_STRING_SVTOOLS_RTF_FFL}, RTF_FFL},
+{{OOO_STRING_SVTOOLS_RTF_FFMAXLEN}, RTF_FFMAXLEN},
+{{OOO_STRING_SVTOOLS_RTF_FFNAME}, RTF_FFNAME},
+{{OOO_STRING_SVTOOLS_RTF_FFOWNHELP}, RTF_FFOWNHELP},
+{{OOO_STRING_SVTOOLS_RTF_FFOWNSTAT}, RTF_FFOWNSTAT},
+{{OOO_STRING_SVTOOLS_RTF_FFPROT}, RTF_FFPROT},
+{{OOO_STRING_SVTOOLS_RTF_FFRECALC}, RTF_FFRECALC},
+{{OOO_STRING_SVTOOLS_RTF_FFRES}, RTF_FFRES},
+{{OOO_STRING_SVTOOLS_RTF_FFSIZE}, RTF_FFSIZE},
+{{OOO_STRING_SVTOOLS_RTF_FFSTATTEXT}, RTF_FFSTATTEXT},
+{{OOO_STRING_SVTOOLS_RTF_FFTYPE}, RTF_FFTYPE},
+{{OOO_STRING_SVTOOLS_RTF_FFTYPETXT}, RTF_FFTYPETXT},
+{{OOO_STRING_SVTOOLS_RTF_FLDTYPE}, RTF_FLDTYPE},
+{{OOO_STRING_SVTOOLS_RTF_FNAME}, RTF_FNAME},
+{{OOO_STRING_SVTOOLS_RTF_FORMFIELD}, RTF_FORMFIELD},
+{{OOO_STRING_SVTOOLS_RTF_FROMTEXT}, RTF_FROMTEXT},
+{{OOO_STRING_SVTOOLS_RTF_FTNNCHOSUNG}, RTF_FTNNCHOSUNG},
+{{OOO_STRING_SVTOOLS_RTF_FTNNCNUM}, RTF_FTNNCNUM},
+{{OOO_STRING_SVTOOLS_RTF_FTNNDBAR}, RTF_FTNNDBAR},
+{{OOO_STRING_SVTOOLS_RTF_FTNNDBNUM}, RTF_FTNNDBNUM},
+{{OOO_STRING_SVTOOLS_RTF_FTNNDBNUMD}, RTF_FTNNDBNUMD},
+{{OOO_STRING_SVTOOLS_RTF_FTNNDBNUMK}, RTF_FTNNDBNUMK},
+{{OOO_STRING_SVTOOLS_RTF_FTNNDBNUMT}, RTF_FTNNDBNUMT},
+{{OOO_STRING_SVTOOLS_RTF_FTNNGANADA}, RTF_FTNNGANADA},
+{{OOO_STRING_SVTOOLS_RTF_FTNNGBNUM}, RTF_FTNNGBNUM},
+{{OOO_STRING_SVTOOLS_RTF_FTNNGBNUMD}, RTF_FTNNGBNUMD},
+{{OOO_STRING_SVTOOLS_RTF_FTNNGBNUMK}, RTF_FTNNGBNUMK},
+{{OOO_STRING_SVTOOLS_RTF_FTNNGBNUML}, RTF_FTNNGBNUML},
+{{OOO_STRING_SVTOOLS_RTF_FTNNZODIAC}, RTF_FTNNZODIAC},
+{{OOO_STRING_SVTOOLS_RTF_FTNNZODIACD}, RTF_FTNNZODIACD},
+{{OOO_STRING_SVTOOLS_RTF_FTNNZODIACL}, RTF_FTNNZODIACL},
+{{OOO_STRING_SVTOOLS_RTF_G}, RTF_G},
+{{OOO_STRING_SVTOOLS_RTF_GCW}, RTF_GCW},
+{{OOO_STRING_SVTOOLS_RTF_GRIDTBL}, RTF_GRIDTBL},
+{{OOO_STRING_SVTOOLS_RTF_HIGHLIGHT}, RTF_HIGHLIGHT},
+{{OOO_STRING_SVTOOLS_RTF_HLFR}, RTF_HLFR},
+{{OOO_STRING_SVTOOLS_RTF_HLINKBASE}, RTF_HLINKBASE},
+{{OOO_STRING_SVTOOLS_RTF_HLLOC}, RTF_HLLOC},
+{{OOO_STRING_SVTOOLS_RTF_HLSRC}, RTF_HLSRC},
+{{OOO_STRING_SVTOOLS_RTF_ILVL}, RTF_ILVL},
+{{OOO_STRING_SVTOOLS_RTF_IMPR}, RTF_IMPR},
+{{OOO_STRING_SVTOOLS_RTF_JPEGBLIP}, RTF_JPEGBLIP},
+{{OOO_STRING_SVTOOLS_RTF_LEVELFOLLOW}, RTF_LEVELFOLLOW},
+{{OOO_STRING_SVTOOLS_RTF_LEVELINDENT}, RTF_LEVELINDENT},
+{{OOO_STRING_SVTOOLS_RTF_LEVELJC}, RTF_LEVELJC},
+{{OOO_STRING_SVTOOLS_RTF_LEVELLEGAL}, RTF_LEVELLEGAL},
+{{OOO_STRING_SVTOOLS_RTF_LEVELNFC}, RTF_LEVELNFC},
+{{OOO_STRING_SVTOOLS_RTF_LEVELNORESTART},RTF_LEVELNORESTART},
+{{OOO_STRING_SVTOOLS_RTF_LEVELNUMBERS}, RTF_LEVELNUMBERS},
+{{OOO_STRING_SVTOOLS_RTF_LEVELOLD}, RTF_LEVELOLD},
+{{OOO_STRING_SVTOOLS_RTF_LEVELPREV}, RTF_LEVELPREV},
+{{OOO_STRING_SVTOOLS_RTF_LEVELPREVSPACE},RTF_LEVELPREVSPACE},
+{{OOO_STRING_SVTOOLS_RTF_LEVELSPACE}, RTF_LEVELSPACE},
+{{OOO_STRING_SVTOOLS_RTF_LEVELSTARTAT}, RTF_LEVELSTARTAT},
+{{OOO_STRING_SVTOOLS_RTF_LEVELTEXT}, RTF_LEVELTEXT},
+{{OOO_STRING_SVTOOLS_RTF_LINKVAL}, RTF_LINKVAL},
+{{OOO_STRING_SVTOOLS_RTF_LIST}, RTF_LIST},
+{{OOO_STRING_SVTOOLS_RTF_LISTID}, RTF_LISTID},
+{{OOO_STRING_SVTOOLS_RTF_LISTLEVEL}, RTF_LISTLEVEL},
+{{OOO_STRING_SVTOOLS_RTF_LISTNAME}, RTF_LISTNAME},
+{{OOO_STRING_SVTOOLS_RTF_LISTOVERRIDE}, RTF_LISTOVERRIDE},
+{{OOO_STRING_SVTOOLS_RTF_LISTOVERRIDECOUNT}, RTF_LISTOVERRIDECOUNT},
+{{OOO_STRING_SVTOOLS_RTF_LISTOVERRIDEFORMAT}, RTF_LISTOVERRIDEFORMAT},
+{{OOO_STRING_SVTOOLS_RTF_LISTOVERRIDESTART}, RTF_LISTOVERRIDESTART},
+{{OOO_STRING_SVTOOLS_RTF_LISTOVERRIDETABLE}, RTF_LISTOVERRIDETABLE},
+{{OOO_STRING_SVTOOLS_RTF_LISTRESTARTHDN},RTF_LISTRESTARTHDN},
+{{OOO_STRING_SVTOOLS_RTF_LISTSIMPLE}, RTF_LISTSIMPLE},
+{{OOO_STRING_SVTOOLS_RTF_LISTTABLE}, RTF_LISTTABLE},
+{{OOO_STRING_SVTOOLS_RTF_LISTTEMPLATEID},RTF_LISTTEMPLATEID},
+{{OOO_STRING_SVTOOLS_RTF_LISTTEXT}, RTF_LISTTEXT},
+{{OOO_STRING_SVTOOLS_RTF_LS}, RTF_LS},
+{{OOO_STRING_SVTOOLS_RTF_LYTEXCTTP}, RTF_LYTEXCTTP},
+{{OOO_STRING_SVTOOLS_RTF_LYTPRTMET}, RTF_LYTPRTMET},
+{{OOO_STRING_SVTOOLS_RTF_MANAGER}, RTF_MANAGER},
+{{OOO_STRING_SVTOOLS_RTF_MSMCAP}, RTF_MSMCAP},
+{{OOO_STRING_SVTOOLS_RTF_NOFCHARSWS}, RTF_NOFCHARSWS},
+{{OOO_STRING_SVTOOLS_RTF_NOLEAD}, RTF_NOLEAD},
+{{OOO_STRING_SVTOOLS_RTF_NONSHPPICT}, RTF_NONSHPPICT},
+{{OOO_STRING_SVTOOLS_RTF_NOSECTEXPAND}, RTF_NOSECTEXPAND},
+{{OOO_STRING_SVTOOLS_RTF_NOSNAPLINEGRID},RTF_NOSNAPLINEGRID},
+{{OOO_STRING_SVTOOLS_RTF_NOSPACEFORUL}, RTF_NOSPACEFORUL},
+{{OOO_STRING_SVTOOLS_RTF_NOULTRLSPC}, RTF_NOULTRLSPC},
+{{OOO_STRING_SVTOOLS_RTF_NOXLATTOYEN}, RTF_NOXLATTOYEN},
+{{OOO_STRING_SVTOOLS_RTF_OBJATTPH}, RTF_OBJATTPH},
+{{OOO_STRING_SVTOOLS_RTF_OBJHTML}, RTF_OBJHTML},
+{{OOO_STRING_SVTOOLS_RTF_OBJOCX}, RTF_OBJOCX},
+{{OOO_STRING_SVTOOLS_RTF_OLDLINEWRAP}, RTF_OLDLINEWRAP},
+{{OOO_STRING_SVTOOLS_RTF_OUTLINELEVEL}, RTF_OUTLINELEVEL},
+{{OOO_STRING_SVTOOLS_RTF_OVERLAY}, RTF_OVERLAY},
+{{OOO_STRING_SVTOOLS_RTF_PANOSE}, RTF_PANOSE},
+{{OOO_STRING_SVTOOLS_RTF_PGBRDRB}, RTF_PGBRDRB},
+{{OOO_STRING_SVTOOLS_RTF_PGBRDRFOOT}, RTF_PGBRDRFOOT},
+{{OOO_STRING_SVTOOLS_RTF_PGBRDRHEAD}, RTF_PGBRDRHEAD},
+{{OOO_STRING_SVTOOLS_RTF_PGBRDRL}, RTF_PGBRDRL},
+{{OOO_STRING_SVTOOLS_RTF_PGBRDROPT}, RTF_PGBRDROPT},
+{{OOO_STRING_SVTOOLS_RTF_PGBRDRR}, RTF_PGBRDRR},
+{{OOO_STRING_SVTOOLS_RTF_PGBRDRSNAP}, RTF_PGBRDRSNAP},
+{{OOO_STRING_SVTOOLS_RTF_PGBRDRT}, RTF_PGBRDRT},
+{{OOO_STRING_SVTOOLS_RTF_PGNCHOSUNG}, RTF_PGNCHOSUNG},
+{{OOO_STRING_SVTOOLS_RTF_PGNCNUM}, RTF_PGNCNUM},
+{{OOO_STRING_SVTOOLS_RTF_PGNDBNUMK}, RTF_PGNDBNUMK},
+{{OOO_STRING_SVTOOLS_RTF_PGNDBNUMT}, RTF_PGNDBNUMT},
+{{OOO_STRING_SVTOOLS_RTF_PGNGANADA}, RTF_PGNGANADA},
+{{OOO_STRING_SVTOOLS_RTF_PGNGBNUM}, RTF_PGNGBNUM},
+{{OOO_STRING_SVTOOLS_RTF_PGNGBNUMD}, RTF_PGNGBNUMD},
+{{OOO_STRING_SVTOOLS_RTF_PGNGBNUMK}, RTF_PGNGBNUMK},
+{{OOO_STRING_SVTOOLS_RTF_PGNGBNUML}, RTF_PGNGBNUML},
+{{OOO_STRING_SVTOOLS_RTF_PGNZODIAC}, RTF_PGNZODIAC},
+{{OOO_STRING_SVTOOLS_RTF_PGNZODIACD}, RTF_PGNZODIACD},
+{{OOO_STRING_SVTOOLS_RTF_PGNZODIACL}, RTF_PGNZODIACL},
+{{OOO_STRING_SVTOOLS_RTF_PICPROP}, RTF_PICPROP},
+{{OOO_STRING_SVTOOLS_RTF_PNAIUEO}, RTF_PNAIUEO},
+{{OOO_STRING_SVTOOLS_RTF_PNAIUEOD}, RTF_PNAIUEOD},
+{{OOO_STRING_SVTOOLS_RTF_PNCHOSUNG}, RTF_PNCHOSUNG},
+{{OOO_STRING_SVTOOLS_RTF_PNDBNUMD}, RTF_PNDBNUMD},
+{{OOO_STRING_SVTOOLS_RTF_PNDBNUMK}, RTF_PNDBNUMK},
+{{OOO_STRING_SVTOOLS_RTF_PNDBNUML}, RTF_PNDBNUML},
+{{OOO_STRING_SVTOOLS_RTF_PNDBNUMT}, RTF_PNDBNUMT},
+{{OOO_STRING_SVTOOLS_RTF_PNGANADA}, RTF_PNGANADA},
+{{OOO_STRING_SVTOOLS_RTF_PNGBLIP}, RTF_PNGBLIP},
+{{OOO_STRING_SVTOOLS_RTF_PNGBNUM}, RTF_PNGBNUM},
+{{OOO_STRING_SVTOOLS_RTF_PNGBNUMD}, RTF_PNGBNUMD},
+{{OOO_STRING_SVTOOLS_RTF_PNGBNUMK}, RTF_PNGBNUMK},
+{{OOO_STRING_SVTOOLS_RTF_PNGBNUML}, RTF_PNGBNUML},
+{{OOO_STRING_SVTOOLS_RTF_PNRAUTH}, RTF_PNRAUTH},
+{{OOO_STRING_SVTOOLS_RTF_PNRDATE}, RTF_PNRDATE},
+{{OOO_STRING_SVTOOLS_RTF_PNRNFC}, RTF_PNRNFC},
+{{OOO_STRING_SVTOOLS_RTF_PNRNOT}, RTF_PNRNOT},
+{{OOO_STRING_SVTOOLS_RTF_PNRPNBR}, RTF_PNRPNBR},
+{{OOO_STRING_SVTOOLS_RTF_PNRRGB}, RTF_PNRRGB},
+{{OOO_STRING_SVTOOLS_RTF_PNRSTART}, RTF_PNRSTART},
+{{OOO_STRING_SVTOOLS_RTF_PNRSTOP}, RTF_PNRSTOP},
+{{OOO_STRING_SVTOOLS_RTF_PNRXST}, RTF_PNRXST},
+{{OOO_STRING_SVTOOLS_RTF_PNZODIAC}, RTF_PNZODIAC},
+{{OOO_STRING_SVTOOLS_RTF_PNZODIACD}, RTF_PNZODIACD},
+{{OOO_STRING_SVTOOLS_RTF_PNZODIACL}, RTF_PNZODIACL},
+{{OOO_STRING_SVTOOLS_RTF_LFOLEVEL}, RTF_LFOLEVEL},
+{{OOO_STRING_SVTOOLS_RTF_POSYIN}, RTF_POSYIN},
+{{OOO_STRING_SVTOOLS_RTF_POSYOUT}, RTF_POSYOUT},
+{{OOO_STRING_SVTOOLS_RTF_PRIVATE}, RTF_PRIVATE},
+{{OOO_STRING_SVTOOLS_RTF_PROPNAME}, RTF_PROPNAME},
+{{OOO_STRING_SVTOOLS_RTF_PROPTYPE}, RTF_PROPTYPE},
+{{OOO_STRING_SVTOOLS_RTF_REVAUTHDEL}, RTF_REVAUTHDEL},
+{{OOO_STRING_SVTOOLS_RTF_REVDTTMDEL}, RTF_REVDTTMDEL},
+{{OOO_STRING_SVTOOLS_RTF_SAUTOUPD}, RTF_SAUTOUPD},
+{{OOO_STRING_SVTOOLS_RTF_SECTDEFAULTCL}, RTF_SECTDEFAULTCL},
+{{OOO_STRING_SVTOOLS_RTF_SECTEXPAND}, RTF_SECTEXPAND},
+{{OOO_STRING_SVTOOLS_RTF_SECTLINEGRID}, RTF_SECTLINEGRID},
+{{OOO_STRING_SVTOOLS_RTF_SECTSPECIFYCL}, RTF_SECTSPECIFYCL},
+{{OOO_STRING_SVTOOLS_RTF_SECTSPECIFYL}, RTF_SECTSPECIFYL},
+{{OOO_STRING_SVTOOLS_RTF_SHIDDEN}, RTF_SHIDDEN},
+{{OOO_STRING_SVTOOLS_RTF_SHPBOTTOM}, RTF_SHPBOTTOM},
+{{OOO_STRING_SVTOOLS_RTF_SHPBXCOLUMN}, RTF_SHPBXCOLUMN},
+{{OOO_STRING_SVTOOLS_RTF_SHPBXMARGIN}, RTF_SHPBXMARGIN},
+{{OOO_STRING_SVTOOLS_RTF_SHPBXPAGE}, RTF_SHPBXPAGE},
+{{OOO_STRING_SVTOOLS_RTF_SHPBYMARGIN}, RTF_SHPBYMARGIN},
+{{OOO_STRING_SVTOOLS_RTF_SHPBYPAGE}, RTF_SHPBYPAGE},
+{{OOO_STRING_SVTOOLS_RTF_SHPBYPARA}, RTF_SHPBYPARA},
+{{OOO_STRING_SVTOOLS_RTF_SHPFBLWTXT}, RTF_SHPFBLWTXT},
+{{OOO_STRING_SVTOOLS_RTF_SHPFHDR}, RTF_SHPFHDR},
+{{OOO_STRING_SVTOOLS_RTF_SHPGRP}, RTF_SHPGRP},
+{{OOO_STRING_SVTOOLS_RTF_SHPLEFT}, RTF_SHPLEFT},
+{{OOO_STRING_SVTOOLS_RTF_SHPLID}, RTF_SHPLID},
+{{OOO_STRING_SVTOOLS_RTF_SHPLOCKANCHOR}, RTF_SHPLOCKANCHOR},
+{{OOO_STRING_SVTOOLS_RTF_SHPPICT}, RTF_SHPPICT},
+{{OOO_STRING_SVTOOLS_RTF_SHPRIGHT}, RTF_SHPRIGHT},
+{{OOO_STRING_SVTOOLS_RTF_SHPRSLT}, RTF_SHPRSLT},
+{{OOO_STRING_SVTOOLS_RTF_SHPTOP}, RTF_SHPTOP},
+{{OOO_STRING_SVTOOLS_RTF_SHPTXT}, RTF_SHPTXT},
+{{OOO_STRING_SVTOOLS_RTF_SHPWRK}, RTF_SHPWRK},
+{{OOO_STRING_SVTOOLS_RTF_SHPWR}, RTF_SHPWR},
+{{OOO_STRING_SVTOOLS_RTF_SHPZ}, RTF_SHPZ},
+{{OOO_STRING_SVTOOLS_RTF_SPRSBSP}, RTF_SPRSBSP},
+{{OOO_STRING_SVTOOLS_RTF_SPRSLNSP}, RTF_SPRSLNSP},
+{{OOO_STRING_SVTOOLS_RTF_SPRSTSM}, RTF_SPRSTSM},
+{{OOO_STRING_SVTOOLS_RTF_STATICVAL}, RTF_STATICVAL},
+{{OOO_STRING_SVTOOLS_RTF_STEXTFLOW}, RTF_STEXTFLOW},
+{{OOO_STRING_SVTOOLS_RTF_STRIKED}, RTF_STRIKED},
+{{OOO_STRING_SVTOOLS_RTF_SUBFONTBYSIZE}, RTF_SUBFONTBYSIZE},
+{{OOO_STRING_SVTOOLS_RTF_TCELLD}, RTF_TCELLD},
+{{OOO_STRING_SVTOOLS_RTF_TIME}, RTF_TIME},
+{{OOO_STRING_SVTOOLS_RTF_TRUNCATEFONTHEIGHT}, RTF_TRUNCATEFONTHEIGHT},
+{{OOO_STRING_SVTOOLS_RTF_UC}, RTF_UC},
+{{OOO_STRING_SVTOOLS_RTF_UD}, RTF_UD},
+{{OOO_STRING_SVTOOLS_RTF_ULDASH}, RTF_ULDASH},
+{{OOO_STRING_SVTOOLS_RTF_ULDASHD}, RTF_ULDASHD},
+{{OOO_STRING_SVTOOLS_RTF_ULDASHDD}, RTF_ULDASHDD},
+{{OOO_STRING_SVTOOLS_RTF_ULTH}, RTF_ULTH},
+{{OOO_STRING_SVTOOLS_RTF_ULWAVE}, RTF_ULWAVE},
+{{OOO_STRING_SVTOOLS_RTF_ULC}, RTF_ULC},
+{{OOO_STRING_SVTOOLS_RTF_U}, RTF_U},
+{{OOO_STRING_SVTOOLS_RTF_UPR}, RTF_UPR},
+{{OOO_STRING_SVTOOLS_RTF_USERPROPS}, RTF_USERPROPS},
+{{OOO_STRING_SVTOOLS_RTF_VIEWKIND}, RTF_VIEWKIND},
+{{OOO_STRING_SVTOOLS_RTF_VIEWSCALE}, RTF_VIEWSCALE},
+{{OOO_STRING_SVTOOLS_RTF_VIEWZK}, RTF_VIEWZK},
+{{OOO_STRING_SVTOOLS_RTF_WIDCTLPAR}, RTF_WIDCTLPAR},
+{{OOO_STRING_SVTOOLS_RTF_WINDOWCAPTION}, RTF_WINDOWCAPTION},
+{{OOO_STRING_SVTOOLS_RTF_WPEQN}, RTF_WPEQN},
+{{OOO_STRING_SVTOOLS_RTF_WPJST}, RTF_WPJST},
+{{OOO_STRING_SVTOOLS_RTF_WPSP}, RTF_WPSP},
+{{OOO_STRING_SVTOOLS_RTF_YXE}, RTF_YXE},
+{{OOO_STRING_SVTOOLS_RTF_FRMTXLRTB}, RTF_FRMTXLRTB},
+{{OOO_STRING_SVTOOLS_RTF_FRMTXTBRL}, RTF_FRMTXTBRL},
+{{OOO_STRING_SVTOOLS_RTF_FRMTXBTLR}, RTF_FRMTXBTLR},
+{{OOO_STRING_SVTOOLS_RTF_FRMTXLRTBV}, RTF_FRMTXLRTBV},
+{{OOO_STRING_SVTOOLS_RTF_FRMTXTBRLV}, RTF_FRMTXTBRLV},
// MS-2000 Tokens
- {{sRTF_ULTHD}, RTF_ULTHD},
- {{sRTF_ULTHDASH}, RTF_ULTHDASH},
- {{sRTF_ULLDASH}, RTF_ULLDASH},
- {{sRTF_ULTHLDASH}, RTF_ULTHLDASH},
- {{sRTF_ULTHDASHD}, RTF_ULTHDASHD},
- {{sRTF_ULTHDASHDD}, RTF_ULTHDASHDD},
- {{sRTF_ULHWAVE}, RTF_ULHWAVE},
- {{sRTF_ULULDBWAVE}, RTF_ULULDBWAVE},
+ {{OOO_STRING_SVTOOLS_RTF_ULTHD}, RTF_ULTHD},
+ {{OOO_STRING_SVTOOLS_RTF_ULTHDASH}, RTF_ULTHDASH},
+ {{OOO_STRING_SVTOOLS_RTF_ULLDASH}, RTF_ULLDASH},
+ {{OOO_STRING_SVTOOLS_RTF_ULTHLDASH}, RTF_ULTHLDASH},
+ {{OOO_STRING_SVTOOLS_RTF_ULTHDASHD}, RTF_ULTHDASHD},
+ {{OOO_STRING_SVTOOLS_RTF_ULTHDASHDD}, RTF_ULTHDASHDD},
+ {{OOO_STRING_SVTOOLS_RTF_ULHWAVE}, RTF_ULHWAVE},
+ {{OOO_STRING_SVTOOLS_RTF_ULULDBWAVE}, RTF_ULULDBWAVE},
- {{sRTF_LOCH}, RTF_LOCH},
- {{sRTF_HICH}, RTF_HICH},
- {{sRTF_DBCH}, RTF_DBCH},
- {{sRTF_LANGFE}, RTF_LANGFE},
- {{sRTF_ADEFLANG}, RTF_ADEFLANG},
- {{sRTF_ADEFF}, RTF_ADEFF},
- {{sRTF_ACCNONE}, RTF_ACCNONE},
- {{sRTF_ACCDOT}, RTF_ACCDOT},
- {{sRTF_ACCCOMMA}, RTF_ACCCOMMA},
- {{sRTF_TWOINONE}, RTF_TWOINONE},
- {{sRTF_HORZVERT}, RTF_HORZVERT},
- {{sRTF_FAHANG}, RTF_FAHANG},
- {{sRTF_FAVAR}, RTF_FAVAR},
- {{sRTF_FACENTER}, RTF_FACENTER},
- {{sRTF_FAROMAN}, RTF_FAROMAN},
- {{sRTF_FAFIXED}, RTF_FAFIXED},
- {{sRTF_NOCWRAP}, RTF_NOCWRAP},
- {{sRTF_NOOVERFLOW}, RTF_NOOVERFLOW},
- {{sRTF_ASPALPHA}, RTF_ASPALPHA},
+ {{OOO_STRING_SVTOOLS_RTF_LOCH}, RTF_LOCH},
+ {{OOO_STRING_SVTOOLS_RTF_HICH}, RTF_HICH},
+ {{OOO_STRING_SVTOOLS_RTF_DBCH}, RTF_DBCH},
+ {{OOO_STRING_SVTOOLS_RTF_LANGFE}, RTF_LANGFE},
+ {{OOO_STRING_SVTOOLS_RTF_ADEFLANG}, RTF_ADEFLANG},
+ {{OOO_STRING_SVTOOLS_RTF_ADEFF}, RTF_ADEFF},
+ {{OOO_STRING_SVTOOLS_RTF_ACCNONE}, RTF_ACCNONE},
+ {{OOO_STRING_SVTOOLS_RTF_ACCDOT}, RTF_ACCDOT},
+ {{OOO_STRING_SVTOOLS_RTF_ACCCOMMA}, RTF_ACCCOMMA},
+ {{OOO_STRING_SVTOOLS_RTF_TWOINONE}, RTF_TWOINONE},
+ {{OOO_STRING_SVTOOLS_RTF_HORZVERT}, RTF_HORZVERT},
+ {{OOO_STRING_SVTOOLS_RTF_FAHANG}, RTF_FAHANG},
+ {{OOO_STRING_SVTOOLS_RTF_FAVAR}, RTF_FAVAR},
+ {{OOO_STRING_SVTOOLS_RTF_FACENTER}, RTF_FACENTER},
+ {{OOO_STRING_SVTOOLS_RTF_FAROMAN}, RTF_FAROMAN},
+ {{OOO_STRING_SVTOOLS_RTF_FAFIXED}, RTF_FAFIXED},
+ {{OOO_STRING_SVTOOLS_RTF_NOCWRAP}, RTF_NOCWRAP},
+ {{OOO_STRING_SVTOOLS_RTF_NOOVERFLOW}, RTF_NOOVERFLOW},
+ {{OOO_STRING_SVTOOLS_RTF_ASPALPHA}, RTF_ASPALPHA},
// SWG spezifische Attribute
- {{sRTF_GRFALIGNV}, RTF_GRF_ALIGNV},
- {{sRTF_GRFALIGNH}, RTF_GRF_ALIGNH},
- {{sRTF_GRFMIRROR}, RTF_GRF_MIRROR},
- {{sRTF_HEADERYB}, RTF_HEADER_YB},
- {{sRTF_HEADERXL}, RTF_HEADER_XL},
- {{sRTF_HEADERXR}, RTF_HEADER_XR},
- {{sRTF_FOOTERYT}, RTF_FOOTER_YT},
- {{sRTF_FOOTERXL}, RTF_FOOTER_XL},
- {{sRTF_FOOTERXR}, RTF_FOOTER_XR},
- {{sRTF_HEADERYH}, RTF_HEADER_YH},
- {{sRTF_FOOTERYH}, RTF_FOOTER_YH},
- {{sRTF_BALANCEDCOLUMN},RTF_BALANCED_COLUMN},
- {{sRTF_UPDNPROP}, RTF_SWG_ESCPROP},
- {{sRTF_PRTDATA}, RTF_SWG_PRTDATA},
- {{sRTF_BKMKKEY}, RTF_BKMK_KEY},
+ {{OOO_STRING_SVTOOLS_RTF_GRFALIGNV}, RTF_GRF_ALIGNV},
+ {{OOO_STRING_SVTOOLS_RTF_GRFALIGNH}, RTF_GRF_ALIGNH},
+ {{OOO_STRING_SVTOOLS_RTF_GRFMIRROR}, RTF_GRF_MIRROR},
+ {{OOO_STRING_SVTOOLS_RTF_HEADERYB}, RTF_HEADER_YB},
+ {{OOO_STRING_SVTOOLS_RTF_HEADERXL}, RTF_HEADER_XL},
+ {{OOO_STRING_SVTOOLS_RTF_HEADERXR}, RTF_HEADER_XR},
+ {{OOO_STRING_SVTOOLS_RTF_FOOTERYT}, RTF_FOOTER_YT},
+ {{OOO_STRING_SVTOOLS_RTF_FOOTERXL}, RTF_FOOTER_XL},
+ {{OOO_STRING_SVTOOLS_RTF_FOOTERXR}, RTF_FOOTER_XR},
+ {{OOO_STRING_SVTOOLS_RTF_HEADERYH}, RTF_HEADER_YH},
+ {{OOO_STRING_SVTOOLS_RTF_FOOTERYH}, RTF_FOOTER_YH},
+ {{OOO_STRING_SVTOOLS_RTF_BALANCEDCOLUMN},RTF_BALANCED_COLUMN},
+ {{OOO_STRING_SVTOOLS_RTF_UPDNPROP}, RTF_SWG_ESCPROP},
+ {{OOO_STRING_SVTOOLS_RTF_PRTDATA}, RTF_SWG_PRTDATA},
+ {{OOO_STRING_SVTOOLS_RTF_BKMKKEY}, RTF_BKMK_KEY},
// Attribute fuer die freifliegenden Rahmen
- {{sRTF_FLYPRINT}, RTF_FLYPRINT},
- {{sRTF_FLYOPAQUE}, RTF_FLYOPAQUE},
- {{sRTF_FLYPRTCTD}, RTF_FLYPRTCTD},
- {{sRTF_FLYMAINCNT}, RTF_FLYMAINCNT},
- {{sRTF_FLYVERT}, RTF_FLYVERT},
- {{sRTF_FLYHORZ}, RTF_FLYHORZ},
- {{sRTF_DFRMTXTL}, RTF_FLYOUTLEFT},
- {{sRTF_DFRMTXTR}, RTF_FLYOUTRIGHT},
- {{sRTF_DFRMTXTU}, RTF_FLYOUTUPPER},
- {{sRTF_DFRMTXTW}, RTF_FLYOUTLOWER},
- {{sRTF_FLYANCHOR}, RTF_FLYANCHOR},
- {{sRTF_FLYCNTNT}, RTF_FLY_CNTNT},
- {{sRTF_FLYCOLUMN}, RTF_FLY_COLUMN},
- {{sRTF_FLYPAGE}, RTF_FLY_PAGE},
+ {{OOO_STRING_SVTOOLS_RTF_FLYPRINT}, RTF_FLYPRINT},
+ {{OOO_STRING_SVTOOLS_RTF_FLYOPAQUE}, RTF_FLYOPAQUE},
+ {{OOO_STRING_SVTOOLS_RTF_FLYPRTCTD}, RTF_FLYPRTCTD},
+ {{OOO_STRING_SVTOOLS_RTF_FLYMAINCNT}, RTF_FLYMAINCNT},
+ {{OOO_STRING_SVTOOLS_RTF_FLYVERT}, RTF_FLYVERT},
+ {{OOO_STRING_SVTOOLS_RTF_FLYHORZ}, RTF_FLYHORZ},
+ {{OOO_STRING_SVTOOLS_RTF_DFRMTXTL}, RTF_FLYOUTLEFT},
+ {{OOO_STRING_SVTOOLS_RTF_DFRMTXTR}, RTF_FLYOUTRIGHT},
+ {{OOO_STRING_SVTOOLS_RTF_DFRMTXTU}, RTF_FLYOUTUPPER},
+ {{OOO_STRING_SVTOOLS_RTF_DFRMTXTW}, RTF_FLYOUTLOWER},
+ {{OOO_STRING_SVTOOLS_RTF_FLYANCHOR}, RTF_FLYANCHOR},
+ {{OOO_STRING_SVTOOLS_RTF_FLYCNTNT}, RTF_FLY_CNTNT},
+ {{OOO_STRING_SVTOOLS_RTF_FLYCOLUMN}, RTF_FLY_COLUMN},
+ {{OOO_STRING_SVTOOLS_RTF_FLYPAGE}, RTF_FLY_PAGE},
- {{sRTF_BRDBOX}, RTF_BRDBOX},
- {{sRTF_BRDLNCOL}, RTF_BRDLINE_COL},
- {{sRTF_BRDLNIN}, RTF_BRDLINE_IN},
- {{sRTF_BRDLNOUT}, RTF_BRDLINE_OUT},
- {{sRTF_BRDLNDIST}, RTF_BRDLINE_DIST},
+ {{OOO_STRING_SVTOOLS_RTF_BRDBOX}, RTF_BRDBOX},
+ {{OOO_STRING_SVTOOLS_RTF_BRDLNCOL}, RTF_BRDLINE_COL},
+ {{OOO_STRING_SVTOOLS_RTF_BRDLNIN}, RTF_BRDLINE_IN},
+ {{OOO_STRING_SVTOOLS_RTF_BRDLNOUT}, RTF_BRDLINE_OUT},
+ {{OOO_STRING_SVTOOLS_RTF_BRDLNDIST}, RTF_BRDLINE_DIST},
- {{sRTF_SHADOW}, RTF_SHADOW},
- {{sRTF_SHDWDIST}, RTF_SHDW_DIST},
- {{sRTF_SHDWSTYLE}, RTF_SHDW_STYLE},
- {{sRTF_SHDWCOL}, RTF_SHDW_COL},
- {{sRTF_SHDWFCOL}, RTF_SHDW_FCOL},
+ {{OOO_STRING_SVTOOLS_RTF_SHADOW}, RTF_SHADOW},
+ {{OOO_STRING_SVTOOLS_RTF_SHDWDIST}, RTF_SHDW_DIST},
+ {{OOO_STRING_SVTOOLS_RTF_SHDWSTYLE}, RTF_SHDW_STYLE},
+ {{OOO_STRING_SVTOOLS_RTF_SHDWCOL}, RTF_SHDW_COL},
+ {{OOO_STRING_SVTOOLS_RTF_SHDWFCOL}, RTF_SHDW_FCOL},
- {{sRTF_FLYINPARA}, RTF_FLY_INPARA},
+ {{OOO_STRING_SVTOOLS_RTF_FLYINPARA}, RTF_FLY_INPARA},
- {{sRTF_PGDSCTBL}, RTF_PGDSCTBL},
- {{sRTF_PGDSC}, RTF_PGDSC},
- {{sRTF_PGDSCUSE}, RTF_PGDSCUSE},
- {{sRTF_PGDSCNXT}, RTF_PGDSCNXT},
+ {{OOO_STRING_SVTOOLS_RTF_PGDSCTBL}, RTF_PGDSCTBL},
+ {{OOO_STRING_SVTOOLS_RTF_PGDSC}, RTF_PGDSC},
+ {{OOO_STRING_SVTOOLS_RTF_PGDSCUSE}, RTF_PGDSCUSE},
+ {{OOO_STRING_SVTOOLS_RTF_PGDSCNXT}, RTF_PGDSCNXT},
- {{sRTF_HYPHEN}, RTF_HYPHEN},
- {{sRTF_HYPHLEAD}, RTF_HYPHLEAD},
- {{sRTF_HYPHTRAIL}, RTF_HYPHTRAIL},
- {{sRTF_HYPHMAX}, RTF_HYPHMAX},
+ {{OOO_STRING_SVTOOLS_RTF_HYPHEN}, RTF_HYPHEN},
+ {{OOO_STRING_SVTOOLS_RTF_HYPHLEAD}, RTF_HYPHLEAD},
+ {{OOO_STRING_SVTOOLS_RTF_HYPHTRAIL}, RTF_HYPHTRAIL},
+ {{OOO_STRING_SVTOOLS_RTF_HYPHMAX}, RTF_HYPHMAX},
- {{sRTF_TLSWG}, RTF_TLSWG},
- {{sRTF_PGBRK}, RTF_PGBRK},
+ {{OOO_STRING_SVTOOLS_RTF_TLSWG}, RTF_TLSWG},
+ {{OOO_STRING_SVTOOLS_RTF_PGBRK}, RTF_PGBRK},
- {{sRTF_PGDSCNO}, RTF_PGDSCNO},
- {{sRTF_SOUTLVL}, RTF_SOUTLVL},
+ {{OOO_STRING_SVTOOLS_RTF_PGDSCNO}, RTF_PGDSCNO},
+ {{OOO_STRING_SVTOOLS_RTF_SOUTLVL}, RTF_SOUTLVL},
- {{sRTF_SHP}, RTF_SHP},
+ {{OOO_STRING_SVTOOLS_RTF_SHP}, RTF_SHP},
/*
- {{sRTF_SHPLEFT}, RTF_SHPLEFT}
- {{sRTF_SHPTOP}, RTF_SHPTOP}
- {{sRTF_SHPBOTTOM}, RTF_SHPBOTTOM}
- {{sRTF_SHPRIGHT}, RTF_SHPRIGHT}
+ {{OOO_STRING_SVTOOLS_RTF_SHPLEFT}, RTF_SHPLEFT}
+ {{OOO_STRING_SVTOOLS_RTF_SHPTOP}, RTF_SHPTOP}
+ {{OOO_STRING_SVTOOLS_RTF_SHPBOTTOM}, RTF_SHPBOTTOM}
+ {{OOO_STRING_SVTOOLS_RTF_SHPRIGHT}, RTF_SHPRIGHT}
*/
- {{sRTF_SN}, RTF_SN},
- {{sRTF_SV}, RTF_SV},
+ {{OOO_STRING_SVTOOLS_RTF_SN}, RTF_SN},
+ {{OOO_STRING_SVTOOLS_RTF_SV}, RTF_SV},
// Support for overline attributes
- {{sRTF_OL}, RTF_OL},
- {{sRTF_OLW}, RTF_OLW},
- {{sRTF_OLD}, RTF_OLD},
- {{sRTF_OLDB}, RTF_OLDB},
- {{sRTF_OLNONE}, RTF_OLNONE},
- {{sRTF_OLDASH}, RTF_OLDASH},
- {{sRTF_OLDASHD}, RTF_OLDASHD},
- {{sRTF_OLDASHDD}, RTF_OLDASHDD},
- {{sRTF_OLTH}, RTF_OLTH},
- {{sRTF_OLWAVE}, RTF_OLWAVE},
- {{sRTF_OLC}, RTF_OLC},
- {{sRTF_OLTHD}, RTF_OLTHD},
- {{sRTF_OLTHDASH}, RTF_OLTHDASH},
- {{sRTF_OLLDASH}, RTF_OLLDASH},
- {{sRTF_OLTHLDASH}, RTF_OLTHLDASH},
- {{sRTF_OLTHDASHD}, RTF_OLTHDASHD},
- {{sRTF_OLTHDASHDD}, RTF_OLTHDASHDD},
- {{sRTF_OLHWAVE}, RTF_OLHWAVE},
- {{sRTF_OLOLDBWAVE}, RTF_OLOLDBWAVE}
+ {{OOO_STRING_SVTOOLS_RTF_OL}, RTF_OL},
+ {{OOO_STRING_SVTOOLS_RTF_OLW}, RTF_OLW},
+ {{OOO_STRING_SVTOOLS_RTF_OLD}, RTF_OLD},
+ {{OOO_STRING_SVTOOLS_RTF_OLDB}, RTF_OLDB},
+ {{OOO_STRING_SVTOOLS_RTF_OLNONE}, RTF_OLNONE},
+ {{OOO_STRING_SVTOOLS_RTF_OLDASH}, RTF_OLDASH},
+ {{OOO_STRING_SVTOOLS_RTF_OLDASHD}, RTF_OLDASHD},
+ {{OOO_STRING_SVTOOLS_RTF_OLDASHDD}, RTF_OLDASHDD},
+ {{OOO_STRING_SVTOOLS_RTF_OLTH}, RTF_OLTH},
+ {{OOO_STRING_SVTOOLS_RTF_OLWAVE}, RTF_OLWAVE},
+ {{OOO_STRING_SVTOOLS_RTF_OLC}, RTF_OLC},
+ {{OOO_STRING_SVTOOLS_RTF_OLTHD}, RTF_OLTHD},
+ {{OOO_STRING_SVTOOLS_RTF_OLTHDASH}, RTF_OLTHDASH},
+ {{OOO_STRING_SVTOOLS_RTF_OLLDASH}, RTF_OLLDASH},
+ {{OOO_STRING_SVTOOLS_RTF_OLTHLDASH}, RTF_OLTHLDASH},
+ {{OOO_STRING_SVTOOLS_RTF_OLTHDASHD}, RTF_OLTHDASHD},
+ {{OOO_STRING_SVTOOLS_RTF_OLTHDASHDD}, RTF_OLTHDASHDD},
+ {{OOO_STRING_SVTOOLS_RTF_OLHWAVE}, RTF_OLHWAVE},
+ {{OOO_STRING_SVTOOLS_RTF_OLOLDBWAVE}, RTF_OLOLDBWAVE}
};
diff --git a/svtools/source/svrtf/rtfkeywd.hxx b/svtools/source/svrtf/rtfkeywd.hxx
index e7aa2b9a645b..f76399ffd824 100644
--- a/svtools/source/svrtf/rtfkeywd.hxx
+++ b/svtools/source/svrtf/rtfkeywd.hxx
@@ -31,1144 +31,1114 @@
#ifndef _RTFKEYWD_HXX
#define _RTFKEYWD_HXX
-#include "svtools/svtdllapi.h"
-#include "sal/types.h"
+#include "sal/config.h"
-#ifndef SVTOOLS_CONSTASCII_DECL
-#define SVTOOLS_CONSTASCII_DECL( n, s ) n[sizeof(s)]
-#endif
-#ifndef SVTOOLS_CONSTASCII_DEF
-#define SVTOOLS_CONSTASCII_DEF( n, s ) n[sizeof(s)] = s
-#endif
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEXCHAR, "\\'" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_IGNORE, "\\*" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OPTHYPH, "\\-" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SUBENTRY, "\\:" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ABSH, "\\absh" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ABSW, "\\absw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ALT, "\\alt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ANNOTATION, "\\annotation" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ANSI, "\\ansi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATNID, "\\atnid" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AUTHOR, "\\author" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_B, "\\b" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGBDIAG, "\\bgbdiag" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGCROSS, "\\bgcross" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDCROSS, "\\bgdcross" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDKBDIAG, "\\bgdkbdiag" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDKCROSS, "\\bgdkcross" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDKDCROSS, "\\bgdkdcross" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDKFDIAG, "\\bgdkfdiag" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDKHORIZ, "\\bgdkhoriz" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGDKVERT, "\\bgdkvert" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGFDIAG, "\\bgfdiag" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGHORIZ, "\\bghoriz" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BGVERT, "\\bgvert" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BIN, "\\bin" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BINFSXN, "\\binfsxn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BINSXN, "\\binsxn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BKMKCOLF, "\\bkmkcolf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BKMKCOLL, "\\bkmkcoll" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BKMKEND, "\\bkmkend" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BKMKSTART, "\\bkmkstart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BLUE, "\\blue" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BOX, "\\box" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRB, "\\brdrb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRBAR, "\\brdrbar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRBTW, "\\brdrbtw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRCF, "\\brdrcf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDB, "\\brdrdb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDOT, "\\brdrdot" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRHAIR, "\\brdrhair" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRL, "\\brdrl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRR, "\\brdrr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRS, "\\brdrs" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRSH, "\\brdrsh" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRT, "\\brdrt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTH, "\\brdrth" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRW, "\\brdrw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRSP, "\\brsp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BULLET, "\\bullet" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BUPTIM, "\\buptim" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BXE, "\\bxe" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CAPS, "\\caps" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CB, "\\cb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CBPAT, "\\cbpat" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CELL, "\\cell" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CELLX, "\\cellx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CF, "\\cf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CFPAT, "\\cfpat" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHATN, "\\chatn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHDATE, "\\chdate" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHDPA, "\\chdpa" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHDPL, "\\chdpl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHFTN, "\\chftn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHFTNSEP, "\\chftnsep" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHFTNSEPC, "\\chftnsepc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHPGN, "\\chpgn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHTIME, "\\chtime" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGBDIAG, "\\clbgbdiag" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGCROSS, "\\clbgcross" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDCROSS, "\\clbgdcross" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDKBDIAG, "\\clbgdkbdiag" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDKCROSS, "\\clbgdkcross" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDKDCROSS, "\\clbgdkdcross" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDKFDIAG, "\\clbgdkfdiag" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDKHOR, "\\clbgdkhor" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGDKVERT, "\\clbgdkvert" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGFDIAG, "\\clbgfdiag" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGHORIZ, "\\clbghoriz" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBGVERT, "\\clbgvert" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBRDRB, "\\clbrdrb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBRDRL, "\\clbrdrl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBRDRR, "\\clbrdrr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLBRDRT, "\\clbrdrt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLCBPAT, "\\clcbpat" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLCFPAT, "\\clcfpat" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLMGF, "\\clmgf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLMRG, "\\clmrg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLSHDNG, "\\clshdng" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLNO, "\\colno" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLORTBL, "\\colortbl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLS, "\\cols" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLSR, "\\colsr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLSX, "\\colsx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLUMN, "\\column" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COLW, "\\colw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COMMENT, "\\comment" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CREATIM, "\\creatim" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CTRL, "\\ctrl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DEFF, "\\deff" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DEFFORMAT, "\\defformat" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DEFLANG, "\\deflang" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DEFTAB, "\\deftab" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DELETED, "\\deleted" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRMTXTX, "\\dfrmtxtx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRMTXTY, "\\dfrmtxty" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DIBITMAP, "\\dibitmap" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DN, "\\dn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOCCOMM, "\\doccomm" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOCTEMP, "\\doctemp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DROPCAPLI, "\\dropcapli" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DROPCAPT, "\\dropcapt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ABSNOOVRLP, "\\absnoovrlp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DXFRTEXT, "\\dxfrtext" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DY, "\\dy" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EDMINS, "\\edmins" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EMDASH, "\\emdash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ENDASH, "\\endash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ENDDOC, "\\enddoc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ENDNHERE, "\\endnhere" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ENDNOTES, "\\endnotes" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EXPND, "\\expnd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EXPNDTW, "\\expndtw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_F, "\\f" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FACINGP, "\\facingp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FACPGSXN, "\\facpgsxn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FALT, "\\falt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FCHARSET, "\\fcharset" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FDECOR, "\\fdecor" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FI, "\\fi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FIELD, "\\field" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDDIRTY, "\\flddirty" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDEDIT, "\\fldedit" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDINST, "\\fldinst" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDLOCK, "\\fldlock" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDPRIV, "\\fldpriv" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDRSLT, "\\fldrslt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FMODERN, "\\fmodern" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FN, "\\fn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FNIL, "\\fnil" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FONTTBL, "\\fonttbl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTER, "\\footer" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERF, "\\footerf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERL, "\\footerl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERR, "\\footerr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERY, "\\footery" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTNOTE, "\\footnote" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FPRQ, "\\fprq" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRACWIDTH, "\\fracwidth" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FROMAN, "\\froman" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FS, "\\fs" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FSCRIPT, "\\fscript" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FSWISS, "\\fswiss" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTECH, "\\ftech" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNBJ, "\\ftnbj" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNCN, "\\ftncn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNRESTART, "\\ftnrestart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNSEP, "\\ftnsep" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNSEPC, "\\ftnsepc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNSTART, "\\ftnstart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNTJ, "\\ftntj" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GREEN, "\\green" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GUTTER, "\\gutter" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GUTTERSXN, "\\guttersxn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADER, "\\header" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERF, "\\headerf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERL, "\\headerl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERR, "\\headerr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERY, "\\headery" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HR, "\\hr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHHOTZ, "\\hyphhotz" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_I, "\\i" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ID, "\\id" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_INFO, "\\info" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_INTBL, "\\intbl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_IXE, "\\ixe" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_KEEP, "\\keep" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_KEEPN, "\\keepn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_KERNING, "\\kerning" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_KEYCODE, "\\keycode" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_KEYWORDS, "\\keywords" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LANDSCAPE, "\\landscape" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LANG, "\\lang" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LDBLQUOTE, "\\ldblquote" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVEL, "\\level" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LI, "\\li" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LIN, "\\lin" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINE, "\\line" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINEBETCOL, "\\linebetcol" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINECONT, "\\linecont" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINEMOD, "\\linemod" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINEPPAGE, "\\lineppage" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINERESTART, "\\linerestart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINESTART, "\\linestart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINESTARTS, "\\linestarts" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINEX, "\\linex" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LNDSCPSXN, "\\lndscpsxn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LQUOTE, "\\lquote" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MAC, "\\mac" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MACPICT, "\\macpict" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MAKEBACKUP, "\\makebackup" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGB, "\\margb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGBSXN, "\\margbsxn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGL, "\\margl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGLSXN, "\\marglsxn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGMIRROR, "\\margmirror" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGR, "\\margr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGRSXN, "\\margrsxn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGT, "\\margt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MARGTSXN, "\\margtsxn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MIN, "\\min" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MO, "\\mo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NEXTCSET, "\\nextcset" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NEXTFILE, "\\nextfile" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOFCHARS, "\\nofchars" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOFPAGES, "\\nofpages" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOFWORDS, "\\nofwords" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOLINE, "\\noline" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOSUPERSUB, "\\nosupersub" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOWRAP, "\\nowrap" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OPERATOR, "\\operator" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OUTL, "\\outl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PAGE, "\\page" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PAGEBB, "\\pagebb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PAPERH, "\\paperh" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PAPERW, "\\paperw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PAR, "\\par" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PARD, "\\pard" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PC, "\\pc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PCA, "\\pca" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGHSXN, "\\pghsxn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNCONT, "\\pgncont" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNDEC, "\\pgndec" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNLCLTR, "\\pgnlcltr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNLCRM, "\\pgnlcrm" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNRESTART, "\\pgnrestart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNSTART, "\\pgnstart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNSTARTS, "\\pgnstarts" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNUCLTR, "\\pgnucltr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNUCRM, "\\pgnucrm" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNX, "\\pgnx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNY, "\\pgny" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGWSXN, "\\pgwsxn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PHCOL, "\\phcol" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PHMRG, "\\phmrg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PHPG, "\\phpg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICCROPB, "\\piccropb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICCROPL, "\\piccropl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICCROPR, "\\piccropr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICCROPT, "\\piccropt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICH, "\\pich" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICHGOAL, "\\pichgoal" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICSCALED, "\\picscaled" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICSCALEX, "\\picscalex" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICSCALEY, "\\picscaley" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICT, "\\pict" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICW, "\\picw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICWGOAL, "\\picwgoal" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PLAIN, "\\plain" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PMMETAFILE, "\\pmmetafile" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSNEGX, "\\posnegx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSNEGY, "\\posnegy" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSX, "\\posx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSXC, "\\posxc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSXI, "\\posxi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSXL, "\\posxl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSXO, "\\posxo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSXR, "\\posxr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSY, "\\posy" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSYB, "\\posyb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSYC, "\\posyc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSYIL, "\\posyil" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSYT, "\\posyt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PRINTIM, "\\printim" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PSOVER, "\\psover" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PVMRG, "\\pvmrg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PVPARA, "\\pvpara" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PVPG, "\\pvpg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_QC, "\\qc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_QJ, "\\qj" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_QL, "\\ql" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_QR, "\\qr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RDBLQUOTE, "\\rdblquote" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RED, "\\red" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVBAR, "\\revbar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVISED, "\\revised" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVISIONS, "\\revisions" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVPROP, "\\revprop" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVTIM, "\\revtim" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RI, "\\ri" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RIN, "\\rin" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ROW, "\\row" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RQUOTE, "\\rquote" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTF, "\\rtf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RXE, "\\rxe" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_S, "\\s" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SA, "\\sa" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SB, "\\sb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBASEDON, "\\sbasedon" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBKCOL, "\\sbkcol" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBKEVEN, "\\sbkeven" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBKNONE, "\\sbknone" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBKODD, "\\sbkodd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBKPAGE, "\\sbkpage" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SBYS, "\\sbys" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SCAPS, "\\scaps" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECT, "\\sect" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTD, "\\sectd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHAD, "\\shad" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHADING, "\\shading" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHIFT, "\\shift" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SL, "\\sl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SNEXT, "\\snext" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_STRIKE, "\\strike" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_STYLESHEET, "\\stylesheet" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SUB, "\\sub" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SUBJECT, "\\subject" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SUPER, "\\super" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TAB, "\\tab" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TB, "\\tb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TC, "\\tc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TCF, "\\tcf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TCL, "\\tcl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TEMPLATE, "\\template" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TITLE, "\\title" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TITLEPG, "\\titlepg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TLDOT, "\\tldot" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TLEQ, "\\tleq" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TLHYPH, "\\tlhyph" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TLTH, "\\tlth" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TLUL, "\\tlul" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TQC, "\\tqc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TQDEC, "\\tqdec" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TQR, "\\tqr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TQL, "\\tql" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRGAPH, "\\trgaph" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRLEFT, "\\trleft" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TROWD, "\\trowd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRQC, "\\trqc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRQL, "\\trql" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRQR, "\\trqr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRRH, "\\trrh" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TX, "\\tx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TXE, "\\txe" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_UL, "\\ul" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULD, "\\uld" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULDB, "\\uldb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULNONE, "\\ulnone" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULW, "\\ulw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_UP, "\\up" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_V, "\\v" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VERN, "\\vern" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VERSION, "\\version" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VERTALB, "\\vertalb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VERTALC, "\\vertalc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VERTALJ, "\\vertalj" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VERTALT, "\\vertalt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WBITMAP, "\\wbitmap" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WBMBITSPIXEL, "\\wbmbitspixel" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WBMPLANES, "\\wbmplanes" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WBMWIDTHBYTES, "\\wbmwidthbytes" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WIDOWCTRL, "\\widowctrl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WMETAFILE, "\\wmetafile" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_XE, "\\xe" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_YR, "\\yr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOBRKHYPH, "\\_" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FORMULA, "\\|" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOBREAK, "\\~" );
-
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AB, "\\ab" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ACAPS, "\\acaps" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ACF, "\\acf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ADDITIVE, "\\additive" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ADN, "\\adn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AENDDOC, "\\aenddoc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AENDNOTES, "\\aendnotes" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AEXPND, "\\aexpnd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AF, "\\af" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFS, "\\afs" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNBJ, "\\aftnbj" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNCN, "\\aftncn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNALC, "\\aftnnalc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNAR, "\\aftnnar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNAUC, "\\aftnnauc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNCHI, "\\aftnnchi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNRLC, "\\aftnnrlc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNRUC, "\\aftnnruc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNRESTART, "\\aftnrestart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNRSTCONT, "\\aftnrstcont" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNSEP, "\\aftnsep" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNSEPC, "\\aftnsepc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNSTART, "\\aftnstart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNTJ, "\\aftntj" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AI, "\\ai" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ALANG, "\\alang" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ALLPROT, "\\allprot" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ANNOTPROT, "\\annotprot" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AOUTL, "\\aoutl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ASCAPS, "\\ascaps" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ASHAD, "\\ashad" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ASTRIKE, "\\astrike" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATNAUTHOR, "\\atnauthor" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATNICN, "\\atnicn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATNREF, "\\atnref" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATNTIME, "\\atntime" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATRFEND, "\\atrfend" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ATRFSTART, "\\atrfstart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AUL, "\\aul" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AULD, "\\auld" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AULDB, "\\auldb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AULNONE, "\\aulnone" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AULW, "\\aulw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AUP, "\\aup" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BKMKPUB, "\\bkmkpub" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDASH, "\\brdrdash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRKFRM, "\\brkfrm" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CCHS, "\\cchs" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CPG, "\\cpg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CS, "\\cs" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CVMME, "\\cvmme" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DATAFIELD, "\\datafield" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DO, "\\do" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOBXCOLUMN, "\\dobxcolumn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOBXMARGIN, "\\dobxmargin" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOBXPAGE, "\\dobxpage" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOBYMARGIN, "\\dobymargin" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOBYPAGE, "\\dobypage" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOBYPARA, "\\dobypara" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DODHGT, "\\dodhgt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOLOCK, "\\dolock" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPAENDHOL, "\\dpaendhol" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPAENDL, "\\dpaendl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPAENDSOL, "\\dpaendsol" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPAENDW, "\\dpaendw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPARC, "\\dparc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPARCFLIPX, "\\dparcflipx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPARCFLIPY, "\\dparcflipy" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPASTARTHOL, "\\dpastarthol" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPASTARTL, "\\dpastartl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPASTARTSOL, "\\dpastartsol" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPASTARTW, "\\dpastartw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCALLOUT, "\\dpcallout" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOA, "\\dpcoa" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOACCENT, "\\dpcoaccent" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOBESTFIT, "\\dpcobestfit" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOBORDER, "\\dpcoborder" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCODABS, "\\dpcodabs" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCODBOTTOM, "\\dpcodbottom" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCODCENTER, "\\dpcodcenter" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCODTOP, "\\dpcodtop" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOLENGTH, "\\dpcolength" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOMINUSX, "\\dpcominusx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOMINUSY, "\\dpcominusy" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOOFFSET, "\\dpcooffset" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOSMARTA, "\\dpcosmarta" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOTDOUBLE, "\\dpcotdouble" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOTRIGHT, "\\dpcotright" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOTSINGLE, "\\dpcotsingle" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOTTRIPLE, "\\dpcottriple" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCOUNT, "\\dpcount" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPELLIPSE, "\\dpellipse" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPENDGROUP, "\\dpendgroup" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLBGCB, "\\dpfillbgcb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLBGCG, "\\dpfillbgcg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLBGCR, "\\dpfillbgcr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLBGGRAY, "\\dpfillbggray" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLBGPAL, "\\dpfillbgpal" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLFGCB, "\\dpfillfgcb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLFGCG, "\\dpfillfgcg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLFGCR, "\\dpfillfgcr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLFGGRAY, "\\dpfillfggray" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLFGPAL, "\\dpfillfgpal" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPFILLPAT, "\\dpfillpat" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPGROUP, "\\dpgroup" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINE, "\\dpline" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINECOB, "\\dplinecob" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINECOG, "\\dplinecog" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINECOR, "\\dplinecor" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEDADO, "\\dplinedado" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEDADODO, "\\dplinedadodo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEDASH, "\\dplinedash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEDOT, "\\dplinedot" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEGRAY, "\\dplinegray" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEHOLLOW, "\\dplinehollow" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEPAL, "\\dplinepal" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINESOLID, "\\dplinesolid" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPLINEW, "\\dplinew" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPPOLYCOUNT, "\\dppolycount" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPPOLYGON, "\\dppolygon" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPPOLYLINE, "\\dppolyline" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPPTX, "\\dpptx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPPTY, "\\dppty" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPRECT, "\\dprect" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPROUNDR, "\\dproundr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPSHADOW, "\\dpshadow" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPSHADX, "\\dpshadx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPSHADY, "\\dpshady" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPTXBX, "\\dptxbx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPTXBXMAR, "\\dptxbxmar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPTXBXTEXT, "\\dptxbxtext" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPX, "\\dpx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPXSIZE, "\\dpxsize" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPY, "\\dpy" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPYSIZE, "\\dpysize" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DS, "\\ds" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EMSPACE, "\\emspace" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ENSPACE, "\\enspace" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FBIDI, "\\fbidi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FET, "\\fet" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FID, "\\fid" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FILE, "\\file" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FILETBL, "\\filetbl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDALT, "\\fldalt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FNETWORK, "\\fnetwork" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FONTEMB, "\\fontemb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FONTFILE, "\\fontfile" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FORMDISP, "\\formdisp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FORMPROT, "\\formprot" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FORMSHADE, "\\formshade" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOSNUM, "\\fosnum" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRELATIVE, "\\frelative" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNALT, "\\ftnalt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNIL, "\\ftnil" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNALC, "\\ftnnalc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNAR, "\\ftnnar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNAUC, "\\ftnnauc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNCHI, "\\ftnnchi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNRLC, "\\ftnnrlc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNRUC, "\\ftnnruc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNRSTCONT, "\\ftnrstcont" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNRSTPG, "\\ftnrstpg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTTRUETYPE, "\\fttruetype" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FVALIDDOS, "\\fvaliddos" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FVALIDHPFS, "\\fvalidhpfs" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FVALIDMAC, "\\fvalidmac" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FVALIDNTFS, "\\fvalidntfs" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHAUTO, "\\hyphauto" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHCAPS, "\\hyphcaps" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHCONSEC, "\\hyphconsec" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHPAR, "\\hyphpar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINKSELF, "\\linkself" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINKSTYLES, "\\linkstyles" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LTRCH, "\\ltrch" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LTRDOC, "\\ltrdoc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LTRMARK, "\\ltrmark" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LTRPAR, "\\ltrpar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LTRROW, "\\ltrrow" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LTRSECT, "\\ltrsect" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOCOLBAL, "\\nocolbal" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOEXTRASPRL, "\\noextrasprl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOTABIND, "\\notabind" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOWIDCTLPAR, "\\nowidctlpar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJALIAS, "\\objalias" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJALIGN, "\\objalign" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJAUTLINK, "\\objautlink" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJCLASS, "\\objclass" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJCROPB, "\\objcropb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJCROPL, "\\objcropl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJCROPR, "\\objcropr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJCROPT, "\\objcropt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJDATA, "\\objdata" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJECT, "\\object" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJEMB, "\\objemb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJH, "\\objh" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJICEMB, "\\objicemb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJLINK, "\\objlink" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJLOCK, "\\objlock" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJNAME, "\\objname" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJPUB, "\\objpub" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJSCALEX, "\\objscalex" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJSCALEY, "\\objscaley" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJSECT, "\\objsect" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJSETSIZE, "\\objsetsize" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJSUB, "\\objsub" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJTIME, "\\objtime" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJTRANSY, "\\objtransy" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJUPDATE, "\\objupdate" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJW, "\\objw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OTBLRUL, "\\otblrul" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNHN, "\\pgnhn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNHNSC, "\\pgnhnsc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNHNSH, "\\pgnhnsh" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNHNSM, "\\pgnhnsm" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNHNSN, "\\pgnhnsn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNHNSP, "\\pgnhnsp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICBMP, "\\picbmp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICBPP, "\\picbpp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PN, "\\pn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNACROSS, "\\pnacross" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNB, "\\pnb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNCAPS, "\\pncaps" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNCARD, "\\pncard" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNCF, "\\pncf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNDEC, "\\pndec" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNF, "\\pnf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNFS, "\\pnfs" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNHANG, "\\pnhang" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNI, "\\pni" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNINDENT, "\\pnindent" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNLCLTR, "\\pnlcltr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNLCRM, "\\pnlcrm" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNLVL, "\\pnlvl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNLVLBLT, "\\pnlvlblt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNLVLBODY, "\\pnlvlbody" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNLVLCONT, "\\pnlvlcont" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNNUMONCE, "\\pnnumonce" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNORD, "\\pnord" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNORDT, "\\pnordt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNPREV, "\\pnprev" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNQC, "\\pnqc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNQL, "\\pnql" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNQR, "\\pnqr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRESTART, "\\pnrestart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNSCAPS, "\\pnscaps" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNSECLVL, "\\pnseclvl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNSP, "\\pnsp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNSTART, "\\pnstart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNSTRIKE, "\\pnstrike" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNTEXT, "\\pntext" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNTXTA, "\\pntxta" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNTXTB, "\\pntxtb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNUCLTR, "\\pnucltr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNUCRM, "\\pnucrm" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNUL, "\\pnul" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNULD, "\\pnuld" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNULDB, "\\pnuldb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNULNONE, "\\pnulnone" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNULW, "\\pnulw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PRCOLBL, "\\prcolbl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PRINTDATA, "\\printdata" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PSZ, "\\psz" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PUBAUTO, "\\pubauto" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RESULT, "\\result" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVAUTH, "\\revauth" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVDTTM, "\\revdttm" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVPROT, "\\revprot" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVTBL, "\\revtbl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RSLTBMP, "\\rsltbmp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RSLTMERGE, "\\rsltmerge" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RSLTPICT, "\\rsltpict" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RSLTRTF, "\\rsltrtf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RSLTTXT, "\\rslttxt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTLCH, "\\rtlch" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTLDOC, "\\rtldoc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTLMARK, "\\rtlmark" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTLPAR, "\\rtlpar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTLROW, "\\rtlrow" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_RTLSECT, "\\rtlsect" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SEC, "\\sec" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTNUM, "\\sectnum" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTUNLOCKED, "\\sectunlocked" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SLMULT, "\\slmult" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SOFTCOL, "\\softcol" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SOFTLHEIGHT, "\\softlheight" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SOFTLINE, "\\softline" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SOFTPAGE, "\\softpage" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SPRSSPBF, "\\sprsspbf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SPRSTSP, "\\sprstsp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SUBDOCUMENT, "\\subdocument" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SWPBDR, "\\swpbdr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TCN, "\\tcn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRANSMF, "\\transmf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRBRDRB, "\\trbrdrb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRBRDRH, "\\trbrdrh" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRBRDRL, "\\trbrdrl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRBRDRR, "\\trbrdrr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRBRDRT, "\\trbrdrt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRBRDRV, "\\trbrdrv" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRHDR, "\\trhdr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRKEEP, "\\trkeep" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDB, "\\trpaddb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDL, "\\trpaddl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDR, "\\trpaddr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDT, "\\trpaddt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDFB, "\\trpaddfb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDFL, "\\trpaddfl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDFR, "\\trpaddfr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRPADDFT, "\\trpaddft" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WRAPTRSP, "\\wraptrsp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_XEF, "\\xef" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ZWJ, "\\zwj" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ZWNJ, "\\zwnj" );
+#define OOO_STRING_SVTOOLS_RTF_HEXCHAR "\\'"
+#define OOO_STRING_SVTOOLS_RTF_IGNORE "\\*"
+#define OOO_STRING_SVTOOLS_RTF_OPTHYPH "\\-"
+#define OOO_STRING_SVTOOLS_RTF_SUBENTRY "\\:"
+#define OOO_STRING_SVTOOLS_RTF_ABSH "\\absh"
+#define OOO_STRING_SVTOOLS_RTF_ABSW "\\absw"
+#define OOO_STRING_SVTOOLS_RTF_ALT "\\alt"
+#define OOO_STRING_SVTOOLS_RTF_ANNOTATION "\\annotation"
+#define OOO_STRING_SVTOOLS_RTF_ANSI "\\ansi"
+#define OOO_STRING_SVTOOLS_RTF_ATNID "\\atnid"
+#define OOO_STRING_SVTOOLS_RTF_AUTHOR "\\author"
+#define OOO_STRING_SVTOOLS_RTF_B "\\b"
+#define OOO_STRING_SVTOOLS_RTF_BGBDIAG "\\bgbdiag"
+#define OOO_STRING_SVTOOLS_RTF_BGCROSS "\\bgcross"
+#define OOO_STRING_SVTOOLS_RTF_BGDCROSS "\\bgdcross"
+#define OOO_STRING_SVTOOLS_RTF_BGDKBDIAG "\\bgdkbdiag"
+#define OOO_STRING_SVTOOLS_RTF_BGDKCROSS "\\bgdkcross"
+#define OOO_STRING_SVTOOLS_RTF_BGDKDCROSS "\\bgdkdcross"
+#define OOO_STRING_SVTOOLS_RTF_BGDKFDIAG "\\bgdkfdiag"
+#define OOO_STRING_SVTOOLS_RTF_BGDKHORIZ "\\bgdkhoriz"
+#define OOO_STRING_SVTOOLS_RTF_BGDKVERT "\\bgdkvert"
+#define OOO_STRING_SVTOOLS_RTF_BGFDIAG "\\bgfdiag"
+#define OOO_STRING_SVTOOLS_RTF_BGHORIZ "\\bghoriz"
+#define OOO_STRING_SVTOOLS_RTF_BGVERT "\\bgvert"
+#define OOO_STRING_SVTOOLS_RTF_BIN "\\bin"
+#define OOO_STRING_SVTOOLS_RTF_BINFSXN "\\binfsxn"
+#define OOO_STRING_SVTOOLS_RTF_BINSXN "\\binsxn"
+#define OOO_STRING_SVTOOLS_RTF_BKMKCOLF "\\bkmkcolf"
+#define OOO_STRING_SVTOOLS_RTF_BKMKCOLL "\\bkmkcoll"
+#define OOO_STRING_SVTOOLS_RTF_BKMKEND "\\bkmkend"
+#define OOO_STRING_SVTOOLS_RTF_BKMKSTART "\\bkmkstart"
+#define OOO_STRING_SVTOOLS_RTF_BLUE "\\blue"
+#define OOO_STRING_SVTOOLS_RTF_BOX "\\box"
+#define OOO_STRING_SVTOOLS_RTF_BRDRB "\\brdrb"
+#define OOO_STRING_SVTOOLS_RTF_BRDRBAR "\\brdrbar"
+#define OOO_STRING_SVTOOLS_RTF_BRDRBTW "\\brdrbtw"
+#define OOO_STRING_SVTOOLS_RTF_BRDRCF "\\brdrcf"
+#define OOO_STRING_SVTOOLS_RTF_BRDRDB "\\brdrdb"
+#define OOO_STRING_SVTOOLS_RTF_BRDRDOT "\\brdrdot"
+#define OOO_STRING_SVTOOLS_RTF_BRDRHAIR "\\brdrhair"
+#define OOO_STRING_SVTOOLS_RTF_BRDRL "\\brdrl"
+#define OOO_STRING_SVTOOLS_RTF_BRDRR "\\brdrr"
+#define OOO_STRING_SVTOOLS_RTF_BRDRS "\\brdrs"
+#define OOO_STRING_SVTOOLS_RTF_BRDRSH "\\brdrsh"
+#define OOO_STRING_SVTOOLS_RTF_BRDRT "\\brdrt"
+#define OOO_STRING_SVTOOLS_RTF_BRDRTH "\\brdrth"
+#define OOO_STRING_SVTOOLS_RTF_BRDRW "\\brdrw"
+#define OOO_STRING_SVTOOLS_RTF_BRSP "\\brsp"
+#define OOO_STRING_SVTOOLS_RTF_BULLET "\\bullet"
+#define OOO_STRING_SVTOOLS_RTF_BUPTIM "\\buptim"
+#define OOO_STRING_SVTOOLS_RTF_BXE "\\bxe"
+#define OOO_STRING_SVTOOLS_RTF_CAPS "\\caps"
+#define OOO_STRING_SVTOOLS_RTF_CB "\\cb"
+#define OOO_STRING_SVTOOLS_RTF_CBPAT "\\cbpat"
+#define OOO_STRING_SVTOOLS_RTF_CELL "\\cell"
+#define OOO_STRING_SVTOOLS_RTF_CELLX "\\cellx"
+#define OOO_STRING_SVTOOLS_RTF_CF "\\cf"
+#define OOO_STRING_SVTOOLS_RTF_CFPAT "\\cfpat"
+#define OOO_STRING_SVTOOLS_RTF_CHATN "\\chatn"
+#define OOO_STRING_SVTOOLS_RTF_CHDATE "\\chdate"
+#define OOO_STRING_SVTOOLS_RTF_CHDPA "\\chdpa"
+#define OOO_STRING_SVTOOLS_RTF_CHDPL "\\chdpl"
+#define OOO_STRING_SVTOOLS_RTF_CHFTN "\\chftn"
+#define OOO_STRING_SVTOOLS_RTF_CHFTNSEP "\\chftnsep"
+#define OOO_STRING_SVTOOLS_RTF_CHFTNSEPC "\\chftnsepc"
+#define OOO_STRING_SVTOOLS_RTF_CHPGN "\\chpgn"
+#define OOO_STRING_SVTOOLS_RTF_CHTIME "\\chtime"
+#define OOO_STRING_SVTOOLS_RTF_CLBGBDIAG "\\clbgbdiag"
+#define OOO_STRING_SVTOOLS_RTF_CLBGCROSS "\\clbgcross"
+#define OOO_STRING_SVTOOLS_RTF_CLBGDCROSS "\\clbgdcross"
+#define OOO_STRING_SVTOOLS_RTF_CLBGDKBDIAG "\\clbgdkbdiag"
+#define OOO_STRING_SVTOOLS_RTF_CLBGDKCROSS "\\clbgdkcross"
+#define OOO_STRING_SVTOOLS_RTF_CLBGDKDCROSS "\\clbgdkdcross"
+#define OOO_STRING_SVTOOLS_RTF_CLBGDKFDIAG "\\clbgdkfdiag"
+#define OOO_STRING_SVTOOLS_RTF_CLBGDKHOR "\\clbgdkhor"
+#define OOO_STRING_SVTOOLS_RTF_CLBGDKVERT "\\clbgdkvert"
+#define OOO_STRING_SVTOOLS_RTF_CLBGFDIAG "\\clbgfdiag"
+#define OOO_STRING_SVTOOLS_RTF_CLBGHORIZ "\\clbghoriz"
+#define OOO_STRING_SVTOOLS_RTF_CLBGVERT "\\clbgvert"
+#define OOO_STRING_SVTOOLS_RTF_CLBRDRB "\\clbrdrb"
+#define OOO_STRING_SVTOOLS_RTF_CLBRDRL "\\clbrdrl"
+#define OOO_STRING_SVTOOLS_RTF_CLBRDRR "\\clbrdrr"
+#define OOO_STRING_SVTOOLS_RTF_CLBRDRT "\\clbrdrt"
+#define OOO_STRING_SVTOOLS_RTF_CLCBPAT "\\clcbpat"
+#define OOO_STRING_SVTOOLS_RTF_CLCFPAT "\\clcfpat"
+#define OOO_STRING_SVTOOLS_RTF_CLMGF "\\clmgf"
+#define OOO_STRING_SVTOOLS_RTF_CLMRG "\\clmrg"
+#define OOO_STRING_SVTOOLS_RTF_CLSHDNG "\\clshdng"
+#define OOO_STRING_SVTOOLS_RTF_COLNO "\\colno"
+#define OOO_STRING_SVTOOLS_RTF_COLORTBL "\\colortbl"
+#define OOO_STRING_SVTOOLS_RTF_COLS "\\cols"
+#define OOO_STRING_SVTOOLS_RTF_COLSR "\\colsr"
+#define OOO_STRING_SVTOOLS_RTF_COLSX "\\colsx"
+#define OOO_STRING_SVTOOLS_RTF_COLUMN "\\column"
+#define OOO_STRING_SVTOOLS_RTF_COLW "\\colw"
+#define OOO_STRING_SVTOOLS_RTF_COMMENT "\\comment"
+#define OOO_STRING_SVTOOLS_RTF_CREATIM "\\creatim"
+#define OOO_STRING_SVTOOLS_RTF_CTRL "\\ctrl"
+#define OOO_STRING_SVTOOLS_RTF_DEFF "\\deff"
+#define OOO_STRING_SVTOOLS_RTF_DEFFORMAT "\\defformat"
+#define OOO_STRING_SVTOOLS_RTF_DEFLANG "\\deflang"
+#define OOO_STRING_SVTOOLS_RTF_DEFTAB "\\deftab"
+#define OOO_STRING_SVTOOLS_RTF_DELETED "\\deleted"
+#define OOO_STRING_SVTOOLS_RTF_DFRMTXTX "\\dfrmtxtx"
+#define OOO_STRING_SVTOOLS_RTF_DFRMTXTY "\\dfrmtxty"
+#define OOO_STRING_SVTOOLS_RTF_DIBITMAP "\\dibitmap"
+#define OOO_STRING_SVTOOLS_RTF_DN "\\dn"
+#define OOO_STRING_SVTOOLS_RTF_DOCCOMM "\\doccomm"
+#define OOO_STRING_SVTOOLS_RTF_DOCTEMP "\\doctemp"
+#define OOO_STRING_SVTOOLS_RTF_DROPCAPLI "\\dropcapli"
+#define OOO_STRING_SVTOOLS_RTF_DROPCAPT "\\dropcapt"
+#define OOO_STRING_SVTOOLS_RTF_ABSNOOVRLP "\\absnoovrlp"
+#define OOO_STRING_SVTOOLS_RTF_DXFRTEXT "\\dxfrtext"
+#define OOO_STRING_SVTOOLS_RTF_DY "\\dy"
+#define OOO_STRING_SVTOOLS_RTF_EDMINS "\\edmins"
+#define OOO_STRING_SVTOOLS_RTF_EMDASH "\\emdash"
+#define OOO_STRING_SVTOOLS_RTF_ENDASH "\\endash"
+#define OOO_STRING_SVTOOLS_RTF_ENDDOC "\\enddoc"
+#define OOO_STRING_SVTOOLS_RTF_ENDNHERE "\\endnhere"
+#define OOO_STRING_SVTOOLS_RTF_ENDNOTES "\\endnotes"
+#define OOO_STRING_SVTOOLS_RTF_EXPND "\\expnd"
+#define OOO_STRING_SVTOOLS_RTF_EXPNDTW "\\expndtw"
+#define OOO_STRING_SVTOOLS_RTF_F "\\f"
+#define OOO_STRING_SVTOOLS_RTF_FACINGP "\\facingp"
+#define OOO_STRING_SVTOOLS_RTF_FACPGSXN "\\facpgsxn"
+#define OOO_STRING_SVTOOLS_RTF_FALT "\\falt"
+#define OOO_STRING_SVTOOLS_RTF_FCHARSET "\\fcharset"
+#define OOO_STRING_SVTOOLS_RTF_FDECOR "\\fdecor"
+#define OOO_STRING_SVTOOLS_RTF_FI "\\fi"
+#define OOO_STRING_SVTOOLS_RTF_FIELD "\\field"
+#define OOO_STRING_SVTOOLS_RTF_FLDDIRTY "\\flddirty"
+#define OOO_STRING_SVTOOLS_RTF_FLDEDIT "\\fldedit"
+#define OOO_STRING_SVTOOLS_RTF_FLDINST "\\fldinst"
+#define OOO_STRING_SVTOOLS_RTF_FLDLOCK "\\fldlock"
+#define OOO_STRING_SVTOOLS_RTF_FLDPRIV "\\fldpriv"
+#define OOO_STRING_SVTOOLS_RTF_FLDRSLT "\\fldrslt"
+#define OOO_STRING_SVTOOLS_RTF_FMODERN "\\fmodern"
+#define OOO_STRING_SVTOOLS_RTF_FN "\\fn"
+#define OOO_STRING_SVTOOLS_RTF_FNIL "\\fnil"
+#define OOO_STRING_SVTOOLS_RTF_FONTTBL "\\fonttbl"
+#define OOO_STRING_SVTOOLS_RTF_FOOTER "\\footer"
+#define OOO_STRING_SVTOOLS_RTF_FOOTERF "\\footerf"
+#define OOO_STRING_SVTOOLS_RTF_FOOTERL "\\footerl"
+#define OOO_STRING_SVTOOLS_RTF_FOOTERR "\\footerr"
+#define OOO_STRING_SVTOOLS_RTF_FOOTERY "\\footery"
+#define OOO_STRING_SVTOOLS_RTF_FOOTNOTE "\\footnote"
+#define OOO_STRING_SVTOOLS_RTF_FPRQ "\\fprq"
+#define OOO_STRING_SVTOOLS_RTF_FRACWIDTH "\\fracwidth"
+#define OOO_STRING_SVTOOLS_RTF_FROMAN "\\froman"
+#define OOO_STRING_SVTOOLS_RTF_FS "\\fs"
+#define OOO_STRING_SVTOOLS_RTF_FSCRIPT "\\fscript"
+#define OOO_STRING_SVTOOLS_RTF_FSWISS "\\fswiss"
+#define OOO_STRING_SVTOOLS_RTF_FTECH "\\ftech"
+#define OOO_STRING_SVTOOLS_RTF_FTNBJ "\\ftnbj"
+#define OOO_STRING_SVTOOLS_RTF_FTNCN "\\ftncn"
+#define OOO_STRING_SVTOOLS_RTF_FTNRESTART "\\ftnrestart"
+#define OOO_STRING_SVTOOLS_RTF_FTNSEP "\\ftnsep"
+#define OOO_STRING_SVTOOLS_RTF_FTNSEPC "\\ftnsepc"
+#define OOO_STRING_SVTOOLS_RTF_FTNSTART "\\ftnstart"
+#define OOO_STRING_SVTOOLS_RTF_FTNTJ "\\ftntj"
+#define OOO_STRING_SVTOOLS_RTF_GREEN "\\green"
+#define OOO_STRING_SVTOOLS_RTF_GUTTER "\\gutter"
+#define OOO_STRING_SVTOOLS_RTF_GUTTERSXN "\\guttersxn"
+#define OOO_STRING_SVTOOLS_RTF_HEADER "\\header"
+#define OOO_STRING_SVTOOLS_RTF_HEADERF "\\headerf"
+#define OOO_STRING_SVTOOLS_RTF_HEADERL "\\headerl"
+#define OOO_STRING_SVTOOLS_RTF_HEADERR "\\headerr"
+#define OOO_STRING_SVTOOLS_RTF_HEADERY "\\headery"
+#define OOO_STRING_SVTOOLS_RTF_HR "\\hr"
+#define OOO_STRING_SVTOOLS_RTF_HYPHHOTZ "\\hyphhotz"
+#define OOO_STRING_SVTOOLS_RTF_I "\\i"
+#define OOO_STRING_SVTOOLS_RTF_ID "\\id"
+#define OOO_STRING_SVTOOLS_RTF_INFO "\\info"
+#define OOO_STRING_SVTOOLS_RTF_INTBL "\\intbl"
+#define OOO_STRING_SVTOOLS_RTF_IXE "\\ixe"
+#define OOO_STRING_SVTOOLS_RTF_KEEP "\\keep"
+#define OOO_STRING_SVTOOLS_RTF_KEEPN "\\keepn"
+#define OOO_STRING_SVTOOLS_RTF_KERNING "\\kerning"
+#define OOO_STRING_SVTOOLS_RTF_KEYCODE "\\keycode"
+#define OOO_STRING_SVTOOLS_RTF_KEYWORDS "\\keywords"
+#define OOO_STRING_SVTOOLS_RTF_LANDSCAPE "\\landscape"
+#define OOO_STRING_SVTOOLS_RTF_LANG "\\lang"
+#define OOO_STRING_SVTOOLS_RTF_LDBLQUOTE "\\ldblquote"
+#define OOO_STRING_SVTOOLS_RTF_LEVEL "\\level"
+#define OOO_STRING_SVTOOLS_RTF_LI "\\li"
+#define OOO_STRING_SVTOOLS_RTF_LIN "\\lin"
+#define OOO_STRING_SVTOOLS_RTF_LINE "\\line"
+#define OOO_STRING_SVTOOLS_RTF_LINEBETCOL "\\linebetcol"
+#define OOO_STRING_SVTOOLS_RTF_LINECONT "\\linecont"
+#define OOO_STRING_SVTOOLS_RTF_LINEMOD "\\linemod"
+#define OOO_STRING_SVTOOLS_RTF_LINEPPAGE "\\lineppage"
+#define OOO_STRING_SVTOOLS_RTF_LINERESTART "\\linerestart"
+#define OOO_STRING_SVTOOLS_RTF_LINESTART "\\linestart"
+#define OOO_STRING_SVTOOLS_RTF_LINESTARTS "\\linestarts"
+#define OOO_STRING_SVTOOLS_RTF_LINEX "\\linex"
+#define OOO_STRING_SVTOOLS_RTF_LNDSCPSXN "\\lndscpsxn"
+#define OOO_STRING_SVTOOLS_RTF_LQUOTE "\\lquote"
+#define OOO_STRING_SVTOOLS_RTF_MAC "\\mac"
+#define OOO_STRING_SVTOOLS_RTF_MACPICT "\\macpict"
+#define OOO_STRING_SVTOOLS_RTF_MAKEBACKUP "\\makebackup"
+#define OOO_STRING_SVTOOLS_RTF_MARGB "\\margb"
+#define OOO_STRING_SVTOOLS_RTF_MARGBSXN "\\margbsxn"
+#define OOO_STRING_SVTOOLS_RTF_MARGL "\\margl"
+#define OOO_STRING_SVTOOLS_RTF_MARGLSXN "\\marglsxn"
+#define OOO_STRING_SVTOOLS_RTF_MARGMIRROR "\\margmirror"
+#define OOO_STRING_SVTOOLS_RTF_MARGR "\\margr"
+#define OOO_STRING_SVTOOLS_RTF_MARGRSXN "\\margrsxn"
+#define OOO_STRING_SVTOOLS_RTF_MARGT "\\margt"
+#define OOO_STRING_SVTOOLS_RTF_MARGTSXN "\\margtsxn"
+#define OOO_STRING_SVTOOLS_RTF_MIN "\\min"
+#define OOO_STRING_SVTOOLS_RTF_MO "\\mo"
+#define OOO_STRING_SVTOOLS_RTF_NEXTCSET "\\nextcset"
+#define OOO_STRING_SVTOOLS_RTF_NEXTFILE "\\nextfile"
+#define OOO_STRING_SVTOOLS_RTF_NOFCHARS "\\nofchars"
+#define OOO_STRING_SVTOOLS_RTF_NOFPAGES "\\nofpages"
+#define OOO_STRING_SVTOOLS_RTF_NOFWORDS "\\nofwords"
+#define OOO_STRING_SVTOOLS_RTF_NOLINE "\\noline"
+#define OOO_STRING_SVTOOLS_RTF_NOSUPERSUB "\\nosupersub"
+#define OOO_STRING_SVTOOLS_RTF_NOWRAP "\\nowrap"
+#define OOO_STRING_SVTOOLS_RTF_OPERATOR "\\operator"
+#define OOO_STRING_SVTOOLS_RTF_OUTL "\\outl"
+#define OOO_STRING_SVTOOLS_RTF_PAGE "\\page"
+#define OOO_STRING_SVTOOLS_RTF_PAGEBB "\\pagebb"
+#define OOO_STRING_SVTOOLS_RTF_PAPERH "\\paperh"
+#define OOO_STRING_SVTOOLS_RTF_PAPERW "\\paperw"
+#define OOO_STRING_SVTOOLS_RTF_PAR "\\par"
+#define OOO_STRING_SVTOOLS_RTF_PARD "\\pard"
+#define OOO_STRING_SVTOOLS_RTF_PC "\\pc"
+#define OOO_STRING_SVTOOLS_RTF_PCA "\\pca"
+#define OOO_STRING_SVTOOLS_RTF_PGHSXN "\\pghsxn"
+#define OOO_STRING_SVTOOLS_RTF_PGNCONT "\\pgncont"
+#define OOO_STRING_SVTOOLS_RTF_PGNDEC "\\pgndec"
+#define OOO_STRING_SVTOOLS_RTF_PGNLCLTR "\\pgnlcltr"
+#define OOO_STRING_SVTOOLS_RTF_PGNLCRM "\\pgnlcrm"
+#define OOO_STRING_SVTOOLS_RTF_PGNRESTART "\\pgnrestart"
+#define OOO_STRING_SVTOOLS_RTF_PGNSTART "\\pgnstart"
+#define OOO_STRING_SVTOOLS_RTF_PGNSTARTS "\\pgnstarts"
+#define OOO_STRING_SVTOOLS_RTF_PGNUCLTR "\\pgnucltr"
+#define OOO_STRING_SVTOOLS_RTF_PGNUCRM "\\pgnucrm"
+#define OOO_STRING_SVTOOLS_RTF_PGNX "\\pgnx"
+#define OOO_STRING_SVTOOLS_RTF_PGNY "\\pgny"
+#define OOO_STRING_SVTOOLS_RTF_PGWSXN "\\pgwsxn"
+#define OOO_STRING_SVTOOLS_RTF_PHCOL "\\phcol"
+#define OOO_STRING_SVTOOLS_RTF_PHMRG "\\phmrg"
+#define OOO_STRING_SVTOOLS_RTF_PHPG "\\phpg"
+#define OOO_STRING_SVTOOLS_RTF_PICCROPB "\\piccropb"
+#define OOO_STRING_SVTOOLS_RTF_PICCROPL "\\piccropl"
+#define OOO_STRING_SVTOOLS_RTF_PICCROPR "\\piccropr"
+#define OOO_STRING_SVTOOLS_RTF_PICCROPT "\\piccropt"
+#define OOO_STRING_SVTOOLS_RTF_PICH "\\pich"
+#define OOO_STRING_SVTOOLS_RTF_PICHGOAL "\\pichgoal"
+#define OOO_STRING_SVTOOLS_RTF_PICSCALED "\\picscaled"
+#define OOO_STRING_SVTOOLS_RTF_PICSCALEX "\\picscalex"
+#define OOO_STRING_SVTOOLS_RTF_PICSCALEY "\\picscaley"
+#define OOO_STRING_SVTOOLS_RTF_PICT "\\pict"
+#define OOO_STRING_SVTOOLS_RTF_PICW "\\picw"
+#define OOO_STRING_SVTOOLS_RTF_PICWGOAL "\\picwgoal"
+#define OOO_STRING_SVTOOLS_RTF_PLAIN "\\plain"
+#define OOO_STRING_SVTOOLS_RTF_PMMETAFILE "\\pmmetafile"
+#define OOO_STRING_SVTOOLS_RTF_POSNEGX "\\posnegx"
+#define OOO_STRING_SVTOOLS_RTF_POSNEGY "\\posnegy"
+#define OOO_STRING_SVTOOLS_RTF_POSX "\\posx"
+#define OOO_STRING_SVTOOLS_RTF_POSXC "\\posxc"
+#define OOO_STRING_SVTOOLS_RTF_POSXI "\\posxi"
+#define OOO_STRING_SVTOOLS_RTF_POSXL "\\posxl"
+#define OOO_STRING_SVTOOLS_RTF_POSXO "\\posxo"
+#define OOO_STRING_SVTOOLS_RTF_POSXR "\\posxr"
+#define OOO_STRING_SVTOOLS_RTF_POSY "\\posy"
+#define OOO_STRING_SVTOOLS_RTF_POSYB "\\posyb"
+#define OOO_STRING_SVTOOLS_RTF_POSYC "\\posyc"
+#define OOO_STRING_SVTOOLS_RTF_POSYIL "\\posyil"
+#define OOO_STRING_SVTOOLS_RTF_POSYT "\\posyt"
+#define OOO_STRING_SVTOOLS_RTF_PRINTIM "\\printim"
+#define OOO_STRING_SVTOOLS_RTF_PSOVER "\\psover"
+#define OOO_STRING_SVTOOLS_RTF_PVMRG "\\pvmrg"
+#define OOO_STRING_SVTOOLS_RTF_PVPARA "\\pvpara"
+#define OOO_STRING_SVTOOLS_RTF_PVPG "\\pvpg"
+#define OOO_STRING_SVTOOLS_RTF_QC "\\qc"
+#define OOO_STRING_SVTOOLS_RTF_QJ "\\qj"
+#define OOO_STRING_SVTOOLS_RTF_QL "\\ql"
+#define OOO_STRING_SVTOOLS_RTF_QR "\\qr"
+#define OOO_STRING_SVTOOLS_RTF_RDBLQUOTE "\\rdblquote"
+#define OOO_STRING_SVTOOLS_RTF_RED "\\red"
+#define OOO_STRING_SVTOOLS_RTF_REVBAR "\\revbar"
+#define OOO_STRING_SVTOOLS_RTF_REVISED "\\revised"
+#define OOO_STRING_SVTOOLS_RTF_REVISIONS "\\revisions"
+#define OOO_STRING_SVTOOLS_RTF_REVPROP "\\revprop"
+#define OOO_STRING_SVTOOLS_RTF_REVTIM "\\revtim"
+#define OOO_STRING_SVTOOLS_RTF_RI "\\ri"
+#define OOO_STRING_SVTOOLS_RTF_RIN "\\rin"
+#define OOO_STRING_SVTOOLS_RTF_ROW "\\row"
+#define OOO_STRING_SVTOOLS_RTF_RQUOTE "\\rquote"
+#define OOO_STRING_SVTOOLS_RTF_RTF "\\rtf"
+#define OOO_STRING_SVTOOLS_RTF_RXE "\\rxe"
+#define OOO_STRING_SVTOOLS_RTF_S "\\s"
+#define OOO_STRING_SVTOOLS_RTF_SA "\\sa"
+#define OOO_STRING_SVTOOLS_RTF_SB "\\sb"
+#define OOO_STRING_SVTOOLS_RTF_SBASEDON "\\sbasedon"
+#define OOO_STRING_SVTOOLS_RTF_SBKCOL "\\sbkcol"
+#define OOO_STRING_SVTOOLS_RTF_SBKEVEN "\\sbkeven"
+#define OOO_STRING_SVTOOLS_RTF_SBKNONE "\\sbknone"
+#define OOO_STRING_SVTOOLS_RTF_SBKODD "\\sbkodd"
+#define OOO_STRING_SVTOOLS_RTF_SBKPAGE "\\sbkpage"
+#define OOO_STRING_SVTOOLS_RTF_SBYS "\\sbys"
+#define OOO_STRING_SVTOOLS_RTF_SCAPS "\\scaps"
+#define OOO_STRING_SVTOOLS_RTF_SECT "\\sect"
+#define OOO_STRING_SVTOOLS_RTF_SECTD "\\sectd"
+#define OOO_STRING_SVTOOLS_RTF_SHAD "\\shad"
+#define OOO_STRING_SVTOOLS_RTF_SHADING "\\shading"
+#define OOO_STRING_SVTOOLS_RTF_SHIFT "\\shift"
+#define OOO_STRING_SVTOOLS_RTF_SL "\\sl"
+#define OOO_STRING_SVTOOLS_RTF_SNEXT "\\snext"
+#define OOO_STRING_SVTOOLS_RTF_STRIKE "\\strike"
+#define OOO_STRING_SVTOOLS_RTF_STYLESHEET "\\stylesheet"
+#define OOO_STRING_SVTOOLS_RTF_SUB "\\sub"
+#define OOO_STRING_SVTOOLS_RTF_SUBJECT "\\subject"
+#define OOO_STRING_SVTOOLS_RTF_SUPER "\\super"
+#define OOO_STRING_SVTOOLS_RTF_TAB "\\tab"
+#define OOO_STRING_SVTOOLS_RTF_TB "\\tb"
+#define OOO_STRING_SVTOOLS_RTF_TC "\\tc"
+#define OOO_STRING_SVTOOLS_RTF_TCF "\\tcf"
+#define OOO_STRING_SVTOOLS_RTF_TCL "\\tcl"
+#define OOO_STRING_SVTOOLS_RTF_TEMPLATE "\\template"
+#define OOO_STRING_SVTOOLS_RTF_TITLE "\\title"
+#define OOO_STRING_SVTOOLS_RTF_TITLEPG "\\titlepg"
+#define OOO_STRING_SVTOOLS_RTF_TLDOT "\\tldot"
+#define OOO_STRING_SVTOOLS_RTF_TLEQ "\\tleq"
+#define OOO_STRING_SVTOOLS_RTF_TLHYPH "\\tlhyph"
+#define OOO_STRING_SVTOOLS_RTF_TLTH "\\tlth"
+#define OOO_STRING_SVTOOLS_RTF_TLUL "\\tlul"
+#define OOO_STRING_SVTOOLS_RTF_TQC "\\tqc"
+#define OOO_STRING_SVTOOLS_RTF_TQDEC "\\tqdec"
+#define OOO_STRING_SVTOOLS_RTF_TQR "\\tqr"
+#define OOO_STRING_SVTOOLS_RTF_TQL "\\tql"
+#define OOO_STRING_SVTOOLS_RTF_TRGAPH "\\trgaph"
+#define OOO_STRING_SVTOOLS_RTF_TRLEFT "\\trleft"
+#define OOO_STRING_SVTOOLS_RTF_TROWD "\\trowd"
+#define OOO_STRING_SVTOOLS_RTF_TRQC "\\trqc"
+#define OOO_STRING_SVTOOLS_RTF_TRQL "\\trql"
+#define OOO_STRING_SVTOOLS_RTF_TRQR "\\trqr"
+#define OOO_STRING_SVTOOLS_RTF_TRRH "\\trrh"
+#define OOO_STRING_SVTOOLS_RTF_TX "\\tx"
+#define OOO_STRING_SVTOOLS_RTF_TXE "\\txe"
+#define OOO_STRING_SVTOOLS_RTF_UL "\\ul"
+#define OOO_STRING_SVTOOLS_RTF_ULD "\\uld"
+#define OOO_STRING_SVTOOLS_RTF_ULDB "\\uldb"
+#define OOO_STRING_SVTOOLS_RTF_ULNONE "\\ulnone"
+#define OOO_STRING_SVTOOLS_RTF_ULW "\\ulw"
+#define OOO_STRING_SVTOOLS_RTF_UP "\\up"
+#define OOO_STRING_SVTOOLS_RTF_V "\\v"
+#define OOO_STRING_SVTOOLS_RTF_VERN "\\vern"
+#define OOO_STRING_SVTOOLS_RTF_VERSION "\\version"
+#define OOO_STRING_SVTOOLS_RTF_VERTALB "\\vertalb"
+#define OOO_STRING_SVTOOLS_RTF_VERTALC "\\vertalc"
+#define OOO_STRING_SVTOOLS_RTF_VERTALJ "\\vertalj"
+#define OOO_STRING_SVTOOLS_RTF_VERTALT "\\vertalt"
+#define OOO_STRING_SVTOOLS_RTF_WBITMAP "\\wbitmap"
+#define OOO_STRING_SVTOOLS_RTF_WBMBITSPIXEL "\\wbmbitspixel"
+#define OOO_STRING_SVTOOLS_RTF_WBMPLANES "\\wbmplanes"
+#define OOO_STRING_SVTOOLS_RTF_WBMWIDTHBYTES "\\wbmwidthbytes"
+#define OOO_STRING_SVTOOLS_RTF_WIDOWCTRL "\\widowctrl"
+#define OOO_STRING_SVTOOLS_RTF_WMETAFILE "\\wmetafile"
+#define OOO_STRING_SVTOOLS_RTF_XE "\\xe"
+#define OOO_STRING_SVTOOLS_RTF_YR "\\yr"
+#define OOO_STRING_SVTOOLS_RTF_NOBRKHYPH "\\_"
+#define OOO_STRING_SVTOOLS_RTF_FORMULA "\\|"
+#define OOO_STRING_SVTOOLS_RTF_NOBREAK "\\~"
+#define OOO_STRING_SVTOOLS_RTF_AB "\\ab"
+#define OOO_STRING_SVTOOLS_RTF_ACAPS "\\acaps"
+#define OOO_STRING_SVTOOLS_RTF_ACF "\\acf"
+#define OOO_STRING_SVTOOLS_RTF_ADDITIVE "\\additive"
+#define OOO_STRING_SVTOOLS_RTF_ADN "\\adn"
+#define OOO_STRING_SVTOOLS_RTF_AENDDOC "\\aenddoc"
+#define OOO_STRING_SVTOOLS_RTF_AENDNOTES "\\aendnotes"
+#define OOO_STRING_SVTOOLS_RTF_AEXPND "\\aexpnd"
+#define OOO_STRING_SVTOOLS_RTF_AF "\\af"
+#define OOO_STRING_SVTOOLS_RTF_AFS "\\afs"
+#define OOO_STRING_SVTOOLS_RTF_AFTNBJ "\\aftnbj"
+#define OOO_STRING_SVTOOLS_RTF_AFTNCN "\\aftncn"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNALC "\\aftnnalc"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNAR "\\aftnnar"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNAUC "\\aftnnauc"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNCHI "\\aftnnchi"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNRLC "\\aftnnrlc"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNRUC "\\aftnnruc"
+#define OOO_STRING_SVTOOLS_RTF_AFTNRESTART "\\aftnrestart"
+#define OOO_STRING_SVTOOLS_RTF_AFTNRSTCONT "\\aftnrstcont"
+#define OOO_STRING_SVTOOLS_RTF_AFTNSEP "\\aftnsep"
+#define OOO_STRING_SVTOOLS_RTF_AFTNSEPC "\\aftnsepc"
+#define OOO_STRING_SVTOOLS_RTF_AFTNSTART "\\aftnstart"
+#define OOO_STRING_SVTOOLS_RTF_AFTNTJ "\\aftntj"
+#define OOO_STRING_SVTOOLS_RTF_AI "\\ai"
+#define OOO_STRING_SVTOOLS_RTF_ALANG "\\alang"
+#define OOO_STRING_SVTOOLS_RTF_ALLPROT "\\allprot"
+#define OOO_STRING_SVTOOLS_RTF_ANNOTPROT "\\annotprot"
+#define OOO_STRING_SVTOOLS_RTF_AOUTL "\\aoutl"
+#define OOO_STRING_SVTOOLS_RTF_ASCAPS "\\ascaps"
+#define OOO_STRING_SVTOOLS_RTF_ASHAD "\\ashad"
+#define OOO_STRING_SVTOOLS_RTF_ASTRIKE "\\astrike"
+#define OOO_STRING_SVTOOLS_RTF_ATNAUTHOR "\\atnauthor"
+#define OOO_STRING_SVTOOLS_RTF_ATNICN "\\atnicn"
+#define OOO_STRING_SVTOOLS_RTF_ATNREF "\\atnref"
+#define OOO_STRING_SVTOOLS_RTF_ATNTIME "\\atntime"
+#define OOO_STRING_SVTOOLS_RTF_ATRFEND "\\atrfend"
+#define OOO_STRING_SVTOOLS_RTF_ATRFSTART "\\atrfstart"
+#define OOO_STRING_SVTOOLS_RTF_AUL "\\aul"
+#define OOO_STRING_SVTOOLS_RTF_AULD "\\auld"
+#define OOO_STRING_SVTOOLS_RTF_AULDB "\\auldb"
+#define OOO_STRING_SVTOOLS_RTF_AULNONE "\\aulnone"
+#define OOO_STRING_SVTOOLS_RTF_AULW "\\aulw"
+#define OOO_STRING_SVTOOLS_RTF_AUP "\\aup"
+#define OOO_STRING_SVTOOLS_RTF_BKMKPUB "\\bkmkpub"
+#define OOO_STRING_SVTOOLS_RTF_BRDRDASH "\\brdrdash"
+#define OOO_STRING_SVTOOLS_RTF_BRKFRM "\\brkfrm"
+#define OOO_STRING_SVTOOLS_RTF_CCHS "\\cchs"
+#define OOO_STRING_SVTOOLS_RTF_CPG "\\cpg"
+#define OOO_STRING_SVTOOLS_RTF_CS "\\cs"
+#define OOO_STRING_SVTOOLS_RTF_CVMME "\\cvmme"
+#define OOO_STRING_SVTOOLS_RTF_DATAFIELD "\\datafield"
+#define OOO_STRING_SVTOOLS_RTF_DO "\\do"
+#define OOO_STRING_SVTOOLS_RTF_DOBXCOLUMN "\\dobxcolumn"
+#define OOO_STRING_SVTOOLS_RTF_DOBXMARGIN "\\dobxmargin"
+#define OOO_STRING_SVTOOLS_RTF_DOBXPAGE "\\dobxpage"
+#define OOO_STRING_SVTOOLS_RTF_DOBYMARGIN "\\dobymargin"
+#define OOO_STRING_SVTOOLS_RTF_DOBYPAGE "\\dobypage"
+#define OOO_STRING_SVTOOLS_RTF_DOBYPARA "\\dobypara"
+#define OOO_STRING_SVTOOLS_RTF_DODHGT "\\dodhgt"
+#define OOO_STRING_SVTOOLS_RTF_DOLOCK "\\dolock"
+#define OOO_STRING_SVTOOLS_RTF_DPAENDHOL "\\dpaendhol"
+#define OOO_STRING_SVTOOLS_RTF_DPAENDL "\\dpaendl"
+#define OOO_STRING_SVTOOLS_RTF_DPAENDSOL "\\dpaendsol"
+#define OOO_STRING_SVTOOLS_RTF_DPAENDW "\\dpaendw"
+#define OOO_STRING_SVTOOLS_RTF_DPARC "\\dparc"
+#define OOO_STRING_SVTOOLS_RTF_DPARCFLIPX "\\dparcflipx"
+#define OOO_STRING_SVTOOLS_RTF_DPARCFLIPY "\\dparcflipy"
+#define OOO_STRING_SVTOOLS_RTF_DPASTARTHOL "\\dpastarthol"
+#define OOO_STRING_SVTOOLS_RTF_DPASTARTL "\\dpastartl"
+#define OOO_STRING_SVTOOLS_RTF_DPASTARTSOL "\\dpastartsol"
+#define OOO_STRING_SVTOOLS_RTF_DPASTARTW "\\dpastartw"
+#define OOO_STRING_SVTOOLS_RTF_DPCALLOUT "\\dpcallout"
+#define OOO_STRING_SVTOOLS_RTF_DPCOA "\\dpcoa"
+#define OOO_STRING_SVTOOLS_RTF_DPCOACCENT "\\dpcoaccent"
+#define OOO_STRING_SVTOOLS_RTF_DPCOBESTFIT "\\dpcobestfit"
+#define OOO_STRING_SVTOOLS_RTF_DPCOBORDER "\\dpcoborder"
+#define OOO_STRING_SVTOOLS_RTF_DPCODABS "\\dpcodabs"
+#define OOO_STRING_SVTOOLS_RTF_DPCODBOTTOM "\\dpcodbottom"
+#define OOO_STRING_SVTOOLS_RTF_DPCODCENTER "\\dpcodcenter"
+#define OOO_STRING_SVTOOLS_RTF_DPCODTOP "\\dpcodtop"
+#define OOO_STRING_SVTOOLS_RTF_DPCOLENGTH "\\dpcolength"
+#define OOO_STRING_SVTOOLS_RTF_DPCOMINUSX "\\dpcominusx"
+#define OOO_STRING_SVTOOLS_RTF_DPCOMINUSY "\\dpcominusy"
+#define OOO_STRING_SVTOOLS_RTF_DPCOOFFSET "\\dpcooffset"
+#define OOO_STRING_SVTOOLS_RTF_DPCOSMARTA "\\dpcosmarta"
+#define OOO_STRING_SVTOOLS_RTF_DPCOTDOUBLE "\\dpcotdouble"
+#define OOO_STRING_SVTOOLS_RTF_DPCOTRIGHT "\\dpcotright"
+#define OOO_STRING_SVTOOLS_RTF_DPCOTSINGLE "\\dpcotsingle"
+#define OOO_STRING_SVTOOLS_RTF_DPCOTTRIPLE "\\dpcottriple"
+#define OOO_STRING_SVTOOLS_RTF_DPCOUNT "\\dpcount"
+#define OOO_STRING_SVTOOLS_RTF_DPELLIPSE "\\dpellipse"
+#define OOO_STRING_SVTOOLS_RTF_DPENDGROUP "\\dpendgroup"
+#define OOO_STRING_SVTOOLS_RTF_DPFILLBGCB "\\dpfillbgcb"
+#define OOO_STRING_SVTOOLS_RTF_DPFILLBGCG "\\dpfillbgcg"
+#define OOO_STRING_SVTOOLS_RTF_DPFILLBGCR "\\dpfillbgcr"
+#define OOO_STRING_SVTOOLS_RTF_DPFILLBGGRAY "\\dpfillbggray"
+#define OOO_STRING_SVTOOLS_RTF_DPFILLBGPAL "\\dpfillbgpal"
+#define OOO_STRING_SVTOOLS_RTF_DPFILLFGCB "\\dpfillfgcb"
+#define OOO_STRING_SVTOOLS_RTF_DPFILLFGCG "\\dpfillfgcg"
+#define OOO_STRING_SVTOOLS_RTF_DPFILLFGCR "\\dpfillfgcr"
+#define OOO_STRING_SVTOOLS_RTF_DPFILLFGGRAY "\\dpfillfggray"
+#define OOO_STRING_SVTOOLS_RTF_DPFILLFGPAL "\\dpfillfgpal"
+#define OOO_STRING_SVTOOLS_RTF_DPFILLPAT "\\dpfillpat"
+#define OOO_STRING_SVTOOLS_RTF_DPGROUP "\\dpgroup"
+#define OOO_STRING_SVTOOLS_RTF_DPLINE "\\dpline"
+#define OOO_STRING_SVTOOLS_RTF_DPLINECOB "\\dplinecob"
+#define OOO_STRING_SVTOOLS_RTF_DPLINECOG "\\dplinecog"
+#define OOO_STRING_SVTOOLS_RTF_DPLINECOR "\\dplinecor"
+#define OOO_STRING_SVTOOLS_RTF_DPLINEDADO "\\dplinedado"
+#define OOO_STRING_SVTOOLS_RTF_DPLINEDADODO "\\dplinedadodo"
+#define OOO_STRING_SVTOOLS_RTF_DPLINEDASH "\\dplinedash"
+#define OOO_STRING_SVTOOLS_RTF_DPLINEDOT "\\dplinedot"
+#define OOO_STRING_SVTOOLS_RTF_DPLINEGRAY "\\dplinegray"
+#define OOO_STRING_SVTOOLS_RTF_DPLINEHOLLOW "\\dplinehollow"
+#define OOO_STRING_SVTOOLS_RTF_DPLINEPAL "\\dplinepal"
+#define OOO_STRING_SVTOOLS_RTF_DPLINESOLID "\\dplinesolid"
+#define OOO_STRING_SVTOOLS_RTF_DPLINEW "\\dplinew"
+#define OOO_STRING_SVTOOLS_RTF_DPPOLYCOUNT "\\dppolycount"
+#define OOO_STRING_SVTOOLS_RTF_DPPOLYGON "\\dppolygon"
+#define OOO_STRING_SVTOOLS_RTF_DPPOLYLINE "\\dppolyline"
+#define OOO_STRING_SVTOOLS_RTF_DPPTX "\\dpptx"
+#define OOO_STRING_SVTOOLS_RTF_DPPTY "\\dppty"
+#define OOO_STRING_SVTOOLS_RTF_DPRECT "\\dprect"
+#define OOO_STRING_SVTOOLS_RTF_DPROUNDR "\\dproundr"
+#define OOO_STRING_SVTOOLS_RTF_DPSHADOW "\\dpshadow"
+#define OOO_STRING_SVTOOLS_RTF_DPSHADX "\\dpshadx"
+#define OOO_STRING_SVTOOLS_RTF_DPSHADY "\\dpshady"
+#define OOO_STRING_SVTOOLS_RTF_DPTXBX "\\dptxbx"
+#define OOO_STRING_SVTOOLS_RTF_DPTXBXMAR "\\dptxbxmar"
+#define OOO_STRING_SVTOOLS_RTF_DPTXBXTEXT "\\dptxbxtext"
+#define OOO_STRING_SVTOOLS_RTF_DPX "\\dpx"
+#define OOO_STRING_SVTOOLS_RTF_DPXSIZE "\\dpxsize"
+#define OOO_STRING_SVTOOLS_RTF_DPY "\\dpy"
+#define OOO_STRING_SVTOOLS_RTF_DPYSIZE "\\dpysize"
+#define OOO_STRING_SVTOOLS_RTF_DS "\\ds"
+#define OOO_STRING_SVTOOLS_RTF_EMSPACE "\\emspace"
+#define OOO_STRING_SVTOOLS_RTF_ENSPACE "\\enspace"
+#define OOO_STRING_SVTOOLS_RTF_FBIDI "\\fbidi"
+#define OOO_STRING_SVTOOLS_RTF_FET "\\fet"
+#define OOO_STRING_SVTOOLS_RTF_FID "\\fid"
+#define OOO_STRING_SVTOOLS_RTF_FILE "\\file"
+#define OOO_STRING_SVTOOLS_RTF_FILETBL "\\filetbl"
+#define OOO_STRING_SVTOOLS_RTF_FLDALT "\\fldalt"
+#define OOO_STRING_SVTOOLS_RTF_FNETWORK "\\fnetwork"
+#define OOO_STRING_SVTOOLS_RTF_FONTEMB "\\fontemb"
+#define OOO_STRING_SVTOOLS_RTF_FONTFILE "\\fontfile"
+#define OOO_STRING_SVTOOLS_RTF_FORMDISP "\\formdisp"
+#define OOO_STRING_SVTOOLS_RTF_FORMPROT "\\formprot"
+#define OOO_STRING_SVTOOLS_RTF_FORMSHADE "\\formshade"
+#define OOO_STRING_SVTOOLS_RTF_FOSNUM "\\fosnum"
+#define OOO_STRING_SVTOOLS_RTF_FRELATIVE "\\frelative"
+#define OOO_STRING_SVTOOLS_RTF_FTNALT "\\ftnalt"
+#define OOO_STRING_SVTOOLS_RTF_FTNIL "\\ftnil"
+#define OOO_STRING_SVTOOLS_RTF_FTNNALC "\\ftnnalc"
+#define OOO_STRING_SVTOOLS_RTF_FTNNAR "\\ftnnar"
+#define OOO_STRING_SVTOOLS_RTF_FTNNAUC "\\ftnnauc"
+#define OOO_STRING_SVTOOLS_RTF_FTNNCHI "\\ftnnchi"
+#define OOO_STRING_SVTOOLS_RTF_FTNNRLC "\\ftnnrlc"
+#define OOO_STRING_SVTOOLS_RTF_FTNNRUC "\\ftnnruc"
+#define OOO_STRING_SVTOOLS_RTF_FTNRSTCONT "\\ftnrstcont"
+#define OOO_STRING_SVTOOLS_RTF_FTNRSTPG "\\ftnrstpg"
+#define OOO_STRING_SVTOOLS_RTF_FTTRUETYPE "\\fttruetype"
+#define OOO_STRING_SVTOOLS_RTF_FVALIDDOS "\\fvaliddos"
+#define OOO_STRING_SVTOOLS_RTF_FVALIDHPFS "\\fvalidhpfs"
+#define OOO_STRING_SVTOOLS_RTF_FVALIDMAC "\\fvalidmac"
+#define OOO_STRING_SVTOOLS_RTF_FVALIDNTFS "\\fvalidntfs"
+#define OOO_STRING_SVTOOLS_RTF_HYPHAUTO "\\hyphauto"
+#define OOO_STRING_SVTOOLS_RTF_HYPHCAPS "\\hyphcaps"
+#define OOO_STRING_SVTOOLS_RTF_HYPHCONSEC "\\hyphconsec"
+#define OOO_STRING_SVTOOLS_RTF_HYPHPAR "\\hyphpar"
+#define OOO_STRING_SVTOOLS_RTF_LINKSELF "\\linkself"
+#define OOO_STRING_SVTOOLS_RTF_LINKSTYLES "\\linkstyles"
+#define OOO_STRING_SVTOOLS_RTF_LTRCH "\\ltrch"
+#define OOO_STRING_SVTOOLS_RTF_LTRDOC "\\ltrdoc"
+#define OOO_STRING_SVTOOLS_RTF_LTRMARK "\\ltrmark"
+#define OOO_STRING_SVTOOLS_RTF_LTRPAR "\\ltrpar"
+#define OOO_STRING_SVTOOLS_RTF_LTRROW "\\ltrrow"
+#define OOO_STRING_SVTOOLS_RTF_LTRSECT "\\ltrsect"
+#define OOO_STRING_SVTOOLS_RTF_NOCOLBAL "\\nocolbal"
+#define OOO_STRING_SVTOOLS_RTF_NOEXTRASPRL "\\noextrasprl"
+#define OOO_STRING_SVTOOLS_RTF_NOTABIND "\\notabind"
+#define OOO_STRING_SVTOOLS_RTF_NOWIDCTLPAR "\\nowidctlpar"
+#define OOO_STRING_SVTOOLS_RTF_OBJALIAS "\\objalias"
+#define OOO_STRING_SVTOOLS_RTF_OBJALIGN "\\objalign"
+#define OOO_STRING_SVTOOLS_RTF_OBJAUTLINK "\\objautlink"
+#define OOO_STRING_SVTOOLS_RTF_OBJCLASS "\\objclass"
+#define OOO_STRING_SVTOOLS_RTF_OBJCROPB "\\objcropb"
+#define OOO_STRING_SVTOOLS_RTF_OBJCROPL "\\objcropl"
+#define OOO_STRING_SVTOOLS_RTF_OBJCROPR "\\objcropr"
+#define OOO_STRING_SVTOOLS_RTF_OBJCROPT "\\objcropt"
+#define OOO_STRING_SVTOOLS_RTF_OBJDATA "\\objdata"
+#define OOO_STRING_SVTOOLS_RTF_OBJECT "\\object"
+#define OOO_STRING_SVTOOLS_RTF_OBJEMB "\\objemb"
+#define OOO_STRING_SVTOOLS_RTF_OBJH "\\objh"
+#define OOO_STRING_SVTOOLS_RTF_OBJICEMB "\\objicemb"
+#define OOO_STRING_SVTOOLS_RTF_OBJLINK "\\objlink"
+#define OOO_STRING_SVTOOLS_RTF_OBJLOCK "\\objlock"
+#define OOO_STRING_SVTOOLS_RTF_OBJNAME "\\objname"
+#define OOO_STRING_SVTOOLS_RTF_OBJPUB "\\objpub"
+#define OOO_STRING_SVTOOLS_RTF_OBJSCALEX "\\objscalex"
+#define OOO_STRING_SVTOOLS_RTF_OBJSCALEY "\\objscaley"
+#define OOO_STRING_SVTOOLS_RTF_OBJSECT "\\objsect"
+#define OOO_STRING_SVTOOLS_RTF_OBJSETSIZE "\\objsetsize"
+#define OOO_STRING_SVTOOLS_RTF_OBJSUB "\\objsub"
+#define OOO_STRING_SVTOOLS_RTF_OBJTIME "\\objtime"
+#define OOO_STRING_SVTOOLS_RTF_OBJTRANSY "\\objtransy"
+#define OOO_STRING_SVTOOLS_RTF_OBJUPDATE "\\objupdate"
+#define OOO_STRING_SVTOOLS_RTF_OBJW "\\objw"
+#define OOO_STRING_SVTOOLS_RTF_OTBLRUL "\\otblrul"
+#define OOO_STRING_SVTOOLS_RTF_PGNHN "\\pgnhn"
+#define OOO_STRING_SVTOOLS_RTF_PGNHNSC "\\pgnhnsc"
+#define OOO_STRING_SVTOOLS_RTF_PGNHNSH "\\pgnhnsh"
+#define OOO_STRING_SVTOOLS_RTF_PGNHNSM "\\pgnhnsm"
+#define OOO_STRING_SVTOOLS_RTF_PGNHNSN "\\pgnhnsn"
+#define OOO_STRING_SVTOOLS_RTF_PGNHNSP "\\pgnhnsp"
+#define OOO_STRING_SVTOOLS_RTF_PICBMP "\\picbmp"
+#define OOO_STRING_SVTOOLS_RTF_PICBPP "\\picbpp"
+#define OOO_STRING_SVTOOLS_RTF_PN "\\pn"
+#define OOO_STRING_SVTOOLS_RTF_PNACROSS "\\pnacross"
+#define OOO_STRING_SVTOOLS_RTF_PNB "\\pnb"
+#define OOO_STRING_SVTOOLS_RTF_PNCAPS "\\pncaps"
+#define OOO_STRING_SVTOOLS_RTF_PNCARD "\\pncard"
+#define OOO_STRING_SVTOOLS_RTF_PNCF "\\pncf"
+#define OOO_STRING_SVTOOLS_RTF_PNDEC "\\pndec"
+#define OOO_STRING_SVTOOLS_RTF_PNF "\\pnf"
+#define OOO_STRING_SVTOOLS_RTF_PNFS "\\pnfs"
+#define OOO_STRING_SVTOOLS_RTF_PNHANG "\\pnhang"
+#define OOO_STRING_SVTOOLS_RTF_PNI "\\pni"
+#define OOO_STRING_SVTOOLS_RTF_PNINDENT "\\pnindent"
+#define OOO_STRING_SVTOOLS_RTF_PNLCLTR "\\pnlcltr"
+#define OOO_STRING_SVTOOLS_RTF_PNLCRM "\\pnlcrm"
+#define OOO_STRING_SVTOOLS_RTF_PNLVL "\\pnlvl"
+#define OOO_STRING_SVTOOLS_RTF_PNLVLBLT "\\pnlvlblt"
+#define OOO_STRING_SVTOOLS_RTF_PNLVLBODY "\\pnlvlbody"
+#define OOO_STRING_SVTOOLS_RTF_PNLVLCONT "\\pnlvlcont"
+#define OOO_STRING_SVTOOLS_RTF_PNNUMONCE "\\pnnumonce"
+#define OOO_STRING_SVTOOLS_RTF_PNORD "\\pnord"
+#define OOO_STRING_SVTOOLS_RTF_PNORDT "\\pnordt"
+#define OOO_STRING_SVTOOLS_RTF_PNPREV "\\pnprev"
+#define OOO_STRING_SVTOOLS_RTF_PNQC "\\pnqc"
+#define OOO_STRING_SVTOOLS_RTF_PNQL "\\pnql"
+#define OOO_STRING_SVTOOLS_RTF_PNQR "\\pnqr"
+#define OOO_STRING_SVTOOLS_RTF_PNRESTART "\\pnrestart"
+#define OOO_STRING_SVTOOLS_RTF_PNSCAPS "\\pnscaps"
+#define OOO_STRING_SVTOOLS_RTF_PNSECLVL "\\pnseclvl"
+#define OOO_STRING_SVTOOLS_RTF_PNSP "\\pnsp"
+#define OOO_STRING_SVTOOLS_RTF_PNSTART "\\pnstart"
+#define OOO_STRING_SVTOOLS_RTF_PNSTRIKE "\\pnstrike"
+#define OOO_STRING_SVTOOLS_RTF_PNTEXT "\\pntext"
+#define OOO_STRING_SVTOOLS_RTF_PNTXTA "\\pntxta"
+#define OOO_STRING_SVTOOLS_RTF_PNTXTB "\\pntxtb"
+#define OOO_STRING_SVTOOLS_RTF_PNUCLTR "\\pnucltr"
+#define OOO_STRING_SVTOOLS_RTF_PNUCRM "\\pnucrm"
+#define OOO_STRING_SVTOOLS_RTF_PNUL "\\pnul"
+#define OOO_STRING_SVTOOLS_RTF_PNULD "\\pnuld"
+#define OOO_STRING_SVTOOLS_RTF_PNULDB "\\pnuldb"
+#define OOO_STRING_SVTOOLS_RTF_PNULNONE "\\pnulnone"
+#define OOO_STRING_SVTOOLS_RTF_PNULW "\\pnulw"
+#define OOO_STRING_SVTOOLS_RTF_PRCOLBL "\\prcolbl"
+#define OOO_STRING_SVTOOLS_RTF_PRINTDATA "\\printdata"
+#define OOO_STRING_SVTOOLS_RTF_PSZ "\\psz"
+#define OOO_STRING_SVTOOLS_RTF_PUBAUTO "\\pubauto"
+#define OOO_STRING_SVTOOLS_RTF_RESULT "\\result"
+#define OOO_STRING_SVTOOLS_RTF_REVAUTH "\\revauth"
+#define OOO_STRING_SVTOOLS_RTF_REVDTTM "\\revdttm"
+#define OOO_STRING_SVTOOLS_RTF_REVPROT "\\revprot"
+#define OOO_STRING_SVTOOLS_RTF_REVTBL "\\revtbl"
+#define OOO_STRING_SVTOOLS_RTF_RSLTBMP "\\rsltbmp"
+#define OOO_STRING_SVTOOLS_RTF_RSLTMERGE "\\rsltmerge"
+#define OOO_STRING_SVTOOLS_RTF_RSLTPICT "\\rsltpict"
+#define OOO_STRING_SVTOOLS_RTF_RSLTRTF "\\rsltrtf"
+#define OOO_STRING_SVTOOLS_RTF_RSLTTXT "\\rslttxt"
+#define OOO_STRING_SVTOOLS_RTF_RTLCH "\\rtlch"
+#define OOO_STRING_SVTOOLS_RTF_RTLDOC "\\rtldoc"
+#define OOO_STRING_SVTOOLS_RTF_RTLMARK "\\rtlmark"
+#define OOO_STRING_SVTOOLS_RTF_RTLPAR "\\rtlpar"
+#define OOO_STRING_SVTOOLS_RTF_RTLROW "\\rtlrow"
+#define OOO_STRING_SVTOOLS_RTF_RTLSECT "\\rtlsect"
+#define OOO_STRING_SVTOOLS_RTF_SEC "\\sec"
+#define OOO_STRING_SVTOOLS_RTF_SECTNUM "\\sectnum"
+#define OOO_STRING_SVTOOLS_RTF_SECTUNLOCKED "\\sectunlocked"
+#define OOO_STRING_SVTOOLS_RTF_SLMULT "\\slmult"
+#define OOO_STRING_SVTOOLS_RTF_SOFTCOL "\\softcol"
+#define OOO_STRING_SVTOOLS_RTF_SOFTLHEIGHT "\\softlheight"
+#define OOO_STRING_SVTOOLS_RTF_SOFTLINE "\\softline"
+#define OOO_STRING_SVTOOLS_RTF_SOFTPAGE "\\softpage"
+#define OOO_STRING_SVTOOLS_RTF_SPRSSPBF "\\sprsspbf"
+#define OOO_STRING_SVTOOLS_RTF_SPRSTSP "\\sprstsp"
+#define OOO_STRING_SVTOOLS_RTF_SUBDOCUMENT "\\subdocument"
+#define OOO_STRING_SVTOOLS_RTF_SWPBDR "\\swpbdr"
+#define OOO_STRING_SVTOOLS_RTF_TCN "\\tcn"
+#define OOO_STRING_SVTOOLS_RTF_TRANSMF "\\transmf"
+#define OOO_STRING_SVTOOLS_RTF_TRBRDRB "\\trbrdrb"
+#define OOO_STRING_SVTOOLS_RTF_TRBRDRH "\\trbrdrh"
+#define OOO_STRING_SVTOOLS_RTF_TRBRDRL "\\trbrdrl"
+#define OOO_STRING_SVTOOLS_RTF_TRBRDRR "\\trbrdrr"
+#define OOO_STRING_SVTOOLS_RTF_TRBRDRT "\\trbrdrt"
+#define OOO_STRING_SVTOOLS_RTF_TRBRDRV "\\trbrdrv"
+#define OOO_STRING_SVTOOLS_RTF_TRHDR "\\trhdr"
+#define OOO_STRING_SVTOOLS_RTF_TRKEEP "\\trkeep"
+#define OOO_STRING_SVTOOLS_RTF_TRPADDB "\\trpaddb"
+#define OOO_STRING_SVTOOLS_RTF_TRPADDL "\\trpaddl"
+#define OOO_STRING_SVTOOLS_RTF_TRPADDR "\\trpaddr"
+#define OOO_STRING_SVTOOLS_RTF_TRPADDT "\\trpaddt"
+#define OOO_STRING_SVTOOLS_RTF_TRPADDFB "\\trpaddfb"
+#define OOO_STRING_SVTOOLS_RTF_TRPADDFL "\\trpaddfl"
+#define OOO_STRING_SVTOOLS_RTF_TRPADDFR "\\trpaddfr"
+#define OOO_STRING_SVTOOLS_RTF_TRPADDFT "\\trpaddft"
+#define OOO_STRING_SVTOOLS_RTF_WRAPTRSP "\\wraptrsp"
+#define OOO_STRING_SVTOOLS_RTF_XEF "\\xef"
+#define OOO_STRING_SVTOOLS_RTF_ZWJ "\\zwj"
+#define OOO_STRING_SVTOOLS_RTF_ZWNJ "\\zwnj"
// neue Tokens zur 1.5
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ABSLOCK, "\\abslock" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ADJUSTRIGHT, "\\adjustright" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNCHOSUNG, "\\aftnnchosung" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNCNUM, "\\aftnncnum" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNDBAR, "\\aftnndbar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNDBNUM, "\\aftnndbnum" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNDBNUMD, "\\aftnndbnumd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNDBNUMK, "\\aftnndbnumk" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNDBNUMT, "\\aftnndbnumt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNGANADA, "\\aftnnganada" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNGBNUM, "\\aftnngbnum" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNGBNUMD, "\\aftnngbnumd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNGBNUMK, "\\aftnngbnumk" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNGBNUML, "\\aftnngbnuml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNZODIAC, "\\aftnnzodiac" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNZODIACD, "\\aftnnzodiacd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_AFTNNZODIACL, "\\aftnnzodiacl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ANIMTEXT, "\\animtext" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ANSICPG, "\\ansicpg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BACKGROUND, "\\background" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BDBFHDR, "\\bdbfhdr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BLIPTAG, "\\bliptag" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BLIPUID, "\\blipuid" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BLIPUPI, "\\blipupi" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRART, "\\brdrart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDASHD, "\\brdrdashd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDASHDD, "\\brdrdashdd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDASHDOTSTR, "\\brdrdashdotstr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRDASHSM, "\\brdrdashsm" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDREMBOSS, "\\brdremboss" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRENGRAVE, "\\brdrengrave" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRFRAME, "\\brdrframe" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTHTNLG, "\\brdrthtnlg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTHTNMG, "\\brdrthtnmg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTHTNSG, "\\brdrthtnsg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTNTHLG, "\\brdrtnthlg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTNTHMG, "\\brdrtnthmg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTNTHSG, "\\brdrtnthsg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTNTHTNLG, "\\brdrtnthtnlg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTNTHTNMG, "\\brdrtnthtnmg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTNTHTNSG, "\\brdrtnthtnsg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRTRIPLE, "\\brdrtriple" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRWAVY, "\\brdrwavy" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDRWAVYDB, "\\brdrwavydb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CATEGORY, "\\category" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CGRID, "\\cgrid" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHARSCALEX, "\\charscalex" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGBDIAG, "\\chbgbdiag" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGCROSS, "\\chbgcross" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDCROSS, "\\chbgdcross" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDKBDIAG, "\\chbgdkbdiag" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDKCROSS, "\\chbgdkcross" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDKDCROSS, "\\chbgdkdcross" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDKFDIAG, "\\chbgdkfdiag" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDKHORIZ, "\\chbgdkhoriz" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGDKVERT, "\\chbgdkvert" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGFDIAG, "\\chbgfdiag" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGHORIZ, "\\chbghoriz" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBGVERT, "\\chbgvert" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHBRDR, "\\chbrdr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHCBPAT, "\\chcbpat" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHCFPAT, "\\chcfpat" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CHSHDNG, "\\chshdng" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADL, "\\clpadl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADT, "\\clpadt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADB, "\\clpadb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADR, "\\clpadr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADFL, "\\clpadfl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADFT, "\\clpadft" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADFB, "\\clpadfb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLPADFR, "\\clpadfr" );
-
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLTXLRTB, "\\cltxlrtb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLTXTBRL, "\\cltxtbrl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLVERTALB, "\\clvertalb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLVERTALC, "\\clvertalc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLVERTALT, "\\clvertalt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLVMGF, "\\clvmgf" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLVMRG, "\\clvmrg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLTXTBRLV, "\\cltxtbrlv" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLTXBTLR, "\\cltxbtlr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CLTXLRTBV, "\\cltxlrtbv" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_COMPANY, "\\company" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CRAUTH, "\\crauth" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_CRDATE, "\\crdate" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DATE, "\\date" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DEFLANGFE, "\\deflangfe" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRAUTH, "\\dfrauth" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRDATE, "\\dfrdate" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRSTART, "\\dfrstart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRSTOP, "\\dfrstop" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRXST, "\\dfrxst" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DGMARGIN, "\\dgmargin" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DNTBLNSBDB, "\\dntblnsbdb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOCTYPE, "\\doctype" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DOCVAR, "\\docvar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DPCODESCENT, "\\dpcodescent" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EMBO, "\\embo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EMFBLIP, "\\emfblip" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_EXPSHRTN, "\\expshrtn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FAAUTO, "\\faauto" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FBIAS, "\\fbias" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFDEFRES, "\\ffdefres" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFDEFTEXT, "\\ffdeftext" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFENTRYMCR, "\\ffentrymcr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFEXITMCR, "\\ffexitmcr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFFORMAT, "\\ffformat" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFHASLISTBOX, "\\ffhaslistbox" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFHELPTEXT, "\\ffhelptext" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFHPS, "\\ffhps" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFL, "\\ffl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFMAXLEN, "\\ffmaxlen" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFNAME, "\\ffname" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFOWNHELP, "\\ffownhelp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFOWNSTAT, "\\ffownstat" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFPROT, "\\ffprot" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFRECALC, "\\ffrecalc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFRES, "\\ffres" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFSIZE, "\\ffsize" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFSTATTEXT, "\\ffstattext" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFTYPE, "\\fftype" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FFTYPETXT, "\\fftypetxt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLDTYPE, "\\fldtype" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FNAME, "\\fname" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FORMFIELD, "\\formfield" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FROMTEXT, "\\fromtext" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNCHOSUNG, "\\ftnnchosung" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNCNUM, "\\ftnncnum" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNDBAR, "\\ftnndbar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNDBNUM, "\\ftnndbnum" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNDBNUMD, "\\ftnndbnumd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNDBNUMK, "\\ftnndbnumk" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNDBNUMT, "\\ftnndbnumt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNGANADA, "\\ftnnganada" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNGBNUM, "\\ftnngbnum" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNGBNUMD, "\\ftnngbnumd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNGBNUMK, "\\ftnngbnumk" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNGBNUML, "\\ftnngbnuml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNZODIAC, "\\ftnnzodiac" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNZODIACD, "\\ftnnzodiacd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FTNNZODIACL, "\\ftnnzodiacl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_G, "\\g" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GCW, "\\gcw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GRIDTBL, "\\gridtbl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HIGHLIGHT, "\\highlight" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HLFR, "\\hlfr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HLINKBASE, "\\hlinkbase" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HLLOC, "\\hlloc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HLSRC, "\\hlsrc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ILVL, "\\ilvl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_IMPR, "\\impr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_JPEGBLIP, "\\jpegblip" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELFOLLOW, "\\levelfollow" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELINDENT, "\\levelindent" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELJC, "\\leveljc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELLEGAL, "\\levellegal" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELNFC, "\\levelnfc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELNORESTART, "\\levelnorestart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELNUMBERS, "\\levelnumbers" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELOLD, "\\levelold" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELPREV, "\\levelprev" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELPREVSPACE, "\\levelprevspace" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELSPACE, "\\levelspace" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELSTARTAT, "\\levelstartat" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LEVELTEXT, "\\leveltext" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LINKVAL, "\\linkval" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LIST, "\\list" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTID, "\\listid" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTLEVEL, "\\listlevel" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTNAME, "\\listname" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTOVERRIDE, "\\listoverride" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTOVERRIDECOUNT, "\\listoverridecount" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTOVERRIDEFORMAT, "\\listoverrideformat" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTOVERRIDESTART, "\\listoverridestart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTOVERRIDETABLE, "\\listoverridetable" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTRESTARTHDN, "\\listrestarthdn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTSIMPLE, "\\listsimple" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTTABLE, "\\listtable" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTTEMPLATEID, "\\listtemplateid" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LISTTEXT, "\\listtext" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LS, "\\ls" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LYTEXCTTP, "\\lytexcttp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LYTPRTMET, "\\lytprtmet" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MANAGER, "\\manager" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_MSMCAP, "\\msmcap" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOFCHARSWS, "\\nofcharsws" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOLEAD, "\\nolead" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NONSHPPICT, "\\nonshppict" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOSECTEXPAND, "\\nosectexpand" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOSNAPLINEGRID, "\\nosnaplinegrid" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOSPACEFORUL, "\\nospaceforul" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOULTRLSPC, "\\noultrlspc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOXLATTOYEN, "\\noxlattoyen" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJATTPH, "\\objattph" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJHTML, "\\objhtml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OBJOCX, "\\objocx" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLDLINEWRAP, "\\oldlinewrap" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OUTLINELEVEL, "\\outlinelevel" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OVERLAY, "\\overlay" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PANOSE, "\\panose" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRB, "\\pgbrdrb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRFOOT, "\\pgbrdrfoot" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRHEAD, "\\pgbrdrhead" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRL, "\\pgbrdrl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDROPT, "\\pgbrdropt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRR, "\\pgbrdrr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRSNAP, "\\pgbrdrsnap" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRDRT, "\\pgbrdrt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNCHOSUNG, "\\pgnchosung" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNCNUM, "\\pgncnum" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNDBNUMK, "\\pgndbnumk" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNDBNUMT, "\\pgndbnumt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNGANADA, "\\pgnganada" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNGBNUM, "\\pgngbnum" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNGBNUMD, "\\pgngbnumd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNGBNUMK, "\\pgngbnumk" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNGBNUML, "\\pgngbnuml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNZODIAC, "\\pgnzodiac" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNZODIACD, "\\pgnzodiacd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGNZODIACL, "\\pgnzodiacl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PICPROP, "\\picprop" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNAIUEO, "\\pnaiueo" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNAIUEOD, "\\pnaiueod" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNCHOSUNG, "\\pnchosung" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNDBNUMD, "\\pndbnumd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNDBNUMK, "\\pndbnumk" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNDBNUML, "\\pndbnuml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNDBNUMT, "\\pndbnumt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNGANADA, "\\pnganada" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNGBLIP, "\\pngblip" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNGBNUM, "\\pngbnum" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNGBNUMD, "\\pngbnumd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNGBNUMK, "\\pngbnumk" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNGBNUML, "\\pngbnuml" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRAUTH, "\\pnrauth" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRDATE, "\\pnrdate" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRNFC, "\\pnrnfc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRNOT, "\\pnrnot" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRPNBR, "\\pnrpnbr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRRGB, "\\pnrrgb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRSTART, "\\pnrstart" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRSTOP, "\\pnrstop" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNRXST, "\\pnrxst" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNZODIAC, "\\pnzodiac" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNZODIACD, "\\pnzodiacd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PNZODIACL, "\\pnzodiacl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LFOLEVEL, "\\lfolevel" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSYIN, "\\posyin" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_POSYOUT, "\\posyout" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PRIVATE, "\\private" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PROPNAME, "\\propname" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PROPTYPE, "\\proptype" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVAUTHDEL, "\\revauthdel" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_REVDTTMDEL, "\\revdttmdel" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SAUTOUPD, "\\sautoupd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTDEFAULTCL, "\\sectdefaultcl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTEXPAND, "\\sectexpand" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTLINEGRID, "\\sectlinegrid" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTSPECIFYCL, "\\sectspecifycl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SECTSPECIFYL, "\\sectspecifyl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHIDDEN, "\\shidden" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBOTTOM, "\\shpbottom" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBXCOLUMN, "\\shpbxcolumn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBXMARGIN, "\\shpbxmargin" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBXPAGE, "\\shpbxpage" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBYMARGIN, "\\shpbymargin" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBYPAGE, "\\shpbypage" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBYPARA, "\\shpbypara" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPFBLWTXT, "\\shpfblwtxt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPFHDR, "\\shpfhdr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPGRP, "\\shpgrp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPLEFT, "\\shpleft" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPLID, "\\shplid" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPLOCKANCHOR, "\\shplockanchor" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPPICT, "\\shppict" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPRIGHT, "\\shpright" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPRSLT, "\\shprslt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPTOP, "\\shptop" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPTXT, "\\shptxt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPWRK, "\\shpwrk" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPWR, "\\shpwr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPZ, "\\shpz" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SPRSBSP, "\\sprsbsp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SPRSLNSP, "\\sprslnsp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SPRSTSM, "\\sprstsm" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_STATICVAL, "\\staticval" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_STEXTFLOW, "\\stextflow" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_STRIKED, "\\striked" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SUBFONTBYSIZE, "\\subfontbysize" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TCELLD, "\\tcelld" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TIME, "\\time" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TRUNCATEFONTHEIGHT, "\\truncatefontheight" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_UC, "\\uc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_UD, "\\ud" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULDASH, "\\uldash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULDASHD, "\\uldashd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULDASHDD, "\\uldashdd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULTH, "\\ulth" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULWAVE, "\\ulwave" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULC, "\\ulc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_U, "\\u" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_UPR, "\\upr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_USERPROPS, "\\userprops" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VIEWKIND, "\\viewkind" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VIEWSCALE, "\\viewscale" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_VIEWZK, "\\viewzk" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WIDCTLPAR, "\\widctlpar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WINDOWCAPTION, "\\windowcaption" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WPEQN, "\\wpeqn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WPJST, "\\wpjst" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_WPSP, "\\wpsp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_YXE, "\\yxe" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRMTXLRTB, "\\frmtxlrtb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRMTXTBRL, "\\frmtxtbrl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRMTXBTLR, "\\frmtxbtlr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRMTXLRTBV, "\\frmtxlrtbv" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FRMTXTBRLV, "\\frmtxtbrlv" );
-
+#define OOO_STRING_SVTOOLS_RTF_ABSLOCK "\\abslock"
+#define OOO_STRING_SVTOOLS_RTF_ADJUSTRIGHT "\\adjustright"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNCHOSUNG "\\aftnnchosung"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNCNUM "\\aftnncnum"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNDBAR "\\aftnndbar"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNDBNUM "\\aftnndbnum"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNDBNUMD "\\aftnndbnumd"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNDBNUMK "\\aftnndbnumk"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNDBNUMT "\\aftnndbnumt"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNGANADA "\\aftnnganada"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNGBNUM "\\aftnngbnum"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNGBNUMD "\\aftnngbnumd"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNGBNUMK "\\aftnngbnumk"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNGBNUML "\\aftnngbnuml"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNZODIAC "\\aftnnzodiac"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNZODIACD "\\aftnnzodiacd"
+#define OOO_STRING_SVTOOLS_RTF_AFTNNZODIACL "\\aftnnzodiacl"
+#define OOO_STRING_SVTOOLS_RTF_ANIMTEXT "\\animtext"
+#define OOO_STRING_SVTOOLS_RTF_ANSICPG "\\ansicpg"
+#define OOO_STRING_SVTOOLS_RTF_BACKGROUND "\\background"
+#define OOO_STRING_SVTOOLS_RTF_BDBFHDR "\\bdbfhdr"
+#define OOO_STRING_SVTOOLS_RTF_BLIPTAG "\\bliptag"
+#define OOO_STRING_SVTOOLS_RTF_BLIPUID "\\blipuid"
+#define OOO_STRING_SVTOOLS_RTF_BLIPUPI "\\blipupi"
+#define OOO_STRING_SVTOOLS_RTF_BRDRART "\\brdrart"
+#define OOO_STRING_SVTOOLS_RTF_BRDRDASHD "\\brdrdashd"
+#define OOO_STRING_SVTOOLS_RTF_BRDRDASHDD "\\brdrdashdd"
+#define OOO_STRING_SVTOOLS_RTF_BRDRDASHDOTSTR "\\brdrdashdotstr"
+#define OOO_STRING_SVTOOLS_RTF_BRDRDASHSM "\\brdrdashsm"
+#define OOO_STRING_SVTOOLS_RTF_BRDREMBOSS "\\brdremboss"
+#define OOO_STRING_SVTOOLS_RTF_BRDRENGRAVE "\\brdrengrave"
+#define OOO_STRING_SVTOOLS_RTF_BRDRFRAME "\\brdrframe"
+#define OOO_STRING_SVTOOLS_RTF_BRDRTHTNLG "\\brdrthtnlg"
+#define OOO_STRING_SVTOOLS_RTF_BRDRTHTNMG "\\brdrthtnmg"
+#define OOO_STRING_SVTOOLS_RTF_BRDRTHTNSG "\\brdrthtnsg"
+#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHLG "\\brdrtnthlg"
+#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHMG "\\brdrtnthmg"
+#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHSG "\\brdrtnthsg"
+#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHTNLG "\\brdrtnthtnlg"
+#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHTNMG "\\brdrtnthtnmg"
+#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHTNSG "\\brdrtnthtnsg"
+#define OOO_STRING_SVTOOLS_RTF_BRDRTRIPLE "\\brdrtriple"
+#define OOO_STRING_SVTOOLS_RTF_BRDRWAVY "\\brdrwavy"
+#define OOO_STRING_SVTOOLS_RTF_BRDRWAVYDB "\\brdrwavydb"
+#define OOO_STRING_SVTOOLS_RTF_CATEGORY "\\category"
+#define OOO_STRING_SVTOOLS_RTF_CGRID "\\cgrid"
+#define OOO_STRING_SVTOOLS_RTF_CHARSCALEX "\\charscalex"
+#define OOO_STRING_SVTOOLS_RTF_CHBGBDIAG "\\chbgbdiag"
+#define OOO_STRING_SVTOOLS_RTF_CHBGCROSS "\\chbgcross"
+#define OOO_STRING_SVTOOLS_RTF_CHBGDCROSS "\\chbgdcross"
+#define OOO_STRING_SVTOOLS_RTF_CHBGDKBDIAG "\\chbgdkbdiag"
+#define OOO_STRING_SVTOOLS_RTF_CHBGDKCROSS "\\chbgdkcross"
+#define OOO_STRING_SVTOOLS_RTF_CHBGDKDCROSS "\\chbgdkdcross"
+#define OOO_STRING_SVTOOLS_RTF_CHBGDKFDIAG "\\chbgdkfdiag"
+#define OOO_STRING_SVTOOLS_RTF_CHBGDKHORIZ "\\chbgdkhoriz"
+#define OOO_STRING_SVTOOLS_RTF_CHBGDKVERT "\\chbgdkvert"
+#define OOO_STRING_SVTOOLS_RTF_CHBGFDIAG "\\chbgfdiag"
+#define OOO_STRING_SVTOOLS_RTF_CHBGHORIZ "\\chbghoriz"
+#define OOO_STRING_SVTOOLS_RTF_CHBGVERT "\\chbgvert"
+#define OOO_STRING_SVTOOLS_RTF_CHBRDR "\\chbrdr"
+#define OOO_STRING_SVTOOLS_RTF_CHCBPAT "\\chcbpat"
+#define OOO_STRING_SVTOOLS_RTF_CHCFPAT "\\chcfpat"
+#define OOO_STRING_SVTOOLS_RTF_CHSHDNG "\\chshdng"
+#define OOO_STRING_SVTOOLS_RTF_CLPADL "\\clpadl"
+#define OOO_STRING_SVTOOLS_RTF_CLPADT "\\clpadt"
+#define OOO_STRING_SVTOOLS_RTF_CLPADB "\\clpadb"
+#define OOO_STRING_SVTOOLS_RTF_CLPADR "\\clpadr"
+#define OOO_STRING_SVTOOLS_RTF_CLPADFL "\\clpadfl"
+#define OOO_STRING_SVTOOLS_RTF_CLPADFT "\\clpadft"
+#define OOO_STRING_SVTOOLS_RTF_CLPADFB "\\clpadfb"
+#define OOO_STRING_SVTOOLS_RTF_CLPADFR "\\clpadfr"
+#define OOO_STRING_SVTOOLS_RTF_CLTXLRTB "\\cltxlrtb"
+#define OOO_STRING_SVTOOLS_RTF_CLTXTBRL "\\cltxtbrl"
+#define OOO_STRING_SVTOOLS_RTF_CLVERTALB "\\clvertalb"
+#define OOO_STRING_SVTOOLS_RTF_CLVERTALC "\\clvertalc"
+#define OOO_STRING_SVTOOLS_RTF_CLVERTALT "\\clvertalt"
+#define OOO_STRING_SVTOOLS_RTF_CLVMGF "\\clvmgf"
+#define OOO_STRING_SVTOOLS_RTF_CLVMRG "\\clvmrg"
+#define OOO_STRING_SVTOOLS_RTF_CLTXTBRLV "\\cltxtbrlv"
+#define OOO_STRING_SVTOOLS_RTF_CLTXBTLR "\\cltxbtlr"
+#define OOO_STRING_SVTOOLS_RTF_CLTXLRTBV "\\cltxlrtbv"
+#define OOO_STRING_SVTOOLS_RTF_COMPANY "\\company"
+#define OOO_STRING_SVTOOLS_RTF_CRAUTH "\\crauth"
+#define OOO_STRING_SVTOOLS_RTF_CRDATE "\\crdate"
+#define OOO_STRING_SVTOOLS_RTF_DATE "\\date"
+#define OOO_STRING_SVTOOLS_RTF_DEFLANGFE "\\deflangfe"
+#define OOO_STRING_SVTOOLS_RTF_DFRAUTH "\\dfrauth"
+#define OOO_STRING_SVTOOLS_RTF_DFRDATE "\\dfrdate"
+#define OOO_STRING_SVTOOLS_RTF_DFRSTART "\\dfrstart"
+#define OOO_STRING_SVTOOLS_RTF_DFRSTOP "\\dfrstop"
+#define OOO_STRING_SVTOOLS_RTF_DFRXST "\\dfrxst"
+#define OOO_STRING_SVTOOLS_RTF_DGMARGIN "\\dgmargin"
+#define OOO_STRING_SVTOOLS_RTF_DNTBLNSBDB "\\dntblnsbdb"
+#define OOO_STRING_SVTOOLS_RTF_DOCTYPE "\\doctype"
+#define OOO_STRING_SVTOOLS_RTF_DOCVAR "\\docvar"
+#define OOO_STRING_SVTOOLS_RTF_DPCODESCENT "\\dpcodescent"
+#define OOO_STRING_SVTOOLS_RTF_EMBO "\\embo"
+#define OOO_STRING_SVTOOLS_RTF_EMFBLIP "\\emfblip"
+#define OOO_STRING_SVTOOLS_RTF_EXPSHRTN "\\expshrtn"
+#define OOO_STRING_SVTOOLS_RTF_FAAUTO "\\faauto"
+#define OOO_STRING_SVTOOLS_RTF_FBIAS "\\fbias"
+#define OOO_STRING_SVTOOLS_RTF_FFDEFRES "\\ffdefres"
+#define OOO_STRING_SVTOOLS_RTF_FFDEFTEXT "\\ffdeftext"
+#define OOO_STRING_SVTOOLS_RTF_FFENTRYMCR "\\ffentrymcr"
+#define OOO_STRING_SVTOOLS_RTF_FFEXITMCR "\\ffexitmcr"
+#define OOO_STRING_SVTOOLS_RTF_FFFORMAT "\\ffformat"
+#define OOO_STRING_SVTOOLS_RTF_FFHASLISTBOX "\\ffhaslistbox"
+#define OOO_STRING_SVTOOLS_RTF_FFHELPTEXT "\\ffhelptext"
+#define OOO_STRING_SVTOOLS_RTF_FFHPS "\\ffhps"
+#define OOO_STRING_SVTOOLS_RTF_FFL "\\ffl"
+#define OOO_STRING_SVTOOLS_RTF_FFMAXLEN "\\ffmaxlen"
+#define OOO_STRING_SVTOOLS_RTF_FFNAME "\\ffname"
+#define OOO_STRING_SVTOOLS_RTF_FFOWNHELP "\\ffownhelp"
+#define OOO_STRING_SVTOOLS_RTF_FFOWNSTAT "\\ffownstat"
+#define OOO_STRING_SVTOOLS_RTF_FFPROT "\\ffprot"
+#define OOO_STRING_SVTOOLS_RTF_FFRECALC "\\ffrecalc"
+#define OOO_STRING_SVTOOLS_RTF_FFRES "\\ffres"
+#define OOO_STRING_SVTOOLS_RTF_FFSIZE "\\ffsize"
+#define OOO_STRING_SVTOOLS_RTF_FFSTATTEXT "\\ffstattext"
+#define OOO_STRING_SVTOOLS_RTF_FFTYPE "\\fftype"
+#define OOO_STRING_SVTOOLS_RTF_FFTYPETXT "\\fftypetxt"
+#define OOO_STRING_SVTOOLS_RTF_FLDTYPE "\\fldtype"
+#define OOO_STRING_SVTOOLS_RTF_FNAME "\\fname"
+#define OOO_STRING_SVTOOLS_RTF_FORMFIELD "\\formfield"
+#define OOO_STRING_SVTOOLS_RTF_FROMTEXT "\\fromtext"
+#define OOO_STRING_SVTOOLS_RTF_FTNNCHOSUNG "\\ftnnchosung"
+#define OOO_STRING_SVTOOLS_RTF_FTNNCNUM "\\ftnncnum"
+#define OOO_STRING_SVTOOLS_RTF_FTNNDBAR "\\ftnndbar"
+#define OOO_STRING_SVTOOLS_RTF_FTNNDBNUM "\\ftnndbnum"
+#define OOO_STRING_SVTOOLS_RTF_FTNNDBNUMD "\\ftnndbnumd"
+#define OOO_STRING_SVTOOLS_RTF_FTNNDBNUMK "\\ftnndbnumk"
+#define OOO_STRING_SVTOOLS_RTF_FTNNDBNUMT "\\ftnndbnumt"
+#define OOO_STRING_SVTOOLS_RTF_FTNNGANADA "\\ftnnganada"
+#define OOO_STRING_SVTOOLS_RTF_FTNNGBNUM "\\ftnngbnum"
+#define OOO_STRING_SVTOOLS_RTF_FTNNGBNUMD "\\ftnngbnumd"
+#define OOO_STRING_SVTOOLS_RTF_FTNNGBNUMK "\\ftnngbnumk"
+#define OOO_STRING_SVTOOLS_RTF_FTNNGBNUML "\\ftnngbnuml"
+#define OOO_STRING_SVTOOLS_RTF_FTNNZODIAC "\\ftnnzodiac"
+#define OOO_STRING_SVTOOLS_RTF_FTNNZODIACD "\\ftnnzodiacd"
+#define OOO_STRING_SVTOOLS_RTF_FTNNZODIACL "\\ftnnzodiacl"
+#define OOO_STRING_SVTOOLS_RTF_G "\\g"
+#define OOO_STRING_SVTOOLS_RTF_GCW "\\gcw"
+#define OOO_STRING_SVTOOLS_RTF_GRIDTBL "\\gridtbl"
+#define OOO_STRING_SVTOOLS_RTF_HIGHLIGHT "\\highlight"
+#define OOO_STRING_SVTOOLS_RTF_HLFR "\\hlfr"
+#define OOO_STRING_SVTOOLS_RTF_HLINKBASE "\\hlinkbase"
+#define OOO_STRING_SVTOOLS_RTF_HLLOC "\\hlloc"
+#define OOO_STRING_SVTOOLS_RTF_HLSRC "\\hlsrc"
+#define OOO_STRING_SVTOOLS_RTF_ILVL "\\ilvl"
+#define OOO_STRING_SVTOOLS_RTF_IMPR "\\impr"
+#define OOO_STRING_SVTOOLS_RTF_JPEGBLIP "\\jpegblip"
+#define OOO_STRING_SVTOOLS_RTF_LEVELFOLLOW "\\levelfollow"
+#define OOO_STRING_SVTOOLS_RTF_LEVELINDENT "\\levelindent"
+#define OOO_STRING_SVTOOLS_RTF_LEVELJC "\\leveljc"
+#define OOO_STRING_SVTOOLS_RTF_LEVELLEGAL "\\levellegal"
+#define OOO_STRING_SVTOOLS_RTF_LEVELNFC "\\levelnfc"
+#define OOO_STRING_SVTOOLS_RTF_LEVELNORESTART "\\levelnorestart"
+#define OOO_STRING_SVTOOLS_RTF_LEVELNUMBERS "\\levelnumbers"
+#define OOO_STRING_SVTOOLS_RTF_LEVELOLD "\\levelold"
+#define OOO_STRING_SVTOOLS_RTF_LEVELPREV "\\levelprev"
+#define OOO_STRING_SVTOOLS_RTF_LEVELPREVSPACE "\\levelprevspace"
+#define OOO_STRING_SVTOOLS_RTF_LEVELSPACE "\\levelspace"
+#define OOO_STRING_SVTOOLS_RTF_LEVELSTARTAT "\\levelstartat"
+#define OOO_STRING_SVTOOLS_RTF_LEVELTEXT "\\leveltext"
+#define OOO_STRING_SVTOOLS_RTF_LINKVAL "\\linkval"
+#define OOO_STRING_SVTOOLS_RTF_LIST "\\list"
+#define OOO_STRING_SVTOOLS_RTF_LISTID "\\listid"
+#define OOO_STRING_SVTOOLS_RTF_LISTLEVEL "\\listlevel"
+#define OOO_STRING_SVTOOLS_RTF_LISTNAME "\\listname"
+#define OOO_STRING_SVTOOLS_RTF_LISTOVERRIDE "\\listoverride"
+#define OOO_STRING_SVTOOLS_RTF_LISTOVERRIDECOUNT "\\listoverridecount"
+#define OOO_STRING_SVTOOLS_RTF_LISTOVERRIDEFORMAT "\\listoverrideformat"
+#define OOO_STRING_SVTOOLS_RTF_LISTOVERRIDESTART "\\listoverridestart"
+#define OOO_STRING_SVTOOLS_RTF_LISTOVERRIDETABLE "\\listoverridetable"
+#define OOO_STRING_SVTOOLS_RTF_LISTRESTARTHDN "\\listrestarthdn"
+#define OOO_STRING_SVTOOLS_RTF_LISTSIMPLE "\\listsimple"
+#define OOO_STRING_SVTOOLS_RTF_LISTTABLE "\\listtable"
+#define OOO_STRING_SVTOOLS_RTF_LISTTEMPLATEID "\\listtemplateid"
+#define OOO_STRING_SVTOOLS_RTF_LISTTEXT "\\listtext"
+#define OOO_STRING_SVTOOLS_RTF_LS "\\ls"
+#define OOO_STRING_SVTOOLS_RTF_LYTEXCTTP "\\lytexcttp"
+#define OOO_STRING_SVTOOLS_RTF_LYTPRTMET "\\lytprtmet"
+#define OOO_STRING_SVTOOLS_RTF_MANAGER "\\manager"
+#define OOO_STRING_SVTOOLS_RTF_MSMCAP "\\msmcap"
+#define OOO_STRING_SVTOOLS_RTF_NOFCHARSWS "\\nofcharsws"
+#define OOO_STRING_SVTOOLS_RTF_NOLEAD "\\nolead"
+#define OOO_STRING_SVTOOLS_RTF_NONSHPPICT "\\nonshppict"
+#define OOO_STRING_SVTOOLS_RTF_NOSECTEXPAND "\\nosectexpand"
+#define OOO_STRING_SVTOOLS_RTF_NOSNAPLINEGRID "\\nosnaplinegrid"
+#define OOO_STRING_SVTOOLS_RTF_NOSPACEFORUL "\\nospaceforul"
+#define OOO_STRING_SVTOOLS_RTF_NOULTRLSPC "\\noultrlspc"
+#define OOO_STRING_SVTOOLS_RTF_NOXLATTOYEN "\\noxlattoyen"
+#define OOO_STRING_SVTOOLS_RTF_OBJATTPH "\\objattph"
+#define OOO_STRING_SVTOOLS_RTF_OBJHTML "\\objhtml"
+#define OOO_STRING_SVTOOLS_RTF_OBJOCX "\\objocx"
+#define OOO_STRING_SVTOOLS_RTF_OLDLINEWRAP "\\oldlinewrap"
+#define OOO_STRING_SVTOOLS_RTF_OUTLINELEVEL "\\outlinelevel"
+#define OOO_STRING_SVTOOLS_RTF_OVERLAY "\\overlay"
+#define OOO_STRING_SVTOOLS_RTF_PANOSE "\\panose"
+#define OOO_STRING_SVTOOLS_RTF_PGBRDRB "\\pgbrdrb"
+#define OOO_STRING_SVTOOLS_RTF_PGBRDRFOOT "\\pgbrdrfoot"
+#define OOO_STRING_SVTOOLS_RTF_PGBRDRHEAD "\\pgbrdrhead"
+#define OOO_STRING_SVTOOLS_RTF_PGBRDRL "\\pgbrdrl"
+#define OOO_STRING_SVTOOLS_RTF_PGBRDROPT "\\pgbrdropt"
+#define OOO_STRING_SVTOOLS_RTF_PGBRDRR "\\pgbrdrr"
+#define OOO_STRING_SVTOOLS_RTF_PGBRDRSNAP "\\pgbrdrsnap"
+#define OOO_STRING_SVTOOLS_RTF_PGBRDRT "\\pgbrdrt"
+#define OOO_STRING_SVTOOLS_RTF_PGNCHOSUNG "\\pgnchosung"
+#define OOO_STRING_SVTOOLS_RTF_PGNCNUM "\\pgncnum"
+#define OOO_STRING_SVTOOLS_RTF_PGNDBNUMK "\\pgndbnumk"
+#define OOO_STRING_SVTOOLS_RTF_PGNDBNUMT "\\pgndbnumt"
+#define OOO_STRING_SVTOOLS_RTF_PGNGANADA "\\pgnganada"
+#define OOO_STRING_SVTOOLS_RTF_PGNGBNUM "\\pgngbnum"
+#define OOO_STRING_SVTOOLS_RTF_PGNGBNUMD "\\pgngbnumd"
+#define OOO_STRING_SVTOOLS_RTF_PGNGBNUMK "\\pgngbnumk"
+#define OOO_STRING_SVTOOLS_RTF_PGNGBNUML "\\pgngbnuml"
+#define OOO_STRING_SVTOOLS_RTF_PGNZODIAC "\\pgnzodiac"
+#define OOO_STRING_SVTOOLS_RTF_PGNZODIACD "\\pgnzodiacd"
+#define OOO_STRING_SVTOOLS_RTF_PGNZODIACL "\\pgnzodiacl"
+#define OOO_STRING_SVTOOLS_RTF_PICPROP "\\picprop"
+#define OOO_STRING_SVTOOLS_RTF_PNAIUEO "\\pnaiueo"
+#define OOO_STRING_SVTOOLS_RTF_PNAIUEOD "\\pnaiueod"
+#define OOO_STRING_SVTOOLS_RTF_PNCHOSUNG "\\pnchosung"
+#define OOO_STRING_SVTOOLS_RTF_PNDBNUMD "\\pndbnumd"
+#define OOO_STRING_SVTOOLS_RTF_PNDBNUMK "\\pndbnumk"
+#define OOO_STRING_SVTOOLS_RTF_PNDBNUML "\\pndbnuml"
+#define OOO_STRING_SVTOOLS_RTF_PNDBNUMT "\\pndbnumt"
+#define OOO_STRING_SVTOOLS_RTF_PNGANADA "\\pnganada"
+#define OOO_STRING_SVTOOLS_RTF_PNGBLIP "\\pngblip"
+#define OOO_STRING_SVTOOLS_RTF_PNGBNUM "\\pngbnum"
+#define OOO_STRING_SVTOOLS_RTF_PNGBNUMD "\\pngbnumd"
+#define OOO_STRING_SVTOOLS_RTF_PNGBNUMK "\\pngbnumk"
+#define OOO_STRING_SVTOOLS_RTF_PNGBNUML "\\pngbnuml"
+#define OOO_STRING_SVTOOLS_RTF_PNRAUTH "\\pnrauth"
+#define OOO_STRING_SVTOOLS_RTF_PNRDATE "\\pnrdate"
+#define OOO_STRING_SVTOOLS_RTF_PNRNFC "\\pnrnfc"
+#define OOO_STRING_SVTOOLS_RTF_PNRNOT "\\pnrnot"
+#define OOO_STRING_SVTOOLS_RTF_PNRPNBR "\\pnrpnbr"
+#define OOO_STRING_SVTOOLS_RTF_PNRRGB "\\pnrrgb"
+#define OOO_STRING_SVTOOLS_RTF_PNRSTART "\\pnrstart"
+#define OOO_STRING_SVTOOLS_RTF_PNRSTOP "\\pnrstop"
+#define OOO_STRING_SVTOOLS_RTF_PNRXST "\\pnrxst"
+#define OOO_STRING_SVTOOLS_RTF_PNZODIAC "\\pnzodiac"
+#define OOO_STRING_SVTOOLS_RTF_PNZODIACD "\\pnzodiacd"
+#define OOO_STRING_SVTOOLS_RTF_PNZODIACL "\\pnzodiacl"
+#define OOO_STRING_SVTOOLS_RTF_LFOLEVEL "\\lfolevel"
+#define OOO_STRING_SVTOOLS_RTF_POSYIN "\\posyin"
+#define OOO_STRING_SVTOOLS_RTF_POSYOUT "\\posyout"
+#define OOO_STRING_SVTOOLS_RTF_PRIVATE "\\private"
+#define OOO_STRING_SVTOOLS_RTF_PROPNAME "\\propname"
+#define OOO_STRING_SVTOOLS_RTF_PROPTYPE "\\proptype"
+#define OOO_STRING_SVTOOLS_RTF_REVAUTHDEL "\\revauthdel"
+#define OOO_STRING_SVTOOLS_RTF_REVDTTMDEL "\\revdttmdel"
+#define OOO_STRING_SVTOOLS_RTF_SAUTOUPD "\\sautoupd"
+#define OOO_STRING_SVTOOLS_RTF_SECTDEFAULTCL "\\sectdefaultcl"
+#define OOO_STRING_SVTOOLS_RTF_SECTEXPAND "\\sectexpand"
+#define OOO_STRING_SVTOOLS_RTF_SECTLINEGRID "\\sectlinegrid"
+#define OOO_STRING_SVTOOLS_RTF_SECTSPECIFYCL "\\sectspecifycl"
+#define OOO_STRING_SVTOOLS_RTF_SECTSPECIFYL "\\sectspecifyl"
+#define OOO_STRING_SVTOOLS_RTF_SHIDDEN "\\shidden"
+#define OOO_STRING_SVTOOLS_RTF_SHPBOTTOM "\\shpbottom"
+#define OOO_STRING_SVTOOLS_RTF_SHPBXCOLUMN "\\shpbxcolumn"
+#define OOO_STRING_SVTOOLS_RTF_SHPBXMARGIN "\\shpbxmargin"
+#define OOO_STRING_SVTOOLS_RTF_SHPBXPAGE "\\shpbxpage"
+#define OOO_STRING_SVTOOLS_RTF_SHPBYMARGIN "\\shpbymargin"
+#define OOO_STRING_SVTOOLS_RTF_SHPBYPAGE "\\shpbypage"
+#define OOO_STRING_SVTOOLS_RTF_SHPBYPARA "\\shpbypara"
+#define OOO_STRING_SVTOOLS_RTF_SHPFBLWTXT "\\shpfblwtxt"
+#define OOO_STRING_SVTOOLS_RTF_SHPFHDR "\\shpfhdr"
+#define OOO_STRING_SVTOOLS_RTF_SHPGRP "\\shpgrp"
+#define OOO_STRING_SVTOOLS_RTF_SHPLEFT "\\shpleft"
+#define OOO_STRING_SVTOOLS_RTF_SHPLID "\\shplid"
+#define OOO_STRING_SVTOOLS_RTF_SHPLOCKANCHOR "\\shplockanchor"
+#define OOO_STRING_SVTOOLS_RTF_SHPPICT "\\shppict"
+#define OOO_STRING_SVTOOLS_RTF_SHPRIGHT "\\shpright"
+#define OOO_STRING_SVTOOLS_RTF_SHPRSLT "\\shprslt"
+#define OOO_STRING_SVTOOLS_RTF_SHPTOP "\\shptop"
+#define OOO_STRING_SVTOOLS_RTF_SHPTXT "\\shptxt"
+#define OOO_STRING_SVTOOLS_RTF_SHPWRK "\\shpwrk"
+#define OOO_STRING_SVTOOLS_RTF_SHPWR "\\shpwr"
+#define OOO_STRING_SVTOOLS_RTF_SHPZ "\\shpz"
+#define OOO_STRING_SVTOOLS_RTF_SPRSBSP "\\sprsbsp"
+#define OOO_STRING_SVTOOLS_RTF_SPRSLNSP "\\sprslnsp"
+#define OOO_STRING_SVTOOLS_RTF_SPRSTSM "\\sprstsm"
+#define OOO_STRING_SVTOOLS_RTF_STATICVAL "\\staticval"
+#define OOO_STRING_SVTOOLS_RTF_STEXTFLOW "\\stextflow"
+#define OOO_STRING_SVTOOLS_RTF_STRIKED "\\striked"
+#define OOO_STRING_SVTOOLS_RTF_SUBFONTBYSIZE "\\subfontbysize"
+#define OOO_STRING_SVTOOLS_RTF_TCELLD "\\tcelld"
+#define OOO_STRING_SVTOOLS_RTF_TIME "\\time"
+#define OOO_STRING_SVTOOLS_RTF_TRUNCATEFONTHEIGHT "\\truncatefontheight"
+#define OOO_STRING_SVTOOLS_RTF_UC "\\uc"
+#define OOO_STRING_SVTOOLS_RTF_UD "\\ud"
+#define OOO_STRING_SVTOOLS_RTF_ULDASH "\\uldash"
+#define OOO_STRING_SVTOOLS_RTF_ULDASHD "\\uldashd"
+#define OOO_STRING_SVTOOLS_RTF_ULDASHDD "\\uldashdd"
+#define OOO_STRING_SVTOOLS_RTF_ULTH "\\ulth"
+#define OOO_STRING_SVTOOLS_RTF_ULWAVE "\\ulwave"
+#define OOO_STRING_SVTOOLS_RTF_ULC "\\ulc"
+#define OOO_STRING_SVTOOLS_RTF_U "\\u"
+#define OOO_STRING_SVTOOLS_RTF_UPR "\\upr"
+#define OOO_STRING_SVTOOLS_RTF_USERPROPS "\\userprops"
+#define OOO_STRING_SVTOOLS_RTF_VIEWKIND "\\viewkind"
+#define OOO_STRING_SVTOOLS_RTF_VIEWSCALE "\\viewscale"
+#define OOO_STRING_SVTOOLS_RTF_VIEWZK "\\viewzk"
+#define OOO_STRING_SVTOOLS_RTF_WIDCTLPAR "\\widctlpar"
+#define OOO_STRING_SVTOOLS_RTF_WINDOWCAPTION "\\windowcaption"
+#define OOO_STRING_SVTOOLS_RTF_WPEQN "\\wpeqn"
+#define OOO_STRING_SVTOOLS_RTF_WPJST "\\wpjst"
+#define OOO_STRING_SVTOOLS_RTF_WPSP "\\wpsp"
+#define OOO_STRING_SVTOOLS_RTF_YXE "\\yxe"
+#define OOO_STRING_SVTOOLS_RTF_FRMTXLRTB "\\frmtxlrtb"
+#define OOO_STRING_SVTOOLS_RTF_FRMTXTBRL "\\frmtxtbrl"
+#define OOO_STRING_SVTOOLS_RTF_FRMTXBTLR "\\frmtxbtlr"
+#define OOO_STRING_SVTOOLS_RTF_FRMTXLRTBV "\\frmtxlrtbv"
+#define OOO_STRING_SVTOOLS_RTF_FRMTXTBRLV "\\frmtxtbrlv"
// MS-2000 Tokens
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULTHD, "\\ulthd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULTHDASH, "\\ulthdash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULLDASH, "\\ulldash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULTHLDASH, "\\ulthldash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULTHDASHD, "\\ulthdashd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULTHDASHDD, "\\ulthdashdd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULHWAVE, "\\ulhwave" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ULULDBWAVE, "\\ululdbwave" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LOCH, "\\loch" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HICH, "\\hich" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DBCH, "\\dbch" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_LANGFE, "\\langfe" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ADEFLANG, "\\adeflang" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ADEFF, "\\adeff" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ACCNONE, "\\accnone" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ACCDOT, "\\accdot" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ACCCOMMA, "\\acccomma" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TWOINONE, "\\twoinone" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HORZVERT, "\\horzvert" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FAHANG, "\\fahang" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FAVAR, "\\favar" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FACENTER, "\\facenter" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FAROMAN, "\\faroman" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FAFIXED, "\\fafixed" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOCWRAP, "\\nocwrap" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_NOOVERFLOW,"\\nooverflow" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_ASPALPHA, "\\aspalpha" );
+#define OOO_STRING_SVTOOLS_RTF_ULTHD "\\ulthd"
+#define OOO_STRING_SVTOOLS_RTF_ULTHDASH "\\ulthdash"
+#define OOO_STRING_SVTOOLS_RTF_ULLDASH "\\ulldash"
+#define OOO_STRING_SVTOOLS_RTF_ULTHLDASH "\\ulthldash"
+#define OOO_STRING_SVTOOLS_RTF_ULTHDASHD "\\ulthdashd"
+#define OOO_STRING_SVTOOLS_RTF_ULTHDASHDD "\\ulthdashdd"
+#define OOO_STRING_SVTOOLS_RTF_ULHWAVE "\\ulhwave"
+#define OOO_STRING_SVTOOLS_RTF_ULULDBWAVE "\\ululdbwave"
+#define OOO_STRING_SVTOOLS_RTF_LOCH "\\loch"
+#define OOO_STRING_SVTOOLS_RTF_HICH "\\hich"
+#define OOO_STRING_SVTOOLS_RTF_DBCH "\\dbch"
+#define OOO_STRING_SVTOOLS_RTF_LANGFE "\\langfe"
+#define OOO_STRING_SVTOOLS_RTF_ADEFLANG "\\adeflang"
+#define OOO_STRING_SVTOOLS_RTF_ADEFF "\\adeff"
+#define OOO_STRING_SVTOOLS_RTF_ACCNONE "\\accnone"
+#define OOO_STRING_SVTOOLS_RTF_ACCDOT "\\accdot"
+#define OOO_STRING_SVTOOLS_RTF_ACCCOMMA "\\acccomma"
+#define OOO_STRING_SVTOOLS_RTF_TWOINONE "\\twoinone"
+#define OOO_STRING_SVTOOLS_RTF_HORZVERT "\\horzvert"
+#define OOO_STRING_SVTOOLS_RTF_FAHANG "\\fahang"
+#define OOO_STRING_SVTOOLS_RTF_FAVAR "\\favar"
+#define OOO_STRING_SVTOOLS_RTF_FACENTER "\\facenter"
+#define OOO_STRING_SVTOOLS_RTF_FAROMAN "\\faroman"
+#define OOO_STRING_SVTOOLS_RTF_FAFIXED "\\fafixed"
+#define OOO_STRING_SVTOOLS_RTF_NOCWRAP "\\nocwrap"
+#define OOO_STRING_SVTOOLS_RTF_NOOVERFLOW "\\nooverflow"
+#define OOO_STRING_SVTOOLS_RTF_ASPALPHA "\\aspalpha"
// SWG spezifische Attribute
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GRFALIGNV, "\\grfalignv" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GRFALIGNH, "\\grfalignh" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_GRFMIRROR, "\\grfmirror" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERYB, "\\headeryb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERXL, "\\headerxl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERXR, "\\headerxr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERYT, "\\footeryt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERXL, "\\footerxl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERXR, "\\footerxr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HEADERYH, "\\headeryh" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FOOTERYH, "\\footeryh" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BALANCEDCOLUMN, "\\swcolmnblnc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_UPDNPROP, "\\updnprop" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PRTDATA, "\\prtdata" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BKMKKEY, "\\bkmkkey" );
+#define OOO_STRING_SVTOOLS_RTF_GRFALIGNV "\\grfalignv"
+#define OOO_STRING_SVTOOLS_RTF_GRFALIGNH "\\grfalignh"
+#define OOO_STRING_SVTOOLS_RTF_GRFMIRROR "\\grfmirror"
+#define OOO_STRING_SVTOOLS_RTF_HEADERYB "\\headeryb"
+#define OOO_STRING_SVTOOLS_RTF_HEADERXL "\\headerxl"
+#define OOO_STRING_SVTOOLS_RTF_HEADERXR "\\headerxr"
+#define OOO_STRING_SVTOOLS_RTF_FOOTERYT "\\footeryt"
+#define OOO_STRING_SVTOOLS_RTF_FOOTERXL "\\footerxl"
+#define OOO_STRING_SVTOOLS_RTF_FOOTERXR "\\footerxr"
+#define OOO_STRING_SVTOOLS_RTF_HEADERYH "\\headeryh"
+#define OOO_STRING_SVTOOLS_RTF_FOOTERYH "\\footeryh"
+#define OOO_STRING_SVTOOLS_RTF_BALANCEDCOLUMN "\\swcolmnblnc"
+#define OOO_STRING_SVTOOLS_RTF_UPDNPROP "\\updnprop"
+#define OOO_STRING_SVTOOLS_RTF_PRTDATA "\\prtdata"
+#define OOO_STRING_SVTOOLS_RTF_BKMKKEY "\\bkmkkey"
// Attribute fuer die freifliegenden Rahmen
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYPRINT, "\\flyprint" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYOPAQUE, "\\flyopaque" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYPRTCTD, "\\flyprtctd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYMAINCNT, "\\flymaincnt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYVERT, "\\flyvert" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYHORZ, "\\flyhorz" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRMTXTL, "\\dfrmtxtl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRMTXTR, "\\dfrmtxtr" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRMTXTU, "\\dfrmtxtu" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_DFRMTXTW, "\\dfrmtxtw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYANCHOR, "\\flyanchor" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYCNTNT, "\\flycntnt" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYCOLUMN, "\\flycolumn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYPAGE, "\\flypage" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_FLYINPARA, "\\flyinpara" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDBOX, "\\brdbox" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDLNCOL, "\\brdlncol" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDLNIN, "\\brdlnin" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDLNOUT, "\\brdlnout" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_BRDLNDIST, "\\brdlndist" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHADOW, "\\shadow" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHDWDIST, "\\shdwdist" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHDWSTYLE, "\\shdwstyle" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHDWCOL, "\\shdwcol" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHDWFCOL, "\\shdwfcol" );
-
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGDSCTBL, "\\pgdsctbl" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGDSC, "\\pgdsc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGDSCUSE, "\\pgdscuse" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGDSCNXT, "\\pgdscnxt" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHEN, "\\hyphen" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHLEAD, "\\hyphlead" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHTRAIL, "\\hyphtrail" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_HYPHMAX, "\\hyphmax" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_TLSWG, "\\tlswg" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGBRK, "\\pgbrk" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_PGDSCNO, "\\pgdscno" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SOUTLVL, "\\soutlvl" );
-
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHP, "\\shp" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SN, "\\sn" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SV, "\\sv" );
-/*
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPLEFT, "\\shpleft" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPTOP, "\\shptop" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPBOTTOM, "\\shpbottom" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_SHPRIGHT, "\\shpright" );
-*/
+#define OOO_STRING_SVTOOLS_RTF_FLYPRINT "\\flyprint"
+#define OOO_STRING_SVTOOLS_RTF_FLYOPAQUE "\\flyopaque"
+#define OOO_STRING_SVTOOLS_RTF_FLYPRTCTD "\\flyprtctd"
+#define OOO_STRING_SVTOOLS_RTF_FLYMAINCNT "\\flymaincnt"
+#define OOO_STRING_SVTOOLS_RTF_FLYVERT "\\flyvert"
+#define OOO_STRING_SVTOOLS_RTF_FLYHORZ "\\flyhorz"
+#define OOO_STRING_SVTOOLS_RTF_DFRMTXTL "\\dfrmtxtl"
+#define OOO_STRING_SVTOOLS_RTF_DFRMTXTR "\\dfrmtxtr"
+#define OOO_STRING_SVTOOLS_RTF_DFRMTXTU "\\dfrmtxtu"
+#define OOO_STRING_SVTOOLS_RTF_DFRMTXTW "\\dfrmtxtw"
+#define OOO_STRING_SVTOOLS_RTF_FLYANCHOR "\\flyanchor"
+#define OOO_STRING_SVTOOLS_RTF_FLYCNTNT "\\flycntnt"
+#define OOO_STRING_SVTOOLS_RTF_FLYCOLUMN "\\flycolumn"
+#define OOO_STRING_SVTOOLS_RTF_FLYPAGE "\\flypage"
+#define OOO_STRING_SVTOOLS_RTF_FLYINPARA "\\flyinpara"
+#define OOO_STRING_SVTOOLS_RTF_BRDBOX "\\brdbox"
+#define OOO_STRING_SVTOOLS_RTF_BRDLNCOL "\\brdlncol"
+#define OOO_STRING_SVTOOLS_RTF_BRDLNIN "\\brdlnin"
+#define OOO_STRING_SVTOOLS_RTF_BRDLNOUT "\\brdlnout"
+#define OOO_STRING_SVTOOLS_RTF_BRDLNDIST "\\brdlndist"
+#define OOO_STRING_SVTOOLS_RTF_SHADOW "\\shadow"
+#define OOO_STRING_SVTOOLS_RTF_SHDWDIST "\\shdwdist"
+#define OOO_STRING_SVTOOLS_RTF_SHDWSTYLE "\\shdwstyle"
+#define OOO_STRING_SVTOOLS_RTF_SHDWCOL "\\shdwcol"
+#define OOO_STRING_SVTOOLS_RTF_SHDWFCOL "\\shdwfcol"
+#define OOO_STRING_SVTOOLS_RTF_PGDSCTBL "\\pgdsctbl"
+#define OOO_STRING_SVTOOLS_RTF_PGDSC "\\pgdsc"
+#define OOO_STRING_SVTOOLS_RTF_PGDSCUSE "\\pgdscuse"
+#define OOO_STRING_SVTOOLS_RTF_PGDSCNXT "\\pgdscnxt"
+#define OOO_STRING_SVTOOLS_RTF_HYPHEN "\\hyphen"
+#define OOO_STRING_SVTOOLS_RTF_HYPHLEAD "\\hyphlead"
+#define OOO_STRING_SVTOOLS_RTF_HYPHTRAIL "\\hyphtrail"
+#define OOO_STRING_SVTOOLS_RTF_HYPHMAX "\\hyphmax"
+#define OOO_STRING_SVTOOLS_RTF_TLSWG "\\tlswg"
+#define OOO_STRING_SVTOOLS_RTF_PGBRK "\\pgbrk"
+#define OOO_STRING_SVTOOLS_RTF_PGDSCNO "\\pgdscno"
+#define OOO_STRING_SVTOOLS_RTF_SOUTLVL "\\soutlvl"
+#define OOO_STRING_SVTOOLS_RTF_SHP "\\shp"
+#define OOO_STRING_SVTOOLS_RTF_SN "\\sn"
+#define OOO_STRING_SVTOOLS_RTF_SV "\\sv"
// Support for overline attributes
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OL, "\\ol" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLD, "\\old" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLDB, "\\oldb" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLNONE, "\\olnone" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLW, "\\olw" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLDASH, "\\oldash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLDASHD, "\\oldashd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLDASHDD, "\\oldashdd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLTH, "\\olth" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLWAVE, "\\olwave" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLC, "\\olc" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLTHD, "\\olthd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLTHDASH, "\\olthdash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLLDASH, "\\olldash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLTHLDASH, "\\olthldash" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLTHDASHD, "\\olthdashd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLTHDASHDD, "\\olthdashdd" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLHWAVE, "\\olhwave" );
-extern SVT_DLLPUBLIC sal_Char const SVTOOLS_CONSTASCII_DECL( sRTF_OLOLDBWAVE, "\\ololdbwave" );
+#define OOO_STRING_SVTOOLS_RTF_OL "\\ol"
+#define OOO_STRING_SVTOOLS_RTF_OLD "\\old"
+#define OOO_STRING_SVTOOLS_RTF_OLDB "\\oldb"
+#define OOO_STRING_SVTOOLS_RTF_OLNONE "\\olnone"
+#define OOO_STRING_SVTOOLS_RTF_OLW "\\olw"
+#define OOO_STRING_SVTOOLS_RTF_OLDASH "\\oldash"
+#define OOO_STRING_SVTOOLS_RTF_OLDASHD "\\oldashd"
+#define OOO_STRING_SVTOOLS_RTF_OLDASHDD "\\oldashdd"
+#define OOO_STRING_SVTOOLS_RTF_OLTH "\\olth"
+#define OOO_STRING_SVTOOLS_RTF_OLWAVE "\\olwave"
+#define OOO_STRING_SVTOOLS_RTF_OLC "\\olc"
+#define OOO_STRING_SVTOOLS_RTF_OLTHD "\\olthd"
+#define OOO_STRING_SVTOOLS_RTF_OLTHDASH "\\olthdash"
+#define OOO_STRING_SVTOOLS_RTF_OLLDASH "\\olldash"
+#define OOO_STRING_SVTOOLS_RTF_OLTHLDASH "\\olthldash"
+#define OOO_STRING_SVTOOLS_RTF_OLTHDASHD "\\olthdashd"
+#define OOO_STRING_SVTOOLS_RTF_OLTHDASHDD "\\olthdashdd"
+#define OOO_STRING_SVTOOLS_RTF_OLHWAVE "\\olhwave"
+#define OOO_STRING_SVTOOLS_RTF_OLOLDBWAVE "\\ololdbwave"
#endif // _RTFKEYWD_HXX
diff --git a/svtools/source/svrtf/rtfout.cxx b/svtools/source/svrtf/rtfout.cxx
index ea800cc72d78..21dfefb14232 100644
--- a/svtools/source/svrtf/rtfout.cxx
+++ b/svtools/source/svrtf/rtfout.cxx
@@ -68,10 +68,10 @@ SvStream& RTFOutFuncs::Out_Char(SvStream& rStream, sal_Unicode c,
rStream << "\\_";
break;
case '\n':
- pStr = sRTF_LINE;
+ pStr = OOO_STRING_SVTOOLS_RTF_LINE;
break;
case '\t':
- pStr = sRTF_TAB;
+ pStr = OOO_STRING_SVTOOLS_RTF_TAB;
break;
default:
if(!bWriteHelpFile)
@@ -79,25 +79,25 @@ SvStream& RTFOutFuncs::Out_Char(SvStream& rStream, sal_Unicode c,
switch(c)
{
case 149:
- pStr = sRTF_BULLET;
+ pStr = OOO_STRING_SVTOOLS_RTF_BULLET;
break;
case 150:
- pStr = sRTF_ENDASH;
+ pStr = OOO_STRING_SVTOOLS_RTF_ENDASH;
break;
case 151:
- pStr = sRTF_EMDASH;
+ pStr = OOO_STRING_SVTOOLS_RTF_EMDASH;
break;
case 145:
- pStr = sRTF_LQUOTE;
+ pStr = OOO_STRING_SVTOOLS_RTF_LQUOTE;
break;
case 146:
- pStr = sRTF_RQUOTE;
+ pStr = OOO_STRING_SVTOOLS_RTF_RQUOTE;
break;
case 147:
- pStr = sRTF_LDBLQUOTE;
+ pStr = OOO_STRING_SVTOOLS_RTF_LDBLQUOTE;
break;
case 148:
- pStr = sRTF_RDBLQUOTE;
+ pStr = OOO_STRING_SVTOOLS_RTF_RDBLQUOTE;
break;
}
diff --git a/svtools/source/svrtf/svparser.cxx b/svtools/source/svrtf/svparser.cxx
index f58a5d11a3c6..c7444dd5cbcb 100644
--- a/svtools/source/svrtf/svparser.cxx
+++ b/svtools/source/svrtf/svparser.cxx
@@ -666,4 +666,64 @@ IMPL_STATIC_LINK( SvParser, NewDataRead, void*, EMPTYARG )
return 0;
}
+/*========================================================================
+ *
+ * SvKeyValueIterator.
+ *
+ *======================================================================*/
+SV_DECL_PTRARR_DEL(SvKeyValueList_Impl, SvKeyValue*, 0, 4)
+SV_IMPL_PTRARR(SvKeyValueList_Impl, SvKeyValue*);
+
+/*
+ * SvKeyValueIterator.
+ */
+SvKeyValueIterator::SvKeyValueIterator (void)
+ : m_pList (new SvKeyValueList_Impl),
+ m_nPos (0)
+{
+}
+
+/*
+ * ~SvKeyValueIterator.
+ */
+SvKeyValueIterator::~SvKeyValueIterator (void)
+{
+ delete m_pList;
+}
+
+/*
+ * GetFirst.
+ */
+BOOL SvKeyValueIterator::GetFirst (SvKeyValue &rKeyVal)
+{
+ m_nPos = m_pList->Count();
+ return GetNext (rKeyVal);
+}
+
+/*
+ * GetNext.
+ */
+BOOL SvKeyValueIterator::GetNext (SvKeyValue &rKeyVal)
+{
+ if (m_nPos > 0)
+ {
+ rKeyVal = *m_pList->GetObject(--m_nPos);
+ return TRUE;
+ }
+ else
+ {
+ // Nothing to do.
+ return FALSE;
+ }
+}
+
+/*
+ * Append.
+ */
+void SvKeyValueIterator::Append (const SvKeyValue &rKeyVal)
+{
+ SvKeyValue *pKeyVal = new SvKeyValue (rKeyVal);
+ m_pList->C40_INSERT(SvKeyValue, pKeyVal, m_pList->Count());
+}
+
/* vi:set tabstop=4 shiftwidth=4 expandtab: */
diff --git a/svtools/source/undo/makefile.mk b/svtools/source/undo/makefile.mk
index 92a406971de3..b277fa3c906f 100644
--- a/svtools/source/undo/makefile.mk
+++ b/svtools/source/undo/makefile.mk
@@ -33,6 +33,7 @@ PRJ=..$/..
PRJNAME=svtools
TARGET=undo
+ENABLE_EXCEPTIONS=TRUE
# --- Settings -----------------------------------------------------
diff --git a/svtools/source/undo/undo.cxx b/svtools/source/undo/undo.cxx
index 76ed0a0a8e09..2f733d4f03b3 100644
--- a/svtools/source/undo/undo.cxx
+++ b/svtools/source/undo/undo.cxx
@@ -31,11 +31,14 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
+#include <com/sun/star/uno/Exception.hpp>
#include <tools/debug.hxx>
#include <svtools/undo.hxx>
+using ::com::sun::star::uno::Exception;
+
// STATIC DATA -----------------------------------------------------------
DBG_NAME(SfxUndoAction)
@@ -153,6 +156,7 @@ BOOL SfxUndoAction::CanRepeat(SfxRepeatTarget&) const
SfxUndoManager::SfxUndoManager( USHORT nMaxUndoActionCount )
: pFatherUndoArray(0)
+ , mbUndoEnabled( true )
{
pUndoArray=new SfxUndoArray(nMaxUndoActionCount);
pActUndoArray=pUndoArray;
@@ -167,6 +171,12 @@ SfxUndoManager::~SfxUndoManager()
delete pUndoArray;
}
+//------------------------------------------------------------------------
+
+void SfxUndoManager::EnableUndo( bool bEnable )
+{
+ mbUndoEnabled = bEnable;
+}
//------------------------------------------------------------------------
@@ -252,41 +262,43 @@ void SfxUndoManager::ClearRedo()
void SfxUndoManager::AddUndoAction( SfxUndoAction *pAction, BOOL bTryMerge )
{
- // Redo-Actions loeschen
- for ( USHORT nPos = pActUndoArray->aUndoActions.Count();
- nPos > pActUndoArray->nCurUndoAction; --nPos )
- delete pActUndoArray->aUndoActions[nPos-1];
-
- pActUndoArray->aUndoActions.Remove(
- pActUndoArray->nCurUndoAction,
- pActUndoArray->aUndoActions.Count() - pActUndoArray->nCurUndoAction );
-
- if ( pActUndoArray->nMaxUndoActions )
+ if( mbUndoEnabled )
{
- SfxUndoAction *pTmpAction = pActUndoArray->nCurUndoAction ?
- pActUndoArray->aUndoActions[pActUndoArray->nCurUndoAction-1] : 0;
+ // Redo-Actions loeschen
+ for ( USHORT nPos = pActUndoArray->aUndoActions.Count();
+ nPos > pActUndoArray->nCurUndoAction; --nPos )
+ delete pActUndoArray->aUndoActions[nPos-1];
+
+ pActUndoArray->aUndoActions.Remove(
+ pActUndoArray->nCurUndoAction,
+ pActUndoArray->aUndoActions.Count() - pActUndoArray->nCurUndoAction );
- if ( !bTryMerge || !(pTmpAction && pTmpAction->Merge(pAction)) )
+ if ( pActUndoArray->nMaxUndoActions )
{
- // auf Max-Anzahl anpassen
- if( pActUndoArray == pUndoArray )
- while( pActUndoArray->aUndoActions.Count() >=
- pActUndoArray->nMaxUndoActions &&
- !pActUndoArray->aUndoActions[0]->IsLinked() )
- {
- delete pActUndoArray->aUndoActions[0];
- pActUndoArray->aUndoActions.Remove(0);
- --pActUndoArray->nCurUndoAction;
- }
+ SfxUndoAction *pTmpAction = pActUndoArray->nCurUndoAction ?
+ pActUndoArray->aUndoActions[pActUndoArray->nCurUndoAction-1] : 0;
- // neue Action anh"angen
- const SfxUndoAction* pTemp = pAction;
- pActUndoArray->aUndoActions.Insert(
- pTemp, pActUndoArray->nCurUndoAction++ );
- return;
+ if ( !bTryMerge || !(pTmpAction && pTmpAction->Merge(pAction)) )
+ {
+ // auf Max-Anzahl anpassen
+ if( pActUndoArray == pUndoArray )
+ while( pActUndoArray->aUndoActions.Count() >=
+ pActUndoArray->nMaxUndoActions &&
+ !pActUndoArray->aUndoActions[0]->IsLinked() )
+ {
+ delete pActUndoArray->aUndoActions[0];
+ pActUndoArray->aUndoActions.Remove(0);
+ --pActUndoArray->nCurUndoAction;
+ }
+
+ // neue Action anh"angen
+ const SfxUndoAction* pTemp = pAction;
+ pActUndoArray->aUndoActions.Insert(
+ pTemp, pActUndoArray->nCurUndoAction++ );
+ return;
+ }
}
}
-
delete pAction;
}
@@ -368,20 +380,46 @@ void SfxUndoManager::RemoveLastUndoAction()
BOOL SfxUndoManager::Undo( USHORT )
{
- DBG_ASSERT( pActUndoArray == pUndoArray, "svtools::SfxUndoManager::Undo(), LeaveListAction() not yet called!" );
- if ( pActUndoArray->nCurUndoAction )
+ bool bUndoWasEnabled = mbUndoEnabled;
+ mbUndoEnabled = false;
+
+ BOOL bRet = FALSE;
+
+ try
{
- Undo( *pActUndoArray->aUndoActions[ --pActUndoArray->nCurUndoAction ] );
- return TRUE;
+ DBG_ASSERT( pActUndoArray == pUndoArray, "svtools::SfxUndoManager::Undo(), LeaveListAction() not yet called!" );
+ if ( pActUndoArray->nCurUndoAction )
+ {
+ Undo( *pActUndoArray->aUndoActions[ --pActUndoArray->nCurUndoAction ] );
+ bRet = TRUE;
+ }
}
- return FALSE;
+ catch( Exception& e )
+ {
+ mbUndoEnabled = bUndoWasEnabled;
+ throw e;
+ }
+ mbUndoEnabled = bUndoWasEnabled;
+ return bRet;
}
//------------------------------------------------------------------------
void SfxUndoManager::Undo( SfxUndoAction &rAction )
{
- rAction.Undo();
+ bool bUndoWasEnabled = mbUndoEnabled;
+ mbUndoEnabled = false;
+ try
+ {
+ rAction.Undo();
+ }
+ catch( Exception& e )
+ {
+ mbUndoEnabled = bUndoWasEnabled;
+ throw e;
+ }
+
+ mbUndoEnabled = bUndoWasEnabled;
}
//------------------------------------------------------------------------
@@ -409,20 +447,47 @@ USHORT SfxUndoManager::GetRedoActionId( USHORT nNo ) const
BOOL SfxUndoManager::Redo( USHORT )
{
- if ( pActUndoArray->aUndoActions.Count() > pActUndoArray->nCurUndoAction )
+ bool bUndoWasEnabled = mbUndoEnabled;
+ mbUndoEnabled = false;
+
+ BOOL bRet = FALSE;
+
+ try
{
- Redo( *pActUndoArray->aUndoActions[pActUndoArray->nCurUndoAction++] );
- return TRUE;
+ if ( pActUndoArray->aUndoActions.Count() > pActUndoArray->nCurUndoAction )
+ {
+ Redo( *pActUndoArray->aUndoActions[pActUndoArray->nCurUndoAction++] );
+ bRet = TRUE;
+ }
+ }
+ catch( Exception& e )
+ {
+ mbUndoEnabled = bUndoWasEnabled;
+ throw e;
}
- return FALSE;
+ mbUndoEnabled = bUndoWasEnabled;
+ return bRet;
}
//------------------------------------------------------------------------
void SfxUndoManager::Redo( SfxUndoAction &rAction )
{
- rAction.Redo();
+ bool bUndoWasEnabled = mbUndoEnabled;
+ mbUndoEnabled = false;
+
+ try
+ {
+ rAction.Redo();
+ }
+ catch( Exception& e )
+ {
+ mbUndoEnabled = bUndoWasEnabled;
+ throw e;
+ }
+
+ mbUndoEnabled = bUndoWasEnabled;
}
//------------------------------------------------------------------------
@@ -492,6 +557,9 @@ void SfxUndoManager::EnterListAction(
*/
{
+ if( !mbUndoEnabled )
+ return;
+
if ( !pUndoArray->nMaxUndoActions )
return;
@@ -511,6 +579,9 @@ void SfxUndoManager::LeaveListAction()
Verlaesst die aktuelle ListAction und geht eine Ebene nach oben.
*/
{
+ if ( !mbUndoEnabled )
+ return;
+
if ( !pUndoArray->nMaxUndoActions )
return;
@@ -745,3 +816,4 @@ USHORT SfxLinkUndoAction::GetId() const
}
+
diff --git a/svtools/source/uno/contextmenuhelper.cxx b/svtools/source/uno/contextmenuhelper.cxx
index 3c6e8f23e710..be7738adaf14 100644
--- a/svtools/source/uno/contextmenuhelper.cxx
+++ b/svtools/source/uno/contextmenuhelper.cxx
@@ -610,7 +610,7 @@ ContextMenuHelper::completeMenuProperties(
// Retrieve some settings necessary to display complete context
// menu correctly.
const StyleSettings& rSettings = Application::GetSettings().GetStyleSettings();
- bool bShowMenuImages( SvtMenuOptions().IsMenuIconsEnabled() );
+ bool bShowMenuImages( rSettings.GetUseImagesInMenus() );
bool bIsHiContrast( rSettings.GetMenuColor().IsDark() );
if ( pMenu )
diff --git a/svtools/source/uno/unoevent.cxx b/svtools/source/uno/unoevent.cxx
index 14321ecdd84c..19d40c17ce5c 100644
--- a/svtools/source/uno/unoevent.cxx
+++ b/svtools/source/uno/unoevent.cxx
@@ -492,7 +492,7 @@ SvDetachedEventDescriptor::~SvDetachedEventDescriptor()
delete aMacros[i];
}
- delete aMacros;
+ delete [] aMacros;
}
sal_Int16 SvDetachedEventDescriptor::getIndex(const sal_uInt16 nID) const
diff --git a/svtools/source/uno/unoiface.cxx b/svtools/source/uno/unoiface.cxx
index 07cae571b2ae..91a6de4c404d 100644
--- a/svtools/source/uno/unoiface.cxx
+++ b/svtools/source/uno/unoiface.cxx
@@ -83,6 +83,8 @@ SAL_DLLPUBLIC_EXPORT Window* CreateWindow( VCLXWindow** ppNewComp, const ::com::
if ( pParent )
{
pWindow = new MultiLineEdit( pParent, nWinBits|WB_IGNORETAB);
+ static_cast< MultiLineEdit* >( pWindow )->DisableSelectionOnFocus();
+ // #i89821# / 2008-12-17 / frank.schoenheit@sun.com
*ppNewComp = new VCLXMultiLineEdit;
}
else
diff --git a/svtools/uno/makefile.mk b/svtools/uno/makefile.mk
index 8f61c7100508..b572242f1d85 100644
--- a/svtools/uno/makefile.mk
+++ b/svtools/uno/makefile.mk
@@ -60,13 +60,11 @@ SHL1LIBS= \
SHL1STDLIBS=\
$(SVTOOLLIB) \
- $(TKLIB) \
$(VCLLIB) \
$(SVLLIB) \
$(UNOTOOLSLIB) \
$(TOOLSLIB) \
$(COMPHELPERLIB) \
- $(VOSLIB) \
$(CPPUHELPERLIB) \
$(CPPULIB) \
$(SALLIB)
diff --git a/svtools/util/makefile.mk b/svtools/util/makefile.mk
index fffd9692e5dd..d40195609115 100644
--- a/svtools/util/makefile.mk
+++ b/svtools/util/makefile.mk
@@ -235,10 +235,6 @@ APP2STDLIBS+= -lsvl$(DLLPOSTFIX)
APP2STDLIBS+= $(VCLLIB) \
$(TOOLSLIB) \
$(VOSLIB) \
- $(TKLIB) $(SOTLIB) $(UNOTOOLSLIB) $(I18NISOLANGLIB) $(I18NUTILLIB) \
- $(UCBHELPERLIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(CPPULIB) $(ICUUCLIB) \
- $(JVMFWKLIB) $(BASEGFXLIB) $(ICUDATALIB) $(JVMACCESSLIB) \
- $(SALHELPERLIB) $(ICULELIB) \
$(SALLIB)
# --- Targets ------------------------------------------------------
diff --git a/toolkit/doc/layout/README b/toolkit/doc/layout/README
index 1e3737f90a77..d7ced3891273 100644
--- a/toolkit/doc/layout/README
+++ b/toolkit/doc/layout/README
@@ -2,19 +2,15 @@ Layout engine for OpenOffice.org - Work in Progress
Simple dialogs have been ported now: zoom and wordcount.
-Code lives in "layout" CWS.
+New code lives in "layoutdialogs" CWS or ooo-build trunk.
-* Ceckout layout cws.
+* Checkout layoutdialogs cws.
* Configure using --enable-layout.
-* dmake all
+* [d]make all
-* dmake install DESTDIR=$(pwd)/ooo-layout/
-
-* Source refresh in workben/layout, do something like
-
- cd toolkit/workben/layout && . ./refresh --inst .../ooo-layout/
+* [d]make install DESTDIR=$(pwd)/ooo-layout/
Integration into OOo:
@@ -24,3 +20,5 @@ Integration into OOo:
./soffice.bin
Start a [Writer] document and choose View/Zoom or Extra/Word count.
+
+* Also See workben/layout/README. \ No newline at end of file
diff --git a/toolkit/doc/layout/TODO b/toolkit/doc/layout/TODO
index df6b04a99790..fdffa7fad5aa 100644
--- a/toolkit/doc/layout/TODO
+++ b/toolkit/doc/layout/TODO
@@ -4,6 +4,11 @@
** Move everything & development into new layout-dialogs CWS
** cleanups
+*** Add XRadioButton2 and layout::VCLXRadioButton with
+ {get,set}RadioGroup. Remove import.cxx RadioGroups::RadioGroup,
+ VCLXRadioButton::getFirstActionListener () and [actionListener
+ juggling in] layout::RadioButton_impl::SetClickHdl() and
+ EnableRadioCheck() layout::RadioButton_impl::Check.
*** layout/import.hxx: what's this generator stuff?
#if 0
// generator
@@ -87,7 +92,6 @@ but keep using yes/no on Windows, eg?
*** remove -DTEST_LAYOUT=1 from util/makefile.mk?
** fixes
-*** mpRadioGroup HACK --> use radiogroup property
*** missing properties
'title' -> 'Set Zoom'
Missing prop Title
@@ -102,12 +106,18 @@ fHorAlign = fVerAlign = 0.5; --> float const [CENTER?] = 0.5;
** include full translations
*** zoom
-grep zoom.src svx/source/dialog/localize.sdf | awk -F'\t' '{printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "layout", "janneke\\vc\\layout-cws\\toolkit\\workben\\layout\\zoom.xml", $3, "layout", $6 "_label", "", "", $8, "0", $10, $11, $12, "", $14, $15}' | sed -e 's/FL_\(ZOOM\)_label/FL_\1_text/' -e 's/\t_label/\tRID_SVXDLG_ZOOM_title/'
-**** done, except for View Layout update: no strings in localize.sdf yet,
- must redo.
+grep zoom.src svx/source/dialog/localize.sdf | awk -F'\t' '{printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "layout", "janneke\\vc\\layout-cws\\toolkit\\workben\\layout\\zoom.xml", $3, "layout", $6 "_label", "", "", $8, "0", $10, $11, $12, "", $14, $15}' | sed -e 's/\(\(FL\|STR\)_[^\t]*\)_label/\1_text/' -e 's/\t_label/\tRID_SVXDLG_ZOOM_title/'
*** wordcount
grep wordcountdialog.src sw/source/ui/dialog/localize.sdf | awk -F'\t' '{printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "layout", "janneke\\vc\\layout-cws\\toolkit\\workben\\layout\\workben.xml", $3, "layout", $6 "_label", "", "", $8, "0", $10, $11, $12, "", $14, $15}' | sed -e 's/FL_\([A-Z]*\)_label/FL_\1_text/' -e 's/\t_label/\tDLG_WORDCOUNT_title/'s
-
+*** sortdlg
+grep sortdlg.src ../../../sc/source/ui/src/localize.sdf | awk -F'\t' '{printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "layout", "janneke\\vc\\layout-cws\\toolkit\\workben\\layout\\sort-options.xml", $3, "layout", $6 "_label", "", "", $8, "0", $10, $11, $12, "", $14, $15}' | sed -e 's/\(\(FL\|STR\)_[^\t]*\)_label/\1_text/' -e 's/\t_label/\tRID_SCDLG_SORT_title/' | grep -E ' (nl|de|en-US) ' > localize-str.sdf
+grep sortdlg.src sc/source/ui/src/localize.sdf | awk -F'\t' '{printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "layout", "sc\\uiconfig\\layout\\sort-options.xml", $3, "layout", $6 "_label", "", "", $8, "0", $10, $11, $12, "", $14, $15}' | sed -e 's/\(\(FL\|STR\)_[^\t]*\)_label/\1_text/' -e 's/\t_label/\tRID_SCDLG_SORT_title/' > sc/uiconfig/layout/localize-sort-options.sdf
+*** insert-sheet
+grep instbdlg.src sc/source/ui/miscdlgs/localize.sdf | awk -F'\t' '{printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "layout", "sc\\uiconfig\\layout\\insert-sheet.xml", $3, "layout", $6 "_label", "", "", $8, "0", $10, $11, $12, "", $14, $15}' | sed -e 's/\(\(FL\|STR\)_[^\t]*\)_label/\1_text/' -e 's/\t_label/\tRID_SCDLG_INSERT_TABLE_title/' > sc/uiconfig/layout/localize-insert-sheet.sdf
+*** move-copy-sheet
+grep -E 'miscdlgs.src.*(FT_DEST|FT_INSERT|STR_NEWDOC|RID_SCDLG_MOVETAB|BTN_COPY)' sc/source/ui/src/localize.sdf | awk -F'\t' '{printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "layout", "sc\\uiconfig\\layout\\move-copy-sheet.xml", $3, "layout", $6 "_label", "", "", $8, "0", $10, $11, $12, "", $14, $15}' | sed -e 's/\(\(FL\|STR\)_[^\t]*\)_label/\1_text/' -e 's/\t_label/\tRID_SCDLG_MOVETAB_title/' > sc/uiconfig/layout/localize-move-copy-sheet.sdf
+*** find-and-replace
+grep srchdlg.src svx/source/dialog/localize.sdf | awk -F'\t' '{printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "layout", "svx\\uiconfig\\layout\\find-and-replace.xml", $3, "layout", $6 "_label", "", "", $8, "0", $10, $11, $12, "", $14, $15}' | sed -e 's/\(\(FL\|STR\)_[^\t]*\)_label/\1_text/' -e 's/\t_label/\tRID_SVXDLG_SEARCH_title/' > svx/uiconfig/layout/localize-find-and-replace.sdf
* i18n
+ forget java property files nonsense
diff --git a/toolkit/inc/layout/layout-post.hxx b/toolkit/inc/layout/layout-post.hxx
index fb1a809a6156..d5597bb0073b 100644
--- a/toolkit/inc/layout/layout-post.hxx
+++ b/toolkit/inc/layout/layout-post.hxx
@@ -34,39 +34,72 @@
#if ENABLE_LAYOUT
+/* Allow re-inclusion for cxx file. */
+#undef _LAYOUT_PRE_HXX
+
+
#undef AdvancedButton
+#undef ApplyButton
#undef Box
#undef Button
#undef CancelButton
#undef CheckBox
+#undef ComboBox
#undef Container
+#undef Control
+#undef Dialog
+#undef Edit
+#undef ErrorBox
#undef FixedImage
#undef FixedInfo
#undef FixedLine
#undef FixedText
-#undef HelpButton
#undef HBox
+#undef HelpButton
+#undef IgnoreButton
+#undef ImageButton
+#undef InfoBox
+#undef ListBox
+#undef MessBox
+#undef MessageBox
#undef MetricField
+#undef MetricFormatter
#undef MoreButton
#undef MultiLineEdit
+#undef MultiListBox
+#undef NoButton
+#undef NumericField
+#undef NumericFormatter
#undef OKButton
+#undef Plugin
#undef ProgressBar
#undef PushButton
+#undef QueryBox
#undef RadioButton
-#undef SfxModalDialog
+#undef ResetButton
+#undef RetryButton
+#undef SfxTabPage
+#undef SfxTabDialog
+#undef SpinField
+#undef TabDialog
+#undef TabControl
+#undef TabPage
#undef Table
#undef VBox
+#undef WarningBox
+#undef YesButton
-#undef Window
-
-#undef SVX_RES
-#define SVX_RES(i) ResId(i,DIALOG_MGR())
+#undef SvxFontListBox
+#undef SvxLanguageBox
-#undef SW_RES
-#define SW_RES(i) ResId(i,SWDIALOG_MGR())
+#undef ModalDialog
+#undef ModelessDialog
+#undef ScExpandedFixedText
+#undef SfxDialog
+#undef SfxModalDialog
+#undef SfxModelessDialog
-/* Allow re-inclusion for cxx file. */
-#undef _LAYOUT_PRE_HXX
+#undef Window
#endif /* ENABLE_LAYOUT */
diff --git a/toolkit/inc/layout/layout-pre.hxx b/toolkit/inc/layout/layout-pre.hxx
index 747c8b13db45..d8a1e5d9665c 100644
--- a/toolkit/inc/layout/layout-pre.hxx
+++ b/toolkit/inc/layout/layout-pre.hxx
@@ -34,83 +34,78 @@
#if ENABLE_LAYOUT
-//#if !LAYOUT
-//#define LAYOUT 1
-//#endif
-//#define LAYOUT_NS layout
-
-// TWBN, but find that SfxModalDialog and FixedLine are already defined, eg compiling
-// dlgfact.cxx
-//typedef layout::Dialog SfxModalDialog;
-//typedef layout::FixedLine FixedLine;
+///* Allow re-inclusion for next hxx file. */
+#undef _LAYOUT_POST_HXX
#define AdvancedButton layout::AdvancedButton
+#define ApplyButton layout::ApplyButton
#define Box layout::Box
#define Button layout::Button
#define CancelButton layout::CancelButton
#define CheckBox layout::CheckBox
+#define ComboBox layout::ComboBox
#define Container layout::Container
+#define Control layout::Control
+#define Dialog layout::Dialog
+#define Edit layout::Edit
+#define ErrorBox layout::ErrorBox
#define FixedImage layout::FixedImage
#define FixedInfo layout::FixedInfo
#define FixedLine layout::FixedLine
#define FixedText layout::FixedText
#define HBox layout::HBox
#define HelpButton layout::HelpButton
+#define IgnoreButton layout::IgnoreButton
+#define ImageButton layout::ImageButton
+#define InfoBox layout::InfoBox
+#define LocalizedString layout::LocalizedString
+#define ListBox layout::ListBox
+#define MessBox layout::MessBox
+#define MessageBox layout::MessageBox
#define MetricField layout::MetricField
+#define MetricFormatter layout::MetricFormatter
#define MoreButton layout::MoreButton
#define MultiLineEdit layout::MultiLineEdit
+#define MultiListBox layout::MultiListBox
+#define NoButton layout::NoButton
+#define NumericField layout::NumericField
+#define NumericFormatter layout::NumericFormatter
#define OKButton layout::OKButton
+#define Plugin layout::Plugin
#define ProgressBar layout::ProgressBar
#define PushButton layout::PushButton
+#define QueryBox layout::QueryBox
#define RadioButton layout::RadioButton
-#define SfxModalDialog layout::Dialog
+#define ResetButton layout::ResetButton
+#define RetryButton layout::RetryButton
+#define SfxTabDialog layout::SfxTabDialog
+#define SfxTabPage layout::SfxTabPage
+#if ENABLE_LAYOUT
+#define SvxFontListBox layout::SvxFontListBox
+#define SvxLanguageBox layout::SvxLanguageBox
+#endif
+#define SpinField layout::SpinField
+#define TabControl layout::TabControl
+#define TabPage layout::TabPage
#define Table layout::Table
#define VBox layout::VBox
+#define WarningBox layout::WarningBox
+#define YesButton layout::YesButton
-/* FIXME: why are we defaulting to layout::Window?
- /home/janneke/vc/ooo-build/build/hack/sw/source/ui/dialog/wordcountdialog.cxx:87: error: no matching function for call to 'layout::Dialog::Dialog(Window*&, const char [14], const char [7])'
- ../../../../layout/inc/layout/layout.hxx:304: note: candidates are: layout::Dialog::Dialog(layout::Window*, const char*, const char*, sal_uInt32)
- ../../../../layout/inc/layout/layout.hxx:300: note: layout::Dialog::Dialog(const layout::Dialog&)
-*/
+#define ModalDialog Dialog
+#define ModelessDialog Dialog
+#define ScExpandedFixedText FixedText
+#define SfxDialog Dialog
+#define SfxModalDialog Dialog
+#define SfxModelessDialog Dialog
+#define TabDialog Dialog
#define Window ::Window
-#undef SVX_RES
-#define SVX_RES(x) #x
-#undef SW_RES
-#define SW_RES(x) #x
-
-/* Hmm. This hack makes zoom.cxx, wordcountdialog.cxx diffs smaller
- * but is not scalable. */
-#ifdef _LAYOUT_POST_HXX
-
-#ifdef _SVX_RECOVER_CXX
-#undef SfxModalDialog
-// 3rd parameter must match ID in <modaldialog> "RID_SVXDLG_RECOVER", localize.sdf
-#define SfxModalDialog( pParent, SVX_RES_RID ) layout::Dialog( pParent, "recover.xml", "RID_SVXDLG_RECOVER" )
-//#define _SVX_RECOVER_HRC
-#endif /* _SVX_RECOVER_CXX */
-
-#ifdef SW_WORDCOUNTDIALOG_HXX
-#undef SfxModalDialog
-// 3rd parameter must match ID in <modaldialog> "DLG_WORDCOUNT", localize.sdf
-#define SfxModalDialog( pParent, SW_RES_RID ) layout::Dialog( pParent, "wordcount.xml", "DLG_WORDCOUNT" )
-#define SW_WORDCOUNTDIALOG_HRC
-#endif /* SW_WORDCOUNTDIALOG_HXX */
-
-#ifdef _SVX_ZOOM_CXX
-#undef SfxModalDialog
-// 3rd parameter must match ID in <modaldialog> "RID_SVXDLG_ZOOM", localize.sdf
-#define SfxModalDialog( pParent, SVX_RES_RID ) layout::Dialog( pParent, "zoom.xml", "RID_SVXDLG_ZOOM" )
-#define _SVX_ZOOM_HRC
-#endif /* _SVX_ZOOM_CXX */
-
-#endif /* _LAYOUT_POST_HXX */
-
-#else /* !ENABLE_LAYOUT */
+#else
-#define LAYOUT_PRE_POST
+#define LocalizedString String
-#endif /* !ENABLE_LAYOUT */
+#endif /* ENABLE_LAYOUT */
#endif /* _LAYOUT_PRE_HXX */
diff --git a/toolkit/inc/layout/layout.hxx b/toolkit/inc/layout/layout.hxx
index 2f3ff0df461f..19179507b294 100644
--- a/toolkit/inc/layout/layout.hxx
+++ b/toolkit/inc/layout/layout.hxx
@@ -32,21 +32,54 @@
#ifndef _LAYOUT_HXX
#define _LAYOUT_HXX
-#include <com/sun/star/uno/XInterface.hpp>
#include <com/sun/star/awt/XLayoutContainer.hpp>
+#include <com/sun/star/uno/XInterface.hpp>
#include <com/sun/star/util/Color.hpp>
+#include <i18npool/lang.h>
+#include <toolkit/dllapi.h>
+#include <tools/gen.hxx>
#include <tools/link.hxx>
#include <tools/string.hxx>
-
-// FIXME: eventually wrap FieldUnit
+#include <vcl/bitmap.hxx>
+#include <vcl/combobox.h>
#include <vcl/fldunit.hxx>
-// FIXME: eventually wrap this too ...
+#include <vcl/lstbox.h>
+#include <vcl/smartid.hxx>
#include <vcl/wintypes.hxx>
-#include <toolkit/dllapi.h>
-
-class Window;
+class Button;
+class ComboBox;
+class Color;
+class Control;
+class Dialog;
+class Edit;
+class Font;
class Image;
+class ListBox;
+class MapMode;
+class MultiListBox;
+class NotifyEvent;
+class Pointer;
+class PushButton;
+class RadioButton;
+class ResId;
+struct SfxChildWinInfo;
+//class SvxFontListBox;
+//class SvxLanguageBox;
+class TabControl;
+class TabPage;
+class VCLXRadioButton;
+class VCLXWindow;
+class Window;
+
+namespace layoutimpl
+{
+class VCLXTabControl;
+}
+
+class VCLXTabControl;
+
+namespace com { namespace sun { namespace star { namespace awt { class XWindow; } } } }
namespace layout
{
@@ -60,8 +93,8 @@ class TOOLKIT_DLLPUBLIC Context
ContextImpl *pImpl;
public:
Context( char const* pPath );
- ~Context();
- PeerHandle GetPeerHandle( char const* pId, sal_uInt32 nId = 0 ) const;
+ virtual ~Context();
+ PeerHandle GetPeerHandle( char const* id, sal_uInt32 nId = 0 ) const;
void setToplevel( PeerHandle xToplevel );
PeerHandle getToplevel();
PeerHandle getRoot();
@@ -74,36 +107,95 @@ public:
par( pImpl ) {} \
char const* GetUnoName() const; \
public: \
- t( Context *pCtx, char const* pId, sal_uInt32 nId = 0 ); \
- t( Window *pParent, WinBits nStyle = defaultWinBit )
+ t( Context *context, char const* id, sal_uInt32 nId = 0 ); \
+ t( Window *parent, WinBits nStyle = defaultWinBit ); \
+ t (Window *parent, ResId const &res)
#define DECL_GET_IMPL(t) \
inline t##Impl &getImpl() const
+#define DECL_GET_WINDOW( cls ) ::cls* Get##cls() const
+#define IMPL_GET_WINDOW( cls ) ::cls* cls::Get##cls() const { return dynamic_cast< ::cls*>( GetWindow() ); }
+
+#define DECL_GET_VCLXWINDOW( cls ) ::VCLX##cls* GetVCLX##cls() const
+#define IMPL_GET_VCLXWINDOW( cls ) ::VCLX##cls* cls::Get##VCLX##cls() const { return dynamic_cast< ::VCLX##cls*>( GetVCLXWindow() ); }
+
+#define DECL_GET_LAYOUT_VCLXWINDOW( cls ) ::layoutimpl::VCLX##cls* GetVCLX##cls() const
+#define IMPL_GET_LAYOUT_VCLXWINDOW( cls ) ::layoutimpl::VCLX##cls* cls::Get##VCLX##cls() const { return dynamic_cast< ::layoutimpl::VCLX##cls*>( GetVCLXWindow() ); }
+
// follows the VCL inheritance hierarchy ...
class WindowImpl;
class TOOLKIT_DLLPUBLIC Window
{
protected:
+ friend class WindowImpl;
WindowImpl *mpImpl;
- static PeerHandle CreatePeer( Window *pParent, WinBits nStyle,
+ static PeerHandle CreatePeer( Window *parent, WinBits nStyle,
char const* pName);
+
+ virtual void setRes (ResId const& res);
+
public:
- PeerHandle GetPeer();
- Context *getContext();
DECL_GET_IMPL( Window );
explicit Window( WindowImpl *pImpl );
virtual ~Window();
+ PeerHandle GetPeer() const;
+ Context *getContext();
+
void Enable( bool bEnable = true );
inline void Disable() { Enable( false ); }
- void Show( BOOL bVisible = TRUE );
- inline void Hide() { Show( FALSE ); }
+ void Show( bool bVisible = true );
+ inline void Hide() { Show( false ); }
void GrabFocus();
void FreeResource() {}
+ void SetParent( ::Window *parent );
+ virtual void ParentSet (Window *window);
+ void SetParent( Window *parent );
+
+ css::uno::Reference<css::awt::XWindow> GetRef() const;
+ VCLXWindow* GetVCLXWindow() const;
+ ::Window* GetWindow() const;
+ ::Window* GetParent() const;
+
+ void SetPointer( Pointer const& pointer );
+ Pointer const& GetPointer() const;
WinBits GetStyle();
- void SetStyle( WinBits nStyle );
+ void SetText( rtl::OUString const& str );
+ String GetText() const;
+ void SetStyle( WinBits style );
+ void SetUpdateMode( bool mode );
+ void SetHelpId( sal_uIntPtr id );
+ sal_uIntPtr GetHelpId() const;
+ void SetSmartHelpId( SmartId const&, SmartIdUpdateMode mode=SMART_SET_SMART );
+ SmartId GetSmartHelpId() const;
+ void EnterWait ();
+ void LeaveWait ();
+ bool IsWait () const;
+ //void Enable (bool enable=true, bool child=true);
+ //void Disable (bool child=true);
+ bool IsEnabled () const;
+ void EnableInput (bool enable=true, bool child=true);
+ bool IsInputEnabled () const;
+
+ bool IsVisible () const;
+ bool HasChildPathFocus (bool systemWindow=false) const;
+ void SetPosPixel (Point const&);
+ Point GetPosPixel () const;
+ void SetSizePixel (Size const&);
+ Size GetSizePixel () const;
+ void SetPosSizePixel (Point const&, Size const&);
+ sal_Int32 GetCtrlTextWidth (rtl::OUString const& str) const;
+ sal_Int32 GetTextHeight () const;
+
+ Size LogicToPixel( Size const& size ) const;
+ Size LogicToPixel( Size const& size, MapMode const& mapMode ) const;
+
+ bool HasFocus () const;
+ Font& GetFont () const;
+ void SetFont (Font const& font);
+ virtual void Invalidate (sal_uInt8 flags=0);
};
class ControlImpl;
@@ -111,34 +203,39 @@ class TOOLKIT_DLLPUBLIC Control : public Window
{
DECL_GET_IMPL( Control );
DECL_CONSTRUCTORS( Control, Window, 0 );
+
public:
-// void SetText( String const& rStr ); - can't do this here ...
+ ~Control ();
+ void SetGetFocusHdl (Link const& link);
+ Link& GetGetFocusHdl ();
+ void SetLoseFocusHdl (Link const& link);
+ Link& GetLoseFocusHdl ();
};
class FixedLineImpl;
class TOOLKIT_DLLPUBLIC FixedLine : public Control
{
- friend class FixedLineImpl;
DECL_GET_IMPL( FixedLine );
DECL_CONSTRUCTORS( FixedLine, Control, WB_HORZ );
+
public:
- bool IsEnabled();
+ bool IsEnabled() const;
};
class FixedTextImpl;
class TOOLKIT_DLLPUBLIC FixedText : public Control
{
- friend class FixedTextImpl;
DECL_GET_IMPL( FixedText );
DECL_CONSTRUCTORS( FixedText, Control, 0 );
+
public:
- void SetText( String const& rStr );
+ ~FixedText ();
+ void SetText( rtl::OUString const& rStr );
};
class FixedImageImpl;
class TOOLKIT_DLLPUBLIC FixedImage : public Control
{
- friend class FixedImageImpl;
DECL_GET_IMPL( FixedImage );
DECL_CONSTRUCTORS( FixedImage, Control, 0 );
public:
@@ -148,7 +245,6 @@ public:
class FixedInfoImpl;
class TOOLKIT_DLLPUBLIC FixedInfo : public FixedText
{
- friend class FixedInfoImpl;
DECL_GET_IMPL( FixedInfo );
DECL_CONSTRUCTORS( FixedInfo, FixedText, 0 );
};
@@ -166,16 +262,21 @@ public:
class ButtonImpl;
class TOOLKIT_DLLPUBLIC Button : public Control
{
- friend class ButtonImpl;
DECL_GET_IMPL( Button );
DECL_CONSTRUCTORS( Button, Control, 0 );
+ DECL_GET_WINDOW (Button);
+
public:
- void SetText( String const& rStr );
- BOOL SetModeImage( const Image& rImage );
+ ~Button ();
+ static String GetStandardText (sal_uInt16 button_type);
+ void SetText( rtl::OUString const& rStr );
+ bool SetModeImage (Image const& image);
+ bool SetModeImage (::Image const& image, BmpColorMode mode=BMP_COLOR_NORMAL);
void SetImageAlign( ImageAlign eAlign );
void SetClickHdl( Link const& rLink );
virtual void Click() /* pure virtual? */;
+ Link& GetClickHdl ();
};
class PushButtonImpl;
@@ -183,9 +284,12 @@ class TOOLKIT_DLLPUBLIC PushButton : public Button
{
DECL_GET_IMPL( PushButton );
DECL_CONSTRUCTORS( PushButton, Button, 0 );
+ DECL_GET_WINDOW (PushButton);
+
public:
- void Check( BOOL bCheck = TRUE );
- BOOL IsChecked() const;
+ ~PushButton ();
+ void Check( bool bCheck=true );
+ bool IsChecked() const;
void Toggle();
void SetToggleHdl( Link const& rLink );
@@ -227,6 +331,10 @@ class TOOLKIT_DLLPUBLIC HelpButton : public PushButton
{
DECL_CONSTRUCTORS( HelpButton, PushButton, 0 );
};
+class TOOLKIT_DLLPUBLIC ImageButton : public PushButton
+{
+ DECL_CONSTRUCTORS( ImageButton, PushButton, 0 );
+};
class AdvancedButtonImpl;
class TOOLKIT_DLLPUBLIC AdvancedButton : public PushButton
@@ -238,6 +346,12 @@ class TOOLKIT_DLLPUBLIC AdvancedButton : public PushButton
void AddSimple( Window* w );
void RemoveAdvanced( Window* w );
void RemoveSimple( Window* w );
+
+ void SetAdvancedText (rtl::OUString const& text);
+ void SetSimpleText (rtl::OUString const& text);
+ rtl::OUString GetAdvancedText () const;
+ rtl::OUString GetSimpleText () const;
+ void SetDelta (int);
};
class MoreButtonImpl;
@@ -247,6 +361,11 @@ class TOOLKIT_DLLPUBLIC MoreButton : public AdvancedButton
DECL_GET_IMPL( MoreButton );
void AddWindow( Window* w );
void RemoveWindow( Window* w );
+
+ void SetMoreText (rtl::OUString const& text);
+ void SetLessText (rtl::OUString const& text);
+ rtl::OUString GetMoreText () const;
+ rtl::OUString GetLessText () const;
};
class RadioButtonImpl;
@@ -254,9 +373,12 @@ class TOOLKIT_DLLPUBLIC RadioButton : public Button
{
DECL_GET_IMPL( RadioButton );
DECL_CONSTRUCTORS( RadioButton, Button, 0 );
+ DECL_GET_WINDOW( RadioButton );
+ DECL_GET_VCLXWINDOW( RadioButton );
public:
- void Check( BOOL bCheck = TRUE );
- BOOL IsChecked() const;
+ ~RadioButton ();
+ void Check( bool bCheck=true );
+ bool IsChecked() const;
void Toggle();
void SetToggleHdl( Link const& rLink );
@@ -267,9 +389,11 @@ class TOOLKIT_DLLPUBLIC CheckBox : public Button
{
DECL_GET_IMPL( CheckBox );
DECL_CONSTRUCTORS( CheckBox, Button, 0 );
+
public:
- void Check( BOOL bCheck = TRUE );
- BOOL IsChecked() const;
+ ~CheckBox ();
+ void Check( bool bCheck=true );
+ bool IsChecked() const;
void Toggle();
void SetToggleHdl( Link const& rLink );
@@ -280,10 +404,14 @@ class TOOLKIT_DLLPUBLIC Edit : public Control
{
DECL_GET_IMPL( Edit );
DECL_CONSTRUCTORS( Edit, Control, WB_BORDER );
+ DECL_GET_WINDOW (Edit);
+
public:
- void SetText( XubString const& rStr ) const;
- XubString GetText() const;
+ ~Edit ();
+ void SetText( rtl::OUString const& rStr );
+ String GetText() const;
void SetModifyHdl( Link const& rLink );
+ void SetSelection( Selection const& rSelection );
};
class MultiLineEditImpl;
@@ -305,8 +433,7 @@ class TOOLKIT_DLLPUBLIC FormatterBase
{
protected:
FormatterBaseImpl *mpFormatImpl;
- FormatterBase( FormatterBaseImpl *pFormatImpl )
- : mpFormatImpl( pFormatImpl ) {}
+ FormatterBase( FormatterBaseImpl *pFormatImpl );
};
class NumericFormatterImpl;
@@ -331,8 +458,8 @@ class TOOLKIT_DLLPUBLIC NumericField : public SpinField, public NumericFormatter
{
DECL_GET_IMPL( NumericField );
public:
- NumericField( Context *pCtx, char const* pId, sal_uInt32 nId = 0 );
- NumericField( Window *pParent, WinBits nStyle );
+ NumericField( Context *context, char const* id, sal_uInt32 nId=0 );
+ NumericField( Window *parent, WinBits nStyle );
};
class MetricFormatterImpl;
@@ -343,12 +470,12 @@ class TOOLKIT_DLLPUBLIC MetricFormatter : public FormatterBase
explicit MetricFormatter( FormatterBaseImpl *pImpl );
MetricFormatterImpl &getFormatImpl() const;
public:
- void SetMin( sal_Int64 nNewMin, FieldUnit nUnit = FUNIT_NONE );
- void SetMax( sal_Int64 nNewMax, FieldUnit nUnit = FUNIT_NONE );
- void SetFirst( sal_Int64 nNewFirst, FieldUnit nUnit = FUNIT_NONE );
- void SetLast( sal_Int64 nNewLast, FieldUnit nUnit = FUNIT_NONE );
- void SetValue( sal_Int64 nNewValue, FieldUnit nUnit = FUNIT_NONE );
- sal_Int64 GetValue( FieldUnit nUnit = FUNIT_NONE ) const;
+ void SetMin( sal_Int64 nNewMin, FieldUnit nUnit=FUNIT_NONE );
+ void SetMax( sal_Int64 nNewMax, FieldUnit nUnit=FUNIT_NONE );
+ void SetFirst( sal_Int64 nNewFirst, FieldUnit nUnit=FUNIT_NONE );
+ void SetLast( sal_Int64 nNewLast, FieldUnit nUnit=FUNIT_NONE );
+ void SetValue( sal_Int64 nNewValue, FieldUnit nUnit=FUNIT_NONE );
+ sal_Int64 GetValue( FieldUnit nUnit=FUNIT_NONE ) const;
void SetSpinSize( sal_Int64 nNewSize );
};
@@ -358,73 +485,209 @@ class TOOLKIT_DLLPUBLIC MetricField : public SpinField, public MetricFormatter
{
DECL_GET_IMPL( MetricField );
public:
- MetricField( Context *pCtx, char const* pId, sal_uInt32 nId = 0 );
- MetricField( Window *pParent, WinBits nStyle );
+ MetricField( Context *context, char const* id, sal_uInt32 nId=0 );
+ MetricField( Window *parent, WinBits nStyle );
};
-#define COMBOBOX_APPEND ((USHORT)0xFFFF)
-#define COMBOBOX_ENTRY_NOTFOUND ((USHORT)0xFFFF)
class ComboBoxImpl;
class TOOLKIT_DLLPUBLIC ComboBox : public Edit
{
DECL_GET_IMPL( ComboBox );
+ DECL_GET_WINDOW (ComboBox );
DECL_CONSTRUCTORS( ComboBox, Edit, 0 );
public:
- USHORT InsertEntry( XubString const& rStr, USHORT nPos = COMBOBOX_APPEND );
- void RemoveEntry( XubString const& rStr );
- void RemoveEntry( USHORT nPos );
+ ~ComboBox ();
+ sal_uInt16 InsertEntry( String const& rStr, sal_uInt16 nPos=COMBOBOX_APPEND );
+ void RemoveEntry( String const& rStr );
+ void RemoveEntry( sal_uInt16 nPos );
void Clear();
- USHORT GetEntryPos( XubString const& rStr ) const;
- XubString GetEntry( USHORT nPos ) const;
- USHORT GetEntryCount() const;
+ sal_uInt16 GetEntryPos( String const& rStr ) const;
+ String GetEntry( sal_uInt16 nPos ) const;
+ sal_uInt16 GetEntryCount() const;
void SetClickHdl( Link const& rLink );
void SetSelectHdl( Link const& rLink );
+ void EnableAutocomplete (bool enable, bool matchCase=false );
};
-#define LISTBOX_APPEND ((USHORT)0xFFFF)
-#define LISTBOX_ENTRY_NOTFOUND ((USHORT)0xFFFF)
class ListBoxImpl;
class TOOLKIT_DLLPUBLIC ListBox : public Control
{
DECL_GET_IMPL( ListBox );
DECL_CONSTRUCTORS( ListBox, Control, WB_BORDER );
+ DECL_GET_WINDOW (ListBox);
+
public:
- USHORT InsertEntry( XubString const& rStr, USHORT nPos = LISTBOX_APPEND );
+ ~ListBox ();
+ sal_uInt16 InsertEntry( String const& rStr, sal_uInt16 nPos=LISTBOX_APPEND );
- void RemoveEntry( XubString const& rStr );
- void RemoveEntry( USHORT nPos );
+ void RemoveEntry( String const& rStr );
+ void RemoveEntry( sal_uInt16 nPos );
void Clear();
- USHORT GetEntryPos( XubString const& rStr ) const;
- XubString GetEntry( USHORT nPos ) const;
- USHORT GetEntryCount() const;
+ sal_uInt16 GetEntryPos( String const& rStr ) const;
+ String GetEntry( sal_uInt16 nPos ) const;
+ sal_uInt16 GetEntryCount() const;
- void SelectEntry( XubString const& rStr, BOOL bSelect = TRUE );
- void SelectEntryPos( USHORT nPos, BOOL bSelect = TRUE );
+ void SelectEntry( String const& rStr, bool bSelect=true );
+ void SelectEntryPos( sal_uInt16 nPos, bool bSelect=true );
- USHORT GetSelectEntryCount() const;
- XubString GetSelectEntry( USHORT nSelIndex = 0 ) const;
- USHORT GetSelectEntryPos( USHORT nSelIndex = 0 ) const;
+ sal_uInt16 GetSelectEntryCount() const;
+ String GetSelectEntry( sal_uInt16 nSelIndex=0 ) const;
+ sal_uInt16 GetSelectEntryPos( sal_uInt16 nSelIndex=0 ) const;
- void SetSelectHdl( Link const& rLink );
- void SetClickHdl( Link const& rLink );
+ void SetSelectHdl (Link const& link);
+ Link& GetSelectHdl ();
+
+ void SetClickHdl (Link const& link);
+ Link& GetClickHdl ();
+
+ void SetDoubleClickHdl (Link const& link);
+ Link& GetDoubleClickHdl ();
+
+ void SetEntryData (sal_uInt16 pos, void* data);
+ void* GetEntryData (sal_uInt16 pos) const;
+
+ virtual void SetNoSelection ();
+};
+
+class MultiListBoxImpl;
+class TOOLKIT_DLLPUBLIC MultiListBox : public ListBox
+{
+ DECL_GET_IMPL( MultiListBox );
+ DECL_CONSTRUCTORS( MultiListBox, ListBox, 0 );
+ DECL_GET_WINDOW( MultiListBox );
};
class DialogImpl;
class TOOLKIT_DLLPUBLIC Dialog : public Context, public Window
{
- DECL_GET_IMPL( Dialog );
- void SetParent( Window *pParent );
- void SetParent( ::Window *pParent );
+ DECL_GET_WINDOW (Dialog);
+
+public:
+ DECL_GET_IMPL (Dialog);
+ Dialog( Window *parent, char const* xml_file, char const* id, sal_uInt32 nId=0 );
+ Dialog( ::Window *parent, char const* xml_file, char const* id, sal_uInt32 nId=0 );
+ ~Dialog ();
+ virtual short Execute();
+ void EndDialog( long nResult=0 );
+ void SetText( rtl::OUString const& rStr );
+ void SetTitle (rtl::OUString const& rStr );
+ bool Close ();
+ long Notify (NotifyEvent & event);
+
+ // Sxf*Dialog
+ bool bConstruct;
+ void Initialize (SfxChildWinInfo*);
+};
+
+#define DECL_MESSAGE_BOX_CTORS(Name)\
+ public:\
+ Name##Box (::Window *parent, char const* message,\
+ char const* yes=0, char const* no=0, sal_uIntPtr help_id=0,\
+ char const* xml_file="message-box.xml", char const* id="message-box");\
+ Name##Box (::Window *parent, rtl::OUString const& message,\
+ rtl::OUString yes=String (),\
+ rtl::OUString no=String (),\
+ sal_uIntPtr help_id=0,\
+ char const* xml_file="message-box.xml", char const* id="message-box");\
+ Name##Box (::Window *parent, WinBits, char const* message,\
+ char const* yes=0, char const* no=0, sal_uIntPtr help_id=0,\
+ char const* xml_file="message-box.xml", char const* id="message-box");\
+ Name##Box (::Window *parent, WinBits, rtl::OUString const& message,\
+ rtl::OUString yes=String (),\
+ rtl::OUString no=String (),\
+ sal_uIntPtr help_id=0,\
+ char const* xml_file="message-box.xml", char const* id="message-box")\
+
+class TOOLKIT_DLLPUBLIC MessageBox : public Dialog
+{
+ DECL_MESSAGE_BOX_CTORS(Message);
+
+protected:
+ FixedImage imageError;
+ FixedImage imageInfo;
+ FixedImage imageQuery;
+ FixedImage imageWarning;
+ FixedText messageText;
+ CancelButton cancelButton;
+ HelpButton helpButton;
+ IgnoreButton ignoreButton;
+ NoButton noButton;
+ RetryButton retryButton;
+ YesButton yesButton;
+
+ void bits_init (WinBits bits, rtl::OUString const& message,
+ rtl::OUString yes, rtl::OUString, sal_uIntPtr help_id);
+ void init (rtl::OUString const& message,
+ rtl::OUString const& yes, rtl::OUString const& no, sal_uIntPtr help_id);
+ void init (char const* message, char const* yes, char const* no, sal_uIntPtr help_id);
+};
+
+#define CLASS_MESSAGE_BOX(Name)\
+ class TOOLKIT_DLLPUBLIC Name##Box : public MessageBox\
+ {\
+ DECL_MESSAGE_BOX_CTORS (Name);\
+ }
+
+//CLASS_MESSAGE_BOX (Mess);
+typedef MessageBox MessBox;
+CLASS_MESSAGE_BOX (Error);
+CLASS_MESSAGE_BOX (Info);
+CLASS_MESSAGE_BOX (Query);
+CLASS_MESSAGE_BOX (Warning);
+
+#undef CLASS_MESSAGE_BOX
+
+#undef TAB_APPEND
+
+class TabControlImpl;
+class TOOLKIT_DLLPUBLIC TabControl : public Control
+{
+//#ifndef TAB_APPEND
+#define TAB_APPEND 0xFFFF
+//#endif /* !TAB_APPEND */
+
+ DECL_GET_IMPL (TabControl);
+ DECL_CONSTRUCTORS (TabControl, Control, 0);
+ DECL_GET_WINDOW (TabControl);
+ DECL_GET_LAYOUT_VCLXWINDOW (TabControl);
+
+public:
+ ~TabControl ();
+ void InsertPage (sal_uInt16 id, rtl::OUString const& title, sal_uInt16 pos=TAB_APPEND);
+ void RemovePage (sal_uInt16 id);
+ sal_uInt16 GetPageCount () const;
+ sal_uInt16 GetPageId (sal_uInt16 pos) const;
+ sal_uInt16 GetPagePos (sal_uInt16 id) const;
+ void SetCurPageId (sal_uInt16 id);
+ sal_uInt16 GetCurPageId () const;
+ void SetTabPage (sal_uInt16 id, ::TabPage* page);
+ ::TabPage* GetTabPage (sal_uInt16 id) const;
+ void SetActivatePageHdl (Link const& link);
+ Link& GetActivatePageHdl () const;
+ void SetDeactivatePageHdl (Link const& link);
+ Link& GetDeactivatePageHdl () const;
+ void SetTabPageSizePixel (Size const& size);
+ Size GetTabPageSizePixel () const;
+};
+
+class TabPageImpl;
+class TOOLKIT_DLLPUBLIC TabPage : public Context, public Window
+{
+ DECL_GET_IMPL( TabPage );
public:
- Dialog( Window *pOptParent, char const* pXMLPath, char const* pId, sal_uInt32 nId = 0 );
- Dialog( ::Window *pOptParent, char const* pXMLPath, char const* pId, sal_uInt32 nId = 0 );
- short Execute();
- void EndDialog( long nResult = 0 );
- void SetText( String const& rStr );
+ static ::Window* global_parent;
+ static TabControl* global_tabcontrol;
+
+ TabPage( Window *parent, char const* xml_file, char const* id, sal_uInt32 nId=0 );
+ TabPage( ::Window *parent, char const* xml_file, char const* id, sal_uInt32 nId=0 );
+ ~TabPage();
+ DECL_GET_WINDOW( TabPage );
+ virtual void ActivatePage();
+ virtual void DeactivatePage();
};
class ProgressBarImpl;
@@ -450,7 +713,7 @@ protected:
css::uno::Reference< css::awt::XLayoutContainer > mxContainer;
Container( rtl::OUString const& rName, sal_Int32 nBorder );
public:
- Container( Context const* pCtx, char const* pId );
+ Container( Context const* context, char const* id );
void Add( Window *pWindow );
void Add( Container *pContainer );
@@ -474,11 +737,11 @@ class TOOLKIT_DLLPUBLIC Table : public Container
protected:
Table( sal_Int32 nBorder, sal_Int32 nColumns );
public:
- Table( Context const* pCtx, char const* pId );
+ Table( Context const* context, char const* id );
void Add( Window *pWindow, bool bXExpand, bool bYExpand,
- sal_Int32 nXSpan = 1, sal_Int32 nYSpan = 1 );
+ sal_Int32 nXSpan=1, sal_Int32 nYSpan=1 );
void Add( Container *pContainer, bool bXExpand, bool bYExpand,
- sal_Int32 nXSpan = 1, sal_Int32 nYSpan = 1 );
+ sal_Int32 nXSpan=1, sal_Int32 nYSpan=1 );
private:
void setProps( css::uno::Reference< css::awt::XLayoutConstrains > xChild,
@@ -490,7 +753,7 @@ class TOOLKIT_DLLPUBLIC Box : public Container
protected:
Box( rtl::OUString const& rName, sal_Int32 nBorder, bool bHomogeneous );
public:
- Box( Context const* pCtx, char const* pId );
+ Box( Context const* context, char const* id );
void Add( Window *pWindow, bool bExpand, bool bFill, sal_Int32 nPadding);
void Add( Container *pContainer, bool bExpand, bool bFill, sal_Int32 nPadding);
@@ -502,16 +765,69 @@ private:
class TOOLKIT_DLLPUBLIC HBox : public Box
{
public:
- HBox( Context const* pCtx, char const* pId );
+ HBox( Context const* context, char const* id );
HBox( sal_Int32 nBorder, bool bHomogeneous );
};
class TOOLKIT_DLLPUBLIC VBox : public Box
{
public:
- VBox( Context const* pCtx, char const* pId );
+ VBox( Context const* context, char const* id );
VBox( sal_Int32 nBorder, bool bHomogeneous );
};
+class PluginImpl;
+class TOOLKIT_DLLPUBLIC Plugin : public Control
+{
+ DECL_GET_IMPL( Plugin );
+ //DECL_CONSTRUCTORS( Plugin, Control, 0 );
+public:
+ ::Control *mpPlugin;
+ Plugin( Context *context, char const* id, ::Control *plugin );
+};
+
+class LocalizedStringImpl;
+class TOOLKIT_DLLPUBLIC LocalizedString : public Window
+{
+ DECL_GET_IMPL( LocalizedString );
+
+public:
+ LocalizedString( Context *context, char const* id );
+
+ rtl::OUString operator= (rtl::OUString const&);
+ rtl::OUString operator+= (sal_Unicode );
+ rtl::OUString operator+= (rtl::OUString const&);
+
+ operator rtl::OUString ();
+ operator rtl::OUString const& ();
+ operator String();
+ String getString ();
+ rtl::OUString getOUString ();
+ String GetToken (USHORT i, sal_Char c);
+};
+
+class InPlugImpl;
+class TOOLKIT_DLLPUBLIC InPlug : public Context, public Window
+{
+ DECL_GET_IMPL (InPlug);
+
+public:
+ InPlug ( Window *parent, char const* xml_file, char const* id, sal_uInt32 nId=0);
+ InPlug ( ::Window *parent, char const* xml_file, char const* id, sal_uInt32 nId=0);
+
+ void ParentSet (Window *window);
+};
+
} // end namespace layout
+#if ENABLE_LAYOUT
+#define LAYOUT_NS layout::
+#define LAYOUT_DIALOG_PARENT\
+ VCLXWindow::GetImplementation( uno::Reference <awt::XWindow> ( GetPeer(), uno::UNO_QUERY ) )->GetWindow()
+#define LAYOUT_THIS_WINDOW( this ) this->GetWindow ()
+#else /* !ENABLE_LAYOUT */
+#define LAYOUT_NS
+#define LAYOUT_DIALOG_PARENT this
+#define LAYOUT_THIS_WINDOW( this ) this
+#endif /* !ENABLE_LAYOUT */
+
#endif /* _LAYOUT_HXX */
diff --git a/toolkit/inc/toolkit/awt/vclxwindows.hxx b/toolkit/inc/toolkit/awt/vclxwindows.hxx
index d131a0d5199a..3e61a9e9aa87 100644
--- a/toolkit/inc/toolkit/awt/vclxwindows.hxx
+++ b/toolkit/inc/toolkit/awt/vclxwindows.hxx
@@ -181,6 +181,7 @@ protected:
public:
VCLXButton();
+ ~VCLXButton();
// ::com::sun::star::lang::XComponent
void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException);
@@ -346,6 +347,8 @@ public:
static void ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
virtual void GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > getFirstActionListener ();
};
// ----------------------------------------------------
@@ -764,6 +767,7 @@ protected:
public:
VCLXComboBox();
+ ~VCLXComboBox();
// ::com::sun::star::uno::XInterface
::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException);
diff --git a/toolkit/inc/toolkit/controls/unocontrol.hxx b/toolkit/inc/toolkit/controls/unocontrol.hxx
index 690b34e5e8e0..d7a6d749902b 100644
--- a/toolkit/inc/toolkit/controls/unocontrol.hxx
+++ b/toolkit/inc/toolkit/controls/unocontrol.hxx
@@ -124,7 +124,7 @@ protected:
::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > getParentPeer() const;
void updateFromModel();
void peerCreated();
- bool ImplMapPlaceHolder( ::rtl::OUString& rPlaceHolder );
+ bool ImplCheckLocalize( ::rtl::OUString& _rPossiblyLocalizable );
::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > ImplGetCompatiblePeer( sal_Bool bAcceptExistingPeer );
virtual void ImplSetPeerProperty( const ::rtl::OUString& rPropName, const ::com::sun::star::uno::Any& rVal );
virtual void PrepareWindowDescriptor( ::com::sun::star::awt::WindowDescriptor& rDesc );
diff --git a/toolkit/inc/toolkit/helper/property.hxx b/toolkit/inc/toolkit/helper/property.hxx
index da2de08c9544..f5e1b4ea3770 100644
--- a/toolkit/inc/toolkit/helper/property.hxx
+++ b/toolkit/inc/toolkit/helper/property.hxx
@@ -165,7 +165,7 @@ namespace rtl {
#define BASEPROPERTY_IMAGEPOSITION 113 // sal_Int16
#define BASEPROPERTY_NATIVE_WIDGET_LOOK 114 // sal_Bool
#define BASEPROPERTY_VERTICALALIGN 115 // VerticalAlignment
-#define BASEPROPERTY_WHEELWITHOUTFOCUS 116 // sal_Bool
+#define BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR 116 // sal_Int16
#define BASEPROPERTY_GRAPHIC 117 // css.graphic.XGraphic
#define BASEPROPERTY_STEP_TIME 118 // sal_Int32
#define BASEPROPERTY_DECORATION 119 // sal_Bool
@@ -191,6 +191,7 @@ namespace rtl {
#define BASEPROPERTY_IMAGE_SCALE_MODE 137
#define BASEPROPERTY_WRITING_MODE 138
#define BASEPROPERTY_CONTEXT_WRITING_MODE 139
+#define BASEPROPERTY_ENABLEVISIBLE 140 // sal_Bool
// Keine gebundenen Properties, werden immer aus der Property BASEPROPERTY_FONTDESCRIPTOR entnommen.
#define BASEPROPERTY_FONTDESCRIPTORPART_START 1000
diff --git a/toolkit/inc/toolkit/helper/vclunohelper.hxx b/toolkit/inc/toolkit/helper/vclunohelper.hxx
index 68583f99b447..1c5d89a3cc64 100644
--- a/toolkit/inc/toolkit/helper/vclunohelper.hxx
+++ b/toolkit/inc/toolkit/helper/vclunohelper.hxx
@@ -135,11 +135,15 @@ public:
static MapUnit /* MapModeUnit */ ConvertToMapModeUnit(sal_Int16 /* com.sun.star.util.MeasureUnit.* */ _nMeasureUnit) throw (::com::sun::star::lang::IllegalArgumentException);
static sal_Int16 /* com.sun.star.util.MeasureUnit.* */ ConvertToMeasurementUnit(MapUnit /* MapModeUnit */ _nMapModeUnit) throw (::com::sun::star::lang::IllegalArgumentException);
+
static ::Size /* VCLSize */ ConvertToVCLSize(::com::sun::star::awt::Size const& _aSize);
static ::com::sun::star::awt::Size ConvertToAWTSize(::Size /* VCLSize */ const& _aSize);
+
static ::Point /* VCLPoint */ ConvertToVCLPoint(::com::sun::star::awt::Point const& _aPoint);
static ::com::sun::star::awt::Point ConvertToAWTPoint(::Point /* VCLPoint */ const& _aPoint);
+ static ::Rectangle ConvertToVCLRect( ::com::sun::star::awt::Rectangle const & _rRect );
+ static ::com::sun::star::awt::Rectangle ConvertToAWTRect( ::Rectangle const & _rRect );
};
diff --git a/toolkit/prj/build.lst b/toolkit/prj/build.lst
index 8b7ac22bd209..7fa0efaded53 100644
--- a/toolkit/prj/build.lst
+++ b/toolkit/prj/build.lst
@@ -2,10 +2,11 @@ ti toolkit : vcl NULL
ti toolkit usr1 - all ti_mkout NULL
ti toolkit\prj get - all ti_prj NULL
ti toolkit\inc nmake - all ti_inc NULL
+ti toolkit\uiconfig\layout nmake - all ti_uiconfig_layout NULL
ti toolkit\source\helper nmake - all ti_helper ti_inc NULL
ti toolkit\source\awt nmake - all ti_awt ti_inc NULL
ti toolkit\source\controls nmake - all ti_controls ti_inc NULL
ti toolkit\source\controls\tree nmake - all ti_tree NULL
-ti toolkit\source\layout nmake - all ti_layout NULL
-ti toolkit\source\vclcompat nmake - all ti_vclcompat NULL
-ti toolkit\util nmake - all ti_util ti_awt ti_controls ti_layout ti_helper ti_tree ti_vclcompat 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_layout_vcl NULL
diff --git a/toolkit/prj/d.lst b/toolkit/prj/d.lst
index b73e85a59441..0c62a083b330 100644
--- a/toolkit/prj/d.lst
+++ b/toolkit/prj/d.lst
@@ -22,7 +22,9 @@ mkdir: %_DEST%\inc%_EXT%\toolkit\controls
..\inc\toolkit\awt\vclxdevice.hxx %_DEST%\inc%_EXT%\toolkit\awt\vclxdevice.hxx
..\inc\toolkit\awt\vclxfont.hxx %_DEST%\inc%_EXT%\toolkit\awt\vclxfont.hxx
..\inc\toolkit\awt\vclxtopwindow.hxx %_DEST%\inc%_EXT%\toolkit\awt\vclxtopwindow.hxx
+..\inc\toolkit\awt\vclxtoolkit.hxx %_DEST%\inc%_EXT%\toolkit\awt\vclxtoolkit.hxx
..\inc\toolkit\awt\vclxwindow.hxx %_DEST%\inc%_EXT%\toolkit\awt\vclxwindow.hxx
+..\source\awt\vclxdialog.hxx %_DEST%\inc%_EXT%\toolkit\awt\vclxdialog.hxx
..\inc\toolkit\awt\vclxwindows.hxx %_DEST%\inc%_EXT%\toolkit\awt\vclxwindows.hxx
..\inc\toolkit\awt\vclxmenu.hxx %_DEST%\inc%_EXT%\toolkit\awt\vclxmenu.hxx
@@ -53,3 +55,9 @@ mkdir: %_DEST%\inc%_EXT%\layout
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
..\inc\layout\*.hxx %_DEST%\inc%_EXT%\layout\*.hxx
+mkdir: %_DEST%\inc%_EXT%\layout\core
+..\source\layout\core\*.hxx %_DEST%\inc%_EXT%\layout\core\*.hxx
+mkdir: %_DEST%\inc%_EXT%\layout\vcl
+..\source\layout\vcl\*.hxx %_DEST%\inc%_EXT%\layout\vcl\*.hxx
+
+..\%__SRC%\bin\*-layout.zip %_DEST%\pck%_EXT%\*.*
diff --git a/toolkit/source/awt/makefile.mk b/toolkit/source/awt/makefile.mk
index c4525516ac7f..86953691ad27 100644
--- a/toolkit/source/awt/makefile.mk
+++ b/toolkit/source/awt/makefile.mk
@@ -43,9 +43,6 @@ ENABLE_EXCEPTIONS=TRUE
# --- Files --------------------------------------------------------
-# FIXME: This is bad, hmkay
-CFLAGS+= -I$(PRJ)/source
-
.IF "$(GUIBASE)"=="aqua"
OBJCXXFLAGS=-x objective-c++ -fobjc-exceptions
CFLAGSCXX+=$(OBJCXXFLAGS)
@@ -75,9 +72,11 @@ SLOFILES= \
$(SLO)/vclxbutton.obj\
$(SLO)/vclxdialog.obj\
$(SLO)/vclxfixedline.obj\
+ $(SLO)/vclxplugin.obj\
$(SLO)/vclxscroller.obj\
$(SLO)/vclxsplitter.obj\
- $(SLO)/vclxtabcontrol.obj
+ $(SLO)/vclxtabcontrol.obj\
+ $(SLO)/vclxtabpage.obj
SRS1NAME=$(TARGET)
SRC1FILES=\
diff --git a/toolkit/source/awt/vclxbutton.cxx b/toolkit/source/awt/vclxbutton.cxx
index 2e16100e6d11..2665c5e1e44d 100644
--- a/toolkit/source/awt/vclxbutton.cxx
+++ b/toolkit/source/awt/vclxbutton.cxx
@@ -31,7 +31,7 @@
#include "vclxbutton.hxx"
-#include "layout/layoutcore.hxx"
+#include <layout/core/helper.hxx>
#include <com/sun/star/awt/ImagePosition.hpp>
#include <vcl/button.hxx>
diff --git a/toolkit/source/awt/vclxdevice.cxx b/toolkit/source/awt/vclxdevice.cxx
index cf00e1480a96..79c3da6093ab 100644
--- a/toolkit/source/awt/vclxdevice.cxx
+++ b/toolkit/source/awt/vclxdevice.cxx
@@ -315,7 +315,7 @@ VCLXVirtualDevice::~VCLXVirtualDevice()
(void)aPoint;
::vos::OGuard aGuard( GetMutex() );
if (SourceUnit == com::sun::star::util::MeasureUnit::PERCENT ||
- SourceUnit == com::sun::star::util::MeasureUnit::PIXEL)
+ SourceUnit == com::sun::star::util::MeasureUnit::PIXEL )
{
// pixel or percentage not allowed here
throw ::com::sun::star::lang::IllegalArgumentException();
diff --git a/toolkit/source/awt/vclxdialog.cxx b/toolkit/source/awt/vclxdialog.cxx
index 26cff37e8e2b..0712f8ca074c 100644
--- a/toolkit/source/awt/vclxdialog.cxx
+++ b/toolkit/source/awt/vclxdialog.cxx
@@ -45,9 +45,7 @@
#include <tools/prewin.h>
#include <windows.h>
#include <tools/postwin.h>
-#endif
-
-#ifdef QUARTZ
+#elif defined ( QUARTZ )
#include "premac.h"
#include <Cocoa/Cocoa.h>
#include "postmac.h"
@@ -211,6 +209,15 @@ void VCLXDialog::setTitle( const ::rtl::OUString& Title ) throw(::com::sun::star
pWindow->SetText( Title );
}
+void VCLXDialog::setHelpId( sal_Int32 id ) throw(::com::sun::star::uno::RuntimeException)
+{
+ ::vos::OGuard aGuard( GetMutex() );
+
+ Window* pWindow = GetWindow();
+ if ( pWindow )
+ pWindow->SetHelpId( id );
+}
+
::rtl::OUString VCLXDialog::getTitle() throw(::com::sun::star::uno::RuntimeException)
{
::vos::OGuard aGuard( GetMutex() );
diff --git a/toolkit/source/awt/vclxdialog.hxx b/toolkit/source/awt/vclxdialog.hxx
index b4245a7b6e65..65d4c5d42130 100644
--- a/toolkit/source/awt/vclxdialog.hxx
+++ b/toolkit/source/awt/vclxdialog.hxx
@@ -36,7 +36,7 @@
#include <com/sun/star/awt/XSystemDependentWindowPeer.hpp>
#include <com/sun/star/awt/XTopWindow.hpp>
#include <comphelper/uno3.hxx>
-#include <layout/bin.hxx>
+#include <layout/core/bin.hxx>
#include <toolkit/awt/vclxtopwindow.hxx>
namespace layoutimpl
@@ -44,10 +44,10 @@ namespace layoutimpl
typedef ::cppu::ImplHelper1 < ::com::sun::star::awt::XDialog2 > VCLXDialog_Base;
-class VCLXDialog :public VCLXWindow
- ,public VCLXTopWindow_Base
- ,public VCLXDialog_Base
- ,public Bin
+class TOOLKIT_DLLPUBLIC VCLXDialog : public VCLXWindow
+ , public VCLXTopWindow_Base
+ , public VCLXDialog_Base
+ , public Bin
{
private:
bool bRealized, bResizeSafeguard;
@@ -102,6 +102,7 @@ public:
// ::com::sun::star::awt::XDialog2
void SAL_CALL endDialog( sal_Int32 nResult ) throw(::com::sun::star::uno::RuntimeException);
+ void SAL_CALL setHelpId( sal_Int32 id ) throw(::com::sun::star::uno::RuntimeException);
};
diff --git a/toolkit/source/awt/vclxmenu.cxx b/toolkit/source/awt/vclxmenu.cxx
index febb6523e2cc..c8e5e1bd3853 100644
--- a/toolkit/source/awt/vclxmenu.cxx
+++ b/toolkit/source/awt/vclxmenu.cxx
@@ -682,6 +682,8 @@ namespace
aAWTKey.Modifiers |= css::awt::KeyModifier::MOD1;
if (aVCLKey.IsMod2())
aAWTKey.Modifiers |= css::awt::KeyModifier::MOD2;
+ if (aVCLKey.IsMod3())
+ aAWTKey.Modifiers |= css::awt::KeyModifier::MOD3;
return aAWTKey;
}
@@ -691,9 +693,10 @@ namespace
sal_Bool bShift = ((aAWTKey.Modifiers & css::awt::KeyModifier::SHIFT) == css::awt::KeyModifier::SHIFT );
sal_Bool bMod1 = ((aAWTKey.Modifiers & css::awt::KeyModifier::MOD1 ) == css::awt::KeyModifier::MOD1 );
sal_Bool bMod2 = ((aAWTKey.Modifiers & css::awt::KeyModifier::MOD2 ) == css::awt::KeyModifier::MOD2 );
+ sal_Bool bMod3 = ((aAWTKey.Modifiers & css::awt::KeyModifier::MOD3 ) == css::awt::KeyModifier::MOD3 );
USHORT nKey = (USHORT)aAWTKey.KeyCode;
- return KeyCode(nKey, bShift, bMod1, bMod2);
+ return KeyCode(nKey, bShift, bMod1, bMod2, bMod3);
}
} // END ANONYMOUS NAMESPACE
diff --git a/toolkit/source/awt/vclxplugin.cxx b/toolkit/source/awt/vclxplugin.cxx
new file mode 100644
index 000000000000..4ad306d31e70
--- /dev/null
+++ b/toolkit/source/awt/vclxplugin.cxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile$
+ *
+ * $Revision$
+ *
+ * last change: $Author$ $Date$
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
+ * MA 02110-1301 USA
+ *
+ ************************************************************************/
+
+#include "vclxplugin.hxx"
+
+#include <com/sun/star/awt/PosSize.hpp>
+#include <toolkit/helper/convert.hxx>
+#include <toolkit/helper/property.hxx>
+#include <vcl/ctrl.hxx>
+
+#include "forward.hxx"
+
+namespace layoutimpl
+{
+
+using namespace ::com::sun::star;
+
+VCLXPlugin::VCLXPlugin( Window *p, WinBits b )
+ : VCLXWindow()
+ , mpWindow( p )
+ , mpPlugin( 0 )
+ , mStyle( b )
+{
+}
+
+VCLXPlugin::~VCLXPlugin()
+{
+}
+
+void SAL_CALL VCLXPlugin::dispose() throw(uno::RuntimeException)
+{
+ {
+ ::vos::OGuard aGuard( GetMutex() );
+
+ lang::EventObject aDisposeEvent;
+ aDisposeEvent.Source = W3K_EXPLICIT_CAST (*this);
+ }
+
+ VCLXWindow::dispose();
+}
+
+void VCLXPlugin::SetPlugin( ::Control *p )
+{
+ mpPlugin = p;
+}
+
+awt::Size SAL_CALL VCLXPlugin::getMinimumSize()
+ throw(::com::sun::star::uno::RuntimeException)
+{
+ ::vos::OClearableGuard aGuard( GetMutex() );
+ if ( mpPlugin )
+ return AWTSize( mpPlugin->GetSizePixel() );
+ return awt::Size();
+}
+
+} // namespace layoutimpl
diff --git a/toolkit/source/awt/vclxplugin.hxx b/toolkit/source/awt/vclxplugin.hxx
new file mode 100644
index 000000000000..b6a7f04b56f6
--- /dev/null
+++ b/toolkit/source/awt/vclxplugin.hxx
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile$
+ *
+ * $Revision$
+ *
+ * last change: $Author$ $Date$
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
+ * MA 02110-1301 USA
+ *
+ ************************************************************************/
+
+#ifndef LAYOUT_AWT_VCLXPLUGIN_HXX
+#define LAYOUT_AWT_VCLXPLUGIN_HXX
+
+#include <toolkit/awt/vclxwindow.hxx>
+#include <vcl/wintypes.hxx>
+
+class Control;
+namespace layoutimpl
+{
+
+namespace css = ::com::sun::star;
+
+class VCLXPlugin : public VCLXWindow
+{
+public:
+ Window *mpWindow;
+ ::Control *mpPlugin;
+ WinBits mStyle;
+
+ VCLXPlugin( Window *p, WinBits b );
+
+ void SetPlugin( ::Control *p );
+
+protected:
+ ~VCLXPlugin();
+
+ // XComponent
+ void SAL_CALL dispose() throw(::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::awt::Size SAL_CALL getMinimumSize()
+ throw(::com::sun::star::uno::RuntimeException);
+
+private:
+ VCLXPlugin( VCLXPlugin const & );
+ VCLXPlugin& operator=( VCLXPlugin const & );
+};
+
+} // namespace layoutimpl
+
+#endif /* LAYOUT_AWT_VCLXPLUGIN_HXX */
diff --git a/toolkit/source/awt/vclxscroller.hxx b/toolkit/source/awt/vclxscroller.hxx
index 02f8829a5ccf..745e4d5588d7 100644
--- a/toolkit/source/awt/vclxscroller.hxx
+++ b/toolkit/source/awt/vclxscroller.hxx
@@ -33,7 +33,7 @@
#define LAYOUT_AWT_VCLXSCROLLER_HXX
#include <comphelper/uno3.hxx>
-#include <layout/bin.hxx>
+#include <layout/core/bin.hxx>
#include <toolkit/awt/vclxwindow.hxx>
class ScrollBar;
diff --git a/toolkit/source/awt/vclxsplitter.cxx b/toolkit/source/awt/vclxsplitter.cxx
index b38ed4baf38a..33c1beb6ed41 100644
--- a/toolkit/source/awt/vclxsplitter.cxx
+++ b/toolkit/source/awt/vclxsplitter.cxx
@@ -78,8 +78,8 @@ VCLXSplitter::createChildProps( Box_Base::ChildData *pData )
DBG_NAME( VCLXSplitter );
VCLXSplitter::VCLXSplitter( bool bHorizontal )
- : VCLXWindow()
- , Box_Base()
+ : VCLXWindow()
+ , Box_Base()
{
DBG_CTOR( VCLXSplitter, NULL );
mnHandleRatio = 0.5;
diff --git a/toolkit/source/awt/vclxsplitter.hxx b/toolkit/source/awt/vclxsplitter.hxx
index 5ecb7e0cde3b..8ed5d572e030 100644
--- a/toolkit/source/awt/vclxsplitter.hxx
+++ b/toolkit/source/awt/vclxsplitter.hxx
@@ -35,7 +35,7 @@
#include <com/sun/star/awt/MaxChildrenException.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <comphelper/uno3.hxx>
-#include <layout/box-base.hxx>
+#include <layout/core/box-base.hxx>
#include <toolkit/awt/vclxwindow.hxx>
class Splitter;
diff --git a/toolkit/source/awt/vclxsystemdependentwindow.cxx b/toolkit/source/awt/vclxsystemdependentwindow.cxx
index ee9edb85bbdd..ff25d16c4841 100644
--- a/toolkit/source/awt/vclxsystemdependentwindow.cxx
+++ b/toolkit/source/awt/vclxsystemdependentwindow.cxx
@@ -46,9 +46,7 @@
#include <tools/prewin.h>
#include <windows.h>
#include <tools/postwin.h>
-#endif
-
-#ifdef QUARTZ
+#elif defined ( QUARTZ )
#include "premac.h"
#include <Cocoa/Cocoa.h>
#include "postmac.h"
diff --git a/toolkit/source/awt/vclxtabcontrol.cxx b/toolkit/source/awt/vclxtabcontrol.cxx
index 0097c6a0a73a..908554c9ae0c 100644
--- a/toolkit/source/awt/vclxtabcontrol.cxx
+++ b/toolkit/source/awt/vclxtabcontrol.cxx
@@ -43,8 +43,6 @@
namespace layoutimpl
{
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::awt;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star;
@@ -76,12 +74,20 @@ VCLXTabControl::createChildProps( Box_Base::ChildData *pData )
DBG_NAME( VCLXTabControl );
+#if !defined (__GNUC__)
+#define __PRETTY_FUNCTION__ __FUNCTION__
+#endif /* !__GNUC__ */
+
VCLXTabControl::VCLXTabControl()
: VCLXWindow()
, VCLXTabControl_Base()
, Box_Base()
- , mnNextTabId( 1 )
+ , mTabId (1)
+ , bRealized (false)
{
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("\n********%s:%x", __PRETTY_FUNCTION__, this);
+#endif
DBG_CTOR( VCLXTabControl, NULL );
}
@@ -94,7 +100,7 @@ IMPLEMENT_2_FORWARD_XINTERFACE2( VCLXTabControl, VCLXWindow, Container, VCLXTabC
IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXTabControl, VCLXWindow, VCLXTabControl_Base );
-void SAL_CALL VCLXTabControl::dispose( ) throw(RuntimeException)
+void SAL_CALL VCLXTabControl::dispose( ) throw(uno::RuntimeException)
{
{
::vos::OGuard aGuard( GetMutex() );
@@ -108,38 +114,38 @@ void SAL_CALL VCLXTabControl::dispose( ) throw(RuntimeException)
}
#if 0
-void SAL_CALL VCLXTabControl::addTabListener( const Reference< XTabListener >& listener ) throw (RuntimeException)
+void SAL_CALL VCLXTabControl::addTabListener( const Reference< XTabListener >& listener ) throw (uno::RuntimeException)
{
if ( listener.is() )
maTabListeners.addInterface( listener );
}
-void SAL_CALL VCLXTabControl::removeTabListener( const Reference< XTabListener >& listener ) throw (RuntimeException)
+void SAL_CALL VCLXTabControl::removeTabListener( const Reference< XTabListener >& listener ) throw (uno::RuntimeException)
{
if ( listener.is() )
maTabListeners.removeInterface( listener );
}
#endif
-TabControl *VCLXTabControl::getTabControl() const throw (RuntimeException)
+TabControl *VCLXTabControl::getTabControl() const throw (uno::RuntimeException)
{
TabControl *pTabControl = static_cast< TabControl* >( GetWindow() );
if ( pTabControl )
return pTabControl;
- throw RuntimeException();
+ throw uno::RuntimeException();
}
-sal_Int32 SAL_CALL VCLXTabControl::insertTab() throw (RuntimeException)
+sal_Int32 SAL_CALL VCLXTabControl::insertTab() throw (uno::RuntimeException)
{
TabControl *pTabControl = getTabControl();
- USHORT id = sal::static_int_cast< USHORT >( mnNextTabId++ );
+ USHORT id = sal::static_int_cast< USHORT >( mTabId++ );
rtl::OUString title (RTL_CONSTASCII_USTRINGPARAM( "" ) );
pTabControl->InsertPage( id, title.getStr(), TAB_APPEND );
pTabControl->SetTabPage( id, new TabPage( pTabControl ) );
return id;
}
-void SAL_CALL VCLXTabControl::removeTab( sal_Int32 ID ) throw (RuntimeException, IndexOutOfBoundsException)
+void SAL_CALL VCLXTabControl::removeTab( sal_Int32 ID ) throw (uno::RuntimeException, IndexOutOfBoundsException)
{
TabControl *pTabControl = getTabControl();
if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( ID ) ) == NULL )
@@ -147,7 +153,7 @@ void SAL_CALL VCLXTabControl::removeTab( sal_Int32 ID ) throw (RuntimeException,
pTabControl->RemovePage( sal::static_int_cast< USHORT >( ID ) );
}
-void SAL_CALL VCLXTabControl::activateTab( sal_Int32 ID ) throw (RuntimeException, IndexOutOfBoundsException)
+void SAL_CALL VCLXTabControl::activateTab( sal_Int32 ID ) throw (uno::RuntimeException, IndexOutOfBoundsException)
{
TabControl *pTabControl = getTabControl();
if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( ID ) ) == NULL )
@@ -155,15 +161,15 @@ void SAL_CALL VCLXTabControl::activateTab( sal_Int32 ID ) throw (RuntimeExceptio
pTabControl->SelectTabPage( sal::static_int_cast< USHORT >( ID ) );
}
-sal_Int32 SAL_CALL VCLXTabControl::getActiveTabID() throw (RuntimeException)
+sal_Int32 SAL_CALL VCLXTabControl::getActiveTabID() throw (uno::RuntimeException)
{
return getTabControl()->GetCurPageId( );
}
-void SAL_CALL VCLXTabControl::addTabListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabListener >& xListener ) throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL VCLXTabControl::addTabListener( const uno::Reference< awt::XTabListener >& xListener ) throw (uno::RuntimeException)
{
- for ( std::list< ::com::sun::star::uno::Reference
- < ::com::sun::star::awt::XTabListener > >::const_iterator it
+ for ( std::list< uno::Reference
+ < awt::XTabListener > >::const_iterator it
= mxTabListeners.begin(); it != mxTabListeners.end(); it++ )
{
if ( *it == xListener )
@@ -173,10 +179,10 @@ void SAL_CALL VCLXTabControl::addTabListener( const ::com::sun::star::uno::Refer
mxTabListeners.push_back( xListener );
}
-void SAL_CALL VCLXTabControl::removeTabListener( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabListener >& xListener ) throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL VCLXTabControl::removeTabListener( const uno::Reference< awt::XTabListener >& xListener ) throw (uno::RuntimeException)
{
- for ( std::list< ::com::sun::star::uno::Reference
- < ::com::sun::star::awt::XTabListener > >::iterator it
+ for ( std::list< uno::Reference
+ < awt::XTabListener > >::iterator it
= mxTabListeners.begin(); it != mxTabListeners.end(); it++ )
{
if ( *it == xListener )
@@ -187,7 +193,7 @@ void SAL_CALL VCLXTabControl::removeTabListener( const ::com::sun::star::uno::Re
}
}
-void SAL_CALL VCLXTabControl::setTabProps( sal_Int32 ID, const Sequence< NamedValue >& Properties ) throw (RuntimeException, IndexOutOfBoundsException)
+void SAL_CALL VCLXTabControl::setTabProps( sal_Int32 ID, const uno::Sequence< NamedValue >& Properties ) throw (uno::RuntimeException, IndexOutOfBoundsException)
{
TabControl *pTabControl = getTabControl();
if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( ID ) ) == NULL )
@@ -196,7 +202,7 @@ void SAL_CALL VCLXTabControl::setTabProps( sal_Int32 ID, const Sequence< NamedVa
for ( int i = 0; i < Properties.getLength(); i++ )
{
const rtl::OUString &name = Properties[i].Name;
- const Any &value = Properties[i].Value;
+ const uno::Any &value = Properties[i].Value;
if ( name == rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ) )
{
@@ -206,8 +212,8 @@ void SAL_CALL VCLXTabControl::setTabProps( sal_Int32 ID, const Sequence< NamedVa
}
}
-Sequence< NamedValue > SAL_CALL VCLXTabControl::getTabProps( sal_Int32 ID )
- throw (IndexOutOfBoundsException, RuntimeException)
+uno::Sequence< NamedValue > SAL_CALL VCLXTabControl::getTabProps( sal_Int32 ID )
+ throw (IndexOutOfBoundsException, uno::RuntimeException)
{
TabControl *pTabControl = getTabControl();
if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( ID ) ) == NULL )
@@ -216,11 +222,11 @@ Sequence< NamedValue > SAL_CALL VCLXTabControl::getTabProps( sal_Int32 ID )
#define ADD_PROP( seq, i, name, val ) { \
NamedValue value; \
value.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( name ) ); \
- value.Value = makeAny( val ); \
+ value.Value = uno::makeAny( val ); \
seq[i] = value; \
}
- Sequence< NamedValue > props( 2 );
+ uno::Sequence< NamedValue > props( 2 );
ADD_PROP( props, 0, "Title", rtl::OUString( pTabControl->GetPageText( sal::static_int_cast< USHORT >( ID ) ) ) );
ADD_PROP( props, 1, "Position", pTabControl->GetPagePos( sal::static_int_cast< USHORT >( ID ) ) );
#undef ADD_PROP
@@ -228,7 +234,7 @@ Sequence< NamedValue > SAL_CALL VCLXTabControl::getTabProps( sal_Int32 ID )
}
// TODO: draw tab border here
-void SAL_CALL VCLXTabControl::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::star::uno::RuntimeException)
+void SAL_CALL VCLXTabControl::draw( sal_Int32 nX, sal_Int32 nY ) throw(uno::RuntimeException)
{
::vos::OGuard aGuard( GetMutex() );
@@ -249,16 +255,29 @@ void SAL_CALL VCLXTabControl::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::su
VCLXWindow::draw( nX, nY );
}
+void VCLXTabControl::AddChild (uno::Reference< awt::XLayoutConstrains > const& xChild)
+
+{
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("%s: children: %d", __PRETTY_FUNCTION__, maChildren.size ());
+#endif
+ mIdMap[ xChild ] = mTabId++;
+ Box_Base::AddChild( xChild );
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("%s: children: %d", __PRETTY_FUNCTION__, maChildren.size ());
+#endif
+}
+
void SAL_CALL VCLXTabControl::addChild(
- const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains > &xChild )
- throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::awt::MaxChildrenException)
+ const uno::Reference< awt::XLayoutConstrains > &xChild )
+ throw (uno::RuntimeException, awt::MaxChildrenException)
{
mIdMap[ xChild ] = insertTab();
Box_Base::addChild( xChild );
}
-void SAL_CALL VCLXTabControl::removeChild( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XLayoutConstrains > &xChild )
- throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL VCLXTabControl::removeChild( const uno::Reference< awt::XLayoutConstrains > &xChild )
+ throw (uno::RuntimeException)
{
removeTab( mIdMap[xChild] );
mIdMap[ xChild ] = -1;
@@ -284,21 +303,90 @@ static void setChildrenVisible( uno::Reference < awt::XLayoutConstrains > xChild
}
}
-void SAL_CALL VCLXTabControl::allocateArea(
- const ::com::sun::star::awt::Rectangle &rArea )
- throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL VCLXTabControl::allocateArea (awt::Rectangle const &area)
+ throw (uno::RuntimeException)
{
- maAllocation = rArea;
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("\n%s", __PRETTY_FUNCTION__);
+#endif
+ maAllocation = area;
TabControl *pTabControl = getTabControl();
-// FIXME: this is wrong. We just want to set tab controls pos/size for the tabs menu,
-// otherwise, it gets events that should go to children (I guess we could solve this
-// by making the tabcontrol as the actual XWindow parent of its children, when importing...)
-// Not sure about TabPage drawing... That doesn't work on gtk+; just ignoring that.
-// LATER: Nah, the proper fix is to get the XWindow hierarchy straight.
+// FIXME: this is wrong. We just want to set tab controls pos/size for
+// the tabs menu, otherwise, it gets events that should go to children
+// (I guess we could solve this by making the tabcontrol as the actual
+// XWindow parent of its children, when importing...) Not sure about
+// TabPage drawing... That doesn't work on gtk+; just ignoring that.
+// LATER: Nah, the proper fix is to get the XWindow hierarchy
+// straight.
+
+#if 0
+ setPosSize( area.X, area.Y, area.Width, area.Height, awt::PosSize::POSSIZE );
+#else
+ awt::Size currentSize = getSize();
+ awt::Size requestedSize (area.Width, area.Height);
+// requestedSize.Height = getHeightForWidth( area.Width );
+
+ awt::Size minimumSize = getMinimumSize();
+ if (requestedSize.Width < minimumSize.Width)
+ requestedSize.Width = minimumSize.Width;
+ if (requestedSize.Height < minimumSize.Height)
+ requestedSize.Height = minimumSize.Height;
+
+ Size pageSize = static_cast<TabControl*> (GetWindow ())->GetTabPageSizePixel ();
+ awt::Size pageBasedSize (0, 0);
+ pageBasedSize.Width = pageSize.Width ();
+ pageBasedSize.Height = pageSize.Height ();
+
+ const int wc = 0;
+ const int hc = 20;
+ static int pwc = 0;
+ static int phc = 40;
+
+ if (requestedSize.Width < pageBasedSize.Width)
+ requestedSize.Width = pageBasedSize.Width + wc;
+ if (requestedSize.Height < pageBasedSize.Height)
+ requestedSize.Height = pageBasedSize.Height + hc;
+
+ Size windowSize = GetWindow()->GetSizePixel();
+ Window *parent = GetWindow()->GetParent();
+ Size parentSize = parent->GetSizePixel();
+
+#ifndef __SUNPRO_CC
+#ifdef GCC_MAJOR
+ OSL_TRACE ("\n%s", __PRETTY_FUNCTION__);
+#endif /* GCC_MAJOR */
+ OSL_TRACE ("%s: cursize: %d ,%d", __FUNCTION__, currentSize.Width, currentSize.Height );
+ OSL_TRACE ("%s: area: %d, %d", __FUNCTION__, area.Width, area.Height );
+ OSL_TRACE ("%s: minimum: %d, %d", __FUNCTION__, minimumSize.Width, minimumSize.Height );
+ OSL_TRACE ("%s: requestedSize: %d, %d", __FUNCTION__, requestedSize.Width, requestedSize.Height );
+ OSL_TRACE ("%s: pageBasedSize: %d, %d", __FUNCTION__, pageBasedSize.Width, pageBasedSize.Height );
+
+ //OSL_TRACE ("%s: parent: %d, %d", __FUNCTION__, parentSize.Width(), parentSize.Height() );
+ //OSL_TRACE ("%s: window: %d, %d", __FUNCTION__, windowSize.Width(), windowSize.Height() );
+#endif
+
+ //bRealized = false;
+ if (!bRealized)
+ {
+ setPosSize( area.X, area.Y, requestedSize.Width, requestedSize.Height, awt::PosSize::POSSIZE );
+ bRealized = true;
+ }
+ else
+ {
+ if ( requestedSize.Width > currentSize.Width + 10)
+ setPosSize( 0, 0, requestedSize.Width, 0, awt::PosSize::WIDTH );
+ if ( requestedSize.Height > currentSize.Height + 10)
+ setPosSize( 0, 0, 0, requestedSize.Height, awt::PosSize::HEIGHT );
+ }
+#endif
- setPosSize( rArea.X, rArea.Y, rArea.Width, rArea.Height, PosSize::POSSIZE );
+ if (pageBasedSize.Width > parentSize.Width ()
+ || pageBasedSize.Height > parentSize.Height ())
+ //parent->SetSizePixel ( Size (pageBasedSize.Width, pageBasedSize.Height));
+ //parent->SetSizePixel ( Size (pageBasedSize.Width + pwc, pageBasedSize.Height + phc));
+ parent->SetSizePixel ( Size (requestedSize.Width + pwc, requestedSize.Height + phc));
// FIXME: we can save cycles by setting visibility more sensibly. Having
// it here does makes it easier when changing tabs (just needs a recalc())
@@ -307,8 +395,8 @@ void SAL_CALL VCLXTabControl::allocateArea(
= maChildren.begin(); it != maChildren.end(); it++, i++ )
{
ChildData *child = static_cast<VCLXTabControl::ChildData*> ( *it );
- ::com::sun::star::uno::Reference
- < ::com::sun::star::awt::XLayoutConstrains > xChild( child->mxChild );
+ uno::Reference
+ < awt::XLayoutConstrains > xChild( child->mxChild );
if ( xChild.is() )
{
uno::Reference< awt::XWindow > xWin( xChild, uno::UNO_QUERY );
@@ -340,15 +428,15 @@ void SAL_CALL VCLXTabControl::allocateArea(
}
}
-::com::sun::star::awt::Size SAL_CALL VCLXTabControl::getMinimumSize()
- throw(::com::sun::star::uno::RuntimeException)
+awt::Size SAL_CALL VCLXTabControl::getMinimumSize()
+ throw(uno::RuntimeException)
{
- awt::Size size = VCLXWindow::getMinimumSize();
+ awt::Size requestedSize = VCLXWindow::getMinimumSize();
awt::Size childrenSize( 0, 0 );
TabControl* pTabControl = static_cast< TabControl* >( GetWindow() );
if ( !pTabControl )
- return size;
+ return requestedSize;
// calculate size to accomodate all children
unsigned i = 0;
@@ -367,10 +455,19 @@ void SAL_CALL VCLXTabControl::allocateArea(
}
}
- size.Width += childrenSize.Width;
- size.Height += childrenSize.Height + 20;
- maRequisition = size;
- return size;
+#ifndef __SUNPRO_CC
+#ifdef GCC_MAJOR
+ OSL_TRACE ("\n%s", __PRETTY_FUNCTION__);
+#endif /* GCC_MAJOR */
+ OSL_TRACE ("%s: children: %d", __FUNCTION__, i);
+ OSL_TRACE ("%s: childrenSize: %d, %d", __FUNCTION__, childrenSize.Width, childrenSize.Height );
+#endif
+
+ requestedSize.Width += childrenSize.Width;
+ requestedSize.Height += childrenSize.Height + 20;
+
+ maRequisition = requestedSize;
+ return requestedSize;
}
void VCLXTabControl::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
@@ -391,12 +488,12 @@ void VCLXTabControl::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent
case VCLEVENT_TABPAGE_PAGETEXTCHANGED:
{
ULONG page = (ULONG) _rVclWindowEvent.GetData();
- for ( std::list< ::com::sun::star::uno::Reference
- < ::com::sun::star::awt::XTabListener > >::iterator it
+ for ( std::list< uno::Reference
+ < awt::XTabListener > >::iterator it
= mxTabListeners.begin(); it != mxTabListeners.end(); it++)
{
- ::com::sun::star::uno::Reference
- < ::com::sun::star::awt::XTabListener > listener = *it;
+ uno::Reference
+ < awt::XTabListener > listener = *it;
switch ( _rVclWindowEvent.GetId() )
{
@@ -414,7 +511,7 @@ void VCLXTabControl::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent
listener->removed( page );
break;
case VCLEVENT_TABPAGE_REMOVEDALL:
- for ( int i = 1; i < mnNextTabId; i++)
+ for ( int i = 1; i < mTabId; i++)
{
if ( pTabControl->GetTabPage( sal::static_int_cast< USHORT >( i ) ) )
listener->removed( i );
@@ -434,12 +531,12 @@ void VCLXTabControl::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent
}
}
-void SAL_CALL VCLXTabControl::setProperty( const ::rtl::OUString& PropertyName, const Any &Value ) throw(RuntimeException)
+void SAL_CALL VCLXTabControl::setProperty( const ::rtl::OUString& PropertyName, const uno::Any &Value ) throw(uno::RuntimeException)
{
VCLXWindow::setProperty( PropertyName, Value );
}
-Any SAL_CALL VCLXTabControl::getProperty( const ::rtl::OUString& PropertyName ) throw(RuntimeException)
+uno::Any SAL_CALL VCLXTabControl::getProperty( const ::rtl::OUString& PropertyName ) throw(uno::RuntimeException)
{
return VCLXWindow::getProperty( PropertyName );
}
diff --git a/toolkit/source/awt/vclxtabcontrol.hxx b/toolkit/source/awt/vclxtabcontrol.hxx
index 7db18b19a609..0db5d9707a3f 100644
--- a/toolkit/source/awt/vclxtabcontrol.hxx
+++ b/toolkit/source/awt/vclxtabcontrol.hxx
@@ -34,7 +34,7 @@
#include <com/sun/star/awt/XSimpleTabController.hpp>
#include <comphelper/uno3.hxx>
-#include <layout/box-base.hxx>
+#include <layout/core/box-base.hxx>
#include <map>
#include <toolkit/awt/vclxwindow.hxx>
@@ -50,9 +50,14 @@ class VCLXTabControl :public VCLXWindow
,public VCLXTabControl_Base
,public Box_Base
{
+ int mTabId;
+ bool bRealized;
+
public:
VCLXTabControl();
+ void AddChild (css::uno::Reference <css::awt::XLayoutConstrains> const &);
+
protected:
~VCLXTabControl();
@@ -65,7 +70,7 @@ protected:
// XComponent
void SAL_CALL dispose() throw(::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL draw( sal_Int32 nX, sal_Int32 nY ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL draw( sal_Int32 nX, sal_Int32 nY ) throw (::com::sun::star::uno::RuntimeException);
// XSimpleTabController
virtual ::sal_Int32 SAL_CALL insertTab() throw (::com::sun::star::uno::RuntimeException);
@@ -108,10 +113,6 @@ protected:
// VCLXWindow
void ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent );
-
- // Each tab page needs an unique id.
- int mnNextTabId;
-
public:
// Maps page ids to child references
struct ChildData : public Box_Base::ChildData
diff --git a/toolkit/source/awt/vclxtabpage.cxx b/toolkit/source/awt/vclxtabpage.cxx
new file mode 100644
index 000000000000..0b7bbd008a86
--- /dev/null
+++ b/toolkit/source/awt/vclxtabpage.cxx
@@ -0,0 +1,164 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile$
+ *
+ * $Revision$
+ *
+ * last change: $Author$ $Date$
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
+ * MA 02110-1301 USA
+ *
+ ************************************************************************/
+
+#include "vclxtabpage.hxx"
+#include "forward.hxx"
+
+#include <com/sun/star/awt/PosSize.hpp>
+#include <toolkit/helper/convert.hxx>
+#include <vcl/tabpage.hxx>
+#include <vcl/tabctrl.hxx>
+
+#if !defined (__GNUC__)
+#define __PRETTY_FUNCTION__ __FUNCTION__
+#endif /* !__GNUC__ */
+
+namespace layoutimpl
+{
+
+using namespace ::com::sun::star;
+
+// XInterface
+IMPLEMENT_FORWARD_XINTERFACE2( VCLXTabPage, VCLXWindow, Bin );
+
+// XTypeProvider
+IMPLEMENT_FORWARD_XTYPEPROVIDER1( VCLXTabPage, VCLXWindow );
+
+VCLXTabPage::VCLXTabPage( Window *p )
+ : VCLXWindow()
+ , Bin()
+ , bRealized( false )
+{
+ /* FIXME: before Window is set, setLabel, setProperty->setImage
+ * are silent no-ops. */
+ p->SetComponentInterface( this );
+}
+
+VCLXTabPage::~VCLXTabPage()
+{
+}
+
+void SAL_CALL VCLXTabPage::dispose() throw(uno::RuntimeException)
+{
+ {
+ ::vos::OGuard aGuard( GetMutex() );
+
+ lang::EventObject aDisposeEvent;
+ aDisposeEvent.Source = W3K_EXPLICIT_CAST (*this);
+ }
+
+ VCLXWindow::dispose();
+}
+
+void SAL_CALL VCLXTabPage::allocateArea( awt::Rectangle const& area )
+ throw (uno::RuntimeException)
+{
+ awt::Size currentSize = getSize();
+ awt::Size requestedSize = getMinimumSize();
+ requestedSize.Height = getHeightForWidth( area.Width );
+
+ if ( currentSize.Width > 0 && currentSize.Height > 0
+ && requestedSize.Width > currentSize.Width )
+ requestedSize.Width = currentSize.Width;
+ if ( currentSize.Width > 0 && currentSize.Height > 0
+ && requestedSize.Height > currentSize.Height )
+ requestedSize.Height = currentSize.Height;
+
+ // FIXME: missing destructor?
+ if ( !GetWindow() )
+ return;
+
+ Size windowSize = GetWindow()->GetSizePixel();
+ Window *parent = GetWindow()->GetParent();
+ Size parentSize = parent->GetSizePixel();
+
+ Point pos = GetWindow()->GetPosPixel();
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("\n%s", __PRETTY_FUNCTION__);
+ OSL_TRACE ("%s: curpos: %d ,%d", __FUNCTION__, pos.X(), pos.Y() );
+
+ OSL_TRACE ("%s: cursize: %d ,%d", __FUNCTION__, currentSize.Width, currentSize.Height );
+ OSL_TRACE ("%s: area: %d, %d", __FUNCTION__, area.Width, area.Height );
+ OSL_TRACE ("%s: requestedSize: %d, %d", __FUNCTION__, requestedSize.Width, requestedSize.Height );
+ OSL_TRACE ("%s: parent: %d, %d", __FUNCTION__, parentSize.Width(), parentSize.Height() );
+ OSL_TRACE ("%s: window: %d, %d", __FUNCTION__, windowSize.Width(), windowSize.Height() );
+#endif
+
+#if 0
+ if (requestedSize.Width > parentSize.Width ()
+ || requestedSize.Height > parentSize.Height ())
+ {
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("%s: ***setting parent: %d, %d", __FUNCTION__, requestedSize.Width, requestedSize.Height );
+#endif
+ parent->SetSizePixel ( Size (requestedSize.Width, requestedSize.Height) );
+
+ if (Window *grand_parent = parent->GetParent ())
+ grand_parent->SetSizePixel ( Size (requestedSize.Width, requestedSize.Height) );
+ }
+#endif
+
+ if ( !bRealized )
+ {
+ setPosSize( area.X, area.Y, requestedSize.Width, requestedSize.Height, awt::PosSize::SIZE );
+ bRealized = true;
+ }
+ else
+ {
+ if ( requestedSize.Width > currentSize.Width + 10)
+ setPosSize( 0, 0, requestedSize.Width, 0, awt::PosSize::WIDTH );
+ if ( requestedSize.Height > currentSize.Height + 10)
+ setPosSize( 0, 0, 0, requestedSize.Height, awt::PosSize::HEIGHT );
+ }
+
+ awt::Size newSize = getSize();
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("%s: newSize: %d, %d", __FUNCTION__, newSize.Width, newSize.Height );
+#endif
+ maAllocation.Width = newSize.Width;
+ maAllocation.Height = newSize.Height;
+
+ Bin::allocateArea( maAllocation );
+}
+
+awt::Size SAL_CALL VCLXTabPage::getMinimumSize()
+ throw(uno::RuntimeException)
+{
+ ::vos::OGuard aGuard( GetMutex() );
+
+ return Bin::getMinimumSize();
+}
+
+} // namespace layoutimpl
diff --git a/toolkit/source/awt/vclxtabpage.hxx b/toolkit/source/awt/vclxtabpage.hxx
new file mode 100644
index 000000000000..a31db2e69781
--- /dev/null
+++ b/toolkit/source/awt/vclxtabpage.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile$
+ *
+ * $Revision$
+ *
+ * last change: $Author$ $Date$
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
+ * MA 02110-1301 USA
+ *
+ ************************************************************************/
+
+#ifndef LAYOUT_AWT_VCLXTABPAGE_HXX
+#define LAYOUT_AWT_VCLXTABPAGE_HXX
+
+#include <toolkit/awt/vclxwindow.hxx>
+#include <layout/core/bin.hxx>
+#include <comphelper/uno3.hxx>
+
+namespace layoutimpl
+{
+
+namespace css = ::com::sun::star;
+
+class VCLXTabPage : public VCLXWindow
+ , public Bin
+{
+ bool bRealized;
+
+public:
+ VCLXTabPage( Window *p );
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+protected:
+ ~VCLXTabPage();
+
+ // XComponent
+ void SAL_CALL dispose() throw(css::uno::RuntimeException);
+
+ // ::com::sun::star::awt::XLayoutContainer
+ virtual void SAL_CALL allocateArea( css::awt::Rectangle const& rArea )
+ throw (css::uno::RuntimeException);
+ virtual css::awt::Size SAL_CALL getMinimumSize()
+ throw(css::uno::RuntimeException);
+
+private:
+ VCLXTabPage( VCLXTabPage const & );
+ VCLXTabPage& operator=( VCLXTabPage const & );
+};
+
+} // namespace layoutimpl
+
+#endif /* LAYOUT_AWT_VCLXTABPAGE_HXX */
diff --git a/toolkit/source/awt/vclxtoolkit.cxx b/toolkit/source/awt/vclxtoolkit.cxx
index 8cb7ed60f2a4..eeacd037d7c1 100644
--- a/toolkit/source/awt/vclxtoolkit.cxx
+++ b/toolkit/source/awt/vclxtoolkit.cxx
@@ -55,6 +55,18 @@
#include <rtl/memory.h>
#include <rtl/uuid.h>
#include <rtl/process.h>
+
+#ifdef WNT
+#include <tools/prewin.h>
+#include <windows.h>
+#include <tools/postwin.h>
+#elif (defined QUARTZ)
+#include "premac.h"
+#include <Cocoa/Cocoa.h>
+#include "postmac.h"
+#endif
+#include <vcl/sysdata.hxx>
+
#include <toolkit/awt/vclxwindows.hxx>
#include <toolkit/awt/vclxsystemdependentwindow.hxx>
#include <toolkit/awt/vclxregion.hxx>
@@ -108,12 +120,6 @@
#include <vcl/wrkwin.hxx>
#include "toolkit/awt/vclxspinbutton.hxx"
-#ifdef QUARTZ
-#include "premac.h"
-#include <Cocoa/Cocoa.h>
-#include "postmac.h"
-#endif
-#include <vcl/sysdata.hxx>
#include <tools/debug.hxx>
#include <comphelper/processfactory.hxx>
@@ -1608,7 +1614,9 @@ long VCLXToolkit::callKeyHandlers(::VclSimpleEvent const * pEvent,
| (pKeyEvent->GetKeyCode().IsMod1()
? ::css::awt::KeyModifier::MOD1 : 0)
| (pKeyEvent->GetKeyCode().IsMod2()
- ? ::css::awt::KeyModifier::MOD2 : 0),
+ ? ::css::awt::KeyModifier::MOD2 : 0)
+ | (pKeyEvent->GetKeyCode().IsMod3()
+ ? ::css::awt::KeyModifier::MOD3 : 0),
pKeyEvent->GetKeyCode().GetCode(), pKeyEvent->GetCharCode(),
sal::static_int_cast< sal_Int16 >(
pKeyEvent->GetKeyCode().GetFunction()));
diff --git a/toolkit/source/awt/vclxtopwindow.cxx b/toolkit/source/awt/vclxtopwindow.cxx
index 907ccb797fd2..26e457d74583 100644
--- a/toolkit/source/awt/vclxtopwindow.cxx
+++ b/toolkit/source/awt/vclxtopwindow.cxx
@@ -33,13 +33,11 @@
#include <com/sun/star/lang/SystemDependent.hpp>
#include <com/sun/star/awt/SystemDependentXWindow.hpp>
-#if !defined(UNX) && !defined(OS2)
+#ifdef WNT
#include <tools/prewin.h>
#include <windows.h>
#include <tools/postwin.h>
-#endif
-
-#ifdef QUARTZ
+#elif defined ( QUARTZ )
#include "premac.h"
#include <Cocoa/Cocoa.h>
#include "postmac.h"
diff --git a/toolkit/source/awt/vclxwindow.cxx b/toolkit/source/awt/vclxwindow.cxx
index c767458f03ae..337400c08713 100644
--- a/toolkit/source/awt/vclxwindow.cxx
+++ b/toolkit/source/awt/vclxwindow.cxx
@@ -35,6 +35,7 @@
#include <com/sun/star/awt/KeyModifier.hpp>
#include <com/sun/star/awt/MouseEvent.hpp>
#include <com/sun/star/awt/MouseButton.hpp>
+#include <com/sun/star/awt/MouseWheelBehavior.hpp>
#include <com/sun/star/awt/XTopWindow.hpp>
#include <com/sun/star/awt/Style.hpp>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
@@ -82,6 +83,7 @@ using ::com::sun::star::style::VerticalAlignment_BOTTOM;
using ::com::sun::star::style::VerticalAlignment_MAKE_FIXED_SIZE;
namespace WritingMode2 = ::com::sun::star::text::WritingMode2;
+namespace MouseWheelBehavior = ::com::sun::star::awt::MouseWheelBehavior;
//====================================================================
@@ -226,6 +228,8 @@ private:
::toolkit::AccessibilityClient maAccFactory;
bool mbDisposed;
bool mbDrawingOntoParent; // no bit mask, is passed around by reference
+ sal_Bool mbEnableVisible;
+ sal_Bool mbDirectVisible;
::osl::Mutex maListenerContainerMutex;
::cppu::OInterfaceContainerHelper maWindow2Listeners;
@@ -273,6 +277,15 @@ public:
*/
VCLXWindowImpl( VCLXWindow& _rAntiImpl, ::vos::IMutex& _rMutex, bool _bWithDefaultProps );
+ /** synchronously mbEnableVisible
+ */
+ void setEnableVisible( sal_Bool bEnableVisible ) { mbEnableVisible = bEnableVisible; }
+ sal_Bool isEnableVisible() { return mbEnableVisible; }
+ /** synchronously mbDirectVisible;
+ */
+ void setDirectVisible( sal_Bool bDirectVisible ) { mbDirectVisible = bDirectVisible; }
+ sal_Bool isDirectVisible() { return mbDirectVisible; }
+
/** asynchronously notifies a mouse event to the VCLXWindow's XMouseListeners
*/
void notifyMouseEvent( const awt::MouseEvent& _rMouseEvent, MouseEventType _nType );
@@ -347,6 +360,8 @@ VCLXWindowImpl::VCLXWindowImpl( VCLXWindow& _rAntiImpl, ::vos::IMutex& _rMutex,
,mrMutex( _rMutex )
,mbDisposed( false )
,mbDrawingOntoParent( false )
+ ,mbEnableVisible(sal_True)
+ ,mbDirectVisible(sal_True)
,maListenerContainerMutex( )
,maWindow2Listeners( maListenerContainerMutex )
,maDockableWindowListeners( maListenerContainerMutex )
@@ -548,6 +563,8 @@ void ImplInitKeyEvent( ::com::sun::star::awt::KeyEvent& rEvent, const KeyEvent&
rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD1;
if ( rEvt.GetKeyCode().IsMod2() )
rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD2;
+ if ( rEvt.GetKeyCode().IsMod3() )
+ rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD3;
rEvent.KeyCode = rEvt.GetKeyCode().GetCode();
rEvent.KeyChar = rEvt.GetCharCode();
@@ -623,7 +640,12 @@ void VCLXWindow::SetWindow( Window* pWindow )
SetOutputDevice( pWindow );
if ( GetWindow() )
+ {
GetWindow()->AddEventListener( LINK( this, VCLXWindow, WindowEventListener ) );
+ sal_Bool bDirectVisible = pWindow ? pWindow->IsVisible() : false;
+ mpImpl->setDirectVisible( bDirectVisible );
+ }
+
}
void VCLXWindow::suspendVclEventListening( )
@@ -1224,7 +1246,8 @@ void VCLXWindow::setVisible( sal_Bool bVisible ) throw(::com::sun::star::uno::Ru
}
}
*/
- pWindow->Show( bVisible );
+ mpImpl->setDirectVisible( bVisible );
+ pWindow->Show( bVisible && mpImpl->isEnableVisible() );
}
}
@@ -1527,6 +1550,7 @@ void VCLXWindow::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds, bool bWithDe
BASEPROPERTY_HELPURL,
BASEPROPERTY_TEXT,
BASEPROPERTY_PRINTABLE,
+ BASEPROPERTY_ENABLEVISIBLE, // for visibility
BASEPROPERTY_TABSTOP,
0);
@@ -1632,19 +1656,27 @@ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const ::com::
}
break;
- case BASEPROPERTY_WHEELWITHOUTFOCUS:
+ case BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR:
{
- sal_Bool bWheelOnHover( sal_True );
- if ( Value >>= bWheelOnHover )
- {
- AllSettings aSettings = pWindow->GetSettings();
- MouseSettings aMouseSettings = aSettings.GetMouseSettings();
+ sal_uInt16 nWheelBehavior( MouseWheelBehavior::SCROLL_FOCUS_ONLY );
+ OSL_VERIFY( Value >>= nWheelBehavior );
- aMouseSettings.SetNoWheelActionWithoutFocus( !bWheelOnHover );
- aSettings.SetMouseSettings( aMouseSettings );
+ AllSettings aSettings = pWindow->GetSettings();
+ MouseSettings aMouseSettings = aSettings.GetMouseSettings();
- pWindow->SetSettings( aSettings, TRUE );
+ USHORT nVclBehavior( MOUSE_WHEEL_FOCUS_ONLY );
+ switch ( nWheelBehavior )
+ {
+ case MouseWheelBehavior::SCROLL_DISABLED: nVclBehavior = MOUSE_WHEEL_DISABLE; break;
+ case MouseWheelBehavior::SCROLL_FOCUS_ONLY: nVclBehavior = MOUSE_WHEEL_FOCUS_ONLY; break;
+ case MouseWheelBehavior::SCROLL_ALWAYS: nVclBehavior = MOUSE_WHEEL_ALWAYS; break;
+ default:
+ OSL_ENSURE( false, "VCLXWindow::setProperty( 'MouseWheelBehavior' ): illegal property value!" );
}
+
+ aMouseSettings.SetWheelBehavior( nWheelBehavior );
+ aSettings.SetMouseSettings( aMouseSettings );
+ pWindow->SetSettings( aSettings, TRUE );
}
break;
@@ -1670,6 +1702,19 @@ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const ::com::
setEnable( b );
}
break;
+ case BASEPROPERTY_ENABLEVISIBLE:
+ {
+ sal_Bool b = sal_False;
+ if ( Value >>= b )
+ {
+ if( b != mpImpl->isEnableVisible() )
+ {
+ mpImpl->setEnableVisible( b );
+ pWindow->Show( b && mpImpl->isDirectVisible() );
+ }
+ }
+ }
+ break;
case BASEPROPERTY_TEXT:
case BASEPROPERTY_LABEL:
case BASEPROPERTY_TITLE:
@@ -2120,10 +2165,19 @@ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const ::com::
aProp <<= mpImpl->mnWritingMode;
break;
- case BASEPROPERTY_WHEELWITHOUTFOCUS:
+ case BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR:
{
- sal_Bool bWheelOnHover = !GetWindow()->GetSettings().GetMouseSettings().GetNoWheelActionWithoutFocus();
- aProp <<= bWheelOnHover;
+ USHORT nVclBehavior = GetWindow()->GetSettings().GetMouseSettings().GetWheelBehavior();
+ sal_Int16 nBehavior = MouseWheelBehavior::SCROLL_FOCUS_ONLY;
+ switch ( nVclBehavior )
+ {
+ case MOUSE_WHEEL_DISABLE: nBehavior = MouseWheelBehavior::SCROLL_DISABLED; break;
+ case MOUSE_WHEEL_FOCUS_ONLY: nBehavior = MouseWheelBehavior::SCROLL_FOCUS_ONLY; break;
+ case MOUSE_WHEEL_ALWAYS: nBehavior = MouseWheelBehavior::SCROLL_ALWAYS; break;
+ default:
+ OSL_ENSURE( false, "VCLXWindow::getProperty( 'MouseWheelBehavior' ): illegal VCL value!" );
+ }
+ aProp <<= nBehavior;
}
break;
@@ -2135,6 +2189,10 @@ void VCLXWindow::setProperty( const ::rtl::OUString& PropertyName, const ::com::
aProp <<= (sal_Bool) GetWindow()->IsEnabled();
break;
+ case BASEPROPERTY_ENABLEVISIBLE:
+ aProp <<= (sal_Bool) mpImpl->isEnableVisible();
+ break;
+
case BASEPROPERTY_TEXT:
case BASEPROPERTY_LABEL:
case BASEPROPERTY_TITLE:
@@ -2409,7 +2467,7 @@ void VCLXWindow::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::star::uno:
if ( !pWindow )
return;
- if ( pWindow )
+ if ( isDesignMode() || mpImpl->isEnableVisible() )
{
TabPage* pTabPage = dynamic_cast< TabPage* >( pWindow );
if ( pTabPage )
@@ -2479,7 +2537,7 @@ void VCLXWindow::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::star::uno:
vcl::PDFExtOutDevData* pPDFExport = dynamic_cast<vcl::PDFExtOutDevData*>(pDev->GetExtOutDevData());
bool bDrawSimple = ( pDev->GetOutDevType() == OUTDEV_PRINTER )
|| ( pDev->GetOutDevViewType() == OUTDEV_VIEWTYPE_PRINTPREVIEW )
- || ( pPDFExport && ! pPDFExport->GetIsExportFormFields() );
+ || ( pPDFExport != NULL );
if ( bDrawSimple )
{
pWindow->Draw( pDev, aP, aSz, WINDOW_DRAW_NOCONTROLS );
diff --git a/toolkit/source/awt/vclxwindow1.cxx b/toolkit/source/awt/vclxwindow1.cxx
index f8dce643697a..4a5315008b9f 100644
--- a/toolkit/source/awt/vclxwindow1.cxx
+++ b/toolkit/source/awt/vclxwindow1.cxx
@@ -38,7 +38,12 @@
#include <vcl/wrkwin.hxx>
#endif
#include <vcl/window.hxx>
-#ifdef QUARTZ
+
+#ifdef WNT
+#include <tools/prewin.h>
+#include <windows.h>
+#include <tools/postwin.h>
+#elif defined ( QUARTZ )
#include "premac.h"
#include <Cocoa/Cocoa.h>
#include "postmac.h"
diff --git a/toolkit/source/awt/vclxwindows.cxx b/toolkit/source/awt/vclxwindows.cxx
index dadb1300675a..b49fa1a621d6 100644
--- a/toolkit/source/awt/vclxwindows.cxx
+++ b/toolkit/source/awt/vclxwindows.cxx
@@ -386,6 +386,7 @@ void VCLXButton::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_DEFAULTBUTTON,
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_GRAPHIC,
BASEPROPERTY_HELPTEXT,
@@ -417,6 +418,13 @@ VCLXButton::VCLXButton()
{
}
+VCLXButton::~VCLXButton()
+{
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("%s", __FUNCTION__);
+#endif
+}
+
::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > VCLXButton::CreateAccessibleContext()
{
return getAccessibleFactory().createAccessibleContext( this );
@@ -661,6 +669,7 @@ void VCLXImageControl::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_BORDERCOLOR,
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_GRAPHIC,
BASEPROPERTY_HELPTEXT,
BASEPROPERTY_HELPURL,
@@ -789,6 +798,7 @@ void VCLXCheckBox::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
PushPropertyIds( rIds,
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_GRAPHIC,
BASEPROPERTY_HELPTEXT,
@@ -1088,6 +1098,7 @@ void VCLXRadioButton::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
PushPropertyIds( rIds,
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_GRAPHIC,
BASEPROPERTY_HELPTEXT,
@@ -1361,11 +1372,21 @@ void VCLXRadioButton::ImplClickedOrToggled( BOOL bToggled )
}
}
+::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > VCLXRadioButton::getFirstActionListener ()
+{
+ if (!maItemListeners.getLength ())
+ return ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > ();
+ return maActionListeners.getElements()[0];
+}
+
// ----------------------------------------------------
// class VCLXSpinField
// ----------------------------------------------------
void VCLXSpinField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
{
+ PushPropertyIds( rIds,
+ BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR,
+ 0 );
VCLXEdit::ImplGetPropertyIds( rIds );
}
@@ -1505,6 +1526,7 @@ void VCLXListBox::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_DROPDOWN,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_HELPTEXT,
BASEPROPERTY_HELPURL,
@@ -1518,6 +1540,7 @@ void VCLXListBox::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_ALIGN,
BASEPROPERTY_WRITING_MODE,
BASEPROPERTY_CONTEXT_WRITING_MODE,
+ BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR,
0);
VCLXWindow::ImplGetPropertyIds( rIds );
}
@@ -2175,6 +2198,9 @@ VCLXDialog::VCLXDialog()
VCLXDialog::~VCLXDialog()
{
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("%s", __FUNCTION__);
+#endif
}
// ::com::sun::star::uno::XInterface
@@ -2692,6 +2718,7 @@ void VCLXFixedHyperlink::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_BORDERCOLOR,
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_HELPTEXT,
BASEPROPERTY_HELPURL,
@@ -2720,6 +2747,7 @@ void VCLXFixedText::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_BORDERCOLOR,
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_HELPTEXT,
BASEPROPERTY_HELPURL,
@@ -2862,6 +2890,7 @@ void VCLXScrollBar::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_BORDERCOLOR,
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_HELPTEXT,
BASEPROPERTY_HELPURL,
BASEPROPERTY_LINEINCREMENT,
@@ -3341,6 +3370,7 @@ void VCLXEdit::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_ECHOCHAR,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_HARDLINEBREAKS,
BASEPROPERTY_HELPTEXT,
@@ -3717,6 +3747,7 @@ void VCLXComboBox::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_DROPDOWN,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_HELPTEXT,
BASEPROPERTY_HELPURL,
@@ -3731,6 +3762,7 @@ void VCLXComboBox::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_ALIGN,
BASEPROPERTY_WRITING_MODE,
BASEPROPERTY_CONTEXT_WRITING_MODE,
+ BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR,
0);
// no, don't call VCLXEdit here - it has properties which we do *not* want to have at at combo box
// #i92690# / 2008-08-12 / frank.schoenheit@sun.com
@@ -3743,6 +3775,13 @@ VCLXComboBox::VCLXComboBox()
{
}
+VCLXComboBox::~VCLXComboBox()
+{
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("%s", __FUNCTION__);
+#endif
+}
+
// ::com::sun::star::uno::XInterface
::com::sun::star::uno::Any VCLXComboBox::queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException)
{
@@ -4226,6 +4265,7 @@ void VCLXDateField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_DROPDOWN,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_EXTDATEFORMAT,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_HELPTEXT,
@@ -4242,6 +4282,7 @@ void VCLXDateField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_HIDEINACTIVESELECTION,
BASEPROPERTY_WRITING_MODE,
BASEPROPERTY_CONTEXT_WRITING_MODE,
+ BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR,
0);
VCLXFormattedSpinField::ImplGetPropertyIds( rIds );
}
@@ -4562,6 +4603,7 @@ void VCLXTimeField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_BORDERCOLOR,
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_EXTTIMEFORMAT,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_HELPTEXT,
@@ -4581,6 +4623,7 @@ void VCLXTimeField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_HIDEINACTIVESELECTION,
BASEPROPERTY_WRITING_MODE,
BASEPROPERTY_CONTEXT_WRITING_MODE,
+ BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR,
0);
VCLXFormattedSpinField::ImplGetPropertyIds( rIds );
}
@@ -4863,6 +4906,7 @@ void VCLXNumericField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_DECIMALACCURACY,
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_HELPTEXT,
BASEPROPERTY_HELPURL,
@@ -4882,6 +4926,7 @@ void VCLXNumericField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_HIDEINACTIVESELECTION,
BASEPROPERTY_WRITING_MODE,
BASEPROPERTY_CONTEXT_WRITING_MODE,
+ BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR,
0);
VCLXFormattedSpinField::ImplGetPropertyIds( rIds );
}
@@ -5203,6 +5248,7 @@ void VCLXMetricField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_DECIMALACCURACY,
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_HELPTEXT,
BASEPROPERTY_HELPURL,
@@ -5220,6 +5266,7 @@ void VCLXMetricField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_CUSTOMUNITTEXT,
BASEPROPERTY_WRITING_MODE,
BASEPROPERTY_CONTEXT_WRITING_MODE,
+ BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR,
0);
VCLXFormattedSpinField::ImplGetPropertyIds( rIds );
}
@@ -5453,6 +5500,7 @@ void VCLXCurrencyField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_DECIMALACCURACY,
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_HELPTEXT,
BASEPROPERTY_HELPURL,
@@ -5472,6 +5520,7 @@ void VCLXCurrencyField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_HIDEINACTIVESELECTION,
BASEPROPERTY_WRITING_MODE,
BASEPROPERTY_CONTEXT_WRITING_MODE,
+ BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR,
0);
VCLXFormattedSpinField::ImplGetPropertyIds( rIds );
}
@@ -5804,6 +5853,7 @@ void VCLXPatternField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_DEFAULTCONTROL,
BASEPROPERTY_EDITMASK,
BASEPROPERTY_ENABLED,
+ BASEPROPERTY_ENABLEVISIBLE,
BASEPROPERTY_FONTDESCRIPTOR,
BASEPROPERTY_HELPTEXT,
BASEPROPERTY_HELPURL,
@@ -5817,6 +5867,7 @@ void VCLXPatternField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
BASEPROPERTY_HIDEINACTIVESELECTION,
BASEPROPERTY_WRITING_MODE,
BASEPROPERTY_CONTEXT_WRITING_MODE,
+ BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR,
0);
VCLXFormattedSpinField::ImplGetPropertyIds( rIds );
}
diff --git a/toolkit/source/controls/formattedcontrol.cxx b/toolkit/source/controls/formattedcontrol.cxx
index c80c3b14e63e..6171067f1185 100644
--- a/toolkit/source/controls/formattedcontrol.cxx
+++ b/toolkit/source/controls/formattedcontrol.cxx
@@ -142,6 +142,7 @@ namespace toolkit
ImplRegisterProperty( BASEPROPERTY_EFFECTIVE_MAX );
ImplRegisterProperty( BASEPROPERTY_EFFECTIVE_MIN );
ImplRegisterProperty( BASEPROPERTY_ENABLED );
+ ImplRegisterProperty( BASEPROPERTY_ENABLEVISIBLE );
ImplRegisterProperty( BASEPROPERTY_FONTDESCRIPTOR );
ImplRegisterProperty( BASEPROPERTY_FORMATKEY );
ImplRegisterProperty( BASEPROPERTY_FORMATSSUPPLIER );
@@ -161,6 +162,7 @@ namespace toolkit
ImplRegisterProperty( BASEPROPERTY_ENFORCE_FORMAT );
ImplRegisterProperty( BASEPROPERTY_WRITING_MODE );
ImplRegisterProperty( BASEPROPERTY_CONTEXT_WRITING_MODE );
+ ImplRegisterProperty( BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR );
Any aTreatAsNumber;
aTreatAsNumber <<= (sal_Bool) sal_True;
@@ -323,8 +325,11 @@ namespace toolkit
++pPropertyNames
)
{
- bSettingValue = ( BASEPROPERTY_EFFECTIVE_VALUE == GetPropertyId( *pPropertyNames ) );
- bSettingText = ( BASEPROPERTY_TEXT == GetPropertyId( *pPropertyNames ) );
+ if ( BASEPROPERTY_EFFECTIVE_VALUE == GetPropertyId( *pPropertyNames ) )
+ bSettingValue = true;
+
+ if ( BASEPROPERTY_TEXT == GetPropertyId( *pPropertyNames ) )
+ bSettingText = true;
}
m_bSettingValueAndText = ( bSettingValue && bSettingText );
diff --git a/toolkit/source/controls/tkspinbutton.cxx b/toolkit/source/controls/tkspinbutton.cxx
index 5c4e47e240dc..138b849a190c 100644
--- a/toolkit/source/controls/tkspinbutton.cxx
+++ b/toolkit/source/controls/tkspinbutton.cxx
@@ -60,6 +60,7 @@ namespace toolkit
ImplRegisterProperty( BASEPROPERTY_BORDERCOLOR );
ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
ImplRegisterProperty( BASEPROPERTY_ENABLED );
+ ImplRegisterProperty( BASEPROPERTY_ENABLEVISIBLE );
ImplRegisterProperty( BASEPROPERTY_HELPTEXT );
ImplRegisterProperty( BASEPROPERTY_HELPURL );
ImplRegisterProperty( BASEPROPERTY_ORIENTATION );
diff --git a/toolkit/source/controls/tree/treecontrol.cxx b/toolkit/source/controls/tree/treecontrol.cxx
index 68c3212f5692..2949954bb13c 100644
--- a/toolkit/source/controls/tree/treecontrol.cxx
+++ b/toolkit/source/controls/tree/treecontrol.cxx
@@ -65,6 +65,7 @@ UnoTreeModel::UnoTreeModel()
ImplRegisterProperty( BASEPROPERTY_BORDERCOLOR );
ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
ImplRegisterProperty( BASEPROPERTY_ENABLED );
+ ImplRegisterProperty( BASEPROPERTY_ENABLEVISIBLE );
ImplRegisterProperty( BASEPROPERTY_FILLCOLOR );
ImplRegisterProperty( BASEPROPERTY_HELPTEXT );
ImplRegisterProperty( BASEPROPERTY_HELPURL );
diff --git a/toolkit/source/controls/unocontrol.cxx b/toolkit/source/controls/unocontrol.cxx
index 72c24f4b25bd..0775b6ee74f3 100644
--- a/toolkit/source/controls/unocontrol.cxx
+++ b/toolkit/source/controls/unocontrol.cxx
@@ -51,6 +51,7 @@
#include <tools/time.hxx>
#include <tools/urlobj.hxx>
#include <tools/debug.hxx>
+#include <tools/diagnose_ex.h>
#include <vcl/svapp.hxx>
#include <vcl/wrkwin.hxx>
#include <comphelper/stl_types.hxx>
@@ -132,7 +133,6 @@ public:
inline VclListenerLock( VCLXWindow* _pLockWindow )
:m_pLockWindow( _pLockWindow )
{
-// DBG_ASSERT( m_pLockWindow, "VclListenerLock::VclListenerLock: invalid window!" );
if ( m_pLockWindow )
m_pLockWindow->suspendVclEventListening( );
}
@@ -143,14 +143,23 @@ public:
}
private:
- VclListenerLock(); // never implemented
+ VclListenerLock(); // never implemented
VclListenerLock( const VclListenerLock& ); // never implemented
VclListenerLock& operator=( const VclListenerLock& ); // never implemented
};
+typedef ::std::map< ::rtl::OUString, sal_Int32 > MapString2Int;
struct UnoControl_Data
{
- ::std::set< ::rtl::OUString > aPropertyNotificationFilter;
+ MapString2Int aSuspendedPropertyNotifications;
+ /// true if and only if our model has a property ResourceResolver
+ bool bLocalizationSupport;
+
+ UnoControl_Data()
+ :aSuspendedPropertyNotifications()
+ ,bLocalizationSupport( false )
+ {
+ }
};
// ----------------------------------------------------
@@ -245,33 +254,34 @@ Reference< XWindowPeer > UnoControl::ImplGetCompatiblePeer( sal_Bool bAcceptE
return xCompatiblePeer;
}
-bool UnoControl::ImplMapPlaceHolder( ::rtl::OUString& rPlaceHolder )
+bool UnoControl::ImplCheckLocalize( ::rtl::OUString& _rPossiblyLocalizable )
{
- rtl::OUString aMappedValue;
+ if ( !mpData->bLocalizationSupport
+ || ( _rPossiblyLocalizable.getLength() == 0 )
+ || ( _rPossiblyLocalizable[0] != '&' )
+ // TODO: make this reasonable. At the moment, everything which by accident starts with a & is considered
+ // localizable, which is probably wrong.
+ )
+ return false;
- Reference< XPropertySet > xPropSet( mxModel, UNO_QUERY );
- if ( xPropSet.is() )
+ try
{
- Any a;
- Reference< resource::XStringResourceResolver > xStringResourceResolver;
- a = xPropSet->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ResourceResolver" )));
- if ( a >>= xStringResourceResolver )
+ Reference< XPropertySet > xPropSet( mxModel, UNO_QUERY_THROW );
+ Reference< resource::XStringResourceResolver > xStringResourceResolver(
+ xPropSet->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ResourceResolver" ) ) ),
+ UNO_QUERY
+ );
+ if ( xStringResourceResolver.is() )
{
- if ( xStringResourceResolver.is() )
- {
- try
- {
- rPlaceHolder = xStringResourceResolver->resolveString( rPlaceHolder );
- return true;
- }
- catch ( resource::MissingResourceException& )
- {
- return false;
- }
- }
+ ::rtl::OUString aLocalizationKey( _rPossiblyLocalizable.copy( 1 ) );
+ _rPossiblyLocalizable = xStringResourceResolver->resolveString( aLocalizationKey );
+ return true;
}
}
-
+ catch( const Exception& )
+ {
+ DBG_UNHANDLED_EXCEPTION();
+ }
return false;
}
@@ -284,56 +294,36 @@ void UnoControl::ImplSetPeerProperty( const ::rtl::OUString& rPropName, const An
if ( mxVclWindowPeer.is() )
{
- Any aVal( rVal );
-
- // We now support a mapping for language dependent properties. This is the
- // central method to implement it.
- if (( rPropName.equalsAsciiL( "Text", 4 )) ||
- ( rPropName.equalsAsciiL( "Label", 5 )) ||
- ( rPropName.equalsAsciiL( "Title", 5 )) ||
- ( rPropName.equalsAsciiL( "HelpText", 8 )) ||
- ( rPropName.equalsAsciiL( "CurrencySymbol", 14 )) ||
- ( rPropName.equalsAsciiL( "StringItemList", 14 )) )
- {
- rtl::OUString aValue;
- uno::Sequence< rtl::OUString > aSeqValue;
+ Any aConvertedValue( rVal );
- if ( aVal >>= aValue )
+ if ( mpData->bLocalizationSupport )
+ {
+ // We now support a mapping for language dependent properties. This is the
+ // central method to implement it.
+ if (( rPropName.equalsAsciiL( "Text", 4 )) ||
+ ( rPropName.equalsAsciiL( "Label", 5 )) ||
+ ( rPropName.equalsAsciiL( "Title", 5 )) ||
+ ( rPropName.equalsAsciiL( "HelpText", 8 )) ||
+ ( rPropName.equalsAsciiL( "CurrencySymbol", 14 )) ||
+ ( rPropName.equalsAsciiL( "StringItemList", 14 )) )
{
- // Map single string value
- if (( aValue.getLength() > 0 ) &&
- ( aValue.compareToAscii( "&", 1 ) == 0 ))
+ ::rtl::OUString aValue;
+ uno::Sequence< rtl::OUString > aSeqValue;
+ if ( aConvertedValue >>= aValue )
{
- // Magic symbol '&' found at first place. Interpret as a place
- // holder identifier. Now try to map it to the real value. The
- // magic symbol must be removed.
- rtl::OUString aKeyValue( aValue.copy( 1 ));
- if ( ImplMapPlaceHolder( aKeyValue ))
- aVal <<= aKeyValue;
+ if ( ImplCheckLocalize( aValue ) )
+ aConvertedValue <<= aValue;
}
- }
- else if ( aVal >>= aSeqValue )
- {
- // Map sequence strings
- for ( sal_Int32 i = 0; i < aSeqValue.getLength(); i++ )
+ else if ( aConvertedValue >>= aSeqValue )
{
- aValue = aSeqValue[i];
- if (( aValue.getLength() > 0 ) &&
- ( aValue.compareToAscii( "&", 1 ) == 0 ))
- {
- // Magic symbol '&' found at first place. Interpret as a place
- // holder identifier. Now try to map it to the real value. The
- // magic symbol must be removed.
- rtl::OUString aKeyValue( aValue.copy( 1 ));
- if ( ImplMapPlaceHolder( aKeyValue ))
- aSeqValue[i] = aKeyValue;
- }
+ for ( sal_Int32 i = 0; i < aSeqValue.getLength(); i++ )
+ ImplCheckLocalize( aSeqValue[i] );
+ aConvertedValue <<= aSeqValue;
}
- aVal <<= aSeqValue;
}
}
- mxVclWindowPeer->setProperty( rPropName, aVal );
+ mxVclWindowPeer->setProperty( rPropName, aConvertedValue );
}
}
@@ -455,13 +445,13 @@ void UnoControl::propertiesChange( const Sequence< PropertyChangeEvent >& rEvent
{
::osl::MutexGuard aGuard( GetMutex() );
- if ( !mpData->aPropertyNotificationFilter.empty() )
+ if ( !mpData->aSuspendedPropertyNotifications.empty() )
{
// strip the property which we are currently updating (somewhere up the stack)
PropertyChangeEvent* pEvents = aEvents.getArray();
PropertyChangeEvent* pEventsEnd = pEvents + aEvents.getLength();
for ( ; pEvents < pEventsEnd; )
- if ( mpData->aPropertyNotificationFilter.find( pEvents->PropertyName ) != mpData->aPropertyNotificationFilter.end() )
+ if ( mpData->aSuspendedPropertyNotifications.find( pEvents->PropertyName ) != mpData->aSuspendedPropertyNotifications.end() )
{
if ( pEvents != pEventsEnd )
::std::copy( pEvents + 1, pEventsEnd, pEvents );
@@ -481,17 +471,22 @@ void UnoControl::propertiesChange( const Sequence< PropertyChangeEvent >& rEvent
void UnoControl::ImplLockPropertyChangeNotification( const ::rtl::OUString& rPropertyName, bool bLock )
{
+ MapString2Int::iterator pos = mpData->aSuspendedPropertyNotifications.find( rPropertyName );
if ( bLock )
{
- OSL_PRECOND( mpData->aPropertyNotificationFilter.find( rPropertyName ) == mpData->aPropertyNotificationFilter.end(),
- "UnoControl::ImplLockPropertyChangeNotification: already locked!" );
- mpData->aPropertyNotificationFilter.insert( rPropertyName );
+ if ( pos == mpData->aSuspendedPropertyNotifications.end() )
+ pos = mpData->aSuspendedPropertyNotifications.insert( MapString2Int::value_type( rPropertyName, 0 ) ).first;
+ ++pos->second;
}
else
{
- OSL_PRECOND( mpData->aPropertyNotificationFilter.find( rPropertyName ) != mpData->aPropertyNotificationFilter.end(),
- "UnoControl::ImplLockPropertyChangeNotification: not locked!" );
- mpData->aPropertyNotificationFilter.erase( rPropertyName );
+ OSL_ENSURE( pos != mpData->aSuspendedPropertyNotifications.end(), "UnoControl::ImplLockPropertyChangeNotification: property not locked!" );
+ if ( pos != mpData->aSuspendedPropertyNotifications.end() )
+ {
+ OSL_ENSURE( pos->second > 0, "UnoControl::ImplLockPropertyChangeNotification: invalid suspension counter!" );
+ if ( 0 == --pos->second )
+ mpData->aSuspendedPropertyNotifications.erase( pos );
+ }
}
}
@@ -1054,7 +1049,13 @@ void UnoControl::draw( sal_Int32 x, sal_Int32 y ) throw(RuntimeException)
}
if ( xDrawPeerView.is() )
+ {
+ Reference< XVclWindowPeer > xWindowPeer;
+ xWindowPeer.set( xDrawPeer, UNO_QUERY );
+ if ( xWindowPeer.is() )
+ xWindowPeer->setDesignMode( mbDesignMode );
xDrawPeerView->draw( x, y );
+ }
if ( bDisposeDrawPeer )
xDrawPeer->dispose();
@@ -1377,16 +1378,28 @@ sal_Bool UnoControl::setModel( const Reference< XControlModel >& rxModel ) throw
if( xPropSet.is() )
xPropSet->removePropertiesChangeListener( xListener );
+ mpData->bLocalizationSupport = false;
mxModel = rxModel;
+
if( mxModel.is() )
{
- xPropSet = Reference< XMultiPropertySet > ( mxModel, UNO_QUERY );
- if( xPropSet.is() )
+ try
{
+ xPropSet.set( mxModel, UNO_QUERY_THROW );
+ Reference< XPropertySetInfo > xPSI( xPropSet->getPropertySetInfo(), UNO_SET_THROW );
+
Sequence< ::rtl::OUString> aNames = lcl_ImplGetPropertyNames( xPropSet );
xPropSet->addPropertiesChangeListener( aNames, xListener );
+
+ mpData->bLocalizationSupport = xPSI->hasPropertyByName( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ResourceResolver" ) ) );
+ }
+ catch( const Exception& )
+ {
+ DBG_UNHANDLED_EXCEPTION();
+ mxModel.clear();
}
}
+
return mxModel.is();
}
@@ -1413,7 +1426,6 @@ void UnoControl::setDesignMode( sal_Bool bOn ) throw(RuntimeException)
// remember this
mbDesignMode = bOn;
xWindow = xWindow.query( getPeer() );
-
// dispose our current AccessibleContext, if we have one
// (changing the design mode implies having a new implementation for this context,
// so the old one must be declared DEFUNC)
diff --git a/toolkit/source/controls/unocontrolmodel.cxx b/toolkit/source/controls/unocontrolmodel.cxx
index 0f54a204a010..cc5faa27eec8 100644
--- a/toolkit/source/controls/unocontrolmodel.cxx
+++ b/toolkit/source/controls/unocontrolmodel.cxx
@@ -36,6 +36,7 @@
#include <com/sun/star/awt/FontWidth.hpp>
#include <com/sun/star/awt/FontWeight.hpp>
#include <com/sun/star/awt/FontSlant.hpp>
+#include <com/sun/star/awt/MouseWheelBehavior.hpp>
#include <com/sun/star/graphic/XGraphicProvider.hpp>
#include <com/sun/star/text/WritingMode2.hpp>
#include <com/sun/star/io/XMarkableStream.hpp>
@@ -294,6 +295,7 @@ void UnoControlModel::ImplPropertyChanged( sal_uInt16 )
case BASEPROPERTY_IMAGEALIGN: aDefault <<= (sal_Int16) 1 /*ImageAlign::TOP*/; break;
case BASEPROPERTY_IMAGEPOSITION: aDefault <<= (sal_Int16) 12 /*ImagePosition::Centered*/; break;
case BASEPROPERTY_PUSHBUTTONTYPE: aDefault <<= (sal_Int16) 0 /*PushButtonType::STANDARD*/; break;
+ case BASEPROPERTY_MOUSE_WHEEL_BEHAVIOUR:aDefault <<= (sal_Int16) awt::MouseWheelBehavior::SCROLL_FOCUS_ONLY; break;
case BASEPROPERTY_DATEMAX: aDefault <<= (sal_Int32) Date( 31, 12, 2200 ).GetDate(); break;
case BASEPROPERTY_DATEMIN: aDefault <<= (sal_Int32) Date( 1, 1, 1900 ).GetDate(); break;
@@ -338,13 +340,13 @@ void UnoControlModel::ImplPropertyChanged( sal_uInt16 )
case BASEPROPERTY_HARDLINEBREAKS:
case BASEPROPERTY_NOLABEL: aDefault <<= (sal_Bool) sal_False; break;
- case BASEPROPERTY_WHEELWITHOUTFOCUS:
case BASEPROPERTY_HIDEINACTIVESELECTION:
case BASEPROPERTY_ENFORCE_FORMAT:
case BASEPROPERTY_AUTOCOMPLETE:
case BASEPROPERTY_SCALEIMAGE:
case BASEPROPERTY_ENABLED:
case BASEPROPERTY_PRINTABLE:
+ case BASEPROPERTY_ENABLEVISIBLE:
case BASEPROPERTY_DECORATION: aDefault <<= (sal_Bool) sal_True; break;
case BASEPROPERTY_HELPTEXT:
diff --git a/toolkit/source/controls/unocontrols.cxx b/toolkit/source/controls/unocontrols.cxx
index 53b28cb7f2ac..3abacef7b67f 100644
--- a/toolkit/source/controls/unocontrols.cxx
+++ b/toolkit/source/controls/unocontrols.cxx
@@ -230,17 +230,7 @@ void UnoEditControl::ImplSetPeerProperty( const ::rtl::OUString& rPropName, cons
{
::rtl::OUString sText;
rVal >>= sText;
- if (( sText.getLength() > 0 ) &&
- ( sText.compareToAscii( "&", 1 ) == 0 ))
- {
- // Magic symbol '&' found at first place. Interpret as a place
- // holder identifier. Now try to map it to the real value. The
- // magic symbol must be removed.
- rtl::OUString aKeyValue( sText.copy( 1 ));
- if ( UnoControl::ImplMapPlaceHolder( aKeyValue ))
- sText = aKeyValue;
- }
-
+ ImplCheckLocalize( sText );
xTextComponent->setText( sText );
bDone = sal_True;
}
@@ -491,6 +481,7 @@ UnoControlFileControlModel::UnoControlFileControlModel()
ImplRegisterProperty( BASEPROPERTY_BORDERCOLOR );
ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
ImplRegisterProperty( BASEPROPERTY_ENABLED );
+ ImplRegisterProperty( BASEPROPERTY_ENABLEVISIBLE );
ImplRegisterProperty( BASEPROPERTY_FONTDESCRIPTOR );
ImplRegisterProperty( BASEPROPERTY_HELPTEXT );
ImplRegisterProperty( BASEPROPERTY_HELPURL );
@@ -1788,6 +1779,7 @@ UnoControlGroupBoxModel::UnoControlGroupBoxModel()
{
ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
ImplRegisterProperty( BASEPROPERTY_ENABLED );
+ ImplRegisterProperty( BASEPROPERTY_ENABLEVISIBLE );
ImplRegisterProperty( BASEPROPERTY_FONTDESCRIPTOR );
ImplRegisterProperty( BASEPROPERTY_HELPTEXT );
ImplRegisterProperty( BASEPROPERTY_HELPURL );
@@ -3532,16 +3524,7 @@ void UnoPatternFieldControl::ImplSetPeerProperty( const ::rtl::OUString& rPropNa
{
// same comment as in UnoControl::ImplSetPeerProperty - see there
::rtl::OUString sText( Text );
- if (( Text.getLength() > 0 ) &&
- ( Text.compareToAscii( "&", 1 ) == 0 ))
- {
- // Magic symbol '&' found at first place. Interpret as a place
- // holder identifier. Now try to map it to the real value. The
- // magic symbol must be removed.
- rtl::OUString aKeyValue( Text.copy( 1 ));
- if ( UnoControl::ImplMapPlaceHolder( aKeyValue ))
- sText = aKeyValue;
- }
+ ImplCheckLocalize( sText );
xPF->setString( sText );
xPF->setMasks( EditMask, LiteralMask );
}
@@ -3613,6 +3596,7 @@ UnoControlProgressBarModel::UnoControlProgressBarModel()
ImplRegisterProperty( BASEPROPERTY_BORDERCOLOR );
ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
ImplRegisterProperty( BASEPROPERTY_ENABLED );
+ ImplRegisterProperty( BASEPROPERTY_ENABLEVISIBLE );
ImplRegisterProperty( BASEPROPERTY_FILLCOLOR );
ImplRegisterProperty( BASEPROPERTY_HELPTEXT );
ImplRegisterProperty( BASEPROPERTY_HELPURL );
@@ -3742,6 +3726,7 @@ UnoControlFixedLineModel::UnoControlFixedLineModel()
ImplRegisterProperty( BASEPROPERTY_BACKGROUNDCOLOR );
ImplRegisterProperty( BASEPROPERTY_DEFAULTCONTROL );
ImplRegisterProperty( BASEPROPERTY_ENABLED );
+ ImplRegisterProperty( BASEPROPERTY_ENABLEVISIBLE );
ImplRegisterProperty( BASEPROPERTY_FONTDESCRIPTOR );
ImplRegisterProperty( BASEPROPERTY_HELPTEXT );
ImplRegisterProperty( BASEPROPERTY_HELPURL );
diff --git a/toolkit/source/helper/property.cxx b/toolkit/source/helper/property.cxx
index bace3ff94771..0560afbd835f 100644
--- a/toolkit/source/helper/property.cxx
+++ b/toolkit/source/helper/property.cxx
@@ -257,7 +257,7 @@ ImplPropertyInfo* ImplGetPropertyInfos( sal_uInt16& rElementCount )
DECL_PROP_2 ( "Complete", COMPLETE, sal_Bool, BOUND, MAYBEDEFAULT ),
DECL_PROP_2 ( "CurrentItemID", CURRENTITEMID, sal_Int16, BOUND, MAYBEDEFAULT ),
- DECL_PROP_2 ( "WheelWithoutFocus", WHEELWITHOUTFOCUS, sal_Bool, BOUND, MAYBEDEFAULT ),
+ DECL_PROP_2 ( "MouseWheelBehavior", MOUSE_WHEEL_BEHAVIOUR, sal_Int16, BOUND, MAYBEDEFAULT ),
DECL_PROP_2 ( "StepTime", STEP_TIME, sal_Int32, BOUND, MAYBEDEFAULT ),
DECL_PROP_2 ( "Decoration", DECORATION, sal_Bool, BOUND, MAYBEDEFAULT ),
@@ -272,7 +272,8 @@ ImplPropertyInfo* ImplGetPropertyInfos( sal_uInt16& rElementCount )
DECL_PROP_2 ( "DialogSourceURL", DIALOGSOURCEURL, ::rtl::OUString, BOUND, MAYBEDEFAULT ),
DECL_PROP_2 ( "URL", URL, ::rtl::OUString, BOUND, MAYBEDEFAULT ),
DECL_PROP_2 ( "WritingMode", WRITING_MODE, sal_Int16, BOUND, MAYBEDEFAULT ),
- DECL_PROP_3 ( "ContextWritingMode", CONTEXT_WRITING_MODE, sal_Int16, BOUND, MAYBEDEFAULT, TRANSIENT )
+ DECL_PROP_3 ( "ContextWritingMode", CONTEXT_WRITING_MODE, sal_Int16, BOUND, MAYBEDEFAULT, TRANSIENT ),
+ DECL_PROP_2 ( "EnableVisible", ENABLEVISIBLE, sal_Bool, BOUND, MAYBEDEFAULT )
};
pPropertyInfos = aImplPropertyInfos;
nElements = sizeof( aImplPropertyInfos ) / sizeof( ImplPropertyInfo );
diff --git a/toolkit/source/helper/unowrapper.cxx b/toolkit/source/helper/unowrapper.cxx
index fe41ad9a52ef..a652d493e653 100644
--- a/toolkit/source/helper/unowrapper.cxx
+++ b/toolkit/source/helper/unowrapper.cxx
@@ -292,11 +292,17 @@ void UnoWrapper::WindowDestroyed( Window* pWindow )
if ( pParent && pParent->GetWindowPeer() )
pParent->GetWindowPeer()->notifyWindowRemoved( *pWindow );
- if ( pWindow && pWindow->GetWindowPeer() )
+ VCLXWindow* pWindowPeer = pWindow->GetWindowPeer();
+ uno::Reference< lang::XComponent > xWindowPeerComp( pWindow->GetComponentInterface( FALSE ), uno::UNO_QUERY );
+ OSL_ENSURE( ( pWindowPeer != NULL ) == ( xWindowPeerComp.is() == sal_True ),
+ "UnoWrapper::WindowDestroyed: inconsistency in the window's peers!" );
+ if ( pWindowPeer )
{
- pWindow->GetWindowPeer()->SetWindow( NULL );
+ pWindowPeer->SetWindow( NULL );
pWindow->SetWindowPeer( NULL, NULL );
}
+ if ( xWindowPeerComp.is() )
+ xWindowPeerComp->dispose();
// #102132# Iterate over frames after setting Window peer to NULL,
// because while destroying other frames, we get get into the method again and try
diff --git a/toolkit/source/helper/vclunohelper.cxx b/toolkit/source/helper/vclunohelper.cxx
index d76b56a6a37d..029e520baca6 100644
--- a/toolkit/source/helper/vclunohelper.cxx
+++ b/toolkit/source/helper/vclunohelper.cxx
@@ -736,4 +736,12 @@ com::sun::star::awt::Point VCLUnoHelper::ConvertToAWTPoint(::Point /* VCLPoint *
return aAWTPoint;
}
+::Rectangle VCLUnoHelper::ConvertToVCLRect( ::com::sun::star::awt::Rectangle const & _rRect )
+{
+ return ::Rectangle( _rRect.X, _rRect.Y, _rRect.X + _rRect.Width - 1, _rRect.Y + _rRect.Height - 1 );
+}
+::com::sun::star::awt::Rectangle VCLUnoHelper::ConvertToAWTRect( ::Rectangle const & _rRect )
+{
+ return ::com::sun::star::awt::Rectangle( _rRect.Left(), _rRect.Top(), _rRect.GetWidth(), _rRect.GetHeight() );
+}
diff --git a/toolkit/source/layout/bin.cxx b/toolkit/source/layout/core/bin.cxx
index fa521ca91ca3..390c574c46c6 100644
--- a/toolkit/source/layout/bin.cxx
+++ b/toolkit/source/layout/core/bin.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: bin.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -165,6 +165,12 @@ Align::allocateArea( const awt::Rectangle &rArea )
allocateChildAt( mxChild, aChildArea );
}
+bool
+Align::emptyVisible ()
+{
+ return true;
+}
+
/* MinSize */
MinSize::MinSize() : Bin()
@@ -178,6 +184,12 @@ MinSize::MinSize() : Bin()
&mnMinHeight );
}
+bool
+MinSize::emptyVisible ()
+{
+ return true;
+}
+
awt::Size SAL_CALL MinSize::getMinimumSize()
throw(uno::RuntimeException)
{
diff --git a/toolkit/source/layout/bin.hxx b/toolkit/source/layout/core/bin.hxx
index fb3991869a6c..23d082076359 100644
--- a/toolkit/source/layout/bin.hxx
+++ b/toolkit/source/layout/core/bin.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: bin.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -31,10 +31,10 @@
/* A few simple binary containers */
-#ifndef CORE_BIN_HXX
-#define CORE_BIN_HXX
+#ifndef LAYOUT_CORE_BIN_HXX
+#define LAYOUT_CORE_BIN_HXX
-#include "container.hxx"
+#include <layout/core/container.hxx>
namespace layoutimpl
{
@@ -75,8 +75,6 @@ public:
// css::awt::XLayoutConstrains
virtual css::awt::Size SAL_CALL getMinimumSize()
throw(css::uno::RuntimeException);
-
- PROPHELPER_SET_INFO
};
// Align gives control over child position on the allocated space.
@@ -91,11 +89,11 @@ protected:
public:
Align();
+ bool emptyVisible ();
+
// css::awt::XLayoutContainer
virtual void SAL_CALL allocateArea( const css::awt::Rectangle &rArea )
throw (css::uno::RuntimeException);
-
- PROPHELPER_SET_INFO
};
// Makes child request its or a specified size, whatever is larger.
@@ -108,13 +106,12 @@ protected:
public:
MinSize();
+ bool emptyVisible ();
// css::awt::XLayoutContainer
virtual css::awt::Size SAL_CALL getMinimumSize()
throw(css::uno::RuntimeException);
-
- PROPHELPER_SET_INFO
};
} // namespace layoutimpl
-#endif /*CORE_BIN_HXX*/
+#endif /* LAYOUT_CORE_BIN_HXX */
diff --git a/toolkit/source/layout/box-base.cxx b/toolkit/source/layout/core/box-base.cxx
index 7addc617a511..63cb49901ec4 100644
--- a/toolkit/source/layout/box-base.cxx
+++ b/toolkit/source/layout/core/box-base.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: box-base.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.2 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -69,9 +69,9 @@ static bool isVisible( uno::Reference< awt::XLayoutConstrains > xWidget )
uno::Sequence< uno::Reference< awt::XLayoutConstrains > > aChildren
= xContainer->getChildren();
- // FIXME: <flow> workaround: empty visible containers always visible:
- if ( !aChildren.getLength() )
- return true;
+ if (!aChildren.getLength ())
+ if (Container *c = dynamic_cast <Container*> (xWidget.get ()))
+ return c->emptyVisible ();
for ( int i = 0; i < aChildren.getLength(); i++ )
if ( isVisible( aChildren[i] ) )
@@ -88,16 +88,22 @@ bool Box_Base::ChildData::isVisible()
return layoutimpl::isVisible( mxChild );
}
+void
+Box_Base::AddChild (uno::Reference <awt::XLayoutConstrains> const& xChild)
+{
+ ChildData *pData = createChild (xChild);
+ maChildren.push_back (pData);
+ queueResize ();
+}
+
void SAL_CALL
-Box_Base::addChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
+Box_Base::addChild (uno::Reference <awt::XLayoutConstrains> const& xChild)
throw (uno::RuntimeException, awt::MaxChildrenException)
{
- if ( xChild.is() )
+ if (xChild.is ())
{
- ChildData *pData = createChild( xChild );
- maChildren.push_back( pData );
- setChildParent( xChild );
- queueResize();
+ AddChild (xChild);
+ setChildParent (xChild);
}
}
diff --git a/toolkit/source/layout/box-base.hxx b/toolkit/source/layout/core/box-base.hxx
index 208b8dd6a537..c4958a303540 100644
--- a/toolkit/source/layout/box-base.hxx
+++ b/toolkit/source/layout/core/box-base.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: box-base.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.2 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,10 +29,10 @@
*
************************************************************************/
-#ifndef CORE_BOX_BASE_HXX
-#define CORE_BOX_BASE_HXX
+#ifndef LAYOUT_CORE_BOX_BASE_HXX
+#define LAYOUT_CORE_BOX_BASE_HXX
-#include "container.hxx"
+#include <layout/core/container.hxx>
#include <list>
@@ -57,7 +57,6 @@ public:
struct ChildProps: public PropHelper
{
//ChildProps( ChildProps* );
- PROPHELPER_SET_INFO
};
protected:
@@ -70,8 +69,10 @@ protected:
ChildData *removeChildData( std::list< ChildData *>, css::uno::Reference< css::awt::XLayoutConstrains > const& Child );
public:
+ void AddChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child);
+
// css::awt::XLayoutContainer
- virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
+ virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child)
throw (css::uno::RuntimeException, css::awt::MaxChildrenException);
virtual void SAL_CALL removeChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
throw (css::uno::RuntimeException);
@@ -87,4 +88,4 @@ public:
} // namespace layoutimpl
-#endif /* CORE_BOX__BASE HXX */
+#endif /* LAYOUT_CORE_BOX_BASE HXX */
diff --git a/toolkit/source/layout/box.cxx b/toolkit/source/layout/core/box.cxx
index 6466ab9cd07d..254099d96411 100644
--- a/toolkit/source/layout/box.cxx
+++ b/toolkit/source/layout/core/box.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: box.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -65,9 +65,9 @@ Box::ChildData::ChildData( uno::Reference< awt::XLayoutConstrains > const& xChil
Box::ChildData*
Box::createChild( uno::Reference< awt::XLayoutConstrains > const& xChild )
-{
+ {
return new ChildData( xChild );
-}
+ }
Box::ChildProps*
Box::createChildProps( Box_Base::ChildData *pData )
diff --git a/toolkit/source/layout/box.hxx b/toolkit/source/layout/core/box.hxx
index 2b09ede7f357..0c36ce335213 100644
--- a/toolkit/source/layout/box.hxx
+++ b/toolkit/source/layout/core/box.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: box.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,10 +29,10 @@
*
************************************************************************/
-#ifndef CORE_BOX_HXX
-#define CORE_BOX_HXX
+#ifndef LAYOUT_CORE_BOX_HXX
+#define LAYOUT_CORE_BOX_HXX
-#include "box-base.hxx"
+#include <layout/core/box-base.hxx>
#include <com/sun/star/awt/Point.hpp>
@@ -83,8 +83,6 @@ public:
// helper: mix of getMinimumSize() and getHeightForWidth()
css::awt::Size calculateSize( long nWidth = 0 );
- PROPHELPER_SET_INFO
-
private:
/* Helpers to deal with the joint Box directions. */
inline int primDim (const css::awt::Size &size)
@@ -105,4 +103,4 @@ struct HBox : public Box
} // namespace layoutimpl
-#endif /* CORE_BOX_HXX */
+#endif /* LAYOUT_CORE_BOX_HXX */
diff --git a/toolkit/source/layout/byteseq.cxx b/toolkit/source/layout/core/byteseq.cxx
index a40807100c3b..ffa9852bd303 100644
--- a/toolkit/source/layout/byteseq.cxx
+++ b/toolkit/source/layout/core/byteseq.cxx
@@ -6,8 +6,8 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: byteseq.cxx,v $
- * $Revision: 1.4 $
+ * $RCSfile$
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
diff --git a/toolkit/source/layout/container.cxx b/toolkit/source/layout/core/container.cxx
index af40af05e36d..5978ae7f04a4 100644
--- a/toolkit/source/layout/container.cxx
+++ b/toolkit/source/layout/core/container.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: container.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -50,6 +50,12 @@ Container::Container()
setChangeListener( this );
}
+bool
+Container::emptyVisible ()
+{
+ return false;
+}
+
uno::Any
Container::queryInterface( const uno::Type & rType ) throw (uno::RuntimeException)
{
diff --git a/toolkit/source/layout/container.hxx b/toolkit/source/layout/core/container.hxx
index 70ec10c678d2..4dbd61cd398c 100644
--- a/toolkit/source/layout/container.hxx
+++ b/toolkit/source/layout/core/container.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: container.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,10 +29,10 @@
*
************************************************************************/
-#ifndef CORE_CONTAINER_HXX
-#define CORE_CONTAINER_HXX
+#ifndef LAYOUT_CORE_CONTAINER_HXX
+#define LAYOUT_CORE_CONTAINER_HXX
-#include "helper.hxx"
+#include <layout/core/helper.hxx>
#include <cppuhelper/implbase2.hxx>
#include <com/sun/star/awt/MaxChildrenException.hpp>
@@ -44,7 +44,7 @@ namespace css = ::com::sun::star;
typedef ::cppu::WeakImplHelper2< css::awt::XLayoutContainer,
css::awt::XLayoutConstrains > Container_Base;
-class Container : public Container_Base, public PropHelper, public PropHelper::Listener
+class TOOLKIT_DLLPUBLIC Container : public Container_Base, public PropHelper, public PropHelper::Listener
{
friend class ChildProps;
protected:
@@ -73,6 +73,8 @@ public:
Container();
virtual ~Container() {}
+ virtual bool emptyVisible ();
+
// XInterface
virtual void SAL_CALL acquire() throw() { PropHelper::acquire(); }
virtual void SAL_CALL release() throw() { PropHelper::release(); }
@@ -129,12 +131,10 @@ public:
css::awt::Size SAL_CALL calcAdjustedSize( const css::awt::Size& rNewSize )
throw(css::uno::RuntimeException) { return rNewSize; }
-PROPHELPER_SET_INFO
-
protected:
void propertiesChanged();
};
} // namespace layoutimpl
-#endif /*CORE_CONTAINER_HXX*/
+#endif /* LAYOUT_CORE_CONTAINER_HXX */
diff --git a/toolkit/source/layout/dialogbuttonhbox.cxx b/toolkit/source/layout/core/dialogbuttonhbox.cxx
index 1337b79cce8c..9334ef688135 100644
--- a/toolkit/source/layout/dialogbuttonhbox.cxx
+++ b/toolkit/source/layout/core/dialogbuttonhbox.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: dialogbuttonhbox.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -39,13 +39,12 @@
#include "proplist.hxx"
#if TEST_LAYOUT && !defined( DBG_UTIL )
-#include <stdio.h>
#undef DBG_ERROR
-#define DBG_ERROR printf
+#define DBG_ERROR OSL_TRACE
#undef DBG_ERROR1
-#define DBG_ERROR1 printf
+#define DBG_ERROR1 OSL_TRACE
#undef DBG_ERROR2
-#define DBG_ERROR2 printf
+#define DBG_ERROR2 OSL_TRACE
#endif /* TEST_LAYOUT && !DBG_UTIL */
namespace layoutimpl
diff --git a/toolkit/source/layout/dialogbuttonhbox.hxx b/toolkit/source/layout/core/dialogbuttonhbox.hxx
index 23ea3b2c9c00..26bab6d0602c 100644
--- a/toolkit/source/layout/dialogbuttonhbox.hxx
+++ b/toolkit/source/layout/core/dialogbuttonhbox.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: dialogbuttonhbox.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,11 +29,11 @@
*
************************************************************************/
-#ifndef CORE_DIALOGBUTTONHBOX_HXX
-#define CORE_DIALOGBUTTONHBOX_HXX
+#ifndef LAYOUT_CORE_DIALOGBUTTONHBOX_HXX
+#define LAYOUT_CORE_DIALOGBUTTONHBOX_HXX
-#include "box.hxx"
-#include "flow.hxx"
+#include <layout/core/box.hxx>
+#include <layout/core/flow.hxx>
namespace layoutimpl
{
@@ -74,4 +74,4 @@ private:
} // namespace layoutimpl
-#endif /* CORE_DIALOGBUTTONHBOX_HXX */
+#endif /* LAYOUT_CORE_DIALOGBUTTONHBOX_HXX */
diff --git a/toolkit/source/layout/factory.cxx b/toolkit/source/layout/core/factory.cxx
index 0e5ce93756f4..3462ba51648d 100644
--- a/toolkit/source/layout/factory.cxx
+++ b/toolkit/source/layout/core/factory.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: factory.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -41,52 +41,52 @@ using namespace ::com::sun::star;
using namespace layoutimpl;
void * SAL_CALL comp_Layout_component_getFactory( const char * pImplName, void * pServiceManager, void * /*registryKey*/ )
-{
- void * pRet = 0;
+ {
+ void * pRet = 0;
- ::rtl::OUString aImplName( ::rtl::OUString::createFromAscii( pImplName ) );
- uno::Reference< lang::XSingleServiceFactory > xFactory;
+ ::rtl::OUString aImplName( ::rtl::OUString::createFromAscii( pImplName ) );
+ uno::Reference< lang::XSingleServiceFactory > xFactory;
- if ( pServiceManager && aImplName.equals( LayoutFactory::impl_staticGetImplementationName() ) )
- xFactory = ::cppu::createOneInstanceFactory( reinterpret_cast< lang::XMultiServiceFactory*>( pServiceManager ),
- LayoutFactory::impl_staticGetImplementationName(),
- LayoutFactory::impl_staticCreateSelfInstance,
- LayoutFactory::impl_staticGetSupportedServiceNames() );
- if ( xFactory.is() )
- {
- xFactory->acquire();
- pRet = xFactory.get();
- }
+ if ( pServiceManager && aImplName.equals( LayoutFactory::impl_staticGetImplementationName() ) )
+ xFactory = ::cppu::createOneInstanceFactory( reinterpret_cast< lang::XMultiServiceFactory*>( pServiceManager ),
+ LayoutFactory::impl_staticGetImplementationName(),
+ LayoutFactory::impl_staticCreateSelfInstance,
+ LayoutFactory::impl_staticGetSupportedServiceNames() );
+ if ( xFactory.is() )
+ {
+ xFactory->acquire();
+ pRet = xFactory.get();
+ }
- return pRet;
-}
+ return pRet;
+ }
sal_Bool SAL_CALL comp_Layout_component_writeInfo( void * /*serviceManager*/, void * pRegistryKey )
-{
- if ( pRegistryKey )
{
- try
+ if ( pRegistryKey )
{
- uno::Reference< registry::XRegistryKey > xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) );
- uno::Reference< registry::XRegistryKey > xNewKey;
-
- xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- LayoutFactory::impl_staticGetImplementationName() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
-
- const uno::Sequence< ::rtl::OUString > aServices = LayoutFactory::impl_staticGetSupportedServiceNames();
- for ( sal_Int32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
- }
- catch (registry::InvalidRegistryException &)
+ try
+ {
+ uno::Reference< registry::XRegistryKey > xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) );
+ uno::Reference< registry::XRegistryKey > xNewKey;
+
+ xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
+ LayoutFactory::impl_staticGetImplementationName() +
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
+
+ const uno::Sequence< ::rtl::OUString > aServices = LayoutFactory::impl_staticGetSupportedServiceNames();
+ for ( sal_Int32 i = 0; i < aServices.getLength(); i++ )
+ xNewKey->createKey( aServices.getConstArray()[i] );
+
+ return sal_True;
+ }
+ catch (registry::InvalidRegistryException &)
{
OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
}
+ }
+ return sal_False;
}
- return sal_False;
-}
// Component registration
::rtl::OUString SAL_CALL LayoutFactory::impl_staticGetImplementationName()
diff --git a/toolkit/source/layout/factory.hxx b/toolkit/source/layout/core/factory.hxx
index 6c7162475e6d..3715b1f7efcb 100644
--- a/toolkit/source/layout/factory.hxx
+++ b/toolkit/source/layout/core/factory.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: factory.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,8 +29,8 @@
*
************************************************************************/
-#ifndef FACTORY_HXX_
-#define FACTORY_HXX_
+#ifndef LAYOUT_CORE_FACTORY_HXX
+#define LAYOUT_CORE_FACTORY_HXX
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
@@ -75,4 +75,4 @@ public:
};
-#endif /* FACTORY_HXX */
+#endif /* LAYOUT_CORE_FACTORY_HXX */
diff --git a/toolkit/source/layout/flow.cxx b/toolkit/source/layout/core/flow.cxx
index 5d53a17ccd4f..7d856de1f714 100644
--- a/toolkit/source/layout/flow.cxx
+++ b/toolkit/source/layout/core/flow.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: flow.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -56,6 +56,12 @@ Flow::Flow()
&mnSpacing );
}
+bool
+Flow::emptyVisible ()
+{
+ return true;
+}
+
void SAL_CALL
Flow::addChild( const uno::Reference< awt::XLayoutConstrains >& xChild )
throw (uno::RuntimeException, css::awt::MaxChildrenException)
@@ -97,7 +103,7 @@ Flow::getChildren()
uno::Sequence< uno::Reference< awt::XLayoutConstrains > > children( maChildren.size() );
unsigned int i = 0;
for ( std::list< ChildData * >::iterator it = maChildren.begin();
- it != maChildren.end(); it++, i++ )
+ it != maChildren.end(); it++, i++ )
children[i] = (*it)->xChild;
return children;
diff --git a/toolkit/source/layout/flow.hxx b/toolkit/source/layout/core/flow.hxx
index de217720315e..d650d61f4e40 100644
--- a/toolkit/source/layout/flow.hxx
+++ b/toolkit/source/layout/core/flow.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: flow.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,10 +29,10 @@
*
************************************************************************/
-#ifndef CORE_FLOW_HXX
-#define CORE_FLOW_HXX
+#ifndef LAYOUT_CORE_FLOW_HXX
+#define LAYOUT_CORE_FLOW_HXX
-#include "container.hxx"
+#include <layout/core/container.hxx>
#include <list>
@@ -63,6 +63,8 @@ protected:
public:
Flow();
+ bool emptyVisible ();
+
// css::awt::XLayoutContainer
virtual void SAL_CALL addChild( const css::uno::Reference< css::awt::XLayoutConstrains >& Child )
throw (css::uno::RuntimeException, css::awt::MaxChildrenException);
@@ -87,8 +89,6 @@ public:
virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 nWidth )
throw(css::uno::RuntimeException);
-PROPHELPER_SET_INFO
-
private:
// shared between getMinimumSize() and getHeightForWidth()
css::awt::Size calculateSize( long nMaxWidth );
@@ -96,4 +96,4 @@ private:
} // namespace layoutimpl
-#endif /*FLOW_CORE_HXX*/
+#endif /* LAYOUT_FLOW_CORE_HXX */
diff --git a/toolkit/source/layout/core/helper.cxx b/toolkit/source/layout/core/helper.cxx
new file mode 100644
index 000000000000..02c10ed9dc2b
--- /dev/null
+++ b/toolkit/source/layout/core/helper.cxx
@@ -0,0 +1,676 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile$
+ *
+ * $Revision$
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "helper.hxx"
+
+#include <assert.h>
+#include <list>
+#include <com/sun/star/awt/WindowAttribute.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
+#include <toolkit/awt/vclxwindow.hxx>
+#include <tools/debug.hxx>
+
+#include "proplist.hxx"
+
+#if TEST_LAYOUT && !defined( DBG_UTIL )
+#undef DBG_ERROR
+#define DBG_ERROR OSL_TRACE
+#undef DBG_ERROR1
+#define DBG_ERROR1 OSL_TRACE
+#undef DBG_ERROR2
+#define DBG_ERROR2 OSL_TRACE
+#endif /* TEST_LAYOUT && !DBG_UTIL */
+
+namespace layoutimpl
+{
+using namespace com::sun::star;
+using rtl::OUString;
+
+uno::Reference< awt::XWindowPeer >
+getParent( uno::Reference< uno::XInterface > xRef )
+{
+ do
+ {
+ uno::Reference< awt::XWindowPeer > xPeer( xRef, uno::UNO_QUERY );
+ if ( xPeer.is() )
+ return xPeer;
+
+ uno::Reference< awt::XLayoutContainer > xCont( xRef, uno::UNO_QUERY );
+ if ( xCont.is() )
+ xRef = xCont->getParent();
+ }
+ while ( xRef.is() );
+
+ return uno::Reference< awt::XWindowPeer >();
+}
+
+#if 0
+static uno::Reference< awt::XWindowPeer >
+getToplevel( uno::Reference< uno::XInterface > xRef )
+{
+ uno::Reference< awt::XWindowPeer > xTop, i;
+ while ( ( i = uno::Reference< awt::XWindowPeer >( xRef, uno::UNO_QUERY ) ).is() )
+ {
+ xTop = i;
+
+ uno::Reference< awt::XLayoutContainer > xCont( xRef, uno::UNO_QUERY );
+ if ( xCont.is() )
+ xRef = xCont->getParent();
+ else
+ xRef = uno::Reference< awt::XWindowPeer >();
+ }
+
+ return xTop;
+}
+#endif
+
+}
+
+#include "bin.hxx"
+#include "box.hxx"
+#include "dialogbuttonhbox.hxx"
+#include "flow.hxx"
+#include "localized-string.hxx"
+#include "table.hxx"
+
+namespace layoutimpl
+{
+
+oslModule WidgetFactory::mSfx2Library = 0;
+WindowCreator WidgetFactory::mSfx2CreateWidget = 0;
+
+uno::Reference <awt::XLayoutContainer> WidgetFactory::createContainer (OUString const& name)
+{
+ uno::Reference< awt::XLayoutContainer > xPeer;
+
+ if ( name.equalsAscii( "hbox" ) )
+ xPeer = uno::Reference< awt::XLayoutContainer >( new HBox() );
+ else if ( name.equalsAscii( "vbox" ) )
+ xPeer = uno::Reference< awt::XLayoutContainer >( new VBox() );
+ else if ( name.equalsAscii( "table" ) )
+ xPeer = uno::Reference< awt::XLayoutContainer >( new Table() );
+ else if ( name.equalsAscii( "flow" ) )
+ xPeer = uno::Reference< awt::XLayoutContainer >( new Flow() );
+ else if ( name.equalsAscii( "bin" ) )
+ xPeer = uno::Reference< awt::XLayoutContainer >( new Bin() );
+ else if ( name.equalsAscii( "min-size" ) )
+ xPeer = uno::Reference< awt::XLayoutContainer >( new MinSize() );
+ else if ( name.equalsAscii( "align" ) )
+ xPeer = uno::Reference< awt::XLayoutContainer >( new Align() );
+ else if ( name.equalsAscii( "dialogbuttonhbox" ) )
+ xPeer = uno::Reference< awt::XLayoutContainer >( new DialogButtonHBox() );
+
+ return xPeer;
+}
+
+uno::Reference <awt::XLayoutConstrains> WidgetFactory::toolkitCreateWidget (uno::Reference <awt::XToolkit> xToolkit, uno::Reference <uno::XInterface> xParent, OUString const& name, long properties)
+{
+ uno::Reference< awt::XLayoutConstrains > xPeer;
+ bool bToplevel = !xParent.is();
+
+ // UNO Control Widget
+ awt::WindowDescriptor desc;
+ if ( bToplevel )
+ desc.Type = awt::WindowClass_TOP;
+ else
+ {
+ desc.Type = awt::WindowClass_SIMPLE;
+
+#if 0
+ // top container -- a wrapper for framewindow -- is de-coupled
+ // from awt::XWindowPeer. So, getParent() fails at it.
+ uno::Reference< awt::XWindowPeer > xWinParent = getParent( xParent );
+#else
+ uno::Reference< awt::XWindowPeer > xWinParent( xParent, uno::UNO_QUERY );
+#endif
+ assert( xParent.is() );
+ assert( xWinParent.is() );
+ /*
+ With the new three layer instarr/rpath feature, when
+ prepending toolkit/unxlngx6.pro/lib or $SOLARVER/lib to
+ LD_LIBRARY_PATH, VCLXWindow::GetImplementation returns 0x0
+ vclxtoolkit::ImplCreateWindow failing to create any widget;
+ although it succeeds here.
+
+ While developing, one now must copy libtlx.so to
+ $OOO_INSTALL_PREFIX/openoffice.org/basis3.0/program/libtklx.so
+ each time.
+ */
+ VCLXWindow* parentComponent = VCLXWindow::GetImplementation( xWinParent );
+ if ( !parentComponent )
+ throw uno::RuntimeException(
+ OUString::createFromAscii( "parent has no implementation" ),
+ uno::Reference< uno::XInterface >() );
+ desc.Parent = xWinParent;
+ }
+
+ desc.ParentIndex = 0;
+ // debugging help ...
+ desc.Bounds.X = 0;
+ desc.Bounds.Y = 0;
+ desc.Bounds.Width = 300;
+ desc.Bounds.Height = 200;
+
+ desc.WindowAttributes = properties;
+ desc.WindowServiceName = name;
+
+ uno::Reference< awt::XWindowPeer > xWinPeer;
+ try
+ {
+ OSL_TRACE("Asking toolkit: %s", OUSTRING_CSTR( desc.WindowServiceName ) );
+ xWinPeer = xToolkit->createWindow( desc );
+ if ( !xWinPeer.is() )
+ throw uno::RuntimeException(
+ OUString( RTL_CONSTASCII_USTRINGPARAM( "Cannot create peer" ) ),
+ uno::Reference< uno::XInterface >() );
+ xPeer = uno::Reference< awt::XLayoutConstrains >( xWinPeer, uno::UNO_QUERY );
+ }
+ catch( uno::Exception & )
+ {
+ DBG_ERROR1( "Warning: %s is not a recognized type\n", OUSTRING_CSTR( name ) );
+ return uno::Reference< awt::XLayoutConstrains >();
+ }
+
+#if 0 // This shadows the show="false" property and seems otherwise
+ // unnecessary
+
+ // default to visible, let then people change it on properties
+ if ( ! bToplevel )
+ {
+ uno::Reference< awt::XWindow> xWindow( xPeer, uno::UNO_QUERY );
+ if ( xWindow.is() )
+ xWindow->setVisible( true );
+ }
+#endif
+
+ return xPeer;
+}
+
+uno::Reference< awt::XLayoutConstrains >
+WidgetFactory::createWidget (uno::Reference< awt::XToolkit > xToolkit, uno::Reference< uno::XInterface > xParent, OUString const& name, long properties)
+{
+ uno::Reference< awt::XLayoutConstrains > xPeer;
+
+ xPeer = uno::Reference <awt::XLayoutConstrains> (createContainer (name), uno::UNO_QUERY);
+ if ( xPeer.is() )
+ return xPeer;
+
+ xPeer = implCreateWidget (xParent, name, properties);
+ if (xPeer.is ())
+ return xPeer;
+
+#define FIXED_INFO 1
+#if FIXED_INFO
+ OUString tName = name;
+ // FIXME
+ if ( name.equalsAscii( "fixedinfo" ) )
+ tName = OUString::createFromAscii( "fixedtext" );
+ xPeer = toolkitCreateWidget (xToolkit, xParent, tName, properties);
+#else
+ xPeer = toolkitCreateWidget (xToolkit, xParent, name, properties);
+#endif
+
+ return xPeer;
+}
+
+PropHelper::PropHelper() : LockHelper()
+ , cppu::OPropertySetHelper( maBrdcstHelper )
+ , pHelper( NULL )
+{
+}
+
+void
+PropHelper::addProp (const char *pName, sal_Int32 nNameLen, rtl_TextEncoding e,
+ uno::Type aType, void *pPtr)
+{
+ // this sucks rocks for effiency ...
+ PropDetails aDetails;
+ aDetails.aName = rtl::OUString::intern( pName, nNameLen, e );
+ aDetails.aType = aType;
+ aDetails.pValue = pPtr;
+ maDetails.push_back( aDetails );
+}
+
+cppu::IPropertyArrayHelper & SAL_CALL
+PropHelper::getInfoHelper()
+{
+ if ( ! pHelper )
+ {
+ uno::Sequence< beans::Property > aProps( maDetails.size() );
+ for ( unsigned int i = 0; i < maDetails.size(); i++)
+ {
+ aProps[i].Name = maDetails[i].aName;
+ aProps[i].Type = maDetails[i].aType;
+ aProps[i].Handle = i;
+ aProps[i].Attributes = 0;
+ }
+ pHelper = new cppu::OPropertyArrayHelper( aProps, false /* fixme: faster ? */ );
+
+ }
+ return *pHelper;
+}
+
+sal_Bool SAL_CALL
+PropHelper::convertFastPropertyValue(
+ uno::Any & rConvertedValue,
+ uno::Any & rOldValue,
+ sal_Int32 nHandle,
+ const uno::Any& rValue )
+ throw (lang::IllegalArgumentException)
+{
+ OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
+
+ // FIXME: no Any::getValue ...
+ getFastPropertyValue( rOldValue, nHandle );
+ if ( rOldValue != rValue )
+ {
+ rConvertedValue = rValue;
+ return sal_True; // changed
+ }
+ else
+ {
+ rConvertedValue.clear();
+ rOldValue.clear();
+ }
+ return sal_False;
+}
+
+
+void SAL_CALL
+PropHelper::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle,
+ const uno::Any& rValue )
+ throw (uno::Exception)
+{
+ OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
+
+ const PropDetails &rInfo = maDetails[ nHandle ];
+
+ uno_type_assignData( rInfo.pValue, rInfo.aType.getTypeLibType(),
+ rValue.pData, rValue.pType,
+ 0, 0, 0 );
+
+ if ( mpListener )
+ mpListener->propertiesChanged();
+}
+
+void SAL_CALL
+PropHelper::getFastPropertyValue( uno::Any& rValue,
+ sal_Int32 nHandle ) const
+{
+ OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
+ const PropDetails &rInfo = maDetails[ nHandle ];
+#if 0
+ switch ( rInfo.aType.getTypeClass() )
+ {
+#define MAP(classtype,ctype) \
+ case uno::TypeClass_##classtype: \
+ rValue <<= *(ctype *)(rInfo.pValue); \
+ break
+ MAP( DOUBLE, double );
+ MAP( SHORT, sal_Int16 );
+ MAP( LONG, sal_Int32 );
+ MAP( UNSIGNED_SHORT, sal_uInt16 );
+ MAP( UNSIGNED_LONG, sal_uInt32 );
+ MAP( STRING, ::rtl::OUString );
+ default:
+ DBG_ERROR( "ERROR: unknown type to map!" );
+ break;
+ }
+#undef MAP
+#endif
+ rValue.setValue( rInfo.pValue, rInfo.aType );
+}
+
+::com::sun::star::uno::Any
+PropHelper::queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException)
+{
+ return OPropertySetHelper::queryInterface( rType );
+}
+
+uno::Reference <beans::XPropertySetInfo> SAL_CALL PropHelper::getPropertySetInfo () throw (uno::RuntimeException)
+{
+ return css::uno::Reference <css::beans::XPropertySetInfo> (createPropertySetInfo (getInfoHelper ()));
+}
+
+} // namespace layoutimpl
+
+#include <awt/vclxbutton.hxx>
+#include <awt/vclxdialog.hxx>
+#include <awt/vclxfixedline.hxx>
+#include <awt/vclxplugin.hxx>
+#include <awt/vclxscroller.hxx>
+#include <awt/vclxsplitter.hxx>
+#include <awt/vclxtabcontrol.hxx>
+#include <awt/vclxtabpage.hxx>
+#include <toolkit/awt/vclxtoolkit.hxx>
+#include <toolkit/awt/vclxwindow.hxx>
+#include <vcl/button.hxx>
+#include <vcl/dialog.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/tabctrl.hxx>
+#include <vcl/tabpage.hxx>
+#include <vcl/unohelp.hxx>
+
+#include <layout/layout.hxx>
+#include <toolkit/awt/vclxwindows.hxx>
+#include <vcl/lstbox.hxx>
+#include <vcl.hxx>
+
+#include <typeinfo>
+
+namespace layoutimpl
+{
+
+uno::Reference <awt::XLayoutConstrains> WidgetFactory::implCreateWidget (uno::Reference <uno::XInterface> xParent, OUString name, long attributes)
+{
+ Window* parent = 0;
+
+ if (VCLXWindow* parentComponent = VCLXWindow::GetImplementation (xParent))
+ parent = parentComponent->GetWindow ();
+
+ VCLXWindow* component = 0;
+ Window* window = 0; //sfx2CreateWindow (&component, parent, name, attributes);
+ if (!window)
+ window = layoutCreateWindow (&component, parent, name, attributes);
+
+ uno::Reference <awt::XLayoutConstrains> reference;
+ if (window)
+ {
+ window->SetCreatedWithToolkit( sal_True );
+ if ( component )
+ component->SetCreatedWithToolkit( true );
+ reference = component;
+ window->SetComponentInterface( component );
+ if ( attributes & awt::WindowAttribute::SHOW )
+ window->Show();
+ }
+
+ return reference;
+}
+
+extern "C" { static void SAL_CALL thisModule() {} }
+
+Window* WidgetFactory::sfx2CreateWindow (VCLXWindow** component, Window* parent, OUString const& name, long& attributes)
+{
+ OSL_TRACE("Asking sfx2: %s", OUSTRING_CSTR (name));
+
+ if (!mSfx2Library)
+ {
+ OUString libraryName = ::vcl::unohelper::CreateLibraryName ("sfx", TRUE);
+ mSfx2Library = osl_loadModuleRelative (&thisModule, libraryName.pData, SAL_LOADMODULE_DEFAULT);
+ if (mSfx2Library)
+ {
+ OUString functionName (RTL_CONSTASCII_USTRINGPARAM ("CreateWindow"));
+ mSfx2CreateWidget = (WindowCreator) osl_getFunctionSymbol (mSfx2Library, functionName.pData);
+ }
+ }
+
+ if (mSfx2CreateWidget)
+ return mSfx2CreateWidget (component, name, parent, attributes);
+
+ return 0;
+}
+
+Window* WidgetFactory::layoutCreateWindow (VCLXWindow** component, Window *parent, OUString const& name, long& attributes)
+{
+ Window* window = 0;
+
+ if (0)
+ {
+ ;
+ }
+ if ( name.equalsAscii( "dialog" ) )
+ {
+ if ( parent == NULL )
+ parent = DIALOG_NO_PARENT;
+ window = new Dialog( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXDialog();
+
+ attributes ^= awt::WindowAttribute::SHOW;
+ }
+ else if ( name.equalsAscii( "modaldialog" ) )
+ {
+ if ( parent == NULL )
+ parent = DIALOG_NO_PARENT;
+ window = new ModalDialog( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXDialog();
+
+ attributes ^= awt::WindowAttribute::SHOW;
+ }
+ else if ( name.equalsAscii( "modelessdialog" ) )
+ {
+ if ( parent == NULL )
+ parent = DIALOG_NO_PARENT;
+ window = new ModelessDialog (parent, ImplGetWinBits (attributes, 0));
+ *component = new layoutimpl::VCLXDialog();
+
+ attributes ^= awt::WindowAttribute::SHOW;
+ }
+ else if ( name.equalsAscii( "sfxdialog" ) )
+ {
+ if ( parent == NULL )
+ parent = DIALOG_NO_PARENT;
+ window = new ClosingDialog (parent, ImplGetWinBits (attributes, 0));
+ *component = new layoutimpl::VCLXDialog();
+
+ attributes ^= awt::WindowAttribute::SHOW;
+ }
+ else if ( name.equalsAscii( "sfxmodaldialog" ) )
+ {
+ if ( parent == NULL )
+ parent = DIALOG_NO_PARENT;
+ window = new ClosingModalDialog( parent,
+ ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXDialog();
+
+ attributes ^= awt::WindowAttribute::SHOW;
+ }
+ else if ( name.equalsAscii( "sfxmodelessdialog" ) )
+ {
+ if ( parent == NULL )
+ parent = DIALOG_NO_PARENT;
+ window = new ClosingModelessDialog (parent, ImplGetWinBits (attributes, 0));
+ *component = new layoutimpl::VCLXDialog();
+
+ attributes ^= awt::WindowAttribute::SHOW;
+ }
+ else if ( name.equalsAscii( "tabcontrol" ) )
+ {
+ window = new TabControl( parent, ImplGetWinBits( attributes, WINDOW_TABCONTROL ) );
+ *component = new layoutimpl::VCLXTabControl();
+ }
+ else if ( name.equalsAscii( "scroller" ) )
+ {
+ // used FixedImage because I just want some empty non-intrusive widget
+ window = new FixedImage( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXScroller();
+ }
+ else if ( name.equalsAscii( "hsplitter" ) || name.equalsAscii( "vsplitter" ) )
+ {
+ window = new FixedImage( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXSplitter( name.equalsAscii( "hsplitter" ) );
+ }
+ else if ( name.equalsAscii( "hfixedline" ) || name.equalsAscii( "vfixedline" ) )
+ {
+ WinBits nStyle = ImplGetWinBits( attributes, 0 );
+ nStyle ^= WB_HORZ;
+ if ( name.equalsAscii( "hfixedline" ) )
+ nStyle |= WB_HORZ;
+ else
+ nStyle |= WB_VERT;
+ window = new FixedLine( parent, nStyle );
+ *component = new layoutimpl::VCLXFixedLine();
+ }
+ else if ( name.equalsAscii( "okbutton" ) )
+ {
+ window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXOKButton( window );
+ window->SetType (WINDOW_OKBUTTON);
+ }
+ else if ( name.equalsAscii( "cancelbutton" ) )
+ {
+ window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXCancelButton( window );
+ window->SetType (WINDOW_CANCELBUTTON);
+ }
+ else if ( name.equalsAscii( "yesbutton" ) )
+ {
+ window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXYesButton( window );
+ window->SetType (WINDOW_OKBUTTON);
+ }
+ else if ( name.equalsAscii( "nobutton" ) )
+ {
+ window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
+ window->SetType (WINDOW_CANCELBUTTON);
+ *component = new layoutimpl::VCLXNoButton( window );
+ }
+ else if ( name.equalsAscii( "retrybutton" ) )
+ {
+ window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXRetryButton( window );
+ }
+ else if ( name.equalsAscii( "ignorebutton" ) )
+ {
+ window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXIgnoreButton( window );
+ }
+ else if ( name.equalsAscii( "resetbutton" ) )
+ {
+ window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXResetButton( window );
+ }
+ else if ( name.equalsAscii( "applybutton" ) )
+ {
+ window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXApplyButton( window );
+ }
+ else if ( name.equalsAscii( "helpbutton" ) )
+ {
+ window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXHelpButton( window );
+ window->SetType (WINDOW_HELPBUTTON);
+ }
+ else if ( name.equalsAscii( "morebutton" ) )
+ {
+ window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXMoreButton( window );
+ window->SetType (WINDOW_MOREBUTTON);
+ }
+ else if ( name.equalsAscii( "advancedbutton" ) )
+ {
+ window = new PushButton( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::VCLXAdvancedButton( window );
+ }
+ else if ( name.equalsAscii( "plugin" ) )
+ {
+ window = new Control( parent, ImplGetWinBits( attributes, 0 ) );
+#ifndef __SUNPRO_CC
+ OSL_TRACE( "%s: parent=%p (%s)\n", __FUNCTION__, parent, typeid( *parent ).name() );
+#endif
+ *component = new layoutimpl::VCLXPlugin( window, ImplGetWinBits( attributes, 0 ) );
+ }
+ else if ( name.equalsAscii( "tabpage" ) )
+ {
+#if 0
+ if ( !parent )
+ parent = layout::TabPage::global_parent;
+#else
+ if (layout::TabPage::global_parent)
+ parent = layout::TabPage::global_parent;
+ layout::TabPage::global_parent = 0;
+#endif
+ //window = new TabPage( parent, ImplGetWinBits( attributes, 0 ) );
+ attributes ^= awt::WindowAttribute::SHOW;
+ WinBits nStyle = ImplGetWinBits( attributes, 0 );
+ nStyle |= WB_HIDE;
+
+ if (!parent)
+ {
+ window = new Dialog( parent, nStyle );
+ *component = new VCLXDialog();
+ }
+ else
+ {
+ window = new TabPage( parent, nStyle );
+ *component = new VCLXTabPage( window );
+ }
+ }
+ else if ( name.equalsAscii( "string" ) )
+ {
+ // FIXME: move <string>s.text to simple map<string> in root?
+ attributes &= ~awt::WindowAttribute::SHOW;
+ window = new Window( parent, ImplGetWinBits( attributes, 0 ) );
+ *component = new layoutimpl::LocalizedString();
+ }
+#if 0 // parent paranoia
+ else if ( name.equalsAscii( "listbox" ) )
+ {
+ window = new ListBox (parent, ImplGetWinBits (attributes, 0));
+ *component = new VCLXListBox ();
+ }
+#endif
+ else if (name.equalsAscii ("svxfontlistbox")
+ || name.equalsAscii ("svxlanguagebox"))
+ {
+ window = new ListBox (parent, ImplGetWinBits (attributes, 0));
+ *component = new VCLXListBox ();
+ }
+ return window;
+}
+
+} // namespace layoutimpl
+
+// Avoid polluting the rest of the code with vcl linkage pieces ...
+
+#include <vcl/imagerepository.hxx>
+#include <vcl/bitmapex.hxx>
+#include <vcl/graph.hxx>
+
+namespace layoutimpl
+{
+
+uno::Reference< graphic::XGraphic > loadGraphic( const char *pName )
+{
+ BitmapEx aBmp;
+
+ OUString aStr( pName, strlen( pName ), RTL_TEXTENCODING_ASCII_US );
+ if ( aStr.compareToAscii( ".uno:" ) == 0 )
+ aStr = aStr.copy( 5 ).toAsciiLowerCase();
+
+ if ( !vcl::ImageRepository::loadImage( OUString::createFromAscii( pName ), aBmp, true ) )
+ return uno::Reference< graphic::XGraphic >();
+
+ return Graphic( aBmp ).GetXGraphic();
+}
+
+} // namespace layoutimpl
diff --git a/toolkit/source/layout/helper.hxx b/toolkit/source/layout/core/helper.hxx
index b4dc7e0d0858..787e4f4132b4 100644
--- a/toolkit/source/layout/helper.hxx
+++ b/toolkit/source/layout/core/helper.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: helper.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,8 +29,8 @@
*
************************************************************************/
-#ifndef HELPER_HXX
-#define HELPER_HXX
+#ifndef LAYOUT_CORE_HELPER_HXX
+#define LAYOUT_CORE_HELPER_HXX
#include <toolkit/dllapi.h>
#include <vector>
@@ -39,10 +39,19 @@
#include <com/sun/star/awt/XLayoutContainer.hpp>
#include <com/sun/star/awt/XVclWindowPeer.hpp>
#include <com/sun/star/xml/input/XRoot.hpp>
+#include <com/sun/star/graphic/XGraphic.hpp>
#include <cppuhelper/implbase1.hxx>
#include <cppuhelper/propshlp.hxx>
+#include <osl/module.h>
#include <rtl/ustring.hxx>
+class Window;
+class VCLXWindow;
+extern "C"
+{
+ typedef Window* (SAL_CALL *WindowCreator) (VCLXWindow** component, rtl::OUString const& name, Window* parent, long& attributes);
+}
+
namespace layoutimpl
{
@@ -97,23 +106,13 @@ public:
virtual void SAL_CALL getFastPropertyValue( css::uno::Any& rValue,
sal_Int32 nHandle ) const;
- // you -must- use this macro in sub-classes that define new properties.
- // NB. 'static' ...
- // com::sun::star::beans::XMultiPropertySet
-#define PROPHELPER_SET_INFO \
- css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL \
- getPropertySetInfo() throw(css::uno::RuntimeException) \
- { \
- static css::uno::Reference< css::beans::XPropertySetInfo > xInfo( \
- createPropertySetInfo( getInfoHelper() ) ); \
- return xInfo; \
- }
- PROPHELPER_SET_INFO
+ virtual css::uno::Reference <css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo () throw (css::uno::RuntimeException);
struct Listener
{
virtual void propertiesChanged() = 0;
};
+
void setChangeListener( Listener *pListener )
{
mpListener = pListener;
@@ -131,25 +130,24 @@ css::uno::Any anyFromString (const rtl::OUString &value, const css::uno::Type &t
css::uno::Reference< css::awt::XWindowPeer >
getParent( css::uno::Reference< css::uno::XInterface > xPeer );
-
-struct WidgetFactory
+class TOOLKIT_DLLPUBLIC WidgetFactory
{
- virtual css::uno::Reference< css::awt::XLayoutConstrains >
- createWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
- css::uno::Reference< css::uno::XInterface > xParent,
- const rtl::OUString &rName, long nProps );
+public:
+ static oslModule mSfx2Library;
+ static WindowCreator mSfx2CreateWidget;
+
+ // Should use UNO services in due course
+ static css::uno::Reference <css::awt::XLayoutConstrains> toolkitCreateWidget (css::uno::Reference <css::awt::XToolkit> xToolkit, css::uno::Reference <css::uno::XInterface> xParent, rtl::OUString const& name, long properties);
+ static css::uno::Reference< css::awt::XLayoutConstrains > createWidget( css::uno::Reference <css::awt::XToolkit > xToolkit, css::uno::Reference< css::uno::XInterface > xParent, rtl::OUString const &name, long properties);
+ static css::uno::Reference <css::awt::XLayoutContainer> createContainer (rtl::OUString const& name);
+ static css::uno::Reference <css::awt::XLayoutConstrains> implCreateWidget (css::uno::Reference <css::uno::XInterface> xParent, rtl::OUString name, long attributes);
+ static Window* sfx2CreateWindow (VCLXWindow** component, Window* parent, rtl::OUString const& name, long& attributes);
+ static Window* layoutCreateWindow (VCLXWindow** component, Window *parent, rtl::OUString const& name, long& attributes);
};
-// A local factory method - should use UNO services in due course
-css::uno::Reference< css::awt::XLayoutConstrains > TOOLKIT_DLLPUBLIC
-createWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
- css::uno::Reference< css::uno::XInterface > xParent,
- const rtl::OUString &rName, long nProps );
-// Factory for containers (not visible ones)
-css::uno::Reference< css::awt::XLayoutContainer >
-createContainer( const rtl::OUString &rName );
+css::uno::Reference< css::graphic::XGraphic > loadGraphic( const char *pName );
-} // namespace layoutimpl
+} // end namespace layoutimpl
-#endif /* HELPER_HXX */
+#endif /* LAYOUT_CORE_HELPER_HXX */
diff --git a/toolkit/source/layout/import.cxx b/toolkit/source/layout/core/import.cxx
index 75d4656f2971..dede47ad3ceb 100644
--- a/toolkit/source/layout/import.cxx
+++ b/toolkit/source/layout/core/import.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: import.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -35,14 +35,12 @@
#include <com/sun/star/awt/XDialog2.hpp>
#include <vcl/image.hxx>
#include <tools/debug.hxx>
+#include <layout/layout.hxx>
#include "root.hxx"
#include "helper.hxx"
#include "dialogbuttonhbox.hxx"
-// Hmm...
-#include "layout/layout.hxx"
-#include "layout/layoutcore.hxx"
#define XMLNS_LAYOUT_URI "http://openoffice.org/2007/layout"
#define XMLNS_CONTAINER_URI "http://openoffice.org/2007/layout/container"
@@ -99,7 +97,16 @@ SAL_THROW (())
{
OUString aTitle;
if ( findAndRemove( "title", aProps, aTitle ) )
+ {
+ OSL_TRACE("Setting title: %s", OUSTRING_CSTR( aTitle ) );
xDialog->setTitle( aTitle );
+ }
+ OUString aHelpId;
+ if ( findAndRemove( "help-id", aProps, aHelpId ) )
+ {
+ OSL_TRACE("Setting help-id: %s", OUSTRING_CSTR( aHelpId ) );
+ xDialog->setHelpId( aHelpId.toInt32 () );
+ }
} // DEBUG:
else if ( pParent == NULL )
{
@@ -122,32 +129,23 @@ SAL_THROW (())
if ( DialogButtonHBox *b = dynamic_cast<DialogButtonHBox *> ( mpWidget->getPeer().get() ) )
b->setOrdering ( aOrdering );
-#ifdef IMPORT_RADIOGROUP
- bool bSetRadioGroup, bSetTitle;
- OUString aRadioGroup, aTitle;
+ bool bSetRadioGroup;
+ OUString aRadioGroup;
bSetRadioGroup = findAndRemove( "radiogroup", aProps, aRadioGroup );
- bSetTitle = findAndRemove( "title", aProps, aTitle );
- setProperties( mxPeer, aProps );
+ mpWidget->setProperties( aProps );
// we need to add radio buttons to the group after their properties are
// set, so we can check if they should be the one selected by default or not.
// And the state changed event isn't fired when changing properties.
- if ( bSetRadioGroup )
- {
- static int i = 0;
- i++;
- uno::Reference< awt::XRadioButton > xRadio( mxPeer, uno::UNO_QUERY );
- if ( xRadio.is() )
- pImport->mxRadioGroups.addItem( aRadioGroup, xRadio );
- }
- if ( bSetTitle )
+
+ uno::Reference< awt::XRadioButton > xRadio( mpWidget->getPeer(), uno::UNO_QUERY );
+ if ( xRadio.is() )
{
- uno::Reference< awt::XDialog2 > xDialog( mxPeer, uno::UNO_QUERY );
- if ( xDialog.is() )
- xDialog->setTitle( aTitle );
+ if (!bSetRadioGroup)
+ aRadioGroup = OUString::createFromAscii ("default");
+ pImport->mxRadioGroups.addItem( aRadioGroup, xRadio );
}
-#endif
}
WidgetElement::~WidgetElement()
@@ -181,7 +179,7 @@ WidgetElement::startChildElement ( sal_Int32 nUid, OUString const &name,
// transex3 hack.
void SAL_CALL
WidgetElement::characters( OUString const& rChars )
- throw (css::xml::sax::SAXException, css::uno::RuntimeException)
+ throw (xml::sax::SAXException, uno::RuntimeException)
{
if ( mpWidget && rChars.trim().getLength() )
{
@@ -239,11 +237,104 @@ uno::Reference< xml::input::XElement > ImportContext::startRootElement(
uno::Reference< xml::input::XAttributes > const & xAttributes )
throw (xml::sax::SAXException, uno::RuntimeException)
{
- if (XMLNS_LAYOUT_UID != nUid)
+ if ( XMLNS_LAYOUT_UID != nUid )
throw xml::sax::SAXException(
OUString( RTL_CONSTASCII_USTRINGPARAM( "invalid namespace!" ) ),
uno::Reference< uno::XInterface >(), uno::Any() );
- return new ToplevelElement( rLocalName, xAttributes, this );
+ return new ToplevelElement( rLocalName, xAttributes, this );
+}
+
+RadioGroups::RadioGroups()
+{
+}
+
+void RadioGroups::addItem( rtl::OUString id, uno::Reference< awt::XRadioButton > xRadio )
+ throw (uno::RuntimeException)
+{
+ if ( ! xRadio.is() )
+ throw uno::RuntimeException();
+
+ uno::Reference< RadioGroup > group;
+ RadioGroupsMap::iterator it = mxRadioGroups.find( id );
+ if ( it == mxRadioGroups.end() )
+ {
+ group = uno::Reference< RadioGroup > ( new RadioGroup() );
+ mxRadioGroups [id] = group;
+ }
+ else
+ group = it->second;
+ group->addItem( xRadio );
+}
+
+RadioGroups::RadioGroup::RadioGroup()
+{
+}
+
+void RadioGroups::RadioGroup::addItem( uno::Reference< awt::XRadioButton > xRadio )
+{
+ if ( ! mxSelectedRadio.is() )
+ {
+ xRadio->setState( true );
+ mxSelectedRadio = xRadio;
+ }
+ else if ( xRadio->getState() )
+ {
+#if 1
+ xRadio->setState( false );
+#else // huh, why select last added?
+ mxSelectedRadio->setState( false );
+ mxSelectedRadio = xRadio;
+#endif
+ }
+
+ // TOO late: actionPerformed is called before itemStateChanged.
+ // If client code (wrongly?) uses actionPerformed, it will see
+ // the previous RadioButtons' state.
+ xRadio->addItemListener( this );
+
+ uno::Reference< awt::XButton > xButton = uno::Reference< awt::XButton > ( xRadio, uno::UNO_QUERY );
+ xButton->addActionListener( this );
+
+ mxRadios.push_back (xRadio);
+}
+
+void RadioGroups::RadioGroup::handleSelected ()
+ throw (uno::RuntimeException)
+{
+ for ( RadioButtonsList::iterator it = mxRadios.begin();
+ it != mxRadios.end(); it++ )
+ if ( *it != mxSelectedRadio && (*it)->getState() )
+ {
+ mxSelectedRadio->setState( false );
+ mxSelectedRadio = *it;
+ break;
+ }
+}
+
+// awt::XItemListener
+void RadioGroups::RadioGroup::itemStateChanged( const awt::ItemEvent& e )
+ throw (uno::RuntimeException)
+{
+ // TOO late: actionPerformed is called before itemStateChanged.
+ // If client code (wrongly?) uses actionPerformed, it will see
+ // the previous RadioButtons' state.
+
+ // Need this for initialization, though.
+ if ( e.Selected )
+ handleSelected ();
+}
+
+// awt::XActionListener
+void RadioGroups::RadioGroup::actionPerformed( const awt::ActionEvent& )
+ throw (uno::RuntimeException)
+{
+ handleSelected ();
+}
+
+// lang::XEventListener
+void SAL_CALL RadioGroups::RadioGroup::disposing( const lang::EventObject& )
+ throw (uno::RuntimeException)
+{
}
} // namespace layoutimpl
diff --git a/toolkit/source/layout/import.hxx b/toolkit/source/layout/core/import.hxx
index 9f32d2263ccf..d72e8a337f56 100644
--- a/toolkit/source/layout/import.hxx
+++ b/toolkit/source/layout/core/import.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: import.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,15 +29,19 @@
*
************************************************************************/
-#ifndef IMPORT_HXX
-#define IMPORT_HXX
+#ifndef LAYOUT_CORE_IMPORT_HXX
+#define LAYOUT_CORE_IMPORT_HXX
#include <map>
#include <list>
+#define _BACKWARD_BACKWARD_WARNING_H 1
#include <hash_map>
+
#include <com/sun/star/xml/input/XRoot.hpp>
#include <cppuhelper/implbase1.hxx>
+#include <com/sun/star/awt/XButton.hpp>
+#include <com/sun/star/awt/XRadioButton.hpp>
namespace layoutimpl
{
@@ -45,94 +49,41 @@ class LayoutRoot;
class LayoutWidget;
namespace css = ::com::sun::star;
-/* blocks under IMPORT_RADIOGROUP are marked for deletion.
- The use of it is to synchronize radio buttons into groups.
- But toolkit doesn't fire toggle events when toggled from the code.
- Another approach is to implement our own XRadioButton from our
- internal toolkit. We could have some singleton where they would
- register... We would need to add another attribute...
-*/
-
-#ifdef IMPORT_RADIOGROUP
-#include <com/sun/star/awt/XRadioButton.hpp>
class RadioGroups
{
public:
- RadioGroups()
- {
- }
+ RadioGroups();
void addItem( rtl::OUString id, css::uno::Reference< css::awt::XRadioButton > xRadio )
- throw (css::uno::RuntimeException)
- {
- if ( ! xRadio.is() )
- throw css::uno::RuntimeException();
-
- css::uno::Reference< RadioGroup > group;
- RadioGroupsMap::iterator it = mxRadioGroups.find( id );
- if ( it == mxRadioGroups.end() )
- {
- group = css::uno::Reference< RadioGroup > ( new RadioGroup() );
- mxRadioGroups [id] = group;
- }
- else
- group = it->second;
- group->addItem( xRadio );
- }
+ throw (css::uno::RuntimeException);
private:
class RadioGroup : public ::cppu::WeakImplHelper1< css::awt::XItemListener >
+ , public ::cppu::WeakImplHelper1< css::awt::XActionListener >
{
public:
- RadioGroup()
- {
- }
-
- void addItem( css::uno::Reference< css::awt::XRadioButton > xRadio )
- {
- if ( ! mxSelectedRadio.is() )
- {
- xRadio->setState( true );
- mxSelectedRadio = xRadio;
- }
- else if ( xRadio->getState() )
- {
- mxSelectedRadio->setState( false );
- mxSelectedRadio = xRadio;
- }
-
- xRadio->addItemListener( this );
- mxRadios.push_back (xRadio);
- }
+ RadioGroup();
+ void addItem( css::uno::Reference< css::awt::XRadioButton > xRadio );
private:
typedef std::list< css::uno::Reference< css::awt::XRadioButton > > RadioButtonsList;
RadioButtonsList mxRadios;
css::uno::Reference< css::awt::XRadioButton > mxSelectedRadio;
+ void handleSelected ()
+ throw (css::uno::RuntimeException);
+
// awt::XItemListener
- void itemStateChanged( const com::sun::star::awt::ItemEvent& e)
- throw (css::uno::RuntimeException)
- {
- if ( e.Selected )
- {
- mxSelectedRadio->setState( false );
- // the only radio button selected would be the one that fired the event
- for ( RadioButtonsList::iterator it = mxRadios.begin();
- it != mxRadios.end(); it++ )
- if ( (*it)->getState() )
- {
- mxSelectedRadio = *it;
- break;
- }
- }
- }
+ void SAL_CALL itemStateChanged( const css::awt::ItemEvent& e )
+ throw (css::uno::RuntimeException);
+
+ // awt::XActionListener
+ void SAL_CALL actionPerformed( const css::awt::ActionEvent& e )
+ throw (css::uno::RuntimeException);
// lang::XEventListener
void SAL_CALL disposing( const css::lang::EventObject& )
- throw (css::uno::RuntimeException)
- {
- }
+ throw (css::uno::RuntimeException);
};
// each RadioGroup will stay alive after RadioGroups die with the ImportContext
@@ -140,7 +91,6 @@ private:
typedef std::map< rtl::OUString, css::uno::Reference< RadioGroup > > RadioGroupsMap;
RadioGroupsMap mxRadioGroups;
};
-#endif
#if 0
// generator
@@ -196,9 +146,7 @@ class ImportContext : public ::cppu::WeakImplHelper1< css::xml::input::XRoot >
public:
sal_Int32 XMLNS_LAYOUT_UID, XMLNS_CONTAINER_UID;
LayoutRoot &mrRoot; // switch to XNameContainer ref ?
-#ifdef IMPORT_RADIOGROUP
RadioGroups mxRadioGroups;
-#endif
inline ImportContext( LayoutRoot &rRoot ) SAL_THROW( () )
: mrRoot( rRoot ) {}
@@ -312,4 +260,4 @@ public:
} // namespace layoutimpl
-#endif /* IMPORT_HXX */
+#endif /* LAYOUT_CORE_IMPORT_HXX */
diff --git a/toolkit/source/layout/core/localized-string.cxx b/toolkit/source/layout/core/localized-string.cxx
new file mode 100644
index 000000000000..9bc9df372832
--- /dev/null
+++ b/toolkit/source/layout/core/localized-string.cxx
@@ -0,0 +1,87 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile$
+ *
+ * $Revision$
+ *
+ * last change: $Author$ $Date$
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
+ * MA 02110-1301 USA
+ *
+ ************************************************************************/
+
+#include "localized-string.hxx"
+
+#include <toolkit/helper/property.hxx>
+#include <vcl/window.hxx>
+
+namespace layoutimpl
+{
+
+namespace css = ::com::sun::star;
+using namespace css;
+using rtl::OUString;
+
+LocalizedString::LocalizedString()
+ : VCLXWindow()
+{
+}
+
+void LocalizedString::ImplGetPropertyIds( std::list< sal_uInt16 > &ids )
+{
+ PushPropertyIds( ids, BASEPROPERTY_TEXT, 0);
+ VCLXWindow::ImplGetPropertyIds( ids );
+}
+
+// XInterface
+uno::Any LocalizedString::queryInterface( uno::Type const& rType )
+ throw(uno::RuntimeException)
+{
+ uno::Any aRet = ::cppu::queryInterface( rType,
+ SAL_STATIC_CAST( awt::XFixedText*, this ) );
+ return (aRet.hasValue() ? aRet : VCLXWindow::queryInterface( rType ));
+}
+
+void LocalizedString::setText( OUString const& s )
+ throw(uno::RuntimeException)
+{
+ ::vos::OGuard aGuard( GetMutex() );
+
+ if ( Window *w = GetWindow() )
+ return w->SetText( s );
+}
+
+OUString LocalizedString::getText()
+ throw(uno::RuntimeException)
+{
+ ::vos::OGuard aGuard( GetMutex() );
+
+ if ( Window *w = GetWindow() )
+ return w->GetText();
+ return OUString();
+}
+
+} // namespace layoutimpl
diff --git a/toolkit/source/layout/core/localized-string.hxx b/toolkit/source/layout/core/localized-string.hxx
new file mode 100644
index 000000000000..7c897f2c713d
--- /dev/null
+++ b/toolkit/source/layout/core/localized-string.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile$
+ *
+ * $Revision$
+ *
+ * last change: $Author$ $Date$
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
+ * MA 02110-1301 USA
+ *
+ ************************************************************************/
+
+#ifndef LAYOUT_CORE_LOCALIZED_STRING_HXX
+#define LAYOUT_CORE_LOCALIZED_STRING_HXX
+
+#include <com/sun/star/awt/XFixedText.hpp>
+#include <toolkit/awt/vclxwindow.hxx>
+
+namespace layoutimpl
+{
+namespace css = ::com::sun::star;
+
+// FIXME: misuse XFixedText interface for simple string
+class LocalizedString : public css::awt::XFixedText
+ , public VCLXWindow
+{
+public:
+ LocalizedString();
+
+ // css::uno::XInterface
+ css::uno::Any SAL_CALL queryInterface( css::uno::Type const& rType )
+ throw(css::uno::RuntimeException);
+ void SAL_CALL acquire() throw() { OWeakObject::acquire(); }
+ void SAL_CALL release() throw() { OWeakObject::release(); }
+
+ // css::awt::XFixedText
+ void SAL_CALL setText( ::rtl::OUString const& s )
+ throw(css::uno::RuntimeException);
+ ::rtl::OUString SAL_CALL getText()
+ throw(css::uno::RuntimeException);
+ void SAL_CALL setAlignment( sal_Int16 )
+ throw(css::uno::RuntimeException) { }
+ sal_Int16 SAL_CALL getAlignment()
+ throw(css::uno::RuntimeException) { return 0; }
+
+ // css::awt::XLayoutConstrains
+ virtual css::awt::Size SAL_CALL getMinimumSize()
+ throw(css::uno::RuntimeException) { return css::awt::Size( 0, 0 ); }
+ css::awt::Size SAL_CALL getPreferredSize()
+ throw(css::uno::RuntimeException) { return getMinimumSize(); }
+ css::awt::Size SAL_CALL calcAdjustedSize( css::awt::Size const& size )
+ throw(css::uno::RuntimeException) { return size; }
+
+ static void ImplGetPropertyIds( std::list< sal_uInt16 > &ids );
+ virtual void GetPropertyIds( std::list< sal_uInt16 > &ids )
+ { return ImplGetPropertyIds( ids ); }
+};
+
+} // namespace layoutimpl
+
+#endif /* LAYOUT_CORE_LOCALIZED_STRING_HXX */
diff --git a/toolkit/source/layout/makefile.mk b/toolkit/source/layout/core/makefile.mk
index a9b743742117..131be7eb237c 100644
--- a/toolkit/source/layout/makefile.mk
+++ b/toolkit/source/layout/core/makefile.mk
@@ -6,9 +6,9 @@
#
# OpenOffice.org - a multi-platform office productivity suite
#
-# $RCSfile: makefile.mk,v $
+# $RCSfile$
#
-# $Revision: 1.3 $
+# $Revision$
#
# This file is part of OpenOffice.org.
#
@@ -29,9 +29,9 @@
#
#*************************************************************************
-PRJ=..$/..
+PRJ=../../..
PRJNAME=toolkit
-TARGET=layoutcore
+TARGET=layout-core
ENABLE_EXCEPTIONS=true
# --- Settings -----------------------------------------------------
@@ -55,11 +55,14 @@ SLOFILES= \
$(SLO)$/flow.obj \
$(SLO)$/helper.obj \
$(SLO)$/import.obj \
+ $(SLO)$/localized-string.obj \
$(SLO)$/proplist.obj \
$(SLO)$/root.obj \
$(SLO)$/table.obj \
$(SLO)$/timer.obj \
- $(SLO)$/translate.obj
+ $(SLO)$/translate.obj\
+ $(SLO)$/vcl.obj\
+#
# --- Targets ------------------------------------------------------
diff --git a/toolkit/source/layout/precompiled_xmlscript.hxx b/toolkit/source/layout/core/precompiled_xmlscript.hxx
index 0c554b41402a..f8ad22b56678 100644
--- a/toolkit/source/layout/precompiled_xmlscript.hxx
+++ b/toolkit/source/layout/core/precompiled_xmlscript.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: precompiled_xmlscript.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
diff --git a/toolkit/source/layout/proplist.cxx b/toolkit/source/layout/core/proplist.cxx
index 2d3d1265c0fc..9b154077eaa8 100644
--- a/toolkit/source/layout/proplist.cxx
+++ b/toolkit/source/layout/core/proplist.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: proplist.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -39,16 +39,15 @@
#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
#include <tools/debug.hxx>
-#include "layout/layoutcore.hxx"
+#include "helper.hxx"
#if TEST_LAYOUT && !defined( DBG_UTIL )
-#include <stdio.h>
#undef DBG_ERROR
-#define DBG_ERROR printf
+#define DBG_ERROR OSL_TRACE
#undef DBG_ERROR1
-#define DBG_ERROR1 printf
+#define DBG_ERROR1 OSL_TRACE
#undef DBG_ERROR2
-#define DBG_ERROR2 printf
+#define DBG_ERROR2 OSL_TRACE
#endif /* TEST_LAYOUT && !DBG_UTIL */
namespace layoutimpl
@@ -251,18 +250,17 @@ setProperties( uno::Reference< uno::XInterface > const& xPeer,
if ( !prophlp::canHandleProps( xPeer ) )
{
DBG_ERROR( "Error: setProperties - bad handle ignoring props:\n" );
- PropList::const_iterator cur;
- for ( cur = rProps.begin(); cur != rProps.end(); cur++ )
+ for ( PropList::const_iterator it = rProps.begin(); it != rProps.end();
+ it++ )
{
- OString attr = OUStringToOString( cur->first, RTL_TEXTENCODING_UTF8 );
- OString value = OUStringToOString( cur->second, RTL_TEXTENCODING_UTF8 );
+ DBG_ERROR2( "%s=%s\n", OUSTRING_CSTR( it->first ), OUSTRING_CSTR( it->second ) );
}
return;
}
- PropList::const_iterator cur;
- for ( cur = rProps.begin(); cur != rProps.end(); cur++ )
- setProperty( xPeer, cur->first, cur->second );
+ for ( PropList::const_iterator it = rProps.begin(); it != rProps.end();
+ it++ )
+ setProperty( xPeer, it->first, it->second );
}
void
@@ -271,7 +269,7 @@ setProperty( uno::Reference< uno::XInterface > const& xPeer,
{
OUString unoAttr = toUnoNaming( attr );
- OSL_TRACE( "setting %s=%s\n", OUSTRING_CSTR( attr ), OUSTRING_CSTR( value ) );
+ OSL_TRACE( "setting %s=%s", OUSTRING_CSTR( attr ), OUSTRING_CSTR( value ) );
// get a Property object
beans::Property prop;
try
@@ -350,7 +348,7 @@ static const AttributesMap attribsMap[] =
{ "spin", awt::VclWindowPeerAttribute::SPIN, false },
{ "vscroll", awt::VclWindowPeerAttribute::VSCROLL, false },
- // cutting on OK, YES_NO_CANCEL and related obscure attributes...
+ // cutting on OK, YES_NO_CANCEL and related obsite attributes...
};
static const int attribsMapLen = sizeof( attribsMap ) / sizeof( AttributesMap );
@@ -382,8 +380,6 @@ long getAttribute( const OUString &rName, bool bTopWindow )
void propsFromAttributes( const uno::Reference<xml::input::XAttributes> & xAttributes,
PropList &rProps, sal_Int32 nNamespace )
{
-
-
sal_Int32 nAttrs = xAttributes->getLength();
for ( sal_Int32 i = 0; i < nAttrs; i++ )
{
@@ -402,15 +398,16 @@ void propsFromAttributes( const uno::Reference<xml::input::XAttributes> & xAttri
bool
findAndRemove( const char *pAttr, PropList &rProps, OUString &rValue )
{
- PropList::iterator cur;
+ PropList::iterator it;
OUString aName = OUString::createFromAscii( pAttr );
- for ( cur = rProps.begin(); cur != rProps.end(); cur++ )
+ for ( it = rProps.begin(); it != rProps.end(); it++ )
{
- if ( cur->first.equalsIgnoreAsciiCase( aName ) )
+ if ( it->first.equalsIgnoreAsciiCase( aName )
+ || it->first.equalsIgnoreAsciiCase( OUString::createFromAscii ("_") + aName ) )
{
- rValue = cur->second;
- rProps.erase( cur );
+ rValue = it->second;
+ rProps.erase( it );
return true;
}
}
diff --git a/toolkit/inc/layout/layoutcore.hxx b/toolkit/source/layout/core/proplist.hxx
index 2ffe777c59ae..27682faf8902 100644
--- a/toolkit/inc/layout/layoutcore.hxx
+++ b/toolkit/source/layout/core/proplist.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: layoutcore.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,40 +29,39 @@
*
************************************************************************/
-#ifndef _LAYOUT_CORE_HXX_
-#define _LAYOUT_CORE_HXX_
-
-#include <com/sun/star/awt/XToolkit.hpp>
-#include <com/sun/star/graphic/XGraphic.hpp>
-#include <com/sun/star/awt/XLayoutContainer.hpp>
-#include <com/sun/star/awt/XLayoutConstrains.hpp>
-
-#include <layout/layout.hxx>
+#ifndef LAYOUT_CORE_PROPLIST_HXX
+#define LAYOUT_CORE_PROPLIST_HXX
+#include <com/sun/star/beans/XPropertySetInfo.hpp>
+#include <com/sun/star/xml/input/XAttributes.hpp>
+#include <list>
+#include <rtl/ustring.hxx>
+#include <toolkit/dllapi.h>
+\
namespace layoutimpl
{
-namespace css = layout::css;
+namespace css = ::com::sun::star;
+
+typedef std::list< std::pair< rtl::OUString, rtl::OUString > > PropList;
-css::uno::Reference< css::awt::XLayoutContainer >
-createContainer( const rtl::OUString &rName );
+void propsFromAttributes( const css::uno::Reference<css::xml::input::XAttributes> & xAttributes,
+ PropList &rProps, sal_Int32 nNamespace );
-css::uno::Reference< css::awt::XLayoutConstrains >
-createWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
- css::uno::Reference< css::uno::XInterface > xParent,
- const rtl::OUString &rName, long nProps );
+void setProperties( css::uno::Reference< css::uno::XInterface > const& xPeer,
+ PropList const& rProps);
-css::uno::Reference< css::awt::XLayoutConstrains >
-createInternalWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
- css::uno::Reference< css::uno::XInterface > xParent,
- const rtl::OUString &rName, long nProps );
+void setProperty( css::uno::Reference< css::uno::XInterface > const& xPeer,
+ rtl::OUString const& attr, rtl::OUString const& value );
-css::uno::Reference< css::graphic::XGraphic > loadGraphic( const char *pName );
+long getAttributeProps( PropList &rProps );
+bool findAndRemove( const char *pAttr, PropList &rProps, rtl::OUString &rValue);
// Helpers - unfortunately VCLXWindows don't implement XPropertySet
// but containers do - these helpers help us to hide this
namespace prophlp
{
+
// can we set properties on this handle ?
bool TOOLKIT_DLLPUBLIC canHandleProps( const css::uno::Reference< css::uno::XInterface > &xRef );
// if so which properties ?
@@ -75,6 +74,22 @@ void TOOLKIT_DLLPUBLIC setProperty( const css::uno::Reference< css::uno::XInterf
css::uno::Any TOOLKIT_DLLPUBLIC getProperty( const css::uno::Reference< css::uno::XInterface > &xRef,
const rtl::OUString &rName );
} // namespace prophlp
+
} // namespace layoutimpl
-#endif // _LAYOUT_CORE_HXX_
+
+#if !OUSTRING_CSTR_PARANOIA
+#define OUSTRING_CSTR( str ) \
+ rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US ).getStr()
+#else
+
+inline char const* OUSTRING_CSTR( rtl::OUString const& str )
+{
+ rtl::OString *leak
+ = new rtl::OString (rtl::OUStringToOString (str, RTL_TEXTENCODING_ASCII_US));
+ return leak->getStr();
+}
+
+#endif
+
+#endif /* LAYOUT_CORE_PROPLIST_HXX */
diff --git a/toolkit/source/layout/root.cxx b/toolkit/source/layout/core/root.cxx
index 6934c997f1e8..b316fdfc8e9e 100644
--- a/toolkit/source/layout/root.cxx
+++ b/toolkit/source/layout/core/root.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: root.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -31,8 +31,7 @@
#include "root.hxx"
-#include <assert.h>
-#include <stdio.h>
+#include <cassert>
#include <com/sun/star/awt/WindowAttribute.hpp>
#include <com/sun/star/awt/XMessageBox.hpp>
@@ -47,7 +46,6 @@
#include "timer.hxx"
#include "translate.hxx"
-
namespace layoutimpl
{
@@ -102,11 +100,12 @@ void ShowMessageBox( uno::Reference< lang::XMultiServiceFactory > const& xFactor
xMessageBox->execute();
//FIXME: exceptions not caught and printed at top level??
//else
- printf( "%s\n", OUSTRING_CSTR( aMessage ) );
+ //printf( "%s\n", OUSTRING_CSTR( aMessage ) );
}
void LayoutRoot::error( OUString const& message )
{
+ OSL_TRACE( "%s\n", OUSTRING_CSTR( message ) );
ShowMessageBox( mxFactory, mxToolkit,
OUString::createFromAscii( "Fatal error" ),
message );
@@ -140,7 +139,7 @@ void SAL_CALL LayoutRoot::initialize( const uno::Sequence< uno::Any >& aArgument
OUString::createFromAscii( "com.sun.star.xml.sax.Parser" ) ),
uno::UNO_QUERY );
OSL_ASSERT( xParser.is() );
- if (! xParser.is() )
+ if (! xParser.is())
{
throw uno::RuntimeException(
OUString::createFromAscii( "cannot create sax-parser component" ),
@@ -249,9 +248,9 @@ uno::Sequence< OUString > SAL_CALL LayoutRoot::getElementNames()
uno::Sequence< OUString > aNames( maItems.size() );
sal_Int32 nPos = 0;
- for ( ItemHash::const_iterator i = maItems.begin();
- i != maItems.end(); i++ )
- aNames[ nPos++ ] = i->first;
+ for ( ItemHash::const_iterator it = maItems.begin();
+ it != maItems.end(); it++ )
+ aNames[ nPos++ ] = it->first;
return aNames;
}
@@ -345,9 +344,9 @@ uno::Reference< awt::XLayoutConstrains > LayoutRoot::getToplevel()
uno::Reference< awt::XLayoutConstrains > LayoutRoot::getById( OUString id )
{
uno::Reference< awt::XLayoutConstrains > rRef = 0;
- ItemHash::iterator i = maItems.find( id );
- if ( i != maItems.end() )
- rRef = i->second;
+ ItemHash::iterator it = maItems.find( id );
+ if ( it != maItems.end() )
+ rRef = it->second;
return rRef;
}
#endif
@@ -363,7 +362,7 @@ LayoutWidget::LayoutWidget( uno::Reference< awt::XToolkit > xToolkit,
xParent = uno::Reference< awt::XLayoutContainer >( xContainer->getParent(), uno::UNO_QUERY );
}
- mxWidget = createWidget( xToolkit, xParent, unoName, attrbs );
+ mxWidget = WidgetFactory::createWidget( xToolkit, xParent, unoName, attrbs );
assert( mxWidget.is() );
mxContainer = uno::Reference< awt::XLayoutContainer >( mxWidget, uno::UNO_QUERY );
}
diff --git a/toolkit/source/layout/root.hxx b/toolkit/source/layout/core/root.hxx
index 73421dfe4bd2..92824f0d8ada 100644
--- a/toolkit/source/layout/root.hxx
+++ b/toolkit/source/layout/core/root.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: root.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,9 +29,10 @@
*
************************************************************************/
-#ifndef CORE_ROOT_HXX
-#define CORE_ROOT_HXX
+#ifndef LAYOUT_CORE_ROOT_HXX
+#define LAYOUT_CORE_ROOT_HXX
+#define _BACKWARD_BACKWARD_WARNING_H 1
#include <hash_map>
#include <com/sun/star/awt/XLayoutRoot.hpp>
@@ -44,7 +45,7 @@
#include <cppuhelper/interfacecontainer.h>
#include <toolkit/dllapi.h>
-#include "proplist.hxx"
+#include <layout/core/proplist.hxx>
namespace layoutimpl
{
@@ -156,4 +157,4 @@ protected:
} // namespace layoutimpl
-#endif // CORE_ROOT_HXX
+#endif /* LAYOUT_CORE_ROOT_HXX */
diff --git a/toolkit/source/layout/table.cxx b/toolkit/source/layout/core/table.cxx
index c172f71d5ff1..f8b2639c2258 100644
--- a/toolkit/source/layout/table.cxx
+++ b/toolkit/source/layout/core/table.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: table.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -79,7 +79,7 @@ Table::Table()
Table::ChildData::ChildData( uno::Reference< awt::XLayoutConstrains > const& xChild )
: Box_Base::ChildData( xChild )
-// , mbExpand( { 0, 1 } )
+// , mbExpand( { 1, 1 } )
, mnColSpan( 1 )
, mnRowSpan( 1 )
, mnLeftCol( 0 )
@@ -87,7 +87,7 @@ Table::ChildData::ChildData( uno::Reference< awt::XLayoutConstrains > const& xCh
, mnTopRow( 0 )
, mnBottomRow( 0 )
{
- mbExpand[ 0 ] = 0;
+ mbExpand[ 0 ] = 1;
mbExpand[ 1 ] = 1;
}
@@ -139,7 +139,7 @@ Table::getMinimumSize() throw( uno::RuntimeException )
col = 0;
row++;
- unsigned int i = col + ( row*mnColsLen );
+ unsigned int i = col +( row*mnColsLen );
while ( aTable.size() > i && !aTable[ i ] )
i++;
diff --git a/toolkit/source/layout/table.hxx b/toolkit/source/layout/core/table.hxx
index eb0d81e9a81b..f4fd70d0a1f9 100644
--- a/toolkit/source/layout/table.hxx
+++ b/toolkit/source/layout/core/table.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: table.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,10 +29,10 @@
*
************************************************************************/
-#ifndef TABLE_HXX
-#define TABLE_HXX
+#ifndef LAYOUT_CORE_TABLE_HXX
+#define LAYOUT_CORE_TABLE_HXX
-#include "box-base.hxx"
+#include <layout/core/box-base.hxx>
namespace layoutimpl
{
@@ -99,10 +99,8 @@ public:
virtual sal_Int32 SAL_CALL getHeightForWidth( sal_Int32 /*nWidth*/ )
throw(css::uno::RuntimeException)
{ return maRequisition.Height; }
-
- PROPHELPER_SET_INFO
};
} // namespace layoutimpl
-#endif /*TABLE_HXX*/
+#endif /* LAYOUT_CORE_TABLE_HXX */
diff --git a/toolkit/source/layout/timer.cxx b/toolkit/source/layout/core/timer.cxx
index 8104bf79e470..0da0f2c2abee 100644
--- a/toolkit/source/layout/timer.cxx
+++ b/toolkit/source/layout/core/timer.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: timer.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -101,12 +101,12 @@ public:
// 1. remove duplications and children
for ( ContainerList::iterator it = mxContainers.begin();
- it != mxContainers.end(); it++ )
+ it != mxContainers.end(); it++ )
eraseChildren( it, mxContainers );
// 2. check damage extent
for ( ContainerList::iterator it = mxContainers.begin();
- it != mxContainers.end(); it++ )
+ it != mxContainers.end(); it++ )
{
uno::Reference< awt::XLayoutContainer > xContainer = *it;
while ( xContainer->getParent().is() && isContainerDamaged( xContainer ) )
@@ -126,7 +126,7 @@ public:
}
// 3. force re-calculations
- for( ContainerList::iterator it = mxContainers.begin();
+ for ( ContainerList::iterator it = mxContainers.begin();
it != mxContainers.end(); it++ )
(*it)->allocateArea( (*it)->getAllocatedArea() );
}
diff --git a/toolkit/source/layout/timer.hxx b/toolkit/source/layout/core/timer.hxx
index 3cecd48359ab..b1d7c7597b2e 100644
--- a/toolkit/source/layout/timer.hxx
+++ b/toolkit/source/layout/core/timer.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: timer.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,8 +29,8 @@
*
************************************************************************/
-#ifndef CORE_TIMER_HXX
-#define CORE_TIMER_HXX
+#ifndef LAYOUT_CORE_TIMER_HXX
+#define LAYOUT_CORE_TIMER_HXX
#include <com/sun/star/awt/XLayoutUnit.hpp>
#include <cppuhelper/implbase1.hxx>
@@ -50,4 +50,4 @@ public:
}
-#endif /*CORE_TIMER_HXX*/
+#endif /* LAYOUT_CORE_TIMER_HXX */
diff --git a/toolkit/source/layout/translate.cxx b/toolkit/source/layout/core/translate.cxx
index 2a39f93c35a9..cca51632557b 100644
--- a/toolkit/source/layout/translate.cxx
+++ b/toolkit/source/layout/core/translate.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: translate.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.4 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -33,7 +33,7 @@
#include <list>
#if TEST_LAYOUT
-#include <stdio.h>
+#include <cstdio>
#include "tools/getprocessworkingdir.hxx"
#endif
@@ -58,13 +58,13 @@ getLocaleSubdirList( lang::Locale const& rLocale )
{
std::list<OUString> aSubdirs;
aSubdirs.push_front( OUString::createFromAscii( "." ) );
- aSubdirs.push_front( OUString::createFromAscii( "en_US" ) );
+ aSubdirs.push_front( OUString::createFromAscii( "en-US" ) );
if ( rLocale.Language.getLength() )
aSubdirs.push_front( rLocale.Language );
if ( rLocale.Country.getLength() )
{
OUString aLocaleCountry = rLocale.Language
- + OUString::createFromAscii( "_" )
+ + OUString::createFromAscii( "-" )
+ rLocale.Country;
aSubdirs.push_front( aLocaleCountry );
if ( rLocale.Variant.getLength() )
@@ -93,9 +93,7 @@ getFirstExisting( OUString const& aDir, std::list<OUString> const& aSubDirs,
i != aSubDirs.end(); i++ )
{
String aFile = aDir + aSlash + *i + aSlash + aXMLName;
-#if TEST_LAYOUT
- printf( "testing: %s\n", OUSTRING_CSTR( aFile ) );
-#endif
+ OSL_TRACE( "testing: %s", OUSTRING_CSTR( aFile ) );
if ( fileExists( aFile ) )
return aFile;
}
@@ -129,9 +127,7 @@ readRightTranslation( OUString const& aXMLName )
aXMLFile = getFirstExisting( aXMLDir, aSubdirs, aXMLName );
}
-#if TEST_LAYOUT
- printf( "FOUND:%s\n", OUSTRING_CSTR ( OUString (aXMLFile) ) );
-#endif /* TEST_LAYOUT */
+ OSL_TRACE( "FOUND:%s", OUSTRING_CSTR ( OUString (aXMLFile) ) );
return aXMLFile;
}
diff --git a/toolkit/source/layout/translate.hxx b/toolkit/source/layout/core/translate.hxx
index ca59f5046d29..05043baa4fb6 100644
--- a/toolkit/source/layout/translate.hxx
+++ b/toolkit/source/layout/core/translate.hxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: translate.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,8 +29,8 @@
*
************************************************************************/
-#ifndef CORE_TRANSLATE_HXX
-#define CORE_TRANSLATE_HXX
+#ifndef LAYOUT_CORE_TRANSLATE_HXX
+#define LAYOUT_CORE_TRANSLATE_HXX
namespace rtl {
class OUString;
@@ -41,4 +41,4 @@ namespace layoutimpl
::rtl::OUString readRightTranslation( ::rtl::OUString const& aXMLName );
} // namespace layoutimpl
-#endif /* CORE_TRANSLATE_HXX */
+#endif /* LAYOUT_CORE_TRANSLATE_HXX */
diff --git a/toolkit/source/layout/proplist.hxx b/toolkit/source/layout/core/vcl.cxx
index 1e962cdf63c7..418229351084 100644
--- a/toolkit/source/layout/proplist.hxx
+++ b/toolkit/source/layout/core/vcl.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: proplist.hxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -29,37 +29,42 @@
*
************************************************************************/
-#ifndef CORE_PROPLIST_HXX
-#define CORE_PROPLIST_HXX
+#include <vcl.hxx>
-#include <list>
-#include <com/sun/star/xml/input/XAttributes.hpp>
+#include <sal/types.h>
+#include <vcl/button.hxx>
-#include <rtl/ustring.hxx>
-
-namespace layoutimpl
+static PushButton* get_button (Dialog const* dialog, sal_uInt32 type)
{
+ Window* child = dialog->GetWindow (WINDOW_FIRSTCHILD);
+ while (child)
+ {
+ if (child->GetType () == type)
+ return static_cast <PushButton*> (child);
+ child = child->GetWindow (WINDOW_NEXT);
+ }
-namespace css = ::com::sun::star;
-
-typedef std::list< std::pair< rtl::OUString, rtl::OUString > > PropList;
-
-void propsFromAttributes( const css::uno::Reference<css::xml::input::XAttributes> & xAttributes,
- PropList &rProps, sal_Int32 nNamespace );
-
-void setProperties( css::uno::Reference< css::uno::XInterface > const& xPeer,
- PropList const& rProps);
-
-void setProperty( css::uno::Reference< css::uno::XInterface > const& xPeer,
- rtl::OUString const& attr, rtl::OUString const& value );
-
-long getAttributeProps( PropList &rProps );
-bool findAndRemove( const char *pAttr, PropList &rProps, rtl::OUString &rValue);
-
+ return 0;
}
-// Convert a rtl::OUString to a byte string.
-#define OUSTRING_CSTR( str ) \
- rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US ).getStr()
+#define IMPLEMENT_CLOSING_DIALOG(cls)\
+ Closing##cls::Closing##cls (Window* parent, WinBits bits)\
+ : cls (parent, bits)\
+ , mClosing (false)\
+ {\
+ }\
+ BOOL Closing##cls::Close ()\
+ {\
+ if (mClosing)\
+ EndDialog (false);\
+ else if (PushButton *cancel = get_button (this, WINDOW_CANCELBUTTON))\
+ cancel->Click ();\
+ else if (PushButton *ok = get_button (this, WINDOW_OKBUTTON))\
+ ok->Click ();\
+ mClosing = true;\
+ return false;\
+ }
-#endif // CORE_PROPLIST_HXX
+IMPLEMENT_CLOSING_DIALOG (Dialog);
+IMPLEMENT_CLOSING_DIALOG (ModelessDialog);
+IMPLEMENT_CLOSING_DIALOG (ModalDialog);
diff --git a/comphelper/qa/complex/sequenceoutputstream/SequenceOutputStreamTest.java b/toolkit/source/layout/core/vcl.hxx
index e2acd0dd1322..d072fa4bf25e 100644
--- a/comphelper/qa/complex/sequenceoutputstream/SequenceOutputStreamTest.java
+++ b/toolkit/source/layout/core/vcl.hxx
@@ -6,8 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: SequenceOutputStreamTest.java,v $
- * $Revision: 1.3 $
+ * $RCSfile$
+ *
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -27,8 +28,25 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-package complex.sequenceoutputstream;
-public interface SequenceOutputStreamTest {
- boolean test();
-} \ No newline at end of file
+#ifndef LAYOUT_CORE_VCL_HXX
+#define LAYOUT_CORE_VCL_HXX
+
+#include <vcl/dialog.hxx>
+
+#define DECLARE_CLOSING_DIALOG(cls)\
+ class Closing##cls : public cls\
+ {\
+ public:\
+ bool mClosing;\
+ Closing##cls (Window* parent, WinBits bits);\
+ virtual BOOL Close ();\
+ }
+
+DECLARE_CLOSING_DIALOG (Dialog);
+DECLARE_CLOSING_DIALOG (ModalDialog);
+DECLARE_CLOSING_DIALOG (ModelessDialog);
+
+#undef DECLARE_CLOSING_DIALOG
+
+#endif /* LAYOUT_CORE_VCL_HXX */
diff --git a/toolkit/source/layout/helper.cxx b/toolkit/source/layout/helper.cxx
deleted file mode 100644
index b03de8394fee..000000000000
--- a/toolkit/source/layout/helper.cxx
+++ /dev/null
@@ -1,520 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: helper.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 "helper.hxx"
-
-#include <assert.h>
-#include <list>
-#include <com/sun/star/awt/WindowAttribute.hpp>
-#include <com/sun/star/awt/XWindow.hpp>
-#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
-#include <tools/debug.hxx>
-
-#include "proplist.hxx"
-#include "layout/layoutcore.hxx"
-
-#if TEST_LAYOUT && !defined( DBG_UTIL )
-#include <stdio.h>
-#undef DBG_ERROR
-#define DBG_ERROR printf
-#undef DBG_ERROR1
-#define DBG_ERROR1 printf
-#undef DBG_ERROR2
-#define DBG_ERROR2 printf
-#endif /* TEST_LAYOUT && !DBG_UTIL */
-
-namespace layoutimpl
-{
-using namespace com::sun::star;
-using rtl::OUString;
-
-uno::Reference< awt::XWindowPeer >
-getParent( uno::Reference< uno::XInterface > xRef )
-{
- do
- {
- uno::Reference< awt::XWindowPeer > xPeer( xRef, uno::UNO_QUERY );
- if ( xPeer.is() )
- return xPeer;
-
- uno::Reference< awt::XLayoutContainer > xCont( xRef, uno::UNO_QUERY );
- if ( xCont.is() )
- xRef = xCont->getParent();
- }
- while ( xRef.is() );
-
- return uno::Reference< awt::XWindowPeer >();
-}
-
-#if 0
-static uno::Reference< awt::XWindowPeer >
-getToplevel( uno::Reference< uno::XInterface > xRef )
-{
- uno::Reference< awt::XWindowPeer > xTop, i;
- while ( ( i = uno::Reference< awt::XWindowPeer >( xRef, uno::UNO_QUERY ) ).is() )
- {
- xTop = i;
-
- uno::Reference< awt::XLayoutContainer > xCont( xRef, uno::UNO_QUERY );
- if ( xCont.is() )
- xRef = xCont->getParent();
- else
- xRef = uno::Reference< awt::XWindowPeer >();
- }
-
- return xTop;
-}
-#endif
-
-}
-
-#include "dialogbuttonhbox.hxx"
-#include "bin.hxx"
-#include "box.hxx"
-#include "table.hxx"
-#include "flow.hxx"
-
-namespace layoutimpl
-{
-
-static uno::Reference< awt::XLayoutConstrains > ImplCreateWindow(
- uno::Reference< uno::XInterface > xParent,
- OUString aName, long WindowAttributes );
-
-uno::Reference< awt::XLayoutContainer >
-createContainer( const OUString &rName )
-{
- uno::Reference< awt::XLayoutContainer > xPeer;
-
- if ( rName.equalsAscii( "hbox" ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new HBox() );
- else if ( rName.equalsAscii( "vbox" ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new VBox() );
- else if ( rName.equalsAscii( "table" ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new Table() );
- else if ( rName.equalsAscii( "flow" ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new Flow() );
- else if ( rName.equalsAscii( "bin" ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new Bin() );
- else if ( rName.equalsAscii( "min-size" ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new MinSize() );
- else if ( rName.equalsAscii( "align" ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new Align() );
- else if ( rName.equalsAscii( "dialogbuttonhbox" ) )
- xPeer = uno::Reference< awt::XLayoutContainer >( new DialogButtonHBox() );
-
- return xPeer;
-}
-
-static uno::Reference< awt::XLayoutConstrains >
-createToolkitWidget( uno::Reference< awt::XToolkit > xToolkit,
- uno::Reference< uno::XInterface > xParent,
- const OUString &rName, long nProps )
-{
- uno::Reference< awt::XLayoutConstrains > xPeer;
- bool bToplevel = !xParent.is();
-
- // UNO Control Widget
- awt::WindowDescriptor desc;
- if ( bToplevel )
- desc.Type = awt::WindowClass_TOP;
- else
- {
- desc.Type = awt::WindowClass_SIMPLE;
-
- // top container -- a wrapper for framewindow -- is de-coupled
- // from awt::XWindowPeer. So, getParent() fails at it.
-// uno::Reference< awt::XWindowPeer > xWinParent = getParent( xParent );
-
- uno::Reference< awt::XWindowPeer > xWinParent( xParent, uno::UNO_QUERY );
-
- assert( xParent.is() );
- assert( xWinParent.is() );
- desc.Parent = xWinParent;
- }
-
- desc.ParentIndex = 0;
- // debugging help ...
- desc.Bounds.X = 0;
- desc.Bounds.Y = 0;
- desc.Bounds.Width = 300;
- desc.Bounds.Height = 200;
-
- desc.WindowAttributes = nProps;
- desc.WindowServiceName = rName;
-
- uno::Reference< awt::XWindowPeer > xWinPeer;
- try
- {
-// DBG_ERROR1("Asking toolkit: %s\n", OUSTRING_CSTR( desc.WindowServiceName ) );
- xWinPeer = xToolkit->createWindow( desc );
- if ( !xWinPeer.is() )
- throw uno::RuntimeException(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "Cannot create peer" ) ),
- uno::Reference< uno::XInterface >() );
- xPeer = uno::Reference< awt::XLayoutConstrains >( xWinPeer, uno::UNO_QUERY );
- }
- catch( uno::Exception & )
- {
- DBG_ERROR1( "Warning: %s is not a recognized type\n", OUSTRING_CSTR( rName ) );
- return uno::Reference< awt::XLayoutConstrains >();
- }
-
- // default to visible, let then people change it on properties
- if ( ! bToplevel )
- {
- uno::Reference< awt::XWindow> xWindow( xPeer, uno::UNO_QUERY );
- if ( xWindow.is() )
- xWindow->setVisible( true );
- }
- return xPeer;
-}
-
-uno::Reference< awt::XLayoutConstrains >
-createWidget( uno::Reference< awt::XToolkit > xToolkit,
- uno::Reference< uno::XInterface > xParent,
- const OUString &rName, long nProps )
-{
- uno::Reference< awt::XLayoutConstrains > xPeer;
-
- xPeer = uno::Reference< awt::XLayoutConstrains >(
- createContainer( rName ), uno::UNO_QUERY );
- if ( xPeer.is() )
- return xPeer;
-
- xPeer = ImplCreateWindow( xParent, rName, nProps );
- if ( xPeer.is() )
- return xPeer;
-
-#if FIXED_INFO
- OUString tName = rName;
- // FIXME
- if ( rName.equalsAscii( "fixedinfo" ) )
- tName = OUString::createFromAscii( "fixedtext" );
- xPeer = createToolkitWidget( xToolkit, xParent, tName, nProps );
-#else
- xPeer = createToolkitWidget( xToolkit, xParent, rName, nProps );
-#endif
- return xPeer;
-}
-
-PropHelper::PropHelper() : LockHelper()
- , cppu::OPropertySetHelper( maBrdcstHelper )
- , pHelper( NULL )
-{
-}
-
-void
-PropHelper::addProp (const char *pName, sal_Int32 nNameLen, rtl_TextEncoding e,
- uno::Type aType, void *pPtr)
-{
- // this sucks rocks for effiency ...
- PropDetails aDetails;
- aDetails.aName = rtl::OUString::intern( pName, nNameLen, e );
- aDetails.aType = aType;
- aDetails.pValue = pPtr;
- maDetails.push_back( aDetails );
-}
-
-cppu::IPropertyArrayHelper & SAL_CALL
-PropHelper::getInfoHelper()
-{
- if ( ! pHelper )
- {
- uno::Sequence< beans::Property > aProps( maDetails.size() );
- for ( unsigned int i = 0; i < maDetails.size(); i++)
- {
- aProps[i].Name = maDetails[i].aName;
- aProps[i].Type = maDetails[i].aType;
- aProps[i].Handle = i;
- aProps[i].Attributes = 0;
- }
- pHelper = new cppu::OPropertyArrayHelper( aProps, false /* fixme: faster ? */ );
-
- }
- return *pHelper;
-}
-
-sal_Bool SAL_CALL
-PropHelper::convertFastPropertyValue(
- uno::Any & rConvertedValue,
- uno::Any & rOldValue,
- sal_Int32 nHandle,
- const uno::Any& rValue )
- throw (lang::IllegalArgumentException)
-{
- OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
-
- // FIXME: no Any::getValue ...
- getFastPropertyValue( rOldValue, nHandle );
- if ( rOldValue != rValue )
- {
- rConvertedValue = rValue;
- return sal_True; // changed
- }
- else
- {
- rConvertedValue.clear();
- rOldValue.clear();
- }
- return sal_False;
-}
-
-
-void SAL_CALL
-PropHelper::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle,
- const uno::Any& rValue )
- throw (uno::Exception)
-{
- OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
-
- const PropDetails &rInfo = maDetails[ nHandle ];
-
- uno_type_assignData( rInfo.pValue, rInfo.aType.getTypeLibType(),
- rValue.pData, rValue.pType,
- 0, 0, 0 );
-
- if ( mpListener )
- mpListener->propertiesChanged();
-}
-
-void SAL_CALL
-PropHelper::getFastPropertyValue( uno::Any& rValue,
- sal_Int32 nHandle ) const
-{
- OSL_ASSERT( nHandle >= 0 && nHandle < (sal_Int32) maDetails.size() );
- const PropDetails &rInfo = maDetails[ nHandle ];
-#if 0
- switch ( rInfo.aType.getTypeClass() )
- {
-#define MAP(classtype,ctype) \
- case uno::TypeClass_##classtype: \
- rValue <<= *(ctype *)(rInfo.pValue); \
- break
- MAP( DOUBLE, double );
- MAP( SHORT, sal_Int16 );
- MAP( LONG, sal_Int32 );
- MAP( UNSIGNED_SHORT, sal_uInt16 );
- MAP( UNSIGNED_LONG, sal_uInt32 );
- MAP( STRING, ::rtl::OUString );
- default:
- DBG_ERROR( "ERROR: unknown type to map!" );
- break;
- }
-#undef MAP
-#endif
- rValue.setValue( rInfo.pValue, rInfo.aType );
-}
-
-::com::sun::star::uno::Any
-PropHelper::queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException)
-{
- return OPropertySetHelper::queryInterface( rType );
-}
-
-} // namespace layoutimpl
-
-#include <awt/vclxbutton.hxx>
-#include <awt/vclxdialog.hxx>
-#include <awt/vclxfixedline.hxx>
-#include <awt/vclxscroller.hxx>
-#include <awt/vclxsplitter.hxx>
-#include <awt/vclxtabcontrol.hxx>
-#include <toolkit/awt/vclxtoolkit.hxx>
-#include <toolkit/awt/vclxwindow.hxx>
-#include <vcl/button.hxx>
-#include <vcl/dialog.hxx>
-#include <vcl/fixed.hxx>
-#include <vcl/tabctrl.hxx>
-#include <vcl/tabpage.hxx>
-
-
-///#include <svtools/prgsbar.hxx>
-
-namespace layoutimpl
-{
-
-uno::Reference< awt::XLayoutConstrains > ImplCreateWindow(
- uno::Reference< uno::XInterface > xParent,
- OUString aName, long WindowAttributes )
-{
- VCLXWindow *pNewComp = NULL;
- Window *pNewWindow = NULL;
- Window *pParent = NULL;
- uno::Reference< awt::XLayoutConstrains > xRef;
-
- VCLXWindow* pParentComponent = VCLXWindow::GetImplementation( xParent );
- if ( pParentComponent )
- pParent = pParentComponent->GetWindow();
-
- if ( aName.equalsAscii( "dialog" ) )
- {
- if ( pParent == NULL )
- pParent = DIALOG_NO_PARENT;
- pNewWindow = new Dialog( pParent,
- ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXDialog();
-
- WindowAttributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( aName.equalsAscii( "modaldialog" ) )
- {
- if ( pParent == NULL )
- pParent = DIALOG_NO_PARENT;
- pNewWindow = new ModalDialog( pParent,
- ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXDialog();
-
- WindowAttributes ^= awt::WindowAttribute::SHOW;
- }
- else if ( aName.equalsAscii( "tabcontrol" ) )
- {
- pNewWindow = new TabControl( pParent,
- ImplGetWinBits( WindowAttributes, WINDOW_TABCONTROL ) );
- pNewComp = new layoutimpl::VCLXTabControl();
- }
- else if ( aName.equalsAscii( "scroller" ) )
- {
- // used FixedImage because I just want some empty non-intrusive widget
- pNewWindow = new FixedImage( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXScroller();
- }
- else if ( aName.equalsAscii( "hsplitter" ) || aName.equalsAscii( "vsplitter" ) )
- {
- pNewWindow = new FixedImage( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXSplitter( aName.equalsAscii( "hsplitter" ) );
- }
- else if ( aName.equalsAscii( "hfixedline" ) || aName.equalsAscii( "vfixedline" ) )
- {
- WinBits nStyle = ImplGetWinBits( WindowAttributes, 0 );
- nStyle ^= WB_HORZ;
- if ( aName.equalsAscii( "hfixedline" ) )
- nStyle |= WB_HORZ;
- else
- nStyle |= WB_VERT;
- pNewWindow = new FixedLine( pParent, nStyle );
- pNewComp = new layoutimpl::VCLXFixedLine();
- }
- else if ( aName.equalsAscii( "okbutton" ) )
- {
- pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXOKButton( pNewWindow );
- }
- else if ( aName.equalsAscii( "cancelbutton" ) )
- {
- pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXCancelButton( pNewWindow );
- }
- else if ( aName.equalsAscii( "yesbutton" ) )
- {
- pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXYesButton( pNewWindow );
- }
- else if ( aName.equalsAscii( "nobutton" ) )
- {
- pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXNoButton( pNewWindow );
- }
- else if ( aName.equalsAscii( "retrybutton" ) )
- {
- pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXRetryButton( pNewWindow );
- }
- else if ( aName.equalsAscii( "ignorebutton" ) )
- {
- pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXIgnoreButton( pNewWindow );
- }
- else if ( aName.equalsAscii( "resetbutton" ) )
- {
- pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXResetButton( pNewWindow );
- }
- else if ( aName.equalsAscii( "applybutton" ) )
- {
- pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXApplyButton( pNewWindow );
- }
- else if ( aName.equalsAscii( "helpbutton" ) )
- {
- pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXHelpButton( pNewWindow );
- }
- else if ( aName.equalsAscii( "morebutton" ) )
- {
- pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXMoreButton( pNewWindow );
- }
- else if ( aName.equalsAscii( "advancedbutton" ) )
- {
- pNewWindow = new PushButton( pParent, ImplGetWinBits( WindowAttributes, 0 ) );
- pNewComp = new layoutimpl::VCLXAdvancedButton( pNewWindow );
- }
-
- if ( !pNewWindow )
- return xRef;
-
- pNewWindow->SetCreatedWithToolkit( sal_True );
- pNewComp->SetCreatedWithToolkit( TRUE );
- xRef = pNewComp;
- pNewWindow->SetComponentInterface( pNewComp );
- if ( WindowAttributes & awt::WindowAttribute::SHOW )
- pNewWindow->Show();
-
- return xRef;
-}
-
-} // namespace layoutimpl
-
-// Avoid polluting the rest of the code with vcl linkage pieces ...
-
-#include <vcl/imagerepository.hxx>
-#include <vcl/bitmapex.hxx>
-#include <vcl/graph.hxx>
-
-namespace layoutimpl
-{
-
-uno::Reference< graphic::XGraphic > loadGraphic( const char *pName )
-{
- BitmapEx aBmp;
-
- OUString aStr( pName, strlen( pName ), RTL_TEXTENCODING_ASCII_US );
- if ( aStr.compareToAscii( ".uno:" ) == 0 )
- aStr = aStr.copy( 5 ).toAsciiLowerCase();
-
- if ( !vcl::ImageRepository::loadImage( OUString::createFromAscii( pName ), aBmp, true ) )
- return uno::Reference< graphic::XGraphic >();
-
- return Graphic( aBmp ).GetXGraphic();
-}
-
-} // namespace layoutimpl
diff --git a/toolkit/source/vclcompat/makefile.mk b/toolkit/source/layout/vcl/makefile.mk
index a4405e186508..a6cc754efa1b 100644
--- a/toolkit/source/vclcompat/makefile.mk
+++ b/toolkit/source/layout/vcl/makefile.mk
@@ -6,9 +6,9 @@
#
# OpenOffice.org - a multi-platform office productivity suite
#
-# $RCSfile: makefile.mk,v $
+# $RCSfile$
#
-# $Revision: 1.3 $
+# $Revision$
#
# This file is part of OpenOffice.org.
#
@@ -29,9 +29,9 @@
#
#*************************************************************************
-PRJ=..$/..
+PRJ=../../..
PRJNAME=toolkit
-TARGET=vclcompat
+TARGET=layout-vcl
ENABLE_EXCEPTIONS=true
# --- Settings -----------------------------------------------------
@@ -39,10 +39,11 @@ ENABLE_EXCEPTIONS=true
.INCLUDE : settings.mk
.INCLUDE : $(PRJ)$/util$/makefile.pmk
-# --- Files --------------------------------------------------------
+.IF "$(COMNAME)" == "gcc3"
+CFLAGS+=-Wall -fno-default-inline
+.ENDIF
-# FIXME: This is bad, hmkay
-CFLAGS+= -I$(PRJ)/source
+# --- Files --------------------------------------------------------
SLOFILES= \
$(SLO)$/wrapper.obj \
diff --git a/toolkit/source/layout/vcl/wbutton.cxx b/toolkit/source/layout/vcl/wbutton.cxx
new file mode 100644
index 000000000000..0b8b41299315
--- /dev/null
+++ b/toolkit/source/layout/vcl/wbutton.cxx
@@ -0,0 +1,685 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile$
+ *
+ * $Revision$
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "wrapper.hxx"
+
+#include <com/sun/star/awt/PosSize.hpp>
+#include <com/sun/star/awt/XActionListener.hpp>
+#include <com/sun/star/awt/XButton.hpp>
+#include <com/sun/star/awt/XCheckBox.hpp>
+#include <com/sun/star/awt/XRadioButton.hpp>
+#include <com/sun/star/graphic/XGraphic.hpp>
+#include <cppuhelper/implbase1.hxx>
+#include <toolkit/awt/vclxwindow.hxx>
+#include <toolkit/awt/vclxwindows.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <vcl/button.hxx>
+#include <vcl/event.hxx>
+#include <vcl/msgbox.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/window.hxx>
+
+#include <list>
+
+#include <layout/core/helper.hxx>
+
+using namespace ::com::sun::star;
+
+using rtl::OUString;
+
+namespace layout
+{
+
+class ImageImpl
+{
+ public:
+ uno::Reference< graphic::XGraphic > mxGraphic;
+ ImageImpl( const char *pName )
+ : mxGraphic( layoutimpl::loadGraphic( pName ) )
+ {
+ if ( !mxGraphic.is() )
+ {
+ DBG_ERROR1( "ERROR: failed to load image: `%s'\n", pName );
+ }
+ }
+};
+
+Image::Image( const char *pName )
+ : pImpl( new ImageImpl( pName ) )
+{
+}
+
+Image::~Image()
+{
+ delete pImpl;
+}
+
+class ButtonImpl : public ControlImpl
+ , public ::cppu::WeakImplHelper1< awt::XActionListener >
+{
+ Link maClickHdl;
+
+public:
+ uno::Reference< awt::XButton > mxButton;
+ ButtonImpl( Context *context, const PeerHandle &peer, Window *window )
+ : ControlImpl( context, peer, window )
+ , mxButton( peer, uno::UNO_QUERY )
+ {
+ /* We have default action when clicked, always listen. */
+ mxButton->addActionListener( this );
+ }
+
+ ~ButtonImpl()
+ {
+ }
+
+ virtual void Click() { /* make me pure virtual? */ };
+
+ Link& GetClickHdl ()
+ {
+ return maClickHdl;
+ }
+
+ virtual void SetClickHdl( Link const& link )
+ {
+ maClickHdl = link;
+ }
+
+ void SAL_CALL disposing( lang::EventObject const& e )
+ throw (uno::RuntimeException)
+ {
+ mxButton->removeActionListener( this );
+ ControlImpl::disposing (e);
+ mxButton.clear ();
+ }
+
+ virtual void SAL_CALL actionPerformed( const awt::ActionEvent& )
+ throw (uno::RuntimeException)
+ {
+ if ( !maClickHdl )
+ Click();
+ else
+ maClickHdl.Call( static_cast<Window *>( mpWindow ) );
+ }
+
+ bool SetModeImage( uno::Reference< graphic::XGraphic > xGraph )
+ {
+ setProperty( "Graphic", uno::Any( xGraph ) );
+ return true;
+ }
+};
+
+Button::~Button ()
+{
+}
+
+String Button::GetStandardText (sal_uInt16 button_type)
+{
+ return ::Button::GetStandardText (button_type);
+}
+
+void Button::SetText( OUString const& rStr )
+{
+ if ( !getImpl().mxButton.is() )
+ return;
+ getImpl().mxButton->setLabel( rStr );
+}
+
+void Button::SetClickHdl( const Link& link )
+{
+ if (&getImpl () && getImpl().mxButton.is ())
+ getImpl().SetClickHdl( link );
+}
+
+Link& Button::GetClickHdl ()
+{
+ return getImpl().GetClickHdl ();
+}
+
+bool Button::SetModeImage (Image const& image)
+{
+ return getImpl().SetModeImage (image.getImpl().mxGraphic);
+}
+
+bool Button::SetModeImage (::Image const& image, BmpColorMode mode)
+{
+ return GetButton ()->SetModeImage (image, mode);
+}
+
+void Button::SetImageAlign( ImageAlign eAlign )
+{
+ getImpl().setProperty( "ImageAlign", uno::Any( (sal_Int16) eAlign ) );
+}
+
+void Button::Click()
+{
+}
+
+IMPL_GET_IMPL( Button );
+IMPL_CONSTRUCTORS( Button, Control, "button" );
+IMPL_GET_WINDOW (Button);
+
+class PushButtonImpl : public ButtonImpl
+ , public ::cppu::WeakImplHelper1< awt::XItemListener >
+{
+ Link maToggleHdl;
+public:
+ PushButtonImpl( Context *context, const PeerHandle &peer, Window *window )
+ : ButtonImpl( context, peer, window )
+ {
+ }
+
+ void SetToggleHdl( const Link& link )
+ {
+ // XButton doesn't have an explicit event for Toggle. Anyway, it is a
+ // superset of the clicks: all clicks, and explicit toggles
+ if (!link && !!maToggleHdl)
+ mxButton->removeActionListener( this );
+ else if (!!link && !maToggleHdl)
+ mxButton->addActionListener( this );
+ maToggleHdl = link;
+ }
+ void SAL_CALL disposing( lang::EventObject const& e )
+ throw (uno::RuntimeException)
+ {
+ ButtonImpl::disposing (e);
+ }
+ virtual void SAL_CALL actionPerformed( awt::ActionEvent const& e )
+ throw (uno::RuntimeException)
+ {
+ ButtonImpl::actionPerformed( e );
+ fireToggle();
+ }
+ virtual void SAL_CALL itemStateChanged( const awt::ItemEvent& )
+ throw (uno::RuntimeException)
+ {
+ maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
+ }
+ void fireToggle()
+ {
+ maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
+ }
+
+};
+
+PushButton::~PushButton ()
+{
+ SetToggleHdl (Link ());
+}
+
+void PushButton::Check( bool bCheck )
+{
+ getImpl().setProperty( "State", uno::Any( (sal_Int16) !!bCheck ) );
+ // XButton doesn't have explicit toggle event
+ getImpl().fireToggle();
+}
+
+bool PushButton::IsChecked() const
+{
+ return !!( getImpl().getProperty( "State" ).get< sal_Int16 >() );
+}
+
+void PushButton::Toggle()
+{
+ Check( true );
+}
+
+void PushButton::SetToggleHdl( const Link& link )
+{
+ if (&getImpl () && getImpl().mxButton.is ())
+ getImpl().SetToggleHdl( link );
+}
+
+IMPL_GET_IMPL( PushButton );
+IMPL_CONSTRUCTORS( PushButton, Button, "pushbutton" );
+IMPL_GET_WINDOW (PushButton);
+
+class RadioButtonImpl : public ButtonImpl
+ , public ::cppu::WeakImplHelper1< awt::XItemListener >
+{
+ Link maToggleHdl;
+public:
+ uno::Reference< awt::XRadioButton > mxRadioButton;
+ RadioButtonImpl( Context *context, const PeerHandle &peer, Window *window )
+ : ButtonImpl( context, peer, window )
+ , mxRadioButton( peer, uno::UNO_QUERY )
+ {
+ }
+
+ void Check( bool bCheck )
+ {
+ if ( !mxRadioButton.is() )
+ return;
+
+#if 1
+ // Have setState fire item event for
+ // RadioGroups::RadioGroup::itemStateChanged ()
+ ::RadioButton *r = static_cast<RadioButton*>(mpWindow)->GetRadioButton ();
+ bool state = r->IsRadioCheckEnabled ();
+ r->EnableRadioCheck();
+ mxRadioButton->setState( !!bCheck );
+ r->EnableRadioCheck (state);
+#else
+ mxRadioButton->setState( !!bCheck );
+#endif
+ fireToggle();
+ }
+
+ bool IsChecked()
+ {
+ if ( !mxRadioButton.is() )
+ return false;
+ return mxRadioButton->getState();
+ }
+
+ void SetToggleHdl( const Link& link )
+ {
+ if (!link && !!maToggleHdl)
+ mxRadioButton->removeItemListener( this );
+ else if (!!link && !maToggleHdl)
+ mxRadioButton->addItemListener( this );
+ maToggleHdl = link;
+ }
+
+ inline void fireToggle()
+ {
+ maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
+ }
+
+ virtual void SetClickHdl( const Link& link )
+ {
+ // Keep RadioGroups::RadioGroup's actionListener at HEAD
+ // of list. This way, it can handle RadioGroup's button
+ // states before all other callbacks and make sure the
+ // client code has the right state.
+
+ // IWBN to add an XRadioButton2 and layout::VCLXRadioButton
+ // with {get,set}RadioGroup() (and a "radiogroup" property
+ // even) and handle the grouping here in RadioButtonImpl.
+ uno::Reference< uno::XInterface > x = static_cast<VCLXRadioButton*> (mpWindow->GetVCLXWindow ())->getFirstActionListener ();
+ uno::Reference< awt::XActionListener > a = uno::Reference< awt::XActionListener> (x ,uno::UNO_QUERY );
+ mxButton->removeActionListener (a);
+ ButtonImpl::SetClickHdl (link);
+ mxButton->addActionListener (a);
+ }
+
+ void SAL_CALL disposing( lang::EventObject const& e )
+ throw (uno::RuntimeException)
+ {
+ ButtonImpl::disposing (e);
+ }
+
+ virtual void SAL_CALL itemStateChanged( const awt::ItemEvent& )
+ throw (uno::RuntimeException)
+ {
+ maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
+ }
+};
+
+RadioButton::~RadioButton ()
+{
+ SetToggleHdl (Link ());
+}
+
+void RadioButton::Check( bool bCheck )
+{
+ getImpl().Check( bCheck );
+}
+
+bool RadioButton::IsChecked() const
+{
+ return getImpl().IsChecked();
+}
+
+void RadioButton::SetToggleHdl( const Link& link )
+{
+ if (&getImpl () && getImpl().mxRadioButton.is ())
+ getImpl().SetToggleHdl( link );
+}
+
+IMPL_GET_IMPL( RadioButton );
+IMPL_GET_WINDOW( RadioButton );
+IMPL_GET_VCLXWINDOW( RadioButton );
+IMPL_CONSTRUCTORS( RadioButton, Button, "radiobutton" );
+
+class CheckBoxImpl : public ButtonImpl
+ , public ::cppu::WeakImplHelper1< awt::XItemListener >
+{
+ Link maToggleHdl;
+ public:
+ uno::Reference< awt::XCheckBox > mxCheckBox;
+ CheckBoxImpl( Context *context, const PeerHandle &peer, Window *window )
+ : ButtonImpl( context, peer, window )
+ , mxCheckBox( peer, uno::UNO_QUERY )
+ {
+ }
+
+ void SetToggleHdl( const Link& link )
+ {
+ if (!link && !!maToggleHdl)
+ mxCheckBox->removeItemListener( this );
+ else if (!!link && !maToggleHdl)
+ mxCheckBox->addItemListener( this );
+ maToggleHdl = link;
+ }
+ void SAL_CALL disposing( lang::EventObject const& e )
+ throw (uno::RuntimeException)
+ {
+ ButtonImpl::disposing (e);
+ }
+ virtual void SAL_CALL itemStateChanged( const awt::ItemEvent& )
+ throw (uno::RuntimeException)
+ {
+ maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
+ }
+};
+
+CheckBox::~CheckBox ()
+{
+ SetToggleHdl (Link ());
+}
+
+void CheckBox::Check( bool bCheck )
+{
+ if ( !getImpl().mxCheckBox.is() )
+ return;
+ getImpl().mxCheckBox->setState( !!bCheck );
+}
+
+bool CheckBox::IsChecked() const
+{
+ if ( !getImpl().mxCheckBox.is() )
+ return false;
+ return getImpl().mxCheckBox->getState() != 0;
+}
+
+void CheckBox::SetToggleHdl( const Link& link )
+{
+ if (&getImpl () && getImpl().mxCheckBox.is ())
+ getImpl().SetToggleHdl( link );
+}
+
+IMPL_GET_IMPL( CheckBox );
+IMPL_CONSTRUCTORS( CheckBox, Button, "checkbox" );
+
+#define BUTTON_IMPL(t, parent, response) \
+ class t##Impl : public parent##Impl \
+ { \
+ public: \
+ t##Impl( Context *context, PeerHandle const& peer, Window *window ) \
+ : parent##Impl( context, peer, window ) \
+ { \
+ } \
+ void Click() \
+ { \
+ if (Dialog *d = static_cast<Dialog *> (mpCtx)) \
+ d->EndDialog( response ); \
+ } \
+ }
+
+/* Common button types currently unavailable in OOo: */
+/* mpReset */
+/* mpApply */
+/* mpAction */
+#define RET_RESET 6
+#define RET_APPLY 7
+#define BUTTONID_RESET RET_RESET
+#define BUTTONID_APPLY RET_APPLY
+
+BUTTON_IMPL( OKButton, PushButton, BUTTONID_OK );
+BUTTON_IMPL( CancelButton, PushButton, BUTTONID_CANCEL );
+BUTTON_IMPL( YesButton, PushButton, BUTTONID_YES );
+BUTTON_IMPL( NoButton, PushButton, BUTTONID_NO );
+BUTTON_IMPL( RetryButton, PushButton, BUTTONID_RETRY );
+BUTTON_IMPL( IgnoreButton, PushButton, BUTTONID_IGNORE );
+BUTTON_IMPL( ResetButton, PushButton, BUTTONID_RESET );
+BUTTON_IMPL( ApplyButton, PushButton, BUTTONID_APPLY ); /* Deprecated? */
+BUTTON_IMPL( HelpButton, PushButton, BUTTONID_HELP );
+
+IMPL_CONSTRUCTORS( OKButton, PushButton, "okbutton" );
+IMPL_CONSTRUCTORS( CancelButton, PushButton, "cancelbutton" );
+IMPL_CONSTRUCTORS( YesButton, PushButton, "yesbutton" );
+IMPL_CONSTRUCTORS( NoButton, PushButton, "nobutton" );
+IMPL_CONSTRUCTORS( RetryButton, PushButton, "retrybutton" );
+IMPL_CONSTRUCTORS( IgnoreButton, PushButton, "ignorebutton" );
+IMPL_CONSTRUCTORS( ResetButton, PushButton, "resetbutton" );
+IMPL_CONSTRUCTORS( ApplyButton, PushButton, "applybutton" ); /* Deprecated? */
+IMPL_CONSTRUCTORS( HelpButton, PushButton, "helpbutton" );
+
+IMPL_IMPL (ImageButton, PushButton)
+
+
+IMPL_CONSTRUCTORS( ImageButton, PushButton, "imagebutton" );
+
+class AdvancedButtonImpl : public PushButtonImpl
+{
+protected:
+ bool bAdvancedMode;
+ std::list< Window*> maAdvanced;
+ std::list< Window*> maSimple;
+
+public:
+ rtl::OUString mAdvancedLabel;
+ rtl::OUString mSimpleLabel;
+
+protected:
+ Window* Remove( std::list< Window*> lst, Window* w )
+ {
+ for ( std::list< Window*>::iterator it = maAdvanced.begin();
+ it != maAdvanced.end(); it++ )
+ if ( *it == w )
+ {
+ lst.erase( it );
+ return *it;
+ }
+ return 0;
+ }
+
+public:
+ AdvancedButtonImpl( Context *context, PeerHandle const& peer, Window *window )
+ : PushButtonImpl( context, peer, window )
+ , bAdvancedMode( false )
+ // TODO: i18n
+ // Button::GetStandardText( BUTTON_ADVANCED );
+ // Button::GetStandardText( BUTTON_SIMPLE );
+ , mAdvancedLabel( rtl::OUString::createFromAscii( "Advanced..." ) )
+ , mSimpleLabel( rtl::OUString::createFromAscii( "Simple..." ) )
+ {
+ }
+ void Click()
+ {
+ bAdvancedMode = !bAdvancedMode;
+ if ( bAdvancedMode )
+ advancedMode();
+ else
+ simpleMode();
+ }
+ void setAlign ()
+ {
+ ::PushButton *b = static_cast<PushButton*> (mpWindow)->GetPushButton ();
+ b->SetSymbolAlign (SYMBOLALIGN_RIGHT);
+ b->SetSmallSymbol ();
+ //mpWindow->SetStyle (mpWindow->GetStyle() | WB_CENTER);
+ }
+ void advancedMode()
+ {
+ ::PushButton *b = static_cast<PushButton*> (mpWindow)->GetPushButton ();
+ b->SetSymbol (SYMBOL_PAGEUP);
+ setAlign ();
+ if (mSimpleLabel.getLength ())
+ b->SetText (mSimpleLabel);
+ for ( std::list< Window*>::iterator it = maAdvanced.begin();
+ it != maAdvanced.end(); it++ )
+ ( *it )->Show();
+ for ( std::list< Window*>::iterator it = maSimple.begin();
+ it != maSimple.end(); it++ )
+ ( *it )->Hide();
+
+ redraw ();
+ }
+ void simpleMode()
+ {
+ //mxButton->setLabel( mSimpleLabel );
+ ::PushButton *b = static_cast<PushButton*> (mpWindow)->GetPushButton ();
+ b->SetSymbol (SYMBOL_PAGEDOWN);
+ if (mAdvancedLabel.getLength ())
+ b->SetText (mAdvancedLabel);
+ setAlign ();
+ for ( std::list< Window*>::iterator it = maAdvanced.begin();
+ it != maAdvanced.end(); it++ )
+ ( *it )->Hide();
+ for ( std::list< Window*>::iterator it = maSimple.begin();
+ it != maSimple.end(); it++ )
+ ( *it )->Show();
+
+ redraw (true);
+ }
+ void AddAdvanced( Window* w )
+ {
+ maAdvanced.push_back( w );
+ if ( !bAdvancedMode )
+ w->Hide();
+ }
+ void AddSimple( Window* w )
+ {
+ maSimple.push_back( w );
+ if ( bAdvancedMode )
+ w->Hide();
+ }
+ void RemoveAdvanced( Window* w )
+ {
+ Remove( maAdvanced, w );
+ }
+ void RemoveSimple( Window* w )
+ {
+ Remove( maSimple, w );
+ }
+};
+
+void AdvancedButton::AddAdvanced( Window* w )
+{
+ getImpl().AddAdvanced( w );
+}
+
+void AdvancedButton::AddSimple( Window* w )
+{
+ getImpl().AddSimple( w );
+}
+
+void AdvancedButton::RemoveAdvanced( Window* w )
+{
+ getImpl().RemoveAdvanced( w );
+}
+
+void AdvancedButton::RemoveSimple( Window* w )
+{
+ getImpl().RemoveSimple( w );
+}
+
+void AdvancedButton::SetAdvancedText (rtl::OUString const& text)
+{
+ if (text.getLength ())
+ getImpl ().mAdvancedLabel = text;
+}
+
+void AdvancedButton::SetSimpleText (rtl::OUString const& text)
+{
+ if (text.getLength ())
+ getImpl ().mSimpleLabel = text;
+}
+
+rtl::OUString AdvancedButton::GetAdvancedText () const
+{
+ return getImpl ().mAdvancedLabel;
+}
+
+rtl::OUString AdvancedButton::GetSimpleText () const
+{
+ return getImpl ().mSimpleLabel;
+}
+
+void AdvancedButton::SetDelta (int)
+{
+}
+
+IMPL_CONSTRUCTORS_BODY( AdvancedButton, PushButton, "advancedbutton", getImpl().simpleMode () );
+IMPL_GET_IMPL( AdvancedButton );
+
+
+class MoreButtonImpl : public AdvancedButtonImpl
+{
+public:
+ MoreButtonImpl( Context *context, PeerHandle const& peer, Window *window )
+ : AdvancedButtonImpl( context, peer, window)
+ {
+ mSimpleLabel = Button::GetStandardText( BUTTON_MORE );
+ mAdvancedLabel = Button::GetStandardText( BUTTON_LESS );
+ }
+ void AddWindow( Window* w ) { AddAdvanced( w ); }
+ void RemoveWindow( Window* w ) { RemoveAdvanced( w ); }
+};
+
+// TODO
+//BUTTON_IMPL( MoreButton, PushButton, 0 );
+IMPL_CONSTRUCTORS_BODY( MoreButton, AdvancedButton, "morebutton", getImpl().simpleMode () );
+IMPL_GET_IMPL( MoreButton );
+
+void MoreButton::AddWindow( Window* w )
+{
+ getImpl().AddWindow( w );
+}
+
+void MoreButton::RemoveWindow( Window* w )
+{
+ getImpl().RemoveWindow( w );
+}
+
+void MoreButton::SetMoreText (rtl::OUString const& text)
+{
+ SetAdvancedText (text);
+}
+
+void MoreButton::SetLessText (rtl::OUString const& text)
+{
+ SetSimpleText (text);
+}
+
+rtl::OUString MoreButton::GetMoreText () const
+{
+ return GetAdvancedText ();
+}
+
+rtl::OUString MoreButton::GetLessText () const
+{
+ return GetSimpleText ();
+}
+
+} // namespace layout
diff --git a/toolkit/source/vclcompat/wcontainer.cxx b/toolkit/source/layout/vcl/wcontainer.cxx
index 5fed9c34cc24..e4f5a92f69e0 100644
--- a/toolkit/source/vclcompat/wcontainer.cxx
+++ b/toolkit/source/layout/vcl/wcontainer.cxx
@@ -6,9 +6,9 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: wcontainer.cxx,v $
+ * $RCSfile$
*
- * $Revision: 1.3 $
+ * $Revision$
*
* This file is part of OpenOffice.org.
*
@@ -31,12 +31,10 @@
#include "wrapper.hxx"
-#include "layout/layoutcore.hxx"
#include <com/sun/star/awt/XLayoutRoot.hpp>
#include <com/sun/star/awt/XLayoutContainer.hpp>
-
#include <comphelper/processfactory.hxx>
-
+#include <layout/core/helper.hxx>
#include <tools/debug.hxx>
using namespace ::com::sun::star;
@@ -44,8 +42,8 @@ using namespace ::com::sun::star;
namespace layout
{
-Container::Container( Context const* pCtx, char const* pId )
- : mxContainer( pCtx->GetPeerHandle( pId ), uno::UNO_QUERY )
+Container::Container( Context const* context, char const* pId )
+ : mxContainer( context->GetPeerHandle( pId ), uno::UNO_QUERY )
{
if ( !mxContainer.is() )
{
@@ -55,7 +53,7 @@ Container::Container( Context const* pCtx, char const* pId )
Container::Container( rtl::OUString const& rName, sal_Int32 nBorder )
{
- mxContainer = layoutimpl::createContainer( rName );
+ mxContainer = layoutimpl::WidgetFactory::createContainer( rName );
uno::Reference< beans::XPropertySet > xProps( mxContainer, uno::UNO_QUERY_THROW );
xProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Border" ) ),
@@ -102,8 +100,8 @@ void Container::Clear()
{
css::uno::Sequence< css::uno::Reference < css::awt::XLayoutConstrains > > children;
children = mxContainer->getChildren();
- for ( int i = 0; i < children.getLength(); i++ )
- mxContainer->removeChild( children[ i ] );
+ for (int i = 0; i < children.getLength(); i++)
+ mxContainer->removeChild( children[i] );
}
void Container::ShowAll( bool bShow )
@@ -117,7 +115,7 @@ void Container::ShowAll( bool bShow )
{
uno::Sequence< uno::Reference < awt::XLayoutConstrains > > aChildren;
aChildren = xCont->getChildren();
- for ( int i = 0; i < aChildren.getLength(); i++ )
+ for (int i = 0; i < aChildren.getLength(); i++)
{
uno::Reference < awt::XLayoutConstrains > xChild( aChildren[ i ] );
@@ -154,12 +152,12 @@ Table::Table( sal_Int32 nBorder, sal_Int32 nColumns )
uno::Any( nColumns ) );
}
-void Table::Add( Window *pWindow, bool bXExpand, bool bYExpand,
+void Table::Add( Window *window, bool bXExpand, bool bYExpand,
sal_Int32 nXSpan, sal_Int32 nYSpan )
{
- if ( !pWindow )
+ if ( !window )
return;
- WindowImpl &rImpl = pWindow->getImpl();
+ WindowImpl &rImpl = window->getImpl();
uno::Reference< awt::XLayoutConstrains > xChild( rImpl.mxWindow,
uno::UNO_QUERY );
mxContainer->addChild( xChild );
@@ -200,11 +198,11 @@ Box::Box( rtl::OUString const& rName, sal_Int32 nBorder, bool bHomogeneous )
uno::Any( bHomogeneous ) );
}
-void Box::Add( Window *pWindow, bool bExpand, bool bFill, sal_Int32 nPadding)
+void Box::Add( Window *window, bool bExpand, bool bFill, sal_Int32 nPadding)
{
- if ( !pWindow )
+ if ( !window )
return;
- WindowImpl &rImpl = pWindow->getImpl();
+ WindowImpl &rImpl = window->getImpl();
uno::Reference< awt::XLayoutConstrains > xChild( rImpl.mxWindow,
uno::UNO_QUERY );
@@ -237,13 +235,13 @@ void Box::setProps( uno::Reference< awt::XLayoutConstrains > xChild,
uno::Any( nPadding ) );
}
-Table::Table( Context const* pCtx, char const* pId )
- : Container( pCtx, pId )
+Table::Table( Context const* context, char const* pId )
+ : Container( context, pId )
{
}
-Box::Box( Context const* pCtx, char const* pId )
- : Container( pCtx, pId )
+Box::Box( Context const* context, char const* pId )
+ : Container( context, pId )
{
}
@@ -253,8 +251,8 @@ HBox::HBox( sal_Int32 nBorder, bool bHomogeneous )
{
}
-HBox::HBox( Context const* pCtx, char const* pId )
- : Box( pCtx, pId )
+HBox::HBox( Context const* context, char const* pId )
+ : Box( context, pId )
{
}
@@ -264,8 +262,8 @@ VBox::VBox( sal_Int32 nBorder, bool bHomogeneous )
{
}
-VBox::VBox( Context const* pCtx, char const* pId )
- : Box( pCtx, pId )
+VBox::VBox( Context const* context, char const* pId )
+ : Box( context, pId )
{
}
diff --git a/toolkit/source/layout/vcl/wfield.cxx b/toolkit/source/layout/vcl/wfield.cxx
new file mode 100644
index 000000000000..281d909530b0
--- /dev/null
+++ b/toolkit/source/layout/vcl/wfield.cxx
@@ -0,0 +1,796 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile$
+ *
+ * $Revision$
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "wrapper.hxx"
+
+#include <comphelper/processfactory.hxx>
+#include <com/sun/star/awt/XMetricField.hpp>
+#include <com/sun/star/awt/XNumericField.hpp>
+#include <com/sun/star/awt/XTextComponent.hpp>
+#include <com/sun/star/awt/XListBox.hpp>
+#include <com/sun/star/awt/XComboBox.hpp>
+#include <cppuhelper/implbase1.hxx>
+#include <com/sun/star/awt/XActionListener.hpp>
+#include <com/sun/star/awt/XItemListener.hpp>
+#include <com/sun/star/awt/XMouseListener.hpp>
+#include <vcl/combobox.hxx>
+#include <vcl/lstbox.hxx>
+
+#include <toolkit/awt/vclxwindows.hxx>
+
+using namespace ::com::sun::star;
+using rtl::OUString;
+
+#define LAYOUT_API_CALLS_HANDLER 0
+
+namespace layout
+{
+
+class EditImpl : public ControlImpl
+ , public ::cppu::WeakImplHelper1< awt::XTextListener >
+{
+public:
+ Link maModifyHdl;
+
+ uno::Reference< awt::XTextComponent > mxEdit;
+ EditImpl( Context *context, const PeerHandle &peer, Window *window )
+ : ControlImpl( context, peer, window )
+ , mxEdit( peer, uno::UNO_QUERY )
+ {
+ }
+
+ ~EditImpl ();
+
+ virtual void SAL_CALL disposing( lang::EventObject const& e )
+ throw (uno::RuntimeException);
+
+ virtual void SetModifyHdl( Link const& link );
+
+ void SAL_CALL textChanged( const awt::TextEvent& /* rEvent */ )
+ throw (uno::RuntimeException)
+ {
+ maModifyHdl.Call( mpWindow );
+ }
+};
+
+EditImpl::~EditImpl ()
+{
+}
+
+void SAL_CALL EditImpl::disposing( lang::EventObject const& e )
+ throw (uno::RuntimeException)
+{
+ ControlImpl::disposing (e);
+ mxEdit.clear ();
+}
+
+void EditImpl::SetModifyHdl( Link const& link )
+{
+ if (!link && !!maModifyHdl)
+ mxEdit->removeTextListener( this );
+ else if (!!link && !maModifyHdl)
+ mxEdit->addTextListener( this );
+ maModifyHdl = link;
+}
+
+Edit::~Edit ()
+{
+ SetModifyHdl (Link ());
+}
+
+void Edit::SetSelection( Selection const& rSelection )
+{
+#if LAYOUT_API_CALLS_HANDLER
+ if ( !getImpl().mxEdit.is() )
+ getImpl().mxEdit->setSelection( awt::Selection( rSelection.Min(), rSelection.Max() ) );
+#else /* !LAYOUT_API_CALLS_HANDLER */
+ GetEdit ()->SetSelection (rSelection);
+#endif /* !LAYOUT_API_CALLS_HANDLER */
+}
+
+void Edit::SetText( OUString const& rStr )
+{
+#if LAYOUT_API_CALLS_HANDLER
+ if ( getImpl().mxEdit.is() )
+ /// this calls handlers; endless loop in numfmt.cxx
+ getImpl().mxEdit->setText( rStr );
+#else /* !LAYOUT_API_CALLS_HANDLER */
+ GetEdit ()->SetText (rStr);
+#endif /* !LAYOUT_API_CALLS_HANDLER */
+}
+
+String Edit::GetText() const
+{
+ if ( !getImpl().mxEdit.is() )
+ return getImpl().mxEdit->getText();
+ return OUString();
+}
+
+void Edit::SetModifyHdl( const Link& link )
+{
+ if (&getImpl () && getImpl().mxEdit.is ())
+ getImpl().SetModifyHdl( link );
+}
+
+IMPL_CONSTRUCTORS( Edit, Control, "edit" );
+IMPL_GET_IMPL( Edit );
+IMPL_GET_WINDOW (Edit);
+
+class MultiLineEditImpl : public EditImpl
+{
+public:
+ MultiLineEditImpl( Context *context, const PeerHandle &peer, Window *window )
+ : EditImpl( context, peer, window )
+ {
+ }
+};
+
+IMPL_CONSTRUCTORS( MultiLineEdit, Edit, "multilineedit" );
+IMPL_GET_IMPL( MultiLineEdit );
+
+class SpinFieldImpl : public EditImpl
+{
+ public:
+ SpinFieldImpl( Context *context, const PeerHandle &peer, Window *window )
+ : EditImpl( context, peer, window )
+ {
+ }
+};
+
+IMPL_CONSTRUCTORS( SpinField, Edit, "spinfield" );
+
+class NumericFieldImpl : public SpinFieldImpl
+{
+ public:
+ NumericFieldImpl( Context *context, const PeerHandle &peer, Window *window )
+ : SpinFieldImpl( context, peer, window )
+ {
+ }
+};
+
+class MetricFieldImpl : public SpinFieldImpl
+{
+ public:
+ MetricFieldImpl( Context *context, const PeerHandle &peer, Window *window )
+ : SpinFieldImpl( context, peer, window )
+ {
+ }
+};
+
+IMPL_GET_IMPL( SpinField );
+IMPL_GET_IMPL( NumericField );
+IMPL_GET_IMPL( MetricField );
+
+class FormatterBaseImpl
+{
+ protected:
+ PeerHandle mpeer;
+ public:
+ explicit FormatterBaseImpl( const PeerHandle &peer )
+ : mpeer( peer )
+ {
+ };
+};
+
+FormatterBase::FormatterBase( FormatterBaseImpl *pFormatImpl )
+ : mpFormatImpl( pFormatImpl )
+{
+}
+
+class NumericFormatterImpl : public FormatterBaseImpl
+{
+ public:
+ uno::Reference< awt::XNumericField > mxField;
+ explicit NumericFormatterImpl( const PeerHandle &peer )
+ : FormatterBaseImpl( peer )
+ , mxField( peer, uno::UNO_QUERY )
+ {
+ }
+
+ // FIXME: burn that CPU ! cut/paste from vclxwindows.cxx
+ double valueToDouble( sal_Int64 nValue )
+ {
+ sal_Int16 nDigits = mxField->getDecimalDigits();
+ double n = (double)nValue;
+ for ( sal_uInt16 d = 0; d < nDigits; d++ )
+ n /= 10;
+ return n;
+ } // FIXME: burn that CPU ! cut/paste from vclxwindows.cxx
+ sal_Int64 doubleToValue( double nValue )
+ {
+ sal_Int16 nDigits = mxField->getDecimalDigits();
+ double n = nValue;
+ for ( sal_uInt16 d = 0; d < nDigits; d++ )
+ n *= 10;
+ return (sal_Int64) n;
+ }
+};
+
+class MetricFormatterImpl : public FormatterBaseImpl
+{
+ public:
+ uno::Reference< awt::XMetricField > mxField;
+ explicit MetricFormatterImpl( const PeerHandle &peer )
+ : FormatterBaseImpl( peer )
+ , mxField( peer, uno::UNO_QUERY )
+ {
+ }
+};
+
+NumericFormatter::NumericFormatter( FormatterBaseImpl *pImpl )
+ : FormatterBase( pImpl )
+{
+}
+
+NumericFormatterImpl& NumericFormatter::getFormatImpl() const
+{
+ return *( static_cast<NumericFormatterImpl *>( mpFormatImpl ) );
+}
+
+#define SET_IMPL(vclmethod, idlmethod) \
+ void NumericFormatter::vclmethod( sal_Int64 nValue ) \
+ { \
+ if ( !getFormatImpl().mxField.is() ) \
+ return; \
+ getFormatImpl().mxField->idlmethod( getFormatImpl().valueToDouble( nValue ) ); \
+ }
+
+SET_IMPL( SetMin, setMin )
+SET_IMPL( SetMax, setMax )
+SET_IMPL( SetLast, setLast )
+SET_IMPL( SetFirst, setFirst )
+SET_IMPL( SetValue, setValue )
+SET_IMPL( SetSpinSize, setSpinSize )
+
+sal_Int64 NumericFormatter::GetValue() const
+{
+ if ( !getFormatImpl().mxField.is() )
+ return 0;
+ return getFormatImpl().doubleToValue( getFormatImpl().mxField->getValue() );
+}
+
+#undef SET_IMPL
+
+IMPL_CONSTRUCTORS_2( NumericField, SpinField, NumericFormatter, "numericfield" );
+
+MetricFormatter::MetricFormatter( FormatterBaseImpl *pImpl )
+ : FormatterBase( pImpl )
+{
+}
+MetricFormatterImpl& MetricFormatter::getFormatImpl() const
+{ return *( static_cast<MetricFormatterImpl *>( mpFormatImpl ) ); }
+
+#define MetricUnitVclToUno(a) ((sal_uInt16)(a))
+
+#define SET_IMPL(vclmethod, idlmethod) \
+ void MetricFormatter::vclmethod( sal_Int64 nValue, FieldUnit nUnit ) \
+ { \
+ if ( !getFormatImpl().mxField.is() ) \
+ return; \
+ getFormatImpl().mxField->idlmethod( nValue, MetricUnitVclToUno( nUnit ) ); \
+ }
+
+SET_IMPL( SetMin, setMin )
+SET_IMPL( SetMax, setMax )
+SET_IMPL( SetLast, setLast )
+SET_IMPL( SetFirst, setFirst )
+SET_IMPL( SetValue, setValue )
+
+#undef SET_IMPL
+
+void MetricFormatter::SetSpinSize( sal_Int64 nValue )
+{
+ if ( !getFormatImpl().mxField.is() )
+ return;
+ getFormatImpl().mxField->setSpinSize( nValue );
+}
+
+sal_Int64 MetricFormatter::GetValue( FieldUnit nUnit ) const
+{
+ if ( !getFormatImpl().mxField.is() )
+ return 0;
+ return getFormatImpl().mxField->getValue( MetricUnitVclToUno( nUnit ) );
+}
+
+IMPL_CONSTRUCTORS_2( MetricField, SpinField, MetricFormatter, "metricfield" );
+
+class ComboBoxImpl : public EditImpl
+ , public ::cppu::WeakImplHelper1< awt::XActionListener >
+ , public ::cppu::WeakImplHelper1< awt::XItemListener >
+{
+public:
+ uno::Reference< awt::XComboBox > mxComboBox;
+
+ Link maClickHdl;
+ Link maSelectHdl;
+
+ Window *parent;
+
+ ComboBoxImpl( Context *context, const PeerHandle &peer, Window *window )
+ : EditImpl( context, peer, window )
+ , mxComboBox( peer, uno::UNO_QUERY )
+ {
+ }
+
+ ~ComboBoxImpl ();
+
+ sal_uInt16 InsertEntry( OUString const& rStr, sal_uInt16 nPos )
+ {
+ if ( nPos == COMBOBOX_APPEND )
+ nPos = GetEntryCount();
+ mxComboBox->addItem( rtl::OUString( rStr ), nPos );
+ return nPos;
+ }
+
+ void RemoveEntry( sal_uInt16 nPos )
+ {
+ mxComboBox->removeItems( nPos, 1 );
+ }
+
+ sal_uInt16 GetEntryPos( String const& rStr ) const
+ {
+ uno::Sequence< rtl::OUString> aItems( mxComboBox->getItems() );
+ rtl::OUString rKey( rStr );
+ sal_uInt16 n = sal::static_int_cast< sal_uInt16 >(aItems.getLength());
+ for (sal_uInt16 i = 0; i < n; i++)
+ {
+ if ( aItems[ i ] == rKey )
+ return i;
+ }
+ return COMBOBOX_ENTRY_NOTFOUND;
+ }
+
+ OUString GetEntry( sal_uInt16 nPos ) const
+ {
+ return OUString( mxComboBox->getItem( nPos ) );
+ }
+
+ sal_uInt16 GetEntryCount() const
+ {
+ return mxComboBox->getItemCount();
+ }
+
+ void SetClickHdl( Link const& link )
+ {
+ if (!link && !!maClickHdl)
+ mxComboBox->removeActionListener( this );
+ else if (!!link && !maClickHdl)
+ mxComboBox->addActionListener( this );
+ maClickHdl = link;
+ }
+
+ void SetSelectHdl( Link const& link )
+ {
+ if (!link && !!maSelectHdl)
+ mxComboBox->removeItemListener( this );
+ else if (!!link && !maSelectHdl)
+ mxComboBox->addItemListener( this );
+ maSelectHdl = link;
+ }
+
+ void SAL_CALL disposing( lang::EventObject const& e )
+ throw (uno::RuntimeException);
+
+ void SAL_CALL actionPerformed (const awt::ActionEvent&)
+ throw (uno::RuntimeException)
+ {
+ ComboBox* pComboBox = static_cast<ComboBox*>( mpWindow );
+ if ( !pComboBox )
+ return;
+ maClickHdl.Call( pComboBox );
+ }
+
+ void SAL_CALL itemStateChanged( awt::ItemEvent const&)
+ throw (uno::RuntimeException)
+ {
+ ComboBox* pComboBox = static_cast<ComboBox*>( mpWindow );
+ if ( !pComboBox )
+ return;
+ maSelectHdl.Call( pComboBox );
+ }
+};
+
+ComboBox::~ComboBox ()
+{
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("%s: deleting ComboBox for window: %p", __FUNCTION__, GetWindow ());
+#endif
+}
+
+ComboBoxImpl::~ComboBoxImpl ()
+{
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("%s: deleting ComboBoxImpl for window: %p", __FUNCTION__, mpWindow ? mpWindow->GetWindow () : 0);
+ OSL_TRACE ("%s: deleting ComboBoxImpl for listener: %p", __FUNCTION__, static_cast<XFocusListener*> (this));
+#endif
+}
+
+void ComboBoxImpl::disposing( lang::EventObject const& e )
+ throw (uno::RuntimeException)
+{
+ EditImpl::disposing (e);
+ mxComboBox.clear ();
+}
+
+sal_uInt16 ComboBox::InsertEntry( String const& rStr, sal_uInt16 nPos )
+{
+ return getImpl().InsertEntry( rStr, nPos );
+}
+
+void ComboBox::RemoveEntry( String const& rStr )
+{
+ getImpl().RemoveEntry( GetEntryPos( rStr ) );
+}
+
+void ComboBox::RemoveEntry( sal_uInt16 nPos )
+{
+ getImpl().RemoveEntry( nPos );
+}
+
+void ComboBox::Clear()
+{
+ uno::Sequence< rtl::OUString> aNoItems;
+ getImpl().setProperty( "StringItemList", uno::Any( aNoItems ) );
+}
+
+sal_uInt16 ComboBox::GetEntryPos( String const& rStr ) const
+{
+ return getImpl().GetEntryPos( rStr );
+}
+
+String ComboBox::GetEntry( sal_uInt16 nPos ) const
+{
+ rtl::OUString rItem = getImpl().mxComboBox->getItem( nPos );
+ return OUString( rItem );
+}
+
+sal_uInt16 ComboBox::GetEntryCount() const
+{
+ return getImpl().GetEntryCount();
+}
+
+void ComboBox::SetClickHdl( const Link& link )
+{
+ if (&getImpl () && getImpl().mxComboBox.is ())
+ getImpl().SetClickHdl( link );
+}
+
+void ComboBox::SetSelectHdl( const Link& link )
+{
+ if (&getImpl () && getImpl().mxComboBox.is ())
+ getImpl().SetSelectHdl( link );
+}
+
+void ComboBox::EnableAutocomplete (bool enable, bool matchCase)
+{
+ GetComboBox ()->EnableAutocomplete (enable, matchCase);
+}
+
+IMPL_CONSTRUCTORS_BODY( ComboBox, Edit, "combobox", getImpl().parent = parent; );
+IMPL_GET_WINDOW (ComboBox);
+/// IMPL_GET_IMPL( ComboBox );
+
+static ComboBoxImpl* null_combobox_impl = 0;
+
+ComboBoxImpl &ComboBox::getImpl () const
+{
+ if (ComboBoxImpl* c = static_cast<ComboBoxImpl *>(mpImpl))
+ return *c;
+ return *null_combobox_impl;
+}
+
+class ListBoxImpl : public ControlImpl
+ , public ::cppu::WeakImplHelper1< awt::XActionListener >
+ , public ::cppu::WeakImplHelper1< awt::XItemListener >
+ , public ::cppu::WeakImplHelper1< awt::XMouseListener >
+{
+ Link maClickHdl;
+ Link maSelectHdl;
+ Link maDoubleClickHdl;
+
+public:
+ uno::Reference< awt::XListBox > mxListBox;
+ ListBoxImpl( Context *context, const PeerHandle &peer, Window *window )
+ : ControlImpl( context, peer, window )
+ , mxListBox( peer, uno::UNO_QUERY )
+ {
+ SelectEntryPos (0, true);
+ }
+
+ sal_uInt16 InsertEntry (String const& rStr, sal_uInt16 nPos)
+ {
+ if ( nPos == LISTBOX_APPEND )
+ nPos = mxListBox->getItemCount();
+ mxListBox->addItem( rtl::OUString( rStr ), nPos );
+ return nPos;
+ }
+
+ void RemoveEntry( sal_uInt16 nPos )
+ {
+ mxListBox->removeItems( nPos, 1 );
+ }
+
+ sal_uInt16 RemoveEntry( String const& rStr, sal_uInt16 nPos)
+ {
+ if ( nPos == LISTBOX_APPEND )
+ nPos = mxListBox->getItemCount();
+ mxListBox->addItem( rtl::OUString( rStr ), nPos );
+ return nPos;
+ }
+
+ sal_uInt16 GetEntryPos( String const& rStr ) const
+ {
+ uno::Sequence< rtl::OUString> aItems( mxListBox->getItems() );
+ rtl::OUString rKey( rStr );
+ sal_uInt16 n = sal::static_int_cast< sal_uInt16 >(aItems.getLength());
+ for (sal_uInt16 i = 0; i < n; i++)
+ {
+ if ( aItems[ i ] == rKey )
+ return i;
+ }
+ return LISTBOX_ENTRY_NOTFOUND;
+ }
+
+ OUString GetEntry( sal_uInt16 nPos ) const
+ {
+ return mxListBox->getItem( nPos );
+ }
+
+ sal_uInt16 GetEntryCount() const
+ {
+ return mxListBox->getItemCount();
+ }
+
+ void SelectEntryPos( sal_uInt16 nPos, bool bSelect )
+ {
+ mxListBox->selectItemPos( nPos, bSelect );
+ }
+
+ sal_uInt16 GetSelectEntryCount() const
+ {
+ return sal::static_int_cast< sal_uInt16 >( mxListBox->getSelectedItems().getLength() );
+ }
+
+ sal_uInt16 GetSelectEntryPos( sal_uInt16 nSelIndex ) const
+ {
+ sal_uInt16 nSelected = 0;
+ if ( mxListBox->isMutipleMode() )
+ {
+ uno::Sequence< short > aItems( mxListBox->getSelectedItemsPos() );
+ if ( nSelIndex < aItems.getLength() )
+ nSelected = aItems[ nSelIndex ];
+ }
+ else
+ nSelected = mxListBox->getSelectedItemPos();
+ return nSelected;
+ }
+
+ virtual void SAL_CALL disposing( lang::EventObject const& e )
+ throw (uno::RuntimeException)
+ {
+ ControlImpl::disposing (e);
+ mxListBox.clear ();
+ }
+
+ Link& GetClickHdl ()
+ {
+ return maClickHdl;
+ }
+
+ void SetClickHdl( Link const& link )
+ {
+ if (!link && !!maClickHdl)
+ mxListBox->removeActionListener( this );
+ else if (!!link && !maClickHdl)
+ mxListBox->addActionListener( this );
+ maClickHdl = link;
+ }
+
+ void SAL_CALL actionPerformed( const awt::ActionEvent& /* rEvent */ )
+ throw (uno::RuntimeException)
+ {
+ maClickHdl.Call( mpWindow );
+ }
+
+ Link& GetSelectHdl ()
+ {
+ return maSelectHdl;
+ }
+
+ void SetSelectHdl( Link const& link )
+ {
+ if (!link && !!maSelectHdl)
+ mxListBox->removeItemListener( this );
+ else if (!!link && !maSelectHdl)
+ mxListBox->addItemListener( this );
+ maSelectHdl = link;
+ }
+
+ void SAL_CALL itemStateChanged (awt::ItemEvent const&)
+ throw (uno::RuntimeException)
+ {
+ maSelectHdl.Call (static_cast <ListBox*> (mpWindow));
+ }
+
+ Link& GetDoubleClickHdl ()
+ {
+ return maDoubleClickHdl;
+ }
+
+ void SetDoubleClickHdl (Link const& link)
+ {
+ if (!link && !!maDoubleClickHdl)
+ mxWindow->removeMouseListener (this);
+ else if (!!link && !maSelectHdl)
+ mxWindow->addMouseListener (this);
+ maDoubleClickHdl = link;
+ }
+
+ void SAL_CALL mousePressed (awt::MouseEvent const&) throw (uno::RuntimeException)
+ {
+ }
+ void SAL_CALL mouseReleased (awt::MouseEvent const& e) throw (uno::RuntimeException)
+ {
+ if (e.ClickCount == 2)
+ maDoubleClickHdl.Call (mpWindow);
+ }
+ void SAL_CALL mouseEntered (awt::MouseEvent const&) throw (uno::RuntimeException)
+ {
+ }
+ void SAL_CALL mouseExited (awt::MouseEvent const&) throw (uno::RuntimeException)
+ {
+ }
+};
+
+ListBox::~ListBox ()
+{
+}
+
+sal_uInt16 ListBox::InsertEntry (String const& rStr, sal_uInt16 nPos)
+{
+ return getImpl().InsertEntry(rStr, nPos);
+}
+
+void ListBox::RemoveEntry( sal_uInt16 nPos )
+{
+ return getImpl().RemoveEntry( nPos );
+}
+
+void ListBox::RemoveEntry( String const& rStr )
+{
+ return getImpl().RemoveEntry( GetEntryPos( rStr ) );
+}
+
+void ListBox::Clear()
+{
+ uno::Sequence< rtl::OUString> aNoItems;
+ getImpl().setProperty( "StringItemList", uno::Any( aNoItems ) );
+}
+
+sal_uInt16 ListBox::GetEntryPos( String const& rStr ) const
+{
+ return getImpl().GetEntryPos( rStr );
+}
+
+String ListBox::GetEntry( sal_uInt16 nPos ) const
+{
+ return getImpl().GetEntry( nPos );
+}
+
+sal_uInt16 ListBox::GetEntryCount() const
+{
+ return getImpl().GetEntryCount();
+}
+
+void ListBox::SelectEntryPos( sal_uInt16 nPos, bool bSelect )
+{
+#if LAYOUT_API_CALLS_HANDLER
+ getImpl().SelectEntryPos( nPos, bSelect );
+#else /* !LAYOUT_API_CALLS_HANDLER */
+ GetListBox ()->SelectEntryPos (nPos, bSelect);
+#endif /* !LAYOUT_API_CALLS_HANDLER */
+}
+
+void ListBox::SelectEntry( String const& rStr, bool bSelect )
+{
+ SelectEntryPos( GetEntryPos( rStr ), bSelect );
+}
+
+sal_uInt16 ListBox::GetSelectEntryCount() const
+{
+ return getImpl().GetSelectEntryCount();
+}
+
+sal_uInt16 ListBox::GetSelectEntryPos( sal_uInt16 nSelIndex ) const
+{
+ return getImpl().GetSelectEntryPos( nSelIndex );
+}
+
+String ListBox::GetSelectEntry( sal_uInt16 nSelIndex ) const
+{
+ return GetEntry( GetSelectEntryPos( nSelIndex ) );
+}
+
+Link& ListBox::GetSelectHdl ()
+{
+ return getImpl ().GetSelectHdl ();
+}
+
+void ListBox::SetSelectHdl( Link const& link )
+{
+ getImpl().SetSelectHdl( link );
+}
+
+Link& ListBox::GetClickHdl ()
+{
+ return getImpl ().GetSelectHdl ();
+}
+
+void ListBox::SetClickHdl( Link const& link )
+{
+ if (&getImpl () && getImpl().mxListBox.is ())
+ getImpl().SetClickHdl( link );
+}
+
+Link& ListBox::GetDoubleClickHdl ()
+{
+ return getImpl ().GetSelectHdl ();
+}
+
+void ListBox::SetDoubleClickHdl( Link const& link )
+{
+ getImpl().SetDoubleClickHdl( link );
+}
+
+void ListBox::SetEntryData( sal_uInt16 pos, void* data)
+{
+ GetListBox ()->SetEntryData (pos, data);
+}
+
+void* ListBox::GetEntryData( sal_uInt16 pos) const
+{
+ return GetListBox ()->GetEntryData (pos);
+}
+
+void ListBox::SetNoSelection ()
+{
+ GetListBox ()->SetNoSelection ();
+}
+
+IMPL_CONSTRUCTORS (ListBox, Control, "listbox");
+IMPL_GET_IMPL (ListBox);
+IMPL_GET_WINDOW (ListBox);
+
+IMPL_IMPL (MultiListBox, ListBox)
+IMPL_CONSTRUCTORS_BODY( MultiListBox, ListBox, "multilistbox", GetMultiListBox()->EnableMultiSelection( true ); );
+IMPL_GET_IMPL( MultiListBox );
+IMPL_GET_WINDOW( MultiListBox );
+} // namespace layout
diff --git a/toolkit/source/layout/vcl/wrapper.cxx b/toolkit/source/layout/vcl/wrapper.cxx
new file mode 100644
index 000000000000..0e2eec91773e
--- /dev/null
+++ b/toolkit/source/layout/vcl/wrapper.cxx
@@ -0,0 +1,1630 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile$
+ *
+ * $Revision$
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <tools/rc.h>
+//#define RESOURCE_PUBLISH_PROTECTED 1
+#if RESOURCE_PUBLISH_PROTECTED
+// ugh, override non-helpful proctection
+#define protected public
+#endif /* RESOURCE_PUBLISH_PROTECTED */
+#include <tools/rc.hxx>
+#undef protected
+
+
+#include "wrapper.hxx"
+
+#include <awt/vclxplugin.hxx>
+#include <awt/vclxtabcontrol.hxx>
+#include <com/sun/star/awt/PosSize.hpp>
+#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
+#include <com/sun/star/awt/WindowAttribute.hpp>
+#include <com/sun/star/awt/XDialog2.hpp>
+#include <com/sun/star/awt/XProgressBar.hpp>
+#include <com/sun/star/awt/XSimpleTabController.hpp>
+#include <com/sun/star/awt/XTabListener.hpp>
+#include <com/sun/star/graphic/XGraphic.hpp>
+#include <comphelper/processfactory.hxx>
+#include <layout/core/factory.hxx>
+#include <layout/core/localized-string.hxx>
+#include <layout/core/root.hxx>
+#include <toolkit/awt/vclxwindow.hxx>
+#include <vcl/ctrl.hxx>
+#include <vcl/dialog.hxx>
+#include <vcl/image.hxx>
+#include <vcl/tabctrl.hxx>
+#include <vcl/tabpage.hxx>
+#include <vcl/window.hxx>
+
+using namespace ::com::sun::star;
+using rtl::OUString;
+
+namespace layout
+{
+
+// Context bits ...
+class ContextImpl
+{
+ uno::Reference< awt::XLayoutRoot > mxRoot;
+ uno::Reference< container::XNameAccess > mxNameAccess;
+ PeerHandle mxTopLevel;
+
+public:
+ ContextImpl( char const *pPath )
+ {
+ uno::Sequence< uno::Any > aParams( 1 );
+ aParams[0] <<= OUString( pPath, strlen( pPath ), RTL_TEXTENCODING_UTF8 );
+
+ uno::Reference< lang::XSingleServiceFactory > xFactory(
+ comphelper::createProcessComponent(
+ OUString::createFromAscii( "com.sun.star.awt.Layout" ) ),
+ uno::UNO_QUERY );
+ if ( !xFactory.is() )
+ {
+ throw uno::RuntimeException(
+ OUString( RTL_CONSTASCII_USTRINGPARAM( "Layout engine not installed" ) ),
+ uno::Reference< uno::XInterface >() );
+ }
+ mxRoot = uno::Reference< awt::XLayoutRoot >(
+ xFactory->createInstanceWithArguments( aParams ),
+ uno::UNO_QUERY );
+
+ mxNameAccess = uno::Reference< container::XNameAccess >( mxRoot, uno::UNO_QUERY );
+ }
+
+ ~ContextImpl()
+ {
+ }
+
+ PeerHandle getByName( const OUString &rName )
+ {
+ uno::Any val = mxNameAccess->getByName( rName );
+ PeerHandle xRet;
+ val >>= xRet;
+ return xRet;
+ }
+ PeerHandle getTopLevel()
+ {
+ return mxTopLevel;
+ }
+ void setTopLevel( PeerHandle xToplevel )
+ {
+ mxTopLevel = xToplevel;
+ }
+ PeerHandle getRoot()
+ {
+ return mxRoot;
+ }
+};
+
+Context::Context( const char *pPath )
+ : pImpl( new ContextImpl( pPath ) )
+{
+}
+Context::~Context()
+{
+ delete pImpl;
+ pImpl = NULL;
+}
+
+void Context::setToplevel( PeerHandle xToplevel )
+{
+ pImpl->setTopLevel( xToplevel );
+}
+
+PeerHandle Context::getToplevel()
+{
+ return pImpl->getTopLevel();
+}
+PeerHandle Context::getRoot()
+{
+ return pImpl->getRoot();
+}
+
+PeerHandle Context::GetPeerHandle( const char *id, sal_uInt32 nId ) const
+{
+ PeerHandle xHandle;
+ xHandle = pImpl->getByName( OUString( id, strlen( id ), RTL_TEXTENCODING_UTF8 ) );
+ if ( !xHandle.is() )
+ {
+ DBG_ERROR1( "Failed to fetch widget '%s'", id );
+ }
+
+ if ( nId != 0 )
+ {
+ rtl::OString aStr = rtl::OString::valueOf( (sal_Int32) nId );
+ xHandle = GetPeerHandle( aStr, 0 );
+ }
+ return xHandle;
+}
+
+WindowImpl::WindowImpl (Context *context, const PeerHandle &peer, Window *window)
+ : mpWindow (window)
+ , mpCtx (context)
+ , mxWindow (peer, uno::UNO_QUERY)
+ , mxVclPeer (peer, uno::UNO_QUERY)
+ , mvclWindow (0)
+ , bFirstTimeVisible (true)
+{
+}
+
+WindowImpl::~WindowImpl ()
+{
+ if (mpWindow)
+ mpWindow->mpImpl = 0;
+ if (mvclWindow)
+ {
+ VCLXWindow *v = mvclWindow->GetWindowPeer ();
+ v->SetWindow (0);
+ mvclWindow->SetComponentInterface (uno::Reference <awt::XWindowPeer> ());
+ mvclWindow->SetWindowPeer (uno::Reference <awt::XWindowPeer> (), 0);
+ delete mvclWindow;
+ mvclWindow = 0;
+ }
+}
+
+void WindowImpl::wrapperGone ()
+{
+ mvclWindow = 0;
+ mpWindow->mpImpl = 0;
+ mpWindow = 0;
+ mpCtx = 0;
+ if ( mxWindow.is() )
+ {
+ uno::Reference< lang::XComponent > xComp( mxWindow, uno::UNO_QUERY );
+ mxWindow.clear ();
+ if ( xComp.is() )
+ xComp->dispose();
+ }
+}
+
+void SAL_CALL WindowImpl::disposing (lang::EventObject const&)
+ throw (uno::RuntimeException)
+{
+ if (mxWindow.is ())
+ mxWindow.clear ();
+}
+
+uno::Any WindowImpl::getProperty (char const* name)
+{
+ if ( !this || !mxVclPeer.is() )
+ return css::uno::Any();
+ return mxVclPeer->getProperty
+ ( rtl::OUString( name, strlen( name ), RTL_TEXTENCODING_ASCII_US ) );
+}
+
+void WindowImpl::setProperty (char const *name, uno::Any any)
+{
+ if ( !this || !mxVclPeer.is() )
+ return;
+ mxVclPeer->setProperty
+ ( rtl::OUString( name, strlen( name ), RTL_TEXTENCODING_ASCII_US ), any );
+}
+
+void WindowImpl::redraw (bool resize)
+{
+ uno::Reference <awt::XWindow> ref (mxWindow, uno::UNO_QUERY);
+ ::Window* window = VCLXWindow::GetImplementation (ref)->GetWindow ();
+ ::Window* parent = window->GetParent();
+ ::Rectangle r = Rectangle (parent->GetPosPixel (),
+ parent->GetSizePixel ());
+ parent->Invalidate (r, INVALIDATE_CHILDREN | INVALIDATE_NOCHILDREN );
+ if (resize)
+ parent->SetPosSizePixel (0, 0, 1, 1, awt::PosSize::SIZE);
+ else
+ parent->SetPosSizePixel (0, 0, r.nRight - r.nLeft, r.nBottom - r.nTop,
+ awt::PosSize::SIZE);
+}
+
+Window::Window( WindowImpl *pImpl )
+ : mpImpl( pImpl )
+{
+ mpImpl->mvclWindow = GetVCLXWindow () ? GetWindow () : 0;
+}
+
+Window::~Window()
+{
+ /* likely to be an UNO object - with floating references */
+ if (mpImpl)
+ mpImpl->wrapperGone ();
+ mpImpl = 0;
+}
+
+///IMPL_GET_IMPL( Control );
+
+static ControlImpl* null_control_impl = 0;
+
+ControlImpl &Control::getImpl () const
+{
+ if (ControlImpl* c = static_cast<ControlImpl *>(mpImpl))
+ return *c;
+ return *null_control_impl;
+}
+
+Control::~Control ()
+{
+ SetGetFocusHdl (Link ());
+ SetLoseFocusHdl (Link ());
+}
+
+void Window::setRes (ResId const& res)
+{
+#if RESOURCE_PUBLISH_PROTECTED
+ // Resources are shut-off from use. Is that really necessary?
+ Resource &r = *GetWindow ();
+ r.GetRes (res);
+#else /* !RESOURCE_PUBLISH_PROTECTED */
+ //We *must* derive. Is this also really necessary?
+ //Resource r (res);
+
+ // ugh, I wonder which solution is cleaner...
+ class Resource_open_up : public Resource
+ {
+ public:
+ Resource_open_up (ResId const& r)
+ : Resource (r)
+ {
+ }
+ static sal_Int32 GetLongRes (void *p)
+ {
+ return Resource::GetLongRes (p);
+ }
+ void* GetClassRes ()
+ {
+ return Resource::GetClassRes ();
+ }
+ sal_Int32 ReadLongRes ()
+ {
+ return Resource::ReadLongRes ();
+ }
+ UniString ReadStringRes ()
+ {
+ return Resource::ReadStringRes ();
+ }
+ };
+
+ Resource_open_up r (res);
+#endif /* !RESOURCE_PUBLISH_PROTECTED */
+ if (sal_uInt32 help_id = (sal_uInt32)r.GetLongRes (static_cast<char *> (r.GetClassRes ()) + 12))
+ SetHelpId (help_id);
+ sal_uInt32 mask = r.ReadLongRes ();
+ if ( mask & WINDOW_TEXT )
+ SetText( r.ReadStringRes ());
+}
+
+void Window::SetParent( ::Window *parent )
+{
+ uno::Reference <awt::XWindow> ref( GetPeer(), uno::UNO_QUERY );
+ if (VCLXWindow *vcl = VCLXWindow::GetImplementation( ref ))
+ if (::Window *window = vcl->GetWindow())
+ window->SetParent( parent );
+}
+
+void Window::SetParent( Window *parent )
+{
+ /* Let's hear it for C++: poor man's dynamic binding. */
+ parent->ParentSet (this);
+}
+
+void Window::ParentSet (Window *window)
+{
+ window->SetParent (GetWindow ());
+}
+
+Context *Window::getContext()
+{
+ return this && mpImpl ? mpImpl->mpCtx : NULL;
+}
+
+PeerHandle Window::GetPeer() const
+{
+ if ( !mpImpl )
+ return PeerHandle();
+ return mpImpl->mxWindow;
+}
+
+uno::Reference<awt::XWindow> Window::GetRef() const
+{
+ return uno::Reference <awt::XWindow> ( GetPeer(), uno::UNO_QUERY );
+}
+
+VCLXWindow* Window::GetVCLXWindow() const
+{
+ return VCLXWindow::GetImplementation( GetRef() );
+}
+
+::Window* Window::GetWindow() const
+{
+ return GetVCLXWindow()->GetWindow();
+}
+
+::Window* Window::GetParent() const
+{
+ return GetWindow()->GetParent();
+}
+
+void Window::SetHelpId( sal_uIntPtr id )
+{
+ GetWindow()->SetHelpId( id );
+}
+
+sal_uIntPtr Window::GetHelpId() const
+{
+ return GetWindow()->GetHelpId();
+}
+
+void Window::SetSmartHelpId( SmartId const& id, SmartIdUpdateMode mode )
+{
+ GetWindow()->SetSmartHelpId( id, mode );
+}
+
+SmartId Window::GetSmartHelpId() const
+{
+ return GetWindow()->GetSmartHelpId();
+}
+
+void Window::EnterWait ()
+{
+ GetWindow()->EnterWait ();
+}
+void Window::LeaveWait ()
+{
+ GetWindow()->LeaveWait ();
+}
+bool Window::IsWait () const
+{
+ return GetWindow()->IsWait ();
+}
+
+bool Window::IsVisible () const
+{
+ if (GetWindow ())
+ return GetWindow()->IsVisible ();
+ return false;
+}
+
+bool Window::HasChildPathFocus (bool systemWindow) const
+{
+ return GetWindow()->HasChildPathFocus (systemWindow);
+}
+
+void Window::SetPosPixel (Point const&)
+{
+}
+
+Point Window::GetPosPixel () const
+{
+ return Point ();
+}
+
+void Window::SetSizePixel (Size const&)
+{
+}
+
+void Window::SetPosSizePixel (Point const&, Size const&)
+{
+}
+
+Size Window::GetSizePixel () const
+{
+ return Size ();
+}
+
+// void Window::Enable (bool enable, bool child);
+// {
+// GetWindow ()->Enable (enable, child);
+// }
+
+// void Window::Disable (bool child)
+// {
+// GetWindow ()->Disable (child);
+// }
+
+bool Window::IsEnabled () const
+{
+ return GetWindow ()->IsEnabled ();
+// if (getImpl().mxWindow.is ())
+// return getImpl ().mxWindow->isEnabled ();
+// return false;
+}
+
+void Window::EnableInput (bool enable, bool child)
+{
+ GetWindow ()->EnableInput (enable, child);
+}
+
+bool Window::IsInputEnabled () const
+{
+ return GetWindow ()->IsInputEnabled ();
+}
+
+bool Window::HasFocus () const
+{
+ return GetWindow ()->HasFocus ();
+}
+
+Font& Window::GetFont () const
+{
+ return const_cast <Font&> (GetWindow ()->GetFont ());
+}
+
+void Window::SetFont (Font const& font)
+{
+ GetWindow ()->SetFont (font);
+}
+
+void Window::Invalidate (sal_uInt8 flags)
+{
+ GetWindow ()->Invalidate (flags);
+}
+
+struct ToolkitVclPropsMap
+{
+ WinBits vclStyle;
+ long initAttr;
+ const char *propName;
+
+ // the value to give the prop to enable/disable it -- not the most brilliant
+ // type declaration and storage, but does the work... properties are
+ // either a boolean or a short since they are either a directly wrappers for
+ // a WinBit, or aggregates related (like Align for WB_LEFT, _RIGHT and _CENTER).
+ bool isBoolean;
+ short enableProp, disableProp;
+};
+
+#define TYPE_BOOL true
+#define TYPE_SHORT false
+#define NOTYPE 0
+static const ToolkitVclPropsMap toolkitVclPropsMap[] =
+{
+ { WB_BORDER, awt::WindowAttribute::BORDER, "Border", TYPE_SHORT, 1, 0 },
+ { WB_NOBORDER, awt::VclWindowPeerAttribute::NOBORDER, "Border", TYPE_SHORT, 0, 1 },
+ { WB_SIZEABLE, awt::WindowAttribute::SIZEABLE, NULL, NOTYPE, 0, 0 },
+ { WB_MOVEABLE, awt::WindowAttribute::MOVEABLE, NULL, NOTYPE, 0, 0 },
+ { WB_CLOSEABLE, awt::WindowAttribute::CLOSEABLE, NULL, NOTYPE, 0, 0 },
+
+ { WB_HSCROLL, awt::VclWindowPeerAttribute::HSCROLL, NULL, NOTYPE, 0, 0 },
+ { WB_VSCROLL, awt::VclWindowPeerAttribute::VSCROLL, NULL, NOTYPE, 0, 0 },
+ { WB_LEFT, awt::VclWindowPeerAttribute::LEFT, "Align", TYPE_SHORT, 0, 0 },
+ { WB_CENTER, awt::VclWindowPeerAttribute::CENTER, "Align", TYPE_SHORT, 1, 0 },
+ { WB_RIGHT, awt::VclWindowPeerAttribute::RIGHT, "Align", TYPE_SHORT, 2, 0 },
+ { WB_SPIN, awt::VclWindowPeerAttribute::SPIN, NULL, NOTYPE, 0, 0 },
+ { WB_SORT, awt::VclWindowPeerAttribute::SORT, NULL, NOTYPE, 0, 0 },
+ { WB_DROPDOWN, awt::VclWindowPeerAttribute::DROPDOWN, "Dropdown", TYPE_BOOL, 1, 0 },
+ { WB_DEFBUTTON, awt::VclWindowPeerAttribute::DEFBUTTON, "DefaultButton", TYPE_BOOL, 1, 0 },
+ { WB_READONLY, awt::VclWindowPeerAttribute::READONLY, NULL, NOTYPE, 0, 0 },
+ { WB_CLIPCHILDREN, awt::VclWindowPeerAttribute::CLIPCHILDREN, NULL, NOTYPE, 0, 0 },
+ { WB_GROUP, awt::VclWindowPeerAttribute::GROUP, NULL, NOTYPE, 0, 0 },
+
+ { WB_OK, awt::VclWindowPeerAttribute::OK, NULL, NOTYPE, 0, 0 },
+ { WB_OK_CANCEL, awt::VclWindowPeerAttribute::OK_CANCEL, NULL, NOTYPE, 0, 0 },
+ { WB_YES_NO, awt::VclWindowPeerAttribute::YES_NO, NULL, NOTYPE, 0, 0 },
+ { WB_YES_NO_CANCEL, awt::VclWindowPeerAttribute::YES_NO_CANCEL, NULL, NOTYPE, 1, 0 },
+ { WB_RETRY_CANCEL, awt::VclWindowPeerAttribute::RETRY_CANCEL, NULL, NOTYPE, 1, 0 },
+ { WB_DEF_OK, awt::VclWindowPeerAttribute::DEF_OK, NULL, NOTYPE, 0, 0 },
+ { WB_DEF_CANCEL, awt::VclWindowPeerAttribute::DEF_CANCEL, NULL, NOTYPE, 1, 0 },
+ { WB_DEF_RETRY, awt::VclWindowPeerAttribute::DEF_RETRY, NULL, NOTYPE, 0, 0 },
+ { WB_DEF_YES, awt::VclWindowPeerAttribute::DEF_YES, NULL, NOTYPE, 0, 0 },
+ { WB_DEF_NO, awt::VclWindowPeerAttribute::DEF_NO, NULL, NOTYPE, 0, 0 },
+
+ { WB_AUTOHSCROLL, awt::VclWindowPeerAttribute::AUTOHSCROLL, "AutoHScroll", TYPE_BOOL, 1, 0 },
+ { WB_AUTOVSCROLL, awt::VclWindowPeerAttribute::AUTOVSCROLL, "AutoVScroll", TYPE_BOOL, 1, 0 },
+
+ { WB_WORDBREAK, 0, "MultiLine", TYPE_BOOL, 1, 0 },
+ { WB_NOPOINTERFOCUS, 0, "FocusOnClick", TYPE_BOOL, 1, 0 },
+ { WB_TOGGLE, 0, "Toggle", TYPE_BOOL, 1, 0 },
+ { WB_REPEAT, 0, "Repeat", TYPE_BOOL, 1, 0 },
+ { WB_NOHIDESELECTION, 0, "HideInactiveSelection", TYPE_BOOL, 1, 0 },
+};
+#undef TYPE_BOOL
+#undef TYPE_SHORT
+#undef NOTYPE
+
+static const int toolkitVclPropsMapLen =
+ sizeof( toolkitVclPropsMap ) / sizeof( ToolkitVclPropsMap );
+
+void Window::SetStyle( WinBits nStyle )
+{
+ uno::Reference< awt::XVclWindowPeer > xPeer = mpImpl->mxVclPeer;
+ for (int i = 0; i < toolkitVclPropsMapLen; i++)
+ {
+ if ( toolkitVclPropsMap[ i ].propName )
+ {
+ short nValue;
+ if ( nStyle & toolkitVclPropsMap[ i ].vclStyle )
+ nValue = toolkitVclPropsMap[ i ].enableProp;
+ else
+ nValue = toolkitVclPropsMap[ i ].disableProp;
+ uno::Any aValue;
+ if ( toolkitVclPropsMap[ i ].isBoolean )
+ aValue = uno::makeAny( (bool) nValue );
+ else
+ aValue = uno::makeAny( (short) nValue );
+ mpImpl->setProperty( toolkitVclPropsMap[ i ].propName, aValue );
+ }
+ }
+}
+
+WinBits Window::GetStyle()
+{
+ uno::Reference< awt::XVclWindowPeer > xPeer = mpImpl->mxVclPeer;
+ WinBits ret = 0;
+ for (int i = 0; i < toolkitVclPropsMapLen; i++)
+ {
+ if ( toolkitVclPropsMap[ i ].propName )
+ {
+ short nValue = 0;
+ if ( toolkitVclPropsMap[ i ].isBoolean )
+ {
+ bool bValue = false;
+ mpImpl->getProperty( toolkitVclPropsMap[ i ].propName ) >>= bValue;
+ nValue = bValue ? 1 : 0;
+ }
+ else
+ mpImpl->getProperty( toolkitVclPropsMap[ i ].propName ) >>= nValue;
+ if ( nValue == toolkitVclPropsMap[ i ].enableProp )
+ ret |= toolkitVclPropsMap[i].vclStyle;
+ }
+ }
+ return ret;
+}
+
+/* Unpleasant way to get an xToolkit pointer ... */
+uno::Reference< awt::XToolkit > getToolkit()
+{
+ static uno::Reference< awt::XToolkit > xToolkit;
+ if (!xToolkit.is())
+ {
+ // Urgh ...
+ xToolkit = uno::Reference< awt::XToolkit >(
+ ::comphelper::getProcessServiceFactory()->createInstance(
+ OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.Toolkit" ) ) ),
+ uno::UNO_QUERY );
+ if ( !xToolkit.is() )
+ throw uno::RuntimeException(
+ OUString( RTL_CONSTASCII_USTRINGPARAM( "failed to create toolkit!") ),
+ uno::Reference< uno::XInterface >() );
+ }
+ return xToolkit;
+}
+
+PeerHandle Window::CreatePeer( Window *parent, WinBits nStyle, const char *pName)
+{
+ long nWinAttrbs = 0;
+ for (int i = 0; i < toolkitVclPropsMapLen; i++)
+ if ( nStyle & toolkitVclPropsMap[ i ].vclStyle )
+ nWinAttrbs |= toolkitVclPropsMap[ i ].initAttr;
+
+ return layoutimpl::WidgetFactory::createWidget (getToolkit(), parent->GetPeer(), OUString::createFromAscii( pName ), nWinAttrbs);
+}
+
+void Window::Enable( bool bEnable )
+{
+ if ( !getImpl().mxWindow.is() )
+ return;
+ getImpl().mxWindow->setEnable( bEnable );
+}
+
+void Window::Show( bool bVisible )
+{
+ if ( !getImpl().mxWindow.is() )
+ return;
+ getImpl().mxWindow->setVisible( bVisible );
+ if (!bVisible)
+ getImpl ().bFirstTimeVisible = true;
+ else if (GetParent() && getImpl().bFirstTimeVisible)
+ {
+ getImpl().redraw ();
+ getImpl().bFirstTimeVisible = false;
+ }
+}
+
+void Window::GrabFocus()
+{
+ if ( !getImpl().mxWindow.is() )
+ return;
+ getImpl().mxWindow->setFocus();
+}
+
+void Window::SetUpdateMode(bool mode)
+{
+ GetWindow()->SetUpdateMode( mode );
+}
+
+void Window::SetPointer( Pointer const& pointer )
+{
+ GetWindow()->SetPointer( pointer );
+}
+
+Pointer const& Window::GetPointer() const
+{
+ return GetWindow()->GetPointer();
+}
+
+void Window::SetText( OUString const& str )
+{
+ GetWindow()->SetText( str );
+}
+
+String Window::GetText() const
+{
+ return GetWindow()->GetText();
+}
+
+sal_Int32 Window::GetCtrlTextWidth (OUString const&) const
+{
+ return 0;
+}
+
+sal_Int32 Window::GetTextHeight () const
+{
+ return 0;
+}
+
+Size Window::LogicToPixel( Size const& size, MapMode const&) const
+{
+ return size;
+}
+
+ControlImpl::ControlImpl (Context *context, const PeerHandle &peer, Window *window)
+ : WindowImpl( context, peer, window )
+{
+}
+
+ControlImpl::~ControlImpl ()
+{
+ if ((!!mGetFocusHdl || !!mLoseFocusHdl) && mxWindow.is ())
+ /* Disposing will be done @ VCLXWindow::dispose () maFocusListeners.disposeAndClear()
+ don't do it twice */
+ mxWindow.clear ();
+}
+
+void ControlImpl::SetGetFocusHdl (Link const& link)
+{
+ if (!mLoseFocusHdl || !link)
+ UpdateListening (link);
+ mGetFocusHdl = link;
+}
+
+Link& ControlImpl::GetGetFocusHdl ()
+{
+ return mGetFocusHdl;
+}
+
+void ControlImpl::SetLoseFocusHdl (Link const& link)
+{
+ if (!mGetFocusHdl || !link)
+ UpdateListening (link);
+ mLoseFocusHdl = link;
+}
+
+Link& ControlImpl::GetLoseFocusHdl ()
+{
+ return mGetFocusHdl;
+}
+
+void ControlImpl::UpdateListening (Link const& link)
+{
+ if (!link && (!!mGetFocusHdl || !!mLoseFocusHdl)
+ && (!mGetFocusHdl || !mLoseFocusHdl))
+ mxWindow->removeFocusListener (this);
+ else if (!!link && !mGetFocusHdl && !mLoseFocusHdl)
+ mxWindow->addFocusListener (this);
+}
+
+void SAL_CALL ControlImpl::disposing (lang::EventObject const&)
+ throw (uno::RuntimeException)
+{
+/// mxWindow.clear ();
+}
+
+void SAL_CALL ControlImpl::focusGained (awt::FocusEvent const&)
+ throw (uno::RuntimeException)
+{
+ mGetFocusHdl.Call (mpWindow);
+}
+
+void SAL_CALL ControlImpl::focusLost (awt::FocusEvent const&)
+ throw (uno::RuntimeException)
+{
+ mLoseFocusHdl.Call (mpWindow);
+}
+
+Link& Control::GetGetFocusHdl ()
+{
+ return getImpl ().GetGetFocusHdl ();
+}
+
+void Control::SetGetFocusHdl (Link const& link)
+{
+ if (&getImpl () && getImpl().mxWindow.is ())
+ getImpl ().SetGetFocusHdl (link);
+}
+
+Link& Control::GetLoseFocusHdl ()
+{
+ return getImpl ().GetLoseFocusHdl ();
+}
+
+void Control::SetLoseFocusHdl (Link const& link)
+{
+ if (&getImpl () && getImpl().mxWindow.is ())
+ getImpl ().SetLoseFocusHdl (link);
+}
+
+class DialogImpl : public WindowImpl
+{
+public:
+ uno::Reference< awt::XDialog2 > mxDialog;
+ DialogImpl( Context *context, PeerHandle const &peer, Window *window );
+};
+
+DialogImpl::DialogImpl( Context *context, const PeerHandle &peer, Window *window )
+ : WindowImpl( context, peer, window )
+ , mxDialog( peer, uno::UNO_QUERY )
+{
+}
+
+Dialog::Dialog( Window *parent, const char *xml_file, const char *id, sal_uInt32 nId )
+ : Context( xml_file )
+ , Window( new DialogImpl( this, Context::GetPeerHandle( id, nId ), this ) )
+ , bConstruct (true)
+{
+ if ( parent )
+ SetParent( parent );
+}
+
+Dialog::Dialog( ::Window *parent, const char *xml_file, const char *id, sal_uInt32 nId )
+ : Context( xml_file )
+ , Window( new DialogImpl( this, Context::GetPeerHandle( id, nId ), this ) )
+{
+ if ( parent )
+ SetParent( parent );
+}
+
+Dialog::~Dialog ()
+{
+}
+
+IMPL_GET_WINDOW (Dialog);
+IMPL_GET_IMPL (Dialog);
+
+#define MX_DIALOG if (getImpl ().mxDialog.is ()) getImpl ().mxDialog
+#define RETURN_MX_DIALOG if (getImpl ().mxDialog.is ()) return getImpl ().mxDialog
+
+short Dialog::Execute()
+{
+ RETURN_MX_DIALOG->execute ();
+ return -1;
+}
+
+void Dialog::EndDialog( long result )
+{
+ MX_DIALOG->endDialog (result);
+}
+
+void Dialog::SetText( OUString const& str )
+{
+ SetTitle (str);
+}
+
+void Dialog::SetTitle( OUString const& str )
+{
+ MX_DIALOG->setTitle (str);
+}
+
+bool Dialog::Close ()
+{
+ EndDialog (false);
+ return true;
+}
+
+long Dialog::Notify (NotifyEvent& event)
+{
+ return GetDialog ()->Notify (event);
+}
+
+void Dialog::Initialize (SfxChildWinInfo*)
+{
+}
+
+#define MESSAGE_BOX_MEMBER_INIT\
+ Dialog (parent, xml_file, id)\
+ , imageError (this, "FI_ERROR")\
+ , imageInfo (this, "FI_INFO")\
+ , imageQuery (this, "FI_QUERY")\
+ , imageWarning (this, "FI_WARNING")\
+ , messageText (this, "FT_MESSAGE")\
+ , cancelButton (this, "BTN_CANCEL")\
+ , helpButton (this, "BTN_HELP")\
+ , ignoreButton (this, "BTN_IGNORE")\
+ , noButton (this, "BTN_NO")\
+ , retryButton (this, "BTN_RETRY")\
+ , yesButton (this, "BTN_YES")
+
+MessageBox::MessageBox (::Window *parent, char const* message,
+ char const* yes, char const* no, sal_uIntPtr help_id,
+ char const* xml_file, char const* id)
+ : MESSAGE_BOX_MEMBER_INIT
+{
+ ignoreButton.Hide ();
+ retryButton.Hide ();
+ init (message, yes, no, help_id);
+}
+
+MessageBox::MessageBox (::Window *parent, OUString const& message,
+ OUString yes, OUString no, sal_uIntPtr help_id,
+ char const* xml_file, char const* id)
+ : MESSAGE_BOX_MEMBER_INIT
+{
+ ignoreButton.Hide ();
+ retryButton.Hide ();
+ init (message, yes, no, help_id);
+}
+
+#if !defined (__GNUC__)
+#define __PRETTY_FUNCTION__ __FUNCTION__
+#endif /* !__GNUC__ */
+
+MessageBox::MessageBox (::Window *parent, WinBits bits, char const* message,
+ char const* yes, char const* no, sal_uIntPtr help_id,
+ char const* xml_file, char const* id)
+ : MESSAGE_BOX_MEMBER_INIT
+{
+ // HIG suggests using verbs instead of yes/no/retry etc.
+ // This constructor provides client-code compatibility: Client code should be fixed.
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("%s: warning, deprecated vcl/Messbox compatibility", __PRETTY_FUNCTION__);
+#endif
+ bits_init (bits, OUString::createFromAscii (message), OUString::createFromAscii (yes), OUString::createFromAscii (no), help_id);
+}
+
+MessageBox::MessageBox (::Window *parent, WinBits bits, OUString const& message,
+ OUString yes, OUString no, sal_uIntPtr help_id,
+ char const* xml_file, char const* id)
+ : MESSAGE_BOX_MEMBER_INIT
+{
+ // HIG suggests using verbs instead of yes/no/retry etc.
+ // This constructor provides client-code compatibility: Client code should be fixed.
+#ifndef __SUNPRO_CC
+ OSL_TRACE ("%s: warning, deprecated vcl/Messbox compatibility", __PRETTY_FUNCTION__);
+#endif
+ bits_init (bits, message, yes, no, help_id);
+}
+
+void MessageBox::bits_init (WinBits bits, OUString const& message,
+ OUString yes, OUString no, sal_uIntPtr help_id)
+{
+ if ( bits & ( WB_OK_CANCEL | WB_OK ))
+ yes = Button::GetStandardText ( BUTTON_OK );
+ if ( bits & (WB_YES_NO | WB_YES_NO_CANCEL ))
+ {
+ yes = Button::GetStandardText ( BUTTON_YES );
+ no = Button::GetStandardText ( BUTTON_NO );
+ }
+ if (! (bits & (WB_RETRY_CANCEL | WB_YES_NO_CANCEL | WB_ABORT_RETRY_IGNORE )))
+ cancelButton.Hide ();
+ if (! (bits & (WB_RETRY_CANCEL | WB_ABORT_RETRY_IGNORE)))
+ retryButton.Hide ();
+ if ( bits & WB_ABORT_RETRY_IGNORE )
+ cancelButton.SetText ( Button::GetStandardText (BUTTON_ABORT));
+ else
+ ignoreButton.Hide ();
+ if ( !(bits & ( WB_OK | WB_OK_CANCEL | WB_YES_NO | WB_YES_NO_CANCEL)))
+ yesButton.Hide ();
+ if ( !(bits & ( WB_YES_NO | WB_YES_NO_CANCEL)))
+ noButton.Hide ();
+
+ init (message, yes, no, help_id);
+}
+
+void MessageBox::init (char const* message, char const* yes, char const* no, sal_uIntPtr help_id)
+{
+ init ( OUString::createFromAscii (message), OUString::createFromAscii (yes), OUString::createFromAscii (no), help_id);
+}
+
+void MessageBox::init (OUString const& message, OUString const& yes, OUString const& no, sal_uIntPtr help_id)
+{
+ imageError.Hide ();
+ imageInfo.Hide ();
+ imageQuery.Hide ();
+ imageWarning.Hide ();
+ if (message.getLength ())
+ messageText.SetText (message);
+ if (yes.getLength ())
+ {
+ yesButton.SetText (yes);
+ if (yes != OUString (Button::GetStandardText (BUTTON_OK))
+ && yes != OUString (Button::GetStandardText (BUTTON_YES)))
+ SetTitle (yes);
+ if (no.getLength ())
+ noButton.SetText (no);
+ else
+ noButton.Hide ();
+ }
+ if (help_id)
+ SetHelpId (help_id);
+ else
+ helpButton.Hide ();
+}
+
+#undef MESSAGE_BOX_IMPL
+#define MESSAGE_BOX_IMPL(Name)\
+ Name##Box::Name##Box (::Window *parent, char const* message,\
+ char const* yes, char const* no, sal_uIntPtr help_id,\
+ char const* xml_file, char const* id)\
+ : MessageBox (parent, message, yes, no, help_id, xml_file, id)\
+ {\
+ image##Name.Show ();\
+ }\
+ Name##Box::Name##Box (::Window *parent, OUString const& message,\
+ OUString yes, OUString no, sal_uIntPtr help_id,\
+ char const* xml_file, char const* id)\
+ : MessageBox (parent, message, yes, no, help_id, xml_file, id)\
+ {\
+ image##Name.Show ();\
+ }\
+ Name##Box::Name##Box (::Window *parent, WinBits bits, char const* message,\
+ char const* yes, char const* no, sal_uIntPtr help_id,\
+ char const* xml_file, char const* id)\
+ : MessageBox (parent, bits, message, yes, no, help_id, xml_file, id)\
+ {\
+ image##Name.Show ();\
+ }\
+ Name##Box::Name##Box (::Window *parent, WinBits bits, OUString const& message,\
+ OUString yes, OUString no, sal_uIntPtr help_id,\
+ char const* xml_file, char const* id)\
+ : MessageBox (parent, bits, message, yes, no, help_id, xml_file, id)\
+ {\
+ image##Name.Show ();\
+ }
+
+MESSAGE_BOX_IMPL (Error);
+MESSAGE_BOX_IMPL (Info);
+MESSAGE_BOX_IMPL (Query);
+MESSAGE_BOX_IMPL (Warning);
+
+class TabControlImpl
+ : public ControlImpl
+ , public ::cppu::WeakImplHelper1 <awt::XTabListener>
+{
+ Link mActivatePageHdl;
+ Link mDeactivatePageHdl;
+
+public:
+ uno::Reference <awt::XSimpleTabController> mxTabControl;
+ TabControlImpl (Context *context, const PeerHandle &peer, Window *window)
+ : ControlImpl (context, peer, window)
+ , mxTabControl (peer, uno::UNO_QUERY)
+ {
+ }
+
+ virtual void SAL_CALL disposing (lang::EventObject const& e)
+ throw (uno::RuntimeException)
+ {
+ ControlImpl::disposing (e);
+ mxTabControl.clear ();
+ }
+
+ Link& GetActivatePageHdl ()
+ {
+ return mActivatePageHdl;
+ }
+
+ void SetActivatePageHdl (Link const& link)
+ {
+ if (!mDeactivatePageHdl || !link)
+ UpdateListening (link);
+ mActivatePageHdl = link;
+ }
+
+ Link& GetDeactivatePageHdl ()
+ {
+ return mDeactivatePageHdl;
+ }
+
+ void SetDeactivatePageHdl (Link const& link)
+ {
+ if (!mActivatePageHdl || !link)
+ UpdateListening (link);
+ mDeactivatePageHdl = link;
+ }
+
+ void UpdateListening (Link const& link)
+ {
+ if (!link && (!!mActivatePageHdl || !!mDeactivatePageHdl))
+ mxTabControl->removeTabListener (this);
+ else if (!!link && !mActivatePageHdl && !mDeactivatePageHdl)
+ mxTabControl->addTabListener (this);
+ }
+
+ void SAL_CALL activated (sal_Int32)
+ throw (uno::RuntimeException)
+ {
+ mActivatePageHdl.Call (mpWindow);
+ }
+
+ void SAL_CALL deactivated (sal_Int32)
+ throw (uno::RuntimeException)
+ {
+ mDeactivatePageHdl.Call (mpWindow);
+ }
+
+ void SAL_CALL inserted (sal_Int32)
+ throw (uno::RuntimeException)
+ {
+ }
+
+ void SAL_CALL removed (sal_Int32)
+ throw (uno::RuntimeException)
+ {
+ }
+
+ void SAL_CALL changed (sal_Int32, uno::Sequence <beans::NamedValue> const&)
+ throw (uno::RuntimeException)
+ {
+ }
+};
+
+IMPL_GET_WINDOW (TabControl);
+IMPL_GET_LAYOUT_VCLXWINDOW (TabControl);
+
+#define MX_TABCONTROL if (getImpl ().mxTabControl.is ()) getImpl ().mxTabControl
+#define RETURN_MX_TABCONTROL if (getImpl ().mxTabControl.is ()) return getImpl ().mxTabControl
+
+TabControl::~TabControl ()
+{
+ SetActivatePageHdl (Link ());
+ SetDeactivatePageHdl (Link ());
+}
+
+void TabControl::InsertPage (sal_uInt16 id, OUString const& title, sal_uInt16 pos)
+{
+ (void) pos;
+// GetTabControl ()->InsertPage (id, title, pos);
+// GetTabControl ()->SetTabPage (id, new ::TabPage (GetTabControl ()));
+
+ MX_TABCONTROL->insertTab ();
+ SetCurPageId (id);
+
+#if 1 // colour me loc productive -- NOT
+#define ADD_PROP( seq, i, name, val )\
+ { \
+ beans::NamedValue value; \
+ value.Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( name ) ); \
+ value.Value = uno::makeAny( val ); \
+ seq[i] = value; \
+ }
+
+ uno::Sequence< beans::NamedValue > seq (1);
+ ADD_PROP ( seq, 0, "Title", OUString (title) );
+ MX_TABCONTROL->setTabProps (id, seq);
+#else
+ GetTabPage (id)->SetText (title);
+#endif
+
+#if 0
+ /// This so seems the right solution, but it makes the buttons of the
+ /// tabdialog move up
+
+ ::TabPage *page = GetTabPage (id);
+ if (Window *w = dynamic_cast <Window*> (page))
+ {
+ w->SetParent (this);
+ //GetVCLXTabControl ()->Box_Base::addChild (uno::Reference <awt::XLayoutConstrains> (w->GetPeer (), uno::UNO_QUERY));
+ //GetVCLXTabControl ()->Box_Base::AddChild (uno::Reference <awt::XLayoutConstrains> (w->GetPeer (), uno::UNO_QUERY));
+ //GetVCLXTabControl ()->AddChild (w);
+ //GetVCLXTabControl ()->AddChild (uno::Reference <awt::XLayoutConstrains> (w->GetPeer (), uno::UNO_QUERY));
+ //uno::Reference <uno::XInterface> x (page->GetWindowPeer());
+ //GetVCLXTabControl ()->AddChild (uno::Reference <awt::XLayoutConstrains> (page->::Window::GetWindowPeer (), uno::UNO_QUERY));
+ //GetVCLXTabControl ()->AddChild (uno::Reference <awt::XLayoutConstrains> (page->GetComponentInterface (), uno::UNO_QUERY));
+ }
+ getImpl ().redraw ();
+#endif
+}
+void TabControl::RemovePage (sal_uInt16 id)
+{
+ GetTabControl ()->RemovePage (id);
+}
+sal_uInt16 TabControl::GetPageCount () const
+{
+ return GetTabControl ()->GetPageCount ();
+}
+sal_uInt16 TabControl::GetPageId (sal_uInt16 pos) const
+{
+ return GetTabControl ()->GetPageId (pos);
+}
+sal_uInt16 TabControl::GetPagePos (sal_uInt16 id) const
+{
+ getImpl ().redraw ();
+ return GetTabControl ()->GetPagePos (id);
+}
+void TabControl::SetCurPageId (sal_uInt16 id)
+{
+ getImpl ().redraw ();
+ GetTabControl ()->SetCurPageId (id);
+}
+sal_uInt16 TabControl::GetCurPageId () const
+{
+ return GetTabControl ()->GetCurPageId ();
+}
+void TabControl::SetTabPage (sal_uInt16 id, ::TabPage* page)
+{
+ GetTabControl ()->SetTabPage (id, page);
+
+#if 0
+ /// This so seems the right solution, but it makes the buttons of the
+ /// tabdialog move up
+ if (Window *w = dynamic_cast <Window*> (page))
+ {
+ w->SetParent (this);
+ //GetVCLXTabControl ()->Box_Base::addChild (uno::Reference <awt::XLayoutConstrains> (w->GetPeer (), uno::UNO_QUERY));
+ //GetVCLXTabControl ()->Box_Base::AddChild (uno::Reference <awt::XLayoutConstrains> (w->GetPeer (), uno::UNO_QUERY));
+ //GetVCLXTabControl ()->AddChild (w);
+ //GetVCLXTabControl ()->AddChild (uno::Reference <awt::XLayoutConstrains> (w->GetPeer (), uno::UNO_QUERY));
+ //GetVCLXTabControl ()->AddChild (uno::Reference <awt::XLayoutConstrains> (page->GetWindowPeer (), uno::UNO_QUERY));
+ //GetVCLXTabControl ()->AddChild (uno::Reference <awt::XLayoutConstrains> (page->GetComponentInterface (), uno::UNO_QUERY));
+ }
+#endif
+ getImpl ().redraw ();
+}
+::TabPage* TabControl::GetTabPage (sal_uInt16 id) const
+{
+ return GetTabControl ()->GetTabPage (id);
+}
+void TabControl::SetActivatePageHdl (Link const& link)
+{
+ if (&getImpl () && getImpl().mxTabControl.is ())
+ getImpl ().SetActivatePageHdl (link);
+}
+Link& TabControl::GetActivatePageHdl () const
+{
+ return getImpl ().GetActivatePageHdl ();
+}
+void TabControl::SetDeactivatePageHdl (Link const& link)
+{
+ if (&getImpl () && getImpl().mxTabControl.is ())
+ getImpl ().SetDeactivatePageHdl (link);
+}
+Link& TabControl::GetDeactivatePageHdl () const
+{
+ return getImpl ().GetDeactivatePageHdl ();
+}
+void TabControl::SetTabPageSizePixel (Size const& size)
+{
+ GetTabControl ()->SetTabPageSizePixel (size);
+// GetParent()->SetSizePixel (size);
+// GetWindow()->SetSizePixel (size);
+ //GetVCLXTabControl->SetTabSize (size);
+}
+Size TabControl::GetTabPageSizePixel () const
+{
+#if 0
+ //return GetTabControl ()->GetTabPageSizePixel ();
+ static size_t const tab_page_first_index = 1;
+ for (size_t i = 0; i < GetPageCount (); i++)
+ {
+ ::TabPage *p = GetTabPage (i + tab_page_first_index);
+ //if (dynamic_cast<Windowt*> (p))
+ if (i) // URG
+ return p->GetOptimalSize (WINDOWSIZE_MINIMUM);
+ }
+#endif
+ return GetTabControl ()->GetTabPageSizePixel ();
+}
+
+IMPL_CONSTRUCTORS (TabControl, Control, "tabcontrol");
+IMPL_GET_IMPL (TabControl);
+
+class TabPageImpl : public WindowImpl
+{
+public:
+ uno::Reference< awt::XWindow > mxTabPage;
+ TabPageImpl( Context *context, const PeerHandle &peer, Window *window )
+ : WindowImpl( context, peer, window )
+ , mxTabPage( peer, uno::UNO_QUERY )
+ {
+ }
+};
+
+::Window* TabPage::global_parent = 0;
+TabControl* TabPage::global_tabcontrol = 0;
+
+IMPL_GET_IMPL( TabPage );
+
+TabPage::TabPage( Window *parent, const char *xml_file, const char *id, sal_uInt32 nId)
+ : Context( xml_file )
+ , Window( new TabPageImpl( this, Context::GetPeerHandle( id, nId ), this ) )
+{
+ if ( parent )
+ SetParent( parent );
+}
+
+TabPage::TabPage( ::Window *parent, const char *xml_file, const char *id, sal_uInt32 nId)
+ : Context( xml_file )
+ , Window( new TabPageImpl( this, Context::GetPeerHandle( id, nId ), this ) )
+{
+ if ( parent )
+ SetParent( parent );
+}
+
+TabPage::~TabPage()
+{
+ delete GetTabPage();
+}
+
+IMPL_GET_WINDOW( TabPage );
+
+void TabPage::ActivatePage()
+{
+}
+
+void TabPage::DeactivatePage()
+{
+}
+
+class FixedLineImpl : public ControlImpl
+{
+public:
+ FixedLineImpl( Context *context, const PeerHandle &peer, Window *window )
+ : ControlImpl( context, peer, window )
+ {
+ }
+};
+
+IMPL_CONSTRUCTORS( FixedLine, Control, "hfixedline" );
+IMPL_GET_IMPL( FixedLine );
+
+bool FixedLine::IsEnabled() const
+{
+ //FIXME
+ return true;
+}
+
+class FixedTextImpl : public ControlImpl
+{
+public:
+ uno::Reference< awt::XFixedText > mxFixedText;
+ FixedTextImpl( Context *context, const PeerHandle &peer, Window *window )
+ : ControlImpl( context, peer, window )
+ , mxFixedText( peer, uno::UNO_QUERY )
+ {
+ }
+
+ ~FixedTextImpl ();
+
+ virtual void SAL_CALL disposing( lang::EventObject const& e )
+ throw (uno::RuntimeException);
+};
+
+FixedTextImpl::~FixedTextImpl ()
+{
+}
+
+void SAL_CALL FixedTextImpl::disposing( lang::EventObject const& e )
+ throw (uno::RuntimeException)
+{
+ ControlImpl::disposing (e);
+ mxFixedText.clear ();
+}
+
+FixedText::~FixedText ()
+{
+}
+
+IMPL_CONSTRUCTORS( FixedText, Control, "fixedtext" );
+IMPL_GET_IMPL( FixedText );
+
+void FixedText::SetText( OUString const& rStr )
+{
+ if ( !getImpl().mxFixedText.is() )
+ return;
+ getImpl().mxFixedText->setText( rStr );
+}
+
+class FixedInfoImpl : public FixedTextImpl
+{
+public:
+ FixedInfoImpl( Context *context, const PeerHandle &peer, Window *window )
+ : FixedTextImpl( context, peer, window )
+ {
+ }
+};
+
+IMPL_CONSTRUCTORS( FixedInfo, FixedText, "fixedinfo" );
+IMPL_GET_IMPL( FixedInfo );
+
+class ProgressBarImpl : public ControlImpl
+{
+public:
+ uno::Reference< awt::XProgressBar > mxProgressBar;
+ ProgressBarImpl( Context *context, const PeerHandle &peer, Window *window )
+ : ControlImpl( context, peer, window )
+ , mxProgressBar( peer, uno::UNO_QUERY )
+ {
+ }
+
+ virtual void SAL_CALL disposing( lang::EventObject const& e )
+ throw (uno::RuntimeException)
+ {
+ ControlImpl::disposing (e);
+ mxProgressBar.clear ();
+ }
+};
+
+
+class FixedImageImpl: public ControlImpl
+{
+public:
+ uno::Reference< graphic::XGraphic > mxGraphic;
+ FixedImageImpl( Context *context, const PeerHandle &peer, Window *window)
+// const char *pName )
+ : ControlImpl( context, peer, window )
+ //, mxGraphic( layoutimpl::loadGraphic( pName ) )
+ , mxGraphic( peer, uno::UNO_QUERY )
+ {
+ if ( !mxGraphic.is() )
+ {
+ DBG_ERROR( "ERROR: failed to load image: `%s'" /*, pName*/ );
+ }
+#if 0
+ else
+ getImpl().mxGraphic->...();
+#endif
+ }
+};
+
+IMPL_CONSTRUCTORS( FixedImage, Control, "fixedimage" );
+IMPL_GET_IMPL( FixedImage )
+
+void FixedImage::setImage( ::Image const& i )
+{
+ (void) i;
+ if ( !getImpl().mxGraphic.is() )
+ return;
+ //FIXME: hack moved to proplist
+ //getImpl().mxGraphic =
+}
+
+#if 0
+
+FixedImage::FixedImage( const char *pName )
+ : pImpl( new FixedImageImpl( pName ) )
+{
+}
+
+FixedImage::~FixedImage()
+{
+ delete pImpl;
+}
+
+#endif
+
+
+IMPL_CONSTRUCTORS( ProgressBar, Control, "ProgressBar" );
+IMPL_GET_IMPL( ProgressBar );
+
+void ProgressBar::SetForegroundColor( util::Color color )
+{
+ if ( !getImpl().mxProgressBar.is() )
+ return;
+ getImpl().mxProgressBar->setForegroundColor( color );
+}
+
+void ProgressBar::SetBackgroundColor( util::Color color )
+{
+ if ( !getImpl().mxProgressBar.is() )
+ return;
+ getImpl().mxProgressBar->setBackgroundColor( color );
+}
+
+void ProgressBar::SetValue( sal_Int32 i )
+{
+ if ( !getImpl().mxProgressBar.is() )
+ return;
+ getImpl().mxProgressBar->setValue( i );
+}
+
+void ProgressBar::SetRange( sal_Int32 min, sal_Int32 max )
+{
+ if ( !getImpl().mxProgressBar.is() )
+ return;
+ getImpl().mxProgressBar->setRange( min, max );
+}
+
+sal_Int32 ProgressBar::GetValue()
+{
+ if ( !getImpl().mxProgressBar.is() )
+ return 0;
+ return getImpl().mxProgressBar->getValue();
+}
+
+class PluginImpl: public ControlImpl
+{
+public:
+ ::Control *mpPlugin;
+
+ PluginImpl( Context *context, const PeerHandle &peer, Window *window, :: Control *plugin )
+ : ControlImpl( context, peer, window )
+ , mpPlugin( plugin )
+ {
+ uno::Reference <awt::XWindow> ref( mxWindow, uno::UNO_QUERY );
+ layoutimpl::VCLXPlugin *vcl
+ = static_cast<layoutimpl::VCLXPlugin*>( VCLXWindow::GetImplementation( ref ) );
+ ::Window *parent = vcl->mpWindow->GetParent();
+ vcl->SetWindow( plugin );
+ vcl->SetPlugin( mpPlugin );
+ plugin->SetParent( parent );
+ plugin->SetStyle( vcl->mStyle );
+ plugin->SetCreatedWithToolkit( true );
+ plugin->SetComponentInterface( vcl );
+ plugin->Show();
+ }
+};
+
+Plugin::Plugin( Context *context, char const *id, ::Control *plugin )
+ : Control( new PluginImpl( context, context->GetPeerHandle( id, 0 ), this, plugin ) )
+ , mpPlugin( plugin )
+{
+}
+
+IMPL_GET_IMPL( Plugin );
+
+class LocalizedStringImpl : public WindowImpl
+{
+public:
+ layoutimpl::LocalizedString *mpString;
+ OUString maString;
+ LocalizedStringImpl( Context *context, const PeerHandle &peer, Window *window )
+ : WindowImpl( context, peer, window )
+ , mpString( static_cast<layoutimpl::LocalizedString*>( VCLXWindow::GetImplementation( uno::Reference <awt::XWindow> ( mxWindow, uno::UNO_QUERY ) ) ) )
+ , maString ()
+ {
+ }
+ OUString getText()
+ {
+ if (mpString)
+ maString = mpString->getText ();
+ return maString;
+ }
+ void setText( OUString const& s )
+ {
+ if (mpString)
+ mpString->setText( s );
+ }
+};
+
+IMPL_GET_IMPL( LocalizedString );
+
+LocalizedString::LocalizedString( Context *context, char const* id )
+ : Window( new LocalizedStringImpl( context, context->GetPeerHandle( id, 0 ), this ) )
+{
+}
+
+String LocalizedString::getString ()
+{
+ return getImpl ().getText ();
+}
+
+OUString LocalizedString::getOUString ()
+{
+ return getImpl ().getText ();
+}
+
+LocalizedString::operator OUString ()
+{
+ return getOUString ();
+}
+
+LocalizedString::operator OUString const& ()
+{
+ getOUString ();
+ return getImpl ().maString;
+}
+
+LocalizedString::operator String()
+{
+ getOUString ();
+ return getImpl ().maString;
+}
+
+String LocalizedString::GetToken (USHORT i, sal_Char c)
+{
+ return getString ().GetToken (i, c);
+}
+
+OUString LocalizedString::operator= (OUString const& s)
+{
+ getImpl().setText( s );
+ return getImpl().getText();
+}
+
+OUString LocalizedString::operator+= (OUString const& b)
+{
+ OUString a = getImpl ().getText ();
+ a += b;
+ getImpl ().setText (a);
+ return getImpl ().getText ();
+}
+
+OUString LocalizedString::operator+= (sal_Unicode const b)
+{
+ String a = getImpl ().getText ();
+ a += b;
+ getImpl ().setText (a);
+ return getImpl ().getText ();
+}
+
+class InPlugImpl : public WindowImpl
+{
+public:
+ InPlugImpl (Context *context, const PeerHandle &peer, Window *window)
+ : WindowImpl (context, peer, window)
+ {
+ }
+};
+
+IMPL_GET_IMPL (InPlug);
+
+static char const *FIXME_set_parent (::Window *parent, char const *xml_file)
+{
+ layout::TabPage::global_parent = parent;
+ return xml_file;
+}
+
+InPlug::InPlug (Window *parent, char const* xml_file, char const* id, sal_uInt32 nId)
+ : Context (FIXME_set_parent (parent ? parent->GetWindow () : 0, xml_file))
+ , layout::Window (new InPlugImpl (this, Context::GetPeerHandle (id, nId), this))
+{
+ if (parent)
+ SetParent (parent);
+ if (::Window *w = dynamic_cast< ::Window* > (this))
+ w->SetComponentInterface (GetVCLXWindow ());
+}
+
+InPlug::InPlug (::Window *parent, char const* xml_file, char const* id, sal_uInt32 nId)
+ : Context (FIXME_set_parent (parent, xml_file))
+ , layout::Window (new InPlugImpl (this, Context::GetPeerHandle (id, nId), this))
+{
+ if (parent)
+ layout::Window::SetParent (parent);
+ if (::Window *w = dynamic_cast< ::Window* > (this))
+ w->SetComponentInterface (GetVCLXWindow ());
+}
+
+void InPlug::ParentSet (Window *window)
+{
+ window->SetParent (dynamic_cast< ::Window* > (this));
+
+ /// FIXME: for standalone run of layout::SfxTabDialog
+ SetParent (window->GetParent ());
+}
+
+} // namespace layout
diff --git a/toolkit/source/layout/vcl/wrapper.hxx b/toolkit/source/layout/vcl/wrapper.hxx
new file mode 100644
index 000000000000..a9d5a6490c31
--- /dev/null
+++ b/toolkit/source/layout/vcl/wrapper.hxx
@@ -0,0 +1,153 @@
+/*************************************************************************
+ *
+ * DO NOT 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 LAYOUT_VCL_WRAPPER_HXX
+#define LAYOUT_VCL_WRAPPER_HXX
+
+#include <layout/layout.hxx>
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/awt/XDialog2.hpp>
+#include <com/sun/star/awt/XFocusListener.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/awt/XVclWindowPeer.hpp>
+#include <cppuhelper/implbase1.hxx>
+
+#include <cstring>
+
+namespace layout
+{
+
+namespace css = com::sun::star;
+
+class WindowImpl
+{
+public:
+ Window *mpWindow;
+ Context *mpCtx;
+ css::uno::Reference< css::awt::XWindow > mxWindow;
+ css::uno::Reference< css::awt::XVclWindowPeer > mxVclPeer;
+ ::Window *mvclWindow;
+ bool bFirstTimeVisible;
+
+ WindowImpl (Context *context, PeerHandle const &peer, Window *window);
+ virtual ~WindowImpl ();
+
+ void wrapperGone();
+ css::uno::Any getProperty (char const *name);
+ void setProperty (char const *name, css::uno::Any any);
+ void redraw (bool resize=false);
+
+ // XFocusListener
+ virtual void SAL_CALL disposing (css::lang::EventObject const&) throw (css::uno::RuntimeException);
+};
+
+class ControlImpl : public WindowImpl
+ , public ::cppu::WeakImplHelper1 <css::awt::XFocusListener>
+{
+public:
+ Link mGetFocusHdl;
+ Link mLoseFocusHdl;
+
+ ControlImpl( Context *context, PeerHandle const& peer, Window *window );
+ ~ControlImpl ();
+
+ virtual void SetGetFocusHdl (Link const& link);
+ Link& GetGetFocusHdl ();
+ virtual void SetLoseFocusHdl (Link const& link);
+ Link& GetLoseFocusHdl ();
+ virtual void UpdateListening (Link const& link);
+
+ // XFocusListener
+ virtual void SAL_CALL disposing (css::lang::EventObject const&) throw (css::uno::RuntimeException);
+ void SAL_CALL focusGained (css::awt::FocusEvent const& e) throw (css::uno::RuntimeException);
+ void SAL_CALL focusLost (css::awt::FocusEvent const& e) throw (css::uno::RuntimeException);
+};
+
+inline WindowImpl &Window::getImpl() const{ return *(static_cast< WindowImpl * >( mpImpl )); }
+
+// Helpers for defining boiler-plate constructors ...
+// Could in-line in top-level but not with safe static_casts.
+#define IMPL_GET_IMPL(t) \
+ inline t##Impl &t::getImpl() const \
+ { \
+ return *(static_cast<t##Impl *>(mpImpl)); \
+ }
+#define IMPL_CONSTRUCTORS_BODY(t,par,unoName,body) \
+ t::t( Context *context, const char *pId, sal_uInt32 nId ) \
+ : par( new t##Impl( context, context->GetPeerHandle( pId, nId ), this ) ) \
+ { \
+ Window *parent = dynamic_cast<Window*> (context);\
+ body;\
+ if (parent)\
+ SetParent (parent);\
+ } \
+ t::t( Window *parent, WinBits bits) \
+ : par( new t##Impl( parent->getContext(), Window::CreatePeer( parent, bits, unoName ), this ) ) \
+ { \
+ body;\
+ if ( parent )\
+ SetParent (parent);\
+ } \
+ t::t( Window *parent, ResId const& res) \
+ : par( new t##Impl( parent->getContext(), Window::CreatePeer( parent, 0, unoName ), this ) ) \
+ { \
+ body;\
+ setRes (res);\
+ if (parent)\
+ SetParent (parent);\
+ }
+#define IMPL_CONSTRUCTORS(t,par,unoName) IMPL_CONSTRUCTORS_BODY(t, par, unoName, )
+#define IMPL_CONSTRUCTORS_2(t,win_par,other_par,unoName) \
+ t::t( Context *context, const char *pId, sal_uInt32 nId ) \
+ : win_par( new t##Impl( context, context->GetPeerHandle( pId, nId ), this ) ) \
+ , other_par( new other_par##Impl( Window::GetPeer() ) ) \
+ { \
+ } \
+ t::t( Window *parent, WinBits bits) \
+ : win_par( new t##Impl( parent->getContext(), Window::CreatePeer( parent, bits, unoName ), this ) ) \
+ , other_par( new other_par##Impl( Window::GetPeer() ) ) \
+ { \
+ }
+
+#define IMPL_IMPL(t, parent) \
+ class t##Impl : public parent##Impl \
+ { \
+ public: \
+ t##Impl( Context *context, PeerHandle const& peer, Window *window ) \
+ : parent##Impl( context, peer, window ) \
+ { \
+ } \
+ };
+
+
+} // namespace layout
+
+#endif /* LAYOUT_VCL_WRAPPER_HXX */
diff --git a/toolkit/source/vclcompat/wbutton.cxx b/toolkit/source/vclcompat/wbutton.cxx
deleted file mode 100644
index 9268e5ee4770..000000000000
--- a/toolkit/source/vclcompat/wbutton.cxx
+++ /dev/null
@@ -1,582 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: wbutton.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 "wrapper.hxx"
-
-#include <com/sun/star/awt/PosSize.hpp>
-#include <com/sun/star/awt/XActionListener.hpp>
-#include <com/sun/star/awt/XButton.hpp>
-#include <com/sun/star/awt/XCheckBox.hpp>
-#include <com/sun/star/awt/XRadioButton.hpp>
-#include <com/sun/star/graphic/XGraphic.hpp>
-#include <cppuhelper/implbase1.hxx>
-#include <toolkit/awt/vclxwindow.hxx>
-#include <toolkit/helper/convert.hxx>
-#include <vcl/button.hxx>
-#include <vcl/event.hxx>
-#include <vcl/msgbox.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/window.hxx>
-
-#include <list>
-
-#include "layout/layoutcore.hxx"
-
-using namespace ::com::sun::star;
-
-namespace layout
-{
-
-class ImageImpl
-{
- public:
- css::uno::Reference< css::graphic::XGraphic > mxGraphic;
- ImageImpl( const char *pName )
- : mxGraphic( layoutimpl::loadGraphic( pName ) )
- {
- if ( !mxGraphic.is() )
- {
- DBG_ERROR1( "ERROR: failed to load image: `%s'\n", pName );
- }
- }
-};
-
-Image::Image( const char *pName )
- : pImpl( new ImageImpl( pName ) )
-{
-}
-
-Image::~Image()
-{
- delete pImpl;
-}
-
-class ButtonImpl : public ControlImpl
- , public ::cppu::WeakImplHelper1< awt::XActionListener >
- , public ::cppu::WeakImplHelper1< awt::XItemListener >
-{
- Link maClickHdl;
-protected:
- // we add toggle hooks here to cut on code
- Link maToggleHdl;
-public:
- uno::Reference< awt::XButton > mxButton;
- ButtonImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : ControlImpl( pCtx, xPeer, pWindow )
- , mxButton( xPeer, uno::UNO_QUERY )
- {
- mxButton->addActionListener( this );
- }
-
- ~ButtonImpl()
- {
- }
-
- virtual void Click() { /* make me pure virtual? */ };
-
- void SetClickHdl( const Link& rLink )
- {
- maClickHdl = rLink;
- if ( !rLink )
- mxButton->removeActionListener( this );
- else
- mxButton->addActionListener( this );
- }
-
- virtual void SAL_CALL disposing( const css::lang::EventObject& /* Source */ )
- throw (css::uno::RuntimeException)
- { mxButton.clear(); }
-
- virtual void SAL_CALL actionPerformed( const css::awt::ActionEvent& /* rEvent */ )
- throw (css::uno::RuntimeException)
- {
- if ( !maClickHdl )
- Click();
- else
- maClickHdl.Call( static_cast<Window *>( mpWindow ) );
- }
-
- virtual // HACK: doesn't need to be virtual... remove in future...
- void SAL_CALL itemStateChanged( const css::awt::ItemEvent& /* rEvent */ )
- throw (css::uno::RuntimeException)
- {
- maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
- }
-
- BOOL SetModeImage( css::uno::Reference< css::graphic::XGraphic > xGraph )
- {
- setProperty( "Graphic", uno::Any( xGraph ) );
- return true;
- }
-};
-
-void Button::SetText( const String& rStr )
-{
- if ( !getImpl().mxButton.is() )
- return;
- getImpl().mxButton->setLabel( rStr );
-}
-
-void Button::SetClickHdl( const Link& rLink )
-{
- getImpl().SetClickHdl( rLink );
-}
-
-BOOL Button::SetModeImage( const Image& rImage )
-{
- return getImpl().SetModeImage( rImage.getImpl().mxGraphic );
-}
-
-void Button::SetImageAlign( ImageAlign eAlign )
-{
- getImpl().setProperty( "ImageAlign", uno::Any( (sal_Int16) eAlign ) );
-}
-
-void Button::Click()
-{
-}
-
-DECL_GET_IMPL_IMPL( Button );
-DECL_CONSTRUCTOR_IMPLS( Button, Control, "button" );
-
-class PushButtonImpl : public ButtonImpl
-{
- public:
- PushButtonImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : ButtonImpl( pCtx, xPeer, pWindow ) {}
-
- void SetToggleHdl( const Link& rLink )
- {
- // XButton doesn't have an explicit event for Toggle. Anyway, it is a
- // superset of the clicks: all clicks, and explicit toggles
- maToggleHdl = rLink;
- if ( !rLink )
- mxButton->removeActionListener( this );
- else
- mxButton->addActionListener( this );
- }
-
- virtual void SAL_CALL actionPerformed( const css::awt::ActionEvent& rEvent )
- throw (css::uno::RuntimeException)
- {
- ButtonImpl::actionPerformed( rEvent );
- fireToggle();
- }
-
- inline void fireToggle()
- {
- maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
- }
-};
-
-void PushButton::Check( BOOL bCheck )
-{
- getImpl().setProperty( "State", uno::Any( (sal_Int16) !!bCheck ) );
- // XButton doesn't have explicit toggle event
- getImpl().fireToggle();
-}
-
-BOOL PushButton::IsChecked() const
-{
- return !!( getImpl().getProperty( "State" ).get< sal_Int16 >() );
-}
-
-void PushButton::Toggle()
-{
- Check( true );
-}
-
-void PushButton::SetToggleHdl( const Link& rLink )
-{
- getImpl().SetToggleHdl( rLink );
-}
-
-DECL_GET_IMPL_IMPL( PushButton );
-DECL_CONSTRUCTOR_IMPLS( PushButton, Button, "pushbutton" );
-
- // HACK: put every radio button into a group :/
-static std::list< RadioButtonImpl*> mpRadioGroup;
-
-class RadioButtonImpl : public ButtonImpl
-{
-public:
- uno::Reference< awt::XRadioButton > mxRadioButton;
- RadioButtonImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : ButtonImpl( pCtx, xPeer, pWindow )
- , mxRadioButton( xPeer, uno::UNO_QUERY )
- {
- // TEMP:
- mpRadioGroup.push_back( this );
- mxRadioButton->addItemListener( this );
- }
-
- ~RadioButtonImpl()
- {
- //mxRadioButton->removeItemListener( this );
- mpRadioGroup.pop_front();
- }
-
- void Check( BOOL bCheck )
- {
- if ( !mxRadioButton.is() )
- return;
- mxRadioButton->setState( !!bCheck );
- fireToggle();
-
- if ( bCheck )
- unsetOthersGroup( this );
- }
-
- BOOL IsChecked()
- {
- if ( !mxRadioButton.is() )
- return FALSE;
- return mxRadioButton->getState();
- }
-
- static void unsetOthersGroup( RadioButtonImpl* current )
- {
- // set all others to false
- for ( std::list< RadioButtonImpl*>::iterator i = mpRadioGroup.begin();
- i != mpRadioGroup.end(); i++ )
- {
- if ( *i != current )
- ( *i )->Check( false );
- }
- }
-
- void SetToggleHdl( const Link& rLink )
- {
- maToggleHdl = rLink;
-#if 0
- if ( !rLink )
- mxRadioButton->removeItemListener( this );
- else
- mxRadioButton->addItemListener( this );
-#endif
- }
-
- inline void fireToggle()
- {
- maToggleHdl.Call( static_cast<Window *>( mpWindow ) );
- }
-
-//HACK: temp
- virtual void SAL_CALL itemStateChanged( const css::awt::ItemEvent& rEvent )
- throw (css::uno::RuntimeException)
- {
- if ( !!maToggleHdl )
- ButtonImpl::itemStateChanged( rEvent );
-
- if ( IsChecked() )
- unsetOthersGroup( this );
- }
-};
-
-void RadioButton::Check( BOOL bCheck )
-{
- getImpl().Check( bCheck );
-}
-
-BOOL RadioButton::IsChecked() const
-{
- return getImpl().IsChecked();
-}
-
-void RadioButton::SetToggleHdl( const Link& rLink )
-{
- getImpl().SetToggleHdl( rLink );
-}
-
-DECL_GET_IMPL_IMPL( RadioButton );
-#if 1
-DECL_CONSTRUCTOR_IMPLS( RadioButton, Button, "radiobutton" );
-#else //debugging aid
-RadioButton::RadioButton( Context *pCtx, const char *pId, sal_uInt32 nId )
- : Button( new RadioButtonImpl( pCtx, pCtx->GetPeerHandle( pId, nId ), this ) )
-{
- printf( "%s: name=%s\n", __PRETTY_FUNCTION__, pId );
-}
-
-RadioButton::RadioButton( Window *pParent, WinBits nBits )
- : Button( new RadioButtonImpl( pParent->getContext(), Window::CreatePeer( pParent, nBits, "radiobutton" ), this ) )
-{
-}
-#endif
-
-class CheckBoxImpl : public ButtonImpl
-{
- public:
- uno::Reference< awt::XCheckBox > mxCheckBox;
- CheckBoxImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : ButtonImpl( pCtx, xPeer, pWindow )
- , mxCheckBox( xPeer, uno::UNO_QUERY ) {}
-
- void SetToggleHdl( const Link& rLink )
- {
- maToggleHdl = rLink;
- if ( !rLink )
- mxCheckBox->removeItemListener( this );
- else
- mxCheckBox->addItemListener( this );
- }
-};
-
-void CheckBox::Check( BOOL bCheck )
-{
- if ( !getImpl().mxCheckBox.is() )
- return;
- getImpl().mxCheckBox->setState( !!bCheck );
-}
-
-BOOL CheckBox::IsChecked() const
-{
- if ( !getImpl().mxCheckBox.is() )
- return FALSE;
- return getImpl().mxCheckBox->getState() != 0;
-}
-
-void CheckBox::SetToggleHdl( const Link& rLink )
-{
- getImpl().SetToggleHdl( rLink );
-}
-
-DECL_GET_IMPL_IMPL( CheckBox );
-DECL_CONSTRUCTOR_IMPLS( CheckBox, Button, "checkbox" );
-
-#define BUTTON_IMPL(t, parent, response) \
- class t##Impl : public parent##Impl \
- { \
- public: \
- t##Impl( Context *pCtx, PeerHandle const& xPeer, Window *pWindow ) \
- : parent##Impl( pCtx, xPeer, pWindow ) \
- { \
- } \
- void Click() \
- { \
- Dialog *d = static_cast<Dialog *>( mpCtx ); \
- d->EndDialog( response ); \
- } \
- }
-
-/* Common button types currently unavailable in OOo: */
-/* mpReset */
-/* mpApply */
-/* mpAction */
-#define RET_RESET 6
-#define RET_APPLY 7
-#define BUTTONID_RESET RET_RESET
-#define BUTTONID_APPLY RET_APPLY
-
-BUTTON_IMPL( OKButton, PushButton, BUTTONID_OK );
-BUTTON_IMPL( CancelButton, PushButton, BUTTONID_CANCEL );
-BUTTON_IMPL( YesButton, PushButton, BUTTONID_YES );
-BUTTON_IMPL( NoButton, PushButton, BUTTONID_NO );
-BUTTON_IMPL( RetryButton, PushButton, BUTTONID_RETRY );
-BUTTON_IMPL( IgnoreButton, PushButton, BUTTONID_IGNORE );
-BUTTON_IMPL( ResetButton, PushButton, BUTTONID_RESET );
-BUTTON_IMPL( ApplyButton, PushButton, BUTTONID_APPLY ); /* Deprecated? */
-BUTTON_IMPL( HelpButton, PushButton, BUTTONID_HELP );
-
-DECL_CONSTRUCTOR_IMPLS( OKButton, PushButton, "okbutton" );
-DECL_CONSTRUCTOR_IMPLS( CancelButton, PushButton, "cancelbutton" );
-DECL_CONSTRUCTOR_IMPLS( YesButton, PushButton, "yesbutton" );
-DECL_CONSTRUCTOR_IMPLS( NoButton, PushButton, "nobutton" );
-DECL_CONSTRUCTOR_IMPLS( RetryButton, PushButton, "retrybutton" );
-DECL_CONSTRUCTOR_IMPLS( IgnoreButton, PushButton, "ignorebutton" );
-DECL_CONSTRUCTOR_IMPLS( ResetButton, PushButton, "resetbutton" );
-DECL_CONSTRUCTOR_IMPLS( ApplyButton, PushButton, "applybutton" ); /* Deprecated? */
-DECL_CONSTRUCTOR_IMPLS( HelpButton, PushButton, "helpbutton" );
-
-class AdvancedButtonImpl : public PushButtonImpl
-{
-protected:
- bool bAdvancedMode;
- std::list< Window*> maAdvanced;
- std::list< Window*> maSimple;
- rtl::OUString mSimpleLabel;
- rtl::OUString mAdvancedLabel;
-
- Window* Remove( std::list< Window*> lst, Window* w )
- {
- for ( std::list< Window*>::iterator it = maAdvanced.begin();
- it != maAdvanced.end(); it++ )
- if ( *it == w )
- {
- lst.erase( it );
- return *it;
- }
- return 0;
- }
- void redraw()
- {
- uno::Reference <awt::XWindow> ref( mxWindow, uno::UNO_QUERY );
- ::Window* window = VCLXWindow::GetImplementation( ref )->GetWindow();
- ::Window* parent = window->GetParent();
-
- ::Rectangle r = Rectangle( parent->GetPosPixel(),
- parent->GetSizePixel() );
-
- parent->Invalidate( r, INVALIDATE_CHILDREN | INVALIDATE_NOCHILDREN );
- parent->SetPosSizePixel( 0, 0, r.nRight - r.nLeft, r.nBottom - r.nTop,
- awt::PosSize::SIZE );
- }
-
-public:
- AdvancedButtonImpl( Context *pCtx, PeerHandle const& xPeer, Window *pWindow )
- : PushButtonImpl( pCtx, xPeer, pWindow )
- , bAdvancedMode( false )
- // TODO: i18n
- // Button::GetStandardText( BUTTON_ADVANCED );
- // Button::GetStandardText( BUTTON_SIMPLE );
- , mSimpleLabel( rtl::OUString::createFromAscii( "Advanced..." ) )
- , mAdvancedLabel( rtl::OUString::createFromAscii( "Simple..." ) )
- {
- }
- void Click()
- {
- bAdvancedMode = !bAdvancedMode;
- if ( bAdvancedMode )
- advancedMode();
- else
- simpleMode();
- }
- void advancedMode()
- {
- // TODO: set symbol/image?
- // SYMBOL_PAGEUP, SYMBOL_PAGEDOWN
-#if 0
- // How to set images from here?
- // XImageConsumer looks like a disaster
- // Should move all this switching functionality to VCLXAdvancedButton?
- /biek/home/janneke/vc/layout-cws/default_images/res/commandimagelist/
- sc_arrowshapes_down.png
- sch_flowchartshapes.flowchart-extract.png
- sch_flowchartshapes.flowchart-merge.png
-#endif
- mxButton->setLabel( mAdvancedLabel );
- for ( std::list< Window*>::iterator it = maAdvanced.begin();
- it != maAdvanced.end(); it++ )
- ( *it )->Show();
- for ( std::list< Window*>::iterator it = maSimple.begin();
- it != maSimple.end(); it++ )
- ( *it )->Hide();
-
- redraw();
- }
-
- void simpleMode()
- {
- mxButton->setLabel( mSimpleLabel );
- for ( std::list< Window*>::iterator it = maAdvanced.begin();
- it != maAdvanced.end(); it++ )
- ( *it )->Hide();
- for ( std::list< Window*>::iterator it = maSimple.begin();
- it != maSimple.end(); it++ )
- ( *it )->Show();
-
- redraw();
- }
- void AddAdvanced( Window* w )
- {
- maAdvanced.push_back( w );
- if ( !bAdvancedMode )
- w->Hide();
- }
- void AddSimple( Window* w )
- {
- maSimple.push_back( w );
- if ( bAdvancedMode )
- w->Hide();
- }
- void RemoveAdvanced( Window* w )
- {
- Remove( maAdvanced, w );
- }
- void RemoveSimple( Window* w )
- {
- Remove( maSimple, w );
- }
-};
-
-void AdvancedButton::AddAdvanced( Window* w )
-{
- getImpl().AddAdvanced( w );
-}
-
-void AdvancedButton::AddSimple( Window* w )
-{
- getImpl().AddSimple( w );
-}
-
-void AdvancedButton::RemoveAdvanced( Window* w )
-{
- getImpl().RemoveAdvanced( w );
-}
-
-void AdvancedButton::RemoveSimple( Window* w )
-{
- getImpl().RemoveSimple( w );
-}
-
-DECL_CONSTRUCTOR_IMPLS( AdvancedButton, PushButton, "advancedbutton" );
-DECL_GET_IMPL_IMPL( AdvancedButton );
-
-
-class MoreButtonImpl : public AdvancedButtonImpl
-{
-public:
- MoreButtonImpl( Context *pCtx, PeerHandle const& xPeer, Window *pWindow )
- : AdvancedButtonImpl( pCtx, xPeer, pWindow)
- {
- mAdvancedLabel = ::Button::GetStandardText( BUTTON_LESS );
- mSimpleLabel = ::Button::GetStandardText( BUTTON_MORE );
- }
- void AddWindow( Window* w ) { AddAdvanced( w ); }
- void RemoveWindow( Window* w ) { RemoveAdvanced( w ); }
-};
-
-// TODO
-//BUTTON_IMPL( MoreButton, PushButton, 0 );
-DECL_CONSTRUCTOR_IMPLS( MoreButton, AdvancedButton, "morebutton" );
-DECL_GET_IMPL_IMPL( MoreButton );
-
-void MoreButton::AddWindow( Window* w )
-{
- getImpl().AddWindow( w );
-}
-
-void MoreButton::RemoveWindow( Window* w )
-{
- getImpl().RemoveWindow( w );
-}
-
-} // namespace layout
diff --git a/toolkit/source/vclcompat/wfield.cxx b/toolkit/source/vclcompat/wfield.cxx
deleted file mode 100644
index 0d2284126e87..000000000000
--- a/toolkit/source/vclcompat/wfield.cxx
+++ /dev/null
@@ -1,627 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: wfield.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 "wrapper.hxx"
-
-#include <comphelper/processfactory.hxx>
-#include <com/sun/star/awt/XMetricField.hpp>
-#include <com/sun/star/awt/XCurrencyField.hpp>
-#include <com/sun/star/awt/XTextComponent.hpp>
-#include <com/sun/star/awt/XListBox.hpp>
-#include <com/sun/star/awt/XComboBox.hpp>
-#include <cppuhelper/implbase1.hxx>
-#include <com/sun/star/awt/XActionListener.hpp>
-#include <com/sun/star/awt/XItemListener.hpp>
-
-using namespace ::com::sun::star;
-
-namespace layout
-{
-
-class EditImpl : public ControlImpl,
- public ::cppu::WeakImplHelper1< awt::XTextListener >
-{
- Link maModifyHdl;
-public:
- uno::Reference< awt::XTextComponent > mxEdit;
- EditImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : ControlImpl( pCtx, xPeer, pWindow )
- , mxEdit( xPeer, uno::UNO_QUERY )
- {
- }
-
- virtual void SAL_CALL disposing( const css::lang::EventObject& /* Source */ )
- throw (css::uno::RuntimeException)
- {
- SetModifyHdl( Link() );
- mxEdit.clear();
- }
-
- void SetModifyHdl( const Link& rLink )
- {
- if ( !mxEdit.is() )
- return;
- maModifyHdl = rLink;
- if ( !rLink )
- mxEdit->removeTextListener( this );
- else
- mxEdit->addTextListener( this );
- }
-
- void SAL_CALL textChanged( const css::awt::TextEvent& /* rEvent */ )
- throw (css::uno::RuntimeException)
- {
- maModifyHdl.Call( mpWindow );
- }
-};
-
-void Edit::SetText( const XubString& rStr ) const
-{
- if ( !getImpl().mxEdit.is() )
- return;
- getImpl().mxEdit->setText( rStr );
-}
-
-XubString Edit::GetText() const
-{
- if ( !getImpl().mxEdit.is() )
- return XubString();
- return XubString( getImpl().mxEdit->getText());
-}
-
-void Edit::SetModifyHdl( const Link& rLink )
-{
- getImpl().SetModifyHdl( rLink );
-}
-
-DECL_CONSTRUCTOR_IMPLS( Edit, Control, "edit" );
-DECL_GET_IMPL_IMPL( Edit );
-
-// Window/Control/Edit/MultiLineEdit
-class MultiLineEditImpl : public EditImpl
-{
-public:
- MultiLineEditImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : EditImpl( pCtx, xPeer, pWindow )
- {
- }
-};
-
-DECL_CONSTRUCTOR_IMPLS( MultiLineEdit, Edit, "multilineedit" );
-DECL_GET_IMPL_IMPL( MultiLineEdit );
-
-// Window/Control/Edit/SpinField
-class SpinFieldImpl : public EditImpl
-{
-public:
- SpinFieldImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : EditImpl( pCtx, xPeer, pWindow )
- {
- }
-};
-
-DECL_CONSTRUCTOR_IMPLS( SpinField, Edit, "spinfield" );
-
-// Window/Control/Edit/SpinField/NumericField
-class NumericFieldImpl : public SpinFieldImpl
-{
-public:
- NumericFieldImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : SpinFieldImpl( pCtx, xPeer, pWindow )
- {
- }
-};
-
-// Window/Control/Edit/SpinField/MetricField
-class MetricFieldImpl : public SpinFieldImpl
-{
-public:
- MetricFieldImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : SpinFieldImpl( pCtx, xPeer, pWindow )
- {
- }
-};
-
-DECL_GET_IMPL_IMPL( SpinField );
-DECL_GET_IMPL_IMPL( NumericField );
-DECL_GET_IMPL_IMPL( MetricField );
-
-// FormatterBase
-class FormatterBaseImpl
-{
-protected:
- PeerHandle mxPeer;
-public:
- explicit FormatterBaseImpl( const PeerHandle &xPeer )
- : mxPeer( xPeer )
- {
- };
-};
-
-class NumericFormatterImpl : public FormatterBaseImpl
-{
-public:
- uno::Reference< awt::XCurrencyField > mxField;
- explicit NumericFormatterImpl( const PeerHandle &xPeer )
- : FormatterBaseImpl( xPeer )
- , mxField( xPeer, uno::UNO_QUERY )
- {
- }
-
- // FIXME: burn that CPU ! cut/paste from vclxwindows.cxx
- double valueToDouble( sal_Int64 nValue )
- {
- sal_Int16 nDigits = mxField->getDecimalDigits();
- double n = (double)nValue;
- for ( sal_uInt16 d = 0; d < nDigits; d++ )
- n /= 10;
- return n;
- } // FIXME: burn that CPU ! cut/paste from vclxwindows.cxx
- sal_Int64 doubleToValue( double nValue )
- {
- sal_Int16 nDigits = mxField->getDecimalDigits();
- double n = nValue;
- for ( sal_uInt16 d = 0; d < nDigits; d++ )
- n *= 10;
- return (sal_Int64) n;
- }
-};
-
-class MetricFormatterImpl : public FormatterBaseImpl
-{
-public:
- uno::Reference< awt::XMetricField > mxField;
- explicit MetricFormatterImpl( const PeerHandle &xPeer )
- : FormatterBaseImpl( xPeer )
- , mxField( xPeer, uno::UNO_QUERY )
- {
- }
-};
-
-// NumericFormatter
-
-NumericFormatter::NumericFormatter( FormatterBaseImpl *pImpl )
- : FormatterBase( pImpl )
-{
-}
-
-NumericFormatterImpl& NumericFormatter::getFormatImpl() const
-{
- return *( static_cast<NumericFormatterImpl *>( mpFormatImpl ) );
-}
-
-#define SET_IMPL(vclmethod, idlmethod) \
- void NumericFormatter::vclmethod( sal_Int64 nValue ) \
- { \
- if ( !getFormatImpl().mxField.is() ) \
- return; \
- getFormatImpl().mxField->idlmethod( getFormatImpl().valueToDouble( nValue ) ); \
- }
-
-SET_IMPL( SetMin, setMin )
-SET_IMPL( SetMax, setMax )
-SET_IMPL( SetLast, setLast )
-SET_IMPL( SetFirst, setFirst )
-SET_IMPL( SetValue, setValue )
-SET_IMPL( SetSpinSize, setSpinSize )
-
-sal_Int64 NumericFormatter::GetValue() const
-{
- if ( !getFormatImpl().mxField.is() )
- return 0;
- return getFormatImpl().doubleToValue( getFormatImpl().mxField->getValue() );
-}
-
-#undef SET_IMPL
-
-DECL_CONSTRUCTOR_IMPLS_2( NumericField, SpinField, NumericFormatter, "numericfield" );
-
-// MetricFormatter
-
-MetricFormatter::MetricFormatter( FormatterBaseImpl *pImpl )
- : FormatterBase( pImpl )
-{
-}
-MetricFormatterImpl& MetricFormatter::getFormatImpl() const
-{ return *( static_cast<MetricFormatterImpl *>( mpFormatImpl ) ); }
-
-#define MetricUnitVclToUno(a) ((sal_uInt16)(a))
-
-#define SET_IMPL(vclmethod, idlmethod) \
- void MetricFormatter::vclmethod( sal_Int64 nValue, FieldUnit nUnit ) \
- { \
- if ( !getFormatImpl().mxField.is() ) \
- return; \
- getFormatImpl().mxField->idlmethod( nValue, MetricUnitVclToUno( nUnit ) ); \
- }
-
-SET_IMPL( SetMin, setMin )
-SET_IMPL( SetMax, setMax )
-SET_IMPL( SetLast, setLast )
-SET_IMPL( SetFirst, setFirst )
-SET_IMPL( SetValue, setValue )
-
-#undef SET_IMPL
-
-void MetricFormatter::SetSpinSize( sal_Int64 nValue )
-{
- if ( !getFormatImpl().mxField.is() )
- return;
- getFormatImpl().mxField->setSpinSize( nValue );
-}
-
-sal_Int64 MetricFormatter::GetValue( FieldUnit nUnit ) const
-{
- if ( !getFormatImpl().mxField.is() )
- return 0;
- return getFormatImpl().mxField->getValue( MetricUnitVclToUno( nUnit ) );
-}
-
-DECL_CONSTRUCTOR_IMPLS_2( MetricField, SpinField, MetricFormatter, "metricfield" );
-
-// Window/Control/Edit/ComboBox
-class ComboBoxImpl : public EditImpl,
- public ::cppu::WeakImplHelper1< awt::XActionListener >,
- public ::cppu::WeakImplHelper1< awt::XItemListener >
-{
- Link maClickHdl, maSelectHdl;
-public:
- uno::Reference< awt::XComboBox > mxComboBox;
- ComboBoxImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : EditImpl( pCtx, xPeer, pWindow ),
- mxComboBox( xPeer, uno::UNO_QUERY )
- {
- }
-
- USHORT InsertEntry(const XubString& rStr, USHORT nPos)
- {
- if ( nPos == COMBOBOX_APPEND )
- nPos = GetEntryCount();
- mxComboBox->addItem( rtl::OUString( rStr ), nPos );
- return nPos;
- }
-
- void RemoveEntry( USHORT nPos )
- {
- mxComboBox->removeItems( nPos, 1 );
- }
-
- USHORT GetEntryPos( const XubString& rStr ) const
- {
- uno::Sequence< rtl::OUString> aItems( mxComboBox->getItems() );
- rtl::OUString rKey( rStr );
- for ( unsigned int i = 0; aItems.getLength(); i++ )
- {
- if ( aItems[ i ] == rKey )
- return sal::static_int_cast< USHORT >( i );
- }
- return COMBOBOX_ENTRY_NOTFOUND;
- }
-
- XubString GetEntry( USHORT nPos ) const
- {
- return XubString( mxComboBox->getItem( nPos ) );
- }
-
- USHORT GetEntryCount() const
- {
- return mxComboBox->getItemCount();
- }
-
- void SetClickHdl( const Link& rLink )
- {
- maClickHdl = rLink;
- if ( !rLink )
- mxComboBox->removeActionListener( this );
- else
- mxComboBox->addActionListener( this );
- }
-
- void SetSelectHdl( const Link& rLink )
- {
- maSelectHdl = rLink;
- if ( !rLink )
- mxComboBox->removeItemListener( this );
- else
- mxComboBox->addItemListener( this );
- }
-
- virtual void SAL_CALL disposing( const css::lang::EventObject& /* Source */ )
- throw (css::uno::RuntimeException)
- {
- mxComboBox.clear();
- }
-
- virtual void SAL_CALL actionPerformed( const css::awt::ActionEvent& /* rEvent */ )
- throw (css::uno::RuntimeException)
- {
- ComboBox* pComboBox = static_cast<ComboBox*>( mpWindow );
- if ( !pComboBox )
- return;
- maClickHdl.Call( pComboBox );
- }
-
- virtual void SAL_CALL itemStateChanged( const css::awt::ItemEvent& /* rEvent */ )
- throw (css::uno::RuntimeException)
- {
- ComboBox* pComboBox = static_cast<ComboBox*>( mpWindow );
- if ( !pComboBox )
- return;
- maSelectHdl.Call( pComboBox );
- }
-};
-
-USHORT ComboBox::InsertEntry( const XubString &rStr, USHORT nPos )
-{
- return getImpl().InsertEntry( rStr, nPos );
-}
-
-void ComboBox::RemoveEntry( const XubString& rStr )
-{
- getImpl().RemoveEntry( GetEntryPos( rStr ) );
-}
-
-void ComboBox::RemoveEntry( USHORT nPos )
-{
- getImpl().RemoveEntry( nPos );
-}
-
-void ComboBox::Clear()
-{
- uno::Sequence< rtl::OUString> aNoItems;
- getImpl().setProperty( "StringItemList", uno::Any( aNoItems ) );
-}
-
-USHORT ComboBox::GetEntryPos( const XubString& rStr ) const
-{
- return getImpl().GetEntryPos( rStr );
-}
-
-XubString ComboBox::GetEntry( USHORT nPos ) const
-{
- rtl::OUString rItem = getImpl().mxComboBox->getItem( nPos );
- return XubString( rItem );
-}
-
-USHORT ComboBox::GetEntryCount() const
-{
- return getImpl().GetEntryCount();
-}
-
-void ComboBox::SetClickHdl( const Link& rLink )
-{
- getImpl().SetClickHdl( rLink );
-}
-
-void ComboBox::SetSelectHdl( const Link& rLink )
-{
- getImpl().SetSelectHdl( rLink );
-}
-
-DECL_CONSTRUCTOR_IMPLS( ComboBox, Edit, "combobox" );
-DECL_GET_IMPL_IMPL( ComboBox );
-
-// Window/Control/ListBox
-class ListBoxImpl : public ControlImpl,
- public ::cppu::WeakImplHelper1< awt::XActionListener >,
- public ::cppu::WeakImplHelper1< awt::XItemListener >
-{
- Link maClickHdl, maSelectHdl;
-public:
- uno::Reference< awt::XListBox > mxListBox;
- ListBoxImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : ControlImpl( pCtx, xPeer, pWindow ),
- mxListBox( xPeer, uno::UNO_QUERY )
- {
- }
-
- USHORT InsertEntry(const XubString& rStr, USHORT nPos)
- {
- if ( nPos == LISTBOX_APPEND )
- nPos = mxListBox->getItemCount();
- mxListBox->addItem( rtl::OUString( rStr ), nPos );
- return nPos;
- }
-
- void RemoveEntry( USHORT nPos )
- {
- mxListBox->removeItems( nPos, 1 );
- }
-
- USHORT RemoveEntry(const XubString& rStr, USHORT nPos)
- {
- if ( nPos == LISTBOX_APPEND )
- nPos = mxListBox->getItemCount();
- mxListBox->addItem( rtl::OUString( rStr ), nPos );
- return nPos;
- }
-
- USHORT GetEntryPos( const XubString& rStr ) const
- {
- uno::Sequence< rtl::OUString> aItems( mxListBox->getItems() );
- rtl::OUString rKey( rStr );
- for ( unsigned int i = 0; aItems.getLength(); i++ )
- {
- if ( aItems[ i ] == rKey )
- return sal::static_int_cast< USHORT >( i );
- }
- return LISTBOX_ENTRY_NOTFOUND;
- }
-
- XubString GetEntry( USHORT nPos ) const
- {
- return mxListBox->getItem( nPos );
- }
-
- USHORT GetEntryCount() const
- {
- return mxListBox->getItemCount();
- }
-
- void SelectEntryPos( USHORT nPos, BOOL bSelect )
- {
- mxListBox->selectItemPos( nPos, bSelect );
- }
-
- USHORT GetSelectEntryCount() const
- {
- return sal::static_int_cast< USHORT >( mxListBox->getSelectedItems().getLength() );
- }
-
- USHORT GetSelectEntryPos( USHORT nSelIndex ) const
- {
- USHORT nSelected = 0;
- if ( mxListBox->isMutipleMode() )
- {
- uno::Sequence< short > aItems( mxListBox->getSelectedItemsPos() );
- if ( nSelIndex < aItems.getLength() )
- nSelected = aItems[ nSelIndex ];
- }
- else
- nSelected = mxListBox->getSelectedItemPos();
- return nSelected;
- }
-
- void SetClickHdl( const Link& rLink )
- {
- maClickHdl = rLink;
- if ( !rLink )
- mxListBox->removeActionListener( this );
- else
- mxListBox->addActionListener( this );
- }
-
- void SetSelectHdl( const Link& rLink )
- {
- maSelectHdl = rLink;
- if ( !rLink )
- mxListBox->removeItemListener( this );
- else
- mxListBox->addItemListener( this );
- }
-
- virtual void SAL_CALL disposing( const css::lang::EventObject& /* Source */ )
- throw (css::uno::RuntimeException)
- {
- mxListBox.clear();
- }
-
- void SAL_CALL actionPerformed( const css::awt::ActionEvent& /* rEvent */ )
- throw (css::uno::RuntimeException)
- {
- maClickHdl.Call( mpWindow );
- }
-
- void SAL_CALL itemStateChanged( const css::awt::ItemEvent& /* rEvent */ )
- throw (css::uno::RuntimeException)
- {
- ListBox* pListBox = static_cast<ListBox*>( mpWindow );
- if ( !pListBox )
- return;
- maSelectHdl.Call( pListBox );
- }
-};
-
-USHORT ListBox::InsertEntry(const XubString& rStr, USHORT nPos)
-{
- return getImpl().InsertEntry(rStr, nPos);
-}
-
-void ListBox::RemoveEntry( USHORT nPos )
-{
- return getImpl().RemoveEntry( nPos );
-}
-
-void ListBox::RemoveEntry( const XubString& rStr )
-{
- return getImpl().RemoveEntry( GetEntryPos( rStr ) );
-}
-
-void ListBox::Clear()
-{
- uno::Sequence< rtl::OUString> aNoItems;
- getImpl().setProperty( "StringItemList", uno::Any( aNoItems ) );
-}
-
-USHORT ListBox::GetEntryPos( const XubString& rStr ) const
-{
- return getImpl().GetEntryPos( rStr );
-}
-
-XubString ListBox::GetEntry( USHORT nPos ) const
-{
- return getImpl().GetEntry( nPos );
-}
-
-USHORT ListBox::GetEntryCount() const
-{
- return getImpl().GetEntryCount();
-}
-
-void ListBox::SelectEntryPos( USHORT nPos, BOOL bSelect )
-{
- getImpl().SelectEntryPos( nPos, bSelect );
-}
-
-void ListBox::SelectEntry( const XubString& rStr, BOOL bSelect )
-{
- SelectEntryPos( GetEntryPos( rStr ), bSelect );
-}
-
-USHORT ListBox::GetSelectEntryCount() const
-{
- return getImpl().GetSelectEntryCount();
-}
-
-USHORT ListBox::GetSelectEntryPos( USHORT nSelIndex ) const
-{
- return getImpl().GetSelectEntryPos( nSelIndex );
-}
-
-XubString ListBox::GetSelectEntry( USHORT nSelIndex ) const
-{
- return GetEntry( GetSelectEntryPos( nSelIndex ) );
-}
-
-void ListBox::SetSelectHdl( const Link& rLink )
-{
- getImpl().SetSelectHdl( rLink );
-}
-
-void ListBox::SetClickHdl( const Link& rLink )
-{
- getImpl().SetClickHdl( rLink );
-}
-
-DECL_CONSTRUCTOR_IMPLS( ListBox, Control, "listbox" );
-DECL_GET_IMPL_IMPL( ListBox );
-
-} // namespace layout
diff --git a/toolkit/source/vclcompat/wrapper.cxx b/toolkit/source/vclcompat/wrapper.cxx
deleted file mode 100644
index 77e6c6c7fdb0..000000000000
--- a/toolkit/source/vclcompat/wrapper.cxx
+++ /dev/null
@@ -1,569 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: wrapper.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 "wrapper.hxx"
-
-#include <com/sun/star/graphic/XGraphic.hpp>
-#include <com/sun/star/awt/XFixedText.hpp>
-#include <com/sun/star/awt/XDialog2.hpp>
-#include <com/sun/star/awt/XProgressBar.hpp>
-#include <com/sun/star/awt/WindowAttribute.hpp>
-#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
-#include <comphelper/processfactory.hxx>
-#include <vcl/window.hxx>
-#include <toolkit/awt/vclxwindow.hxx>
-
-#include <layout/layoutcore.hxx>
-#include <layout/factory.hxx>
-#include <layout/root.hxx>
-#include <vcl/image.hxx>
-
-using namespace ::com::sun::star;
-
-namespace layout
-{
-
-// Context bits ...
-class ContextImpl
-{
- uno::Reference< awt::XLayoutRoot > mxRoot;
- uno::Reference< container::XNameAccess > mxNameAccess;
- PeerHandle mxTopLevel;
-
-public:
- ContextImpl( char const *pPath )
- {
- uno::Sequence< uno::Any > aParams( 1 );
- aParams[0] <<= rtl::OUString( pPath, strlen( pPath ), RTL_TEXTENCODING_UTF8 );
-
- uno::Reference< lang::XSingleServiceFactory > xFactory(
- comphelper::createProcessComponent(
- rtl::OUString::createFromAscii( "com.sun.star.awt.Layout" ) ),
- uno::UNO_QUERY );
- if ( !xFactory.is() )
- {
- throw uno::RuntimeException(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Layout engine not installed" ) ),
- uno::Reference< uno::XInterface >() );
- }
- mxRoot = uno::Reference< awt::XLayoutRoot >(
- xFactory->createInstanceWithArguments( aParams ),
- uno::UNO_QUERY );
-
- mxNameAccess = uno::Reference< container::XNameAccess >( mxRoot, uno::UNO_QUERY );
- }
-
- ~ContextImpl()
- {
- }
-
- PeerHandle getByName( const rtl::OUString &rName )
- {
- uno::Any val = mxNameAccess->getByName( rName );
- PeerHandle xRet;
- val >>= xRet;
- return xRet;
- }
- PeerHandle getTopLevel() { return mxTopLevel; }
- void setTopLevel( PeerHandle xToplevel ) { mxTopLevel = xToplevel; }
- PeerHandle getRoot() { return mxRoot; }
-};
-
-Context::Context( const char *pPath )
- : pImpl( new ContextImpl( pPath ) )
-{
-}
-Context::~Context()
-{
- delete pImpl;
- pImpl = NULL;
-}
-
-void Context::setToplevel( PeerHandle xToplevel )
-{
- pImpl->setTopLevel( xToplevel );
-}
-
-PeerHandle Context::getToplevel()
-{
- return pImpl->getTopLevel();
-}
-PeerHandle Context::getRoot()
-{
- return pImpl->getRoot();
-}
-
-PeerHandle Context::GetPeerHandle( const char *pId, sal_uInt32 nId ) const
-{
- PeerHandle xHandle;
- xHandle = pImpl->getByName( rtl::OUString( pId, strlen( pId ), RTL_TEXTENCODING_UTF8 ) );
- if ( !xHandle.is() )
- {
- DBG_ERROR1( "Failed to fetch widget '%s'", pId );
- }
-
- if ( nId != 0 )
- {
- rtl::OString aStr = rtl::OString::valueOf( (sal_Int32) nId );
- xHandle = GetPeerHandle( aStr, 0 );
- }
- return xHandle;
-}
-
-// Window/Dialog
-class DialogImpl : public WindowImpl
-{
-public:
- uno::Reference< awt::XDialog2 > mxDialog;
- DialogImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : WindowImpl( pCtx, xPeer, pWindow )
- , mxDialog( xPeer, uno::UNO_QUERY )
- {
- }
-};
-
-// Accessors
-DECL_GET_IMPL_IMPL( Control )
-DECL_GET_IMPL_IMPL( Dialog )
-
-Window::Window( WindowImpl *pImpl )
-: mpImpl( pImpl )
-{
-}
-
-Window::~Window()
-{
- /* likely to be an UNO object - with floating references */
- mpImpl->wrapperGone();
- mpImpl = NULL;
-}
-
-Context *Window::getContext()
-{
- return this && mpImpl ? mpImpl->mpCtx : NULL;
-}
-
-PeerHandle Window::GetPeer()
-{
- if (!mpImpl)
- return PeerHandle();
- return mpImpl->mxWindow;
-}
-
-struct ToolkitVclPropsMap
-{
- WinBits vclStyle;
- long initAttr;
- const char *propName;
-
- // the value to give the prop to enable/disable it -- not the most brilliant
- // type declaration and storage, but does the work... properties are
- // either a boolean or a short since they are either a directly wrappers for
- // a WinBit, or aggregates related (like Align for WB_LEFT, _RIGHT and _CENTER).
- bool isBoolean;
- short enableProp, disableProp;
-};
-
-#define TYPE_BOOL true
-#define TYPE_SHORT false
-#define NOTYPE 0
-static const ToolkitVclPropsMap toolkitVclPropsMap[] =
-{
- { WB_BORDER, awt::WindowAttribute::BORDER, "Border", TYPE_SHORT, 1, 0 },
- { WB_NOBORDER, awt::VclWindowPeerAttribute::NOBORDER, "Border", TYPE_SHORT, 0, 1 },
- { WB_SIZEABLE, awt::WindowAttribute::SIZEABLE, NULL, NOTYPE, 0, 0 },
- { WB_MOVEABLE, awt::WindowAttribute::MOVEABLE, NULL, NOTYPE, 0, 0 },
- { WB_CLOSEABLE, awt::WindowAttribute::CLOSEABLE, NULL, NOTYPE, 0, 0 },
-
- { WB_HSCROLL, awt::VclWindowPeerAttribute::HSCROLL, NULL, NOTYPE, 0, 0 },
- { WB_VSCROLL, awt::VclWindowPeerAttribute::VSCROLL, NULL, NOTYPE, 0, 0 },
- { WB_LEFT, awt::VclWindowPeerAttribute::LEFT, "Align", TYPE_SHORT, 0, 0 },
- { WB_CENTER, awt::VclWindowPeerAttribute::CENTER, "Align", TYPE_SHORT, 1, 0 },
- { WB_RIGHT, awt::VclWindowPeerAttribute::RIGHT, "Align", TYPE_SHORT, 2, 0 },
- { WB_SPIN, awt::VclWindowPeerAttribute::SPIN, NULL, NOTYPE, 0, 0 },
- { WB_SORT, awt::VclWindowPeerAttribute::SORT, NULL, NOTYPE, 0, 0 },
- { WB_DROPDOWN, awt::VclWindowPeerAttribute::DROPDOWN, "Dropdown", TYPE_BOOL, 1, 0 },
- { WB_DEFBUTTON, awt::VclWindowPeerAttribute::DEFBUTTON, "DefaultButton", TYPE_BOOL, 1, 0 },
- { WB_READONLY, awt::VclWindowPeerAttribute::READONLY, NULL, NOTYPE, 0, 0 },
- { WB_CLIPCHILDREN, awt::VclWindowPeerAttribute::CLIPCHILDREN, NULL, NOTYPE, 0, 0 },
- { WB_GROUP, awt::VclWindowPeerAttribute::GROUP, NULL, NOTYPE, 0, 0 },
-
- { WB_OK, awt::VclWindowPeerAttribute::OK, NULL, NOTYPE, 0, 0 },
- { WB_OK_CANCEL, awt::VclWindowPeerAttribute::OK_CANCEL, NULL, NOTYPE, 0, 0 },
- { WB_YES_NO, awt::VclWindowPeerAttribute::YES_NO, NULL, NOTYPE, 0, 0 },
- { WB_YES_NO_CANCEL, awt::VclWindowPeerAttribute::YES_NO_CANCEL, NULL, NOTYPE, 1, 0 },
- { WB_RETRY_CANCEL, awt::VclWindowPeerAttribute::RETRY_CANCEL, NULL, NOTYPE, 1, 0 },
- { WB_DEF_OK, awt::VclWindowPeerAttribute::DEF_OK, NULL, NOTYPE, 0, 0 },
- { WB_DEF_CANCEL, awt::VclWindowPeerAttribute::DEF_CANCEL, NULL, NOTYPE, 1, 0 },
- { WB_DEF_RETRY, awt::VclWindowPeerAttribute::DEF_RETRY, NULL, NOTYPE, 0, 0 },
- { WB_DEF_YES, awt::VclWindowPeerAttribute::DEF_YES, NULL, NOTYPE, 0, 0 },
- { WB_DEF_NO, awt::VclWindowPeerAttribute::DEF_NO, NULL, NOTYPE, 0, 0 },
-
- { WB_AUTOHSCROLL, awt::VclWindowPeerAttribute::AUTOHSCROLL, "AutoHScroll", TYPE_BOOL, 1, 0 },
- { WB_AUTOVSCROLL, awt::VclWindowPeerAttribute::AUTOVSCROLL, "AutoVScroll", TYPE_BOOL, 1, 0 },
-
- { WB_WORDBREAK, 0, "MultiLine", TYPE_BOOL, 1, 0 },
- { WB_NOPOINTERFOCUS, 0, "FocusOnClick", TYPE_BOOL, 1, 0 },
- { WB_TOGGLE, 0, "Toggle", TYPE_BOOL, 1, 0 },
- { WB_REPEAT, 0, "Repeat", TYPE_BOOL, 1, 0 },
- { WB_NOHIDESELECTION, 0, "HideInactiveSelection", TYPE_BOOL, 1, 0 },
-};
-#undef TYPE_BOOL
-#undef TYPE_SHORT
-#undef NOTYPE
-
-static const int toolkitVclPropsMapLen =
- sizeof( toolkitVclPropsMap ) / sizeof( ToolkitVclPropsMap );
-
-void Window::SetStyle( WinBits nStyle )
-{
- uno::Reference< awt::XVclWindowPeer > xPeer = mpImpl->mxVclPeer;
- for ( int i = 0; i < toolkitVclPropsMapLen; i++ )
- {
- if ( toolkitVclPropsMap[ i ].propName )
- {
- short nValue;
- if ( nStyle & toolkitVclPropsMap[ i ].vclStyle )
- nValue = toolkitVclPropsMap[ i ].enableProp;
- else
- nValue = toolkitVclPropsMap[ i ].disableProp;
- uno::Any aValue;
- if ( toolkitVclPropsMap[ i ].isBoolean )
- aValue = uno::makeAny( (bool) nValue );
- else
- aValue = uno::makeAny( (short) nValue );
- mpImpl->setProperty( toolkitVclPropsMap[ i ].propName, aValue );
- }
- }
-}
-
-WinBits Window::GetStyle()
-{
- uno::Reference< awt::XVclWindowPeer > xPeer = mpImpl->mxVclPeer;
- WinBits ret = 0;
- for ( int i = 0; i < toolkitVclPropsMapLen; i++ )
- {
- if ( toolkitVclPropsMap[ i ].propName )
- {
- short nValue = 0;
- if ( toolkitVclPropsMap[ i ].isBoolean )
- {
- bool bValue = false;
- mpImpl->getProperty( toolkitVclPropsMap[ i ].propName ) >>= bValue;
- nValue = bValue ? 1 : 0;
- }
- else
- mpImpl->getProperty( toolkitVclPropsMap[ i ].propName ) >>= nValue;
- if ( nValue == toolkitVclPropsMap[ i ].enableProp )
- ret |= toolkitVclPropsMap[i].vclStyle;
- }
- }
- return ret;
-}
-
-/* Unpleasant way to get an xToolkit pointer ... */
-uno::Reference< awt::XToolkit > getToolkit()
-{
- static uno::Reference< awt::XToolkit > xToolkit;
- if (!xToolkit.is())
- {
- // Urgh ...
- xToolkit = uno::Reference< awt::XToolkit >(
- ::comphelper::getProcessServiceFactory()->createInstance(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.Toolkit" ) ) ),
- uno::UNO_QUERY );
- if ( !xToolkit.is() )
- throw uno::RuntimeException(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "failed to create toolkit!") ),
- uno::Reference< uno::XInterface >() );
- }
- return xToolkit;
-}
-
-PeerHandle Window::CreatePeer( Window *pParent, WinBits nStyle, const char *pName)
-{
-
- long nWinAttrbs = 0;
- for ( int i = 0; i < toolkitVclPropsMapLen; i++ )
- if ( nStyle & toolkitVclPropsMap[ i ].vclStyle )
- nWinAttrbs |= toolkitVclPropsMap[ i ].initAttr;
-
- return layoutimpl::createWidget( getToolkit(), pParent->GetPeer(),
- rtl::OUString::createFromAscii( pName ), nWinAttrbs );
-}
-
-void Window::Enable( bool bEnable )
-{
- if ( !getImpl().mxWindow.is() )
- return;
- getImpl().mxWindow->setEnable( bEnable );
-}
-
-void Window::Show( BOOL bVisible )
-{
- if ( !getImpl().mxWindow.is() )
- return;
- getImpl().mxWindow->setVisible( bVisible );
-}
-
-void Window::GrabFocus()
-{
- if ( !getImpl().mxWindow.is() )
- return;
- getImpl().mxWindow->setFocus();
-}
-
-Dialog::Dialog( Window *pParent, const char *pXMLPath, const char *pId, sal_uInt32 nId )
- : Context( pXMLPath )
- , Window( new DialogImpl( this, Context::GetPeerHandle( pId, nId ), this ) )
-{
- if ( pParent )
- SetParent( pParent );
-}
-
-Dialog::Dialog( ::Window *pParent, const char *pXMLPath, const char *pId, sal_uInt32 nId )
- : Context( pXMLPath )
- , Window( new DialogImpl( this, Context::GetPeerHandle( pId, nId ), this ) )
-{
- if ( pParent )
- SetParent( pParent );
-}
-
-void Dialog::SetParent( ::Window *pParent )
-{
- uno::Reference <awt::XWindow> ref( GetPeer(), uno::UNO_QUERY );
- ::Window *window = VCLXWindow::GetImplementation( ref )->GetWindow();
- window->SetParent( pParent );
-}
-
-void Dialog::SetParent( Window *pParent )
-{
- uno::Reference <awt::XWindow> parentRef( pParent->GetPeer(), uno::UNO_QUERY );
- ::Window *parentWindow = VCLXWindow::GetImplementation( parentRef )->GetWindow();
- SetParent( parentWindow );
-}
-
-short Dialog::Execute()
-{
- if ( !getImpl().mxDialog.is() )
- return -1;
- return getImpl().mxDialog->execute();
-}
-
-void Dialog::EndDialog( long nResult )
-{
- if ( !getImpl().mxDialog.is() )
- return;
- getImpl().mxDialog->endDialog( nResult );
-}
-
-void Dialog::SetText( const String& rStr )
-{
- if ( !getImpl().mxDialog.is() )
- return;
- getImpl().mxDialog->setTitle( rStr );
-}
-
-class FixedLineImpl : public ControlImpl
-{
-public:
- FixedLineImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : ControlImpl( pCtx, xPeer, pWindow )
- {
- }
-};
-
-DECL_CONSTRUCTOR_IMPLS( FixedLine, Control, "hfixedline" );
-DECL_GET_IMPL_IMPL( FixedLine )
-
-bool FixedLine::IsEnabled()
-{
- //FIXME
- return true;
-}
-
-class FixedTextImpl : public ControlImpl
-{
-public:
- uno::Reference< awt::XFixedText > mxFixedText;
- FixedTextImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : ControlImpl( pCtx, xPeer, pWindow )
- , mxFixedText( xPeer, uno::UNO_QUERY )
- {
- }
-
- virtual void SAL_CALL disposing( const css::lang::EventObject& /* Source */ )
- throw (css::uno::RuntimeException)
- {
- mxFixedText.clear();
- }
-};
-
-DECL_CONSTRUCTOR_IMPLS( FixedText, Control, "fixedtext" );
-DECL_GET_IMPL_IMPL( FixedText )
-
-void FixedText::SetText( const String& rStr )
-{
- if ( !getImpl().mxFixedText.is() )
- return;
- getImpl().mxFixedText->setText( rStr );
-}
-
-class FixedInfoImpl : public FixedTextImpl
-{
-public:
- FixedInfoImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : FixedTextImpl( pCtx, xPeer, pWindow )
- {
- }
-};
-
-DECL_CONSTRUCTOR_IMPLS( FixedInfo, FixedText, "fixedinfo" );
-DECL_GET_IMPL_IMPL( FixedInfo );
-
-class ProgressBarImpl : public ControlImpl
-{
-public:
- uno::Reference< awt::XProgressBar > mxProgressBar;
- ProgressBarImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : ControlImpl( pCtx, xPeer, pWindow )
- , mxProgressBar( xPeer, uno::UNO_QUERY )
- {
- }
-
- virtual void SAL_CALL disposing( const css::lang::EventObject& /* Source */ )
- throw (css::uno::RuntimeException)
- {
- mxProgressBar.clear();
- }
-};
-
-
-class FixedImageImpl: public ControlImpl
-{
-public:
- uno::Reference< graphic::XGraphic > mxGraphic;
- FixedImageImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow)
-// const char *pName )
- : ControlImpl( pCtx, xPeer, pWindow )
- //, mxGraphic( layoutimpl::loadGraphic( pName ) )
- , mxGraphic( xPeer, uno::UNO_QUERY )
- {
- if ( !mxGraphic.is() )
- {
- DBG_ERROR( "ERROR: failed to load image: `%s'" /*, pName*/ );
- }
-#if 0
- else
- getImpl().mxGraphic->...();
-#endif
- }
-};
-
-DECL_CONSTRUCTOR_IMPLS( FixedImage, Control, "fixedimage" );
-DECL_GET_IMPL_IMPL( FixedImage )
-
-void FixedImage::setImage( ::Image const& i )
-{
- (void) i;
- if ( !getImpl().mxGraphic.is() )
- return;
- //FIXME: hack moved to proplist
- //getImpl().mxGraphic =
-}
-
-#if 0
-
- FixedImage::FixedImage( const char *pName )
- : pImpl( new FixedImageImpl( pName ) )
-{
-}
-
-FixedImage::~FixedImage()
-{
- delete pImpl;
-}
-
-#endif
-
-
-DECL_CONSTRUCTOR_IMPLS( ProgressBar, Control, "ProgressBar" );
-#if 0
-ProgressBar::ProgressBar( Context *pCtx, const char *pId, sal_uInt32 nId )
- : Control( new ProgressBarImpl( pCtx, pCtx->GetPeerHandle( pId, nId ), this ) )
-{
-}
-ProgressBar::ProgressBar( Window *pParent, WinBits nBits)
-// : Control( new ProgressBarImpl( pParent->getContext(), Window::CreatePeer( pParent, nBits, "ProgressBar" ), this ) )
- : Control( new ProgressBarImpl( pParent->getContext(), Window::CreatePeer( pParent, nBits, "progressbar" ), this ) )
-{
-}
-#endif
-
-DECL_GET_IMPL_IMPL( ProgressBar )
-
-
-void ProgressBar::SetForegroundColor( css::util::Color color )
-{
- if ( !getImpl().mxProgressBar.is() )
- return;
- getImpl().mxProgressBar->setForegroundColor( color );
-}
-
-void ProgressBar::SetBackgroundColor( css::util::Color color )
-{
- if ( !getImpl().mxProgressBar.is() )
- return;
- getImpl().mxProgressBar->setBackgroundColor( color );
-}
-
-void ProgressBar::SetValue( sal_Int32 i )
-{
- if ( !getImpl().mxProgressBar.is() )
- return;
- getImpl().mxProgressBar->setValue( i );
-}
-
-void ProgressBar::SetRange( sal_Int32 min, sal_Int32 max )
-{
- if ( !getImpl().mxProgressBar.is() )
- return;
- getImpl().mxProgressBar->setRange( min, max );
-}
-
-sal_Int32 ProgressBar::GetValue()
-{
- if ( !getImpl().mxProgressBar.is() )
- return 0;
- return getImpl().mxProgressBar->getValue();
-}
-
-} // namespace layout
diff --git a/toolkit/source/vclcompat/wrapper.hxx b/toolkit/source/vclcompat/wrapper.hxx
deleted file mode 100644
index 9135aa1148ce..000000000000
--- a/toolkit/source/vclcompat/wrapper.hxx
+++ /dev/null
@@ -1,136 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: wrapper.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 WRAPPER_HXX
-#define WRAPPER_HXX
-
-#include <layout/layout.hxx>
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/awt/XWindow.hpp>
-#include <com/sun/star/awt/XVclWindowPeer.hpp>
-
-#include <cstring>
-
-namespace css = com::sun::star;
-
-namespace layout
-{
-
-class WindowImpl
-{
- public:
- Window *mpWindow;
- Context *mpCtx;
- css::uno::Reference< css::awt::XWindow > mxWindow;
- css::uno::Reference< css::awt::XVclWindowPeer > mxVclPeer;
-
- WindowImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : mpWindow ( pWindow )
- , mpCtx ( pCtx )
- , mxWindow ( xPeer, css::uno::UNO_QUERY )
- , mxVclPeer( xPeer, css::uno::UNO_QUERY )
- {
- }
-
- virtual ~WindowImpl()
- {
- }
-
- void wrapperGone()
- {
- mpWindow = NULL;
- mpCtx = NULL;
- if ( mxWindow.is() )
- {
- css::uno::Reference< css::lang::XComponent > xComp( mxWindow, css::uno::UNO_QUERY );
- mxWindow.clear();
- if ( xComp.is() )
- xComp->dispose();
- }
- }
-
- css::uno::Any getProperty( const char *pName )
- {
- if ( !this || !mxVclPeer.is() )
- return css::uno::Any();
- return mxVclPeer->getProperty
- ( rtl::OUString( pName, strlen( pName ), RTL_TEXTENCODING_ASCII_US ) );
- }
- void setProperty( const char *pName, css::uno::Any aAny )
- {
- if ( !this || !mxVclPeer.is() )
- return;
- mxVclPeer->setProperty
- ( rtl::OUString( pName, strlen( pName ), RTL_TEXTENCODING_ASCII_US ), aAny );
- }
-};
-
-class ControlImpl : public WindowImpl
-{
- public:
- ControlImpl( Context *pCtx, const PeerHandle &xPeer, Window *pWindow )
- : WindowImpl( pCtx, xPeer, pWindow ) {}
-};
-
-inline WindowImpl &Window::getImpl() const
-{ return *(static_cast< WindowImpl * >( mpImpl )); }
-
-// Helpers for defining boiler-plate constructors ...
-// Could in-line in top-level but not with safe static_casts.
-#define DECL_GET_IMPL_IMPL(t) \
- inline t##Impl &t::getImpl() const \
- { \
- return *(static_cast<t##Impl *>(mpImpl)); \
- }
-#define DECL_CONSTRUCTOR_IMPLS(t,par,unoName) \
- t::t( Context *pCtx, const char *pId, sal_uInt32 nId ) \
- : par( new t##Impl( pCtx, pCtx->GetPeerHandle( pId, nId ), this ) ) \
- { \
- } \
- t::t( Window *pParent, WinBits nBits) \
- : par( new t##Impl( pParent->getContext(), Window::CreatePeer( pParent, nBits, unoName ), this ) ) \
- { \
- }
-#define DECL_CONSTRUCTOR_IMPLS_2(t,win_par,other_par,unoName) \
- t::t( Context *pCtx, const char *pId, sal_uInt32 nId ) \
- : win_par( new t##Impl( pCtx, pCtx->GetPeerHandle( pId, nId ), this ) ) \
- , other_par( new other_par##Impl( Window::GetPeer() ) ) \
- { \
- } \
- t::t( Window *pParent, WinBits nBits ) \
- : win_par( new t##Impl( pParent->getContext(), Window::CreatePeer( pParent, nBits, unoName ), this ) ) \
- , other_par( new other_par##Impl( Window::GetPeer() ) ) \
- { \
- }
-
-} // namespace layout
-
-#endif // WRAPPER_HXX
diff --git a/toolkit/src2xml/source/boxer.py b/toolkit/src2xml/source/boxer.py
index c697ec8f1c52..1b716d757299 100644
--- a/toolkit/src2xml/source/boxer.py
+++ b/toolkit/src2xml/source/boxer.py
@@ -9,11 +9,11 @@ class DlgLayoutBuilder(object):
def addWidget (self, elem):
x, y = int(elem.getAttr('x')), int(elem.getAttr('y'))
- if self.rows.has_key(y):
- self.rows[y][x] = elem
- else:
- self.rows[y] = {}
- self.rows[y][x] = elem
+ self.rows[y] = self.rows.get (y, {})
+ while self.rows[y].has_key(x):
+ y += 1
+ self.rows[y] = self.rows.get (y, {})
+ self.rows[y][x] = elem
def build (self):
root = Element('vbox')
@@ -53,6 +53,8 @@ class Boxer(object):
newnode = Element(dlgnode.name)
newnode.clone(dlgnode)
+ if dlgnode.name == 'string':
+ return newnode
newnode.setAttr("xmlns", "http://openoffice.org/2007/layout")
newnode.setAttr("xmlns:cnt", "http://openoffice.org/2007/layout/container")
mx = DlgLayoutBuilder(newnode)
diff --git a/toolkit/src2xml/source/src2xml.py b/toolkit/src2xml/source/src2xml.py
index a2a7714b963d..b03c5e61ede1 100644
--- a/toolkit/src2xml/source/src2xml.py
+++ b/toolkit/src2xml/source/src2xml.py
@@ -127,7 +127,6 @@ def convert (file_name, options):
lexer.includeDirs = options.include_path
lexer.stopOnHeader = options.stopOnHeader
lexer.debugMacro = options.debug_macro
-# lexer.debug = True
if options.debug_lexer:
lexer.debug = True
lexer.tokenize()
@@ -145,8 +144,8 @@ def convert (file_name, options):
if options.debug_parser:
parser.debug = True
root = parser.parse()
- print root.dump()
- return
+ s = root.dump()
+ return s
# Parse the tokens.
root = parser.parse()
@@ -174,13 +173,18 @@ def post_process (s):
"""Make output directly usable by layout module."""
s = re.sub ('(</?)([a-z]+)-([a-z]+)-([a-z]+)', r'\1\2\3\4', s)
s = re.sub ('(</?)([a-z]+)-([a-z]+)', r'\1\2\3', s)
- s = re.sub ('(<(radiobutton|(fixed(info|text)))[^>]*) text=', r'\1 label=', s)
+ s = re.sub ('(<(checkbox|(cancel|help|ignore|ok|push|more|no|radio|reset|retry|yes)button|(fixed(info|text)))[^>]*) text=', r'\1 label=', s)
s = re.sub (' (height|width|x|y)="[0-9]*"', '', s)
+ s = re.sub (' (label|text|title)="', r' _\1="', s)
+ s = re.sub ('&([^m][^p]*[^;]*)', r'&amp;\1', s)
+ s = re.sub (' hide="(TRUE|true|1)"', ' show="false"', s)
s = s.replace ('<modaldialog', '<modaldialog sizeable="true"')
s = s.replace (' rid=', ' id=')
s = s.replace (' border="true"', ' has_border="true"')
- s = s.replace (' def-button="true"', ' default="true"')
+ s = s.replace (' def-button="true"', ' defbutton="true"')
+ s = s.replace (' drop-down="', ' dropdown="')
+ s = s.replace (' tab-stop="', ' tabstop="')
return s
XML_HEADER = '''<?xml version="1.0" encoding="UTF-8"?>
diff --git a/toolkit/uiconfig/layout/delzip b/toolkit/uiconfig/layout/delzip
new file mode 100644
index 000000000000..7b4d68d70fca
--- /dev/null
+++ b/toolkit/uiconfig/layout/delzip
@@ -0,0 +1 @@
+empty \ No newline at end of file
diff --git a/toolkit/uiconfig/layout/makefile.mk b/toolkit/uiconfig/layout/makefile.mk
new file mode 100644
index 000000000000..f0fe9159fc04
--- /dev/null
+++ b/toolkit/uiconfig/layout/makefile.mk
@@ -0,0 +1,62 @@
+#*************************************************************************
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# $RCSfile$
+#
+# $Revision$
+#
+# last change: $Author$ $Date$
+#
+# The Contents of this file are made available subject to
+# the terms of GNU Lesser General Public License Version 2.1.
+#
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2005 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, 5th Floor, Boston,
+# MA 02110-1301 USA
+#
+#*************************************************************************
+
+PRJ=../..
+PRJNAME=toolkit
+TARGET=layout
+
+.INCLUDE : settings.mk
+
+.IF "$(ENABLE_LAYOUT)" == "TRUE"
+
+all: ALLTAR
+
+XML_FILES=\
+ message-box.xml\
+ tab-dialog.xml\
+
+#
+
+.INCLUDE : layout.mk
+
+.ELSE # ENABLE_LAYOUT != TRUE
+all .PHONY:
+.ENDIF # ENABLE_LAYOUT != TRUE
+
+.INCLUDE : target.mk
+
+localize.sdf:
+ echo '#empty' | cat - > $@
+ rm -f *-$@
diff --git a/toolkit/uiconfig/layout/message-box.xml b/toolkit/uiconfig/layout/message-box.xml
new file mode 100644
index 000000000000..61305e443fa3
--- /dev/null
+++ b/toolkit/uiconfig/layout/message-box.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated xml files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<modaldialog xmlns="http://openoffice.org/2007/layout"
+ xmlns:cnt="http://openoffice.org/2007/layout/container"
+ id="message-box" _title="" optimumsize="true"
+ has_border="true" sizeable="true" moveable="true" closeable="true">
+ <vbox border="5" spacing="5">
+ <hbox border="5" spacing="20">
+ <align cnt:expand="false" cnt:fill="true">
+ <fixedimage id="FI_ERROR" cnt:expand="false" cnt:v-align="0.5" cnt:v-fill="0" graphic="res/commandimagelist/msgbox-error.png" />
+ </align>
+ <align cnt:expand="false" cnt:fill="true">
+ <fixedimage id="FI_INFO" cnt:expand="false" cnt:v-align="0.5" cnt:v-fill="0" graphic="res/commandimagelist/msgbox-info.png" />
+ </align>
+ <align cnt:expand="false" cnt:fill="true">
+ <fixedimage id="FI_QUERY" cnt:expand="false" cnt:v-align="0.5" cnt:v-fill="0" graphic="res/commandimagelist/msgbox-query.png" />
+ </align>
+ <align cnt:expand="false" cnt:fill="true">
+ <fixedimage id="FI_WARNING" cnt:expand="false" cnt:v-align="0.5" cnt:v-fill="0" graphic="res/commandimagelist/msgbox-warning.png" />
+ </align>
+ <align cnt:expand="false" cnt:fill="true">
+ <fixedtext id="FT_MESSAGE" _label="FT-LABEL" cnt:v-align="0.5" cnt:v-fill="0" />
+ </align>
+ <flow/>
+ </hbox>
+ <dialogbuttonhbox border="0" spacing="5">
+ <flow/>
+ <!-- deprecoted vcl/MsgBox compatibility !-->
+ <retrybutton id="BTN_RETRY" />
+ <ignorebutton id="BTN_IGNORE" />
+
+ <yesbutton id="BTN_YES"/>
+ <cancelbutton id="BTN_CANCEL"/>
+ <helpbutton id="BTN_HELP"/>
+ <nobutton id="BTN_NO" xlabel="~Alternate"/>
+ </dialogbuttonhbox>
+ </vbox>
+</modaldialog>
diff --git a/toolkit/uiconfig/layout/tab-dialog.xml b/toolkit/uiconfig/layout/tab-dialog.xml
new file mode 100644
index 000000000000..da75f03e9df5
--- /dev/null
+++ b/toolkit/uiconfig/layout/tab-dialog.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<dialog xmlns="http://openoffice.org/2007/layout"
+ xmlns:cnt="http://openoffice.org/2007/layout/container"
+ _title="layout::TabDialog" optimumsize="true"
+ id="tab-dialog"
+ has_border="true" sizeable="true" moveable="true">
+ <vbox spacing="5" border="5">
+ <tabcontrol id="ID_TABCONTROL"/>
+ <dialogbuttonhbox border="5" spacing="5" cnt:expand="false">
+ <flow/>
+ <okbutton defbutton="true" id="BTN_OK" show="false"/>
+ <pushbutton id="BTN_USER" _label="&lt;User&gt;" show="false"/>
+ <cancelbutton id="BTN_CANCEL" show="false"/>
+ <helpbutton id="BTN_HELP" show="false"/>
+ <resetbutton id="BTN_RESET" show="false"/>
+ <pushbutton id="BTN_BASEFMT" _label="&lt;Base Format&gt;" show="false"/>
+ </dialogbuttonhbox>
+ </vbox>
+</dialog>
diff --git a/toolkit/util/makefile.mk b/toolkit/util/makefile.mk
index a52922f2bfe4..d6a1e5f15c65 100644
--- a/toolkit/util/makefile.mk
+++ b/toolkit/util/makefile.mk
@@ -54,17 +54,15 @@ LIB1FILES= $(SLB)$/awt.lib \
$(SLB)$/tree.lib \
$(SLB)$/controls.lib \
$(SLB)$/helper.lib\
- $(SLB)$/layoutcore.lib \
- $(SLB)$/vclcompat.lib
+ $(SLB)$/layout-core.lib \
+ $(SLB)$/layout-vcl.lib
SHL1TARGET= tk$(DLLPOSTFIX)
SHL1IMPLIB= itk
SHL1USE_EXPORTS=name
SHL1STDLIBS=\
- $(VOSLIB) \
$(VCLLIB) \
- $(SOTLIB) \
$(UNOTOOLSLIB) \
$(TOOLSLIB) \
$(COMPHELPERLIB) \
diff --git a/toolkit/util/makefile.pmk b/toolkit/util/makefile.pmk
index 8bb9f5d4bc28..720cb4b913fa 100644
--- a/toolkit/util/makefile.pmk
+++ b/toolkit/util/makefile.pmk
@@ -33,11 +33,8 @@
CDEFS += -DTOOLKIT_DLLIMPLEMENTATION
VISIBILITY_HIDDEN=TRUE
-# FIXME: sprinkle some TOOLKIT_DLLPUBLIC
+CFLAGS+=-I$(PRJ)/source
-CFLAGS+=-I$(PRJ)/inc/layout
.IF "$(ENABLE_LAYOUT)" == "TRUE"
-CFLAGS+=-DENABLE_LAYOUT=1 -DTEST_LAYOUT=1
-.ELSE
-CFLAGS+=-DENABLE_LAYOUT=0
+CFLAGS+=-DTEST_LAYOUT=1
.ENDIF # ENABLE_LAYOUT == TRUE
diff --git a/toolkit/workben/layout/.gitignore b/toolkit/workben/layout/.gitignore
new file mode 100644
index 000000000000..142ba57c1444
--- /dev/null
+++ b/toolkit/workben/layout/.gitignore
@@ -0,0 +1,4 @@
+/de
+/en-US
+/nl
+/ja \ No newline at end of file
diff --git a/toolkit/workben/layout/README b/toolkit/workben/layout/README
new file mode 100644
index 000000000000..3b83bbfc00cd
--- /dev/null
+++ b/toolkit/workben/layout/README
@@ -0,0 +1,43 @@
+Testing workbench and editor for Layout engine.
+
+* Configure using --enable-layout.
+
+* [d]make all
+
+* export OOO_INSTALL_PREFIX=$(pwd)/ooo-layout
+
+* [d]make install DESTDIR=$OOO_INSTALL_PREFIX
+
+* Compile test program in toolkit/workben/layout
+
+ cd toolkit/workben/layout && dmake all
+
+* FIXME: New three layer install/rpath feature needs these workarounds
+|
+| test -d $OOO_INSTALL_PREFIX/openoffice.org3 && export OOO_PREFIX_BRAND=$OOO_INSTALL_PREFIX/openoffice.org3 || export OOO_PREFIX_BRAND=$OOO_INSTALL_PREFIX
+| cp -f ../..$INPATH/lib/libtkx.so $OOO_PREFIX/openoffice.org/basis3.0/program
+| export LD_LIBRARY_PATH=$OOO_PREFIX_BRAND/basis-link/program:$OOO_PREFIX_BRAND/basis-link/ure-link/lib
+|
+| (see source/layout/helper.cxx)
+
+* Run it on any .xml file
+
+ ../../$INPATH/bin/test [--inst $OOO_INSTALL_PREFIX] zoom.xml
+
+* Run it for specific dialogs, see test.cxx
+
+ ../../$INPATH/bin/test [--inst $OOO_INSTALL_PREFIX] --test zoom
+ ../../$INPATH/bin/test [--inst $OOO_INSTALL_PREFIX] --test wordcount
+
+* Or source refresh in workben/layout, do something like
+
+ cd toolkit/workben/layout && . ./refresh [--inst $OOO_INSTALL_PREFIX]
+
+Integration into OOo:
+
+* After instaling, run
+
+ cd ooo-cvs/program
+ ./soffice.bin
+
+ Start a [Writer] document and choose View/Zoom or Extra/Word count.
diff --git a/toolkit/workben/layout/TEST b/toolkit/workben/layout/TEST
new file mode 100755
index 000000000000..8a04a6628da8
--- /dev/null
+++ b/toolkit/workben/layout/TEST
@@ -0,0 +1,11 @@
+#! /bin/sh
+for d in $(cd ../../../../.. && pwd)/ooo-svn /usr/lib/ooo3/; do
+ if test -d $d; then
+ export OOO_INSTALL_PREFIX=$d
+ break
+ fi
+done
+export SAL_ALLOW_LINKOO_SYMLINKS=1
+test -d $OOO_INSTALL_PREFIX/openoffice.org3 && export OOO_PREFIX_BRAND=$OOO_INSTALL_PREFIX/openoffice.org3 || export OOO_PREFIX_BRAND=$OOO_INSTALL_PREFIX
+export LD_LIBRARY_PATH="$OOO_PREFIX_BRAND/basis-link/program:$OOO_PREFIX_BRAND/basis-link/ure-link/lib"
+../../unx*.pro/bin/test "$@"
diff --git a/toolkit/workben/layout/align-test.xml b/toolkit/workben/layout/align-test.xml
new file mode 100644
index 000000000000..60c34b4655a5
--- /dev/null
+++ b/toolkit/workben/layout/align-test.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated xml files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<dialog xmlns="http://openoffice.org/2007/layout"
+ xmlns:cnt="http://openoffice.org/2007/layout/container"
+ title="Align Test" optimumsize="true" has_border="true" sizeable="true" moveable="true">
+ <vbox spacing="5" border="5">
+ <fixedline/>
+ <hbox spacing="0" border="0">
+ <vbox spacing="5" border="5">
+ <fixedline _text="X" cnt:expand="false"/>
+ <pushbutton label="foo"/>
+ <pushbutton label="foo"/>
+ <pushbutton label="foo"/>
+ <pushbutton label="foo"/>
+ <pushbutton label="foo"/>
+ <pushbutton label="foo"/>
+ <pushbutton label="foo"/>
+ </vbox>
+ <vbox spacing="5" border="5">
+ <fixedline _text="X" cnt:expand="false"/>
+ <pushbutton label="bar"/>
+ </vbox>
+ </hbox>
+ <fixedline/>
+ <min-size cnt:spacing="0" min-width="200"/>
+ </vbox>
+</dialog>
diff --git a/toolkit/workben/layout/boxtest.xml b/toolkit/workben/layout/boxtest.xml
index 60b714d7d894..24ead837c057 100644
--- a/toolkit/workben/layout/boxtest.xml
+++ b/toolkit/workben/layout/boxtest.xml
@@ -4,6 +4,8 @@
xmlns:cnt="http://openoffice.org/2007/layout/container"
title="Box Test" optimumsize="true" has_border="true" sizeable="true" moveable="true">
<vbox>
+ <table>
+ <vbox>
<hbox cnt:expand="false" cnt:fill="false">
<pushbutton label="XML Left"
cnt:expand="false" cnt:fill="false"/>
@@ -28,5 +30,7 @@
<pushbutton label="XML Right"
cnt:expand="true" cnt:fill="true"/>
</hbox>
+ </vbox>
+ </table>
</vbox>
</dialog>
diff --git a/toolkit/workben/layout/editor.cxx b/toolkit/workben/layout/editor.cxx
index 0ef31560b69f..dd218de40da7 100644
--- a/toolkit/workben/layout/editor.cxx
+++ b/toolkit/workben/layout/editor.cxx
@@ -32,43 +32,41 @@
#include "editor.hxx"
#undef NDEBUG
+
+/*
#include <assert.h>
#include <stdio.h>
#include <string.h>
+*/
-#include <vector>
+#include <cassert>
+#include <cstdio>
+#include <cstring>
#include <list>
-#include <rtl/strbuf.hxx>
-#include <rtl/ustrbuf.hxx>
-
-using namespace layout::css;
-
-using rtl::OUString;
+#include <vector>
-#include <com/sun/star/awt/XWindow.hpp>
-#include <com/sun/star/awt/XWindowPeer.hpp>
-#include <com/sun/star/awt/XVclWindowPeer.hpp>
+#include <com/sun/star/awt/WindowAttribute.hpp>
#include <com/sun/star/awt/XLayoutConstrains.hpp>
#include <com/sun/star/awt/XLayoutContainer.hpp>
-#include <com/sun/star/awt/WindowAttribute.hpp>
-
#include <com/sun/star/awt/XToolkit.hpp>
+#include <com/sun/star/awt/XVclWindowPeer.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/awt/XWindowPeer.hpp>
+#include <rtl/strbuf.hxx>
+#include <rtl/ustrbuf.hxx>
#include <toolkit/helper/property.hxx>
-
#include <vcl/lstbox.h>
-// FIXME:
-//#define FILEDLG
+using namespace layout::css;
-// somewhat of a hack unfortunately ...
-#include "layout/layoutcore.hxx"
-#include "root.hxx"
-#include "helper.hxx"
+using rtl::OUString;
-//** Utilities
+// FIXME:
+//#define FILEDLG
-#define OUSTRING_CSTR( str ) \
- rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US ).getStr()
+#include <layout/core/helper.hxx>
+#include <layout/core/root.hxx>
+#include <layout/core/helper.hxx>
// TODO: automatically generated
struct WidgetSpec {
@@ -94,19 +92,6 @@ static const WidgetSpec WIDGETS_SPECS[] = {
};
const int WIDGETS_SPECS_LEN = sizeof (WIDGETS_SPECS) / sizeof (WidgetSpec);
-// TEMP: from helper
-namespace layoutimpl {
-
- typedef std::list< std::pair< rtl::OUString, rtl::OUString > > PropList;
-
- css::uno::Reference< css::awt::XLayoutConstrains >
- createWidget( css::uno::Reference< css::awt::XToolkit > xToolkit,
- css::uno::Reference< css::uno::XInterface > xParent,
- const rtl::OUString &rName, long nProps, bool bToplevel );
-
- uno::Any anyFromString (const rtl::OUString &value, const uno::Type &type);
-}
-
using namespace layout;
using namespace layoutimpl;
namespace css = ::com::sun::star;
@@ -136,9 +121,9 @@ static rtl::OUString anyToString (uno::Any value)
bool val = value.get<sal_Bool>();
return rtl::OUString( val ? "1" : "0", 1, RTL_TEXTENCODING_ASCII_US );
/* if ( val )
- return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "true" ) );
- else
- return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "false" ) );*/
+ return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "true" ) );
+ else
+ return rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "false" ) );*/
}
default:
break;
@@ -155,8 +140,9 @@ static inline double anyToDecimal (uno::Any value)
/* XLayoutContainer/XLayoutConstrains are a bit of a hasle to work with.
Let's wrap them. */
-class Widget : public layoutimpl::LayoutWidget {
-friend class EditorRoot;
+class Widget : public layoutimpl::LayoutWidget
+{
+ friend class EditorRoot;
Widget *mpParent;
std::vector< Widget *> maChildren;
@@ -173,7 +159,7 @@ public:
// to be used to wrap the root
Widget( uno::Reference< awt::XLayoutConstrains > xImport, const char *label )
- : mpParent( 0 ), mbForeign( true )
+ : mpParent( 0 ), mbForeign( true )
{
mxWidget = xImport;
mxContainer = uno::Reference< awt::XLayoutContainer >( mxWidget, uno::UNO_QUERY );
@@ -197,17 +183,17 @@ public:
Widget( rtl::OUString id, uno::Reference< awt::XToolkit > xToolkit,
uno::Reference< awt::XLayoutContainer > xParent,
rtl::OUString unoName, long nAttrbs )
- : mpParent( 0 ), mbForeign( false ), mrId( id ),
- mnOriAttrbs( nAttrbs )
+ : mpParent( 0 ), mbForeign( false ), mrId( id ),
+ mnOriAttrbs( nAttrbs )
{
- while ( xParent.is() && !uno::Reference< awt::XWindow >( xParent, uno::UNO_QUERY ).is() )
- {
- uno::Reference< awt::XLayoutContainer > xContainer( xParent, uno::UNO_QUERY );
- assert( xContainer.is() );
- xParent = uno::Reference< awt::XLayoutContainer >( xContainer->getParent(), uno::UNO_QUERY );
- }
+ while ( xParent.is() && !uno::Reference< awt::XWindow >( xParent, uno::UNO_QUERY ).is() )
+ {
+ uno::Reference< awt::XLayoutContainer > xContainer( xParent, uno::UNO_QUERY );
+ assert( xContainer.is() );
+ xParent = uno::Reference< awt::XLayoutContainer >( xContainer->getParent(), uno::UNO_QUERY );
+ }
- mxWidget = layoutimpl::createWidget( xToolkit, xParent, unoName, nAttrbs );
+ mxWidget = WidgetFactory::createWidget( xToolkit, xParent, unoName, nAttrbs );
assert( mxWidget.is() );
mxContainer = uno::Reference< awt::XLayoutContainer >( mxWidget, uno::UNO_QUERY );
@@ -225,14 +211,14 @@ public:
// TODO: disable editing of text fields, check boxes selected, etc...
#if 0
uno::Reference< awt::XVclWindowPeer> xVclPeer( mxWidget, uno::UNO_QUERY )
- if ( xVclPeer.is() ) // XVclWindowPeer ignores missing / incorrect properties
+ if ( xVclPeer.is() ) // XVclWindowPeer ignores missing / incorrect properties
//FIXME: it looks odd on widgets like NumericField seeing text which is deleted
// when you interact with it... We can avoid it for those widgets, by doing a getProp
// of "Text" and check if it is empty or not.
- xVclPeer->setProperty( rtl::OUString::createFromAscii( "Text" ),
- uno::makeAny( rtl::OUString::createFromAscii( "new widget" ) ) );
+ xVclPeer->setProperty( rtl::OUString::createFromAscii( "Text" ),
+ uno::makeAny( rtl::OUString::createFromAscii( "new widget" ) ) );
#endif
// store original properties
@@ -365,9 +351,14 @@ public:
{
beans::Property prop = it.next();
rtl::OUString name( prop.Name );
- rtl::OUString value( pChild->getProperty( name, CONTAINER_PROPERTY ) );
- std::pair< rtl::OUString, rtl::OUString > pair( name, value );
- pChild->maOriChildProps.push_back( pair );
+ try {
+ rtl::OUString value( pChild->getProperty( name, CONTAINER_PROPERTY ) );
+ std::pair< rtl::OUString, rtl::OUString > pair( name, value );
+ pChild->maOriChildProps.push_back( pair );
+ } catch ( beans::UnknownPropertyException &rEx ) {
+ fprintf (stderr, "ERROR: widget reports that it has a property it cannot return: '%s' this normally means that someone screwed up their PROPERTY_SET_INFO macro usage.\n",
+ rtl::OUStringToOString (rEx.Message, RTL_TEXTENCODING_UTF8).getStr());
+ }
}
}
@@ -402,7 +393,7 @@ public:
std::vector< Widget *> aChildChildren = pChild->maChildren;
for ( std::vector< Widget *>::const_iterator it = aChildChildren.begin();
- it != aChildChildren.end(); it++ )
+ it != aChildChildren.end(); it++ )
pChild->removeChild( *it );
for ( std::vector< Widget *>::const_iterator it = aChildChildren.begin();
@@ -410,10 +401,10 @@ public:
if ( !addChild( *it ) )
{ // failure
for ( std::vector< Widget *>::const_iterator jt = aChildChildren.begin();
- jt != it; jt++ )
+ jt != it; jt++ )
removeChild( *jt );
for ( std::vector< Widget *>::const_iterator jt = aChildChildren.begin();
- jt != aChildChildren.end(); jt++ )
+ jt != aChildChildren.end(); jt++ )
pChild->addChild( *jt );
return false;
}
@@ -433,7 +424,7 @@ public:
{
int i = 0;
for ( std::vector< Widget *>::const_iterator it = maChildren.begin();
- it != maChildren.end(); it++, i++ )
+ it != maChildren.end(); it++, i++ )
if ( *it == pChild )
break;
return i;
@@ -507,7 +498,7 @@ public:
case CONTAINER_PROPERTY:
if ( mpParent )
rValue = anyToString( layoutimpl::prophlp::getProperty(
- mpParent->mxContainer->getChildProperties( mxWidget ), rPropName ) );
+ mpParent->mxContainer->getChildProperties( mxWidget ), rPropName ) );
break;
case WINBITS_PROPERTY:
// TODO
@@ -554,7 +545,7 @@ public:
int nPropIt;
PropertyIterator( Widget *pWidget, PropertyKind rKind )
- : mrKind( rKind ), nPropIt( 0 )
+ : mrKind( rKind ), nPropIt( 0 )
{
switch ( rKind )
{
@@ -596,10 +587,10 @@ public:
beans::Property next()
{
/* rtl::OUString propName, propValue;
- propName = maProps[ nPropIt ];
- propValue = getProperty( propName, mrKind, false);
- nPropIt++;
- return std::pair< rtl::OUString, rtl::OUString > propPair( propName, propValue );*/
+ propName = maProps[ nPropIt ];
+ propValue = getProperty( propName, mrKind, false);
+ nPropIt++;
+ return std::pair< rtl::OUString, rtl::OUString > propPair( propName, propValue );*/
return maProps[ nPropIt++ ];
}
};
@@ -611,13 +602,13 @@ class EditorRoot : public layoutimpl::LayoutRoot {
public:
EditorRoot( const uno::Reference< lang::XMultiServiceFactory >& xFactory,
Widget *pParent )
- : layoutimpl::LayoutRoot( xFactory ), mpParent( pParent )
+ : layoutimpl::LayoutRoot( xFactory ), mpParent( pParent )
{
}
// generation
virtual layoutimpl::LayoutWidget *create( rtl::OUString id, const rtl::OUString unoName,
- long attrbs, uno::Reference< awt::XLayoutContainer > xParent )
+ long attrbs, uno::Reference< awt::XLayoutContainer > xParent )
{
if ( unoName.compareToAscii( "dialog" ) == 0 )
return mpParent;
@@ -637,126 +628,126 @@ public:
/* Working with the layout in 1D, as if it was a flat list. */
namespace FlatLayout
{
- Widget *next( Widget *pWidget )
- {
- Widget *pNext;
- pNext = pWidget->down();
- if ( pNext ) return pNext;
- pNext = pWidget->next();
- if ( pNext ) return pNext;
- for ( Widget *pUp = pWidget->up(); pUp != NULL; pUp = pUp->up() )
- if ( (pNext = pUp->next()) != NULL )
- return pNext;
- return NULL;
- }
+Widget *next( Widget *pWidget )
+{
+ Widget *pNext;
+ pNext = pWidget->down();
+ if ( pNext ) return pNext;
+ pNext = pWidget->next();
+ if ( pNext ) return pNext;
+ for ( Widget *pUp = pWidget->up(); pUp != NULL; pUp = pUp->up() )
+ if ( (pNext = pUp->next()) != NULL )
+ return pNext;
+ return NULL;
+}
/*
- Widget *prev( Widget *pWidget )
- {
- Widget *pPrev;
- pPrev = pWidget->prev();
- if ( !pPrev )
- return pWidget->up();
-
- Widget *pBottom = pPrev->down();
- if ( pBottom )
- {
- while ( pBottom->down() || pBottom->next() )
- {
- for ( Widget *pNext = pBottom->next(); pNext; pNext = pNext->next() )
- pBottom = pNext;
- Widget *pDown = pBottom->down();
- if ( pDown )
- pBottom = pDown;
- }
- return pBottom;
- }
- return pPrev;
- }
+ Widget *prev( Widget *pWidget )
+ {
+ Widget *pPrev;
+ pPrev = pWidget->prev();
+ if ( !pPrev )
+ return pWidget->up();
+
+ Widget *pBottom = pPrev->down();
+ if ( pBottom )
+ {
+ while ( pBottom->down() || pBottom->next() )
+ {
+ for ( Widget *pNext = pBottom->next(); pNext; pNext = pNext->next() )
+ pBottom = pNext;
+ Widget *pDown = pBottom->down();
+ if ( pDown )
+ pBottom = pDown;
+ }
+ return pBottom;
+ }
+ return pPrev;
+ }
*/
- bool moveWidget( Widget *pWidget, bool up /*or down*/ )
- {
- // Keep child parent&pos for in case of failure
- Widget *pOriContainer = pWidget->up();
- unsigned int oriChildPos = pOriContainer->getChildPos( pWidget );
-
- // Get parent&sibling before removing it, since relations get cut
- Widget *pSibling = up ? pWidget->prev() : pWidget->next();
- Widget *pContainer = pWidget->up();
- if ( !pContainer )
- return false;
+bool moveWidget( Widget *pWidget, bool up /*or down*/ )
+{
+ // Keep child parent&pos for in case of failure
+ Widget *pOriContainer = pWidget->up();
+ unsigned int oriChildPos = pOriContainer->getChildPos( pWidget );
+
+ // Get parent&sibling before removing it, since relations get cut
+ Widget *pSibling = up ? pWidget->prev() : pWidget->next();
+ Widget *pContainer = pWidget->up();
+ if ( !pContainer )
+ return false;
- // try to swap with parent or child
- // We need to allow for this at least for the root node...
- if ( !pSibling )
+ // try to swap with parent or child
+ // We need to allow for this at least for the root node...
+ if ( !pSibling )
+ {
+ if ( up )
+ {
+ if ( pContainer->swapWithChild( pWidget ) )
+ return true;
+ }
+ else
{
- if ( up )
- {
- if ( pContainer->swapWithChild( pWidget ) )
- return true;
- }
- else
- {
// TODO: this is a nice feature, but we probably want to do it explicitely...
#if 0
- if ( pWidget->down() && pWidget->swapWithChild( pWidget->down() ) )
- return true;
+ if ( pWidget->down() && pWidget->swapWithChild( pWidget->down() ) )
+ return true;
#endif
- }
}
+ }
- pContainer->removeChild( pWidget );
-
- // if has up sibling -- append to it, else swap with it
- if ( pSibling )
- {
- if ( pSibling->addChild( pWidget, up ? 0xffff : 0 ) )
- return true;
+ pContainer->removeChild( pWidget );
- unsigned int childPos = pContainer->getChildPos( pSibling );
- if ( pContainer->addChild( pWidget, childPos + (up ? 0 : 1) ) )
- return true; // should always be succesful
- }
- // go through parents -- try to get prepended to them
- else
- {
- for ( ; pContainer && pContainer->up(); pContainer = pContainer->up() )
- {
- unsigned int childPos = pContainer->up()->getChildPos( pContainer );
- if ( pContainer->up()->addChild( pWidget, childPos + (up ? 0 : 1) ) )
- return true;
- }
- }
+ // if has up sibling -- append to it, else swap with it
+ if ( pSibling )
+ {
+ if ( pSibling->addChild( pWidget, up ? 0xffff : 0 ) )
+ return true;
- // failed -- try to get it to its old position
- if ( !pOriContainer->addChild( pWidget, oriChildPos ) )
+ unsigned int childPos = pContainer->getChildPos( pSibling );
+ if ( pContainer->addChild( pWidget, childPos + (up ? 0 : 1) ) )
+ return true; // should always be succesful
+ }
+ // go through parents -- try to get prepended to them
+ else
+ {
+ for ( ; pContainer && pContainer->up(); pContainer = pContainer->up() )
{
- // a parent should never reject a child back. but if it ever
- // happens, just kill it, we don't run an orphanate here ;P
- delete pWidget;
- return true;
+ unsigned int childPos = pContainer->up()->getChildPos( pContainer );
+ if ( pContainer->up()->addChild( pWidget, childPos + (up ? 0 : 1) ) )
+ return true;
}
- return false;
}
- // NOTE: root is considered to be number -1
- Widget *get( Widget *pRoot, int nb )
+ // failed -- try to get it to its old position
+ if ( !pOriContainer->addChild( pWidget, oriChildPos ) )
{
- Widget *it;
- for ( it = pRoot; it != NULL && nb >= 0; it = next( it ) )
- nb--;
- return it;
+ // a parent should never reject a child back. but if it ever
+ // happens, just kill it, we don't run an orphanate here ;P
+ delete pWidget;
+ return true;
}
+ return false;
+}
- int get( Widget *pRoot, Widget *pWidget )
- {
- int nRet = -1;
- Widget *it;
- for ( it = pRoot; it != NULL && it != pWidget; it = next( it ) )
- nRet++;
- return nRet;
- }
+// NOTE: root is considered to be number -1
+Widget *get( Widget *pRoot, int nb )
+{
+ Widget *it;
+ for ( it = pRoot; it != NULL && nb >= 0; it = next( it ) )
+ nb--;
+ return it;
+}
+
+int get( Widget *pRoot, Widget *pWidget )
+{
+ int nRet = -1;
+ Widget *it;
+ for ( it = pRoot; it != NULL && it != pWidget; it = next( it ) )
+ nRet++;
+ return nRet;
+}
}
//** PropertiesList widget
@@ -774,7 +765,7 @@ class PropertiesList : public layout::Table
DECL_LINK( FlagToggledHdl, layout::CheckBox* );
AnyWidget( Widget *pWidget, rtl::OUString aPropName, Widget::PropertyKind aPropKind )
- : mpWidget( pWidget ), maPropName( aPropName ), maPropKind( aPropKind )
+ : mpWidget( pWidget ), maPropName( aPropName ), maPropKind( aPropKind )
{
mpFlag = 0;
mbBlockFlagCallback = false;
@@ -852,7 +843,7 @@ class PropertiesList : public layout::Table
AnyEdit( Widget *pWidget, rtl::OUString aPropName,
Widget::PropertyKind aPropKind, layout::Window *pWinParent )
- : AnyWidget( pWidget, aPropName, aPropKind ), layout::HBox( 0, false ), mpWinParent( pWinParent )
+ : AnyWidget( pWidget, aPropName, aPropKind ), layout::HBox( 0, false ), mpWinParent( pWinParent )
{
mpEdit = NULL;
mpExpand = new layout::PushButton( pWinParent, WB_TOGGLE );
@@ -880,7 +871,7 @@ class PropertiesList : public layout::Table
if ( mpEdit )
{
text = mpEdit->GetText();
-printf("Remove mpEdit and expand\n");
+ printf("Remove mpEdit and expand\n");
Remove( mpEdit );
Remove( mpExpand );
delete mpEdit;
@@ -974,7 +965,7 @@ printf("Remove mpEdit and expand\n");
{
AnyInteger( Widget *pWidget, rtl::OUString aPropName,
Widget::PropertyKind aPropKind, Window *pWinParent )
- : AnyWidget( pWidget, aPropName, aPropKind ), NumericField( pWinParent, WB_SPIN|WB_BORDER )
+ : AnyWidget( pWidget, aPropName, aPropKind ), NumericField( pWinParent, WB_SPIN|WB_BORDER )
{
load();
SetModifyHdl( LINK( this, AnyInteger, ApplyPropertyHdl ) );
@@ -1003,7 +994,7 @@ printf("Remove mpEdit and expand\n");
{
AnyFloat( Widget *pWidget, rtl::OUString aPropName,
Widget::PropertyKind aPropKind, Window *pWinParent )
- : AnyInteger( pWidget, aPropName, aPropKind, pWinParent )
+ : AnyInteger( pWidget, aPropName, aPropKind, pWinParent )
{}
virtual void store()
@@ -1016,7 +1007,7 @@ printf("Remove mpEdit and expand\n");
{
AnyCheckBox( Widget *pWidget, rtl::OUString aPropName,
Widget::PropertyKind aPropKind, layout::Window *pWinParent )
- : AnyWidget( pWidget, aPropName, aPropKind ), layout::CheckBox( pWinParent )
+ : AnyWidget( pWidget, aPropName, aPropKind ), layout::CheckBox( pWinParent )
{
// adding some whitespaces to make the hit area larger
// SetText( String::CreateFromAscii( "" ) );
@@ -1060,7 +1051,7 @@ printf("Remove mpEdit and expand\n");
{
AnyListBox( Widget *pWidget, rtl::OUString aPropName,
Widget::PropertyKind aPropKind, Window *pWinParent )
- : AnyWidget( pWidget, aPropName, aPropKind ), layout::ListBox( pWinParent, WB_DROPDOWN )
+ : AnyWidget( pWidget, aPropName, aPropKind ), layout::ListBox( pWinParent, WB_DROPDOWN )
{
SetSelectHdl( LINK( this, AnyWidget, ApplyPropertyHdl ) );
}
@@ -1084,7 +1075,7 @@ printf("Remove mpEdit and expand\n");
{
AnyAlign( Widget *pWidget, rtl::OUString aPropName,
Widget::PropertyKind aPropKind, Window *pWinParent )
- : AnyListBox( pWidget, aPropName, aPropKind, pWinParent )
+ : AnyListBox( pWidget, aPropName, aPropKind, pWinParent )
{
InsertEntry( XubString::CreateFromAscii( "Left" ) );
InsertEntry( XubString::CreateFromAscii( "Center" ) );
@@ -1100,7 +1091,7 @@ printf("Remove mpEdit and expand\n");
{
AnyComboBox( Widget *pWidget, rtl::OUString aPropName,
Widget::PropertyKind aPropKind, Window *pWinParent )
- : AnyWidget( pWidget, aPropName, aPropKind ), layout::ComboBox( pWinParent, WB_DROPDOWN )
+ : AnyWidget( pWidget, aPropName, aPropKind ), layout::ComboBox( pWinParent, WB_DROPDOWN )
{
SetModifyHdl( LINK( this, AnyComboBox, ApplyPropertyHdl ) );
}
@@ -1124,7 +1115,7 @@ printf("Remove mpEdit and expand\n");
{
AnyFontStyle( Widget *pWidget, rtl::OUString aPropName,
Widget::PropertyKind aPropKind, Window *pWinParent )
- : AnyComboBox( pWidget, aPropName, aPropKind, pWinParent )
+ : AnyComboBox( pWidget, aPropName, aPropKind, pWinParent )
{
InsertEntry( XubString::CreateFromAscii( "Bold" ) );
InsertEntry( XubString::CreateFromAscii( "Italic" ) );
@@ -1138,71 +1129,71 @@ printf("Remove mpEdit and expand\n");
layout::CheckBox *mpFlag;
AnyWidget *mpValue;
- public:
- PropertyEntry( layout::Window *pWinParent, AnyWidget *pAnyWidget )
+ public:
+ PropertyEntry( layout::Window *pWinParent, AnyWidget *pAnyWidget )
+ {
+ mpLabel = new layout::FixedText( pWinParent );
{
- mpLabel = new layout::FixedText( pWinParent );
- {
- // append ':' to aPropName
- rtl::OUStringBuffer buf( pAnyWidget->maPropName );
- buf.append( sal_Unicode (':') );
- mpLabel->SetText( buf.makeStringAndClear() );
- }
- mpValue = pAnyWidget;
- mpFlag = new layout::CheckBox( pWinParent );
- mpFlag->SetToggleHdl( LINK( mpValue, AnyWidget, FlagToggledHdl ) );
- mpValue->mpFlag = mpFlag;
+ // append ':' to aPropName
+ rtl::OUStringBuffer buf( pAnyWidget->maPropName );
+ buf.append( sal_Unicode (':') );
+ mpLabel->SetText( buf.makeStringAndClear() );
}
+ mpValue = pAnyWidget;
+ mpFlag = new layout::CheckBox( pWinParent );
+ mpFlag->SetToggleHdl( LINK( mpValue, AnyWidget, FlagToggledHdl ) );
+ mpValue->mpFlag = mpFlag;
+ }
- ~PropertyEntry()
- {
+ ~PropertyEntry()
+ {
#if DEBUG_PRINT
fprintf(stderr, "REMOVING label, flag and value\n");
#endif
- delete mpLabel;
- delete mpFlag;
- delete mpValue;
- }
+ delete mpLabel;
+ delete mpFlag;
+ delete mpValue;
+ }
- // Use this factory rather than the constructor -- check for NULL
- static PropertyEntry *construct( Widget *pWidget, rtl::OUString aPropName,
- Widget::PropertyKind aPropKind, sal_uInt16 nType,
- layout::Window *pWinParent )
- {
- AnyWidget *pAnyWidget;
- switch (nType) {
- case uno::TypeClass_STRING:
- if ( aPropName.compareToAscii( "FontStyleName" ) == 0 )
- {
- pAnyWidget = new AnyFontStyle( pWidget, aPropName, aPropKind, pWinParent );
- break;
- }
- pAnyWidget = new AnyEdit( pWidget, aPropName, aPropKind, pWinParent );
- break;
- case uno::TypeClass_SHORT:
- if ( aPropName.compareToAscii( "Align" ) == 0 )
- {
- pAnyWidget = new AnyAlign( pWidget, aPropName, aPropKind, pWinParent );
- break;
- }
- // otherwise, treat as any other number...
- case uno::TypeClass_LONG:
- case uno::TypeClass_UNSIGNED_LONG:
- pAnyWidget = new AnyInteger( pWidget, aPropName, aPropKind, pWinParent );
- break;
- case uno::TypeClass_FLOAT:
- case uno::TypeClass_DOUBLE:
- pAnyWidget = new AnyFloat( pWidget, aPropName, aPropKind, pWinParent );
+ // Use this factory rather than the constructor -- check for NULL
+ static PropertyEntry *construct( Widget *pWidget, rtl::OUString aPropName,
+ Widget::PropertyKind aPropKind, sal_uInt16 nType,
+ layout::Window *pWinParent )
+ {
+ AnyWidget *pAnyWidget;
+ switch (nType) {
+ case uno::TypeClass_STRING:
+ if ( aPropName.compareToAscii( "FontStyleName" ) == 0 )
+ {
+ pAnyWidget = new AnyFontStyle( pWidget, aPropName, aPropKind, pWinParent );
break;
- case uno::TypeClass_BOOLEAN:
- pAnyWidget = new AnyCheckBox( pWidget, aPropName, aPropKind, pWinParent );
+ }
+ pAnyWidget = new AnyEdit( pWidget, aPropName, aPropKind, pWinParent );
+ break;
+ case uno::TypeClass_SHORT:
+ if ( aPropName.compareToAscii( "Align" ) == 0 )
+ {
+ pAnyWidget = new AnyAlign( pWidget, aPropName, aPropKind, pWinParent );
break;
- default:
- return NULL;
- }
- return new PropertyEntry( pWinParent, pAnyWidget );
+ }
+ // otherwise, treat as any other number...
+ case uno::TypeClass_LONG:
+ case uno::TypeClass_UNSIGNED_LONG:
+ pAnyWidget = new AnyInteger( pWidget, aPropName, aPropKind, pWinParent );
+ break;
+ case uno::TypeClass_FLOAT:
+ case uno::TypeClass_DOUBLE:
+ pAnyWidget = new AnyFloat( pWidget, aPropName, aPropKind, pWinParent );
+ break;
+ case uno::TypeClass_BOOLEAN:
+ pAnyWidget = new AnyCheckBox( pWidget, aPropName, aPropKind, pWinParent );
+ break;
+ default:
+ return NULL;
}
- };
+ return new PropertyEntry( pWinParent, pAnyWidget );
+ }
+ };
layout::Window *mpParentWindow;
@@ -1249,12 +1240,12 @@ printf("Remove mpEdit and expand\n");
return true;
} while ( min <= max );
return false;
- }
+ }
public:
PropertiesList( layout::Dialog *dialog )
- : layout::Table( dialog, "properties-box" )
- , mpParentWindow( dialog ), mpSeparator( 0 )
+ : layout::Table( dialog, "properties-box" )
+ , mpParentWindow( dialog ), mpSeparator( 0 )
{
}
@@ -1318,7 +1309,7 @@ public:
Container::Clear();
for ( std::list< PropertyEntry* >::iterator it = maPropertiesList.begin();
- it != maPropertiesList.end(); it++)
+ it != maPropertiesList.end(); it++)
delete *it;
maPropertiesList.clear();
@@ -1378,14 +1369,14 @@ IMPL_LINK( PropertiesList::PropertyEntry::AnyEdit, ExpandEditHdl, layout::PushBu
class SortListBox
{ // For a manual sort ListBox; asks for a ListBox and Up/Down/Remove
// buttons to wrap
-DECL_LINK( ItemSelectedHdl, layout::ListBox* );
-DECL_LINK( UpPressedHdl, layout::Button* );
-DECL_LINK( DownPressedHdl, layout::Button* );
-DECL_LINK( RemovePressedHdl, layout::Button* );
-layout::PushButton *mpUpButton, *mpDownButton, *mpRemoveButton;
+ DECL_LINK( ItemSelectedHdl, layout::ListBox* );
+ DECL_LINK( UpPressedHdl, layout::Button* );
+ DECL_LINK( DownPressedHdl, layout::Button* );
+ DECL_LINK( RemovePressedHdl, layout::Button* );
+ layout::PushButton *mpUpButton, *mpDownButton, *mpRemoveButton;
protected:
-layout::ListBox *mpListBox;
+ layout::ListBox *mpListBox;
virtual void upPressed( USHORT nPos )
{
@@ -1431,8 +1422,8 @@ layout::ListBox *mpListBox;
public:
SortListBox( layout::ListBox *pListBox, layout::PushButton *pUpButton, layout::PushButton *pDownButton,
layout::PushButton *pRemoveButton )
- : mpUpButton( pUpButton), mpDownButton( pDownButton), mpRemoveButton( pRemoveButton ),
- mpListBox( pListBox )
+ : mpUpButton( pUpButton), mpDownButton( pDownButton), mpRemoveButton( pRemoveButton ),
+ mpListBox( pListBox )
{
mpListBox->SetSelectHdl( LINK( this, SortListBox, ItemSelectedHdl ) );
@@ -1516,10 +1507,10 @@ public:
Widget *mpRootWidget;
LayoutTree( layout::Dialog *dialog )
- : SortListBox( new layout::ListBox( dialog, "layout-tree" ),
- new layout::PushButton( dialog, "layout-up-button" ),
- new layout::PushButton( dialog, "layout-down-button" ),
- new layout::PushButton( dialog, "layout-remove-button" ) )
+ : SortListBox( new layout::ListBox( dialog, "layout-tree" ),
+ new layout::PushButton( dialog, "layout-up-button" ),
+ new layout::PushButton( dialog, "layout-down-button" ),
+ new layout::PushButton( dialog, "layout-remove-button" ) )
{
layout::PeerHandle handle = dialog->GetPeerHandle( "preview-box" );
uno::Reference< awt::XLayoutConstrains > xWidget( handle, uno::UNO_QUERY );
@@ -1617,7 +1608,7 @@ public:
for ( int kind = 0; kind < 2; kind++ )
{
Widget::PropertyKind wKind = kind == 0 ? Widget::WINDOW_PROPERTY
- : Widget::CONTAINER_PROPERTY;
+ : Widget::CONTAINER_PROPERTY;
Widget::PropertyIterator it( i, wKind );
while ( it.hasNext() )
{
@@ -1629,16 +1620,16 @@ public:
if ( prop.Type.getTypeClass() == uno::TypeClass_BOOLEAN )
{
if ( value.compareToAscii( "0" ) )
- value = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("false") );
+ value = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("false") );
else
- value = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("true") );
+ value = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("true") );
}
if ( value.getLength() > 0 )
printf("%s%s=\"%s\" ",
- kind == 0 ? "" : "cnt:",
- OUSTRING_CSTR( toXMLNaming( prop.Name ) ), OUSTRING_CSTR( value )
- );
+ kind == 0 ? "" : "cnt:",
+ OUSTRING_CSTR( toXMLNaming( prop.Name ) ), OUSTRING_CSTR( value )
+ );
}
}
@@ -1719,7 +1710,7 @@ class EditorImpl : public LayoutTree::Listener
public:
EditorImpl( layout::Dialog *dialog,
- // we should probable open this channel (or whatever its called) ourselves
+ // we should probable open this channel (or whatever its called) ourselves
uno::Reference< lang::XMultiServiceFactory > xMSF );
virtual ~EditorImpl();
@@ -1754,7 +1745,7 @@ EditorImpl::EditorImpl( layout::Dialog *dialog,
mpLayoutTree->setListener( this );
/* if ( xImport.is() )
- mpLayoutTree->getWidget( -1 )->addChild( new Widget( xImport, "import" ) );*/
+ mpLayoutTree->getWidget( -1 )->addChild( new Widget( xImport, "import" ) );*/
// create buttons
layout::Container aWidgets( dialog, "create-widget" );
@@ -1797,7 +1788,7 @@ EditorImpl::~EditorImpl()
delete mpPropertiesList;
delete mpLayoutTree;
for ( std::list< layout::PushButton * >::const_iterator i = maCreateButtons.begin();
- i != maCreateButtons.end(); i++)
+ i != maCreateButtons.end(); i++)
delete *i;
delete pImportButton;
delete pExportButton;
@@ -1808,14 +1799,14 @@ EditorImpl::~EditorImpl()
void EditorImpl::loadFile( const rtl::OUString &aTestFile )
{
-fprintf( stderr, "TEST: layout instance\n" );
+ fprintf( stderr, "TEST: layout instance\n" );
uno::Reference< awt::XLayoutRoot > xRoot
( new EditorRoot( mxFactory, mpLayoutTree->mpRootWidget ) );
/*
-mxMSF->createInstance
- ( ::rtl::OUString::createFromAscii( "com.sun.star.awt.Layout" ) ),
- uno::UNO_QUERY );
+ mxMSF->createInstance
+ ( ::rtl::OUString::createFromAscii( "com.sun.star.awt.Layout" ) ),
+ uno::UNO_QUERY );
*/
if ( !xRoot.is() )
{
@@ -1877,13 +1868,13 @@ void EditorImpl::widgetSelected( Widget *pWidget )
if ( !pWidget || pWidget->isContainer() )
{
for ( std::list< layout::PushButton *>::const_iterator it = maCreateButtons.begin();
- it != maCreateButtons.end(); it++)
+ it != maCreateButtons.end(); it++)
(*it)->Enable();
}
else
{
for ( std::list< layout::PushButton *>::const_iterator it = maCreateButtons.begin();
- it != maCreateButtons.end(); it++)
+ it != maCreateButtons.end(); it++)
(*it)->Disable();
}
@@ -1894,7 +1885,7 @@ IMPL_LINK( EditorImpl, CreateWidgetHdl, layout::Button *, pBtn )
{
int i = 0;
for ( std::list< layout::PushButton *>::const_iterator it = maCreateButtons.begin();
- it != maCreateButtons.end(); it++, i++ )
+ it != maCreateButtons.end(); it++, i++ )
{
if ( pBtn == *it )
break;
diff --git a/toolkit/workben/layout/empty.xml b/toolkit/workben/layout/empty.xml
new file mode 100644
index 000000000000..a8408e55719e
--- /dev/null
+++ b/toolkit/workben/layout/empty.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated xml files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<dialog xmlns="http://openoffice.org/2007/layout"
+ xmlns:cnt="http://openoffice.org/2007/layout/container"
+ title="Empty Test" optimumsize="true" has_border="true" sizeable="true" moveable="true">
+ <vbox spacing="1" border="10">
+ <min-size min-width="200"/>
+ <fixedline height="1"/>
+ <vbox spacing="10">
+ <vbox show="false"/>
+ <vbox show="false"/>
+ <vbox show="false"/>
+ <vbox show="false"/>
+ <vbox show="false"/>
+ <vbox show="false"/>
+ <vbox show="false"/>
+ <vbox show="false"/>
+ <vbox show="false"/>
+ <vbox show="false"/>
+ </vbox>
+ <fixedline height="1"/>
+ </vbox>
+</dialog>
diff --git a/toolkit/workben/layout/insert-sheet.xml b/toolkit/workben/layout/insert-sheet.xml
new file mode 100644
index 000000000000..2350da9aec77
--- /dev/null
+++ b/toolkit/workben/layout/insert-sheet.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated XML files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<modaldialog sizeable="true" closeable="true" moveable="true" output-size="true" id="RID_SCDLG_INSERT_TABLE" sv-look="true" _title="Insert Sheet" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container">
+ <vbox spacing="5" border="5">
+ <fixedline id="FL_POSITION" _text="Position"/>
+ <hbox>
+ <vbox cnt:padding="13" spacing="5">
+ <radiobutton radiogroup="insert-sheet-position" id="RB_BEFORE" tabstop="true" _label="B~efore current sheet"/>
+ <radiobutton radiogroup="insert-sheet-position" id="RB_BEHIND" tabstop="true" _label="~After current sheet"/>
+ </vbox>
+ </hbox>
+ <fixedline id="FL_TABLE" _text="Sheet"/>
+ <hbox>
+ <vbox cnt:padding="13" spacing="5">
+ <radiobutton radiogroup="insert-sheet-source" id="RB_NEW" _label="~New sheet"/>
+ <hbox>
+ <vbox cnt:padding="13" spacing="5" cnt:fill="false" cnt:expand="false">
+ <fixedtext id="FT_COUNT" _label="N~o. of sheets"/>
+ <fixedtext id="FT_NAME" _label="Na~me"/>
+ </vbox>
+ <vbox>
+ <hbox>
+ <numericfield has_border="true" maximum="256" minimum="1" repeat="true" id="NF_COUNT" spin="true" spin-size="1" tabstop="true" value="1" cnt:fill="true" cnt:expand="false"/>
+ </hbox>
+ <edit has_border="true" id="ED_TABNAME" cnt:fill="true" cnt:expand="true"/>
+ </vbox>
+ </hbox>
+ </vbox>
+ </hbox>
+ <hbox>
+ <vbox cnt:padding="13" spacing="5">
+ <radiobutton radiogroup="insert-sheet-source" id="RB_FROMFILE" _label="~From file"/>
+ <hbox>
+ <vbox cnt:padding="13" spacing="5">
+ <hbox>
+ <multilistbox auto-hscroll="true" has_border="true" id="LB_TABLES" simple-mode="true" string-item-list=" : : : : " cnt:fill="true" cnt:expand="true"/>
+ <vbox cnt:fill="false" cnt:expand="false" spacing="5">
+ <pushbutton id="BTN_BROWSE" _label="~Browse..." cnt:expand="false"/>
+ <checkbox id="CB_LINK" _label="Lin~k" cnt:expand="false"/>
+ <flow/>
+ </vbox>
+ </hbox>
+ <fixedtext id="FT_PATH" label="FT-PATH"/>
+ </vbox>
+ </hbox>
+ </vbox>
+ </hbox>
+ <dialogbuttonhbox border="5" spacing="5">
+ <okbutton defbutton="true" id="BTN_OK"/>
+ <cancelbutton id="BTN_CANCEL"/>
+ <helpbutton id="BTN_HELP"/>
+ </dialogbuttonhbox>
+ </vbox>
+</modaldialog>
diff --git a/toolkit/workben/layout/makefile.mk b/toolkit/workben/layout/makefile.mk
index a7f1a8dfcb97..0741a210d2e3 100644
--- a/toolkit/workben/layout/makefile.mk
+++ b/toolkit/workben/layout/makefile.mk
@@ -40,21 +40,18 @@ ENABLE_EXCEPTIONS=TRUE
.IF "$(ENABLE_LAYOUT)" == "TRUE"
-CFLAGS += -I$(PRJ)/source/layout
-
# Allow zoom and wordcount to be built without depending on svx,sv,sfx2
-CFLAGS += -I../$(PRJ)/svx/inc -I../$(PRJ)/svtools/inc -I../$(PRJ)/sfx2/inc
+CFLAGS += -I../$(PRJ)/svx/inc -I../$(PRJ)/svtools/inc -I../$(PRJ)/sfx2/inc -I../$(PRJ)/sc/inc -I../$(PRJ)/sc/source/ui/inc -I../$(PRJ)/sw/inc
.INCLUDE : $(PRJ)$/util$/makefile.pmk
-CFLAGS += -DENABLE_LAYOUT=1 -DTEST_LAYOUT=1
-
.IF "$(COMNAME)" == "gcc3"
CFLAGS+=-Wall -Wno-non-virtual-dtor
.ENDIF
CXXFILES=\
editor.cxx \
+ plugin.cxx \
recover.cxx \
wordcountdialog.cxx \
test.cxx \
@@ -62,8 +59,11 @@ CXXFILES=\
OBJFILES=\
$(OBJ)$/editor.obj \
+ $(OBJ)$/plugin.obj \
$(OBJ)$/recover.obj \
$(OBJ)$/test.obj \
+ $(OBJ)$/tpsort.obj \
+ $(OBJ)$/sortdlg.obj \
$(OBJ)$/wordcountdialog.obj \
$(OBJ)$/zoom.obj
@@ -77,28 +77,39 @@ APP1STDLIBS= \
$(CPPUHELPERLIB) \
$(SALLIB) \
$(XMLSCRIPTLIB) \
- $(TKLIB)
+ $(TKLIB) \
+ $(SVXLIB) \
+ $(ISCLIB) \
+#
svtools = $(INCCOM)/svtools
-all: $(svtools) ALLTAR
+default: ALLTAR
-.INCLUDE : target.mk
+.INCLUDE : target.mk
XML_FILES=\
+ insert-sheet.xml\
+ message-box.xml\
+ move-copy-sheet.xml\
recover.xml\
+ sort-options.xml\
+ string-input.xml\
+ tab-dialog.xml\
wordcount.xml\
zoom.xml\
TRALAY=$(AUGMENT_LIBRARY_PATH) tralay
XML_LANGS=$(alllangiso)
-#ALL_XMLS=$(foreach,i,$(XML_LANGS) $(foreach,j,$(XML_FILES) $i/$j))
-ALLTAR: $(foreach,i,$(XML_FILES) en-US/$i)
+ALLTAR: localize.sdf $(BIN)/testrc $(svtools) $(foreach,i,$(XML_FILES) en-US/$i)
$(XML_LANGS:f:t"/%.xml ")/%.xml: %.xml
$(TRALAY) -m localize.sdf -o . -l $(XML_LANGS:f:t" -l ") $<
rm -rf en-US
+$(BIN)/%: %.in
+ cp $< $@
+
$(svtools):
# FIXME: there's a bug in svtools layout or usage
# Include files are in svtools/inc, but are referenced as <svtools/..>
@@ -109,14 +120,35 @@ $(svtools):
ln -sf ..$/$(PRJ)$/svtools$/inc $(INCCOM)$/svtools
dist .PHONY :
+ cp -pv message-box.xml $(PRJ)/uiconfig/layout
+ cp -pv tab-dialog.xml $(PRJ)/uiconfig/layout
$(SHELL) ./un-test.sh zoom.cxx > ../$(PRJ)/svx/source/dialog/zoom.cxx
$(SHELL) ./un-test.sh zoom.hxx > ../$(PRJ)/svx/source/dialog/zoom.hxx
touch ../$(PRJ)/svx/source/dialog/dlgfact.cxx
+ cp -pv zoom.xml ../$(PRJ)/svx/uiconfig/layout
$(SHELL) ./un-test.sh wordcountdialog.cxx > ../$(PRJ)/sw/source/ui/dialog/wordcountdialog.cxx
$(SHELL) ./un-test.sh wordcountdialog.hxx > ../$(PRJ)/sw/source/ui/inc/wordcountdialog.hxx
touch ../$(PRJ)/sw/source/ui/dialog/swdlgfact.cxx
-# FIXME: broken setup
+ cp -pv wordcount.xml ../$(PRJ)/sw/uiconfig/layout
+ # FIXME: broken setup
ln -sf ../inc/wordcountdialog.hxx ../$(PRJ)/sw/source/ui/dialog/wordcountdialog.hxx
+ $(SHELL) ./un-test.sh tpsort.cxx > ../$(PRJ)/sc/source/ui/dbgui/tpsort.cxx
+ $(SHELL) ./un-test.sh tpsort.hxx > ../$(PRJ)/sc/source/ui/inc/tpsort.hxx
+ $(SHELL) ./un-test.sh sortdlg.cxx > ../$(PRJ)/sc/source/ui/dbgui/sortdlg.cxx
+ $(SHELL) ./un-test.sh sortdlg.hxx > ../$(PRJ)/sc/source/ui/inc/sortdlg.hxx
+ touch ../$(PRJ)/sc/source/ui/attrdlg/scdlgfact.cxx
+ touch ../$(PRJ)/sc/source/ui/view/cellsh2.cxx
+ cp -pv insert-sheet.xml ../$(PRJ)/sc/uiconfig/layout
+ cp -pv move-copy-sheet.xml ../$(PRJ)/sc/uiconfig/layout
+ cp -pv sort-options.xml ../$(PRJ)/sc/uiconfig/layout
+ cp -pv string-input.xml ../$(PRJ)/sc/uiconfig/layout
+
+localize.sdf: $(PRJ)/../svx/source/dialog/localize.sdf $(PRJ)/../sw/source/ui/dialog/localize.sdf $(PRJ)/../sc/source/ui/src/localize.sdf
+ grep sortdlg.src $(PRJ)/../sc/source/ui/src/localize.sdf | awk -F'\t' '{{printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "layout", "sc\\uiconfig\\layout\\sort-options.xml", $$3, "layout", $$6 "_label", "", "", $$8, "0", $$10, $$11, $$12, "", $$14, $$15}}' | sed -e 's/\(\(FL\|STR\)_[^\t]*\)_label/\1_text/' -e 's/\t_label/\tRID_SCDLG_SORT_title/' > sort-options-$@
+ grep wordcountdialog.src $(PRJ)/../sw/source/ui/dialog/localize.sdf | awk -F'\t' '{{printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "layout", "sw\\uiconfig\\layout\\wordcount.xml", $$3, "layout", $$6 "_label", "", "", $$8, "0", $$10, $$11, $$12, "", $$14, $$15}}' | sed -e 's/\(\(FL\|STR\)_[^\t]*\)_label/\1_text/' -e 's/\t_label/\tDLG_WORDCOUNT_title/' > wordcount-$@
+ grep zoom.src $(PRJ)/source/dialog/localize.sdf | awk -F'\t' '{{printf "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "layout", "svx\\uiconfig\\layout\\zoom.xml", $$3, "layout", $$6 "_label", "", "", $$8, "0", $$10, $$11, $$12, "", $$14, $$15}}' | sed -e 's/\(\(FL\|STR\)_[^\t]*\)_label/\1_text/' -e 's/\t_label/\tRID_SVXDLG_ZOOM_title/' > zoom-$@
+ echo '#empty' | cat - sort-options-$@ wordcount-$@ zoom-$@ > $@
+ rm -f *-$@
.ELSE # ENABLE_LAYOUT != TRUE
all .PHONY:
diff --git a/toolkit/workben/layout/message-box.xml b/toolkit/workben/layout/message-box.xml
new file mode 100644
index 000000000000..61305e443fa3
--- /dev/null
+++ b/toolkit/workben/layout/message-box.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated xml files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<modaldialog xmlns="http://openoffice.org/2007/layout"
+ xmlns:cnt="http://openoffice.org/2007/layout/container"
+ id="message-box" _title="" optimumsize="true"
+ has_border="true" sizeable="true" moveable="true" closeable="true">
+ <vbox border="5" spacing="5">
+ <hbox border="5" spacing="20">
+ <align cnt:expand="false" cnt:fill="true">
+ <fixedimage id="FI_ERROR" cnt:expand="false" cnt:v-align="0.5" cnt:v-fill="0" graphic="res/commandimagelist/msgbox-error.png" />
+ </align>
+ <align cnt:expand="false" cnt:fill="true">
+ <fixedimage id="FI_INFO" cnt:expand="false" cnt:v-align="0.5" cnt:v-fill="0" graphic="res/commandimagelist/msgbox-info.png" />
+ </align>
+ <align cnt:expand="false" cnt:fill="true">
+ <fixedimage id="FI_QUERY" cnt:expand="false" cnt:v-align="0.5" cnt:v-fill="0" graphic="res/commandimagelist/msgbox-query.png" />
+ </align>
+ <align cnt:expand="false" cnt:fill="true">
+ <fixedimage id="FI_WARNING" cnt:expand="false" cnt:v-align="0.5" cnt:v-fill="0" graphic="res/commandimagelist/msgbox-warning.png" />
+ </align>
+ <align cnt:expand="false" cnt:fill="true">
+ <fixedtext id="FT_MESSAGE" _label="FT-LABEL" cnt:v-align="0.5" cnt:v-fill="0" />
+ </align>
+ <flow/>
+ </hbox>
+ <dialogbuttonhbox border="0" spacing="5">
+ <flow/>
+ <!-- deprecoted vcl/MsgBox compatibility !-->
+ <retrybutton id="BTN_RETRY" />
+ <ignorebutton id="BTN_IGNORE" />
+
+ <yesbutton id="BTN_YES"/>
+ <cancelbutton id="BTN_CANCEL"/>
+ <helpbutton id="BTN_HELP"/>
+ <nobutton id="BTN_NO" xlabel="~Alternate"/>
+ </dialogbuttonhbox>
+ </vbox>
+</modaldialog>
diff --git a/toolkit/workben/layout/move-copy-sheet.xml b/toolkit/workben/layout/move-copy-sheet.xml
new file mode 100644
index 000000000000..3d26db1aa73d
--- /dev/null
+++ b/toolkit/workben/layout/move-copy-sheet.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated XML files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<modaldialog sizeable="true" closeable="true" help-id="FID_TAB_MOVE" moveable="true" output-size="true" id="RID_SCDLG_MOVETAB" sv-look="true" _title="Move/Copy Sheet" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container">
+ <vbox spacing="5" border="5">
+ <string id="STR_NEWDOC" _text="- new document -"/>
+ <fixedtext id="FT_DEST" _label="To ~document"/>
+ <listbox has_border="true" dropdown="true" id="LB_DEST" tabstop="true"/>
+ <fixedtext id="FT_INSERT" _label="~Insert before"/>
+ <listbox has_border="true" id="LB_INSERT" tabstop="true" string-item-list=" : : : : " />
+ <checkbox id="BTN_COPY" tabstop="true" _label="~Copy"/>
+ <dialogbuttonhbox border="5" spacing="5">
+ <flow/>
+ <cancelbutton id="BTN_CANCEL" tabstop="true"/>
+ <helpbutton id="BTN_HELP" tabstop="true"/>
+ <okbutton defbutton="true" id="BTN_OK" tabstop="true"/>
+ </dialogbuttonhbox>
+ </vbox>
+</modaldialog>
diff --git a/toolkit/workben/layout/number-format.xml b/toolkit/workben/layout/number-format.xml
new file mode 100644
index 000000000000..6f4c61d01b3e
--- /dev/null
+++ b/toolkit/workben/layout/number-format.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated XML files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<tabpage help-id="HID_NUMBERFORMAT" show="false" id="RID_SVXPAGE_NUMBERFORMAT" _title="Number Format" _text="Number Format" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container" sizeable="true">
+ <!--
+ <imagelist prefix="nu" id="IL_ICON">
+ <maskcolor blue="0xFFFF" green="0x0000" red="0xFFFF" type="Color"/>
+ <idlist none="IID_INFO"/>
+ <idcount none="3"/>
+ </imagelist>
+ <imagelist prefix="nuh" id="IL_ICON_HC">
+ <maskcolor blue="0xFFFF" green="0x0000" red="0xFFFF" type="Color"/>
+ <idlist none="IID_INFO"/>
+ <idcount none="3"/>
+ </imagelist>
+ !-->
+ <vbox spacing="5" border="5">
+ <string id="STR_EUROPE" _text="Europe"/>
+ <string id="STR_AUTO_ENTRY" _text="Automatic"/>
+ <hbox spacing="5">
+ <vbox spacing="5" cnt:fill="true" cnt:expand="true">
+ <fixedtext id="FT_CATEGORY" _label="~Category"/>
+ <listbox line-count="8" auto-hscroll="true" has_border="true" id="LB_CATEGORY" _string-item-list="All:User-defined:Number:Percent:Currency:Date:Time:Scientific:Fraction:Boolean Value:Text"/>
+ <flow/>
+ </vbox>
+ <vbox spacing="5" cnt:fill="true" cnt:expand="true">
+ <fixedtext id="FT_FORMAT" _label="F~ormat"/>
+ <listbox has_border="true" line-count="7" dropdown="true" id="LB_CURRENCY" tabstop="true" _string-item-list="Automatically" cnt:expand="false" cnt:fill="false"/>
+ <svxfontlistbox line-count="7" dropdown="false" has_border="true" help-id="HID_NUMBERFORMAT_LB_FORMAT" id="LB_FORMAT" tabstop="true" string-item-list=" : : : : : : : : : : : : : : : "/>
+ </vbox>
+ <vbox spacing="5" cnt:fill="true" cnt:expand="true">
+ <fixedtext id="FT_LANGUAGE" _label="~Language" cnt:expand="false" cnt:fill="false"/>
+ <svxlanguagebox has_border="true" dropdown="true" id="LB_LANGUAGE" sort="true" string-item-list="Dutch:" cnt:expand="false" cnt:fill="false"/>
+ <checkbox id="CB_SOURCEFORMAT" show="false" _label="So~urce format" cnt:expand="false" cnt:fill="false"/>
+ <flow cnt:expand="true" cnt:fill="true"/>
+ <window has_border="true" help-id="HID_NUMBERFORMAT_WND_NUMBER_PREVIEW" id="WND_NUMBER_PREVIEW" sv-look="true"/>
+ </vbox>
+ </hbox>
+ <fixedline id="FL_OPTIONS" _text="Options"/>
+ <hbox>
+ <vbox cnt:padding="13" spacing="5">
+ <hbox spacing="5">
+ <vbox spacing="5" cnt:fill="false" cnt:expand="false">
+ <fixedtext id="FT_DECIMALS" _label="~Decimal places"/>
+ <fixedtext id="FT_LEADZEROES" _label="Leading ~zeroes"/>
+ </vbox>
+ <vbox spacing="5" cnt:fill="false" cnt:expand="false">
+ <numericfield has_border="true" first="0" last="15" minimum="0" value="2" maximum="20" repeat="true" id="ED_DECIMALS" spin="true" spin-size="1" strict-format="true" cnt:expand="false"/>
+ <numericfield has_border="true" first="0" last="15" minimum="0" value="1" maximum="20" repeat="true" id="ED_LEADZEROES" spin="true" spin-size="1" strict-format="true" cnt:fill="false"/>
+ </vbox>
+ <vbox spacing="5" cnt:fill="false" cnt:expand="false">
+ <checkbox id="BTN_NEGRED" _label="~Negative numbers red"/>
+ <checkbox id="BTN_THOUSAND" _label="~Thousands separator"/>
+ </vbox>
+ </hbox>
+ </vbox>
+ </hbox>
+ <fixedtext id="FT_EDFORMAT" _label="~Format code"/>
+ <hbox spacing="5" cnt:expand="false">
+ <edit has_border="true" id="ED_FORMAT"/>
+ <imagebutton cnt:expand="false" cnt:fill="false" help-id="HID_NUMBERFORMAT_TBI_ADD" quick-help-text="Add" id="IB_ADD" sv-look="true" graphic="svx/res/nu01.png"/>
+ <imagebutton cnt:expand="false" help-id="HID_NUMBERFORMAT_TBI_INFO" quick-help-text="Edit Comment" id="IB_INFO" sv-look="true" graphic="svx/res/nu03.png"/>
+ <imagebutton cnt:expand="false" help-id="HID_NUMBERFORMAT_TBI_REMOVE" quick-help-text="Remove" id="IB_REMOVE" sv-look="true" graphic="svx/res/nu02.png"/>
+ </hbox>
+ <fixedtext no-label="true" show="false" id="FT_COMMENT" word-break="true" cnt:expand="false"/>
+ <edit has_border="true" show="false" id="ED_COMMENT" cnt:expand="false"/>
+ </vbox>
+</tabpage>
diff --git a/toolkit/workben/layout/plugin.cxx b/toolkit/workben/layout/plugin.cxx
new file mode 100644
index 000000000000..28dafc2bba78
--- /dev/null
+++ b/toolkit/workben/layout/plugin.cxx
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile$
+ *
+ * $Revision$
+ *
+ * last change: $Author$ $Date$
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ ************************************************************************/
+
+#define _LAYOUT_PLUGIN_CXX
+
+#include "plugin.hxx"
+
+#include <com/sun/star/awt/XDialog2.hpp>
+#include <dialcontrol.hxx>
+#include <toolkit/awt/vclxwindow.hxx>
+
+#include <layout/layout-pre.hxx>
+
+using namespace com::sun::star;
+
+#define LAYOUT_RES(x) #x
+
+#undef ModalDialog
+#define ModalDialog( parent, id ) Dialog( parent, "plugin.xml", id )
+
+PluginDialog::PluginDialog( Window* pParent )
+ : ModalDialog( pParent, LAYOUT_RES( RID_DLG_PLUGIN ) )
+ , aHeaderImage( this, LAYOUT_RES( FI_HEADER ) )
+ , aHeaderText( this, LAYOUT_RES( FT_HEADER ) )
+ , aHeaderLine( this, LAYOUT_RES( FL_HEADER ) )
+ , aPlugin( this, LAYOUT_RES( PL_DIAL ),
+// FIXME: width=, height=, are not recognized as properties.
+// new svx::DialControl( LAYOUT_DIALOG_PARENT, Size( 0, 0 ), 0 ) )
+ new svx::DialControl( LAYOUT_DIALOG_PARENT, Size( 80, 80 ), 0 ) )
+ //, aDialControl( static_cast<svx::DialControl&> ( aPlugin.GetPlugin() ) )
+ , aDialControl( static_cast<svx::DialControl&> ( *aPlugin.mpPlugin ) )
+ , aOKBtn( this, LAYOUT_RES( BTN_OK ) )
+ , aCancelBtn( this, LAYOUT_RES( BTN_CANCEL ) )
+ , aHelpBtn( this, LAYOUT_RES( BTN_HELP ) )
+{
+ aDialControl.SetRotation( 425 );
+}
+
+PluginDialog::~PluginDialog()
+{
+}
diff --git a/canvas/source/cairo/postx.h b/toolkit/workben/layout/plugin.hxx
index ca8f610f78ec..4fe8edf36dc9 100644
--- a/canvas/source/cairo/postx.h
+++ b/toolkit/workben/layout/plugin.hxx
@@ -2,11 +2,11 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: postx.h,v $
+ * $RCSfile$
*
- * $Revision: 1.4 $
+ * $Revision$
*
- * last change: $Author: kz $ $Date: 2008-06-30 12:59:14 $
+ * last change: $Author$ $Date$
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -32,50 +32,34 @@
* MA 02111-1307 USA
*
************************************************************************/
+#ifndef _LAYOUT_PLUGIN_HXX
+#define _LAYOUT_PLUGIN_HXX
-#ifndef _POSTX_H
-#define _POSTX_H
+#include <layout/layout.hxx>
+#include <layout/layout-pre.hxx>
-#if defined __cplusplus
+namespace svx {
+class DialControl;
}
-#endif
-/* X-Types */
-#undef Window
-#undef BYTE
-#undef INT8
-#undef INT64
-#undef BOOL
-#undef Font
-#undef Cursor
-#undef String
-#undef KeyCode
-#undef Region
-#undef Icon
-#undef Time
-#undef Boolean
+class PluginDialog : public ModalDialog
+{
+private:
+ FixedImage aHeaderImage;
+ FixedText aHeaderText;
+ FixedLine aHeaderLine;
+ Plugin aPlugin;
+ svx::DialControl& aDialControl;
+ OKButton aOKBtn;
+ CancelButton aCancelBtn;
+ HelpButton aHelpBtn;
-#undef Min
-#undef Max
-#undef DestroyAll
-#undef Success
+public:
+ PluginDialog( Window* pParent );
+ ~PluginDialog();
+};
-#undef Printer
-/* #undef FontInfo */
-#undef Orientation
+#include <layout/layout-post.hxx>
-#undef GetToken
-#undef ReleaseToken
-#undef InitializeToken
-#undef NextRequest
-
-#ifdef KeyPress
-#if KeyPress != 2
-Error KeyPress must be Equal 2
-#endif
-#undef KeyPress
-#endif
-#define XLIB_KeyPress 2
-
-#endif
+#endif /* _LAYOUT_PLUGIN_HXX */
diff --git a/toolkit/workben/layout/plugin.xml b/toolkit/workben/layout/plugin.xml
new file mode 100644
index 000000000000..c5f1b2abe040
--- /dev/null
+++ b/toolkit/workben/layout/plugin.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated xml files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<modaldialog xmlns="http://openoffice.org/2007/layout"
+ xmlns:cnt="http://openoffice.org/2007/layout/container"
+ id="RID_DLG_PLUGIN" _title="Plugin Test" optimumsize="true"
+ help-id="SID_ATTR_PLUGIN"
+ has_border="true" sizeable="true" moveable="true">
+ <vbox spacing="5" border="5">
+ <hbox spacing="5" cnt:expand="false">
+ <fixedimage id="FI_HEADER" cnt:expand="false" graphic="res/commandimagelist/sc_apply.png" />
+ <fixedtext id="FT_HEADER" _label="Plugin Test"/>
+ </hbox>
+ <fixedline id="FL_HEADER"/>
+ <hbox>
+ <flow cnt:padding="80"/>
+ <plugin id="PL_DIAL" width="80" height="80"/>
+ </hbox>
+ <dialogbuttonhbox border="5" spacing="5">
+ <flow/>
+ <okbutton defbutton="true" id="BTN_OK"/>
+ <cancelbutton id="BTN_CANCEL" />
+ <helpbutton id="BTN_HELP"/>
+ </dialogbuttonhbox>
+ </vbox>
+</modaldialog>
+
diff --git a/toolkit/workben/layout/recover.cxx b/toolkit/workben/layout/recover.cxx
index d5bd542b36ac..c9a826688dc9 100644
--- a/toolkit/workben/layout/recover.cxx
+++ b/toolkit/workben/layout/recover.cxx
@@ -55,6 +55,13 @@ using namespace com::sun::star;
#include <layout/layout-pre.hxx>
+#if ENABLE_LAYOUT
+#undef SVX_RES
+#define SVX_RES(x) #x
+#undef SfxModalDialog
+#define SfxModalDialog( parent, id ) Dialog( parent, "recover.xml", id )
+#endif /* ENABLE_LAYOUT */
+
#if TEST_LAYOUT
SvxRecoverDialog::SvxRecoverDialog( Window* pParent )
#else /* !TEST_LAYOUT */
diff --git a/toolkit/workben/layout/recover.hxx b/toolkit/workben/layout/recover.hxx
index dabaa863e511..0d0eee278e6b 100644
--- a/toolkit/workben/layout/recover.hxx
+++ b/toolkit/workben/layout/recover.hxx
@@ -35,7 +35,7 @@
#include <vcl/button.hxx>
#include <vcl/field.hxx>
#include <vcl/fixed.hxx>
-#include <box.hxx>
+#include <layout/core/box.hxx>
#include <layout/layout-pre.hxx>
class SvxRecoverDialog : public SfxModalDialog
diff --git a/toolkit/workben/layout/recover.xml b/toolkit/workben/layout/recover.xml
index a065c7d9243b..b7387b687de2 100644
--- a/toolkit/workben/layout/recover.xml
+++ b/toolkit/workben/layout/recover.xml
@@ -58,7 +58,7 @@ LINE TEST"/>
<checkbox id="CH_LOGFILE" _label="Open additional text document to display the restore logfile"/>
<dialogbuttonhbox border="5" spacing="5">
<flow/>
- <okbutton id="BTN_OK" _label="Restore"/>
+ <okbutton defbutton="true" id="BTN_OK" _label="Restore"/>
<cancelbutton id="BTN_CANCEL" />
<helpbutton id="BTN_HELP"/>
</dialogbuttonhbox>
diff --git a/toolkit/workben/layout/refresh b/toolkit/workben/layout/refresh
index de2652ce2810..796999549c36 100644
--- a/toolkit/workben/layout/refresh
+++ b/toolkit/workben/layout/refresh
@@ -1,3 +1,7 @@
echo "source me ..."
test -n "${INPATH}" && rm -Rf ../../${INPATH}
-build debug=true && cp ../../${INPATH}/lib/*.so ../../../solver/680/${INPATH}/lib && dmake debug=true && ../../${INPATH}/bin/test "$@"
+build debug=true\
+ && cp ../../${INPATH}/lib/*.so ../../../solver/300/${INPATH}/lib \
+ && cp -f ../..$INPATH/lib/libtkx.so $OOO_INSTALL_PREFIX/openoffice.org/basis3.0/program \
+ && dmake debug=true \
+ && ../../${INPATH}/bin/test "$@"
diff --git a/toolkit/workben/layout/simple-paragraph.cxx b/toolkit/workben/layout/simple-paragraph.cxx
index a7e60f83d3fa..c3f54a35f963 100644
--- a/toolkit/workben/layout/simple-paragraph.cxx
+++ b/toolkit/workben/layout/simple-paragraph.cxx
@@ -37,12 +37,12 @@
// include ---------------------------------------------------------------
-#include <stdio.h>
+#include <cstdio>
#include <tools/shl.hxx>
#include <sfx2/objsh.hxx>
#include <vcl/msgbox.hxx>
-#include <stdio.h>
+#include <cstdio>
namespace SVX {
#include <svx/paraprev.hxx> // Preview
diff --git a/toolkit/workben/layout/sort-options.xml b/toolkit/workben/layout/sort-options.xml
new file mode 100644
index 000000000000..a409ac2d530a
--- /dev/null
+++ b/toolkit/workben/layout/sort-options.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated XML files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<tabpage help-id="HID_SCPAGE_SORT_OPTIONS"
+ id="RID_SCPAGE_SORT_OPTIONS"
+ sv-look="true" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container"
+ optimumsize="true"
+ sizeable="true" moveable="true">
+ <vbox spacing="4" border="5">
+ <string id="STR_COL_LABEL" _text="Range contains column la~bels"/>
+ <string id="STR_ROW_LABEL" _text="Range contains ~row labels"/>
+ <string id="SCSTR_UNDEFINED" _text="- undefined -"/>
+ <vbox spacing="4" border="5">
+ <checkbox id="BTN_CASESENSITIVE" tabstop="true" _label="Case ~sensitive"/>
+ <checkbox id="BTN_LABEL" tabstop="true"/>
+ <checkbox id="BTN_FORMATS" tabstop="true" _label="Include ~formats"/>
+ <checkbox id="BTN_NATURALSORT" tabstop="true" _label="Enable ~natural sort"/>
+ <checkbox id="BTN_COPYRESULT" tabstop="true" _label="~Copy sort results to:"/>
+ <hbox>
+ <listbox has_border="true" dropdown="true" id="LB_OUTAREA" tabstop="true"/>
+ <edit has_border="true" disable="true" id="ED_OUTAREA" tabstop="true"/>
+ </hbox>
+ <checkbox id="BTN_SORT_USER" tabstop="true" _label="Custom sort ~order"/>
+ <listbox has_border="true" disable="true" dropdown="true" id="LB_SORT_USER" tabstop="true"/>
+ <hbox>
+ <fixedtext id="FT_LANGUAGE" _label="~Language"/>
+ <fixedtext id="FT_ALGORITHM" _label="O~ptions"/>
+ </hbox>
+ <hbox>
+ <svxlanguagebox has_border="true" dropdown="true" id="LB_LANGUAGE" sort="true" tabstop="true" _string-item-list="Default"/>
+ <listbox has_border="true" dropdown="true" id="LB_ALGORITHM" tabstop="true"/>
+ </hbox>
+ <fixedline id="FL_DIRECTION" _text="Direction"/>
+ <radiobutton id="BTN_TOP_DOWN" radiogroup="sort-options" tabstop="true" _label="~Top to bottom (sort rows)"/>
+ <radiobutton id="BTN_LEFT_RIGHT" radiogroup="sort-options" tabstop="true" _label="L~eft to right (sort columns)"/>
+ </vbox>
+ </vbox>
+</tabpage>
diff --git a/toolkit/workben/layout/sortdlg.cxx b/toolkit/workben/layout/sortdlg.cxx
new file mode 100644
index 000000000000..9666e5a39124
--- /dev/null
+++ b/toolkit/workben/layout/sortdlg.cxx
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: sortdlg.cxx,v $
+ * $Revision: 1.6 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#if !TEST_LAYOUT
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sc.hxx"
+#endif /*! TEST_LAYOUT */
+
+#undef SC_DLLIMPLEMENTATION
+
+
+
+#include "tpsort.hxx"
+#include "sortdlg.hxx"
+#include "scresid.hxx"
+#include "sortdlg.hrc"
+
+#if !LAYOUT_SFX_TABDIALOG_BROKEN
+#include <layout/layout-pre.hxx>
+#endif
+
+ScSortDlg::ScSortDlg( Window* pParent,
+ const SfxItemSet* pArgSet ) :
+ SfxTabDialog( pParent,
+ ScResId( RID_SCDLG_SORT ),
+ pArgSet ),
+ bIsHeaders ( FALSE ),
+ bIsByRows ( FALSE )
+
+{
+#if LAYOUT_SFX_TABDIALOG_BROKEN
+ AddTabPage( TP_FIELDS, ScTabPageSortFields::Create, 0 );
+ AddTabPage( TP_OPTIONS, ScTabPageSortOptions::Create, 0 );
+#else /* !LAYOUT_SFX_TABDIALOG_BROKEN */
+ String fields = rtl::OUString::createFromAscii ("fields");
+ AddTabPage( TP_FIELDS, fields, ScTabPageSortFields::Create, 0, FALSE, TAB_APPEND);
+ String options = rtl::OUString::createFromAscii ("options");
+ AddTabPage( TP_OPTIONS, options, ScTabPageSortOptions::Create, 0, FALSE, TAB_APPEND);
+#endif /* !LAYOUT_SFX_TABDIALOG_BROKEN */
+ FreeResource();
+}
+
+__EXPORT ScSortDlg::~ScSortDlg()
+{
+}
+
diff --git a/toolkit/workben/layout/sortdlg.hrc b/toolkit/workben/layout/sortdlg.hrc
new file mode 100644
index 000000000000..4bf07ad3f59a
--- /dev/null
+++ b/toolkit/workben/layout/sortdlg.hrc
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: sortdlg.hrc,v $
+ *
+ * $Revision: 1.4 $
+ *
+ * last change: $Author: rt $ $Date: 2005/09/08 21:51:32 $
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ ************************************************************************/
+
+
+#include "sc.hrc" // -> RID_SCDLG_SORT
+ // -> RID_SCPAGE_SORT_FIELDS
+ // -> RID_SCPAGE_SORT_OPTIONS
+ // -> SCSTR_NONAME
+ // -> SCSTR_UNDEFINED
+ // -> SCSTR_FIELD
+
+/*
+#define RID_SCDLG_SORT 256
+#define RID_SCPAGE_SORT_FIELDS 257
+#define RID_SCPAGE_SORT_OPTIONS 258
+*/
+
+#define TP_FIELDS 1
+#define TP_OPTIONS 2
+
+// TP_SORT_FIELDS:
+#define FL_SORT1 1
+#define FL_SORT2 2
+#define FL_SORT3 3
+#define LB_SORT1 4
+#define LB_SORT2 5
+#define LB_SORT3 6
+#define BTN_UP1 7
+#define BTN_UP2 8
+#define BTN_UP3 9
+#define BTN_DOWN1 10
+#define BTN_DOWN2 11
+#define BTN_DOWN3 12
+
+// TP_SORT_OPTIONS:
+#define FL_DIRECTION 1
+#define LB_SORT_USER 2
+#define LB_OUTAREA 3
+#define ED_OUTAREA 4
+//#define FT_AREA_LABEL 5
+//#define FT_AREA 6
+#define BTN_SORT_USER 7
+#define BTN_CASESENSITIVE 8
+#define BTN_LABEL 9
+#define BTN_FORMATS 10
+#define BTN_COPYRESULT 11
+#define BTN_TOP_DOWN 12
+#define BTN_LEFT_RIGHT 13
+#define STR_COL_LABEL 14
+#define STR_ROW_LABEL 15
+#define FT_LANGUAGE 16
+#define LB_LANGUAGE 17
+#define FT_ALGORITHM 18
+#define LB_ALGORITHM 19
+#define BTN_NATURALSORT 20
+
+
+
+
diff --git a/toolkit/workben/layout/sortdlg.hxx b/toolkit/workben/layout/sortdlg.hxx
new file mode 100644
index 000000000000..2be123f091ab
--- /dev/null
+++ b/toolkit/workben/layout/sortdlg.hxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: sortdlg.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 SC_SORTDLG_HXX
+#define SC_SORTDLG_HXX
+
+#include <sfx2/tabdlg.hxx>
+
+#if TEST_LAYOUT
+#define LAYOUT_SFX_TABDIALOG_BROKEN 0
+#else /* !TEST_LAYOUT */
+#ifndef LAYOUT_SFX_TABDIALOG_BROKEN
+#define LAYOUT_SFX_TABDIALOG_BROKEN 1
+#endif /* !LAYOUT_SFX_TABDIALOG_BROKEN */
+#endif /* !TEST_LAYOUT */
+
+#if !LAYOUT_SFX_TABDIALOG_BROKEN
+#include <sfx2/layout.hxx>
+#include <layout/layout-pre.hxx>
+#endif
+
+class ScSortDlg : public SfxTabDialog
+{
+public:
+ ScSortDlg( Window* pParent,
+ const SfxItemSet* pArgSet );
+ ~ScSortDlg();
+
+ void SetHeaders( BOOL bHeaders );
+ void SetByRows ( BOOL bByRows );
+ BOOL GetHeaders() const;
+ BOOL GetByRows () const;
+
+
+private:
+ BOOL bIsHeaders;
+ BOOL bIsByRows;
+};
+
+inline void ScSortDlg::SetHeaders( BOOL bHeaders ) { bIsHeaders = bHeaders; }
+inline void ScSortDlg::SetByRows ( BOOL bByRows ) { bIsByRows = bByRows; }
+inline BOOL ScSortDlg::GetHeaders() const { return bIsHeaders; }
+inline BOOL ScSortDlg::GetByRows () const { return bIsByRows; }
+
+#if !LAYOUT_SFX_TABDIALOG_BROKEN
+#include <layout/layout-post.hxx>
+#endif
+
+#endif // SC_SORTDLG_HXX
diff --git a/toolkit/workben/layout/sortdlg.src b/toolkit/workben/layout/sortdlg.src
new file mode 100644
index 000000000000..06453e54fd29
--- /dev/null
+++ b/toolkit/workben/layout/sortdlg.src
@@ -0,0 +1,325 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: sortdlg.src,v $
+ *
+ * $Revision: 1.41 $
+ *
+ * last change: $Author: ihi $ $Date: 2007/04/19 16:48:19 $
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ ************************************************************************/
+#include "sortdlg.hrc"
+TabPage RID_SCPAGE_SORT_FIELDS
+{
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ HelpId = HID_SCPAGE_SORT_FIELDS ;
+ Size = MAP_APPFONT ( 260 , 185 ) ;
+ ListBox LB_SORT1
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 19 ) ;
+ Size = MAP_APPFONT ( 154 , 90 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ };
+ RadioButton BTN_UP1
+ {
+ Pos = MAP_APPFONT ( 172 , 14 ) ;
+ Size = MAP_APPFONT ( 79 , 10 ) ;
+ Text [ en-US ] = "~Ascending" ;
+ TabStop = TRUE ;
+ };
+ RadioButton BTN_DOWN1
+ {
+ Pos = MAP_APPFONT ( 172 , 28 ) ;
+ Size = MAP_APPFONT ( 79 , 10 ) ;
+ Text [ en-US ] = "~Descending" ;
+ TabStop = TRUE ;
+ };
+ FixedLine FL_SORT1
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 248 , 8 ) ;
+ Text [ en-US ] = "Sort ~by" ;
+ };
+ ListBox LB_SORT2
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 60 ) ;
+ Size = MAP_APPFONT ( 154 , 90 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ };
+ RadioButton BTN_UP2
+ {
+ Pos = MAP_APPFONT ( 172 , 55 ) ;
+ Size = MAP_APPFONT ( 79 , 10 ) ;
+ Text [ en-US ] = "A~scending" ;
+ TabStop = TRUE ;
+ };
+ RadioButton BTN_DOWN2
+ {
+ Pos = MAP_APPFONT ( 172 , 69 ) ;
+ Size = MAP_APPFONT ( 79 , 10 ) ;
+ Text [ en-US ] = "D~escending" ;
+ TabStop = TRUE ;
+ };
+ FixedLine FL_SORT2
+ {
+ Pos = MAP_APPFONT ( 6 , 44 ) ;
+ Size = MAP_APPFONT ( 248 , 8 ) ;
+ Text [ en-US ] = "Then b~y" ;
+ };
+ ListBox LB_SORT3
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 101 ) ;
+ Size = MAP_APPFONT ( 154 , 90 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ };
+ RadioButton BTN_UP3
+ {
+ Pos = MAP_APPFONT ( 172 , 96 ) ;
+ Size = MAP_APPFONT ( 79 , 10 ) ;
+ Text [ en-US ] = "As~cending" ;
+ TabStop = TRUE ;
+ };
+ RadioButton BTN_DOWN3
+ {
+ Pos = MAP_APPFONT ( 172 , 110 ) ;
+ Size = MAP_APPFONT ( 79 , 10 ) ;
+ Text [ en-US ] = "Desce~nding" ;
+ TabStop = TRUE ;
+ };
+ FixedLine FL_SORT3
+ {
+ Pos = MAP_APPFONT ( 6 , 85 ) ;
+ Size = MAP_APPFONT ( 248 , 8 ) ;
+ Text [ en-US ] = "T~hen by" ;
+ };
+};
+TabPage RID_SCPAGE_SORT_OPTIONS
+{
+ Hide = TRUE ;
+ SVLook = TRUE ;
+ HelpId = HID_SCPAGE_SORT_OPTIONS ;
+ Pos = MAP_APPFONT ( 0 , 0 ) ;
+ Size = MAP_APPFONT ( 260 , 185 ) ;
+ CheckBox BTN_CASESENSITIVE
+ {
+ Pos = MAP_APPFONT ( 12 , 6 ) ;
+ Size = MAP_APPFONT ( 242 , 10 ) ;
+ Text [ en-US ] = "Case ~sensitive" ;
+ TabStop = TRUE ;
+ };
+ CheckBox BTN_LABEL
+ {
+ Pos = MAP_APPFONT ( 12 , 20 ) ;
+ Size = MAP_APPFONT ( 242 , 10 ) ;
+ TabStop = TRUE ;
+ };
+ String STR_COL_LABEL
+ {
+ Text [ en-US ] = "Range contains column la~bels" ;
+ };
+ String STR_ROW_LABEL
+ {
+ Text [ en-US ] = "Range contains ~row labels" ;
+ };
+ CheckBox BTN_FORMATS
+ {
+ Pos = MAP_APPFONT ( 12 , 34 ) ;
+ Size = MAP_APPFONT ( 242 , 10 ) ;
+ Text [ en-US ] = "Include ~formats" ;
+ TabStop = TRUE ;
+ };
+ CheckBox BTN_NATURALSORT
+ {
+ Pos = MAP_APPFONT ( 12 , 48 ) ;
+ Size = MAP_APPFONT ( 242 , 10 ) ;
+ Text [ de ] = "Enable ~natural sort" ;
+ Text [ en-US ] = "Enable ~natural sort" ;
+ Text [ cs ] = "Aktivovat přirozené třídění" ;
+ Text [ sk ] = "Aktivovať prirodzené triedenie" ;
+ TabStop = TRUE ;
+ Text [ x-comment ] = " " ;
+ };
+ CheckBox BTN_COPYRESULT
+ {
+ Pos = MAP_APPFONT ( 12 , 62 ) ;
+ Size = MAP_APPFONT ( 242 , 10 ) ;
+ Text [ en-US ] = "~Copy sort results to:" ;
+ TabStop = TRUE ;
+ };
+ ListBox LB_OUTAREA
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 20 , 73 ) ;
+ Size = MAP_APPFONT ( 93 , 90 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ };
+ Edit ED_OUTAREA
+ {
+ Disable = TRUE ;
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 119 , 73 ) ;
+ Size = MAP_APPFONT ( 132 , 12 ) ;
+ TabStop = TRUE ;
+ };
+ CheckBox BTN_SORT_USER
+ {
+ Pos = MAP_APPFONT ( 12 , 89 ) ;
+ Size = MAP_APPFONT ( 242 , 10 ) ;
+ Text [ en-US ] = "Custom sort ~order" ;
+ TabStop = TRUE ;
+ };
+ ListBox LB_SORT_USER
+ {
+ Disable = TRUE ;
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 20 , 100 ) ;
+ Size = MAP_APPFONT ( 231 , 90 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ };
+ FixedText FT_LANGUAGE
+ {
+ Pos = MAP_APPFONT ( 12 , 118 ) ;
+ Size = MAP_APPFONT ( 101 , 8 ) ;
+ Text [ en-US ] = "~Language";
+ };
+ ListBox LB_LANGUAGE
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 129 ) ;
+ Size = MAP_APPFONT ( 101 , 90 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ Sort = TRUE ;
+ };
+ FixedText FT_ALGORITHM
+ {
+ Pos = MAP_APPFONT ( 119 , 118 ) ;
+ Size = MAP_APPFONT ( 132 , 8 ) ;
+ Text [ en-US ] = "O~ptions";
+ };
+ ListBox LB_ALGORITHM
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 119 , 129 ) ;
+ Size = MAP_APPFONT ( 132 , 90 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ };
+ FixedLine FL_DIRECTION
+ {
+ Pos = MAP_APPFONT ( 6 , 147 ) ;
+ Size = MAP_APPFONT ( 248 , 8 ) ;
+ Text [ en-US ] = "Direction" ;
+ };
+ RadioButton BTN_TOP_DOWN
+ {
+ Pos = MAP_APPFONT ( 12 , 158 ) ;
+ Size = MAP_APPFONT ( 242 , 10 ) ;
+ Text [ en-US ] = "~Top to bottom (sort rows)" ;
+ TabStop = TRUE ;
+ };
+ RadioButton BTN_LEFT_RIGHT
+ {
+ Pos = MAP_APPFONT ( 12 , 172 ) ;
+ Size = MAP_APPFONT ( 242 , 10 ) ;
+ Text [ en-US ] = "L~eft to right (sort columns)" ;
+ TabStop = TRUE ;
+ };
+/*
+ FixedText FT_AREA_LABEL
+ {
+ Pos = MAP_APPFONT ( 6 , 171 ) ;
+ Size = MAP_APPFONT ( 248 , 8 ) ;
+ Text [ en-US ] = "Data area:" ;
+ };
+*/
+};
+TabDialog RID_SCDLG_SORT
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 220 , 175 ) ;
+ Text [ en-US ] = "Sort" ;
+ Moveable = TRUE ;
+ Closeable = FALSE ;
+ TabControl 1
+ {
+ OutputSize = TRUE ;
+ Pos = MAP_APPFONT ( 0 , 0 ) ;
+ Size = MAP_APPFONT ( 210 , 170 ) ;
+ PageList =
+ {
+ PageItem
+ {
+ Identifier = TP_FIELDS ;
+ PageResID = TP_FIELDS ;
+ Text [ en-US ] = "Sort Criteria" ;
+ };
+ PageItem
+ {
+ Identifier = TP_OPTIONS ;
+ PageResID = TP_OPTIONS ;
+ Text [ en-US ] = "Options" ;
+ };
+ };
+ };
+ OKButton 1
+ {
+ Pos = MAP_APPFONT ( 3 , 157 ) ;
+ Size = MAP_APPFONT ( 40 , 12 ) ;
+ TabStop = TRUE ;
+ };
+ CancelButton 1
+ {
+ Pos = MAP_APPFONT ( 49 , 157 ) ;
+ Size = MAP_APPFONT ( 40 , 12 ) ;
+ TabStop = TRUE ;
+ };
+ PushButton 1
+ {
+ Pos = MAP_APPFONT ( 137 , 157 ) ;
+ Size = MAP_APPFONT ( 40 , 12 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton 1
+ {
+ Pos = MAP_APPFONT ( 94 , 157 ) ;
+ Size = MAP_APPFONT ( 40 , 12 ) ;
+ TabStop = TRUE ;
+ };
+};
+
+
diff --git a/toolkit/workben/layout/sortdlg.xml b/toolkit/workben/layout/sortdlg.xml
new file mode 100644
index 000000000000..ce45a60ff1ee
--- /dev/null
+++ b/toolkit/workben/layout/sortdlg.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated XML files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<tabpage help-id="HID_SCPAGE_SORT_FIELDS" hide="true" id="RID_SCPAGE_SORT_FIELDS" sv-look="true" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container">
+ <vbox>
+ <fixedline id="FL_SORT1" text="Sort ~by"/>
+ <radiobutton id="BTN_UP1" tabstop="true" label="~Ascending"/>
+ <listbox has_border="true" dropdown="true" id="LB_SORT1" tabstop="true"/>
+ <radiobutton id="BTN_DOWN1" tabstop="true" label="~Descending"/>
+ <fixedline id="FL_SORT2" text="Then b~y"/>
+ <radiobutton id="BTN_UP2" tabstop="true" label="A~scending"/>
+ <listbox has_border="true" dropdown="true" id="LB_SORT2" tabstop="true"/>
+ <radiobutton id="BTN_DOWN2" tabstop="true" label="D~escending"/>
+ <fixedline id="FL_SORT3" text="T~hen by"/>
+ <radiobutton id="BTN_UP3" tabstop="true" label="As~cending"/>
+ <listbox has_border="true" dropdown="true" id="LB_SORT3" tabstop="true"/>
+ <radiobutton id="BTN_DOWN3" tabstop="true" label="Desce~nding"/>
+ </vbox>
+</tabpage>
+<tabpage help-id="HID_SCPAGE_SORT_OPTIONS" hide="true" id="RID_SCPAGE_SORT_OPTIONS" sv-look="true" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container">
+ <string id="STR_COL_LABEL" text="Range contains column la~bels"/>
+ <string id="STR_ROW_LABEL" text="Range contains ~row labels"/>
+ <vbox>
+ <checkbox id="BTN_CASESENSITIVE" tabstop="true" label="Case ~sensitive"/>
+ <checkbox id="BTN_LABEL" tabstop="true"/>
+ <checkbox id="BTN_FORMATS" tabstop="true" label="Include ~formats"/>
+ <checkbox id="BTN_NATURALSORT" tabstop="true" label=" "/>
+ <checkbox id="BTN_COPYRESULT" tabstop="true" label="~Copy sort results to:"/>
+ <hbox>
+ <listbox has_border="true" dropdown="true" id="LB_OUTAREA" tabstop="true"/>
+ <edit has_border="true" disable="true" id="ED_OUTAREA" tabstop="true"/>
+ </hbox>
+ <checkbox id="BTN_SORT_USER" tabstop="true" label="Custom sort ~order"/>
+ <listbox has_border="true" disable="true" dropdown="true" id="LB_SORT_USER" tabstop="true"/>
+ <hbox>
+ <fixedtext id="FT_LANGUAGE" label="~Language"/>
+ <fixedtext id="FT_ALGORITHM" label="O~ptions"/>
+ </hbox>
+ <hbox>
+ <listbox has_border="true" dropdown="true" id="LB_LANGUAGE" sort="true" tabstop="true"/>
+ <listbox has_border="true" dropdown="true" id="LB_ALGORITHM" tabstop="true"/>
+ </hbox>
+ <fixedline id="FL_DIRECTION" text="Direction"/>
+ <radiobutton id="BTN_TOP_DOWN" tabstop="true" label="~Top to bottom (sort rows)"/>
+ <radiobutton id="BTN_LEFT_RIGHT" tabstop="true" label="L~eft to right (sort columns)"/>
+ </vbox>
+</tabpage>
+<tabdialog closeable="false" moveable="true" output-size="true" id="RID_SCDLG_SORT" sv-look="true" text="Sort" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container">
+ <vbox>
+ <tabcontrol output-size="true" id="1">
+ <pagelist>
+ <pageitem identifier="TP_FIELDS" page-res-id="TP_FIELDS" text="Sort Criteria"/>
+ <pageitem identifier="TP_OPTIONS" page-res-id="TP_OPTIONS" text="Options"/>
+ </pagelist>
+ </tabcontrol>
+ <hbox>
+ <okbutton defbutton="true" id="1" tabstop="true"/>
+ <cancelbutton id="1" tabstop="true"/>
+ <helpbutton id="1" tabstop="true"/>
+ <pushbutton id="1" tabstop="true"/>
+ </hbox>
+ </vbox>
+</tabdialog>
diff --git a/toolkit/workben/layout/string-input.xml b/toolkit/workben/layout/string-input.xml
new file mode 100644
index 000000000000..b1aed5197c17
--- /dev/null
+++ b/toolkit/workben/layout/string-input.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated XML files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<modaldialog sizeable="true" closeable="false" moveable="true" output-size="true" id="RID_SCDLG_STRINPUT" sv-look="true" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container" title="Insert String">
+ <vbox spacing="5" border="5">
+ <fixedtext id="FT_LABEL" label="FT-LABEL"/>
+ <edit has_border="true" id="ED_INPUT" tabstop="true"/>
+ <dialogbuttonhbox border="5" spacing="5">
+ <okbutton defbutton="true" id="BTN_OK" tabstop="true"/>
+ <cancelbutton id="BTN_CANCEL" tabstop="true"/>
+ <helpbutton id="BTN_HELP" tabstop="true"/>
+ </dialogbuttonhbox>
+ </vbox>
+</modaldialog>
diff --git a/toolkit/workben/layout/tab-dialog.xml b/toolkit/workben/layout/tab-dialog.xml
new file mode 100644
index 000000000000..da75f03e9df5
--- /dev/null
+++ b/toolkit/workben/layout/tab-dialog.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<dialog xmlns="http://openoffice.org/2007/layout"
+ xmlns:cnt="http://openoffice.org/2007/layout/container"
+ _title="layout::TabDialog" optimumsize="true"
+ id="tab-dialog"
+ has_border="true" sizeable="true" moveable="true">
+ <vbox spacing="5" border="5">
+ <tabcontrol id="ID_TABCONTROL"/>
+ <dialogbuttonhbox border="5" spacing="5" cnt:expand="false">
+ <flow/>
+ <okbutton defbutton="true" id="BTN_OK" show="false"/>
+ <pushbutton id="BTN_USER" _label="&lt;User&gt;" show="false"/>
+ <cancelbutton id="BTN_CANCEL" show="false"/>
+ <helpbutton id="BTN_HELP" show="false"/>
+ <resetbutton id="BTN_RESET" show="false"/>
+ <pushbutton id="BTN_BASEFMT" _label="&lt;Base Format&gt;" show="false"/>
+ </dialogbuttonhbox>
+ </vbox>
+</dialog>
diff --git a/toolkit/workben/layout/tabcontrol.xml b/toolkit/workben/layout/tabcontrol.xml
index 106489a457a9..2986f1f9e0d9 100644
--- a/toolkit/workben/layout/tabcontrol.xml
+++ b/toolkit/workben/layout/tabcontrol.xml
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<dialog xmlns="http://openoffice.org/2007/layout"
- xmlns:cnt="http://openoffice.org/2007/layout/container"
- title="TabControl Test" optimumsize="true"
- has_border="true" sizeable="true" moveable="true">
+ xmlns:cnt="http://openoffice.org/2007/layout/container"
+ title="TabControl Test" optimumsize="true"
+ has_border="true" sizeable="true" moveable="true">
<vbox>
- <tabcontrol>
- <pushbutton label="Child 1" cnt:title="Page 1" />
- <edit has_border="true" text="Child 2" cnt:title="Page 2" />
- <vbox cnt:title="Page 3">
- <pushbutton label="Child 3"/>
- <edit has_border="true" text="Child 4" />
- </vbox>
- </tabcontrol>
- <okbutton cnt:expand="false" />
+ <tabcontrol>
+ <pushbutton label="Child 1" cnt:title="Page 1" />
+ <edit has_border="true" text="Child 2" cnt:title="Page 2" />
+ <vbox cnt:title="Page 3">
+ <pushbutton label="Child 3"/>
+ <edit has_border="true" text="Child 4" />
+ </vbox>
+ </tabcontrol>
+ <okbutton cnt:expand="false" />
</vbox>
</dialog>
diff --git a/toolkit/workben/layout/test.cxx b/toolkit/workben/layout/test.cxx
index b98eaff2fc80..1bd9603fc5ac 100644
--- a/toolkit/workben/layout/test.cxx
+++ b/toolkit/workben/layout/test.cxx
@@ -30,7 +30,6 @@
************************************************************************/
#include <vcl/svapp.hxx>
-//#include <transex3/vosapp.hxx>
// This works and was used before for standalone test, not sure why
// we'd want it.
@@ -38,29 +37,41 @@
#include "uno.hxx"
#include <cstdio>
-#include <osl/file.h>
+#include <cstdlib>
+#include <sys/stat.h>
-#include <rtl/ustring.hxx>
+#include <com/sun/star/xml/sax/SAXException.hpp>
+#include <comphelper/processfactory.hxx>
#include <cppuhelper/bootstrap.hxx>
-
-#include <ucbhelper/contentbroker.hxx>
+#include <rtl/ustring.hxx>
#include <ucbhelper/configurationkeys.hxx>
+#include <ucbhelper/contentbroker.hxx>
-#include <comphelper/processfactory.hxx>
-#include <com/sun/star/xml/sax/SAXException.hpp>
+#define SORT_DLG 1 /* requires sfx2, svx to be compiled */
+#if SORT_DLG
+#include "scitems.hxx"
+#include "uiitems.hxx"
+#endif /* SORT_DLG */
#include "editor.hxx"
-#include "wordcountdialog.hxx"
+#include "plugin.hxx"
#undef _LAYOUT_POST_HXX
-#include "zoom.hxx"
+#include "recover.hxx"
#undef _LAYOUT_POST_HXX
-#include "recover.hxx"
+#if SORT_DLG
+#include "sortdlg.hxx"
+#undef _LAYOUT_POST_HXX
+#endif /* SORT_DLG */
+
+#include "wordcountdialog.hxx"
+#undef _LAYOUT_POST_HXX
+
+#include "zoom.hxx"
#undef _LAYOUT_POST_HXX
-//#undef SW_WORDCOUNTDIALOG_HXX
#include <layout/layout-pre.hxx>
using namespace ::rtl;
@@ -68,38 +79,6 @@ using namespace ::cppu;
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
-Reference< XComponentContext > createInitialComponentContext(
- OUString const & inst_dir )
-{
- Reference< XComponentContext > xContext;
-
- try
- {
- OUString file_url;
- oslFileError rc = osl_getFileURLFromSystemPath(
- inst_dir.pData, &file_url.pData );
- OSL_ASSERT( osl_File_E_None == rc );
- (void) rc; // quiet warning
-
- OUString unorc = file_url + OUString(
- OUString::createFromAscii( "/program/" SAL_CONFIGFILE( "uno" )) );
-
- return defaultBootstrap_InitialComponentContext( unorc );
- }
-
- catch( Exception& rExc )
- {
- OString aStr( OUStringToOString( rExc.Message,
- RTL_TEXTENCODING_ASCII_US ) );
- OSL_ENSURE( 0, aStr.getStr() );
- }
-
- return xContext;
-}
-
-
-// -----------------------------------------------------------------------
-
class LayoutTest : public Application
{
Reference< XComponentContext > mxContext;
@@ -115,7 +94,7 @@ public:
void RunEditor();
void RunFiles();
void ExceptionalMain();
- void IInit();
+ void Init();
void InitUCB();
void LoadFile( OUString const &aName );
void Main();
@@ -124,18 +103,29 @@ public:
static void usage()
{
- fprintf (stderr, "usage: test [--inst inst_dir] [DIALOG.XML]... | --test [DIALOG.XML]\n" );
+ fprintf (stderr, "usage: test [--inst OOO_INSTALL_PREFIX] [DIALOG.XML]... | --test [DIALOG.XML]\n" );
exit( 2 );
}
+static uno::Reference< lang::XSingleServiceFactory > get_factory( char const *service )
+{
+ uno::Reference< lang::XSingleServiceFactory > xFactory(
+ comphelper::createProcessComponent(
+ rtl::OUString::createFromAscii( service ) ), uno::UNO_QUERY );
+
+ if ( !xFactory.is() )
+ fprintf( stderr, "error loading: %s\n", service );
+ return xFactory;
+}
+
+#define GET_FACTORY(x) get_factory( #x )
+
void LayoutTest::LoadFile( const OUString &aTestFile )
{
fprintf( stderr, "TEST: layout instance\n" );
- uno::Reference< lang::XSingleServiceFactory > xFactory(
- comphelper::createProcessComponent(
- rtl::OUString::createFromAscii( "com.sun.star.awt.Layout" ) ),
- uno::UNO_QUERY );
+ uno::Reference< lang::XSingleServiceFactory > xFactory
+ = GET_FACTORY( com.sun.star.awt.Layout );
if ( !xFactory.is() )
{
fprintf( stderr, "Layout engine not installed\n" );
@@ -155,40 +145,51 @@ void LayoutTest::LoadFile( const OUString &aTestFile )
fprintf( stderr, "TEST: file loaded\n" );
}
-// Nurgh ...
void LayoutTest::InitUCB()
{
OUString aEmpty;
- Sequence< Any > aArgs(6);
+ Sequence< Any > aArgs( 6 );
aArgs[0]
- <<= OUString::createFromAscii(UCB_CONFIGURATION_KEY1_LOCAL);
+ <<= OUString::createFromAscii( UCB_CONFIGURATION_KEY1_LOCAL );
aArgs[1]
- <<= OUString::createFromAscii(UCB_CONFIGURATION_KEY2_OFFICE);
+ <<= OUString::createFromAscii( UCB_CONFIGURATION_KEY2_OFFICE );
aArgs[2] <<= OUString::createFromAscii( "PIPE" );
aArgs[3] <<= aEmpty;
aArgs[4] <<= OUString::createFromAscii( "PORTAL" );
aArgs[5] <<= aEmpty;
- if (! ::ucbhelper::ContentBroker::initialize( mxMSF, aArgs ) )
+ if ( !::ucbhelper::ContentBroker::initialize( mxMSF, aArgs ) )
+ {
fprintf( stderr, "Failed to init content broker\n" );
+ fprintf( stderr, "arg[0]: %s\n", UCB_CONFIGURATION_KEY1_LOCAL );
+ fprintf( stderr, "arg[1]: %s\n", UCB_CONFIGURATION_KEY2_OFFICE );
+ }
+}
+
+static void support_upstream_brand_prefix ()
+{
+ if ( char const* inst = getenv( "OOO_INSTALL_PREFIX" ) )
+ {
+ char const *brand_prefix = "/openoffice.org3";
+ OUString brand_dir = OUString::createFromAscii( inst )
+ + OUString::createFromAscii( brand_prefix );
+ struct stat stat_info;
+ if ( !stat ( OUSTRING_CSTR( brand_dir ), &stat_info ) )
+ {
+ OSL_TRACE( "Appending %s to OOO_INSTALL_PREFIX", brand_prefix );
+ setenv( "OOO_INSTALL_PREFIX", OUSTRING_CSTR( brand_dir ), 1 );
+ }
+ }
}
-#define INIT_ENV_VOODOO( installDir ) \
- /* Unless you do this, obviously you don't deserve to have anything work */ \
- OString aCfg = "CFG_INIFILE=file://" \
- + OUStringToOString( installDir, RTL_TEXTENCODING_UTF8 ) \
- + "/program/configmgrrc"; \
- putenv( (char *)aCfg.getStr() ); \
- /* Unless you do this, obviously you don't want your paths to be correct & \
- hence no images.zip location is possible. */ \
- OString aBaseInst = "BaseInstallation=file://" \
- + OUStringToOString( installDir, RTL_TEXTENCODING_UTF8 ); \
- putenv( (char *)aBaseInst.getStr() ); \
-
-void LayoutTest::IInit()
+void LayoutTest::Init()
{
- INIT_ENV_VOODOO( mInstallDir );
- mxContext = createInitialComponentContext( mInstallDir );
+ ParseCommandLine();
+ setenv( "OOO_INSTALL_PREFIX", OUSTRING_CSTR( mInstallDir ), 0 );
+ support_upstream_brand_prefix ();
+ OSL_TRACE( "OOO_INSTALL_PREFIX=%s", getenv( "OOO_INSTALL_PREFIX" ) );
+
+ mxContext = defaultBootstrap_InitialComponentContext();
mxMSF = new UnoBootstrapLayout( Reference< lang::XMultiServiceFactory >( mxContext->getServiceManager(), UNO_QUERY ) );
::comphelper::setProcessServiceFactory( mxMSF );
InitUCB();
@@ -196,6 +197,7 @@ void LayoutTest::IInit()
void LayoutTest::ParseCommandLine()
{
+ printf ("%s\n", __PRETTY_FUNCTION__);
for ( sal_uInt16 i = 0; i < GetCommandLineParamCount(); i++ )
{
OUString aParam = OUString( GetCommandLineParam( i ) );
@@ -206,6 +208,7 @@ void LayoutTest::ParseCommandLine()
if ( i >= GetCommandLineParamCount() - 1)
usage();
mInstallDir = GetCommandLineParam( ++i );
+ setenv( "OOO_INSTALL_PREFIX", OUSTRING_CSTR( mInstallDir ), 1 );
}
else if ( aParam.equalsAscii( "--test" ) )
{
@@ -234,32 +237,77 @@ void LayoutTest::RunEditor()
editor.Execute();
}
-void RunDialog( layout::Dialog& dialog )
+short RunDialog( Dialog& dialog )
{
dialog.Show();
- dialog.Execute();
- fprintf( stderr, "1st execute exited" );
- dialog.Execute();
- fprintf( stderr, "2nd execute exited" );
+ short result = dialog.Execute();
+ fprintf( stderr, "Done: dialog execute exited:%d\n", result);
+ return result;
}
+#undef Dialog
+short RunDialog( ::Dialog& dialog )
+{
+ dialog.Show();
+ short result = dialog.Execute();
+ fprintf( stderr, "Done: dialog execute exited:%d\n", result);
+ return result;
+}
+
+#if SORT_DLG
+static void LoadSC()
+{
+ get_factory( "com.sun.star.comp.sfx2.DocumentTemplates" );
+ get_factory( "com.sun.star.comp.Calc.SpreadsheetDocument" );
+ GET_FACTORY( com.sun.star.i18n.Transliteration.l10n );
+}
+#endif /* SORT_DLG */
+
void TestDialog( OUString const& name )
{
- if ( name.equalsAscii( "zoom" ) )
+ if ( 0 )
+ ;
+ else if ( name.equalsAscii( "plugin" ) )
{
- SvxZoomDialog zoom( 0 );
- RunDialog( zoom );
+ PluginDialog plugin ( 0 );
+ RunDialog( plugin );
}
- else if ( name.equalsAscii( "wordcount" ) )
+ else if ( name.equalsAscii( "query" ) )
{
- SwWordCountDialog words ( 0 );
- RunDialog( words );
+ QueryBox query ( 0, "Do you want to do?", "do");
+ RunDialog( query );
+ }
+ else if ( name.equalsAscii( "query-compat" ) )
+ {
+ QueryBox query ( 0,
+ WinBits( WB_YES_NO | WB_DEF_YES ),
+// WinBits( WB_ABORT_RETRY_IGNORE ),
+ OUString::createFromAscii ("Do you want to do?"));
+ RunDialog( query );
}
else if ( name.equalsAscii( "recover" ) )
{
SvxRecoverDialog recover ( 0 );
RunDialog( recover );
}
+#if SORT_DLG
+ else if ( name.equalsAscii( "sort" ) )
+ {
+ LoadSC();
+ ScSortDlg sort (0, 0);
+ RunDialog( sort );
+ }
+#endif /* SORT_DLG */
+ else if ( name.equalsAscii( "wordcount" ) )
+ {
+ SwWordCountDialog words ( 0 );
+ RunDialog( words );
+ }
+ else if ( name.equalsAscii( "zoom" ) )
+ {
+ SvxZoomDialog zoom( 0 );
+ RunDialog( zoom );
+ }
}
void LayoutTest::RunFiles()
@@ -274,10 +322,6 @@ void LayoutTest::RunFiles()
void LayoutTest::ExceptionalMain()
{
- ParseCommandLine();
- IInit();
- INIT_ENV_VOODOO( mInstallDir );
-
if ( mTestDialog.getLength() )
TestDialog( mTestDialog );
else if ( mEditMode )
@@ -323,4 +367,4 @@ LayoutTest::LayoutTest( char const* installDir )
{
}
-LayoutTest lt( "/usr/local/lib/ooo" );
+LayoutTest layout_test( "/usr/local/lib/ooo" );
diff --git a/toolkit/workben/layout/testrc.in b/toolkit/workben/layout/testrc.in
new file mode 100644
index 000000000000..00ae5eb3cd5e
--- /dev/null
+++ b/toolkit/workben/layout/testrc.in
@@ -0,0 +1,12 @@
+OOO_INSTALL_PREFIX_URL=file://${OOO_INSTALL_PREFIX}
+OOO_BASIS_URL=${OOO_INSTALL_PREFIX_URL}/basis-link
+OOO_BASIS_BIN_URL=${OOO_BASIS_URL}/program
+OOO_URE_URL=${OOO_BASIS_URL}/ure-link
+#
+#CFG_INIFILE=${OOO_BASIS_BIN_URL}/configmgrrc
+#BaseInstallation=${OOO_BASIS_URL}
+BRAND_BASE_DIR=${OOO_INSTALL_PREFIX_URL}
+OOO_BASE_DIR=${OOO_BASIS_URL}
+#
+UNO_TYPES=${OOO_URE_URL}/share/misc/types.rdb ${OOO_BASIS_BIN_URL}/offapi.rdb
+UNO_SERVICES=${OOO_URE_URL}/share/misc/services.rdb ${OOO_BASIS_BIN_URL}/services.rdb
diff --git a/toolkit/workben/layout/tpsort.cxx b/toolkit/workben/layout/tpsort.cxx
new file mode 100644
index 000000000000..3463eff4efab
--- /dev/null
+++ b/toolkit/workben/layout/tpsort.cxx
@@ -0,0 +1,1108 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: tpsort.cxx,v $
+ * $Revision: 1.14 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#if !TEST_LAYOUT
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sc.hxx"
+#endif /* !TEST_LAYOUT */
+
+#undef SC_DLLIMPLEMENTATION
+
+
+
+#include <vcl/msgbox.hxx>
+#include <i18npool/mslangid.hxx>
+#include <svtools/collatorres.hxx>
+#include <unotools/collatorwrapper.hxx>
+#include <unotools/localedatawrapper.hxx>
+#include <comphelper/processfactory.hxx>
+
+#include "scitems.hxx"
+#include "uiitems.hxx"
+#include "viewdata.hxx"
+#include "document.hxx"
+#include "global.hxx"
+#include "dbcolect.hxx"
+#include "userlist.hxx"
+#include "rangeutl.hxx"
+#include "scresid.hxx"
+#include "sc.hrc" // -> Slot IDs
+#include "globstr.hrc"
+
+#include "sortdlg.hxx"
+#include "sortdlg.hrc"
+
+#define _TPSORT_CXX
+#include "tpsort.hxx"
+#undef _TPSORT_CXX
+
+using namespace com::sun::star;
+
+// STATIC DATA -----------------------------------------------------------
+
+static USHORT pSortRanges[] =
+{
+ SID_SORT,
+ SID_SORT,
+ 0
+};
+
+// -----------------------------------------------------------------------
+
+/*
+ * Da sich Einstellungen auf der zweiten TabPage (Optionen) auf
+ * die erste TabPage auswirken, muss es die Moeglichkeit geben,
+ * dies der jeweils anderen Seite mitzuteilen.
+ *
+ * Im Moment wird dieses Problem ueber zwei Datenmember des TabDialoges
+ * geloest. Wird eine Seite Aktiviert/Deaktiviert, so gleicht sie diese
+ * Datenmember mit dem eigenen Zustand ab (->Activate()/Deactivate()).
+ *
+ * 31.01.95:
+ * Die Klasse SfxTabPage bietet mittlerweile ein Verfahren an:
+ *
+ * virtual BOOL HasExchangeSupport() const; -> return TRUE;
+ * virtual void ActivatePage(const SfxItemSet &);
+ * virtual int DeactivatePage(SfxItemSet * = 0);
+ *
+ * muss noch geaendert werden!
+ */
+
+//========================================================================
+//========================================================================
+// Sortierkriterien-Tabpage:
+
+ScTabPageSortFields::ScTabPageSortFields( Window* pParent,
+ const SfxItemSet& rArgSet )
+
+ : SfxTabPage ( pParent,
+ ScResId( RID_SCPAGE_SORT_FIELDS ),
+ rArgSet ),
+ //
+ aFlSort1 ( this, ScResId( FL_SORT1 ) ),
+ aLbSort1 ( this, ScResId( LB_SORT1 ) ),
+ aBtnUp1 ( this, ScResId( BTN_UP1 ) ),
+ aBtnDown1 ( this, ScResId( BTN_DOWN1 ) ),
+ //
+ aFlSort2 ( this, ScResId( FL_SORT2 ) ),
+ aLbSort2 ( this, ScResId( LB_SORT2 ) ),
+ aBtnUp2 ( this, ScResId( BTN_UP2 ) ),
+ aBtnDown2 ( this, ScResId( BTN_DOWN2 ) ),
+ //
+ aFlSort3 ( this, ScResId( FL_SORT3 ) ),
+ aLbSort3 ( this, ScResId( LB_SORT3 ) ),
+ aBtnUp3 ( this, ScResId( BTN_UP3 ) ),
+ aBtnDown3 ( this, ScResId( BTN_DOWN3 ) ),
+
+ aStrUndefined ( ScResId( SCSTR_UNDEFINED ) ),
+ aStrColumn ( ScResId( SCSTR_COLUMN ) ),
+ aStrRow ( ScResId( SCSTR_ROW ) ),
+ //
+#if !TEST_LAYOUT
+ nWhichSort ( rArgSet.GetPool()->GetWhich( SID_SORT ) ),
+#else /* TEST_LAYOUT */
+ nWhichSort ( 0 ),
+#endif /* TEST_LAYOUT */
+ pDlg ( (ScSortDlg*)(GetParent()->GetParent()) ),
+ pViewData ( NULL ),
+#if !TEST_LAYOUT
+ rSortData ( ((const ScSortItem&)
+ rArgSet.Get( nWhichSort )).
+ GetSortData() ),
+#else /* TEST_LAYOUT */
+ rSortData ( *new ScSortParam() ),
+#endif /* TEST_LAYOUT */
+ nFieldCount ( 0 ),
+ bHasHeader ( FALSE ),
+ bSortByRows ( FALSE )
+{
+ Init();
+ FreeResource();
+ SetExchangeSupport();
+}
+
+// -----------------------------------------------------------------------
+
+__EXPORT ScTabPageSortFields::~ScTabPageSortFields()
+{
+}
+
+// -----------------------------------------------------------------------
+
+void ScTabPageSortFields::Init()
+{
+#if !TEST_LAYOUT
+ const ScSortItem& rSortItem = (const ScSortItem&)
+ GetItemSet().Get( nWhichSort );
+
+ pViewData = rSortItem.GetViewData();
+
+ DBG_ASSERT( pViewData, "ViewData not found!" );
+#endif /* !TEST_LAYOUT */
+
+ nFieldArr[0] = 0;
+ nFirstCol = 0;
+ nFirstRow = 0;
+
+ aLbSort1.SetSelectHdl( LINK( this, ScTabPageSortFields, SelectHdl ) );
+ aLbSort2.SetSelectHdl( LINK( this, ScTabPageSortFields, SelectHdl ) );
+ aLbSort3.SetSelectHdl( LINK( this, ScTabPageSortFields, SelectHdl ) );
+ aLbSort1.Clear();
+ aLbSort2.Clear();
+ aLbSort3.Clear();
+
+ aSortLbArr[0] = &aLbSort1;
+ aSortLbArr[1] = &aLbSort2;
+ aSortLbArr[2] = &aLbSort3;
+ aDirBtnArr[0][0] = &aBtnUp1;
+ aDirBtnArr[0][1] = &aBtnDown1;
+ aDirBtnArr[1][0] = &aBtnUp2;
+ aDirBtnArr[1][1] = &aBtnDown2;
+ aDirBtnArr[2][0] = &aBtnUp3;
+ aDirBtnArr[2][1] = &aBtnDown3;
+ aFlArr[0] = &aFlSort1;
+ aFlArr[1] = &aFlSort2;
+ aFlArr[2] = &aFlSort3;
+}
+
+//------------------------------------------------------------------------
+
+USHORT* __EXPORT ScTabPageSortFields::GetRanges()
+{
+ return pSortRanges;
+}
+
+// -----------------------------------------------------------------------
+
+SfxTabPage* __EXPORT ScTabPageSortFields::Create( Window* pParent,
+ const SfxItemSet& rArgSet )
+{
+ return ( new ScTabPageSortFields( pParent, rArgSet ) );
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT ScTabPageSortFields::Reset( const SfxItemSet& /* rArgSet */ )
+{
+ bSortByRows = rSortData.bByRow;
+ bHasHeader = rSortData.bHasHeader;
+
+ if ( aLbSort1.GetEntryCount() == 0 )
+ FillFieldLists();
+
+ // Selektieren der ListBoxen:
+
+ if ( rSortData.bDoSort[0] )
+ {
+ for ( USHORT i=0; i<3; i++ )
+ {
+ if ( rSortData.bDoSort[i] )
+ {
+ aSortLbArr[i]->SelectEntryPos(
+ GetFieldSelPos( rSortData.nField[i] ) );
+
+ (rSortData.bAscending[i])
+ ? aDirBtnArr[i][0]->Check() // Up
+ : aDirBtnArr[i][1]->Check(); // Down
+ }
+ else
+ {
+ aSortLbArr[i]->SelectEntryPos( 0 ); // "keiner" selektieren
+ aDirBtnArr[i][0]->Check(); // Up
+ }
+ }
+
+ EnableField( 1 );
+ EnableField( 2 );
+ EnableField( 3 );
+ if ( aLbSort1.GetSelectEntryPos() == 0 )
+ DisableField( 2 );
+ if ( aLbSort2.GetSelectEntryPos() == 0 )
+ DisableField( 3 );
+ }
+ else
+ {
+ aLbSort1.SelectEntryPos( 1 );
+ aLbSort2.SelectEntryPos( 0 );
+ aLbSort3.SelectEntryPos( 0 );
+ aBtnUp1.Check();
+ aBtnUp2.Check();
+ aBtnUp3.Check();
+ EnableField ( 1 );
+ EnableField ( 2 );
+ DisableField( 3 );
+ }
+
+ if ( pDlg )
+ {
+ pDlg->SetByRows ( bSortByRows );
+ pDlg->SetHeaders( bHasHeader );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+BOOL __EXPORT ScTabPageSortFields::FillItemSet( SfxItemSet& rArgSet )
+{
+ ScSortParam theSortData = rSortData;
+ if (pDlg)
+ {
+ const SfxItemSet* pExample = pDlg->GetExampleSet();
+ const SfxPoolItem* pItem;
+ if ( pExample && pExample->GetItemState( nWhichSort, TRUE, &pItem ) == SFX_ITEM_SET )
+ theSortData = ((const ScSortItem*)pItem)->GetSortData();
+ }
+
+ USHORT nSort1Pos = aLbSort1.GetSelectEntryPos();
+ USHORT nSort2Pos = aLbSort2.GetSelectEntryPos();
+ USHORT nSort3Pos = aLbSort3.GetSelectEntryPos();
+
+ DBG_ASSERT( (nSort1Pos <= SC_MAXFIELDS)
+ && (nSort2Pos <= SC_MAXFIELDS)
+ && (nSort3Pos <= SC_MAXFIELDS),
+ "Array-Range Fehler!" );
+
+ if ( nSort1Pos == LISTBOX_ENTRY_NOTFOUND ) nSort1Pos = 0;
+ if ( nSort2Pos == LISTBOX_ENTRY_NOTFOUND ) nSort2Pos = 0;
+ if ( nSort3Pos == LISTBOX_ENTRY_NOTFOUND ) nSort3Pos = 0;
+
+ if ( nSort1Pos > 0 )
+ {
+ theSortData.bDoSort[0] = (nSort1Pos > 0);
+ theSortData.bDoSort[1] = (nSort2Pos > 0);
+ theSortData.bDoSort[2] = (nSort3Pos > 0);
+
+ // wenn auf Optionen-Seite "OK" gewaehlt wurde und
+ // dabei die Sortierrichtung umgestellt wurde, so
+ // wird das erste Feld der jeweiligen Richtung als
+ // Sortierkriterium gewaehlt (steht in nFieldArr[0]):
+ if ( bSortByRows != pDlg->GetByRows() )
+ {
+ theSortData.nField[0] =
+ theSortData.nField[1] =
+ theSortData.nField[2] = ( bSortByRows ?
+ static_cast<SCCOLROW>(nFirstRow) :
+ static_cast<SCCOLROW>(nFirstCol) );
+ }
+ else
+ {
+ theSortData.nField[0] = nFieldArr[nSort1Pos];
+ theSortData.nField[1] = nFieldArr[nSort2Pos];
+ theSortData.nField[2] = nFieldArr[nSort3Pos];
+ }
+
+ theSortData.bAscending[0] = aBtnUp1.IsChecked();
+ theSortData.bAscending[1] = aBtnUp2.IsChecked();
+ theSortData.bAscending[2] = aBtnUp3.IsChecked();
+ // bHasHeader ist in ScTabPageSortOptions::FillItemSet, wo es hingehoert
+ }
+ else
+ {
+ theSortData.bDoSort[0] =
+ theSortData.bDoSort[1] =
+ theSortData.bDoSort[2] = FALSE;
+ }
+
+ rArgSet.Put( ScSortItem( SCITEM_SORTDATA, NULL, &theSortData ) );
+
+ return TRUE;
+}
+
+// -----------------------------------------------------------------------
+
+// fuer Datenaustausch ohne Dialog-Umweg: (! noch zu tun !)
+// void ScTabPageSortFields::ActivatePage( const SfxItemSet& rSet )
+
+void __EXPORT ScTabPageSortFields::ActivatePage()
+{
+ if ( pDlg )
+ {
+ if ( bHasHeader != pDlg->GetHeaders()
+ || bSortByRows != pDlg->GetByRows() )
+ {
+ USHORT nCurSel1 = aLbSort1.GetSelectEntryPos();
+ USHORT nCurSel2 = aLbSort2.GetSelectEntryPos();
+ USHORT nCurSel3 = aLbSort3.GetSelectEntryPos();
+
+ bHasHeader = pDlg->GetHeaders();
+ bSortByRows = pDlg->GetByRows();
+ FillFieldLists();
+ aLbSort1.SelectEntryPos( nCurSel1 );
+ aLbSort2.SelectEntryPos( nCurSel2 );
+ aLbSort3.SelectEntryPos( nCurSel3 );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+int __EXPORT ScTabPageSortFields::DeactivatePage( SfxItemSet* pSetP )
+{
+ if ( pDlg )
+ {
+ if ( bHasHeader != pDlg->GetHeaders() )
+ pDlg->SetHeaders( bHasHeader );
+
+ if ( bSortByRows != pDlg->GetByRows() )
+ pDlg->SetByRows( bSortByRows );
+ }
+
+ if ( pSetP )
+ FillItemSet( *pSetP );
+
+ return SfxTabPage::LEAVE_PAGE;
+}
+
+// -----------------------------------------------------------------------
+
+void ScTabPageSortFields::DisableField( USHORT nField )
+{
+ nField--;
+
+ if ( nField<=2 )
+ {
+ aSortLbArr[nField] ->Disable();
+ aDirBtnArr[nField][0]->Disable();
+ aDirBtnArr[nField][1]->Disable();
+ aFlArr[nField] ->Disable();
+ }
+}
+
+// -----------------------------------------------------------------------
+
+void ScTabPageSortFields::EnableField( USHORT nField )
+{
+ nField--;
+
+ if ( nField<=2 )
+ {
+ aSortLbArr[nField] ->Enable();
+ aDirBtnArr[nField][0]->Enable();
+ aDirBtnArr[nField][1]->Enable();
+ aFlArr[nField] ->Enable();
+ }
+}
+
+// -----------------------------------------------------------------------
+
+void ScTabPageSortFields::FillFieldLists()
+{
+ if ( pViewData )
+ {
+ ScDocument* pDoc = pViewData->GetDocument();
+
+ if ( pDoc )
+ {
+ aLbSort1.Clear();
+ aLbSort2.Clear();
+ aLbSort3.Clear();
+ aLbSort1.InsertEntry( aStrUndefined, 0 );
+ aLbSort2.InsertEntry( aStrUndefined, 0 );
+ aLbSort3.InsertEntry( aStrUndefined, 0 );
+
+ SCCOL nFirstSortCol = rSortData.nCol1;
+ SCROW nFirstSortRow = rSortData.nRow1;
+ SCTAB nTab = pViewData->GetTabNo();
+ USHORT i = 1;
+
+ if ( bSortByRows )
+ {
+ String aFieldName;
+ SCCOL nMaxCol = rSortData.nCol2;
+ SCCOL col;
+
+ for ( col=nFirstSortCol; col<=nMaxCol && i<SC_MAXFIELDS; col++ )
+ {
+ pDoc->GetString( col, nFirstSortRow, nTab, aFieldName );
+ if ( !bHasHeader || (aFieldName.Len() == 0) )
+ {
+ aFieldName = aStrColumn;
+ aFieldName += ' ';
+ aFieldName += ColToAlpha( col );
+ }
+ nFieldArr[i] = col;
+ aLbSort1.InsertEntry( aFieldName, i );
+ aLbSort2.InsertEntry( aFieldName, i );
+ aLbSort3.InsertEntry( aFieldName, i );
+ i++;
+ }
+ }
+ else
+ {
+ String aFieldName;
+ SCROW nMaxRow = rSortData.nRow2;
+ SCROW row;
+
+ for ( row=nFirstSortRow; row<=nMaxRow && i<SC_MAXFIELDS; row++ )
+ {
+ pDoc->GetString( nFirstSortCol, row, nTab, aFieldName );
+ if ( !bHasHeader || (aFieldName.Len() == 0) )
+ {
+ aFieldName = aStrRow;
+ aFieldName += ' ';
+ aFieldName += String::CreateFromInt32( row+1 );
+ }
+ nFieldArr[i] = row;
+ aLbSort1.InsertEntry( aFieldName, i );
+ aLbSort2.InsertEntry( aFieldName, i );
+ aLbSort3.InsertEntry( aFieldName, i );
+ i++;
+ }
+ }
+ nFieldCount = i;
+ }
+ }
+}
+
+//------------------------------------------------------------------------
+
+USHORT ScTabPageSortFields::GetFieldSelPos( SCCOLROW nField )
+{
+ USHORT nFieldPos = 0;
+ BOOL bFound = FALSE;
+
+ for ( USHORT n=1; n<nFieldCount && !bFound; n++ )
+ {
+ if ( nFieldArr[n] == nField )
+ {
+ nFieldPos = n;
+ bFound = TRUE;
+ }
+ }
+
+ return nFieldPos;
+}
+
+// -----------------------------------------------------------------------
+// Handler:
+//---------
+
+IMPL_LINK( ScTabPageSortFields, SelectHdl, ListBox *, pLb )
+{
+ String aSelEntry = pLb->GetSelectEntry();
+
+ if ( pLb == &aLbSort1 )
+ {
+ if ( aSelEntry == aStrUndefined )
+ {
+ aLbSort2.SelectEntryPos( 0 );
+ aLbSort3.SelectEntryPos( 0 );
+
+ if ( aFlSort2.IsEnabled() )
+ DisableField( 2 );
+
+ if ( aFlSort3.IsEnabled() )
+ DisableField( 3 );
+ }
+ else
+ {
+ if ( !aFlSort2.IsEnabled() )
+ EnableField( 2 );
+ }
+ }
+ else if ( pLb == &aLbSort2 )
+ {
+ if ( aSelEntry == aStrUndefined )
+ {
+ aLbSort3.SelectEntryPos( 0 );
+ if ( aFlSort3.IsEnabled() )
+ DisableField( 3 );
+ }
+ else
+ {
+ if ( !aFlSort3.IsEnabled() )
+ EnableField( 3 );
+ }
+ }
+ return 0;
+}
+
+//========================================================================
+// Sortieroptionen-Tabpage:
+//========================================================================
+
+#include <layout/layout-pre.hxx>
+
+#if ENABLE_LAYOUT
+#undef ScResId
+#define ScResId(x) #x
+#undef SfxTabPage
+#define SfxTabPage( parent, id, args ) SfxTabPage( parent, "sort-options.xml", id, &args )
+#endif /* ENABLE_LAYOUT */
+
+ScTabPageSortOptions::ScTabPageSortOptions( Window* pParent,
+ const SfxItemSet& rArgSet )
+
+ : SfxTabPage ( pParent,
+ ScResId( RID_SCPAGE_SORT_OPTIONS ),
+ rArgSet ),
+ //
+ aBtnCase ( this, ScResId( BTN_CASESENSITIVE ) ),
+ aBtnHeader ( this, ScResId( BTN_LABEL ) ),
+ aBtnFormats ( this, ScResId( BTN_FORMATS ) ),
+ aBtnCopyResult ( this, ScResId( BTN_COPYRESULT ) ),
+ aBtnNaturalSort ( this, ScResId( BTN_NATURALSORT ) ),
+ aLbOutPos ( this, ScResId( LB_OUTAREA ) ),
+ aEdOutPos ( this, ScResId( ED_OUTAREA ) ),
+ aBtnSortUser ( this, ScResId( BTN_SORT_USER ) ),
+ aLbSortUser ( this, ScResId( LB_SORT_USER ) ),
+ aFtLanguage ( this, ScResId( FT_LANGUAGE ) ),
+ aLbLanguage ( this, ScResId( LB_LANGUAGE ) ),
+ aFtAlgorithm ( this, ScResId( FT_ALGORITHM ) ),
+ aLbAlgorithm ( this, ScResId( LB_ALGORITHM ) ),
+ aLineDirection ( this, ScResId( FL_DIRECTION ) ),
+ aBtnTopDown ( this, ScResId( BTN_TOP_DOWN ) ),
+ aBtnLeftRight ( this, ScResId( BTN_LEFT_RIGHT ) ),
+// aFtAreaLabel ( this, ScResId( FT_AREA_LABEL ) ),
+// aFtArea ( this, ScResId( FT_AREA ) ),
+ //
+#if ENABLE_LAYOUT
+#undef this
+#undef ScResId
+#define ScResId(x) this, #x
+#endif /* ENABLE_LAYOUT */
+ aStrRowLabel ( ScResId( STR_ROW_LABEL ) ),
+ aStrColLabel ( ScResId( STR_COL_LABEL ) ),
+ aStrUndefined ( ScResId( SCSTR_UNDEFINED ) ),
+ aStrNoName ( ScGlobal::GetRscString(STR_DB_NONAME) ),
+ //
+#if !TEST_LAYOUT
+ nWhichSort ( rArgSet.GetPool()->GetWhich( SID_SORT ) ),
+ rSortData ( ((const ScSortItem&)
+ rArgSet.Get( nWhichSort )).GetSortData() ),
+#else /* TEST_LAYOUT */
+ nWhichSort ( 0 ),
+ rSortData ( *new ScSortParam() ),
+#endif /* TEST_LAYOUT */
+ pViewData ( NULL ),
+ pDoc ( NULL ),
+ pDlg ( (ScSortDlg*)(GetParent() ? GetParent()->GetParent() : 0 ) ),
+ pColRes ( NULL ),
+ pColWrap ( NULL )
+{
+#if TEST_LAYOUT
+ (void) rArgSet;
+#endif /* TEST_LAYOUT */
+ Init();
+ FreeResource();
+ SetExchangeSupport();
+}
+
+// -----------------------------------------------------------------------
+
+__EXPORT ScTabPageSortOptions::~ScTabPageSortOptions()
+{
+#if !TEST_LAYOUT
+ USHORT nEntries = aLbOutPos.GetEntryCount();
+
+ for ( USHORT i=1; i<nEntries; i++ )
+ delete (String*)aLbOutPos.GetEntryData( i );
+#endif /* !TEST_LAYOUT */
+
+ delete pColRes;
+ delete pColWrap; //! not if from document
+}
+
+// -----------------------------------------------------------------------
+
+void ScTabPageSortOptions::Init()
+{
+// aStrAreaLabel = aFtAreaLabel.GetText();
+// aStrAreaLabel.Append( (sal_Unicode) ' ' );
+
+ // CollatorRessource has user-visible names for sort algorithms
+ pColRes = new CollatorRessource();
+
+ //! use CollatorWrapper from document?
+ pColWrap = new CollatorWrapper( comphelper::getProcessServiceFactory() );
+
+#if !TEST_LAYOUT
+ const ScSortItem& rSortItem = (const ScSortItem&)
+ GetItemSet().Get( nWhichSort );
+#endif /* !TEST_LAYOUT */
+
+ aLbOutPos.SetSelectHdl ( LINK( this, ScTabPageSortOptions, SelOutPosHdl ) );
+ aBtnCopyResult.SetClickHdl( LINK( this, ScTabPageSortOptions, EnableHdl ) );
+ aBtnSortUser.SetClickHdl ( LINK( this, ScTabPageSortOptions, EnableHdl ) );
+ aBtnTopDown.SetClickHdl ( LINK( this, ScTabPageSortOptions, SortDirHdl ) );
+ aBtnLeftRight.SetClickHdl ( LINK( this, ScTabPageSortOptions, SortDirHdl ) );
+ aLbLanguage.SetSelectHdl ( LINK( this, ScTabPageSortOptions, FillAlgorHdl ) );
+
+#if !TEST_LAYOUT
+ pViewData = rSortItem.GetViewData();
+#endif /* TEST_LAYOUT */
+ pDoc = pViewData ? pViewData->GetDocument() : NULL;
+
+ DBG_ASSERT( pViewData, "ViewData not found! :-/" );
+
+#if !TEST_LAYOUT
+ if ( pViewData && pDoc )
+ {
+ String theArea;
+ ScDBCollection* pDBColl = pDoc->GetDBCollection();
+ String theDbArea;
+ String theDbName = aStrNoName;
+ const SCTAB nCurTab = pViewData->GetTabNo();
+ const ScAddress::Convention eConv = pDoc->GetAddressConvention();
+#endif /* !TEST_LAYOUT */
+
+ aLbOutPos.Clear();
+ aLbOutPos.InsertEntry( aStrUndefined, 0 );
+ aLbOutPos.Disable();
+
+#if !TEST_LAYOUT
+ ScAreaNameIterator aIter( pDoc );
+ String aName;
+ ScRange aRange;
+ String aRefStr;
+ while ( aIter.Next( aName, aRange ) )
+ {
+ USHORT nInsert = aLbOutPos.InsertEntry( aName );
+
+ aRange.aStart.Format( aRefStr, SCA_ABS_3D, pDoc, eConv );
+ aLbOutPos.SetEntryData( nInsert, new String( aRefStr ) );
+ }
+#endif /* !TEST_LAYOUT */
+
+ aLbOutPos.SelectEntryPos( 0 );
+ aEdOutPos.SetText( EMPTY_STRING );
+
+#if !TEST_LAYOUT
+ /*
+ * Ueberpruefen, ob es sich bei dem uebergebenen
+ * Bereich um einen Datenbankbereich handelt:
+ */
+
+ ScAddress aScAddress( rSortData.nCol1, rSortData.nRow1, nCurTab );
+ ScRange( aScAddress,
+ ScAddress( rSortData.nCol2, rSortData.nRow2, nCurTab )
+ ).Format( theArea, SCR_ABS, pDoc, eConv );
+
+ if ( pDBColl )
+ {
+ ScDBData* pDBData
+ = pDBColl->GetDBAtArea( nCurTab,
+ rSortData.nCol1, rSortData.nRow1,
+ rSortData.nCol2, rSortData.nRow2 );
+ if ( pDBData )
+ {
+ pDBData->GetName( theDbName );
+ aBtnHeader.Check( pDBData->HasHeader() );
+ }
+ }
+
+ theArea.AppendAscii(RTL_CONSTASCII_STRINGPARAM(" ("));
+ theArea += theDbName;
+ theArea += ')';
+
+ //aFtArea.SetText( theArea );
+ //theArea.Insert( aStrAreaLabel, 0 );
+ //aFtAreaLabel.SetText( theArea );
+
+ aBtnHeader.SetText( aStrColLabel );
+ }
+#endif /* TEST_LAYOUT */
+
+ FillUserSortListBox();
+
+ // get available languages
+
+ aLbLanguage.SetLanguageList( LANG_LIST_ALL | LANG_LIST_ONLY_KNOWN, FALSE );
+ aLbLanguage.InsertLanguage( LANGUAGE_SYSTEM );
+}
+
+//------------------------------------------------------------------------
+
+USHORT* __EXPORT ScTabPageSortOptions::GetRanges()
+{
+ return pSortRanges;
+}
+
+// -----------------------------------------------------------------------
+
+#if ENABLE_LAYOUT
+#undef SfxTabPage
+#endif /* ENABLE_LAYOUT */
+SfxTabPage* __EXPORT ScTabPageSortOptions::Create(
+ Window* pParent,
+ const SfxItemSet& rArgSet )
+{
+ return ( new ScTabPageSortOptions( pParent, rArgSet ) );
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT ScTabPageSortOptions::Reset( const SfxItemSet& /* rArgSet */ )
+{
+ if ( rSortData.bUserDef )
+ {
+ aBtnSortUser.Check( TRUE );
+ aLbSortUser.Enable();
+ aLbSortUser.SelectEntryPos( rSortData.nUserIndex );
+ }
+ else
+ {
+ aBtnSortUser.Check( FALSE );
+ aLbSortUser.Disable();
+ aLbSortUser.SelectEntryPos( 0 );
+ }
+
+ aBtnCase.Check ( rSortData.bCaseSens );
+ aBtnFormats.Check ( rSortData.bIncludePattern );
+ aBtnHeader.Check ( rSortData.bHasHeader );
+ aBtnNaturalSort.Check ( rSortData.bNaturalSort );
+
+ if ( rSortData.bByRow )
+ {
+ aBtnTopDown.Check();
+ aBtnHeader.SetText( aStrColLabel );
+ }
+ else
+ {
+ aBtnLeftRight.Check();
+ aBtnHeader.SetText( aStrRowLabel );
+ }
+
+ LanguageType eLang = MsLangId::convertLocaleToLanguage( rSortData.aCollatorLocale );
+ if ( eLang == LANGUAGE_DONTKNOW )
+ eLang = LANGUAGE_SYSTEM;
+ aLbLanguage.SelectLanguage( eLang );
+ FillAlgorHdl( &aLbLanguage ); // get algorithms, select default
+ if ( rSortData.aCollatorAlgorithm.Len() )
+ aLbAlgorithm.SelectEntry( pColRes->GetTranslation( rSortData.aCollatorAlgorithm ) );
+
+ if ( pDoc && !rSortData.bInplace )
+ {
+ String aStr;
+ USHORT nFormat = (rSortData.nDestTab != pViewData->GetTabNo())
+ ? SCR_ABS_3D
+ : SCR_ABS;
+
+ theOutPos.Set( rSortData.nDestCol,
+ rSortData.nDestRow,
+ rSortData.nDestTab );
+
+ theOutPos.Format( aStr, nFormat, pDoc, pDoc->GetAddressConvention() );
+ aBtnCopyResult.Check();
+ aLbOutPos.Enable();
+ aEdOutPos.Enable();
+ aEdOutPos.SetText( aStr );
+ EdOutPosModHdl( &aEdOutPos );
+ aEdOutPos.GrabFocus();
+ aEdOutPos.SetSelection( Selection( 0, SELECTION_MAX ) );
+ }
+ else
+ {
+ aBtnCopyResult.Check( FALSE );
+ aLbOutPos.Disable();
+ aEdOutPos.Disable();
+ aEdOutPos.SetText( EMPTY_STRING );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+BOOL __EXPORT ScTabPageSortOptions::FillItemSet( SfxItemSet& rArgSet )
+{
+ ScSortParam theSortData = rSortData;
+ if (pDlg)
+ {
+ const SfxItemSet* pExample = pDlg->GetExampleSet();
+ const SfxPoolItem* pItem;
+ if ( pExample && pExample->GetItemState( nWhichSort, TRUE, &pItem ) == SFX_ITEM_SET )
+ theSortData = ((const ScSortItem*)pItem)->GetSortData();
+ }
+
+ theSortData.bByRow = aBtnTopDown.IsChecked();
+ theSortData.bHasHeader = aBtnHeader.IsChecked();
+ theSortData.bCaseSens = aBtnCase.IsChecked();
+ theSortData.bNaturalSort = aBtnNaturalSort.IsChecked();
+ theSortData.bIncludePattern = aBtnFormats.IsChecked();
+ theSortData.bInplace = !aBtnCopyResult.IsChecked();
+ theSortData.nDestCol = theOutPos.Col();
+ theSortData.nDestRow = theOutPos.Row();
+ theSortData.nDestTab = theOutPos.Tab();
+ theSortData.bUserDef = aBtnSortUser.IsChecked();
+ theSortData.nUserIndex = (aBtnSortUser.IsChecked())
+ ? aLbSortUser.GetSelectEntryPos()
+ : 0;
+
+ // get locale
+ LanguageType eLang = aLbLanguage.GetSelectLanguage();
+ theSortData.aCollatorLocale = MsLangId::convertLanguageToLocale( eLang, false );
+
+ // get algorithm
+ String sAlg;
+ if ( eLang != LANGUAGE_SYSTEM )
+ {
+ uno::Sequence<rtl::OUString> aAlgos = pColWrap->listCollatorAlgorithms(
+ theSortData.aCollatorLocale );
+ USHORT nSel = aLbAlgorithm.GetSelectEntryPos();
+ if ( nSel < aAlgos.getLength() )
+ sAlg = aAlgos[nSel];
+ }
+ theSortData.aCollatorAlgorithm = sAlg;
+
+#if !TEST_LAYOUT
+ rArgSet.Put( ScSortItem( SCITEM_SORTDATA, &theSortData ) );
+#endif /* TEST_LAYOUT */
+ return TRUE;
+}
+
+// -----------------------------------------------------------------------
+
+// fuer Datenaustausch ohne Dialog-Umweg: (! noch zu tun !)
+// void ScTabPageSortOptions::ActivatePage( const SfxItemSet& rSet )
+void __EXPORT ScTabPageSortOptions::ActivatePage()
+{
+ if ( pDlg )
+ {
+ if ( aBtnHeader.IsChecked() != pDlg->GetHeaders() )
+ {
+ aBtnHeader.Check( pDlg->GetHeaders() );
+ }
+
+ if ( aBtnTopDown.IsChecked() != pDlg->GetByRows() )
+ {
+ aBtnTopDown.Check( pDlg->GetByRows() );
+ aBtnLeftRight.Check( !pDlg->GetByRows() );
+ }
+
+ aBtnHeader.SetText( (pDlg->GetByRows())
+ ? aStrColLabel
+ : aStrRowLabel );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+int __EXPORT ScTabPageSortOptions::DeactivatePage( SfxItemSet* pSetP )
+{
+ BOOL bPosInputOk = TRUE;
+
+ if ( aBtnCopyResult.IsChecked() )
+ {
+ String thePosStr = aEdOutPos.GetText();
+ ScAddress thePos;
+ xub_StrLen nColonPos = thePosStr.Search( ':' );
+
+ if ( STRING_NOTFOUND != nColonPos )
+ thePosStr.Erase( nColonPos );
+
+ if ( pViewData )
+ {
+ // visible table is default for input without table
+ // must be changed to GetRefTabNo when sorting has RefInput!
+ thePos.SetTab( pViewData->GetTabNo() );
+ }
+
+ USHORT nResult = thePos.Parse( thePosStr, pDoc, pDoc->GetAddressConvention() );
+
+ bPosInputOk = ( SCA_VALID == (nResult & SCA_VALID) );
+
+ if ( !bPosInputOk )
+ {
+#if !ENABLE_LAYOUT
+ ErrorBox( this, WinBits( WB_OK | WB_DEF_OK ),
+ ScGlobal::GetRscString( STR_INVALID_TABREF )
+ ).Execute();
+#endif /* ENABLE_LAYOUT */
+ aEdOutPos.GrabFocus();
+ aEdOutPos.SetSelection( Selection( 0, SELECTION_MAX ) );
+ theOutPos.Set(0,0,0);
+ }
+ else
+ {
+ aEdOutPos.SetText( thePosStr );
+ theOutPos = thePos;
+ }
+ }
+
+ if ( pDlg && bPosInputOk )
+ {
+ pDlg->SetHeaders( aBtnHeader.IsChecked() );
+ pDlg->SetByRows ( aBtnTopDown.IsChecked() );
+ }
+
+ if ( pSetP && bPosInputOk )
+ FillItemSet( *pSetP );
+
+ return bPosInputOk ? SfxTabPage::LEAVE_PAGE : SfxTabPage::KEEP_PAGE;
+}
+
+// -----------------------------------------------------------------------
+
+void ScTabPageSortOptions::FillUserSortListBox()
+{
+ ScUserList* pUserLists = ScGlobal::GetUserList();
+
+ aLbSortUser.Clear();
+ if ( pUserLists )
+ {
+ USHORT nCount = pUserLists->GetCount();
+ if ( nCount > 0 )
+ for ( USHORT i=0; i<nCount; i++ )
+ aLbSortUser.InsertEntry( (*pUserLists)[i]->GetString() );
+ }
+}
+
+// -----------------------------------------------------------------------
+// Handler:
+
+IMPL_LINK( ScTabPageSortOptions, EnableHdl, CheckBox *, pBox )
+{
+ if ( pBox == &aBtnCopyResult )
+ {
+ if ( pBox->IsChecked() )
+ {
+ aLbOutPos.Enable();
+ aEdOutPos.Enable();
+ aEdOutPos.GrabFocus();
+ }
+ else
+ {
+ aLbOutPos.Disable();
+ aEdOutPos.Disable();
+ }
+ }
+ else if ( pBox == &aBtnSortUser )
+ {
+ if ( pBox->IsChecked() )
+ {
+ aLbSortUser.Enable();
+ aLbSortUser.GrabFocus();
+ }
+ else
+ aLbSortUser.Disable();
+ }
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( ScTabPageSortOptions, SelOutPosHdl, ListBox *, pLb )
+{
+ if ( pLb == &aLbOutPos )
+ {
+ String aString;
+ USHORT nSelPos = aLbOutPos.GetSelectEntryPos();
+
+ if ( nSelPos > 0 )
+ aString = *(String*)aLbOutPos.GetEntryData( nSelPos );
+
+ aEdOutPos.SetText( aString );
+ }
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( ScTabPageSortOptions, SortDirHdl, RadioButton *, pBtn )
+{
+ if ( pBtn == &aBtnTopDown )
+ {
+ aBtnHeader.SetText( aStrColLabel );
+ }
+ else if ( pBtn == &aBtnLeftRight )
+ {
+ aBtnHeader.SetText( aStrRowLabel );
+ }
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+void __EXPORT ScTabPageSortOptions::EdOutPosModHdl( Edit* pEd )
+{
+ if ( pEd == &aEdOutPos )
+ {
+ String theCurPosStr = aEdOutPos.GetText();
+ USHORT nResult = ScAddress().Parse( theCurPosStr, pDoc, pDoc->GetAddressConvention() );
+
+ if ( SCA_VALID == (nResult & SCA_VALID) )
+ {
+ String* pStr = NULL;
+ BOOL bFound = FALSE;
+ USHORT i = 0;
+ USHORT nCount = aLbOutPos.GetEntryCount();
+
+ for ( i=2; i<nCount && !bFound; i++ )
+ {
+ pStr = (String*)aLbOutPos.GetEntryData( i );
+ bFound = (theCurPosStr == *pStr);
+ }
+
+ if ( bFound )
+ aLbOutPos.SelectEntryPos( --i );
+ else
+ aLbOutPos.SelectEntryPos( 0 );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( ScTabPageSortOptions, FillAlgorHdl, void *, EMPTYARG )
+{
+ aLbAlgorithm.SetUpdateMode( FALSE );
+ aLbAlgorithm.Clear();
+
+ LanguageType eLang = aLbLanguage.GetSelectLanguage();
+ if ( eLang == LANGUAGE_SYSTEM )
+ {
+ // for LANGUAGE_SYSTEM no algorithm can be selected because
+ // it wouldn't necessarily exist for other languages
+ // -> leave list box empty if LANGUAGE_SYSTEM is selected
+ aFtAlgorithm.Enable( FALSE ); // nothing to select
+ aLbAlgorithm.Enable( FALSE ); // nothing to select
+ }
+ else
+ {
+ lang::Locale aLocale( MsLangId::convertLanguageToLocale( eLang ));
+ uno::Sequence<rtl::OUString> aAlgos = pColWrap->listCollatorAlgorithms( aLocale );
+
+ long nCount = aAlgos.getLength();
+ const rtl::OUString* pArray = aAlgos.getConstArray();
+ for (long i=0; i<nCount; i++)
+ {
+ String sAlg = pArray[i];
+ String sUser = pColRes->GetTranslation( sAlg );
+ aLbAlgorithm.InsertEntry( sUser, LISTBOX_APPEND );
+ }
+ aLbAlgorithm.SelectEntryPos( 0 ); // first entry is default
+ aFtAlgorithm.Enable( nCount > 1 ); // enable only if there is a choice
+ aLbAlgorithm.Enable( nCount > 1 ); // enable only if there is a choice
+ }
+
+ aLbAlgorithm.SetUpdateMode( TRUE );
+ return 0;
+}
+
+
diff --git a/toolkit/workben/layout/tpsort.hxx b/toolkit/workben/layout/tpsort.hxx
new file mode 100644
index 000000000000..bb8b30e396df
--- /dev/null
+++ b/toolkit/workben/layout/tpsort.hxx
@@ -0,0 +1,220 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: tpsort.hxx,v $
+ * $Revision: 1.9 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SC_TPSORT_HXX
+#define SC_TPSORT_HXX
+
+
+#include <sfx2/tabdlg.hxx>
+#include <vcl/edit.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/lstbox.hxx>
+#include <svtools/stdctrl.hxx>
+#include <svx/langbox.hxx>
+
+
+#include "global.hxx"
+#include "address.hxx"
+
+//------------------------------------------------------------------------
+
+// +1 because one field is reserved for the "- undefined -" entry
+#define SC_MAXFIELDS MAXCOLCOUNT+1
+
+class ScViewData;
+class ScSortDlg;
+struct ScSortParam;
+
+//========================================================================
+// Kriterien (Sort Criteria)
+
+class ScTabPageSortFields : public SfxTabPage
+{
+public:
+ ScTabPageSortFields( Window* pParent,
+ const SfxItemSet& rArgSet );
+ ~ScTabPageSortFields();
+
+ static SfxTabPage* Create ( Window* pParent,
+ const SfxItemSet& rArgSet );
+ static USHORT* GetRanges ();
+ virtual BOOL FillItemSet ( SfxItemSet& rArgSet );
+ virtual void Reset ( const SfxItemSet& rArgSet );
+
+protected:
+// fuer Datenaustausch (sollte noch umgestellt werden!)
+// virtual void ActivatePage ( const SfxItemSet& rSet );
+ using SfxTabPage::ActivatePage;
+ using SfxTabPage::DeactivatePage;
+ virtual void ActivatePage ();
+ virtual int DeactivatePage ( SfxItemSet* pSet = 0);
+
+private:
+ FixedLine aFlSort1;
+ ListBox aLbSort1;
+ RadioButton aBtnUp1;
+ RadioButton aBtnDown1;
+
+ FixedLine aFlSort2;
+ ListBox aLbSort2;
+ RadioButton aBtnUp2;
+ RadioButton aBtnDown2;
+
+ FixedLine aFlSort3;
+ ListBox aLbSort3;
+ RadioButton aBtnUp3;
+ RadioButton aBtnDown3;
+
+ String aStrUndefined;
+ String aStrColumn;
+ String aStrRow;
+
+ const USHORT nWhichSort;
+ ScSortDlg* pDlg;
+ ScViewData* pViewData;
+ const ScSortParam& rSortData;
+ SCCOLROW nFieldArr[SC_MAXFIELDS];
+ USHORT nFieldCount;
+ SCCOL nFirstCol;
+ SCROW nFirstRow;
+ BOOL bHasHeader;
+ BOOL bSortByRows;
+
+ ListBox* aSortLbArr[3];
+ RadioButton* aDirBtnArr[3][2];
+ FixedLine* aFlArr[3];
+
+#ifdef _TPSORT_CXX
+private:
+ void Init ();
+ void DisableField ( USHORT nField );
+ void EnableField ( USHORT nField );
+ void FillFieldLists ();
+ USHORT GetFieldSelPos ( SCCOLROW nField );
+
+ // Handler ------------------------
+ DECL_LINK( SelectHdl, ListBox * );
+#endif
+};
+
+//========================================================================
+// Sortieroptionen (Sort Options)
+
+class ScDocument;
+class ScRangeData;
+class CollatorRessource;
+class CollatorWrapper;
+
+#include <sfx2/layout.hxx>
+#include <layout/layout-pre.hxx>
+
+class ScTabPageSortOptions : public SfxTabPage
+{
+public:
+ ScTabPageSortOptions( Window* pParent,
+ const SfxItemSet& rArgSet );
+ ~ScTabPageSortOptions();
+
+#undef SfxTabPage
+#define SfxTabPage ::SfxTabPage
+ static SfxTabPage* Create ( Window* pParent,
+ const SfxItemSet& rArgSet );
+ static USHORT* GetRanges ();
+ virtual BOOL FillItemSet ( SfxItemSet& rArgSet );
+ virtual void Reset ( const SfxItemSet& rArgSet );
+
+protected:
+// fuer Datenaustausch (sollte noch umgestellt werden!)
+// virtual void ActivatePage ( const SfxItemSet& rSet );
+ using SfxTabPage::ActivatePage;
+ using SfxTabPage::DeactivatePage;
+ virtual void ActivatePage ();
+ virtual int DeactivatePage ( SfxItemSet* pSet = 0);
+
+private:
+
+ CheckBox aBtnCase;
+ CheckBox aBtnHeader;
+ CheckBox aBtnFormats;
+ CheckBox aBtnCopyResult;
+
+ CheckBox aBtnNaturalSort;
+ ListBox aLbOutPos;
+ Edit aEdOutPos;
+
+ CheckBox aBtnSortUser;
+ ListBox aLbSortUser;
+
+ FixedText aFtLanguage;
+ SvxLanguageBox aLbLanguage;
+ FixedText aFtAlgorithm;
+ ListBox aLbAlgorithm;
+
+ FixedLine aLineDirection;
+ RadioButton aBtnTopDown;
+ RadioButton aBtnLeftRight;
+
+// FixedText aFtAreaLabel;
+// FixedInfo aFtArea;
+ LocalizedString aStrRowLabel;
+ LocalizedString aStrColLabel;
+ LocalizedString aStrUndefined;
+ String aStrNoName;
+ String aStrAreaLabel;
+
+ const USHORT nWhichSort;
+ const ScSortParam& rSortData;
+ ScViewData* pViewData;
+ ScDocument* pDoc;
+ ScSortDlg* pDlg;
+ ScAddress theOutPos;
+
+ CollatorRessource* pColRes;
+ CollatorWrapper* pColWrap;
+
+#ifdef _TPSORT_CXX
+private:
+ void Init ();
+ void FillUserSortListBox ();
+ void FillOutPosList ();
+
+ // Handler ------------------------
+ DECL_LINK( EnableHdl, CheckBox * );
+ DECL_LINK( SelOutPosHdl, ListBox * );
+ void EdOutPosModHdl ( Edit* pEd );
+ DECL_LINK( SortDirHdl, RadioButton * );
+ DECL_LINK( FillAlgorHdl, void * );
+#endif
+};
+
+#include <layout/layout-post.hxx>
+
+#endif // SC_TPSORT_HXX
+
diff --git a/toolkit/workben/layout/uno.hxx b/toolkit/workben/layout/uno.hxx
index 890341deccdf..a449429338fc 100644
--- a/toolkit/workben/layout/uno.hxx
+++ b/toolkit/workben/layout/uno.hxx
@@ -32,13 +32,13 @@
#ifndef _LAYOUT_UNO_HXX
#define _LAYOUT_UNO_HXX
-#include <stdio.h>
+#include <cstdio>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include "root.hxx"
-#include "factory.hxx"
+#include <layout/core/root.hxx>
+#include <layout/core/factory.hxx>
#if LAYOUT_WEAK
#include <cppuhelper/implbase1.hxx>
diff --git a/toolkit/workben/layout/wordcount-plain.xml b/toolkit/workben/layout/wordcount-plain.xml
index cf31a7614840..a7c34fe5a16f 100644
--- a/toolkit/workben/layout/wordcount-plain.xml
+++ b/toolkit/workben/layout/wordcount-plain.xml
@@ -22,7 +22,7 @@
</hbox>
<fixedline height="8" id="FL_BOTTOM" width="158" x="6" y="77"/>
<hbox>
- <okbutton def-button="true" height="14" id="PB_OK" width="50" x="61" y="88"/>
+ <okbutton defbutton="true" height="14" id="PB_OK" width="50" x="61" y="88"/>
<helpbutton height="14" id="PB_HELP" width="50" x="114" y="88"/>
</hbox>
</vbox>
diff --git a/toolkit/workben/layout/wordcount-tight.xml b/toolkit/workben/layout/wordcount-tight.xml
index 009113f6cdcf..a9f6a7a09393 100644
--- a/toolkit/workben/layout/wordcount-tight.xml
+++ b/toolkit/workben/layout/wordcount-tight.xml
@@ -28,7 +28,7 @@
<fixedline cnt:padding="1" id="FL_BOTTOM"/>
<hbox border="5">
<flow homogeneous="true"/>
- <okbutton id="PB_OK" cnt:expand="false" default="true"/>
+ <okbutton id="PB_OK" cnt:expand="false" defbutton="true"/>
<helpbutton id="PB_HELP" cnt:expand="false"/>
</hbox>
</vbox>
diff --git a/toolkit/workben/layout/wordcount.xml b/toolkit/workben/layout/wordcount.xml
index c8f8092e3698..fa9d44f896ad 100644
--- a/toolkit/workben/layout/wordcount.xml
+++ b/toolkit/workben/layout/wordcount.xml
@@ -7,12 +7,12 @@
xmlns:cnt="http://openoffice.org/2007/layout/container"
help-id="HID_DLG_WORDCOUNT"
id="DLG_WORDCOUNT"
- sizeable="true" moveable="true" optimumsize="true"
+ sizeable="true" moveable="true" optimumsize="true" closeable="true"
has_border="true" sv-look="true" _title="Word Count">
- <vbox border="5" spacing="5">
+ <vbox border="12" spacing="6">
<fixedline id="FL_CURRENT" _text="Current selection"/>
<hbox>
- <vbox cnt:padding="13" spacing="5">
+ <vbox cnt:padding="12" spacing="6">
<hbox>
<fixedtext id="FT_CURRENTWORD" _label="Words:"/>
<flow cnt:padding="60"/>
@@ -25,11 +25,11 @@
</hbox>
</vbox>
</hbox>
- <!-- if we could do cnt:cnt:padding="-13" here, we would not have to close
- and reope the hbox/vbox thing !-->
+ <!-- if we could do cnt:cnt:padding="-12" here, we would not have to close
+ and reopen the hbox/vbox thing !-->
<fixedline id="FL_DOC" _text="Whole document"/>
<hbox>
- <vbox cnt:padding="13" spacing="5">
+ <vbox cnt:padding="12" spacing="6">
<hbox>
<fixedtext id="FT_DOCWORD" _label="Words:"/>
<fixedtext id="FI_DOCWORD" right="true" _label="000"/>
@@ -41,9 +41,9 @@
</vbox>
</hbox>
<fixedline cnt:padding="1" id="FL_BOTTOM"/>
- <dialogbuttonhbox spacing="5">
+ <dialogbuttonhbox spacing="12">
<flow/>
- <okbutton id="PB_OK"/>
+ <okbutton defbutton="true" id="PB_OK"/>
<helpbutton id="PB_HELP"/>
</dialogbuttonhbox>
</vbox>
diff --git a/toolkit/workben/layout/wordcountdialog.cxx b/toolkit/workben/layout/wordcountdialog.cxx
index 87bca710aabf..49aa2f9ae7a7 100644
--- a/toolkit/workben/layout/wordcountdialog.cxx
+++ b/toolkit/workben/layout/wordcountdialog.cxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: wordcountdialog.cxx,v $
- * $Revision: 1.4 $
+ * $Revision: 1.10 $
*
* This file is part of OpenOffice.org.
*
@@ -47,6 +47,15 @@
#include <wordcountdialog.hrc>
#endif /* !TEST_LAYOUT */
+#if ENABLE_LAYOUT
+#undef SW_RES
+#define SW_RES(x) #x
+#undef SfxModalDialog
+#define SfxModalDialog( parent, id ) Dialog( parent, "wordcount.xml", id )
+#define SW_WORDCOUNTDIALOG_HRC
+#include <helpid.h>
+#endif /* ENABLE_LAYOUT */
+
/*-- 06.04.2004 16:05:55---------------------------------------------------
-----------------------------------------------------------------------*/
@@ -73,6 +82,9 @@ SwWordCountDialog::SwWordCountDialog(Window* pParent) :
#pragma warning (default : 4355)
#endif
{
+#if ENABLE_LAYOUT
+ SetHelpId (HID_DLG_WORDCOUNT);
+#endif /* ENABLE_LAYOUT */
FreeResource();
}
/*-- 06.04.2004 16:05:56---------------------------------------------------
@@ -84,17 +96,12 @@ SwWordCountDialog::~SwWordCountDialog()
/*-- 06.04.2004 16:05:57---------------------------------------------------
-----------------------------------------------------------------------*/
-void SwWordCountDialog::SetValues(const SwDocStat&
-#if !TEST_LAYOUT
- rCurrent,
-#endif
- , const SwDocStat&
-#if !TEST_LAYOUT
- rDoc
-#endif
- )
+void SwWordCountDialog::SetValues(const SwDocStat& rCurrent, const SwDocStat& rDoc)
{
-#if !TEST_LAYOUT
+#if TEST_LAYOUT
+ (void) rCurrent;
+ (void) rDoc;
+#else /* !TEST_LAYOUT */
aCurrentWordFI.SetText( String::CreateFromInt32(rCurrent.nWord ));
aCurrentCharacterFI.SetText(String::CreateFromInt32(rCurrent.nChar ));
aDocWordFI.SetText( String::CreateFromInt32(rDoc.nWord ));
diff --git a/toolkit/workben/layout/wordcountdialog.hxx b/toolkit/workben/layout/wordcountdialog.hxx
index 50c43459d12d..b19b3cca8c94 100644
--- a/toolkit/workben/layout/wordcountdialog.hxx
+++ b/toolkit/workben/layout/wordcountdialog.hxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: wordcountdialog.hxx,v $
- * $Revision: 1.3 $
+ * $Revision: 1.5 $
*
* This file is part of OpenOffice.org.
*
diff --git a/toolkit/workben/layout/zoom-indent.xml b/toolkit/workben/layout/zoom-indent.xml
index 7389780a3a9d..bd5853acdce4 100644
--- a/toolkit/workben/layout/zoom-indent.xml
+++ b/toolkit/workben/layout/zoom-indent.xml
@@ -33,7 +33,7 @@
</hbox>
</vbox>
<vbox border="6" spacing="4">
- <okbutton id="OkButton" cnt:expand="false" default="true"/>
+ <okbutton id="OkButton" cnt:expand="false" defbutton="true"/>
<cancelbutton id="CancelButton" cnt:expand="false"/>
<helpbutton id="HelpButton" cnt:expand="false"/>
</vbox>
diff --git a/toolkit/workben/layout/zoom-plain.xml b/toolkit/workben/layout/zoom-plain.xml
index 30b72a3e564f..c8383b8767a7 100644
--- a/toolkit/workben/layout/zoom-plain.xml
+++ b/toolkit/workben/layout/zoom-plain.xml
@@ -3,7 +3,7 @@
<modaldialog sizeable="true" height="142" help-id="SID_ATTR_ZOOM" moveable="true" output-size="true" id="RID_SVXDLG_ZOOM" sv-look="true" text="Zoom" width="160" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container">
<vbox>
<fixedline height="8" id="FL_ZOOM" text="Zoom factor" width="92" x="6" y="3"/>
- <okbutton def-button="true" height="14" id="BTN_ZOOM_OK" width="50" x="104" y="6"/>
+ <okbutton defbutton="true" height="14" id="BTN_ZOOM_OK" width="50" x="104" y="6"/>
<radiobutton height="10" id="BTN_WHOLE_PAGE" width="80" x="12" y="14"/>
<cancelbutton height="14" id="BTN_ZOOM_CANCEL" width="50" x="104" y="23"/>
<radiobutton height="10" id="BTN_PAGE_WIDTH" width="80" x="12" y="27"/>
diff --git a/toolkit/workben/layout/zoom.cxx b/toolkit/workben/layout/zoom.cxx
index 6717f831b509..39fcb5e94401 100644
--- a/toolkit/workben/layout/zoom.cxx
+++ b/toolkit/workben/layout/zoom.cxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: zoom.cxx,v $
- * $Revision: 1.4 $
+ * $Revision: 1.12 $
*
* This file is part of OpenOffice.org.
*
@@ -51,9 +51,9 @@
#define _SVX_ZOOM_CXX
#include <svx/dialogs.hrc>
-#if !ENABLE_LAYOUT
+#if !TEST_LAYOUT
#include "zoom.hrc"
-#endif /* !ENABLE_LAYOUT */
+#endif /* !TEST_LAYOUT */
#include "zoom.hxx"
#if TEST_LAYOUT
@@ -114,6 +114,13 @@ struct SvxViewLayoutItem : public LAYOUT_SfxPoolItem
#include <layout/layout-pre.hxx>
+#if ENABLE_LAYOUT
+#undef SVX_RES
+#define SVX_RES(x) #x
+#undef SfxModalDialog
+#define SfxModalDialog( parent, id ) Dialog( parent, "zoom.xml", id )
+#endif /* ENABLE_LAYOUT */
+
// static ----------------------------------------------------------------
static USHORT pRanges[] =
@@ -284,6 +291,9 @@ SvxZoomDialog::SvxZoomDialog( Window* pParent, const SfxItemSet& rCoreSet ) :
bModified ( FALSE )
{
+#if ENABLE_LAYOUT
+ SetHelpId (SID_ATTR_ZOOM);
+#endif /* ENABLE_LAYOUT */
Link aLink = LINK( this, SvxZoomDialog, UserHdl );
a100Btn.SetClickHdl( aLink );
aOptimalBtn.SetClickHdl( aLink );
diff --git a/canvas/source/cairo/prex.h b/toolkit/workben/layout/zoom.hrc
index 6f1289fe9e5e..3f0f979bd4ae 100644
--- a/canvas/source/cairo/prex.h
+++ b/toolkit/workben/layout/zoom.hrc
@@ -2,11 +2,11 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: prex.h,v $
+ * $RCSfile: zoom.hrc,v $
*
* $Revision: 1.4 $
*
- * last change: $Author: kz $ $Date: 2008-06-30 12:58:44 $
+ * last change: $Author: kz $ $Date: 2008/03/07 15:16:57 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -32,55 +32,30 @@
* MA 02111-1307 USA
*
************************************************************************/
-
-#ifndef _PREX_H
-#define _PREX_H
-
-#define Window XLIB_Window
-#define BYTE XLIB_BYTE
-#define INT8 XLIB_INT8
-#define INT64 XLIB_INT64
-#define BOOL XLIB_BOOL
-#define Font XLIB_Font
-#define Cursor XLIB_Cursor
-#define String XLIB_String
-#define KeyCode XLIB_KeyCode
-#define Region XLIB_Region
-#define Icon XLIB_Icon
-#define Time XLIB_Time
-#define Region XLIB_Region
-#define Boolean XLIB_Boolean
-
-#if defined __cplusplus
-extern "C" {
-#endif
-
-#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX) // should really check for xfree86 or for X11R6.1 and higher
-#define __XKeyboardExtension__ 1
-#else
-#define __XKeyboardExtension__ 0
-#endif
-
-#include <X11/X.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/StringDefs.h>
-#include <X11/extensions/Xrender.h>
-#if __XKeyboardExtension__
-#include <X11/XKBlib.h>
-#endif
-typedef unsigned long Pixel;
-
-#undef DestroyAll
-#define DestroyAll XLIB_DestroyAll
-#define XLIB_DestroyAll 0
-#undef String
-#define String XLIB_String
-
-#undef KeyCode
-#define KeyCode XLIB_KeyCode //undef in intrinsics
-
-#define __Ol_OlXlibExt_h__
+#ifndef _SVX_ZOOM_HRC
+#define _SVX_ZOOM_HRC
+
+// defines ------------------------------------------------------------------
+
+#define FL_ZOOM 14
+#define BTN_OPTIMAL 15
+#define BTN_WHOLE_PAGE 16
+#define BTN_PAGE_WIDTH 17
+#define BTN_100 18
+#define BTN_USER 19
+#define ED_USER 20
+
+#define FL_VIEWLAYOUT 21
+#define BTN_AUTOMATIC 22
+#define BTN_SINGLE 23
+#define BTN_COLUMNS 24
+#define ED_COLUMNS 25
+#define CHK_BOOK 26
+
+#define FL_BOTTOM 27
+#define BTN_ZOOM_OK 28
+#define BTN_ZOOM_CANCEL 29
+#define BTN_ZOOM_HELP 30
#endif
diff --git a/toolkit/workben/layout/zoom.hxx b/toolkit/workben/layout/zoom.hxx
index b865a9b8fc9e..f16e08d558aa 100644
--- a/toolkit/workben/layout/zoom.hxx
+++ b/toolkit/workben/layout/zoom.hxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: zoom.hxx,v $
- * $Revision: 1.4 $
+ * $Revision: 1.6 $
*
* This file is part of OpenOffice.org.
*
diff --git a/toolkit/workben/layout/zoom.xml b/toolkit/workben/layout/zoom.xml
index 78e30ee11dfd..5cc376168a27 100644
--- a/toolkit/workben/layout/zoom.xml
+++ b/toolkit/workben/layout/zoom.xml
@@ -7,20 +7,20 @@
xmlns:cnt="http://openoffice.org/2007/layout/container"
id="RID_SVXDLG_ZOOM" _title="Zoom &amp; View Layout" optimumsize="true"
help-id="SID_ATTR_ZOOM"
- has_border="true" sizeable="true" moveable="true">
- <vbox spacing="5" border="5">
+ has_border="true" sizeable="true" moveable="true" closeable="true">
+ <vbox spacing="0" border="12">
<hbox spacing="0" border="0">
- <vbox spacing="5" border="5">
- <fixedline id="FL_ZOOM" _text="Zoom factor" cnt:expand="true"/>
- <radiobutton radiogroup="zoom" id="BTN_OPTIMAL" _label="Optimal"/>
- <radiobutton radiogroup="zoom" id="BTN_WHOLE_PAGE" _label="Whole Page"/>
- <radiobutton radiogroup="zoom" id="BTN_PAGE_WIDTH" _label="Page Width"/>
- <radiobutton radiogroup="zoom" id="BTN_100" _label="100 %"/>
+ <vbox spacing="6" border="0">
+ <fixedline id="FL_ZOOM" _text="Zoom factor" cnt:expand="false"/>
+ <radiobutton radiogroup="zoom-factor" id="BTN_OPTIMAL" _label="Optimal"/>
+ <radiobutton radiogroup="zoom-factor" id="BTN_WHOLE_PAGE" _label="Whole Page"/>
+ <radiobutton radiogroup="zoom-factor" id="BTN_PAGE_WIDTH" _label="Page Width"/>
+ <radiobutton radiogroup="zoom-factor" id="BTN_100" _label="100 %"/>
<hbox cnt:expand="false" cnt:fill="true">
<align cnt:expand="false" cnt:fill="true">
- <radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom" id="BTN_USER" _label="Variable"/>
+ <radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom-factor" id="BTN_USER" _label="Variable"/>
</align>
- <flow cnt:padding="10" cnt:expand="false"/>
+ <flow cnt:padding="12" cnt:expand="false"/>
<metricfield id="ED_USER" value-step="1"
repeat="true" has_border="true" spin="true"
_text="100%" unit="11" custom-unit-text="%"
@@ -28,15 +28,16 @@
cnt:expand="false"/>
</hbox>
</vbox>
- <vbox spacing="5" border="5">
- <fixedline id="FL_VIEWLAYOUT" _text="View layout" cnt:expand="true"/>
- <radiobutton radiogroup="zoom" id="BTN_AUTOMATIC" _label="~Automatic"/>
- <radiobutton radiogroup="zoom" id="BTN_SINGLE" _label="~Single page"/>
+ <flow/>
+ <vbox spacing="6" border="0">
+ <fixedline id="FL_VIEWLAYOUT" _text="View layout" cnt:expand="false"/>
+ <radiobutton radiogroup="zoom-layout" id="BTN_AUTOMATIC" _label="~Automatic"/>
+ <radiobutton radiogroup="zoom-layout" id="BTN_SINGLE" _label="~Single page"/>
<hbox cnt:expand="false" cnt:fill="true">
<align cnt:expand="false" cnt:fill="true">
- <radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom" id="BTN_COLUMNS" _label="~Columns"/>
+ <radiobutton cnt:v-align="0.5" cnt:v-fill="0" radiogroup="zoom-layout" id="BTN_COLUMNS" _label="~Columns"/>
</align>
- <flow cnt:padding="10" cnt:expand="false"/>
+ <flow cnt:padding="12" cnt:expand="false"/>
<metricfield id="ED_COLUMNS" value-step="1"
repeat="true" has_border="true" spin="true"
_text="100%"
@@ -45,15 +46,15 @@
spin-value="1"
cnt:expand="false"/>
</hbox>
- <hbox><flow cnt:expand="false" cnt:padding="10"/><checkbox id="CHK_BOOK" _label="~Book mode"/></hbox>
+ <hbox><flow cnt:expand="false" cnt:padding="12"/><checkbox id="CHK_BOOK" _label="~Book mode"/></hbox>
</vbox>
</hbox>
- <fixedline cnt:padding="1" id="FL_BOTTOM"/>
- <dialogbuttonhbox border="5" spacing="5">
+ <fixedline cnt:padding="6" id="FL_BOTTOM"/>
+ <dialogbuttonhbox border="0" spacing="12">
<flow/>
- <okbutton id="BTN_ZOOM_OK"/>
+ <okbutton defbutton="true" id="BTN_ZOOM_OK"/>
<cancelbutton id="BTN_ZOOM_CANCEL"/>
- <helpbutton id="BTN_ZOOM_HELP"/>
+ <helpbutton id="BTN_ZOOM_HELP"/>
</dialogbuttonhbox>
</vbox>
</modaldialog>
diff --git a/toolkit/workben/no_localization b/toolkit/workben/no_localization
new file mode 100644
index 000000000000..3ce3aa0ec048
--- /dev/null
+++ b/toolkit/workben/no_localization
@@ -0,0 +1 @@
+Touch me to prevent that the localisation process extracts strings #i85733#
diff --git a/tools/bootstrp/addexes2/makefile.mk b/tools/bootstrp/addexes2/makefile.mk
index 343dd39c8c71..cd006a35ddd8 100644
--- a/tools/bootstrp/addexes2/makefile.mk
+++ b/tools/bootstrp/addexes2/makefile.mk
@@ -43,7 +43,7 @@ TARGETTYPE=CUI
APP1TARGET= mkunroll
APP1OBJS= $(OBJ)$/mkfilt.obj
-APP1STDLIBS= $(SALLIB) $(VOSLIB) $(TOOLSLIB) $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB)
+APP1STDLIBS= $(SALLIB) $(VOSLIB) $(TOOLSLIB)
.IF "$(OS)"=="LINUX"
APP1STDLIBS+=-lpthread
.ENDIF
diff --git a/tools/bootstrp/makefile.mk b/tools/bootstrp/makefile.mk
index eca32dbd0503..60bfc57bf96b 100644
--- a/tools/bootstrp/makefile.mk
+++ b/tools/bootstrp/makefile.mk
@@ -88,6 +88,8 @@ APP2OBJS= $(OBJ)$/rscdep.obj
APP2LIBS= $(LB)$/$(TARGET).lib $(LB)$/$(TARGET1).lib
APP2STDLIBS= $(SALLIB) $(VOSLIB) $(TOOLSLIB) $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(I18NISOLANGLIB) $(CPPUHELPERLIB) $(SALHELPERLIB)
APP2RPATH= NONE
+APP2RPATH= NONE
+APP2RPATH= NONE
APP3TARGET= so_checksum
APP3OBJS= $(OBJ)$/md5.obj \
diff --git a/tools/bootstrp/md5.cxx b/tools/bootstrp/md5.cxx
index bca89725fac2..a234f278cc9d 100644
--- a/tools/bootstrp/md5.cxx
+++ b/tools/bootstrp/md5.cxx
@@ -44,8 +44,62 @@
#define FILE_OPEN_READ "r"
#endif
+// Extended calc_md5_checksum to recognize Windows executables and libraries. To
+// create the same md5 checksum for a (code/data) identical file it ignores a different
+// date and header checksum. Please see crashrep/source/win32/soreport.cpp
+// where the same method is also used. The crash reporter uses the MD5
+// checksums to transfer them to the crash database. You have to make sure that both
+// methods use the same algorithm otherwise there could be problems with stack reports.
+
+void normalize_pe_image(sal_uInt8* buffer, size_t nBufferSize)
+{
+ const int OFFSET_PE_OFFSET = 0x3c;
+ const int OFFSET_COFF_TIMEDATESTAMP = 4;
+ const int PE_SIGNATURE_SIZE = 4;
+ const int COFFHEADER_SIZE = 20;
+ const int OFFSET_PE_OPTIONALHEADER_CHECKSUM = 64;
+
+ // Check the header part of the file buffer
+ if (buffer[0] == sal_uInt8('M') && buffer[1] == sal_uInt8('Z'))
+ {
+ unsigned long PEHeaderOffset = (long)buffer[OFFSET_PE_OFFSET];
+ if (PEHeaderOffset < nBufferSize-4)
+ {
+ if ( buffer[PEHeaderOffset+0] == sal_uInt8('P') &&
+ buffer[PEHeaderOffset+1] == sal_uInt8('E') &&
+ buffer[PEHeaderOffset+2] == 0 &&
+ buffer[PEHeaderOffset+3] == 0 )
+ {
+ PEHeaderOffset += PE_SIGNATURE_SIZE;
+ if (PEHeaderOffset+OFFSET_COFF_TIMEDATESTAMP < nBufferSize-4)
+ {
+ // Set timedatestamp and checksum fields to a normalized
+ // value to enforce the same MD5 checksum for identical
+ // Windows executables/libraries.
+ buffer[PEHeaderOffset+OFFSET_COFF_TIMEDATESTAMP+0] = 0;
+ buffer[PEHeaderOffset+OFFSET_COFF_TIMEDATESTAMP+1] = 0;
+ buffer[PEHeaderOffset+OFFSET_COFF_TIMEDATESTAMP+2] = 0;
+ buffer[PEHeaderOffset+OFFSET_COFF_TIMEDATESTAMP+3] = 0;
+ }
+
+ if (PEHeaderOffset+COFFHEADER_SIZE+OFFSET_PE_OPTIONALHEADER_CHECKSUM < nBufferSize-4)
+ {
+ // Set checksum to a normalized value
+ buffer[PEHeaderOffset+COFFHEADER_SIZE+OFFSET_PE_OPTIONALHEADER_CHECKSUM] = 0;
+ buffer[PEHeaderOffset+COFFHEADER_SIZE+OFFSET_PE_OPTIONALHEADER_CHECKSUM+1] = 0;
+ buffer[PEHeaderOffset+COFFHEADER_SIZE+OFFSET_PE_OPTIONALHEADER_CHECKSUM+2] = 0;
+ buffer[PEHeaderOffset+COFFHEADER_SIZE+OFFSET_PE_OPTIONALHEADER_CHECKSUM+3] = 0;
+ }
+ }
+ }
+ }
+}
+
rtlDigestError calc_md5_checksum( const char *filename, ByteString &aChecksum )
{
+ const size_t BUFFER_SIZE = 0x1000;
+ const size_t MINIMAL_SIZE = 512;
+
sal_uInt8 checksum[RTL_DIGEST_LENGTH_MD5];
rtlDigestError error = rtl_Digest_E_None;
@@ -58,11 +112,19 @@ rtlDigestError calc_md5_checksum( const char *filename, ByteString &aChecksum )
if ( digest )
{
size_t nBytesRead;
- sal_uInt8 buffer[0x1000];
+ sal_uInt8 buffer[BUFFER_SIZE];
+ bool bHeader(true);
while ( rtl_Digest_E_None == error &&
0 != (nBytesRead = fread( buffer, 1, sizeof(buffer), fp )) )
{
+ if (bHeader)
+ {
+ bHeader = false;
+ if (nBytesRead >= MINIMAL_SIZE && buffer[0] == sal_uInt8('M') && buffer[1] == sal_uInt8('Z') )
+ normalize_pe_image(buffer, nBytesRead);
+ }
+
error = rtl_digest_updateMD5( digest, buffer, nBytesRead );
}
diff --git a/vcl/unx/inc/postx.h b/tools/inc/tools/postx.h
index 68a2c3a31cf8..68a2c3a31cf8 100644
--- a/vcl/unx/inc/postx.h
+++ b/tools/inc/tools/postx.h
diff --git a/vcl/unx/inc/prex.h b/tools/inc/tools/prex.h
index 131e628efe2e..705e33ca5188 100644
--- a/vcl/unx/inc/prex.h
+++ b/tools/inc/tools/prex.h
@@ -50,7 +50,7 @@
extern "C" {
#endif
-#if defined(LINUX) || defined(FREEBSD) // should really check for xfree86 or for X11R6.1 and higher
+#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX) // should really check for xfree86 or for X11R6.1 and higher
#define __XKeyboardExtension__ 1
#else
#define __XKeyboardExtension__ 0
diff --git a/tools/prj/d.lst b/tools/prj/d.lst
index 660afffc37e9..e8fde61686a4 100644
--- a/tools/prj/d.lst
+++ b/tools/prj/d.lst
@@ -31,6 +31,9 @@ mkdir: %_DEST%\inc%_EXT%\bootstrp
..\inc\tools\postwin.h %_DEST%\inc%_EXT%\tools\postwin.h
..\inc\tools\prewin.h %_DEST%\inc%_EXT%\tools\prewin.h
+..\inc\tools\postx.h %_DEST%\inc%_EXT%\tools\postx.h
+..\inc\tools\prex.h %_DEST%\inc%_EXT%\tools\prex.h
+
..\inc\tools\agapi.hxx %_DEST%\inc%_EXT%\tools\agapi.hxx
..\inc\tools\agapi.hxx %_DEST%\inc%_EXT%\tools\agapi.hxx
..\inc\tools\agitem.hxx %_DEST%\inc%_EXT%\tools\agitem.hxx
diff --git a/tools/source/fsys/urlobj.cxx b/tools/source/fsys/urlobj.cxx
index e3484aee4e2d..2aff0d734bf6 100644
--- a/tools/source/fsys/urlobj.cxx
+++ b/tools/source/fsys/urlobj.cxx
@@ -1523,8 +1523,15 @@ bool INetURLObject::convertRelToAbs(rtl::OUString const & rTheRelURIRef,
else if (pEnd - q >= 2 && q[0] == '\\' && q[1] == '\\')
{
q += 2;
- if (scanDomain(q, pEnd) > 0 && (q == pEnd || *q == '\\'))
+ sal_Int32 n = rtl_ustr_indexOfChar_WithLength(
+ q, pEnd - q, '\\');
+ sal_Unicode const * qe = n == -1 ? pEnd : q + n;
+ if (parseHostOrNetBiosName(
+ q, qe, bOctets, ENCODE_ALL, RTL_TEXTENCODING_DONTKNOW,
+ true, NULL))
+ {
bFSys = true; // 1st
+ }
}
if (bFSys)
{
diff --git a/tools/source/generic/poly.cxx b/tools/source/generic/poly.cxx
index 21024f081383..5cca29b3066e 100644
--- a/tools/source/generic/poly.cxx
+++ b/tools/source/generic/poly.cxx
@@ -1004,8 +1004,8 @@ void Polygon::GetSimple( Polygon& rResult ) const
rResult = Polygon( (USHORT)aPointVector.size() );
::std::vector< Point >::iterator aIter( aPointVector.begin() ), aEnd( aPointVector.end() );
Point* pPointArray = rResult.mpImplPolygon->mpPointAry;
-
- while( aIter != aEnd )
+ USHORT nPoints = rResult.mpImplPolygon->mnPoints;
+ while( nPoints-- && aIter != aEnd )
*pPointArray++ = *aIter++;
}
}
diff --git a/tools/util/makefile.mk b/tools/util/makefile.mk
index dcc712fec552..546ef29a449a 100644
--- a/tools/util/makefile.mk
+++ b/tools/util/makefile.mk
@@ -82,12 +82,10 @@ LIB1FILES+= \
$(SLB)$/misc.lib
.IF "$(OS)"=="MACOSX"
-SHL1STDLIBS += $(UCBHELPERLIB) \
- $(CPPULIB) \
+SHL1STDLIBS += $(CPPULIB) \
$(ZLIB3RDLIB)
.ELSE
SHL1STDLIBS += $(ZLIB3RDLIB) \
- $(UCBHELPERLIB) \
$(CPPULIB)
.ENDIF
diff --git a/tools/workben/urltest.cxx b/tools/workben/urltest.cxx
index 542297eb4bd6..a232f8ebdd93 100644
--- a/tools/workben/urltest.cxx
+++ b/tools/workben/urltest.cxx
@@ -799,6 +799,25 @@ main()
bSuccess = false;
}
}
+ {
+ bool bWasAbsolute;
+ if (!rtl::OUString(INetURLObject(rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "file:///"))).
+ smartRel2Abs(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "\\\\unc_host\\path")),
+ bWasAbsolute).
+ GetMainURL(INetURLObject::NO_DECODE)).
+ equalsAsciiL(
+ RTL_CONSTASCII_STRINGPARAM("file://unc_host/path"))
+ || !bWasAbsolute)
+ {
+ printf("BAD smartRel2Abs(\"\\\\unc_host\\path\")\n");
+ bSuccess = false;
+ }
+ }
}
if (true)
diff --git a/transex3/inc/export.hxx b/transex3/inc/export.hxx
index 89c1cf548947..3d7eee8e1eaf 100644
--- a/transex3/inc/export.hxx
+++ b/transex3/inc/export.hxx
@@ -510,7 +510,9 @@ private:
SvFileStream aErrLog;
ByteStringSet aLanguageSet;
MergeDataHashMap aMap;
- std::vector<ByteString> aLanguages;
+ ByteStringHashMap aLanguageMap;
+ std::vector<ByteString> aLanguageList;
+ ByteStringHashMap aFilenames;
public:
diff --git a/transex3/java/receditor/java/transex3/controller/EditorController.java b/transex3/java/receditor/java/transex3/controller/EditorController.java
index 85dd4fbe4dfe..38462d665304 100644
--- a/transex3/java/receditor/java/transex3/controller/EditorController.java
+++ b/transex3/java/receditor/java/transex3/controller/EditorController.java
@@ -10,11 +10,9 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
-import java.util.ArrayList;
import java.lang.Runtime;
import java.util.*;
-import javax.swing.JFrame;
import javax.swing.ListSelectionModel;
import javax.swing.WindowConstants;
import javax.swing.event.*;
diff --git a/transex3/java/receditor/java/transex3/model/ResourceFile.java b/transex3/java/receditor/java/transex3/model/ResourceFile.java
index d8ea679948ce..51fabb3a4b7a 100644
--- a/transex3/java/receditor/java/transex3/model/ResourceFile.java
+++ b/transex3/java/receditor/java/transex3/model/ResourceFile.java
@@ -1,7 +1,6 @@
package transex3.model;
import java.util.*;
-import java.io.*;
public class ResourceFile {
Vector sdfStrings = new Vector();
diff --git a/transex3/java/receditor/java/transex3/view/Editor.java b/transex3/java/receditor/java/transex3/view/Editor.java
index b9a9aa929e66..f46a82a11a2b 100644
--- a/transex3/java/receditor/java/transex3/view/Editor.java
+++ b/transex3/java/receditor/java/transex3/view/Editor.java
@@ -1,10 +1,6 @@
package transex3.view;
import javax.swing.*;
-import javax.swing.event.*;
-import javax.swing.table.*;
import java.awt.*;
-import java.awt.event.*;
-//import java.awt.Event.*;
public class Editor extends JFrame{
Object[] columnnames = { "File" , "GID" , "LID" , "String" };
diff --git a/transex3/layout/makefile.mk b/transex3/layout/makefile.mk
index daa9d569508b..9864b46242b2 100644
--- a/transex3/layout/makefile.mk
+++ b/transex3/layout/makefile.mk
@@ -65,7 +65,6 @@ APP1OBJS = $(OBJFILES)
APP1STDLIBS =\
$(TOOLSLIB)\
- $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB) \
$(EXPATASCII3RDLIB)\
$(VOSLIB)\
$(CPPULIB) \
diff --git a/transex3/prj/d.lst b/transex3/prj/d.lst
index 7bd8e7d3e72d..54d1ab156205 100644
--- a/transex3/prj/d.lst
+++ b/transex3/prj/d.lst
@@ -28,6 +28,7 @@ mkdir: %_DEST%\inc%_EXT%\transex3
..\scripts\localize.pl %_DEST%\bin%_EXT%\localize.pl
..\scripts\localize %_DEST%\bin%_EXT%\localize
+..\scripts\fast_merge.pl %_DEST%\bin%_EXT%\fast_merge.pl
..\inc\export.hxx %_DEST%\inc%_EXT%\transex3\export.hxx
..\inc\transex3\directory.hxx %_DEST%\inc%_EXT%\transex3\directory.hxx
diff --git a/transex3/scripts/fast_merge.pl b/transex3/scripts/fast_merge.pl
new file mode 100644
index 000000000000..266c1c0801e8
--- /dev/null
+++ b/transex3/scripts/fast_merge.pl
@@ -0,0 +1,348 @@
+:
+eval 'exec perl -wS $0 ${1+"$@"}'
+ if 0;
+#*************************************************************************
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# $RCSfile: fast_merge.pl,v $
+#
+# $Revision: 1.1.2.2 $
+#
+# last change: $Author: ihi $ $Date: 2007/07/20 10:37:53 $
+#
+# The Contents of this file are made available subject to
+# the terms of GNU Lesser General Public License Version 2.1.
+#
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2005 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#*************************************************************************
+
+use strict;
+use Class::Struct;
+use Getopt::Long;
+use File::Temp;
+use File::Path;
+
+my @files;
+my @file_names;
+my $module_name = '';
+my @current;
+my @buffer;
+my $last_file;
+my $last_path;
+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';
+
+struct ( sdf_obj =>
+{
+ module => '$',
+ file => '$',
+ dir => '$',
+ FILEHANDLE => '$',
+ line => '$',
+ endoffile => '$'
+}
+);
+
+parse_options();
+my $lock_file = $merge_dir."/lock.mk";
+$lock_file =~ s/\//\\/g , if ( $WIN ) ;
+acquire_lock();
+read_sdf_file_names();
+init();
+my $reference;
+my $path ;
+my $localize_file;
+while( hasLines() )
+{
+ @current = ();
+ foreach ( @files )
+ {
+ push @current , $_;
+ }
+
+ $reference = getNextIdentifier( );
+
+ @current = ();
+ foreach ( @files )
+ {
+ if( $_->module eq $reference->module && $_->dir eq $reference->dir )
+ {
+ push @current , $_ ;
+ }
+ }
+ write_lines();
+}
+if( $#current+1 ne 0 )
+{
+ ( $path , $localize_file ) = make_paths();
+ add_to_buffer();
+ write_buffer( $path , $localize_file );
+}
+release_lock();
+exit( 0 );
+
+##########################################################################################
+sub acquire_lock
+{
+ if( -e $lock_file ){
+ $state = "blocked";
+ print "WARNING: Lock file '$lock_file' 'found, waiting ....\n";
+ my $cnt = 0;
+ sleep 10 , while( -e $lock_file && $cnt++ < 180 );
+ exit( 0 );
+ }else
+ {
+ $state = "locked";
+ print "Writing lock file '$lock_file'\n";
+ open FILE, ">$lock_file" or die "Can't create lock file '$lock_file'";
+ print FILE "L10N_LOCK=YES" ;
+ close ( FILE );
+ }
+}
+sub release_lock
+{
+ print "Deleting lock file '$lock_file'\n";
+ unlink $lock_file, if( -e $lock_file );
+ $state = "none";
+}
+sub inthandler
+{
+ release_lock() , if( $state eq "locked" );
+ exit( -1 );
+}
+sub quithandler
+{
+ release_lock() , if( $state eq "locked" );
+ exit( 0 );
+}
+
+sub init
+{
+ foreach my $file ( @file_names )
+ {
+ my $obj = new sdf_obj;
+ open my $FILEHANDLE , "<$file" or die "Can't open file '$file'";
+ $obj->FILEHANDLE ( $FILEHANDLE ) ;
+ getNextSdfObj( $obj );
+ push @files, $obj ;
+ print "Open file '$file'\n";
+ }
+}
+
+# get the next module/file
+sub getNextIdentifier
+{
+ my @sorted = sort {
+ return $a->module.$a->dir cmp $b->module.$b->dir;
+ } @current ;
+ return shift @sorted;
+}
+
+# update the obj with the next line
+sub getNextSdfObj
+{
+ my $obj = shift;
+ my $line = readline ( $obj->FILEHANDLE );
+ if ( $line eq undef )
+ {
+ $obj->endoffile( "true" );
+ }
+ else
+ {
+ $line =~ /^(([^\t]*)\t([^\t]*).*)/o ;
+ if( defined $1 && defined $2 && defined $3 )
+ {
+ $obj->line ( $1 );
+ $obj->module( $2 );
+ $obj->file ( $3 );
+ $obj->dir ( getDir( $3 ) );
+ }
+ else
+ {
+ $obj->line ( "" );
+ $obj->module( "" );
+ $obj->file ( "" );
+ $obj->dir ( "" );
+ }
+ }
+ return $obj;
+}
+sub getNextSdfObjModule
+{
+ my $obj = shift;
+ while( !$obj->endoffile )
+ {
+ my $line = readline ( $obj->FILEHANDLE );
+ if ( $line eq undef )
+ {
+ $obj->endoffile( "true" );
+ }
+ else
+ {
+ $line =~ /^(([^\t]*)\t([^\t]*).*)/o ;
+ if( defined $1 && defined $2 && defined $3 )
+ {
+ $obj->line ( $1 );
+ $obj->module( $2 );
+ $obj->file ( $3 );
+ $obj->dir ( getDir( $3 ) );
+ }
+ else
+ {
+ $obj->line ( "" );
+ $obj->module( "" );
+ $obj->file ( "" );
+ $obj->dir ( "" );
+ }
+ return $obj , if( $obj->module eq $module_name )
+ }
+ }
+ #return $obj;
+}
+sub getDir
+{
+ my $path = shift ;
+ $path =~ s/\//\\/g;
+ my @tmp_path = split /\\/ , $path;
+ pop @tmp_path;
+ $path = join '\\' , @tmp_path;
+ return $path;
+}
+
+sub hasLines
+{
+ my $hasLines = "";
+ my @tmpfiles;
+ foreach ( @files )
+ {
+ push @tmpfiles , $_, if( !$_->endoffile );
+ }
+ @files = @tmpfiles;
+ return $#files+1;
+}
+
+sub make_paths
+{
+ my $localizeFile = $merge_dir."\\".$current[ 0 ]->module."\\".$current[ 0 ]->file;
+ my $path = getDir( $localizeFile );
+ if ( !$WIN ) { $path =~ s/\\/\//g; }
+
+ $localizeFile = $path."\\localize.sdf";
+ if ( !$WIN ) { $localizeFile =~ s/\\/\//g; }
+
+ return ( $path , $localizeFile );
+}
+sub write_lines
+{
+ if( $first_run ){
+ add_to_buffer();
+ my( $path , $localize_file ) = make_paths();
+ $last_path = $path;
+ $last_localize_file = $localize_file;
+ mkpath $path;
+ write_buffer( $path , $localize_file );
+ $first_run = '';
+ }
+ else
+ {
+ return , if ( $#current+1 eq 0 );
+ my( $path , $localize_file ) = make_paths();
+ if( $path eq $last_path )
+ {
+ add_to_buffer();
+ }
+ else
+ {
+ mkpath $path;
+ write_buffer( $last_path , $last_localize_file );
+ add_to_buffer();
+ $last_path = $path;
+ $last_localize_file = $localize_file;
+ }
+ }
+}
+sub add_to_buffer
+{
+ my $plainline;
+ my $afile;
+ my $amodule;
+ foreach my $elem ( @current )
+ {
+ do {
+ $amodule=$elem->module;
+ $afile=$elem->file;
+ $plainline=$elem->line;
+ push @buffer, $plainline;
+ getNextSdfObj( $elem );
+ } while ( !$elem->endoffile && $amodule eq $elem->module && $afile eq $elem->file );
+ }
+}
+sub write_buffer
+{
+ my $path = shift;
+ my $localize_file = shift;
+ my $cnt = $#buffer+1;
+ print "Write to $path $cnt lines\n";
+ open FILE , ">>$localize_file" or die "Can't open file '$localize_file'\n";
+ foreach ( @buffer )
+ {
+ print FILE $_."\n";
+ }
+ @buffer = ();
+}
+sub parse_options
+{
+ my $success = GetOptions( 'sdf_files=s' => \$sdf_filename , 'merge_dir=s' => \$merge_dir ); #, 'module=s' => \$module_name );
+ if( ! ( $sdf_filename && $merge_dir && $success ) )
+ {
+ usage();
+ exit( -1 );
+ }
+}
+
+sub usage
+{
+ print "Usage: fast_merge -sdf_files <file containing sdf file names> -merge_dir <directory>\n" ;
+}
+
+sub read_sdf_file_names
+{
+ open FILE , "<$sdf_filename" or die "Can't open file '$sdf_filename'\n";
+ while ( <FILE> )
+ {
+ push @file_names , split " " , $_ ;
+ }
+ close ( FILE );
+}
+
+
diff --git a/transex3/scripts/localize b/transex3/scripts/localize
deleted file mode 100755
index 74a75ecc3aee..000000000000
--- a/transex3/scripts/localize
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-if [ x${SOLARENV}x = xx ]; then
- echo No environment found, please use 'setsolar'
-exit 1
-fi
-
-# localize.pl calls localize_sl in solver bin directory which depends on dynamic
-# libraries in solver lib directory but has no correct RPATH (or equivalent):
-if [ "${OS?}" = MACOSX ]; then
- export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH+${DYLD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib${UPDMINOREXT}
-else
- export LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib${UPDMINOREXT}
-fi
-
-if [ x${SOLARVER}x = xx -o x${UPDMINOR}x = xx ]; then
- exec perl -w $SOLARVERSION/$INPATH/bin/localize.pl "$@"
-else
- exec perl -w $SOLARVERSION/$INPATH/bin.$UPDMINOR/localize.pl "$@"
-fi
-
diff --git a/transex3/scripts/localize.pl b/transex3/scripts/localize.pl
index b9e478ba66bd..10e8124027b1 100755
--- a/transex3/scripts/localize.pl
+++ b/transex3/scripts/localize.pl
@@ -13,7 +13,7 @@ eval 'exec perl -wS $0 ${1+"$@"}'
#
# $RCSfile: localize.pl,v $
#
-# $Revision: 1.18 $
+# $Revision: 1.18.6.2 $
#
# This file is part of OpenOffice.org.
#
@@ -39,10 +39,12 @@ use Getopt::Long;
use IO::Handle;
use File::Find;
use File::Temp;
+use File::Path;
use File::Copy;
use File::Glob qw(:glob csh_glob);
use Cwd;
+my $CVS_BINARY = "/usr/bin/cvs";
# ver 1.1
#
#### module lookup
@@ -61,16 +63,24 @@ BEGIN {
use lib (@lib_dirs);
#### globals ####
-my $sdffile = '';
-my $no_sort = '';
-my $outputfile = '';
-my $mode = '';
-my $bVerbose="0";
-my $srcpath = '';
+my $sdffile = '';
+my $no_sort = '';
+my $create_dirs = '';
+my $multi_localize_files = '';
+my $module_to_merge = '';
+my $sort_sdf_before = '';
+my $outputfile = '';
+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 %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
@@ -82,21 +92,38 @@ my @sdfparticles;
#### main ####
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 ;
+}
+else
+{
+ $binpath = $ENV{SOLARVER}.$DELIMITER.$ENV{INPATH}.$DELIMITER."bin".$DELIMITER ;
}
#%sl_modules = fetch_sourcelanguage_dirlist();
if ( $mode eq "merge" ) {
- merge_gsicheck();
+ if ( ! $no_gsicheck ){
+ merge_gsicheck();
+ }
splitfile( $sdffile );
- unlink $sdffile; # remove temp file!
+ if ( ! $no_gsicheck ){
+ unlink $sdffile; # remove temp file!
+ }
}
elsif( $mode eq "extract" ) {
collectfiles( $outputfile );
@@ -126,6 +153,12 @@ sub splitfile{
open MYFILE , "< $sdffile"
or die "Can't open '$sdffile'\n";
+# my %lang_hash;
+ my %string_hash_ooo;
+ my %string_hash_so;
+ my %so_modules;
+ $so_modules{ "extras_full" } = "TRUE";
+
while( <MYFILE>){
if( /$sdf_regex/ ){
my $line = defined $_ ? $_ : '';
@@ -137,183 +170,187 @@ sub splitfile{
my $lang = defined $12 ? $12 : '';
my $plattform = defined $10 ? $10 : '';
my $helpid = defined $9 ? $9 : '';
-
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; }
-
- $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/; }
- #}
-
- # Set default date
- if( $line =~ /(.*)\t[^\t\$]*$/ ){
- $line = $1."\t".$default_date;
- }
- if( $start ){
- $start='';
- $lastFile = $currentFile; # ?
- $last_sdffile = $cur_sdffile;
- }
-
- if( $lang eq "en-US" ){}
- elsif( $cur_sdffile eq $last_sdffile )
+ if( is_openoffice_module( $prj ) )
{
- $block{ "$prj\t$file\t$type\t$gid\t$lid\t$helpid\t$plattform\t$lang" } = $line ;
+ $string_hash_ooo { $lang }{ "$prj\t$file\t$type\t$gid\t$lid\t$helpid\t$plattform\t$lang" } = $line;
}
else
{
- writesdf( $lastFile , \%block );
- $lastFile = $currentFile; #?
- $last_sdffile = $cur_sdffile;
- %block = ();
- #if( ! $lang eq "en-US" ) {
- $block{ "$prj\t$file\t$type\t$gid\t$lid\t$helpid\t$plattform\t$lang" } = $line ;
- #}
-
+ $string_hash_so{ $lang }{ "$prj\t$file\t$type\t$gid\t$lid\t$helpid\t$plattform\t$lang" } = $line;
}
- } #else { print STDOUT "splitfile REGEX kaputt\n";}
-
+ }
}
- writesdf( $lastFile , \%block );
- %block = ();
close( MYFILE );
+ if( !defined $ENV{SRC_ROOT} ){
+ print "Error, no SRC_ROOT in env found.\n";
+ 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";
+
+ #print "$so_l10n_path\n";
+ #print "$ooo_l10n_path\n";
+
+ write_sdf( \%string_hash_so , $so_l10n_path );
+ write_sdf( \%string_hash_ooo , $ooo_l10n_path );
+
}
-#########################################################
+sub check_modules_scm
+{
+ #my @ooo_modules;
+ #my @so_modules;
+ my $src_path = $ENV{ SRC_ROOT } ;
+ my $last_dir = getcwd();
+ chdir $src_path ;
+ my @modules = <*/.svn/entries>;
+
+ foreach my $module ( @modules )
+ {
+ #print "$module \n";
+ if( open ( FILE , "<$module" ) )
+ {
+ while( <FILE> )
+ {
-#sub fetch_sourcelanguage_dirlist
+ my @path = split ( "/" , $module ) ;
+
+ if( /svn.services.openoffice.org/ )
+ {
+ my $mod = $path[ 0 ];
+ #push @ooo_modules , $mod;
+ $is_ooo_module{ $mod } = "true";
+ # print "$module -> ooo ";
+ }
+ elsif ( /jumbo2.germany.sun.com/ )
+ {
+ my $mod = $path[ 0 ];
+ #push @so_modules , $mod;
+ # print "$module -> so ";
+ #$so_lookup_hash{ $mod } = "true";
+ }
+ #else
+ #{
+ # print "ERROR: Is $module a SO or OOo module? Can not parese the $module/.svn/entries file ... please check mwsfinnish/merge/splitsdf.pl line 280\n";
+ # exit -1;
+ #}
+ }
+ }
+ }
+ chdir $last_dir ;
+ #print "OOO\n";
+ #print @ooo_modules;
+ #print "\nSO\n";
+ #print @so_modules;
+}
+
+
+#sub parse
#{
-#
-# 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"; }
-# }
-# }
+# my $command = "$CVS_BINARY -d:pserver:anoncvs\@anoncvs.services.openoffice.org:/cvs co -c";
+# my $output = `$command`;
+# my $rc = $? << 8;
+# if ( $output eq "" || $rc < 0 ){
+# print STDERR "ERROR: Can not fetch cvs alias list, please login to the cvs server and press at the password prompt just return\ncvs -d:pserver:anoncvs\@anoncvs.services.openoffice.org:/cvs login\n";
+# exit ( -1 );
# }
+# my @list = split /\n/ , $output ;
+# foreach my $string( @list )
+# {
#
-# chdir $working_path;
+# # print "Found '$1'\n" , if( $string =~ /^(\w*)/ && $1 ne "" );
#
-# return %sl_dirlist;
+# $is_ooo_module{ $1 } = "TRUE", if( $string =~ /^(\w*)/ && $1 ne "" );
+# }
+# # foreach my $key( keys( %is_ooo_module ) )
+# #{
+# # print "$key\n";
+# #}
#}
+sub is_openoffice_module
+{
+ my $module = shift;
+ return "TRUE", if defined $is_ooo_module{ $module };
+ return "";
+}
-#sub has_two_sourcelanguages
-#{
-# my $module = shift;
-# return defined $sl_modules{ $module } ;
-#}
-sub writesdf{
-
- my $lastFile = shift;
- my $blockhash_ref = shift;
- my $localizeFile = $lastFile;
- my %index=();
-
- if( $localizeFile =~ /\.$file_types[\s]*$/ ){
- if( $WIN ) { $localizeFile =~ s/\\[^\\]*\.$file_types[\s]*$/\\localize.sdf/; }
- else { $localizeFile =~ s/\/[^\/]*\.$file_types[\s]*$/\/localize.sdf/; }
- }else {
- print STDERR "Strange filetype found '$localizeFile'\n";
- return;
- }
- if( $bVerbose ){ print STDOUT "$localizeFile\n"; }
- if( open DESTFILE , "< $localizeFile" ){
+sub write_sdf
+{
+ my $string_hash = shift;
+ my $l10n_file = shift;
- #or die "Can't open/create '\$localizeFile'";
+ foreach my $lang( keys( %{ $string_hash } ) )
+ {
+ my @sdf_file;
- #### Build hash
- while(<DESTFILE>){
- if( /$sdf_regex/ ){
- my $line = defined $_ ? $_ : '';
- my $prj = defined $3 ? $3 : '';
- my $file = defined $4 ? $4 : '';
- my $type = defined $6 ? $6 : '';
- my $gid = defined $7 ? $7 : '';
- my $lid = defined $8 ? $8 : '';
- my $lang = defined $12 ? $12 : '';
- my $plattform = defined $10 ? $10 : '';
- my $helpid = defined $9 ? $9 : '';
+ # mkdir!!!!
+ my $current_l10n_file = $WIN eq "TRUE" ? $l10n_file."\\$lang\\localize.sdf" : $l10n_file."/$lang/localize.sdf";
+ print "Writing '$current_l10n_file'\n";
+ if( open DESTFILE , "< $current_l10n_file" ){
- chomp( $line );
- $index{ "$prj\t$file\t$type\t$gid\t$lid\t$helpid\t$plattform\t$lang" } = $line ;
-
- } #else { print STDOUT "writesdf REGEX kaputt $_\n";}
+ while(<DESTFILE>){
+ if( /$sdf_regex/ ){
+ my $line = defined $_ ? $_ : '';
+ my $prj = defined $3 ? $3 : '';
+ my $file = defined $4 ? $4 : '';
+ my $type = defined $6 ? $6 : '';
+ my $gid = defined $7 ? $7 : '';
+ my $lid = defined $8 ? $8 : '';
+ my $lang = defined $12 ? $12 : '';
+ my $plattform = defined $10 ? $10 : '';
+ my $helpid = defined $9 ? $9 : '';
+ chomp( $line );
+ if ( defined $string_hash->{ $lang }{ "$prj\t$file\t$type\t$gid\t$lid\t$helpid\t$plattform\t$lang" } )
+ {
+ # Changed String!
+ push @sdf_file , $string_hash->{ $lang }{ "$prj\t$file\t$type\t$gid\t$lid\t$helpid\t$plattform\t$lang" } ;
+ $string_hash->{ $lang }{ "$prj\t$file\t$type\t$gid\t$lid\t$helpid\t$plattform\t$lang" } = undef;
+ }
+ else
+ {
+ # No new string
+ push @sdf_file , $line;
+ }
+ }
+ }
}
close( DESTFILE );
- }
- #### Copy new strings
- my @mykeys = keys( %{ $blockhash_ref } );
- my $isDirty = "FALSE";
- foreach my $key( @mykeys ){
- if( ! defined $index{ $key } ){
- # Add new entry
- $index{ $key } = $blockhash_ref->{ $key} ;
- $isDirty = "TRUE";
- }elsif( $index{ $key } ne $blockhash_ref->{ $key } ){
- # Overwrite old entry
- $index{ $key } = $blockhash_ref->{ $key };
- $isDirty = "TRUE";
- }else {
+ #Now just append the enw strings
+ #FIXME!!! Implement insertion in the correct order
+ foreach my $key ( keys ( %{ $string_hash->{ $lang } } ) )
+ {
+ push @sdf_file , $string_hash->{ $lang }{ $key } , if ( defined $string_hash->{ $lang }{ $key } );
+ #print "WARNING: Not defined = ".$string_hash->{ $lang }{ $key }."\n", if( ! defined $string_hash->{ $lang }{ $key } );
}
- }
- #### Write file
-
- if( !$bVerbose ){ print STDOUT "."; }
- if( $isDirty eq "TRUE" ){
- if( open DESTFILE , "+> $localizeFile" ){
+ # Write the new file
+ my ( $TMPFILE , $tmpfile ) = File::Temp::tempfile();
+ if( open DESTFILE , "+> $tmpfile " ){
print DESTFILE get_license_header();
- @mykeys = sort keys( %index );
- foreach my $key( @mykeys ){
- print DESTFILE ( $index{ $key } , "\n" );
+ foreach my $string( @sdf_file ){
+ print DESTFILE "$string\n";
}
- close DESTFILE;
- }else {
- print STDOUT "WARNING: File $localizeFile is not writable , try to merge ...\n";
- my ( $TMPFILE , $tmpfile ) = File::Temp::tempfile();
- if( open DESTFILE , "+> $tmpfile " ){
- @mykeys = keys( %index );
- foreach my $key( @mykeys ){
- print DESTFILE ( $index{ $key } , "\n" );
- }
- close DESTFILE;
- if( move( $localizeFile , $localizeFile.".backup" ) ){
- if( copy( $tmpfile , $localizeFile ) ){
- unlink $localizeFile.".backup";
- } else { print STDERR "Can't open/create '$localizeFile', original file is renamed to $localizeFile.backup\n"; }
- } else { print STDERR "Can't open/create '$localizeFile'\n"; }
- }else{
- print STDERR "WARNING: Can't open/create '$localizeFile'\n";
- }
- unlink $tmpfile;
- }
- }
-# if( $no_sort eq '' ){
-# sort_outfile( $localizeFile );
-# }
+ close ( DESTFILE );
+ if( move( $current_l10n_file , $current_l10n_file.".backup" ) ){
+ if( copy( $tmpfile , $current_l10n_file ) ){
+ unlink $l10n_file.".backup";
+ } else { print STDERR "Can't open/create '$l10n_file', original file is renamed to $l10n_file.backup\n"; }
+ } else { print STDERR "Can't open/create '$l10n_file'\n"; }
+ }else{
+ print STDERR "WARNING: Can't open/create '$l10n_file'\n";
+ }
+ unlink $tmpfile;
+ }
}
+#########################################################
+
sub get_license_header{
return
"#\n".
@@ -398,6 +435,41 @@ sub wanted
}
}
+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";
+
+ if( -e $ooo_l10n_dir )
+ {
+ foreach my $lang ( keys( %{ $langhash_ref } ) )
+ {
+ my $loc_file = "$ooo_l10n_dir"."$DELIMITER"."$lang"."$DELIMITER"."localize.sdf";
+ if( -e $loc_file )
+ {
+ push @sdfparticles , "$ooo_l10n_dir"."$DELIMITER"."$lang"."$DELIMITER"."localize.sdf";
+ }
+ else { print "WARNING: $loc_file not found ....\n"; }
+ }
+ }
+ else { die "ERROR: Can not find directory $ooo_l10n_dir!!!" }
+ if( -e $so_l10n_dir )
+ {
+ foreach my $lang ( keys( %{ $langhash_ref } ) )
+ {
+ my $loc_file = "$so_l10n_dir"."$DELIMITER"."$lang"."$DELIMITER"."localize.sdf";
+ if( -e $loc_file )
+ {
+ push @sdfparticles , "$ooo_l10n_dir"."$DELIMITER"."$lang"."$DELIMITER"."localize.sdf";
+ }
+ else { #print "WARNING: $loc_file not found ....\n";
+ }
+ }
+
+ }
+}
sub collectfiles{
print STDOUT "### Localize\n";
my $localizehash_ref;
@@ -408,14 +480,14 @@ sub collectfiles{
STDOUT->autoflush( 1 );
### Search sdf particles
- print STDOUT "### Searching sdf particles\n";
+ #print STDOUT "### Searching sdf particles\n";
my $working_path = getcwd();
- chdir $srcpath;
- find ( { wanted => \&wanted , follow => 1 }, getcwd() );
- chdir $working_path;
-
- my $nFound = $#sdfparticles +1;
- print "\n $nFound files found !\n";
+ #chdir $srcpath;
+ #find ( { wanted => \&wanted , follow => 1 }, getcwd() );
+ #chdir $working_path;
+ add_paths( $langhash_ref );
+ #my $nFound = $#sdfparticles +1;
+ #print "\n $nFound files found !\n";
my ( $LOCALIZEPARTICLE , $localizeSDF ) = File::Temp::tempfile();
close( $LOCALIZEPARTICLE );
@@ -425,18 +497,18 @@ sub collectfiles{
my ( $LOCALIZE_LOG , $my_localize_log ) = File::Temp::tempfile();
close( $LOCALIZE_LOG );
- ## Get the localize de,en-US extract
+ ## Get the localize en-US extract
if( $bAll || $bUseLocalize ){
print "### Fetching source language strings\n";
my $command = "";
my $args = "";
if( $ENV{WRAPCMD} ){
- $command = "$ENV{WRAPCMD} localize_sl";
+ $command = $ENV{WRAPCMD}.$binpath."localize_sl";
}else{
- $command = "localize_sl";
+ $command = $binpath."localize_sl";
}
-
+ print $command;
# -e
# if ( -x $command ){
if( $command ){
@@ -480,7 +552,8 @@ sub collectfiles{
}
## Get sdf particles
- open ALLPARTICLES_MERGED , "+>> $particleSDF_merged"
+#*****************
+ open ALLPARTICLES_MERGED , "+>> $particleSDF_merged"
or die "Can't open $particleSDF_merged";
## Fill fackback hash
@@ -542,7 +615,7 @@ sub collectfiles{
}
}
close ALLPARTICLES_MERGED;
-
+#***************
# Hash of array
my %output;
@@ -1040,7 +1113,8 @@ sub parse_options{
my $merge;
my $extract;
my $success = GetOptions('f=s' => \$sdffile , 'l=s' => \$languages , 's=s' => \$srcpath , 'h' => \$help , 'v' => \$bVerbose ,
- 'm' => \$merge , 'e' => \$extract , 'x' => \$no_sort , 'd' => \$use_default_date );
+ 'm' => \$merge , 'e' => \$extract , 'x' => \$no_sort , 'd' => \$use_default_date , 'c' => \$create_dirs ,
+ 'n' => \$no_gsicheck );
$outputfile = $sdffile;
#print STDOUT "DBG: lang = $languages\n";
@@ -1068,13 +1142,16 @@ sub parse_options{
if( $extract ){ $mode = "extract"; }
else { $mode = "merge"; }
}
+#my $multi_localize_files = ''; h
+#my $module_to_merge = ''; i
+#my $sort_sdf_before = ''; g
#########################################################
sub usage{
print STDERR "Usage: localize.pl\n";
print STDERR "Split or collect SDF files\n";
- print STDERR " merge: -m -f <sdffile> -l l1[=f1][,l2[=f2]][...] [ -s <sourceroot> ]\n";
+ print STDERR " merge: -m -f <sdffile> -l l1[=f1][,l2[=f2]][...] [ -s <sourceroot> ] [ -c ]\n";
print STDERR " extract: -e -f <outputfile> -l <lang> [ -s <sourceroot> ] [-d]\n";
print STDERR "Options:\n";
print STDERR " -h help\n";
@@ -1085,6 +1162,11 @@ sub usage{
print STDERR " -s <sourceroot> Path to the modules, if no \$SRC_ROOT is set\n";
print STDERR " -l ( all | <isocode> | <isocode>=fallback ) comma seperated languages\n";
print STDERR " -d Use default date in extracted sdf file\n";
+ print STDERR " -c Create needed directories\n";
+ print STDERR " -g Sort sdf file before mergeing\n";
+ print STDERR " -h File with localize.sdf's\n!";
+ print STDERR " -n No gsicheck\n";
+ print STDERR " -i Module to merge\n";
print STDERR " -v Verbose\n";
print STDERR "\nExample:\n";
print STDERR "\nlocalize -e -l en-US,pt-BR=en-US -f my.sdf\n( Extract en-US and pt-BR with en-US fallback )\n";
diff --git a/transex3/source/directory.cxx b/transex3/source/directory.cxx
index 8963e8a238f7..a4a2abc70e0f 100644
--- a/transex3/source/directory.cxx
+++ b/transex3/source/directory.cxx
@@ -186,13 +186,15 @@ void Directory::readDirectory( const rtl::OUString& sFullpath )
if( sFullpath.getLength() < 1 ) return;
rtl::OString sFullpathext = rtl::OUStringToOString( sFullpath , RTL_TEXTENCODING_UTF8 , sFullpath.getLength() ).getStr();
+ //printf("%s\n",sFullpathext.getStr());
const char* path = sFullpathext.getStr();
// stat
- if( lstat( path , &statbuf ) < 0 ){ printf("readerror 1 in Directory::readDirectory"); return; }// error }
+ if( stat( path , &statbuf ) < 0 ){ printf("warning: Can not stat %s" , path ); return; }// error }
- //if( S_ISDIR(statbuf.st_mode ) == 0 && S_ISLNK(statbuf.st_mode )){ printf("readerror 2 in Directory::readDirectory"); return; }// error } return; // not dir
- if( (dir = opendir( path ) ) == NULL ) {printf("readerror in %s \n",path); return; } // error } return; // error
+ if( S_ISDIR(statbuf.st_mode ) == 0 ) { return; }// error } return; // not dir
+
+ if( (dir = opendir( path ) ) == NULL ) {printf("readerror 2 in %s \n",path); return; } // error } return; // error
sFullpathext += rtl::OString( "/" );
diff --git a/transex3/source/localize.cxx b/transex3/source/localize.cxx
index d5e0541e6a24..bcd45d7027a4 100644
--- a/transex3/source/localize.cxx
+++ b/transex3/source/localize.cxx
@@ -94,6 +94,24 @@ const char *PositiveList[] = {
"chart2/source/controller/menu/MenuItems_tmpl.hrc",
"chart2/source/controller/dialogs/res_ErrorBar_tmpl.hrc",
"chart2/source/controller/dialogs/res_Trendline_tmpl.hrc",
+ "svx.link/inc/globlmn_tmpl.hrc",
+ "sw.link/source/ui/inc/swmn_tmpl.hrc",
+ "sw.link/source/ui/inc/swacc_tmpl.hrc",
+ "sw.link/source/ui/inc/toolbox_tmpl.hrc",
+ "offmgr.link/inc/offmenu_tmpl.hrc",
+ "offmgr.link/source/offapp/intro/intro_tmpl.hrc",
+ "dbaccess.link/source/ui/inc/toolbox_tmpl.hrc",
+ "svx.link/source/intro/intro_tmpl.hrc",
+ "dbaccess.link/source/ui/dlg/AutoControls_tmpl.hrc",
+ "svx.link/source/unodialogs/textconversiondlgs/chinese_direction_tmpl.hrc",
+ "chart2.link/source/controller/dialogs/res_DataLabel_tmpl.hrc",
+ "chart2.link/source/controller/dialogs/res_LegendPosition_tmpl.hrc",
+ "chart2.link/source/controller/dialogs/res_Statistic_tmpl.hrc",
+ "chart2.link/source/controller/dialogs/res_Titlesx_tmpl.hrc",
+ "chart2.link/source/controller/dialogs/res_SecondaryAxisCheckBoxes_tmpl.hrc",
+ "chart2.link/source/controller/menu/MenuItems_tmpl.hrc",
+ "chart2.link/source/controller/dialogs/res_ErrorBar_tmpl.hrc",
+ "chart2.link/source/controller/dialogs/res_Trendline_tmpl.hrc",
"NULL"
};
@@ -265,6 +283,7 @@ void SourceTreeLocalizer::WorkOnFile(
const ByteString &rParameter, const ByteString &rIso )
/*****************************************************************************/
{
+ (void) rIso; // Remove me ;)
String sFull( rFileName, RTL_TEXTENCODING_ASCII_US );
DirEntry aEntry( sFull );
ByteString sFileName( aEntry.GetName(), RTL_TEXTENCODING_ASCII_US );
@@ -286,37 +305,43 @@ void SourceTreeLocalizer::WorkOnFile(
DirEntry aTemp( Export::GetTempFile());
ByteString sTempFile( aTemp.GetFull(), RTL_TEXTENCODING_ASCII_US );
- ByteString sExecutable( rExecutable );
+ ByteString sDel;
#if defined(WNT) || defined(OS2)
- sExecutable += ".exe";
- String sPath( Export::GetEnv( "PATH" ), RTL_TEXTENCODING_ASCII_US );
+ sDel=ByteString("\\");
#else
- String sPath( Export::GetEnv( "LD_LIBRARY_PATH" ), RTL_TEXTENCODING_ASCII_US );
+ sDel=ByteString("/");
#endif
+ ByteString sPath1( Export::GetEnv("SOLARVER") );
+ ByteString sPath2( Export::GetEnv("INPATH") );
+ ByteString sPath3( "bin" );
+ ByteString sPath4( Export::GetEnv("UPDMINOREXT") );
+ ByteString sExecutable( sPath1 );
+ sExecutable += sDel ;
+ sExecutable += sPath2 ;
+ sExecutable += sDel;
+ sExecutable += sPath3 ;
+ sExecutable += sPath4 ;
+ sExecutable += sDel ;
+ sExecutable += rExecutable ;
+
+
+ ByteString sCommand( sExecutable );
+ sCommand += " ";
+ sCommand += rParameter;
+ sCommand += " -p ";
+ sCommand += sPrj;
+ sCommand += " -r ";
+ sCommand += sRoot;
+ sCommand += " -i ";
+ sCommand += sFileName;
+ sCommand += " -o ";
+ sCommand += sTempFile;
+ if ( sLanguageRestriction.Len()) {
+ sCommand += " -l ";
+ sCommand += getSourceLanguages( sLanguageRestriction , sCommand );
+ }
- DirEntry aExecutable( String( sExecutable, RTL_TEXTENCODING_ASCII_US ));
- aExecutable.Find( sPath );
-
- ByteString sCommand( aExecutable.GetFull(), RTL_TEXTENCODING_ASCII_US );
- sCommand += " ";
- sCommand += rParameter;
- sCommand += " -p ";
- sCommand += sPrj;
- sCommand += " -r ";
- sCommand += sRoot;
- sCommand += " -i ";
- sCommand += sFileName;
- sCommand += " -o ";
- sCommand += sTempFile;
- if ( sLanguageRestriction.Len()) {
- sCommand += " -l ";
- sCommand += getSourceLanguages( sLanguageRestriction , sCommand );
- }
- if ( rIso.Equals("iso") && sIsoCode99.Len()) {
- sCommand += " -ISO99 ";
- sCommand += sIsoCode99;
- }
- if( bQuiet2 ){
+ if( bQuiet2 ){
sCommand +=" -QQ ";
}
//printf("DBG: %s\n",sCommand.GetBuffer());
diff --git a/transex3/source/makefile.mk b/transex3/source/makefile.mk
index b26a6e0a82bb..68b94a5b58fa 100644
--- a/transex3/source/makefile.mk
+++ b/transex3/source/makefile.mk
@@ -84,7 +84,6 @@ APP1TARGET= transex3
APP1OBJS= $(OBJ)$/src_yy_wrapper.obj
APP1STDLIBS+= \
- $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB)\
$(TOOLSLIB) \
$(VOSLIB) \
$(SALLIB)
@@ -103,8 +102,8 @@ APP2RPATH= NONE
.IF "$(OS)"!="MACOSX"
.ENDIF
-APP2STDLIBS+=$(SALLIB) $(EXPATASCII3RDLIB) $(TOOLSLIB) $(VOSLIB) \
- $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB)
+APP2STDLIBS+=$(SALLIB) $(EXPATASCII3RDLIB) $(TOOLSLIB) $(VOSLIB)
+
.IF "$(OS)"=="MACOSX"
# static libs at end for OS X
.ENDIF
@@ -119,7 +118,6 @@ APP3RPATH= NONE
.ENDIF
APP3STDLIBS+= \
$(TOOLSLIB) \
- $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB) \
$(VOSLIB) \
$(SALLIB)
.IF "$(OS)"=="MACOSX"
@@ -131,7 +129,6 @@ APP4TARGET= gsiconv
APP4OBJS= $(OBJ)$/utf8conv.obj $(OBJ)$/gsiconv.obj
APP4STDLIBS+= \
$(TOOLSLIB) \
- $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB) \
$(VOSLIB) \
$(SALLIB)
@@ -140,7 +137,6 @@ APP5TARGET= gsicheck
APP5OBJS= $(OBJ)$/gsicheck.obj $(OBJ)$/tagtest.obj
APP5STDLIBS+= \
$(TOOLSLIB) \
- $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB) \
$(VOSLIB) \
$(SALLIB)
@@ -154,7 +150,6 @@ APP6OBJS= $(OBJ)$/cfgmerge.obj $(OBJ)$/cfg_yy_wrapper.obj $(OBJ)$/hw2fw.obj $(
APP6STDLIBS+= \
$(TOOLSLIB) \
- $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB) \
$(VOSLIB) \
$(SALLIB)
@@ -172,7 +167,6 @@ APP7RPATH= NONE
APP7STDLIBS+= \
$(TOOLSLIB) \
- $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB) \
$(VOSLIB) \
$(SALLIB)
@@ -184,8 +178,7 @@ APP7STDLIBS+= \
APP8TARGET= txtconv
#APP8STACK= 16000
APP8OBJS= $(OBJ)$/utf8conv.obj $(OBJ)$/txtconv.obj $(OBJ)$/hw2fw.obj
-APP8STDLIBS=$(TOOLSLIB) $(SALLIB) $(VOSLIB) \
- $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB)
+APP8STDLIBS=$(TOOLSLIB) $(SALLIB)
# localizer for l10n framework
APP9TARGET= localize_sl
@@ -194,7 +187,6 @@ EXCEPTIONSFILES= \
APP9OBJS= $(OBJ)$/localize.obj $(OBJ)$/utf8conv.obj $(OBJ)$/srciter.obj $(OBJ)$/export2.obj $(OBJ)$/file.obj $(OBJ)$/directory.obj
APP9STDLIBS+= \
- $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB) \
$(TOOLSLIB) \
$(VOSLIB) \
$(SALLIB)
diff --git a/transex3/source/merge.cxx b/transex3/source/merge.cxx
index 3546d7e3accd..ee0f6f459655 100644
--- a/transex3/source/merge.cxx
+++ b/transex3/source/merge.cxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: merge.cxx,v $
- * $Revision: 1.29 $
+ * $Revision: 1.27.36.3 $
*
* This file is part of OpenOffice.org.
*
@@ -210,38 +210,39 @@ MergeDataFile::MergeDataFile( const ByteString &rFileName, const ByteString& sFi
ByteString sTEXT;
ByteString sQHTEXT;
ByteString sTITLE;
+ ByteString sHACK("HACK");
const ByteString sEmpty("");
if( !aInputStream.IsOpen() ) {
- printf("ERROR : Can't open %s\n", rFileName.GetBuffer());
- exit( -1 );
+ printf("Warning : Can't open %s\n", rFileName.GetBuffer());
+ //exit( -1 );
+ return;
}
while ( !aInputStream.IsEof()) {
+ xub_StrLen nToks;
aInputStream.ReadLine( sLine );
sLine = sLine.Convert( RTL_TEXTENCODING_MS_1252, aCharSet );
- if ( sLine.GetTokenCount( '\t' ) == 15 ) {
+ nToks = sLine.GetTokenCount( '\t' );
+ if ( nToks == 15 ) {
// Skip all wrong filenames
ByteString filename = sLine.GetToken( 1 , '\t' );
filename = filename.Copy( filename.SearchCharBackward( "\\" )+1 , filename.Len() );
if( sFile.Equals( sEmpty ) || ( !sFile.Equals( sEmpty ) && filename.Equals( sFile ) ) )
{
- sTYP = sLine.GetToken( 3, '\t' );
- sGID = sLine.GetToken( 4, '\t' );
- sLID = sLine.GetToken( 5, '\t' );
- sPFO = sLine.GetToken( 7, '\t' );
- sPFO = ByteString("HACK");
- nLANG = sLine.GetToken( 9, '\t' );
-
- sTEXT = sLine.GetToken( 10, '\t' );
- // printf("%s\n",sTEXT.GetBuffer());
- // Quote( sTEXT );
- // printf("%s\n",sTEXT.GetBuffer());
-
- sQHTEXT = sLine.GetToken( 12, '\t' );
- sTITLE = sLine.GetToken( 13, '\t' );
+ xub_StrLen rIdx = 0;
+ sTYP = sLine.GetToken( 3, '\t', rIdx );
+ sGID = sLine.GetToken( 0, '\t', rIdx ); // 4
+ sLID = sLine.GetToken( 0, '\t', rIdx ); // 5
+ sPFO = sLine.GetToken( 1, '\t', rIdx ); // 7
+ sPFO = sHACK;
+ nLANG = sLine.GetToken( 1, '\t', rIdx ); // 9
+ sTEXT = sLine.GetToken( 0, '\t', rIdx ); // 10
+
+ sQHTEXT = sLine.GetToken( 1, '\t', rIdx ); // 12
+ sTITLE = sLine.GetToken( 0, '\t', rIdx ); // 13
nLANG.EraseLeadingAndTrailingChars();
@@ -250,20 +251,22 @@ MergeDataFile::MergeDataFile( const ByteString &rFileName, const ByteString& sFi
#else
if ( !nLANG.EqualsIgnoreCaseAscii("en-US") ){
#endif
- InsertEntry( sTYP, sGID, sLID, sPFO, nLANG, sTEXT, sQHTEXT, sTITLE , filename , bCaseSensitive );
- if( nLANG.Len() > 0 ){
- bool bFound = false;
- for( unsigned int x = 0; x < aLanguages.size(); x++ ){
- if( aLanguages[ x ].Equals( nLANG ) )
- bFound = true;
- }
+ ByteStringHashMap::const_iterator lit;
+ lit = aLanguageMap.find (nLANG);
+ ByteString aLANG;
+ if (lit == aLanguageMap.end()) {
+ aLANG = nLANG;
+ aLanguageMap.insert( ByteStringHashMap::value_type( aLANG, aLANG ) );
// Remember read languages for -l all switch
- if( !bFound ) aLanguages.push_back( nLANG );
- }
+ aLanguageList.push_back( nLANG );
+ } else
+ aLANG = lit->first;
+
+ InsertEntry( sTYP, sGID, sLID, sPFO, aLANG, sTEXT, sQHTEXT, sTITLE , filename , bCaseSensitive );
}
}
}
- else if ( sLine.GetTokenCount( '\t' ) == 10 ){
+ else if ( nToks == 10 ) {
printf("ERROR: File format is obsolete and no longer supported!\n");
}
}
@@ -286,7 +289,7 @@ ByteString MergeDataFile::Dump(){
ByteString sRet( "MergeDataFile\n" );
//sRet.Append( Export::DumpMap( "aLanguageSet" , aLanguageSet ) );
- //sRet.Append( Export::DumpMap( "aLanguages" , aLanguages ) );
+ //sRet.Append( Export::DumpMap( "aLanguageList" , aLanguageList ) );
printf("MergeDataFile\n");
MergeDataHashMap::const_iterator idbg;
for( idbg = aMap.begin() ; idbg != aMap.end(); ++idbg ){
@@ -318,7 +321,7 @@ void MergeDataFile::WriteError( const ByteString &rLine )
fprintf( stderr, "%s\n", rLine.GetBuffer());
}
std::vector<ByteString> MergeDataFile::GetLanguages(){
- return aLanguages;
+ return aLanguageList;
}
/*****************************************************************************/
@@ -379,23 +382,32 @@ void MergeDataFile::InsertEntry(
const ByteString &rLID, const ByteString &rPFO,
const ByteString &nLANG, const ByteString &rTEXT,
const ByteString &rQHTEXT, const ByteString &rTITLE ,
- const ByteString &rFilename , bool bCaseSensitive
+ const ByteString &rInFilename , bool bCaseSensitive
)
/*****************************************************************************/
{
MergeData *pData;
BOOL bFound = FALSE;
- // search for MergeData
+ // uniquify the filename to save memory.
+ ByteStringHashMap::const_iterator fit = aFilenames.find (rInFilename);
+ ByteString aFilename;
+ if (fit == aFilenames.end()) {
+ aFilename = rInFilename;
+ aFilenames.insert (ByteStringHashMap::value_type (aFilename, aFilename));
+ } else
+ aFilename = fit->first;
- ByteString sKey = CreateKey( rTYP , rGID , rLID , rFilename , bCaseSensitive );
- ByteString sKey2;
+ // search for MergeData
- if( aMap.find( sKey ) != aMap.end() ){
- pData = aMap[ sKey ];
+ ByteString sKey = CreateKey( rTYP , rGID , rLID , aFilename , bCaseSensitive );
+ MergeDataHashMap::const_iterator mit;
+ mit = aMap.find( sKey );
+ if( mit != aMap.end() ){
+ pData = mit->second;
}else{
- pData = new MergeData( rTYP, rGID, rLID , rFilename );
- aMap.insert( MergeDataHashMap::value_type( CreateKey( rTYP , rGID , rLID , rFilename , bCaseSensitive ) , pData ) );
+ pData = new MergeData( rTYP, rGID, rLID, aFilename );
+ aMap.insert( MergeDataHashMap::value_type( sKey, pData ) );
}
bFound = FALSE;
diff --git a/ucbhelper/inc/ucbhelper/simpleauthenticationrequest.hxx b/ucbhelper/inc/ucbhelper/simpleauthenticationrequest.hxx
index e4190da641e5..ddb2e655de8b 100644
--- a/ucbhelper/inc/ucbhelper/simpleauthenticationrequest.hxx
+++ b/ucbhelper/inc/ucbhelper/simpleauthenticationrequest.hxx
@@ -33,6 +33,7 @@
#include <rtl/ref.hxx>
#include <ucbhelper/interactionrequest.hxx>
+#include <com/sun/star/ucb/AuthenticationRequest.hpp>
#include "ucbhelper/ucbhelperdllapi.h"
namespace ucbhelper {
@@ -61,6 +62,14 @@ class UCBHELPER_DLLPUBLIC SimpleAuthenticationRequest : public ucbhelper::Intera
rtl::Reference<
ucbhelper::InteractionSupplyAuthentication > m_xAuthSupplier;
+private:
+ void initialize( ::com::sun::star::ucb::AuthenticationRequest aRequest,
+ const sal_Bool & bCanSetRealm,
+ const sal_Bool & bCanSetUserName,
+ const sal_Bool & bCanSetPassword,
+ const sal_Bool & bCanSetAccount,
+ const sal_Bool & bAllowPersistentStoring );
+
public:
/** Specification whether some entity (realm, username, password, account)
is either not applicable at all, has a fixed value, or is modifiable.
@@ -94,6 +103,26 @@ public:
* Constructor.
*
* @param rServerName contains a server name.
+ * @param rRealm contains a realm, if applicable.
+ * @param rUserName contains a username, if available (for instance from
+ * a previous try).
+ * @param rPassword contains a password, if available (for instance from
+ * a previous try).
+ * @param rAccount contains an account, if applicable.
+ * @param bAllowPersistentStoring specifies if the credentials should stored in the passowrd container persistently
+ */
+ SimpleAuthenticationRequest( const rtl::OUString & rServerName,
+ const rtl::OUString & rRealm,
+ const rtl::OUString & rUserName,
+ const rtl::OUString & rPassword,
+ const rtl::OUString & rAccount,
+ const sal_Bool & bAllowPersistentStoring);
+
+
+ /**
+ * Constructor.
+ *
+ * @param rServerName contains a server name.
* @param eRealmType specifies whether a realm is applicable and
modifiable.
* @param rRealm contains a realm, if applicable.
@@ -120,6 +149,37 @@ public:
const rtl::OUString & rAccount
= rtl::OUString() );
+ /**
+ * Constructor.
+ *
+ * @param rServerName contains a server name.
+ * @param eRealmType specifies whether a realm is applicable and
+ modifiable.
+ * @param rRealm contains a realm, if applicable.
+ * @param eUserNameType specifies whether a username is applicable and
+ modifiable.
+ * @param rUserName contains a username, if available (for instance from
+ * a previous try).
+ * @param ePasswordType specifies whether a password is applicable and
+ modifiable.
+ * @param rPassword contains a password, if available (for instance from
+ * a previous try).
+ * @param eAccountType specifies whether an account is applicable and
+ modifiable.
+ * @param rAccount contains an account, if applicable.
+ * @param bAllowPersistentStoring specifies if the credentials should stored in the passowrd container persistently
+ */
+ SimpleAuthenticationRequest( const rtl::OUString & rServerName,
+ EntityType eRealmType,
+ const rtl::OUString & rRealm,
+ EntityType eUserNameType,
+ const rtl::OUString & rUserName,
+ EntityType ePasswordType,
+ const rtl::OUString & rPassword,
+ EntityType eAccountType,
+ const rtl::OUString & rAccount,
+ const sal_Bool & bAllowPersistentStoring);
+
/**
* This method returns the supplier for the missing authentication data,
* that, for instance can be used to query the password supplied by the
diff --git a/ucbhelper/prj/build.lst b/ucbhelper/prj/build.lst
index fb9e7d7ab45f..3f49d69c987f 100644
--- a/ucbhelper/prj/build.lst
+++ b/ucbhelper/prj/build.lst
@@ -1,4 +1,4 @@
-uh ucbhelper : offuh sal cppu cppuhelper salhelper NULL
+uh ucbhelper : offuh sal cppu cppuhelper salhelper NULL
uh ucbhelper usr1 - all uh_mkout NULL
uh ucbhelper\inc nmake - all uh_inc NULL
uh ucbhelper\source\client nmake - all uh_client uh_inc NULL
diff --git a/ucbhelper/source/provider/simpleauthenticationrequest.cxx b/ucbhelper/source/provider/simpleauthenticationrequest.cxx
index c70dc40db2f7..16570f7f012d 100644
--- a/ucbhelper/source/provider/simpleauthenticationrequest.cxx
+++ b/ucbhelper/source/provider/simpleauthenticationrequest.cxx
@@ -30,7 +30,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_ucbhelper.hxx"
-#include <com/sun/star/ucb/AuthenticationRequest.hpp>
+#include <com/sun/star/task/XMasterPasswordHandling.hpp>
#include <ucbhelper/simpleauthenticationrequest.hxx>
using namespace com::sun::star;
@@ -44,7 +44,7 @@ SimpleAuthenticationRequest::SimpleAuthenticationRequest(
const rtl::OUString & rPassword,
const rtl::OUString & rAccount )
{
- // Fill request...
+ // Fill request...
ucb::AuthenticationRequest aRequest;
// aRequest.Message = // OUString
// aRequest.Context = // XInterface
@@ -62,20 +62,73 @@ SimpleAuthenticationRequest::SimpleAuthenticationRequest(
if ( aRequest.HasAccount )
aRequest.Account = rAccount;
+ initialize(aRequest,
+ sal_False,
+ sal_True,
+ sal_True,
+ aRequest.HasAccount,
+ sal_False);
+}
+//=========================================================================
+SimpleAuthenticationRequest::SimpleAuthenticationRequest(
+ const rtl::OUString & rServerName,
+ const rtl::OUString & rRealm,
+ const rtl::OUString & rUserName,
+ const rtl::OUString & rPassword,
+ const rtl::OUString & rAccount,
+ const sal_Bool & bAllowPersistentStoring )
+{
+
+ // Fill request...
+ ucb::AuthenticationRequest aRequest;
+// aRequest.Message = // OUString
+// aRequest.Context = // XInterface
+ aRequest.Classification = task::InteractionClassification_ERROR;
+ aRequest.ServerName = rServerName;
+// aRequest.Diagnostic = // OUString
+ aRequest.HasRealm = ( rRealm.getLength() > 0 );
+ if ( aRequest.HasRealm )
+ aRequest.Realm = rRealm;
+ aRequest.HasUserName = sal_True;
+ aRequest.UserName = rUserName;
+ aRequest.HasPassword = sal_True;
+ aRequest.Password = rPassword;
+ aRequest.HasAccount = ( rAccount.getLength() > 0 );
+ if ( aRequest.HasAccount )
+ aRequest.Account = rAccount;
+
+ initialize(aRequest,
+ sal_False,
+ sal_True,
+ sal_True,
+ aRequest.HasAccount,
+ bAllowPersistentStoring);
+}
+
+void SimpleAuthenticationRequest::initialize(
+ ucb::AuthenticationRequest aRequest,
+ const sal_Bool & bCanSetRealm,
+ const sal_Bool & bCanSetUserName,
+ const sal_Bool & bCanSetPassword,
+ const sal_Bool & bCanSetAccount,
+ const sal_Bool & bAllowPersistentStoring )
+{
setRequest( uno::makeAny( aRequest ) );
// Fill continuations...
- uno::Sequence< ucb::RememberAuthentication > aRememberModes( 2 );
+ uno::Sequence< ucb::RememberAuthentication > aRememberModes( bAllowPersistentStoring ? 3 : 2 );
aRememberModes[ 0 ] = ucb::RememberAuthentication_NO;
aRememberModes[ 1 ] = ucb::RememberAuthentication_SESSION;
+ if (bAllowPersistentStoring)
+ aRememberModes[ 1 ] = ucb::RememberAuthentication_PERSISTENT;
m_xAuthSupplier
= new InteractionSupplyAuthentication(
this,
- sal_False, // bCanSetRealm
- sal_True, // bCanSetUserName
- sal_True, // bCanSetPassword
- aRequest.HasAccount, // bCanSetAccount
+ bCanSetRealm,
+ bCanSetUserName,
+ bCanSetPassword,
+ bCanSetAccount,
aRememberModes, // rRememberPasswordModes
ucb::RememberAuthentication_SESSION, // eDefaultRememberPasswordMode
aRememberModes, // rRememberAccountModes
@@ -123,31 +176,51 @@ SimpleAuthenticationRequest::SimpleAuthenticationRequest(
if ( aRequest.HasAccount )
aRequest.Account = rAccount;
- setRequest( uno::makeAny( aRequest ) );
-
- // Fill continuations...
- uno::Sequence< ucb::RememberAuthentication > aRememberModes( 2 );
- aRememberModes[ 0 ] = ucb::RememberAuthentication_NO;
- aRememberModes[ 1 ] = ucb::RememberAuthentication_SESSION;
-
- m_xAuthSupplier
- = new InteractionSupplyAuthentication(
- this,
- eRealmType == ENTITY_MODIFY, // bCanSetRealm
- eUserNameType == ENTITY_MODIFY, // bCanSetUserName
- ePasswordType == ENTITY_MODIFY, // bCanSetPassword
- eAccountType == ENTITY_MODIFY, // bCanSetAccount
- aRememberModes, // rRememberPasswordModes
- ucb::RememberAuthentication_SESSION, // eDefaultRememberPasswordMode
- aRememberModes, // rRememberAccountModes
- ucb::RememberAuthentication_SESSION // eDefaultRememberAccountMode
- );
+ initialize(aRequest,
+ eRealmType == ENTITY_MODIFY,
+ eUserNameType == ENTITY_MODIFY,
+ ePasswordType == ENTITY_MODIFY,
+ eAccountType == ENTITY_MODIFY,
+ sal_False);
+}
- uno::Sequence<
- uno::Reference< task::XInteractionContinuation > > aContinuations( 3 );
- aContinuations[ 0 ] = new InteractionAbort( this );
- aContinuations[ 1 ] = new InteractionRetry( this );
- aContinuations[ 2 ] = m_xAuthSupplier.get();
+//=========================================================================
+SimpleAuthenticationRequest::SimpleAuthenticationRequest(
+ const rtl::OUString & rServerName,
+ EntityType eRealmType,
+ const rtl::OUString & rRealm,
+ EntityType eUserNameType,
+ const rtl::OUString & rUserName,
+ EntityType ePasswordType,
+ const rtl::OUString & rPassword,
+ EntityType eAccountType,
+ const rtl::OUString & rAccount,
+ const sal_Bool & bAllowPersistentStoring )
+{
+ // Fill request...
+ ucb::AuthenticationRequest aRequest;
+// aRequest.Message = // OUString
+// aRequest.Context = // XInterface
+ aRequest.Classification = task::InteractionClassification_ERROR;
+ aRequest.ServerName = rServerName;
+// aRequest.Diagnostic = // OUString
+ aRequest.HasRealm = eRealmType != ENTITY_NA;
+ if ( aRequest.HasRealm )
+ aRequest.Realm = rRealm;
+ aRequest.HasUserName = eUserNameType != ENTITY_NA;
+ if ( aRequest.HasUserName )
+ aRequest.UserName = rUserName;
+ aRequest.HasPassword = ePasswordType != ENTITY_NA;
+ if ( aRequest.HasPassword )
+ aRequest.Password = rPassword;
+ aRequest.HasAccount = eAccountType != ENTITY_NA;
+ if ( aRequest.HasAccount )
+ aRequest.Account = rAccount;
- setContinuations( aContinuations );
+ initialize(aRequest,
+ eRealmType == ENTITY_MODIFY,
+ eUserNameType == ENTITY_MODIFY,
+ ePasswordType == ENTITY_MODIFY,
+ eAccountType == ENTITY_MODIFY,
+ bAllowPersistentStoring);
}
diff --git a/unotools/inc/unotools/accessiblerelationsethelper.hxx b/unotools/inc/unotools/accessiblerelationsethelper.hxx
index 53802862ada2..e48850e3efc8 100644
--- a/unotools/inc/unotools/accessiblerelationsethelper.hxx
+++ b/unotools/inc/unotools/accessiblerelationsethelper.hxx
@@ -43,7 +43,7 @@
#include <com/sun/star/lang/XServiceName.hpp>
#include <vos/mutex.hxx>
#include <cppuhelper/implbase1.hxx>
-#include <unotools/servicehelper.hxx>
+#include <comphelper/servicehelper.hxx>
class AccessibleRelationSetHelperImpl;
diff --git a/unotools/inc/unotools/accessiblestatesethelper.hxx b/unotools/inc/unotools/accessiblestatesethelper.hxx
index f256249c8e37..421a77b78f2b 100644
--- a/unotools/inc/unotools/accessiblestatesethelper.hxx
+++ b/unotools/inc/unotools/accessiblestatesethelper.hxx
@@ -42,7 +42,7 @@
#include <com/sun/star/lang/XServiceName.hpp>
#include <vos/mutex.hxx>
#include <cppuhelper/implbase1.hxx>
-#include <unotools/servicehelper.hxx>
+#include <comphelper/servicehelper.hxx>
class AccessibleStateSetHelperImpl;
diff --git a/unotools/inc/unotools/confignode.hxx b/unotools/inc/unotools/confignode.hxx
index a50025a6ab50..580274004e1a 100644
--- a/unotools/inc/unotools/confignode.hxx
+++ b/unotools/inc/unotools/confignode.hxx
@@ -86,7 +86,7 @@ namespace utl
const OConfigurationNode& operator=(const OConfigurationNode& _rSource);
/// dtor
- ~OConfigurationNode();
+ ~OConfigurationNode() {}
/** open a sub node
@param _rPath access path of the to-be-opened sub node. May be a hierarchical path.
diff --git a/unotools/inc/unotools/servicehelper.hxx b/unotools/inc/unotools/servicehelper.hxx
deleted file mode 100644
index 596e6f946a7f..000000000000
--- a/unotools/inc/unotools/servicehelper.hxx
+++ /dev/null
@@ -1,108 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: servicehelper.hxx,v $
- * $Revision: 1.5 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _UTL_SERVICEHELPER_HXX_
-#define _UTL_SERVICEHELPER_HXX_
-
-/** the UNO3_GETIMPLEMENTATION_* macros implement a static helper function
- that gives access to your implementation for a given interface reference,
- if possible.
-
- Example:
- MyClass* pClass = MyClass::getImplementation( xRef );
-
- Usage:
- Put a UNO3_GETIMPLEMENTATION_DECL( classname ) inside your class
- definitian and UNO3_GETIMPLEMENTATION_IMPL( classname ) inside
- your cxx file. Your class must inherit ::com::sun::star::uno::XUnoTunnel
- and export it with queryInterface. Implementation of XUnoTunnel is
- done by this macro.
-*/
-#define UNO3_GETIMPLEMENTATION_DECL( classname ) \
- static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw(); \
- static classname* getImplementation( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xInt ) throw(); \
- virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
-
-#define UNO3_GETIMPLEMENTATION_BASE_IMPL( classname ) \
-const ::com::sun::star::uno::Sequence< sal_Int8 > & classname::getUnoTunnelId() throw() \
-{ \
- static ::com::sun::star::uno::Sequence< sal_Int8 > * pSeq = 0; \
- if( !pSeq ) \
- { \
- ::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() ); \
- if( !pSeq ) \
- { \
- static ::com::sun::star::uno::Sequence< sal_Int8 > aSeq( 16 ); \
- rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True ); \
- pSeq = &aSeq; \
- } \
- } \
- return *pSeq; \
-} \
-\
-classname* classname::getImplementation( uno::Reference< uno::XInterface > xInt ) throw() \
-{ \
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XUnoTunnel > xUT( xInt, ::com::sun::star::uno::UNO_QUERY ); \
- if( xUT.is() ) \
- return reinterpret_cast<classname*>(sal::static_int_cast<sal_IntPtr>(xUT->getSomething( classname::getUnoTunnelId() ))); \
- else \
- return NULL; \
-}
-
-#define UNO3_GETIMPLEMENTATION_IMPL( classname )\
-UNO3_GETIMPLEMENTATION_BASE_IMPL(classname)\
-sal_Int64 SAL_CALL classname::getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw(::com::sun::star::uno::RuntimeException) \
-{ \
- if( rId.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), \
- rId.getConstArray(), 16 ) ) \
- { \
- return sal::static_int_cast<sal_Int64>(reinterpret_cast<sal_IntPtr>(this)); \
- } \
- return 0; \
-}
-
-#define UNO3_GETIMPLEMENTATION2_IMPL( classname, baseclass )\
-UNO3_GETIMPLEMENTATION_BASE_IMPL(classname)\
-sal_Int64 SAL_CALL classname::getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw(::com::sun::star::uno::RuntimeException) \
-{ \
- if( rId.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), \
- rId.getConstArray(), 16 ) ) \
- { \
- return sal::static_int_cast<sal_Int64>(reinterpret_cast<sal_IntPtr>(this)); \
- } \
- else \
- { \
- return baseclass::getSomething( rId ); \
- } \
-}
-
-
-#endif // _UTL_SERVICEHELPER_HXX_
-
diff --git a/unotools/source/config/confignode.cxx b/unotools/source/config/confignode.cxx
index 56d0b1b06118..4b1b9fe272db 100644
--- a/unotools/source/config/confignode.cxx
+++ b/unotools/source/config/confignode.cxx
@@ -130,11 +130,6 @@ namespace utl
}
//------------------------------------------------------------------------
- OConfigurationNode::~OConfigurationNode()
- {
- }
-
- //------------------------------------------------------------------------
void OConfigurationNode::_disposing( const EventObject& _rSource )
{
Reference< XComponent > xDisposingSource(_rSource.Source, UNO_QUERY);
diff --git a/vcl/aqua/inc/salframeview.h b/vcl/aqua/inc/salframeview.h
index e969cc8509a1..7fd4d96c4a45 100755
--- a/vcl/aqua/inc/salframeview.h
+++ b/vcl/aqua/inc/salframeview.h
@@ -108,6 +108,7 @@
-(void)sendMouseEventToFrame:(NSEvent*)pEvent button:(USHORT)nButton eventtype:(USHORT)nEvent;
-(MacOSBOOL)sendKeyInputAndReleaseToFrame: (USHORT)nKeyCode character: (sal_Unicode)aChar;
-(MacOSBOOL)sendKeyInputAndReleaseToFrame: (USHORT)nKeyCode character: (sal_Unicode)aChar modifiers: (unsigned int)nMod;
+-(MacOSBOOL)sendKeyToFrameDirect: (USHORT)nKeyCode character: (sal_Unicode)aChar modifiers: (unsigned int)nMod;
-(MacOSBOOL)sendSingleCharacter:(NSEvent*)pEvent;
-(MacOSBOOL)handleKeyDownException:(NSEvent*)pEvent;
/*
diff --git a/vcl/aqua/inc/salgdi.h b/vcl/aqua/inc/salgdi.h
index 476400f1564b..11abd6086ce7 100644
--- a/vcl/aqua/inc/salgdi.h
+++ b/vcl/aqua/inc/salgdi.h
@@ -157,6 +157,7 @@ public:
void SetVirDevGraphics( CGLayerRef, CGContextRef, int nBitDepth = 0 );
void initResolution( NSWindow* );
+ void copyResolution( AquaSalGraphics& );
void updateResolution();
bool IsWindowGraphics() const { return mbWindow; }
@@ -348,6 +349,7 @@ public:
virtual BOOL IsNativeControlSupported( ControlType nType, ControlPart nPart );
virtual SystemGraphicsData GetGraphicsData() const;
+ virtual SystemFontData GetSysFontData( int /* nFallbacklevel */ ) const;
private:
// differences between VCL, Quartz and kHiThemeOrientation coordinate systems
diff --git a/vcl/aqua/inc/vclnsapp.h b/vcl/aqua/inc/vclnsapp.h
index a5c339c238bd..fc637ff75a31 100755
--- a/vcl/aqua/inc/vclnsapp.h
+++ b/vcl/aqua/inc/vclnsapp.h
@@ -59,7 +59,6 @@
-(void)scrollbarSettingsChanged: (NSNotification*) pNotification;
-(void)addFallbackMenuItem: (NSMenuItem*)pNewItem;
-(void)removeFallbackMenuItem: (NSMenuItem*)pOldItem;
--(void)getSystemVersionMajor:(unsigned *)major minor:(unsigned *)minor bugFix:(unsigned *)bugFix;
-(void)addDockMenuItem: (NSMenuItem*)pNewItem;
-(void)applicationWillBecomeActive: (NSNotification *)pNotification;
-(void)applicationWillResignActive: (NSNotification *)pNotification;
diff --git a/vcl/aqua/source/a11y/aqua11ytextattributeswrapper.mm b/vcl/aqua/source/a11y/aqua11ytextattributeswrapper.mm
index 53472e6ae34d..e521e7362323 100644
--- a/vcl/aqua/source/a11y/aqua11ytextattributeswrapper.mm
+++ b/vcl/aqua/source/a11y/aqua11ytextattributeswrapper.mm
@@ -249,6 +249,8 @@ using namespace ::rtl;
// empty
} catch ( IndexOutOfBoundsException & e ) {
// empty
+ } catch ( RuntimeException& ) {
+ // at least don't crash
}
return string;
}
diff --git a/vcl/aqua/source/a11y/aqua11yutil.mm b/vcl/aqua/source/a11y/aqua11yutil.mm
index 6d12fbee7a91..44f95169ca68 100644
--- a/vcl/aqua/source/a11y/aqua11yutil.mm
+++ b/vcl/aqua/source/a11y/aqua11yutil.mm
@@ -51,7 +51,7 @@ using namespace ::com::sun::star::awt;
+(Point)nsPointToVclPoint:(NSValue *)nsPoint {
// VCL coordinates are in upper-left-notation, Cocoa likes it the Cartesian way (lower-left)
NSRect screenRect = [ [ NSScreen mainScreen ] frame ];
- return Point ( [ nsPoint pointValue ].x, screenRect.size.height - [ nsPoint pointValue ].y );
+ return Point ( static_cast<long>([ nsPoint pointValue ].x), static_cast<long>(screenRect.size.height - [ nsPoint pointValue ].y) );
}
@end
diff --git a/vcl/aqua/source/a11y/aqua11ywrapper.mm b/vcl/aqua/source/a11y/aqua11ywrapper.mm
index 066748cc1525..99bcbd20f698 100644
--- a/vcl/aqua/source/a11y/aqua11ywrapper.mm
+++ b/vcl/aqua/source/a11y/aqua11ywrapper.mm
@@ -178,9 +178,11 @@ static MacOSBOOL isPopupMenuOpen = NO;
-(Reference < XAccessible >)getFirstRadioButtonInGroup {
Reference < XAccessibleRelationSet > rxAccessibleRelationSet = [ self accessibleContext ] -> getAccessibleRelationSet();
- AccessibleRelation relationMemberOf = rxAccessibleRelationSet -> getRelationByType ( AccessibleRelationType::MEMBER_OF );
- if ( relationMemberOf.RelationType == AccessibleRelationType::MEMBER_OF && relationMemberOf.TargetSet.hasElements() ) {
- return Reference < XAccessible > ( relationMemberOf.TargetSet[0], UNO_QUERY );
+ if( rxAccessibleRelationSet.is() )
+ {
+ AccessibleRelation relationMemberOf = rxAccessibleRelationSet -> getRelationByType ( AccessibleRelationType::MEMBER_OF );
+ if ( relationMemberOf.RelationType == AccessibleRelationType::MEMBER_OF && relationMemberOf.TargetSet.hasElements() )
+ return Reference < XAccessible > ( relationMemberOf.TargetSet[0], UNO_QUERY );
}
return Reference < XAccessible > ();
}
@@ -726,9 +728,15 @@ static MacOSBOOL isPopupMenuOpen = NO;
if ( nativeSubrole != nil && ! [ nativeSubrole isEqualToString: @"" ] ) {
[ attributeNames addObject: NSAccessibilitySubroleAttribute ];
}
+ try
+ {
if ( [ self accessibleContext ] -> getAccessibleChildCount() > 0 ) {
[ attributeNames addObject: NSAccessibilityChildrenAttribute ];
}
+ }
+ catch( DisposedException& ) {}
+ catch( RuntimeException& ) {}
+
if ( title != nil && ! [ title isEqualToString: @"" ] ) {
[ attributeNames addObject: NSAccessibilityTitleAttribute ];
}
@@ -984,7 +992,7 @@ Reference < XAccessibleContext > hitTestRunner ( Point point, Reference < XAcces
}
Reference < XAccessibleContext > hitChild;
NSRect screenRect = [ [ NSScreen mainScreen ] frame ];
- Point hitPoint ( point.x , screenRect.size.height - point.y );
+ Point hitPoint ( static_cast<long>(point.x) , static_cast<long>(screenRect.size.height - point.y) );
// check child windows first
NSWindow * window = (NSWindow *) [ self accessibilityAttributeValue: NSAccessibilityWindowAttribute ];
NSArray * childWindows = [ window childWindows ];
diff --git a/vcl/aqua/source/app/saldata.cxx b/vcl/aqua/source/app/saldata.cxx
index a70854306122..180f6a106459 100644
--- a/vcl/aqua/source/app/saldata.cxx
+++ b/vcl/aqua/source/app/saldata.cxx
@@ -93,7 +93,7 @@ SalData::~SalData()
}
osl_destroyThreadKey( s_aAutoReleaseKey );
- s_aAutoReleaseKey = NULL;
+ s_aAutoReleaseKey = 0;
}
if ( mpMainController )
[mpMainController release];
diff --git a/vcl/aqua/source/app/salinst.cxx b/vcl/aqua/source/app/salinst.cxx
index b9d66d1e02d3..71bfb7953187 100644
--- a/vcl/aqua/source/app/salinst.cxx
+++ b/vcl/aqua/source/app/salinst.cxx
@@ -140,10 +140,6 @@ bool AquaSalInstance::isOnCommandLine( const rtl::OUString& rArg )
// returns an NSAutoreleasePool that must be released when the event loop begins
static void initNSApp()
{
- SInt32 major = NULL;
- SInt32 minor = NULL;
- SInt32 bugFix = NULL;
-
// create our cocoa NSApplication
[VCL_NSApplication sharedApplication];
@@ -176,7 +172,17 @@ static void initNSApp()
object: nil ];
// get System Version and store the value in GetSalData()->mnSystemVersion
- [NSApp getSystemVersionMajor: (unsigned int *)major minor:(unsigned int *)minor bugFix:(unsigned int *)bugFix ];
+ OSErr err = noErr;
+ SInt32 systemVersion = VER_TIGER; // Initialize with minimal requirement
+ if( (err = Gestalt(gestaltSystemVersion, &systemVersion)) == noErr )
+ {
+ GetSalData()->mnSystemVersion = systemVersion;
+#if OSL_DEBUG_LEVEL > 1
+ fprintf( stderr, "System Version %x\n", (unsigned int)systemVersion);
+#endif
+ }
+ else
+ NSLog(@"Unable to obtain system version: %ld", (long)err);
// Initialize Apple Remote
GetSalData()->mpMainController = [[MainController alloc] init];
diff --git a/vcl/aqua/source/app/salsys.cxx b/vcl/aqua/source/app/salsys.cxx
index 28acb47ccade..78b5defe6dd9 100644
--- a/vcl/aqua/source/app/salsys.cxx
+++ b/vcl/aqua/source/app/salsys.cxx
@@ -75,8 +75,8 @@ Rectangle AquaSalSystem::GetDisplayScreenPosSizePixel( unsigned int nScreen )
if( pScreen )
{
NSRect aFrame = [pScreen frame];
- aRet = Rectangle( Point( aFrame.origin.x, aFrame.origin.y ),
- Size( aFrame.size.width, aFrame.size.height ) );
+ aRet = Rectangle( Point( static_cast<long int>(aFrame.origin.x), static_cast<long int>(aFrame.origin.y) ),
+ Size( static_cast<long int>(aFrame.size.width), static_cast<long int>(aFrame.size.height) ) );
}
return aRet;
}
@@ -94,8 +94,8 @@ Rectangle AquaSalSystem::GetDisplayWorkAreaPosSizePixel( unsigned int nScreen )
if( pScreen )
{
NSRect aFrame = [pScreen visibleFrame];
- aRet = Rectangle( Point( aFrame.origin.x, aFrame.origin.y ),
- Size( aFrame.size.width, aFrame.size.height ) );
+ aRet = Rectangle( Point( static_cast<long int>(aFrame.origin.x), static_cast<long int>(aFrame.origin.y) ),
+ Size( static_cast<long int>(aFrame.size.width), static_cast<long int>(aFrame.size.height) ) );
}
return aRet;
}
diff --git a/vcl/aqua/source/app/vclnsapp.mm b/vcl/aqua/source/app/vclnsapp.mm
index 9e933c7410b6..43d44c709c12 100755
--- a/vcl/aqua/source/app/vclnsapp.mm
+++ b/vcl/aqua/source/app/vclnsapp.mm
@@ -86,45 +86,52 @@
return;
}
}
-
- /* #i89611#
- Cmd-Option-Space is for some reason not consumed by the menubar,
- but also not by the input method (like e.g. Cmd-Space) and stays
- without function.
-
- However MOD1 + MOD2 combinations are not used throughout OOo code
- since they tend to clash with system shortcuts on all platforms so
- we can skip this case here.
- */
- // get information whether the event was handled; keyDown returns nothing
- GetSalData()->maKeyEventAnswer[ pEvent ] = false;
- bool bHandled = false;
-
- if( nModMask != (NSCommandKeyMask | NSAlternateKeyMask) )
+
+ /*
+ * #i98949# - Cmd-M miniaturize window, Cmd-Option-M miniaturize all windows
+ */
+ if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"m"] )
{
- // dispatch to view directly to avoid the key event being consumed by the menubar
- // popup windows do not get the focus, so they don't get these either
- // simplest would be dispatch this to the key window always if it is without parent
- // however e.g. in document we want the menu shortcut if e.g. the stylist has focus
- if( pFrame->mpParent && (pFrame->mnStyle & SAL_FRAME_STYLE_FLOAT) == 0 )
+ if ( nModMask == NSCommandKeyMask && ([pFrame->getWindow() styleMask] & NSMiniaturizableWindowMask) )
{
- [[pKeyWin contentView] keyDown: pEvent];
- bHandled = GetSalData()->maKeyEventAnswer[ pEvent ];
+ [pFrame->getWindow() performMiniaturize: nil];
+ return;
}
-
- // see whether the main menu consumes this event
- // if not, we want to dispatch it ourselves. Unless we do this "trick"
- // the main menu just beeps for an unknown or disabled key equivalent
- // and swallows the event wholesale
- NSMenu* pMainMenu = [NSApp mainMenu];
- if( ! bHandled && (pMainMenu == 0 || ! [pMainMenu performKeyEquivalent: pEvent]) )
+
+ if ( nModMask == ( NSCommandKeyMask | NSAlternateKeyMask ) )
{
- [[pKeyWin contentView] keyDown: pEvent];
- bHandled = GetSalData()->maKeyEventAnswer[ pEvent ];
+ [NSApp miniaturizeAll: nil];
+ return;
}
- else
- bHandled = true; // event handled already or main menu just handled it
}
+
+ // get information whether the event was handled; keyDown returns nothing
+ GetSalData()->maKeyEventAnswer[ pEvent ] = false;
+ bool bHandled = false;
+
+ // dispatch to view directly to avoid the key event being consumed by the menubar
+ // popup windows do not get the focus, so they don't get these either
+ // simplest would be dispatch this to the key window always if it is without parent
+ // however e.g. in document we want the menu shortcut if e.g. the stylist has focus
+ if( pFrame->mpParent && (pFrame->mnStyle & SAL_FRAME_STYLE_FLOAT) == 0 )
+ {
+ [[pKeyWin contentView] keyDown: pEvent];
+ bHandled = GetSalData()->maKeyEventAnswer[ pEvent ];
+ }
+
+ // see whether the main menu consumes this event
+ // if not, we want to dispatch it ourselves. Unless we do this "trick"
+ // the main menu just beeps for an unknown or disabled key equivalent
+ // and swallows the event wholesale
+ NSMenu* pMainMenu = [NSApp mainMenu];
+ if( ! bHandled && (pMainMenu == 0 || ! [pMainMenu performKeyEquivalent: pEvent]) )
+ {
+ [[pKeyWin contentView] keyDown: pEvent];
+ bHandled = GetSalData()->maKeyEventAnswer[ pEvent ];
+ }
+ else
+ bHandled = true; // event handled already or main menu just handled it
+
GetSalData()->maKeyEventAnswer.erase( pEvent );
if( bHandled )
return;
@@ -356,26 +363,6 @@
AquaSalMenu::removeFallbackMenuItem( pItem );
}
-- (void)getSystemVersionMajor:(unsigned *)major
- minor:(unsigned *)minor
- bugFix:(unsigned *)bugFix
-{
- OSErr err;
- SInt32 systemVersion = VER_TIGER; // Initialize with minimal requirement
- if ((err = Gestalt(gestaltSystemVersion, &systemVersion)) == noErr)
- {
- GetSalData()->mnSystemVersion = systemVersion;
-#if OSL_DEBUG_LEVEL > 1
- fprintf( stderr, "System Version %x\n", (unsigned int)systemVersion);
- fprintf( stderr, "Stored System Version %x\n", (unsigned int)GetSalData()->mnSystemVersion);
-#endif
- }
- else
- NSLog(@"Unable to obtain system version: %ld", (long)err);
-
- return;
-}
-
-(void)addDockMenuItem: (NSMenuItem*)pNewItem
{
NSMenu* pDock = AquaSalInstance::GetDynamicDockMenu();
diff --git a/vcl/aqua/source/gdi/aquaprintview.mm b/vcl/aqua/source/gdi/aquaprintview.mm
index 6099fbaed741..ba139da5f5a4 100755
--- a/vcl/aqua/source/gdi/aquaprintview.mm
+++ b/vcl/aqua/source/gdi/aquaprintview.mm
@@ -58,6 +58,9 @@
{
NSSize aPaperSize = [mpInfoPrinter->getPrintInfo() paperSize];
int nWidth = (int)aPaperSize.width;
+ // #i101108# sanity check
+ if( nWidth < 1 )
+ nWidth = 1;
NSRect aRect = { { page % nWidth, page / nWidth }, aPaperSize };
return aRect;
}
@@ -71,7 +74,7 @@
-(void)drawRect: (NSRect)rect
{
NSPoint aPoint = [self locationOfPrintRect: rect];
- mpInfoPrinter->setStartPageOffset( rect.origin.x, rect.origin.y );
+ mpInfoPrinter->setStartPageOffset( static_cast<int>(rect.origin.x), static_cast<int>(rect.origin.y) );
NSSize aPaperSize = [mpInfoPrinter->getPrintInfo() paperSize];
int nPage = (int)(aPaperSize.width * rect.origin.y + rect.origin.x);
diff --git a/vcl/aqua/source/gdi/salatslayout.cxx b/vcl/aqua/source/gdi/salatslayout.cxx
index f47920004f7a..7ecef01cf0d5 100755
--- a/vcl/aqua/source/gdi/salatslayout.cxx
+++ b/vcl/aqua/source/gdi/salatslayout.cxx
@@ -6,9 +6,6 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: salatslayout.cxx,v $
- * $Revision: 1.12 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -301,7 +298,7 @@ void ATSLayout::AdjustLayout( ImplLayoutArgs& rArgs )
int nPixelWidth = rArgs.mnLayoutWidth;
if( !nPixelWidth && rArgs.mpDXArray ) {
// for now we are only interested in the layout width
- // TODO: account for individual logical widths
+ // TODO: use all mpDXArray elements for layouting
nPixelWidth = rArgs.mpDXArray[ mnCharCount - 1 ];
// workaround for ATSUI not using trailing spaces for justification
@@ -309,14 +306,21 @@ void ATSLayout::AdjustLayout( ImplLayoutArgs& rArgs )
int i = mnCharCount;
while( (--i > 0) && IsSpacingGlyph( rArgs.mpStr[mnMinCharPos+i]|GF_ISCHAR ) )
mnTrailingSpaceWidth += rArgs.mpDXArray[i] - rArgs.mpDXArray[i-1];
+ if( i <= 0 )
+ return;
+ // #i91685# trailing letters are left aligned (right aligned for RTL)
+ mnTrailingSpaceWidth += rArgs.mpDXArray[i];
+ if( i > 0 )
+ mnTrailingSpaceWidth -= rArgs.mpDXArray[i-1];
+ InitGIA(); // ensure valid mpCharWidths[]
+ mnTrailingSpaceWidth -= Fixed2Vcl( mpCharWidths[i] );
+ // ignore trailing space for calculating the available width
nOrigWidth -= mnTrailingSpaceWidth;
nPixelWidth -= mnTrailingSpaceWidth;
- // trailing spaces can be leftmost spaces in RTL-layouts
+ // in RTL-layouts trailing spaces are leftmost
// TODO: use BiDi-algorithm to thoroughly check this assumption
if( rArgs.mnFlags & SAL_LAYOUT_BIDI_RTL)
mnBaseAdv = mnTrailingSpaceWidth;
-
- // TODO: use all mpDXArray elements for layouting
}
// return early if there is nothing to do
if( !nPixelWidth )
@@ -424,8 +428,8 @@ void ATSLayout::DrawText( SalGraphics& rGraphics ) const
if( rAquaGraphics.mnATSUIRotation != 0 )
{
const double fRadians = rAquaGraphics.mnATSUIRotation * (M_PI/0xB40000);
- nXOfsFixed = +rSubPortion.mnXOffset * cos( fRadians );
- nYOfsFixed = +rSubPortion.mnXOffset * sin( fRadians );
+ nXOfsFixed = static_cast<Fixed>(static_cast<double>(+rSubPortion.mnXOffset) * cos( fRadians ));
+ nYOfsFixed = static_cast<Fixed>(static_cast<double>(+rSubPortion.mnXOffset) * sin( fRadians ));
}
// draw sub-portions
@@ -738,6 +742,8 @@ int ATSLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor ) cons
// get a quick overview on what could fit
const long nPixelWidth = (nMaxWidth - (nCharExtra * mnCharCount)) / nFactor;
+ if( nPixelWidth <= 0 )
+ return mnMinCharPos;
// check assumptions
DBG_ASSERT( !mnTrailingSpaceWidth, "ATSLayout::GetTextBreak() with nTSW!=0" );
diff --git a/vcl/aqua/source/gdi/salgdi.cxx b/vcl/aqua/source/gdi/salgdi.cxx
index 661eb64b83ce..f8410a47dfd6 100644
--- a/vcl/aqua/source/gdi/salgdi.cxx
+++ b/vcl/aqua/source/gdi/salgdi.cxx
@@ -346,64 +346,80 @@ void AquaSalGraphics::updateResolution()
void AquaSalGraphics::initResolution( NSWindow* pWin )
{
- NSScreen* pScreen = nil;
+ // #i100617# read DPI only once; there is some kind of weird caching going on
+ // if the main screen changes
+ // FIXME: this is really unfortunate and needs to be investigated
- /* #i91301#
- many woes went into the try to have different resolutions
- on different screens. The result of these trials is that OOo is not ready
- for that yet, vcl and applications would need to be adapted.
+ SalData* pSalData = GetSalData();
+ if( pSalData->mnDPIX == 0 || pSalData->mnDPIY == 0 )
+ {
+ NSScreen* pScreen = nil;
- Unfortunately this is not possible in the 3.0 timeframe.
- So let's stay with one resolution for all Windows and VirtualDevices
- which is the resolution of the main screen
+ /* #i91301#
+ many woes went into the try to have different resolutions
+ on different screens. The result of these trials is that OOo is not ready
+ for that yet, vcl and applications would need to be adapted.
- This of course also means that measurements are exact only on the main screen.
- For activating different resolutions again just comment out the two lines below.
+ Unfortunately this is not possible in the 3.0 timeframe.
+ So let's stay with one resolution for all Windows and VirtualDevices
+ which is the resolution of the main screen
- if( pWin )
+ This of course also means that measurements are exact only on the main screen.
+ For activating different resolutions again just comment out the two lines below.
+
+ if( pWin )
pScreen = [pWin screen];
- */
- if( pScreen == nil )
- {
- NSArray* pScreens = [NSScreen screens];
- if( pScreens )
- pScreen = [pScreens objectAtIndex: 0];
- }
+ */
+ if( pScreen == nil )
+ {
+ NSArray* pScreens = [NSScreen screens];
+ if( pScreens )
+ pScreen = [pScreens objectAtIndex: 0];
+ }
- mnRealDPIX = mnRealDPIY = 96;
- if( pScreen )
- {
- NSDictionary* pDev = [pScreen deviceDescription];
- if( pDev )
+ mnRealDPIX = mnRealDPIY = 96;
+ if( pScreen )
{
- NSNumber* pVal = [pDev objectForKey: @"NSScreenNumber"];
- if( pVal )
+ NSDictionary* pDev = [pScreen deviceDescription];
+ if( pDev )
{
- // FIXME: casting a long to CGDirectDisplayID is evil, but
- // Apple suggest to do it this way
- const CGDirectDisplayID nDisplayID = (CGDirectDisplayID)[pVal longValue];
- const CGSize aSize = CGDisplayScreenSize( nDisplayID ); // => result is in millimeters
- mnRealDPIX = static_cast<long>((CGDisplayPixelsWide( nDisplayID ) * 25.4) / aSize.width);
- mnRealDPIY = static_cast<long>((CGDisplayPixelsHigh( nDisplayID ) * 25.4) / aSize.height);
+ NSNumber* pVal = [pDev objectForKey: @"NSScreenNumber"];
+ if( pVal )
+ {
+ // FIXME: casting a long to CGDirectDisplayID is evil, but
+ // Apple suggest to do it this way
+ const CGDirectDisplayID nDisplayID = (CGDirectDisplayID)[pVal longValue];
+ const CGSize aSize = CGDisplayScreenSize( nDisplayID ); // => result is in millimeters
+ mnRealDPIX = static_cast<long>((CGDisplayPixelsWide( nDisplayID ) * 25.4) / aSize.width);
+ mnRealDPIY = static_cast<long>((CGDisplayPixelsHigh( nDisplayID ) * 25.4) / aSize.height);
+ }
+ else
+ {
+ DBG_ERROR( "no resolution found in device description" );
+ }
}
else
{
- DBG_ERROR( "no resolution found in device description" );
+ DBG_ERROR( "no device description" );
}
}
else
{
- DBG_ERROR( "no device description" );
+ DBG_ERROR( "no screen found" );
}
+
+ // for OSX any anisotropy reported for the display resolution is best ignored (e.g. TripleHead2Go)
+ mnRealDPIX = mnRealDPIY = (mnRealDPIX + mnRealDPIY + 1) / 2;
+
+ pSalData->mnDPIX = mnRealDPIX;
+ pSalData->mnDPIY = mnRealDPIY;
}
else
{
- DBG_ERROR( "no screen found" );
+ mnRealDPIX = pSalData->mnDPIX;
+ mnRealDPIY = pSalData->mnDPIY;
}
- // for OSX any anisotropy reported for the display resolution is best ignored (e.g. TripleHead2Go)
- mnRealDPIX = mnRealDPIY = (mnRealDPIX + mnRealDPIY + 1) / 2;
-
mfFakeDPIScale = 1.0;
}
@@ -416,6 +432,16 @@ void AquaSalGraphics::GetResolution( long& rDPIX, long& rDPIY )
rDPIY = static_cast<long>(mfFakeDPIScale * mnRealDPIY);
}
+void AquaSalGraphics::copyResolution( AquaSalGraphics& rGraphics )
+{
+ if( !rGraphics.mnRealDPIY && rGraphics.mbWindow && rGraphics.mpFrame )
+ rGraphics.initResolution( rGraphics.mpFrame->mpWindow );
+
+ mnRealDPIX = rGraphics.mnRealDPIX;
+ mnRealDPIY = rGraphics.mnRealDPIY;
+ mfFakeDPIScale = rGraphics.mfFakeDPIScale;
+}
+
// -----------------------------------------------------------------------
USHORT AquaSalGraphics::GetBitCount()
@@ -948,6 +974,11 @@ bool AquaSalGraphics::drawPolyLine( const ::basegfx::B2DPolygon& rPolyLine,
if( rLineWidths.getX() != rLineWidths.getY() )
return false;
+ // #i101491# Aqua does not support B2DLINEJOIN_NONE; return false to use
+ // the fallback (own geometry preparation)
+ if(basegfx::B2DLINEJOIN_NONE == eLineJoin)
+ return false;
+
// setup line attributes
CGLineJoin aCGLineJoin = kCGLineJoinMiter;
switch( eLineJoin ) {
@@ -2298,6 +2329,43 @@ void AquaSalGraphics::FreeEmbedFontData( const void* pData, long nDataLen )
// -----------------------------------------------------------------------
+SystemFontData AquaSalGraphics::GetSysFontData( int /* nFallbacklevel */ ) const
+{
+ SystemFontData aSysFontData;
+ OSStatus err;
+ aSysFontData.nSize = sizeof( SystemFontData );
+
+ // NOTE: Native ATSU font fallbacks are used, not the VCL fallbacks.
+ ATSUFontID fontId;
+ err = ATSUGetAttribute( maATSUStyle, kATSUFontTag, sizeof(fontId), &fontId, 0 );
+ if (err) fontId = 0;
+ aSysFontData.aATSUFontID = (void *) fontId;
+
+ Boolean bFbold;
+ err = ATSUGetAttribute( maATSUStyle, kATSUQDBoldfaceTag, sizeof(bFbold), &bFbold, 0 );
+ if (err) bFbold = FALSE;
+ aSysFontData.bFakeBold = (bool) bFbold;
+
+ Boolean bFItalic;
+ err = ATSUGetAttribute( maATSUStyle, kATSUQDItalicTag, sizeof(bFItalic), &bFItalic, 0 );
+ if (err) bFItalic = FALSE;
+ aSysFontData.bFakeItalic = (bool) bFItalic;
+
+ ATSUVerticalCharacterType aVerticalCharacterType;
+ err = ATSUGetAttribute( maATSUStyle, kATSUVerticalCharacterTag, sizeof(aVerticalCharacterType), &aVerticalCharacterType, 0 );
+ if (!err && aVerticalCharacterType == kATSUStronglyVertical) {
+ aSysFontData.bVerticalCharacterType = true;
+ } else {
+ aSysFontData.bVerticalCharacterType = false;
+ }
+
+ aSysFontData.bAntialias = !mbNonAntialiasedText;
+
+ return aSysFontData;
+}
+
+// -----------------------------------------------------------------------
+
SystemGraphicsData AquaSalGraphics::GetGraphicsData() const
{
SystemGraphicsData aRes;
diff --git a/vcl/aqua/source/gdi/salgdiutils.cxx b/vcl/aqua/source/gdi/salgdiutils.cxx
index 066268791b11..99a1629006d2 100755
--- a/vcl/aqua/source/gdi/salgdiutils.cxx
+++ b/vcl/aqua/source/gdi/salgdiutils.cxx
@@ -102,8 +102,8 @@ void AquaSalGraphics::SetVirDevGraphics( CGLayerRef xLayer, CGContextRef xContex
else
{
const CGSize aSize = CGLayerGetSize( mxLayer );
- mnWidth = aSize.width;
- mnHeight = aSize.height;
+ mnWidth = static_cast<int>(aSize.width);
+ mnHeight = static_cast<int>(aSize.height);
}
// prepare graphics for drawing
@@ -219,7 +219,10 @@ void AquaSalGraphics::RefreshRect(float lX, float lY, float lWidth, float lHeigh
{
// update a little more around the designated rectangle
// this helps with antialiased rendering
- const Rectangle aVclRect( Point( lX-1, lY-1 ), Size( lWidth+2, lHeight+2) );
+ const Rectangle aVclRect(Point(static_cast<long int>(lX-1),
+ static_cast<long int>(lY-1) ),
+ Size( static_cast<long int>(lWidth+2),
+ static_cast<long int>(lHeight+2) ) );
mpFrame->maInvalidRect.Union( aVclRect );
}
}
diff --git a/vcl/aqua/source/gdi/salnativewidgets.cxx b/vcl/aqua/source/gdi/salnativewidgets.cxx
index 9f2c7c4fa3a7..6cd4e78a2d1a 100644
--- a/vcl/aqua/source/gdi/salnativewidgets.cxx
+++ b/vcl/aqua/source/gdi/salnativewidgets.cxx
@@ -612,7 +612,7 @@ BOOL AquaSalGraphics::drawNativeControl(ControlType nType,
aPushInfo.animation.time.start = 0;
aPushInfo.animation.time.current = 0;
PushButtonValue* pPBVal = (PushButtonValue*)aValue.getOptionalVal();
- int nPaintHeight = rc.size.height;
+ int nPaintHeight = static_cast<int>(rc.size.height);
if( pPBVal && pPBVal->mbBevelButton )
{
@@ -1162,8 +1162,10 @@ BOOL AquaSalGraphics::drawNativeControl(ControlType nType,
if( mxClipPath )
aRect = CGPathGetBoundingBox( mxClipPath );
if( aRect.size.width != 0 && aRect.size.height != 0 )
- buttonRect.Intersection( Rectangle( Point( aRect.origin.x, aRect.origin.y ),
- Size( aRect.size.width, aRect.size.height ) ) );
+ buttonRect.Intersection( Rectangle( Point( static_cast<long int>(aRect.origin.x),
+ static_cast<long int>(aRect.origin.y) ),
+ Size( static_cast<long int>(aRect.size.width),
+ static_cast<long int>(aRect.size.height) ) ) );
}
RefreshRect( buttonRect.Left(), buttonRect.Top(), buttonRect.GetWidth(), buttonRect.GetHeight() );
diff --git a/vcl/aqua/source/gdi/salprn.cxx b/vcl/aqua/source/gdi/salprn.cxx
index ef6258829261..b9a1f4ef7748 100644
--- a/vcl/aqua/source/gdi/salprn.cxx
+++ b/vcl/aqua/source/gdi/salprn.cxx
@@ -127,20 +127,27 @@ void AquaSalInfoPrinter::SetupPrinterGraphics( CGContextRef i_rContext ) const
NSRect aImageRect = [mpPrintInfo imageablePageBounds];
if( mePageOrientation == ORIENTATION_PORTRAIT )
{
+ // move mirrored CTM back into paper
double dX = 0, dY = aPaperSize.height;
+ // move CTM to reflect imageable area
dX += aImageRect.origin.x;
dY -= aPaperSize.height - aImageRect.size.height - aImageRect.origin.y;
CGContextTranslateCTM( i_rContext, dX + mnStartPageOffsetX, dY - mnStartPageOffsetY );
+ // scale to be top/down and reflect our "virtual" DPI
CGContextScaleCTM( i_rContext, 0.1, -0.1 );
}
else
{
+ // move CTM to reflect imageable area
+ double dX = aImageRect.origin.x, dY = aPaperSize.height - aImageRect.size.height - aImageRect.origin.y;
+ CGContextTranslateCTM( i_rContext, -dX, -dY );
+ // turn by 90 degree
CGContextRotateCTM( i_rContext, M_PI/2 );
- double dX = aPaperSize.height, dY = -aPaperSize.width;
- dY += aPaperSize.height - aImageRect.size.height - aImageRect.origin.y;
- dX -= aImageRect.origin.x;
-
+ // move turned CTM back into paper
+ dX = aPaperSize.height;
+ dY = -aPaperSize.width;
CGContextTranslateCTM( i_rContext, dX + mnStartPageOffsetY, dY - mnStartPageOffsetX );
+ // scale to be top/down and reflect our "virtual" DPI
CGContextScaleCTM( i_rContext, -0.1, 0.1 );
}
mpGraphics->SetPrinterGraphics( i_rContext, nDPIX, nDPIY, 1.0 );
@@ -187,8 +194,8 @@ static struct PaperSizeEntry
{ 420, 595, PAPER_A5 },
{ 612, 792, PAPER_LETTER },
{ 612, 1008, PAPER_LEGAL },
- { 728, 1032, PAPER_B4 },
- { 516, 729, PAPER_B5 },
+ { 728, 1032, PAPER_B4_JIS },
+ { 516, 729, PAPER_B5_JIS },
{ 792, 1224, PAPER_TABLOID }
};
@@ -216,8 +223,8 @@ static Paper recognizePaper( double i_fWidth, double i_fHeight )
case 595000842: aPaper = PAPER_A4; break;
case 420000595: aPaper = PAPER_A5; break;
case 612000792: aPaper = PAPER_LETTER; break;
- case 728001032: aPaper = PAPER_B4; break;
- case 516000729: aPaper = PAPER_B5; break;
+ case 728001032: aPaper = PAPER_B4_JIS; break;
+ case 516000729: aPaper = PAPER_B5_JIS; break;
case 612001008: aPaper = PAPER_LEGAL; break;
case 792001224: aPaper = PAPER_TABLOID; break;
default:
@@ -303,8 +310,12 @@ BOOL AquaSalInfoPrinter::SetData( ULONG i_nFlags, ImplJobSetup* io_pSetupData )
double width = 0, height = 0;
if( io_pSetupData->mePaperFormat == PAPER_USER )
{
- width = TenMuToPt( io_pSetupData->mnPaperWidth );
- height = TenMuToPt( io_pSetupData->mnPaperHeight );
+ // #i101108# sanity check
+ if( io_pSetupData->mnPaperWidth && io_pSetupData->mnPaperHeight )
+ {
+ width = TenMuToPt( io_pSetupData->mnPaperWidth );
+ height = TenMuToPt( io_pSetupData->mnPaperHeight );
+ }
}
else
getPaperSize( width, height, io_pSetupData->mePaperFormat );
diff --git a/vcl/aqua/source/gdi/salvd.cxx b/vcl/aqua/source/gdi/salvd.cxx
index 5ab2f27a8d42..4d25d5d8b63b 100644
--- a/vcl/aqua/source/gdi/salvd.cxx
+++ b/vcl/aqua/source/gdi/salvd.cxx
@@ -87,7 +87,7 @@ AquaSalVirtualDevice::AquaSalVirtualDevice( AquaSalGraphics* pGraphic, long nDX,
if( pFrame && AquaSalFrame::isAlive( pFrame ) )
{
mpGraphics->setGraphicsFrame( pFrame );
- mpGraphics->initResolution( pFrame->mpWindow );
+ mpGraphics->copyResolution( *pGraphic );
}
}
@@ -228,8 +228,8 @@ void AquaSalVirtualDevice::GetSize( long& rWidth, long& rHeight )
if( mxLayer )
{
const CGSize aSize = CGLayerGetSize( mxLayer );
- rWidth = aSize.width;
- rHeight = aSize.height;
+ rWidth = static_cast<long>(aSize.width);
+ rHeight = static_cast<long>(aSize.height);
}
else
{
diff --git a/vcl/aqua/source/window/salframe.cxx b/vcl/aqua/source/window/salframe.cxx
index 5db3ea68ab14..9c713ea26a52 100644
--- a/vcl/aqua/source/window/salframe.cxx
+++ b/vcl/aqua/source/window/salframe.cxx
@@ -520,8 +520,16 @@ void AquaSalFrame::SetClientSize( long nWidth, long nHeight )
void AquaSalFrame::GetClientSize( long& rWidth, long& rHeight )
{
- rWidth = mbShown ? maGeometry.nWidth : 0;
- rHeight = mbShown ? maGeometry.nHeight : 0;
+ if( mbShown || mbInitShow )
+ {
+ rWidth = maGeometry.nWidth;
+ rHeight = maGeometry.nHeight;
+ }
+ else
+ {
+ rWidth = 0;
+ rHeight = 0;
+ }
}
// -----------------------------------------------------------------------
@@ -1174,7 +1182,10 @@ void AquaSalFrame::UpdateSettings( AllSettings& rSettings )
getAppleScrollBarVariant();
// set scrollbar size
- aStyleSettings.SetScrollBarSize( [NSScroller scrollerWidth] );
+ aStyleSettings.SetScrollBarSize( static_cast<long int>([NSScroller scrollerWidth]) );
+
+ // images in menus false for MacOSX
+ aStyleSettings.SetUseImagesInMenus( false );
rSettings.SetStyleSettings( aStyleSettings );
@@ -1192,7 +1203,15 @@ const SystemEnvData* AquaSalFrame::GetSystemData() const
void AquaSalFrame::Beep( SoundType eSoundType )
{
- NSBeep();
+ switch( eSoundType )
+ {
+ case SOUND_DISABLE:
+ // don't beep
+ break;
+ default:
+ NSBeep();
+ break;
+ }
}
// -----------------------------------------------------------------------
@@ -1229,7 +1248,7 @@ void AquaSalFrame::SetPosSize(long nX, long nY, long nWidth, long nHeight, USHOR
if( (nFlags & SAL_FRAME_POSSIZE_WIDTH) != 0 )
nX = mpParent->maGeometry.nWidth - nWidth-1 - nX;
else
- nX = mpParent->maGeometry.nWidth - aContentRect.size.width-1 - nX;
+ nX = mpParent->maGeometry.nWidth - static_cast<long int>( aContentRect.size.width-1) - nX;
}
NSRect aParentFrameRect = [mpParent->mpWindow frame];
aParentContentRect = [NSWindow contentRectForFrameRect: aParentFrameRect styleMask: mpParent->mnStyleMask];
diff --git a/vcl/aqua/source/window/salframeview.mm b/vcl/aqua/source/window/salframeview.mm
index e291dae911cf..c7facd8c6c09 100755
--- a/vcl/aqua/source/window/salframeview.mm
+++ b/vcl/aqua/source/window/salframeview.mm
@@ -841,6 +841,16 @@ private:
if( pUnmodifiedString && [pUnmodifiedString length] == 1 )
{
+ /* #i103102# key events with command and alternate don't make it through
+ interpretKeyEvents (why ?). Try to dispatch them here first,
+ if not successful continue normally
+ */
+ if( (mpFrame->mnLastModifierFlags & (NSAlternateKeyMask | NSCommandKeyMask))
+ == (NSAlternateKeyMask | NSCommandKeyMask) )
+ {
+ if( [self sendSingleCharacter: mpLastEvent] )
+ return YES;
+ }
unichar keyChar = [pUnmodifiedString characterAtIndex: 0];
USHORT nKeyCode = ImplMapCharCode( keyChar );
@@ -1233,17 +1243,27 @@ private:
mpLastSuperEvent = mpLastEvent;
[NSApp performSelector:@selector(sendSuperEvent:) withObject: mpLastEvent];
mpLastSuperEvent = pLastSuperEvent;
+
+ std::map< NSEvent*, bool >::iterator it = GetSalData()->maKeyEventAnswer.find( mpLastEvent );
+ if( it != GetSalData()->maKeyEventAnswer.end() )
+ it->second = true;
}
}
}
}
--(MacOSBOOL)sendKeyInputAndReleaseToFrame: (USHORT)nKeyCode character: (sal_Unicode)aChar
+-(MacOSBOOL)sendKeyInputAndReleaseToFrame: (USHORT)nKeyCode character: (sal_Unicode)aChar
{
return [self sendKeyInputAndReleaseToFrame: nKeyCode character: aChar modifiers: mpFrame->mnLastModifierFlags];
}
--(MacOSBOOL)sendKeyInputAndReleaseToFrame: (USHORT)nKeyCode character: (sal_Unicode)aChar modifiers: (unsigned int)nMod
+-(MacOSBOOL)sendKeyInputAndReleaseToFrame: (USHORT)nKeyCode character: (sal_Unicode)aChar modifiers: (unsigned int)nMod
+{
+ return [self sendKeyToFrameDirect: nKeyCode character: aChar modifiers: nMod] ||
+ [self sendSingleCharacter: mpLastEvent];
+}
+
+-(MacOSBOOL)sendKeyToFrameDirect: (USHORT)nKeyCode character: (sal_Unicode)aChar modifiers: (unsigned int)nMod
{
YIELD_GUARD;
@@ -1279,7 +1299,7 @@ private:
// don't send unicodes in the private use area
if( keyChar >= 0xf700 && keyChar < 0xf780 )
keyChar = 0;
- MacOSBOOL bRet = [self sendKeyInputAndReleaseToFrame: nKeyCode character: keyChar];
+ MacOSBOOL bRet = [self sendKeyToFrameDirect: nKeyCode character: keyChar modifiers: mpFrame->mnLastModifierFlags];
mbInKeyInput = false;
return bRet;
diff --git a/vcl/aqua/source/window/salmenu.cxx b/vcl/aqua/source/window/salmenu.cxx
index 4fafbbdbb4cf..5c838701933c 100644
--- a/vcl/aqua/source/window/salmenu.cxx
+++ b/vcl/aqua/source/window/salmenu.cxx
@@ -651,11 +651,9 @@ void AquaSalMenu::SetItemImage( unsigned nPos, SalMenuItem* pSMI, const Image& r
NSImage* pImage = CreateNSImage( rImage );
+ [pSalMenuItem->mpMenuItem setImage: pImage];
if( pImage )
- {
- [pSalMenuItem->mpMenuItem setImage: pImage];
[pImage release];
- }
}
void AquaSalMenu::SetItemText( unsigned i_nPos, SalMenuItem* i_pSalMenuItem, const XubString& i_rText )
@@ -894,7 +892,13 @@ Rectangle AquaSalMenu::GetMenuBarButtonRectPixel( USHORT i_nItemId, SalFrame* i_
aRect.origin.x -= i_pReferenceFrame->maGeometry.nX;
aRect.origin.y -= i_pReferenceFrame->maGeometry.nY + aRect.size.height;
- return Rectangle( Point( aRect.origin.x, aRect.origin.y ), Size( aRect.size.width, aRect.size.height ) );
+ return Rectangle( Point(static_cast<long int>(aRect.origin.x),
+ static_cast<long int>(aRect.origin.y)
+ ),
+ Size( static_cast<long int>(aRect.size.width),
+ static_cast<long int>(aRect.size.height)
+ )
+ );
}
// =======================================================================
diff --git a/vcl/inc/vcl/ImageListProvider.hxx b/vcl/inc/vcl/ImageListProvider.hxx
new file mode 100644
index 000000000000..03e0646af14d
--- /dev/null
+++ b/vcl/inc/vcl/ImageListProvider.hxx
@@ -0,0 +1,57 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: toolbox.hxx,v $
+ * $Revision: 1.5 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _SV_IMAGELISTPROVIDER_HXX
+#define _SV_IMAGELISTPROVIDER_HXX
+
+#include <sal/types.h>
+
+namespace com { namespace sun { namespace star { namespace lang { class IllegalArgumentException; }}}}
+
+class ImageList;
+
+
+namespace vcl
+{
+ enum ImageListType
+ {
+ IMAGELISTTYPE_UNKNOWN = 0,
+ HIGHCONTRAST_NO = 1,
+ HIGHCONTRAST_YES = 2
+ };
+
+ /* abstract */ class IImageListProvider
+ {
+ public:
+ virtual ImageList getImageList(ImageListType) SAL_THROW (( com::sun::star::lang::IllegalArgumentException )) = 0;
+ };
+} /* vcl */
+
+#endif /* _SV_IMAGELISTPROVIDER_HXX */
diff --git a/vcl/inc/vcl/accel.h b/vcl/inc/vcl/accel.h
index 6d1ffd0c28ce..b63adeae9a37 100644
--- a/vcl/inc/vcl/accel.h
+++ b/vcl/inc/vcl/accel.h
@@ -57,6 +57,6 @@ public:
// -----------------
// in KEYCOD.CXX
-void ImplGetKeyCode( KeyFuncType eFunc, USHORT& rCode1, USHORT& rCode2, USHORT& rCode3 );
+void ImplGetKeyCode( KeyFuncType eFunc, USHORT& rCode1, USHORT& rCode2, USHORT& rCode3, USHORT& rCode4 );
#endif // _SV_ACCEL_H
diff --git a/vcl/inc/vcl/button.hxx b/vcl/inc/vcl/button.hxx
index 7dda8702fb66..94df24a9cea7 100644
--- a/vcl/inc/vcl/button.hxx
+++ b/vcl/inc/vcl/button.hxx
@@ -103,6 +103,8 @@ public:
void SetFocusRect( const Rectangle& rFocusRect );
const Rectangle& GetFocusRect() const;
+ void SetSmallSymbol (bool bSmall=true);
+ bool IsSmallSymbol () const;
};
// --------------------
diff --git a/vcl/inc/vcl/cmdevt.hxx b/vcl/inc/vcl/cmdevt.hxx
index fde8fe83b6f2..ac9f852cd54c 100644
--- a/vcl/inc/vcl/cmdevt.hxx
+++ b/vcl/inc/vcl/cmdevt.hxx
@@ -280,14 +280,17 @@ public:
BOOL IsShift() const { return (mnCode & MODKEY_SHIFT) ? TRUE : FALSE; }
BOOL IsMod1() const { return (mnCode & MODKEY_MOD1) ? TRUE : FALSE; }
BOOL IsMod2() const { return (mnCode & MODKEY_MOD2) ? TRUE : FALSE; }
+ BOOL IsMod3() const { return (mnCode & MODKEY_MOD3) ? TRUE : FALSE; }
BOOL IsLeftShift() const { return (mnCode & MODKEY_LSHIFT) ? TRUE : FALSE; }
BOOL IsLeftMod1() const { return (mnCode & MODKEY_LMOD1) ? TRUE : FALSE; }
BOOL IsLeftMod2() const { return (mnCode & MODKEY_LMOD2) ? TRUE : FALSE; }
+ BOOL IsLeftMod3() const { return (mnCode & MODKEY_LMOD3) ? TRUE : FALSE; }
BOOL IsRightShift() const { return (mnCode & MODKEY_RSHIFT) ? TRUE : FALSE; }
BOOL IsRightMod1() const { return (mnCode & MODKEY_RMOD1) ? TRUE : FALSE; }
BOOL IsRightMod2() const { return (mnCode & MODKEY_RMOD2) ? TRUE : FALSE; }
+ BOOL IsRightMod3() const { return (mnCode & MODKEY_RMOD3) ? TRUE : FALSE; }
};
inline CommandModKeyData::CommandModKeyData()
diff --git a/vcl/inc/vcl/event.hxx b/vcl/inc/vcl/event.hxx
index 20ad3aaaf608..04ba5f7a0abf 100644
--- a/vcl/inc/vcl/event.hxx
+++ b/vcl/inc/vcl/event.hxx
@@ -176,6 +176,8 @@ public:
{ return ((mnCode & KEY_MOD1) != 0); }
BOOL IsMod2() const
{ return ((mnCode & KEY_MOD2) != 0); }
+ BOOL IsMod3() const
+ { return ((mnCode & KEY_MOD3) != 0); }
};
inline MouseEvent::MouseEvent()
diff --git a/vcl/inc/vcl/gdimtf.hxx b/vcl/inc/vcl/gdimtf.hxx
index 62439d4d4613..c53460d35584 100644
--- a/vcl/inc/vcl/gdimtf.hxx
+++ b/vcl/inc/vcl/gdimtf.hxx
@@ -164,6 +164,14 @@ public:
void Scale( double fScaleX, double fScaleY );
void Scale( const Fraction& rScaleX, const Fraction& rScaleY );
void Rotate( long nAngle10 );
+ /* get the bound rect of the contained actions
+ * caveats:
+ * - clip actions will limit the contained actions,
+ * but the current clipregion of the passed OutputDevice will not
+ * - coordinates of actions will be transformed to preferred mapmode
+ * - the returned rectangle is relative to the preferred mapmode of the metafile
+ */
+ Rectangle GetBoundRect( OutputDevice& i_rReference );
void Adjust( short nLuminancePercent = 0, short nContrastPercent = 0,
short nChannelRPercent = 0, short nChannelGPercent = 0,
diff --git a/vcl/inc/vcl/graph.hxx b/vcl/inc/vcl/graph.hxx
index f56c55b7db42..9d70c67d3e55 100644
--- a/vcl/inc/vcl/graph.hxx
+++ b/vcl/inc/vcl/graph.hxx
@@ -53,6 +53,36 @@ class OutputDevice;
class Font;
class GfxLink;
+class VCL_DLLPUBLIC GraphicConversionParameters
+{
+private:
+ Size maSizePixel; // default is (0,0)
+
+ // bitfield
+ unsigned mbUnlimitedSize : 1; // default is false
+ unsigned mbAntiAliase : 1; // default is false
+ unsigned mbSnapHorVerLines : 1; // default is false
+
+public:
+ GraphicConversionParameters(
+ const Size& rSizePixel = Size(),
+ bool bUnlimitedSize = false,
+ bool bAntiAliase = false,
+ bool bSnapHorVerLines = false)
+ : maSizePixel(rSizePixel),
+ mbUnlimitedSize(bUnlimitedSize),
+ mbAntiAliase(bAntiAliase),
+ mbSnapHorVerLines(bSnapHorVerLines)
+ {
+ }
+
+ // data read access
+ const Size getSizePixel() const { return maSizePixel; }
+ bool getUnlimitedSize() const { return mbUnlimitedSize; }
+ bool getAntiAliase() const { return mbAntiAliase; }
+ bool getSnapHorVerLines() const { return mbSnapHorVerLines; }
+};
+
class VCL_DLLPUBLIC Graphic : public SvDataCopyStream
{
private:
@@ -96,12 +126,14 @@ public:
BOOL IsAlpha() const;
BOOL IsAnimated() const;
- Bitmap GetBitmap() const;
- Bitmap GetBitmap( const Size* pSizePixel ) const;
- BitmapEx GetBitmapEx() const;
- BitmapEx GetBitmapEx( const Size* pSizePixel ) const;
- Bitmap GetUnlimitedBitmap( const Size* pSizePixel ) const;
- BitmapEx GetUnlimitedBitmapEx( const Size* pSizePixel ) const;
+ // #i102089# Access of Bitmap potentially will have to rasterconvert the Graphic
+ // if it is a MetaFile. To be able to control this conversion it is necessary to
+ // allow giving parameters which control AntiAliasing and LineSnapping of the
+ // MetaFile when played. Defaults will use a no-AAed, not snapped conversion as
+ // before.
+ Bitmap GetBitmap(const GraphicConversionParameters& rParameters = GraphicConversionParameters()) const;
+ BitmapEx GetBitmapEx(const GraphicConversionParameters& rParameters = GraphicConversionParameters()) const;
+
Animation GetAnimation() const;
const GDIMetaFile& GetGDIMetaFile() const;
diff --git a/vcl/inc/vcl/impgraph.hxx b/vcl/inc/vcl/impgraph.hxx
index 34b61a5fe21c..3b36173891ae 100644
--- a/vcl/inc/vcl/impgraph.hxx
+++ b/vcl/inc/vcl/impgraph.hxx
@@ -55,6 +55,7 @@ struct ImpSwapInfo
class OutputDevice;
class GfxLink;
struct ImpSwapFile;
+class GraphicConversionParameters;
class ImpGraphic
{
@@ -102,8 +103,8 @@ private:
BOOL ImplIsAlpha() const;
BOOL ImplIsAnimated() const;
- Bitmap ImplGetBitmap( const Size* pSizePixel, BOOL bUnlimited ) const;
- BitmapEx ImplGetBitmapEx( const Size* pSizePixel, BOOL bUnlimited ) const;
+ Bitmap ImplGetBitmap(const GraphicConversionParameters& rParameters) const;
+ BitmapEx ImplGetBitmapEx(const GraphicConversionParameters& rParameters) const;
Animation ImplGetAnimation() const;
const GDIMetaFile& ImplGetGDIMetaFile() const;
diff --git a/vcl/inc/vcl/jobset.h b/vcl/inc/vcl/jobset.h
index 5d08319a7e6c..9f3eefd507d5 100644
--- a/vcl/inc/vcl/jobset.h
+++ b/vcl/inc/vcl/jobset.h
@@ -61,7 +61,7 @@ struct ImplJobSetup
String maDriver; // Driver-Name
Orientation meOrientation; // Orientation
USHORT mnPaperBin; // Papierschacht
- Paper mePaperFormat; // Papierformat
+ Paper mePaperFormat; // Papierformat
long mnPaperWidth; // Papierbreite in 100tel mm
long mnPaperHeight; // Papierhoehe in 100tel mm
ULONG mnDriverDataLen; // Laenge der systemabhaengigen Daten
diff --git a/vcl/inc/vcl/keycod.hxx b/vcl/inc/vcl/keycod.hxx
index 6c652a0e5307..cdd1ed35d80f 100644
--- a/vcl/inc/vcl/keycod.hxx
+++ b/vcl/inc/vcl/keycod.hxx
@@ -73,7 +73,7 @@ public:
KeyCode( const ResId& rResId );
KeyCode( USHORT nKey, USHORT nModifier = 0 )
{ nCode = nKey | nModifier; eFunc = KEYFUNC_DONTKNOW; }
- KeyCode( USHORT nKey, BOOL bShift, BOOL bMod1, BOOL bMod2 );
+ KeyCode( USHORT nKey, BOOL bShift, BOOL bMod1, BOOL bMod2, BOOL bMod3 );
KeyCode( KeyFuncType eFunction );
USHORT GetFullCode() const { return nCode; }
@@ -112,7 +112,7 @@ public:
BOOL operator !=( const KeyCode& rKeyCode ) const;
};
-inline KeyCode::KeyCode( USHORT nKey, BOOL bShift, BOOL bMod1, BOOL bMod2 )
+inline KeyCode::KeyCode( USHORT nKey, BOOL bShift, BOOL bMod1, BOOL bMod2, BOOL bMod3 )
{
nCode = nKey;
if( bShift )
@@ -121,6 +121,8 @@ inline KeyCode::KeyCode( USHORT nKey, BOOL bShift, BOOL bMod1, BOOL bMod2 )
nCode |= KEY_MOD1;
if( bMod2 )
nCode |= KEY_MOD2;
+ if( bMod3 )
+ nCode |= KEY_MOD3;
eFunc = KEYFUNC_DONTKNOW;
}
diff --git a/vcl/inc/vcl/keycodes.hxx b/vcl/inc/vcl/keycodes.hxx
index d90e9923f0ad..66d8a87e27a2 100644
--- a/vcl/inc/vcl/keycodes.hxx
+++ b/vcl/inc/vcl/keycodes.hxx
@@ -176,9 +176,12 @@
#define MODKEY_RMOD1 0x0008
#define MODKEY_LMOD2 0x0010
#define MODKEY_RMOD2 0x0020
+#define MODKEY_LMOD3 0x0040
+#define MODKEY_RMOD3 0x0080
#define MODKEY_SHIFT (MODKEY_LSHIFT|MODKEY_RSHIFT)
#define MODKEY_MOD1 (MODKEY_LMOD1|MODKEY_RMOD1)
#define MODKEY_MOD2 (MODKEY_LMOD2|MODKEY_RMOD2)
+#define MODKEY_MOD3 (MODKEY_LMOD3|MODKEY_RMOD3)
// ---------------
// - Mouse-Types -
diff --git a/vcl/inc/vcl/lstbox.hxx b/vcl/inc/vcl/lstbox.hxx
index eb904ddffab6..0bf281798674 100644
--- a/vcl/inc/vcl/lstbox.hxx
+++ b/vcl/inc/vcl/lstbox.hxx
@@ -57,6 +57,7 @@ private:
BOOL mbDDAutoSize;
Link maSelectHdl;
Link maDoubleClickHdl;
+ USHORT mnLineCount;
//#if 0 // _SOLAR__PRIVATE
private:
diff --git a/vcl/inc/vcl/outdev.hxx b/vcl/inc/vcl/outdev.hxx
index c0bcfa35fae5..f4e42846dd5e 100644
--- a/vcl/inc/vcl/outdev.hxx
+++ b/vcl/inc/vcl/outdev.hxx
@@ -53,6 +53,8 @@ class ImplFontEntry;
struct ImplObjStack;
struct ImplKernPairData;
struct SystemGraphicsData;
+struct SystemFontData;
+struct SystemTextLayoutData;
class ImplFontCache;
class ImplDevFontList;
class ImplGetDevFontList;
@@ -561,6 +563,20 @@ public:
// tells whether this output device is RTL in an LTR UI or LTR in a RTL UI
SAL_DLLPRIVATE bool ImplIsAntiparallel() const ;
+ // #i101491#
+ // Helper which holds the old line geometry creation and is extended to use AA when
+ // switched on. Advantage is that line geometry is only temporarily used for paint
+ SAL_DLLPRIVATE void ImpDrawPolyLineWithLineInfo(const Polygon& rPoly, const LineInfo& rLineInfo);
+
+ // #i101491#
+ // Helper who implements the DrawPolyPolygon functionality for basegfx::B2DPolyPolygon
+ // without MetaFile processing
+ SAL_DLLPRIVATE void ImpDrawPolyPolygonWithB2DPolyPolygon(const basegfx::B2DPolyPolygon& rB2DPolyPoly);
+
+ // #i101491#
+ // Helper who tries to use SalGDI's DrawPolyLine direct and returns it's bool. Contains no AA check.
+ SAL_DLLPRIVATE bool ImpTryDrawPolyLineDirect(const basegfx::B2DPolygon& rB2DPolygon, double fLineWidth, basegfx::B2DLineJoin eLineJoin);
+
protected:
OutputDevice();
@@ -653,20 +669,20 @@ public:
void GetKerningPairs( ULONG nPairs, KerningPair* pKernPairs ) const;
BOOL GetTextBoundRect( Rectangle& rRect,
- const String& rStr, xub_StrLen nBase = 0, xub_StrLen nIndex = 0,
- xub_StrLen nLen = STRING_LEN ) const;
+ const String& rStr, xub_StrLen nBase = 0, xub_StrLen nIndex = 0, xub_StrLen nLen = STRING_LEN,
+ ULONG nLayoutWidth = 0, const sal_Int32* pDXArray = NULL ) const;
BOOL GetTextOutline( PolyPolygon&,
const String& rStr, xub_StrLen nBase = 0, xub_StrLen nIndex = 0,
xub_StrLen nLen = STRING_LEN, BOOL bOptimize = TRUE,
- const ULONG nWidth = 0, const sal_Int32* pDXArray = NULL ) const;
+ ULONG nLayoutWidth = 0, const sal_Int32* pDXArray = NULL ) const;
BOOL GetTextOutlines( PolyPolyVector&,
const String& rStr, xub_StrLen nBase = 0, xub_StrLen nIndex = 0,
xub_StrLen nLen = STRING_LEN, BOOL bOptimize = TRUE,
- const ULONG nWidth = 0, const sal_Int32* pDXArray = NULL ) const;
+ ULONG nLayoutWidth = 0, const sal_Int32* pDXArray = NULL ) const;
BOOL GetTextOutlines( ::basegfx::B2DPolyPolygonVector&,
const String& rStr, xub_StrLen nBase = 0, xub_StrLen nIndex = 0,
xub_StrLen nLen = STRING_LEN, BOOL bOptimize = TRUE,
- const ULONG nWidth = 0, const sal_Int32* pDXArray = NULL ) const;
+ ULONG nLayoutWidth = 0, const sal_Int32* pDXArray = NULL ) const;
BOOL GetGlyphBoundRects( const Point& rOrigin, const String& rStr, int nIndex,
int nLen, int nBase, MetricVector& rVector );
@@ -883,6 +899,12 @@ public:
void SetFont( const Font& rNewFont );
const Font& GetFont() const { return maFont; }
+
+ SystemFontData GetSysFontData( int nFallbacklevel ) const;
+ SystemTextLayoutData GetSysTextLayoutData( const Point& rStartPt, const XubString& rStr,
+ xub_StrLen nIndex = 0, xub_StrLen nLen = STRING_LEN,
+ const sal_Int32* pDXAry = NULL ) const;
+
void SetTextColor( const Color& rColor );
const Color& GetTextColor() const { return maTextColor; }
void SetTextFillColor();
diff --git a/vcl/inc/vcl/pngread.hxx b/vcl/inc/vcl/pngread.hxx
index 200b52eb6182..285af1407c1c 100644
--- a/vcl/inc/vcl/pngread.hxx
+++ b/vcl/inc/vcl/pngread.hxx
@@ -65,6 +65,8 @@ namespace vcl
std::vector< sal_uInt8 > aData;
};
const std::vector< ChunkData >& GetChunks() const;
+
+ void SetIgnoreGammaChunk( sal_Bool b );
};
}
diff --git a/vcl/inc/vcl/print.hxx b/vcl/inc/vcl/print.hxx
index fdc7f2ba9c69..b9176f4106dc 100644
--- a/vcl/inc/vcl/print.hxx
+++ b/vcl/inc/vcl/print.hxx
@@ -330,17 +330,12 @@ public:
USHORT GetPaperBin() const;
BOOL SetPaper( Paper ePaper );
BOOL SetPaperSizeUser( const Size& rSize );
- Paper GetPaper() const;
+ Paper GetPaper() const;
// returns number of available paper formats
int GetPaperInfoCount() const;
// returns info about paper format nPaper
- const vcl::PaperInfo& GetPaperInfo( int nPaper ) const;
- // sets current paper to format contained in rInfo
- BOOL SetPaperFromInfo( const vcl::PaperInfo& rInfo );
- // gets info about paper fromat best matching current paper
- const vcl::PaperInfo& GetCurrentPaperInfo() const;
-
+ const PaperInfo& GetPaperInfo( int nPaper ) const;
USHORT GetPaperBinCount() const;
XubString GetPaperBinName( USHORT nPaperBin ) const;
diff --git a/vcl/inc/vcl/prntypes.hxx b/vcl/inc/vcl/prntypes.hxx
index 84ef320de20e..681f4f972a7c 100644
--- a/vcl/inc/vcl/prntypes.hxx
+++ b/vcl/inc/vcl/prntypes.hxx
@@ -33,6 +33,7 @@
#include <tools/string.hxx>
#include <vcl/sv.h>
+#include <i18npool/paper.hxx>
// ---------------
// - Duplex Mode -
@@ -46,33 +47,6 @@ enum DuplexMode { DUPLEX_UNKNOWN, DUPLEX_OFF, DUPLEX_ON };
enum Orientation { ORIENTATION_PORTRAIT, ORIENTATION_LANDSCAPE };
-// ---------
-// - Paper -
-// ---------
-
-typedef USHORT Paper;
-#define PAPER_A3 ((Paper)0)
-#define PAPER_A4 ((Paper)1)
-#define PAPER_A5 ((Paper)2)
-#define PAPER_B4 ((Paper)3)
-#define PAPER_B5 ((Paper)4)
-#define PAPER_LETTER ((Paper)5)
-#define PAPER_LEGAL ((Paper)6)
-#define PAPER_TABLOID ((Paper)7)
-#define PAPER_USER ((Paper)8)
-
-namespace vcl
-{
-struct PaperInfo
-{
- String m_aPaperName; // user readable name of paper
- unsigned long m_nPaperWidth; // width in mm
- unsigned long m_nPaperHeight; // height in mm
-
- PaperInfo() : m_nPaperWidth( 0 ), m_nPaperHeight( 0 ) {}
-};
-}
-
// -------------------
// - QueueInfo-Types -
// -------------------
diff --git a/vcl/inc/vcl/salgdi.hxx b/vcl/inc/vcl/salgdi.hxx
index 2bbb44d67b42..5cf6e70f5114 100644
--- a/vcl/inc/vcl/salgdi.hxx
+++ b/vcl/inc/vcl/salgdi.hxx
@@ -57,6 +57,7 @@ struct FontSubsetInfo;
class OutputDevice;
class ServerFontLayout;
struct SystemGraphicsData;
+struct SystemFontData;
namespace basegfx {
class B2DVector;
@@ -493,6 +494,7 @@ public:
sal_uInt8 nTransparency, const OutputDevice *pOutDev );
virtual SystemGraphicsData GetGraphicsData() const = 0;
+ virtual SystemFontData GetSysFontData( int nFallbacklevel ) const = 0;
};
#endif // _SV_SALGDI_HXX
diff --git a/vcl/inc/vcl/salprn.hxx b/vcl/inc/vcl/salprn.hxx
index a80c5873cbfb..2927215034b5 100644
--- a/vcl/inc/vcl/salprn.hxx
+++ b/vcl/inc/vcl/salprn.hxx
@@ -68,7 +68,7 @@ struct VCL_DLLPUBLIC SalPrinterQueueInfo
class VCL_DLLPUBLIC SalInfoPrinter
{
public:
- std::vector< vcl::PaperInfo > m_aPaperFormats; // all printer supported formats
+ std::vector< PaperInfo > m_aPaperFormats; // all printer supported formats
bool m_bPapersInit; // set to true after InitPaperFormats
bool m_bCompatMetrics;
diff --git a/vcl/inc/vcl/settings.hxx b/vcl/inc/vcl/settings.hxx
index 5ee27e3aeb31..a7cd61477519 100644
--- a/vcl/inc/vcl/settings.hxx
+++ b/vcl/inc/vcl/settings.hxx
@@ -139,7 +139,7 @@ private:
ULONG mnMenuDelay;
ULONG mnFollow;
USHORT mnMiddleButtonAction;
- BOOL mbNoWheelActionWithoutFocus;
+ USHORT mnWheelBehavior;
BOOL mbAlign1;
};
@@ -158,6 +158,10 @@ private:
#define MOUSE_MIDDLE_AUTOSCROLL ((USHORT)1)
#define MOUSE_MIDDLE_PASTESELECTION ((USHORT)2)
+#define MOUSE_WHEEL_DISABLE ((USHORT)0)
+#define MOUSE_WHEEL_FOCUS_ONLY ((USHORT)1)
+#define MOUSE_WHEEL_ALWAYS ((USHORT)2)
+
class VCL_DLLPUBLIC MouseSettings
{
void CopyData();
@@ -257,10 +261,10 @@ public:
USHORT GetMiddleButtonAction() const
{ return mpData->mnMiddleButtonAction; }
- void SetNoWheelActionWithoutFocus( BOOL bAction )
- { CopyData(); mpData->mbNoWheelActionWithoutFocus = bAction; }
- BOOL GetNoWheelActionWithoutFocus() const
- { return mpData->mbNoWheelActionWithoutFocus; }
+ void SetWheelBehavior( USHORT nBehavior )
+ { CopyData(); mpData->mnWheelBehavior = nBehavior; }
+ USHORT GetWheelBehavior() const
+ { return mpData->mnWheelBehavior; }
const MouseSettings& operator =( const MouseSettings& rSet );
diff --git a/vcl/inc/vcl/sndstyle.hxx b/vcl/inc/vcl/sndstyle.hxx
index 2fc568a5e86d..55255171ad9f 100644
--- a/vcl/inc/vcl/sndstyle.hxx
+++ b/vcl/inc/vcl/sndstyle.hxx
@@ -44,6 +44,6 @@ typedef USHORT SoundType;
#define SOUND_ERROR ((SoundType)3)
#define SOUND_QUERY ((SoundType)4)
-#define SOUND_DISABLE (SOUND_DEFAULT)
+#define SOUND_DISABLE ((SoundType)5)
#endif // _SV_SNDSTYLE_HXX
diff --git a/vcl/inc/vcl/syschild.hxx b/vcl/inc/vcl/syschild.hxx
index 1d4d0fafd7aa..29610e653b9d 100644
--- a/vcl/inc/vcl/syschild.hxx
+++ b/vcl/inc/vcl/syschild.hxx
@@ -46,7 +46,7 @@ class VCL_DLLPUBLIC SystemChildWindow : public Window
{
private:
using Window::ImplInit;
- SAL_DLLPRIVATE void ImplInitSysChild( Window* pParent, WinBits nStyle, SystemWindowData *pData, BOOL bShow = TRUE );
+ SAL_DLLPRIVATE void ImplInitSysChild( Window* pParent, WinBits nStyle, SystemWindowData *pData, BOOL bShow = FALSE );
// Copy assignment is forbidden and not implemented.
SAL_DLLPRIVATE SystemChildWindow (const SystemChildWindow &);
diff --git a/vcl/inc/vcl/sysdata.hxx b/vcl/inc/vcl/sysdata.hxx
index d98a6373d6fc..2e2a5e80e761 100644
--- a/vcl/inc/vcl/sysdata.hxx
+++ b/vcl/inc/vcl/sysdata.hxx
@@ -31,10 +31,12 @@
#ifndef _SV_SYSDATA_HXX
#define _SV_SYSDATA_HXX
+#include <vector>
+
#ifdef QUARTZ
// predeclare the native classes to avoid header/include problems
typedef struct CGContext *CGContextRef;
-typedef struct CGLayer *CGLayerRef;
+typedef struct CGLayer *CGLayerRef;
#ifdef __OBJC__
@class NSView;
#else
@@ -141,4 +143,50 @@ struct SystemWindowData
#endif
};
+
+// --------------------
+// - SystemGlyphData -
+// --------------------
+
+struct SystemGlyphData
+{
+ unsigned long index;
+ double x;
+ double y;
+};
+
+
+// --------------------
+// - SystemFontData -
+// --------------------
+
+struct SystemFontData
+{
+ unsigned long nSize; // size in bytes of this structure
+#if defined( WNT )
+ HFONT hFont; // native font object
+#elif defined( QUARTZ )
+ void* aATSUFontID; // native font object
+#elif defined( UNX )
+ void* nFontId; // native font id
+ int nFontFlags; // native font flags
+#endif
+ bool bFakeBold; // Does this font need faking the bold style
+ bool bFakeItalic; // Does this font need faking the italic style
+ bool bAntialias; // Should this font be antialiased
+ bool bVerticalCharacterType; // Is the font using vertical character type
+};
+
+// --------------------
+// - SystemTextLayoutData -
+// --------------------
+
+struct SystemTextLayoutData
+{
+ unsigned long nSize; // size in bytes of this structure
+ std::vector<SystemGlyphData> rGlyphData; // glyph data
+ int orientation; // Text orientation
+ SystemFontData aSysFontData; // Font data for the text layout
+};
+
#endif // _SV_SYSDATA_HXX
diff --git a/vcl/inc/vcl/tabctrl.hxx b/vcl/inc/vcl/tabctrl.hxx
index b12d33d579a3..378459b9eadb 100644
--- a/vcl/inc/vcl/tabctrl.hxx
+++ b/vcl/inc/vcl/tabctrl.hxx
@@ -45,8 +45,10 @@ class PushButton;
// - TabControl-Types -
// --------------------
+#ifndef TAB_APPEND
#define TAB_APPEND ((USHORT)0xFFFF)
#define TAB_PAGE_NOTFOUND ((USHORT)0xFFFF)
+#endif /* !TAB_APPEND */
// --------------
// - TabControl -
diff --git a/vcl/inc/vcl/toolbox.h b/vcl/inc/vcl/toolbox.h
index 10b5199929d2..52a0db40b226 100644
--- a/vcl/inc/vcl/toolbox.h
+++ b/vcl/inc/vcl/toolbox.h
@@ -37,6 +37,7 @@
#include <vcl/image.hxx>
#include <vcl/toolbox.hxx>
#include <vcl/controllayout.hxx>
+#include <vcl/ImageListProvider.hxx>
#include <vector>
@@ -127,7 +128,9 @@ struct ToolBoxLayoutData : public ControlLayoutData
std::vector< USHORT > m_aLineItemPositions;
};
-}
+
+} /* namespace vcl */
+
struct ImplToolBoxPrivateData
{
@@ -160,6 +163,10 @@ struct ImplToolBoxPrivateData
Wallpaper maDisplayBackground;
+ // support for highcontrast
+ vcl::IImageListProvider* mpImageListProvider;
+ vcl::ImageListType meImageListType;
+
BOOL mbIsLocked:1, // keeps last lock state from ImplDockingWindowWrapper
mbAssumeDocked:1, // only used during calculations to override current floating/popup mode
mbAssumeFloating:1,
diff --git a/vcl/inc/vcl/toolbox.hxx b/vcl/inc/vcl/toolbox.hxx
index 463a2dffb07a..6e4c300ccc40 100644
--- a/vcl/inc/vcl/toolbox.hxx
+++ b/vcl/inc/vcl/toolbox.hxx
@@ -47,6 +47,11 @@ struct ImplToolBoxPrivateData;
class ImplTrackRect;
class PopupMenu;
+namespace vcl
+{
+ class IImageListProvider;
+}
+
// -------------------------
// - ToolBoxCustomizeEvent -
// -------------------------
@@ -299,6 +304,7 @@ private:
SAL_DLLPRIVATE ToolBox (const ToolBox &);
SAL_DLLPRIVATE ToolBox& operator= (const ToolBox &);
+ SAL_DLLPRIVATE void ImplUpdateImageList(); // called if StateChanged
public:
SAL_DLLPRIVATE void ImplFloatControl( BOOL bStart, FloatingWindow* pWindow = NULL );
SAL_DLLPRIVATE void ImplDisableFlatButtons();
@@ -632,6 +638,8 @@ public:
const Size& GetDefaultImageSize() const;
void ChangeHighlight( USHORT nPos );
+
+ void SetImageListProvider(vcl::IImageListProvider* _pProvider);
};
inline void ToolBox::CheckItem( USHORT nItemId, BOOL bCheck )
diff --git a/vcl/inc/vcl/window.hxx b/vcl/inc/vcl/window.hxx
index 6f7c18ac2730..3f05383d4f80 100644
--- a/vcl/inc/vcl/window.hxx
+++ b/vcl/inc/vcl/window.hxx
@@ -983,6 +983,8 @@ public:
void DrawSelectionBackground( const Rectangle& rRect, USHORT highlight, BOOL bChecked, BOOL bDrawBorder, BOOL bDrawExtBorderOnly );
// the same, but fills a passed Color with a text color complementing the selection background
void DrawSelectionBackground( const Rectangle& rRect, USHORT highlight, BOOL bChecked, BOOL bDrawBorder, BOOL bDrawExtBorderOnly, Color* pSelectionTextColor );
+ // support rounded edges in the selection rect
+ void DrawSelectionBackground( const Rectangle& rRect, USHORT highlight, BOOL bChecked, BOOL bDrawBorder, BOOL bDrawExtBorderOnly, long nCornerRadius, Color* pSelectionTextColor, Color* pPaintColor );
void ShowTracking( const Rectangle& rRect,
USHORT nFlags = SHOWTRACK_SMALL );
diff --git a/vcl/os2/inc/salgdi.h b/vcl/os2/inc/salgdi.h
index 5e70f50ada79..1fb51f089100 100644
--- a/vcl/os2/inc/salgdi.h
+++ b/vcl/os2/inc/salgdi.h
@@ -328,6 +328,7 @@ public:
virtual BOOL IsNativeControlSupported( ControlType nType, ControlPart nPart );
virtual SystemGraphicsData GetGraphicsData() const;
+ virtual SystemFontData GetSysFontData( int nFallbacklevel ) const;
};
// Init/Deinit Graphics
diff --git a/vcl/os2/source/gdi/salgdi3.cxx b/vcl/os2/source/gdi/salgdi3.cxx
index 546f4bf2b7cd..573fa7336fb0 100644
--- a/vcl/os2/source/gdi/salgdi3.cxx
+++ b/vcl/os2/source/gdi/salgdi3.cxx
@@ -1754,3 +1754,21 @@ void Os2SalGraphics::DrawServerFontLayout( const ServerFontLayout& )
//--------------------------------------------------------------------------
+SystemFontData Os2SalGraphics::GetSysFontData( int nFallbacklevel ) const
+{
+ SystemFontData aSysFontData;
+
+ if (nFallbacklevel >= MAX_FALLBACK) nFallbacklevel = MAX_FALLBACK - 1;
+ if (nFallbacklevel < 0 ) nFallbacklevel = 0;
+
+ aSysFontData.nSize = sizeof( SystemFontData );
+ aSysFontData.hFont = mhFonts[nFallbacklevel];
+ aSysFontData.bFakeBold = false;
+ aSysFontData.bFakeItalic = false;
+ aSysFontData.bAntialias = true;
+ aSysFontData.bVerticalCharacterType = false;
+
+ return aSysFontData;
+}
+
+//--------------------------------------------------------------------------
diff --git a/vcl/prj/build.lst b/vcl/prj/build.lst
index 8a894cba2e55..aea5211d074a 100644
--- a/vcl/prj/build.lst
+++ b/vcl/prj/build.lst
@@ -1,4 +1,4 @@
-vc vcl : apple_remote BOOST:boost rsc sot ucbhelper unotools ICU:icu i18npool i18nutil unoil ridljar X11_EXTENSIONS:x11_extensions offuh basegfx basebmp tools transex3 icc SO:print_header NULL
+vc vcl : l10n apple_remote BOOST:boost rsc sot ucbhelper unotools ICU:icu i18npool i18nutil unoil ridljar X11_EXTENSIONS:x11_extensions offuh basegfx basebmp tools transex3 icc SO:print_header cpputools NULL
vc vcl usr1 - all vc_mkout NULL
vc vcl\inc nmake - all vc_inc NULL
vc vcl\source\glyphs nmake - all vc_glyphs vc_inc NULL
diff --git a/vcl/prj/d.lst b/vcl/prj/d.lst
index 0ddc61170547..d9c14f46b8d1 100644
--- a/vcl/prj/d.lst
+++ b/vcl/prj/d.lst
@@ -146,10 +146,10 @@ mkdir: %_DEST%\inc%_EXT%\vcl\plug\vcl
..\inc\vcl\pngwrite.hxx %_DEST%\inc%_EXT%\vcl\pngwrite.hxx
..\inc\vcl\smartid.hxx %_DEST%\inc%_EXT%\vcl\smartid.hxx
..\inc\vcl\configsettings.hxx %_DEST%\inc%_EXT%\vcl\configsettings.hxx
+..\inc\vcl\ImageListProvider.hxx %_DEST%\inc%_EXT%\vcl\ImageListProvider.hxx
..\inc\vcl\fontmanager.hxx %_DEST%\inc%_EXT%\vcl\fontmanager.hxx
..\inc\vcl\printerinfomanager.hxx %_DEST%\inc%_EXT%\vcl\printerinfomanager.hxx
..\inc\vcl\jobdata.hxx %_DEST%\inc%_EXT%\vcl\jobdata.hxx
..\inc\vcl\ppdparser.hxx %_DEST%\inc%_EXT%\vcl\ppdparser.hxx
..\inc\vcl\helper.hxx %_DEST%\inc%_EXT%\vcl\helper.hxx
..\inc\vcl\strhelper.hxx %_DEST%\inc%_EXT%\vcl\strhelper.hxx
-
diff --git a/vcl/source/app/dbggui.cxx b/vcl/source/app/dbggui.cxx
index c8567264b9b9..36d0991c7640 100644
--- a/vcl/source/app/dbggui.cxx
+++ b/vcl/source/app/dbggui.cxx
@@ -1782,7 +1782,7 @@ void DbgDialogTest( Window* pWindow )
i++;
}
- delete pRectAry;
+ delete [] pRectAry;
}
// =======================================================================
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
index 12213c25a64f..444f1f58c8fb 100644
--- a/vcl/source/app/settings.cxx
+++ b/vcl/source/app/settings.cxx
@@ -189,7 +189,7 @@ ImplMouseData::ImplMouseData()
mnActionDelay = 250;
mnMenuDelay = 150;
mnFollow = MOUSE_FOLLOW_MENU | MOUSE_FOLLOW_DDLIST;
- mbNoWheelActionWithoutFocus = FALSE;
+ mnWheelBehavior = MOUSE_WHEEL_FOCUS_ONLY;
}
// -----------------------------------------------------------------------
@@ -217,7 +217,7 @@ ImplMouseData::ImplMouseData( const ImplMouseData& rData )
mnActionDelay = rData.mnActionDelay;
mnMenuDelay = rData.mnMenuDelay;
mnFollow = rData.mnFollow;
- mbNoWheelActionWithoutFocus = rData.mbNoWheelActionWithoutFocus;
+ mnWheelBehavior = rData.mnWheelBehavior;
}
// -----------------------------------------------------------------------
@@ -308,7 +308,7 @@ BOOL MouseSettings::operator ==( const MouseSettings& rSet ) const
(mpData->mnActionDelay == rSet.mpData->mnActionDelay) &&
(mpData->mnMenuDelay == rSet.mpData->mnMenuDelay) &&
(mpData->mnFollow == rSet.mpData->mnFollow) &&
- (mpData->mbNoWheelActionWithoutFocus == rSet.mpData->mbNoWheelActionWithoutFocus) )
+ (mpData->mnWheelBehavior == rSet.mpData->mnWheelBehavior ) )
return TRUE;
else
return FALSE;
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx
index 3a0c2af0e852..2e2342fc6fc8 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -794,6 +794,15 @@ void Button::DataChanged( const DataChangedEvent& rDCEvt )
}
}
+void Button::SetSmallSymbol (bool small)
+{
+ ImplSetSmallSymbol (small);
+}
+
+bool Button::IsSmallSymbol () const
+{
+ return mpButtonData->mbSmallSymbol;
+}
// =======================================================================
@@ -1964,7 +1973,12 @@ Size PushButton::CalcMinimumSize( long nMaxWidth ) const
Size aSize;
if ( IsSymbol() )
- aSize = Size( 12, 12 );
+ {
+ if ( IsSmallSymbol ())
+ aSize = Size( 16, 12 );
+ else
+ aSize = Size( 26, 24 );
+ }
else if ( IsImage() && ! (ImplGetButtonState() & BUTTON_DRAW_NOIMAGE) )
aSize = GetModeImage().GetSizePixel();
if ( PushButton::GetText().Len() && ! (ImplGetButtonState() & BUTTON_DRAW_NOTEXT) )
diff --git a/vcl/source/control/combobox.cxx b/vcl/source/control/combobox.cxx
index 42abe3fd248a..309acb404750 100644
--- a/vcl/source/control/combobox.cxx
+++ b/vcl/source/control/combobox.cxx
@@ -876,10 +876,19 @@ long ComboBox::Notify( NotifyEvent& rNEvt )
(rNEvt.GetCommandEvent()->GetCommand() == COMMAND_WHEEL) &&
(rNEvt.GetWindow() == mpSubEdit) )
{
- if( ! GetSettings().GetMouseSettings().GetNoWheelActionWithoutFocus() || HasChildPathFocus() )
+ USHORT nWheelBehavior( GetSettings().GetMouseSettings().GetWheelBehavior() );
+ if ( ( nWheelBehavior == MOUSE_WHEEL_ALWAYS )
+ || ( ( nWheelBehavior == MOUSE_WHEEL_FOCUS_ONLY )
+ && HasChildPathFocus()
+ )
+ )
+ {
nDone = mpImplLB->HandleWheelAsCursorTravel( *rNEvt.GetCommandEvent() );
+ }
else
+ {
nDone = 0; // don't eat this event, let the default handling happen (i.e. scroll the context)
+ }
}
return nDone ? nDone : Edit::Notify( rNEvt );
diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx
index 3834e4de8677..5f41a441c6a1 100644
--- a/vcl/source/control/edit.cxx
+++ b/vcl/source/control/edit.cxx
@@ -2903,8 +2903,8 @@ PopupMenu* Edit::CreatePopupMenu()
pPopup->SetAccelKey( SV_MENU_EDIT_COPY, KeyCode( KEYFUNC_COPY ) );
pPopup->SetAccelKey( SV_MENU_EDIT_PASTE, KeyCode( KEYFUNC_PASTE ) );
pPopup->SetAccelKey( SV_MENU_EDIT_DELETE, KeyCode( KEYFUNC_DELETE ) );
- pPopup->SetAccelKey( SV_MENU_EDIT_SELECTALL, KeyCode( KEY_A, FALSE, TRUE, FALSE ) );
- pPopup->SetAccelKey( SV_MENU_EDIT_INSERTSYMBOL, KeyCode( KEY_S, TRUE, TRUE, FALSE ) );
+ pPopup->SetAccelKey( SV_MENU_EDIT_SELECTALL, KeyCode( KEY_A, FALSE, TRUE, FALSE, FALSE ) );
+ pPopup->SetAccelKey( SV_MENU_EDIT_INSERTSYMBOL, KeyCode( KEY_S, TRUE, TRUE, FALSE, FALSE ) );
return pPopup;
}
diff --git a/vcl/source/control/imgctrl.cxx b/vcl/source/control/imgctrl.cxx
index e6930edeba95..6d4777013a73 100644
--- a/vcl/source/control/imgctrl.cxx
+++ b/vcl/source/control/imgctrl.cxx
@@ -103,13 +103,28 @@ void ImageControl::UserDraw( const UserDrawEvent& rUDEvt )
// nStyle |= IMAGE_DRAW_COLORTRANSFORM;
}
+ if ( !*pBitmap )
+ {
+ String sText( GetText() );
+ if ( !sText.Len() )
+ return;
+
+ WinBits nWinStyle = GetStyle();
+ USHORT nTextStyle = FixedText::ImplGetTextStyle( nWinStyle );
+ if ( !IsEnabled() )
+ nTextStyle |= TEXT_DRAW_DISABLE;
+
+ DrawText( rUDEvt.GetRect(), sText, nTextStyle );
+ return;
+ }
+
const Rectangle& rPaintRect = rUDEvt.GetRect();
const Size& rBitmapSize = maBmp.GetSizePixel();
if( nStyle & IMAGE_DRAW_COLORTRANSFORM )
{
// only images support IMAGE_DRAW_COLORTRANSFORM
- Image aImage( maBmp );
+ Image aImage( *pBitmap );
if ( !!aImage )
{
switch ( mnScaleMode )
@@ -153,29 +168,29 @@ void ImageControl::UserDraw( const UserDrawEvent& rUDEvt )
{
case ImageScaleMode::None:
{
- maBmp.Draw( rUDEvt.GetDevice(), lcl_centerWithin( rPaintRect, rBitmapSize ) );
+ pBitmap->Draw( rUDEvt.GetDevice(), lcl_centerWithin( rPaintRect, rBitmapSize ) );
}
break;
case ImageScaleMode::Isotropic:
{
const Size aPaintSize = lcl_calcPaintSize( rPaintRect, rBitmapSize );
- maBmp.Draw( rUDEvt.GetDevice(),
- lcl_centerWithin( rPaintRect, aPaintSize ),
- aPaintSize );
+ pBitmap->Draw( rUDEvt.GetDevice(),
+ lcl_centerWithin( rPaintRect, aPaintSize ),
+ aPaintSize );
}
break;
case ImageScaleMode::Anisotropic:
{
- maBmp.Draw( rUDEvt.GetDevice(),
- rPaintRect.TopLeft(),
- rPaintRect.GetSize() );
+ pBitmap->Draw( rUDEvt.GetDevice(),
+ rPaintRect.TopLeft(),
+ rPaintRect.GetSize() );
}
break;
default:
- OSL_ENSURE( false, "ImageControl::UserDraw: unhandled scale mode!" );
+ OSL_ENSURE( false, "ImageControl::UserDraw: unhandled scale mode!" );
break;
} // switch ( mnScaleMode )
diff --git a/vcl/source/control/lstbox.cxx b/vcl/source/control/lstbox.cxx
index 0accd17489c9..641665aacf6b 100644
--- a/vcl/source/control/lstbox.cxx
+++ b/vcl/source/control/lstbox.cxx
@@ -31,21 +31,21 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_vcl.hxx"
-#ifndef _SV_RC_H
-#include <tools/rc.h>
-#endif
-#include <vcl/svdata.hxx>
-#include <vcl/decoview.hxx>
-#include <vcl/event.hxx>
-#include <vcl/scrbar.hxx>
-#include <vcl/button.hxx>
-#include <vcl/edit.hxx>
-#include <vcl/subedit.hxx>
-#include <vcl/ilstbox.hxx>
-#include <vcl/lstbox.hxx>
-#include <vcl/combobox.hxx>
-#include <vcl/controllayout.hxx>
-#include <tools/debug.hxx>
+#include "tools/rc.h"
+
+#include "vcl/svdata.hxx"
+#include "vcl/decoview.hxx"
+#include "vcl/event.hxx"
+#include "vcl/scrbar.hxx"
+#include "vcl/button.hxx"
+#include "vcl/edit.hxx"
+#include "vcl/subedit.hxx"
+#include "vcl/ilstbox.hxx"
+#include "vcl/lstbox.hxx"
+#include "vcl/combobox.hxx"
+#include "vcl/controllayout.hxx"
+
+#include "tools/debug.hxx"
@@ -604,18 +604,18 @@ BOOL ListBox::IsDDAutoWidthEnabled() const
void ListBox::SetDropDownLineCount( USHORT nLines )
{
+ mnLineCount = nLines;
if ( mpFloatWin )
- mpFloatWin->SetDropDownLineCount( nLines );
+ mpFloatWin->SetDropDownLineCount( mnLineCount );
}
// -----------------------------------------------------------------------
USHORT ListBox::GetDropDownLineCount() const
{
- USHORT nLines = 0;
if ( mpFloatWin )
- nLines = mpFloatWin->GetDropDownLineCount();
- return nLines;
+ return mpFloatWin->GetDropDownLineCount();
+ return mnLineCount;
}
// -----------------------------------------------------------------------
@@ -650,6 +650,7 @@ void ListBox::Resize()
long nTop = 0;
long nBottom = aOutSz.Height();
+ // note: in case of no border, pBorder will actually be this
Window *pBorder = GetWindow( WINDOW_BORDER );
ImplControlValue aControlValue;
Point aPoint;
@@ -678,6 +679,17 @@ void ListBox::Resize()
// use the themes drop down size
Rectangle aContentRect = aContent.GetBoundRect();
+ if( ! (GetStyle() & WB_BORDER) && ImplGetSVData()->maNWFData.mbNoFocusRects )
+ {
+ // no border but focus ring behavior -> we have a problem; the
+ // native rect relies on the border to draw the focus
+ // let's do the best we can and center vertically, so it doesn't look
+ // completely wrong.
+ Size aSz( GetOutputSizePixel() );
+ long nDiff = aContentRect.Top() - (aSz.Height() - aContentRect.GetHeight())/2;
+ aContentRect.Top() -= nDiff;
+ aContentRect.Bottom() -= nDiff;
+ }
mpImplWin->SetPosSizePixel( aContentRect.TopLeft(), aContentRect.GetSize() );
}
else
@@ -959,10 +971,19 @@ long ListBox::PreNotify( NotifyEvent& rNEvt )
(rNEvt.GetCommandEvent()->GetCommand() == COMMAND_WHEEL) &&
(rNEvt.GetWindow() == mpImplWin) )
{
- if( ! GetSettings().GetMouseSettings().GetNoWheelActionWithoutFocus() || HasChildPathFocus() )
+ USHORT nWheelBehavior( GetSettings().GetMouseSettings().GetWheelBehavior() );
+ if ( ( nWheelBehavior == MOUSE_WHEEL_ALWAYS )
+ || ( ( nWheelBehavior == MOUSE_WHEEL_FOCUS_ONLY )
+ && HasChildPathFocus()
+ )
+ )
+ {
nDone = mpImplLB->HandleWheelAsCursorTravel( *rNEvt.GetCommandEvent() );
+ }
else
+ {
nDone = 0; // don't eat this event, let the default handling happen (i.e. scroll the context)
+ }
}
}
@@ -1260,12 +1281,30 @@ Size ListBox::CalcMinimumSize() const
{
Size aSz;
if ( !IsDropDownBox() )
- {
- aSz = mpImplLB->CalcSize( mpImplLB->GetEntryList()->GetEntryCount() );
- }
+ aSz = mpImplLB->CalcSize (mnLineCount ? mnLineCount : mpImplLB->GetEntryList()->GetEntryCount());
else
{
aSz.Height() = mpImplLB->CalcSize( 1 ).Height();
+ if( aSz.Height() < mnDDHeight )
+ {
+ aSz.Height() = mnDDHeight;
+ // FIXME: this is currently only on mac/aqua
+ if( ImplGetSVData()->maNWFData.mbNoFocusRects &&
+ IsNativeWidgetEnabled() &&
+ const_cast<ListBox*>(this)->IsNativeControlSupported( CTRL_LISTBOX, PART_ENTIRE_CONTROL ) )
+ {
+ ImplControlValue aControlValue;
+ Region aCtrlRegion( Rectangle( (const Point&)Point(), Size( 20, mnDDHeight ) ) );
+ Region aBoundingRgn( aCtrlRegion );
+ Region aContentRgn( aCtrlRegion );
+ // adjust the size of the edit field
+ if( const_cast<ListBox*>(this)->GetNativeControlRegion( CTRL_LISTBOX, PART_ENTIRE_CONTROL,
+ aCtrlRegion, 0, aControlValue, rtl::OUString(), aBoundingRgn, aContentRgn) )
+ {
+ aSz.Height() = aContentRgn.GetBoundRect().GetHeight();
+ }
+ }
+ }
aSz.Width() = mpImplLB->GetMaxEntryWidth();
aSz.Width() += GetSettings().GetStyleSettings().GetScrollBarSize();
}
diff --git a/vcl/source/control/spinfld.cxx b/vcl/source/control/spinfld.cxx
index 3f8779dc2e90..0d656da40ba7 100644
--- a/vcl/source/control/spinfld.cxx
+++ b/vcl/source/control/spinfld.cxx
@@ -599,7 +599,12 @@ long SpinField::Notify( NotifyEvent& rNEvt )
{
if ( ( rNEvt.GetCommandEvent()->GetCommand() == COMMAND_WHEEL ) && !IsReadOnly() )
{
- if( ! GetSettings().GetMouseSettings().GetNoWheelActionWithoutFocus() || HasChildPathFocus() )
+ USHORT nWheelBehavior( GetSettings().GetMouseSettings().GetWheelBehavior() );
+ if ( ( nWheelBehavior == MOUSE_WHEEL_ALWAYS )
+ || ( ( nWheelBehavior == MOUSE_WHEEL_FOCUS_ONLY )
+ && HasChildPathFocus()
+ )
+ )
{
const CommandWheelData* pData = rNEvt.GetCommandEvent()->GetWheelData();
if ( pData->GetMode() == COMMAND_WHEEL_SCROLL )
diff --git a/vcl/source/fontsubset/sft.cxx b/vcl/source/fontsubset/sft.cxx
index 10d4cf774b04..7744b2f9a59c 100644
--- a/vcl/source/fontsubset/sft.cxx
+++ b/vcl/source/fontsubset/sft.cxx
@@ -329,7 +329,7 @@ _inline void PutInt16(sal_Int16 val, sal_uInt8 *ptr, size_t offset, int bigendia
}
-#if defined(OSL_BIG_ENDIAN)
+#if defined(OSL_BIGENDIAN)
#define Int16FromMOTA(a) (a)
#define Int32FromMOTA(a) (a)
#else
diff --git a/vcl/source/gdi/base14.cxx b/vcl/source/gdi/base14.cxx
index 7bdeb9f1fec7..17e616d196b4 100644
--- a/vcl/source/gdi/base14.cxx
+++ b/vcl/source/gdi/base14.cxx
@@ -646,7 +646,7 @@ const PDFWriterImpl::BuiltinFont PDFWriterImpl::m_aBuiltinFonts[ 14 ] = {
"ZapfDingbats", // PSName
820, -143, // ascend, descend
FAMILY_DONTKNOW, // family style
- RTL_TEXTENCODING_SYMBOL, // charset
+ RTL_TEXTENCODING_ADOBE_DINGBATS, // charset
PITCH_VARIABLE, // pitch
WIDTH_NORMAL, // width type
WEIGHT_NORMAL, // weight type
diff --git a/vcl/source/gdi/gdimtf.cxx b/vcl/source/gdi/gdimtf.cxx
index 3a29e6d56095..6483c8292df7 100644
--- a/vcl/source/gdi/gdimtf.cxx
+++ b/vcl/source/gdi/gdimtf.cxx
@@ -1403,6 +1403,436 @@ void GDIMetaFile::Rotate( long nAngle10 )
// ------------------------------------------------------------------------
+static void ImplActionBounds( Rectangle& o_rOutBounds,
+ const Rectangle& i_rInBounds,
+ const std::vector<Rectangle>& i_rClipStack )
+{
+ Rectangle aBounds( i_rInBounds );
+ if( ! i_rInBounds.IsEmpty() && ! i_rClipStack.empty() && ! i_rClipStack.back().IsEmpty() )
+ aBounds.Intersection( i_rClipStack.back() );
+ if( ! aBounds.IsEmpty() )
+ {
+ if( ! o_rOutBounds.IsEmpty() )
+ o_rOutBounds.Union( aBounds );
+ else
+ o_rOutBounds = aBounds;
+ }
+}
+
+Rectangle GDIMetaFile::GetBoundRect( OutputDevice& i_rReference )
+{
+ GDIMetaFile aMtf;
+ VirtualDevice aMapVDev( i_rReference );
+
+ aMapVDev.EnableOutput( FALSE );
+ aMapVDev.SetMapMode( GetPrefMapMode() );
+
+ std::vector<Rectangle> aClipStack( 1, Rectangle() );
+ std::vector<USHORT> aPushFlagStack;
+
+ Rectangle aBound;
+
+ for( MetaAction* pAction = (MetaAction*) First(); pAction; pAction = (MetaAction*) Next() )
+ {
+ const USHORT nActionType = pAction->GetType();
+
+ switch( nActionType )
+ {
+ case( META_PIXEL_ACTION ):
+ {
+ MetaPixelAction* pAct = (MetaPixelAction*) pAction;
+ ImplActionBounds( aBound,
+ Rectangle( aMapVDev.LogicToLogic( pAct->GetPoint(), aMapVDev.GetMapMode(), GetPrefMapMode() ),
+ aMapVDev.PixelToLogic( Size( 1, 1 ), GetPrefMapMode() ) ),
+ aClipStack );
+ }
+ break;
+
+ case( META_POINT_ACTION ):
+ {
+ MetaPointAction* pAct = (MetaPointAction*) pAction;
+ ImplActionBounds( aBound,
+ Rectangle( aMapVDev.LogicToLogic( pAct->GetPoint(), aMapVDev.GetMapMode(), GetPrefMapMode() ),
+ aMapVDev.PixelToLogic( Size( 1, 1 ), GetPrefMapMode() ) ),
+ aClipStack );
+ }
+ break;
+
+ case( META_LINE_ACTION ):
+ {
+ MetaLineAction* pAct = (MetaLineAction*) pAction;
+ Point aP1( pAct->GetStartPoint() ), aP2( pAct->GetEndPoint() );
+ Rectangle aRect( aP1, aP2 );
+ aRect.Justify();
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_RECT_ACTION ):
+ {
+ MetaRectAction* pAct = (MetaRectAction*) pAction;
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( pAct->GetRect(), aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_ROUNDRECT_ACTION ):
+ {
+ MetaRoundRectAction* pAct = (MetaRoundRectAction*) pAction;
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( pAct->GetRect(), aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_ELLIPSE_ACTION ):
+ {
+ MetaEllipseAction* pAct = (MetaEllipseAction*) pAction;
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( pAct->GetRect(), aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_ARC_ACTION ):
+ {
+ MetaArcAction* pAct = (MetaArcAction*) pAction;
+ // FIXME: this is imprecise
+ // e.g. for small arcs the whole rectangle is WAY too large
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( pAct->GetRect(), aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_PIE_ACTION ):
+ {
+ MetaPieAction* pAct = (MetaPieAction*) pAction;
+ // FIXME: this is imprecise
+ // e.g. for small arcs the whole rectangle is WAY too large
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( pAct->GetRect(), aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_CHORD_ACTION ):
+ {
+ MetaChordAction* pAct = (MetaChordAction*) pAction;
+ // FIXME: this is imprecise
+ // e.g. for small arcs the whole rectangle is WAY too large
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( pAct->GetRect(), aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_POLYLINE_ACTION ):
+ {
+ MetaPolyLineAction* pAct = (MetaPolyLineAction*) pAction;
+ Rectangle aRect( pAct->GetPolygon().GetBoundRect() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_POLYGON_ACTION ):
+ {
+ MetaPolygonAction* pAct = (MetaPolygonAction*) pAction;
+ Rectangle aRect( pAct->GetPolygon().GetBoundRect() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_POLYPOLYGON_ACTION ):
+ {
+ MetaPolyPolygonAction* pAct = (MetaPolyPolygonAction*) pAction;
+ Rectangle aRect( pAct->GetPolyPolygon().GetBoundRect() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_TEXT_ACTION ):
+ {
+ MetaTextAction* pAct = (MetaTextAction*) pAction;
+ Rectangle aRect;
+ // hdu said base = index
+ aMapVDev.GetTextBoundRect( aRect, pAct->GetText(), pAct->GetIndex(), pAct->GetIndex(), pAct->GetLen() );
+ Point aPt( pAct->GetPoint() );
+ aRect.Move( aPt.X(), aPt.Y() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_TEXTARRAY_ACTION ):
+ {
+ MetaTextArrayAction* pAct = (MetaTextArrayAction*) pAction;
+ Rectangle aRect;
+ // hdu said base = index
+ aMapVDev.GetTextBoundRect( aRect, pAct->GetText(), pAct->GetIndex(), pAct->GetIndex(), pAct->GetLen(),
+ 0, pAct->GetDXArray() );
+ Point aPt( pAct->GetPoint() );
+ aRect.Move( aPt.X(), aPt.Y() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_STRETCHTEXT_ACTION ):
+ {
+ MetaStretchTextAction* pAct = (MetaStretchTextAction*) pAction;
+ Rectangle aRect;
+ // hdu said base = index
+ aMapVDev.GetTextBoundRect( aRect, pAct->GetText(), pAct->GetIndex(), pAct->GetIndex(), pAct->GetLen(),
+ pAct->GetWidth(), NULL );
+ Point aPt( pAct->GetPoint() );
+ aRect.Move( aPt.X(), aPt.Y() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_TEXTLINE_ACTION ):
+ {
+ MetaTextLineAction* pAct = (MetaTextLineAction*) pAction;
+ // measure a test string to get ascend and descent right
+ static const sal_Unicode pStr[] = { 0xc4, 0x67, 0 };
+ String aStr( pStr );
+
+ Rectangle aRect;
+ aMapVDev.GetTextBoundRect( aRect, aStr, 0, 0, aStr.Len(), 0, NULL );
+ Point aPt( pAct->GetStartPoint() );
+ aRect.Move( aPt.X(), aPt.Y() );
+ aRect.Right() = aRect.Left() + pAct->GetWidth();
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_BMPSCALE_ACTION ):
+ {
+ MetaBmpScaleAction* pAct = (MetaBmpScaleAction*) pAction;
+ Rectangle aRect( pAct->GetPoint(), pAct->GetSize() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_BMPSCALEPART_ACTION ):
+ {
+ MetaBmpScalePartAction* pAct = (MetaBmpScalePartAction*) pAction;
+ Rectangle aRect( pAct->GetDestPoint(), pAct->GetDestSize() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_BMPEXSCALE_ACTION ):
+ {
+ MetaBmpExScaleAction* pAct = (MetaBmpExScaleAction*) pAction;
+ Rectangle aRect( pAct->GetPoint(), pAct->GetSize() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_BMPEXSCALEPART_ACTION ):
+ {
+ MetaBmpExScalePartAction* pAct = (MetaBmpExScalePartAction*) pAction;
+ Rectangle aRect( pAct->GetDestPoint(), pAct->GetDestSize() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_GRADIENT_ACTION ):
+ {
+ MetaGradientAction* pAct = (MetaGradientAction*) pAction;
+ Rectangle aRect( pAct->GetRect() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_GRADIENTEX_ACTION ):
+ {
+ MetaGradientExAction* pAct = (MetaGradientExAction*) pAction;
+ Rectangle aRect( pAct->GetPolyPolygon().GetBoundRect() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_COMMENT_ACTION ):
+ {
+ // nothing to do
+ };
+ break;
+
+ case( META_HATCH_ACTION ):
+ {
+ MetaHatchAction* pAct = (MetaHatchAction*) pAction;
+ Rectangle aRect( pAct->GetPolyPolygon().GetBoundRect() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_TRANSPARENT_ACTION ):
+ {
+ MetaTransparentAction* pAct = (MetaTransparentAction*) pAction;
+ Rectangle aRect( pAct->GetPolyPolygon().GetBoundRect() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_FLOATTRANSPARENT_ACTION ):
+ {
+ MetaFloatTransparentAction* pAct = (MetaFloatTransparentAction*) pAction;
+ GDIMetaFile aTransMtf( pAct->GetGDIMetaFile() );
+ // get the bound rect of the contained metafile
+ Rectangle aRect( aTransMtf.GetBoundRect( i_rReference ) );
+ // scale the rect now on the assumption that the correct top left of the metafile
+ // (not its bounds !) is (0,0)
+ Size aPSize( aTransMtf.GetPrefSize() );
+ aPSize = aMapVDev.LogicToLogic( aPSize, aTransMtf.GetPrefMapMode(), aMapVDev.GetMapMode() );
+ Size aActSize( pAct->GetSize() );
+ double fX = double(aActSize.Width())/double(aPSize.Width());
+ double fY = double(aActSize.Height())/double(aPSize.Height());
+ aRect.Left() = long(double(aRect.Left())*fX);
+ aRect.Right() = long(double(aRect.Right())*fX);
+ aRect.Top() = long(double(aRect.Top())*fY);
+ aRect.Bottom() = long(double(aRect.Bottom())*fY);
+
+ // transform the rect to current VDev state
+ aRect = aMapVDev.LogicToLogic( aRect, aTransMtf.GetPrefMapMode(), aMapVDev.GetMapMode() );
+
+ ImplActionBounds( aBound, aRect, aClipStack );
+ }
+ break;
+
+ case( META_EPS_ACTION ):
+ {
+ MetaEPSAction* pAct = (MetaEPSAction*) pAction;
+ Rectangle aRect( pAct->GetPoint(), pAct->GetSize() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_CLIPREGION_ACTION ):
+ {
+ MetaClipRegionAction* pAct = (MetaClipRegionAction*) pAction;
+ if( pAct->IsClipping() )
+ aClipStack.back() = aMapVDev.LogicToLogic( pAct->GetRegion().GetBoundRect(), aMapVDev.GetMapMode(), GetPrefMapMode() );
+ else
+ aClipStack.back() = Rectangle();
+ }
+ break;
+
+ case( META_ISECTRECTCLIPREGION_ACTION ):
+ {
+ MetaISectRectClipRegionAction* pAct = (MetaISectRectClipRegionAction*) pAction;
+ Rectangle aRect( aMapVDev.LogicToLogic( pAct->GetRect(), aMapVDev.GetMapMode(), GetPrefMapMode() ) );
+ if( aClipStack.back().IsEmpty() )
+ aClipStack.back() = aRect;
+ else
+ aClipStack.back().Intersection( aRect );
+ }
+ break;
+
+ case( META_ISECTREGIONCLIPREGION_ACTION ):
+ {
+ MetaISectRegionClipRegionAction* pAct = (MetaISectRegionClipRegionAction*) pAction;
+ Rectangle aRect( aMapVDev.LogicToLogic( pAct->GetRegion().GetBoundRect(), aMapVDev.GetMapMode(), GetPrefMapMode() ) );
+ if( aClipStack.back().IsEmpty() )
+ aClipStack.back() = aRect;
+ else
+ aClipStack.back().Intersection( aRect );
+ }
+ break;
+
+ case( META_BMP_ACTION ):
+ {
+ MetaBmpAction* pAct = (MetaBmpAction*) pAction;
+ Rectangle aRect( pAct->GetPoint(), aMapVDev.PixelToLogic( pAct->GetBitmap().GetSizePixel() ) );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_BMPEX_ACTION ):
+ {
+ MetaBmpExAction* pAct = (MetaBmpExAction*) pAction;
+ Rectangle aRect( pAct->GetPoint(), aMapVDev.PixelToLogic( pAct->GetBitmapEx().GetSizePixel() ) );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_MASK_ACTION ):
+ {
+ MetaMaskAction* pAct = (MetaMaskAction*) pAction;
+ Rectangle aRect( pAct->GetPoint(), aMapVDev.PixelToLogic( pAct->GetBitmap().GetSizePixel() ) );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_MASKSCALE_ACTION ):
+ {
+ MetaMaskScalePartAction* pAct = (MetaMaskScalePartAction*) pAction;
+ Rectangle aRect( pAct->GetDestPoint(), pAct->GetDestSize() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_MASKSCALEPART_ACTION ):
+ {
+ MetaMaskScalePartAction* pAct = (MetaMaskScalePartAction*) pAction;
+ Rectangle aRect( pAct->GetDestPoint(), pAct->GetDestSize() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_WALLPAPER_ACTION ):
+ {
+ MetaWallpaperAction* pAct = (MetaWallpaperAction*) pAction;
+ Rectangle aRect( pAct->GetRect() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_TEXTRECT_ACTION ):
+ {
+ MetaTextRectAction* pAct = (MetaTextRectAction*) pAction;
+ Rectangle aRect( pAct->GetRect() );
+ ImplActionBounds( aBound, aMapVDev.LogicToLogic( aRect, aMapVDev.GetMapMode(), GetPrefMapMode() ), aClipStack );
+ }
+ break;
+
+ case( META_MOVECLIPREGION_ACTION ):
+ {
+ MetaMoveClipRegionAction* pAct = (MetaMoveClipRegionAction*) pAction;
+ if( ! aClipStack.back().IsEmpty() )
+ {
+ Size aDelta( pAct->GetHorzMove(), pAct->GetVertMove() );
+ aDelta = aMapVDev.LogicToLogic( aDelta, aMapVDev.GetMapMode(), GetPrefMapMode() );
+ aClipStack.back().Move( aDelta.Width(), aDelta.Width() );
+ }
+ }
+ break;
+
+ default:
+ {
+ pAction->Execute( &aMapVDev );
+
+ if( nActionType == META_PUSH_ACTION )
+ {
+ MetaPushAction* pAct = (MetaPushAction*) pAction;
+ aPushFlagStack.push_back( pAct->GetFlags() );
+ if( (aPushFlagStack.back() & PUSH_CLIPREGION) != 0 )
+ {
+ Rectangle aRect( aClipStack.back() );
+ aClipStack.push_back( aRect );
+ }
+ }
+ else if( nActionType == META_POP_ACTION )
+ {
+ // sanity check
+ if( ! aPushFlagStack.empty() )
+ {
+ if( (aPushFlagStack.back() & PUSH_CLIPREGION) != 0 )
+ {
+ if( aClipStack.size() > 1 )
+ aClipStack.pop_back();
+ }
+ aPushFlagStack.pop_back();
+ }
+ }
+ }
+ break;
+ }
+ }
+ return aBound;
+}
+
+// ------------------------------------------------------------------------
+
Color GDIMetaFile::ImplColAdjustFnc( const Color& rColor, const void* pColParam )
{
return Color( rColor.GetTransparency(),
diff --git a/vcl/source/gdi/graph.cxx b/vcl/source/gdi/graph.cxx
index dfa155e29eae..77f065912e5d 100644
--- a/vcl/source/gdi/graph.cxx
+++ b/vcl/source/gdi/graph.cxx
@@ -430,44 +430,16 @@ BOOL Graphic::IsAnimated() const
// ------------------------------------------------------------------------
-Bitmap Graphic::GetBitmap() const
+Bitmap Graphic::GetBitmap(const GraphicConversionParameters& rParameters) const
{
- return GetBitmap( NULL );
+ return mpImpGraphic->ImplGetBitmap(rParameters);
}
// ------------------------------------------------------------------------
-BitmapEx Graphic::GetBitmapEx() const
+BitmapEx Graphic::GetBitmapEx(const GraphicConversionParameters& rParameters) const
{
- return GetBitmapEx( NULL );
-}
-
-// ------------------------------------------------------------------------
-
-Bitmap Graphic::GetBitmap( const Size* pSizePixel ) const
-{
- return mpImpGraphic->ImplGetBitmap( pSizePixel, FALSE );
-}
-
-// ------------------------------------------------------------------------
-
-BitmapEx Graphic::GetBitmapEx( const Size* pSizePixel ) const
-{
- return mpImpGraphic->ImplGetBitmapEx( pSizePixel, FALSE );
-}
-
-// ------------------------------------------------------------------------
-
-Bitmap Graphic::GetUnlimitedBitmap( const Size* pSizePixel ) const
-{
- return mpImpGraphic->ImplGetBitmap( pSizePixel, TRUE ) ;
-}
-
-// ------------------------------------------------------------------------
-
-BitmapEx Graphic::GetUnlimitedBitmapEx( const Size* pSizePixel ) const
-{
- return mpImpGraphic->ImplGetBitmapEx( pSizePixel, TRUE ) ;
+ return mpImpGraphic->ImplGetBitmapEx(rParameters);
}
// ------------------------------------------------------------------------
@@ -553,7 +525,7 @@ Size Graphic::GetSizePixel( const OutputDevice* pRefDevice ) const
Size aRet;
if( GRAPHIC_BITMAP == mpImpGraphic->ImplGetType() )
- aRet = mpImpGraphic->ImplGetBitmapEx( NULL, FALSE ).GetSizePixel();
+ aRet = mpImpGraphic->ImplGetBitmapEx(GraphicConversionParameters()).GetSizePixel();
else
aRet = ( pRefDevice ? pRefDevice : Application::GetDefaultDevice() )->LogicToPixel( GetPrefSize(), GetPrefMapMode() );
diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index a67d6fa7feac..d73f35bef962 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -483,7 +483,7 @@ BOOL ImpGraphic::ImplIsAnimated() const
// ------------------------------------------------------------------------
-Bitmap ImpGraphic::ImplGetBitmap( const Size* pSizePixel, BOOL bUnlimited ) const
+Bitmap ImpGraphic::ImplGetBitmap(const GraphicConversionParameters& rParameters) const
{
Bitmap aRetBmp;
@@ -494,8 +494,8 @@ Bitmap ImpGraphic::ImplGetBitmap( const Size* pSizePixel, BOOL bUnlimited ) cons
aRetBmp = rRetBmpEx.GetBitmap( &aReplaceColor );
- if( pSizePixel )
- aRetBmp.Scale( *pSizePixel );
+ if(rParameters.getSizePixel().Width() || rParameters.getSizePixel().Height())
+ aRetBmp.Scale(rParameters.getSizePixel());
}
else if( ( meType != GRAPHIC_DEFAULT ) && ImplIsSupportedGraphic() )
{
@@ -508,16 +508,18 @@ Bitmap ImpGraphic::ImplGetBitmap( const Size* pSizePixel, BOOL bUnlimited ) cons
Size aDrawSize( aVDev.LogicToPixel( maMetaFile.GetPrefSize(), maMetaFile.GetPrefMapMode() ) );
Size aSizePix( labs( aBRPix.X() - aTLPix.X() ) + 1, labs( aBRPix.Y() - aTLPix.Y() ) + 1 );
- if( pSizePixel && aSizePix.Width() && aSizePix.Height() )
+ if(rParameters.getSizePixel().Width() && rParameters.getSizePixel().Height())
{
- aDrawSize.Width() = FRound( (double) pSizePixel->Width() * (double) aDrawSize.Width() / (double) aSizePix.Width() );
- aDrawSize.Height() = FRound( (double) pSizePixel->Height() * (double) aDrawSize.Height() / (double) aSizePix.Height() );
+ aDrawSize.Width() = FRound((double)rParameters.getSizePixel().Width() *
+ (double)aDrawSize.Width() / (double)aSizePix.Width());
+ aDrawSize.Height() = FRound((double)rParameters.getSizePixel().Height() *
+ (double)aDrawSize.Height() / (double)aSizePix.Height());
- aSizePix = *pSizePixel;
+ aSizePix = rParameters.getSizePixel();
}
- if( aSizePix.Width() && aSizePix.Height() && !bUnlimited &&
- ( aSizePix.Width() > GRAPHIC_MTFTOBMP_MAXEXT || aSizePix.Height() > GRAPHIC_MTFTOBMP_MAXEXT ) )
+ if( aSizePix.Width() && aSizePix.Height() && !rParameters.getUnlimitedSize()
+ && (aSizePix.Width() > GRAPHIC_MTFTOBMP_MAXEXT || aSizePix.Height() > GRAPHIC_MTFTOBMP_MAXEXT))
{
const Size aOldSizePix( aSizePix );
double fWH = (double) aSizePix.Width() / aSizePix.Height();
@@ -533,6 +535,16 @@ Bitmap ImpGraphic::ImplGetBitmap( const Size* pSizePixel, BOOL bUnlimited ) cons
if( aVDev.SetOutputSizePixel( aSizePix ) )
{
+ if(rParameters.getAntiAliase())
+ {
+ aVDev.SetAntialiasing(aVDev.GetAntialiasing() | ANTIALIASING_ENABLE_B2DDRAW);
+ }
+
+ if(rParameters.getSnapHorVerLines())
+ {
+ aVDev.SetAntialiasing(aVDev.GetAntialiasing() | ANTIALIASING_PIXELSNAPHAIRLINE);
+ }
+
ImplDraw( &aVDev, aNullPt, aDrawSize );
aRetBmp = aVDev.GetBitmap( aNullPt, aVDev.GetOutputSizePixel() );
}
@@ -549,7 +561,7 @@ Bitmap ImpGraphic::ImplGetBitmap( const Size* pSizePixel, BOOL bUnlimited ) cons
// ------------------------------------------------------------------------
-BitmapEx ImpGraphic::ImplGetBitmapEx( const Size* pSizePixel, BOOL bUnlimited ) const
+BitmapEx ImpGraphic::ImplGetBitmapEx(const GraphicConversionParameters& rParameters) const
{
BitmapEx aRetBmpEx;
@@ -557,13 +569,13 @@ BitmapEx ImpGraphic::ImplGetBitmapEx( const Size* pSizePixel, BOOL bUnlimited )
{
aRetBmpEx = ( mpAnimation ? mpAnimation->GetBitmapEx() : maEx );
- if( pSizePixel )
- aRetBmpEx.Scale( *pSizePixel );
+ if(rParameters.getSizePixel().Width() || rParameters.getSizePixel().Height())
+ aRetBmpEx.Scale(rParameters.getSizePixel());
}
else if( ( meType != GRAPHIC_DEFAULT ) && ImplIsSupportedGraphic() )
{
const ImpGraphic aMonoMask( maMetaFile.GetMonochromeMtf( COL_BLACK ) );
- aRetBmpEx = BitmapEx( ImplGetBitmap( pSizePixel, bUnlimited ), aMonoMask.ImplGetBitmap( pSizePixel, bUnlimited ) );
+ aRetBmpEx = BitmapEx(ImplGetBitmap(rParameters), aMonoMask.ImplGetBitmap(rParameters));
}
return aRetBmpEx;
diff --git a/vcl/source/gdi/impimagetree.cxx b/vcl/source/gdi/impimagetree.cxx
index 64cddece1199..9e1378f22326 100644
--- a/vcl/source/gdi/impimagetree.cxx
+++ b/vcl/source/gdi/impimagetree.cxx
@@ -102,8 +102,11 @@ void loadFromStream(
rtl::OUString const & path, BitmapEx & bitmap)
{
std::auto_ptr< SvStream > s(wrapStream(stream));
- if (path.endsWithAsciiL(RTL_CONSTASCII_STRINGPARAM(".png"))) {
- bitmap = vcl::PNGReader(*s).Read();
+ if (path.endsWithAsciiL(RTL_CONSTASCII_STRINGPARAM(".png")))
+ {
+ vcl::PNGReader aPNGReader( *s );
+ aPNGReader.SetIgnoreGammaChunk( sal_True );
+ bitmap = aPNGReader.Read();
} else {
*s >> bitmap;
}
diff --git a/vcl/source/gdi/makefile.mk b/vcl/source/gdi/makefile.mk
index 977e5386fe97..4d0ded320060 100644
--- a/vcl/source/gdi/makefile.mk
+++ b/vcl/source/gdi/makefile.mk
@@ -137,6 +137,7 @@ EXCEPTIONSFILES= $(SLO)$/salmisc.obj \
$(SLO)$/pngwrite.obj \
$(SLO)$/virdev.obj \
$(SLO)$/impprn.obj \
+ $(SLO)$/gdimtf.obj \
$(SLO)$/graphictools.obj
diff --git a/vcl/source/gdi/outdev.cxx b/vcl/source/gdi/outdev.cxx
index 0e9da9f81136..5b543258cb0b 100644
--- a/vcl/source/gdi/outdev.cxx
+++ b/vcl/source/gdi/outdev.cxx
@@ -68,6 +68,8 @@
#include <basegfx/polygon/b2dpolypolygon.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
+#include <basegfx/polygon/b2dpolypolygontools.hxx>
+#include <basegfx/polygon/b2dlinegeometry.hxx>
#include <com/sun/star/awt/XGraphics.hpp>
#include <com/sun/star/uno/Sequence.hxx>
@@ -2285,8 +2287,35 @@ void OutputDevice::DrawLine( const Point& rStartPt, const Point& rEndPt )
if ( mbInitLineColor )
ImplInitLineColor();
- Point aStartPt = ImplLogicToDevicePixel( rStartPt );
- Point aEndPt = ImplLogicToDevicePixel( rEndPt );
+ // #i101598# support AA and snap for lines, too
+ if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW)
+ && mpGraphics->supportsOperation(OutDevSupport_B2DDraw)
+ && ROP_OVERPAINT == GetRasterOp()
+ && IsLineColor())
+ {
+ // at least transform with double precision to device coordinates; this will
+ // avoid pixel snap of single, appended lines
+ const basegfx::B2DHomMatrix aTransform(ImplGetDeviceTransformation());
+ const basegfx::B2DVector aB2DLineWidth( 1.0, 1.0 );
+ basegfx::B2DPolygon aB2DPolyLine;
+
+ aB2DPolyLine.append(basegfx::B2DPoint(rStartPt.X(), rStartPt.Y()));
+ aB2DPolyLine.append(basegfx::B2DPoint(rEndPt.X(), rEndPt.Y()));
+ aB2DPolyLine.transform( aTransform );
+
+ if(mnAntialiasing & ANTIALIASING_PIXELSNAPHAIRLINE)
+ {
+ aB2DPolyLine = basegfx::tools::snapPointsOfHorizontalOrVerticalEdges(aB2DPolyLine);
+ }
+
+ if(mpGraphics->DrawPolyLine(aB2DPolyLine, aB2DLineWidth, basegfx::B2DLINEJOIN_NONE, this))
+ {
+ return;
+ }
+ }
+
+ const Point aStartPt(ImplLogicToDevicePixel(rStartPt));
+ const Point aEndPt(ImplLogicToDevicePixel(rEndPt));
mpGraphics->DrawLine( aStartPt.X(), aStartPt.Y(), aEndPt.X(), aEndPt.Y(), this );
@@ -2444,22 +2473,30 @@ void OutputDevice::DrawPolyLine( const Polygon& rPoly )
if ( mbInitLineColor )
ImplInitLineColor();
+ const bool bTryAA((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW)
+ && mpGraphics->supportsOperation(OutDevSupport_B2DDraw)
+ && ROP_OVERPAINT == GetRasterOp()
+ && IsLineColor());
+
// use b2dpolygon drawing if possible
- if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW) && mpGraphics->supportsOperation(OutDevSupport_B2DDraw))
+ if(bTryAA && ImpTryDrawPolyLineDirect(rPoly.getB2DPolygon(), 0.0, basegfx::B2DLINEJOIN_NONE))
{
- ::basegfx::B2DPolygon aB2DPolyLine = rPoly.getB2DPolygon();
+ basegfx::B2DPolygon aB2DPolyLine(rPoly.getB2DPolygon());
const ::basegfx::B2DHomMatrix aTransform = ImplGetDeviceTransformation();
- aB2DPolyLine.transform( aTransform );
const ::basegfx::B2DVector aB2DLineWidth( 1.0, 1.0 );
- if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW) && (mnAntialiasing & ANTIALIASING_PIXELSNAPHAIRLINE))
+ // transform the polygon
+ aB2DPolyLine.transform( aTransform );
+
+ if(mnAntialiasing & ANTIALIASING_PIXELSNAPHAIRLINE)
{
- // #i98289#
aB2DPolyLine = basegfx::tools::snapPointsOfHorizontalOrVerticalEdges(aB2DPolyLine);
}
- if( mpGraphics->DrawPolyLine( aB2DPolyLine, aB2DLineWidth, basegfx::B2DLINEJOIN_ROUND, this ) )
+ if(mpGraphics->DrawPolyLine(aB2DPolyLine, aB2DLineWidth, basegfx::B2DLINEJOIN_NONE, this))
+ {
return;
+ }
}
Polygon aPoly = ImplLogicToDevicePixel( rPoly );
@@ -2499,9 +2536,23 @@ void OutputDevice::DrawPolyLine( const Polygon& rPoly, const LineInfo& rLineInfo
return;
}
+ // #i101491#
+ // Try direct Fallback to B2D-Version of DrawPolyLine
+ if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW)
+ && LINE_SOLID == rLineInfo.GetStyle())
+ {
+ DrawPolyLine(rPoly.getB2DPolygon(), (double)rLineInfo.GetWidth(), basegfx::B2DLINEJOIN_ROUND);
+ return;
+ }
+
if ( mpMetaFile )
mpMetaFile->AddAction( new MetaPolyLineAction( rPoly, rLineInfo ) );
+ ImpDrawPolyLineWithLineInfo(rPoly, rLineInfo);
+}
+
+void OutputDevice::ImpDrawPolyLineWithLineInfo(const Polygon& rPoly, const LineInfo& rLineInfo)
+{
USHORT nPoints = rPoly.GetSize();
if ( !IsDeviceOutputNecessary() || !mbLineColor || ( nPoints < 2 ) || ( LINE_NONE == rLineInfo.GetStyle() ) || ImplIsRecordLayout() )
@@ -2527,6 +2578,10 @@ void OutputDevice::DrawPolyLine( const Polygon& rPoly, const LineInfo& rLineInfo
return;
const LineInfo aInfo( ImplLogicToDevicePixel( rLineInfo ) );
+ const bool bTryAA((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW)
+ && mpGraphics->supportsOperation(OutDevSupport_B2DDraw)
+ && ROP_OVERPAINT == GetRasterOp()
+ && IsLineColor());
if( aInfo.GetWidth() > 1L )
{
@@ -2540,9 +2595,32 @@ void OutputDevice::DrawPolyLine( const Polygon& rPoly, const LineInfo& rLineInfo
ImplInitLineColor();
SetFillColor( aOldLineColor );
ImplInitFillColor();
+ bool bDone(false);
+
+ if(bTryAA)
+ {
+ // #i101491# try AAed version
+ // Use old on-the-fly geometry preparation, combine with AA
+ bool bSuccess(true);
- for( const Polygon* pPoly = aLineCvt.ImplGetFirst(); pPoly; pPoly = aLineCvt.ImplGetNext() )
- mpGraphics->DrawPolygon( pPoly->GetSize(), (const SalPoint*) pPoly->GetConstPointAry(), this );
+ for(const Polygon* pPoly = aLineCvt.ImplGetFirst(); bSuccess && pPoly; pPoly = aLineCvt.ImplGetNext())
+ {
+ bSuccess = mpGraphics->DrawPolyPolygon(basegfx::B2DPolyPolygon(pPoly->getB2DPolygon()), 0.0, this);
+ }
+
+ if(bSuccess)
+ {
+ bDone = true;
+ }
+ }
+
+ if(!bDone)
+ {
+ for( const Polygon* pPoly = aLineCvt.ImplGetFirst(); pPoly; pPoly = aLineCvt.ImplGetNext() )
+ {
+ mpGraphics->DrawPolygon( pPoly->GetSize(), (const SalPoint*) pPoly->GetConstPointAry(), this );
+ }
+ }
SetLineColor( aOldLineColor );
SetFillColor( aOldFillColor );
@@ -2598,13 +2676,40 @@ void OutputDevice::DrawPolygon( const Polygon& rPoly )
ImplInitFillColor();
// use b2dpolygon drawing if possible
- if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW) && mpGraphics->supportsOperation(OutDevSupport_B2DDraw))
+ if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW)
+ && mpGraphics->supportsOperation(OutDevSupport_B2DDraw)
+ && ROP_OVERPAINT == GetRasterOp()
+ && (IsLineColor() || IsFillColor()))
{
- ::basegfx::B2DPolyPolygon aB2DPolyPolygon( rPoly.getB2DPolygon() );
const ::basegfx::B2DHomMatrix aTransform = ImplGetDeviceTransformation();
- aB2DPolyPolygon.transform( aTransform );
- if( mpGraphics->DrawPolyPolygon( aB2DPolyPolygon, 0.0, this ) )
+ basegfx::B2DPolygon aB2DPolygon(rPoly.getB2DPolygon());
+ bool bSuccess(true);
+
+ // transform the polygon and ensure closed
+ aB2DPolygon.transform(aTransform);
+ aB2DPolygon.setClosed(true);
+
+ if(IsFillColor())
+ {
+ bSuccess = mpGraphics->DrawPolyPolygon(basegfx::B2DPolyPolygon(aB2DPolygon), 0.0, this);
+ }
+
+ if(bSuccess && IsLineColor())
+ {
+ const ::basegfx::B2DVector aB2DLineWidth( 1.0, 1.0 );
+
+ if(mnAntialiasing & ANTIALIASING_PIXELSNAPHAIRLINE)
+ {
+ aB2DPolygon = basegfx::tools::snapPointsOfHorizontalOrVerticalEdges(aB2DPolygon);
+ }
+
+ bSuccess = mpGraphics->DrawPolyLine(aB2DPolygon, aB2DLineWidth, basegfx::B2DLINEJOIN_NONE, this);
+ }
+
+ if(bSuccess)
+ {
return;
+ }
}
Polygon aPoly = ImplLogicToDevicePixel( rPoly );
@@ -2661,13 +2766,43 @@ void OutputDevice::DrawPolyPolygon( const PolyPolygon& rPolyPoly )
ImplInitFillColor();
// use b2dpolygon drawing if possible
- if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW) && mpGraphics->supportsOperation(OutDevSupport_B2DDraw))
+ if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW)
+ && mpGraphics->supportsOperation(OutDevSupport_B2DDraw)
+ && ROP_OVERPAINT == GetRasterOp()
+ && (IsLineColor() || IsFillColor()))
{
- ::basegfx::B2DPolyPolygon aB2DPolyPolygon = rPolyPoly.getB2DPolyPolygon();
const ::basegfx::B2DHomMatrix aTransform = ImplGetDeviceTransformation();
- aB2DPolyPolygon.transform( aTransform );
- if( mpGraphics->DrawPolyPolygon( aB2DPolyPolygon, 0.0, this ) )
+ basegfx::B2DPolyPolygon aB2DPolyPolygon(rPolyPoly.getB2DPolyPolygon());
+ bool bSuccess(true);
+
+ // transform the polygon and ensure closed
+ aB2DPolyPolygon.transform(aTransform);
+ aB2DPolyPolygon.setClosed(true);
+
+ if(IsFillColor())
+ {
+ bSuccess = mpGraphics->DrawPolyPolygon(aB2DPolyPolygon, 0.0, this);
+ }
+
+ if(bSuccess && IsLineColor())
+ {
+ const ::basegfx::B2DVector aB2DLineWidth( 1.0, 1.0 );
+
+ if(mnAntialiasing & ANTIALIASING_PIXELSNAPHAIRLINE)
+ {
+ aB2DPolyPolygon = basegfx::tools::snapPointsOfHorizontalOrVerticalEdges(aB2DPolyPolygon);
+ }
+
+ for(sal_uInt32 a(0); bSuccess && a < aB2DPolyPolygon.count(); a++)
+ {
+ bSuccess = mpGraphics->DrawPolyLine(aB2DPolyPolygon.getB2DPolygon(a), aB2DLineWidth, basegfx::B2DLINEJOIN_NONE, this);
+ }
+ }
+
+ if(bSuccess)
+ {
return;
+ }
}
if ( nPoly == 1 )
@@ -2729,6 +2864,12 @@ void OutputDevice::DrawPolyPolygon( const basegfx::B2DPolyPolygon& rB2DPolyPoly
mpMetaFile->AddAction( new MetaPolyPolygonAction( PolyPolygon( rB2DPolyPoly ) ) );
#endif
+ // call helper
+ ImpDrawPolyPolygonWithB2DPolyPolygon(rB2DPolyPoly);
+}
+
+void OutputDevice::ImpDrawPolyPolygonWithB2DPolyPolygon(const basegfx::B2DPolyPolygon& rB2DPolyPoly)
+{
// AW: Do NOT paint empty PolyPolygons
if(!rB2DPolyPoly.count())
return;
@@ -2748,13 +2889,43 @@ void OutputDevice::DrawPolyPolygon( const basegfx::B2DPolyPolygon& rB2DPolyPoly
if( mbInitFillColor )
ImplInitFillColor();
- if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW) && mpGraphics->supportsOperation(OutDevSupport_B2DDraw))
+ if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW)
+ && mpGraphics->supportsOperation(OutDevSupport_B2DDraw)
+ && ROP_OVERPAINT == GetRasterOp()
+ && (IsLineColor() || IsFillColor()))
{
- const ::basegfx::B2DHomMatrix aTransform = ImplGetDeviceTransformation();
- ::basegfx::B2DPolyPolygon aB2DPP = rB2DPolyPoly;
- aB2DPP.transform( aTransform );
- if( mpGraphics->DrawPolyPolygon( aB2DPP, 0.0, this ) )
+ const basegfx::B2DHomMatrix aTransform(ImplGetDeviceTransformation());
+ basegfx::B2DPolyPolygon aB2DPolyPolygon(rB2DPolyPoly);
+ bool bSuccess(true);
+
+ // transform the polygon and ensure closed
+ aB2DPolyPolygon.transform(aTransform);
+ aB2DPolyPolygon.setClosed(true);
+
+ if(IsFillColor())
+ {
+ bSuccess = mpGraphics->DrawPolyPolygon(aB2DPolyPolygon, 0.0, this);
+ }
+
+ if(bSuccess && IsLineColor())
+ {
+ const ::basegfx::B2DVector aB2DLineWidth( 1.0, 1.0 );
+
+ if(mnAntialiasing & ANTIALIASING_PIXELSNAPHAIRLINE)
+ {
+ aB2DPolyPolygon = basegfx::tools::snapPointsOfHorizontalOrVerticalEdges(aB2DPolyPolygon);
+ }
+
+ for(sal_uInt32 a(0);bSuccess && a < aB2DPolyPolygon.count(); a++)
+ {
+ bSuccess = mpGraphics->DrawPolyLine(aB2DPolyPolygon.getB2DPolygon(a), aB2DLineWidth, basegfx::B2DLINEJOIN_NONE, this);
+ }
+ }
+
+ if(bSuccess)
+ {
return;
+ }
}
// fallback to old polygon drawing if needed
@@ -2765,6 +2936,38 @@ void OutputDevice::DrawPolyPolygon( const basegfx::B2DPolyPolygon& rB2DPolyPoly
// -----------------------------------------------------------------------
+bool OutputDevice::ImpTryDrawPolyLineDirect(
+ const basegfx::B2DPolygon& rB2DPolygon,
+ double fLineWidth,
+ basegfx::B2DLineJoin eLineJoin)
+{
+ const basegfx::B2DHomMatrix aTransform = ImplGetDeviceTransformation();
+ basegfx::B2DVector aB2DLineWidth(1.0, 1.0);
+
+ // transform the line width if used
+ if( fLineWidth != 0.0 )
+ {
+ aB2DLineWidth = aTransform * ::basegfx::B2DVector( fLineWidth, fLineWidth );
+ }
+
+ // transform the polygon
+ basegfx::B2DPolygon aB2DPolygon(rB2DPolygon);
+ aB2DPolygon.transform(aTransform);
+
+ if((mnAntialiasing & ANTIALIASING_PIXELSNAPHAIRLINE)
+ && aB2DPolygon.count() < 1000)
+ {
+ // #i98289#, #i101491#
+ // better to remove doubles on device coordinates. Also assume from a given amount
+ // of points that the single edges are not long enough to smooth
+ aB2DPolygon.removeDoublePoints();
+ aB2DPolygon = basegfx::tools::snapPointsOfHorizontalOrVerticalEdges(aB2DPolygon);
+ }
+
+ // draw the polyline
+ return mpGraphics->DrawPolyLine(aB2DPolygon, aB2DLineWidth, eLineJoin, this);
+}
+
void OutputDevice::DrawPolyLine(
const basegfx::B2DPolygon& rB2DPolygon,
double fLineWidth,
@@ -2808,37 +3011,62 @@ void OutputDevice::DrawPolyLine(
if( mbInitLineColor )
ImplInitLineColor();
- // #i98289# use b2dpolygon drawing if possible
- if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW) && mpGraphics->supportsOperation(OutDevSupport_B2DDraw))
+ const bool bTryAA((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW)
+ && mpGraphics->supportsOperation(OutDevSupport_B2DDraw)
+ && ROP_OVERPAINT == GetRasterOp()
+ && IsLineColor());
+
+ // use b2dpolygon drawing if possible
+ if(bTryAA && ImpTryDrawPolyLineDirect(rB2DPolygon, fLineWidth, eLineJoin))
{
- const ::basegfx::B2DHomMatrix aTransform = ImplGetDeviceTransformation();
- ::basegfx::B2DVector aB2DLineWidth(1.0, 1.0);
+ return;
+ }
- // transform the line width if used
- if( fLineWidth != 0.0 )
- aB2DLineWidth = aTransform * ::basegfx::B2DVector( fLineWidth, fLineWidth );
+ // #i101491#
+ // no output yet; fallback to geometry decomposition and use filled polygon paint
+ // when line is fat and not too complex. ImpDrawPolyPolygonWithB2DPolyPolygon
+ // will do internal needed AA checks etc.
+ if(fLineWidth >= 2.5
+ && rB2DPolygon.count()
+ && rB2DPolygon.count() <= 1000)
+ {
+ const double fHalfLineWidth((fLineWidth * 0.5) + 0.5);
+ const basegfx::B2DPolyPolygon aAreaPolyPolygon(basegfx::tools::createAreaGeometry(
+ rB2DPolygon, fHalfLineWidth, eLineJoin));
- // transform the polygon
- ::basegfx::B2DPolygon aB2DPL = rB2DPolygon;
- aB2DPL.transform( aTransform );
+ const Color aOldLineColor(maLineColor);
+ const Color aOldFillColor(maFillColor);
+
+ SetLineColor();
+ ImplInitLineColor();
+ SetFillColor(aOldLineColor);
+ ImplInitFillColor();
+
+ ImpDrawPolyPolygonWithB2DPolyPolygon(aAreaPolyPolygon);
- if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW) && (mnAntialiasing & ANTIALIASING_PIXELSNAPHAIRLINE))
+ SetLineColor(aOldLineColor);
+ ImplInitLineColor();
+ SetFillColor(aOldFillColor);
+ ImplInitFillColor();
+
+ if(bTryAA)
{
- // #i98289#
- aB2DPL = basegfx::tools::snapPointsOfHorizontalOrVerticalEdges(aB2DPL);
+ // when AA it is necessary to also paint the filled polygon's outline
+ // to avoid optical gaps
+ for(sal_uInt32 a(0); a < aAreaPolyPolygon.count(); a++)
+ {
+ ImpTryDrawPolyLineDirect(aAreaPolyPolygon.getB2DPolygon(a), 0.0, basegfx::B2DLINEJOIN_NONE);
+ }
}
-
- // draw the polyline
- if( mpGraphics->DrawPolyLine( aB2DPL, aB2DLineWidth, eLineJoin, this ) )
- return;
}
- // fallback to old polygon drawing if needed
+ // fallback to old polygon drawing if needed. This will really
+ // use ImplLineConverter, but still try to AA lines
const Polygon aToolsPolygon( rB2DPolygon );
LineInfo aLineInfo;
if( fLineWidth != 0.0 )
aLineInfo.SetWidth( static_cast<long>(fLineWidth+0.5) );
- DrawPolyLine( aToolsPolygon, aLineInfo );
+ ImpDrawPolyLineWithLineInfo( aToolsPolygon, aLineInfo );
}
// -----------------------------------------------------------------------
diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx
index 521e56da207e..710620d54ab8 100644
--- a/vcl/source/gdi/outdev3.cxx
+++ b/vcl/source/gdi/outdev3.cxx
@@ -7,7 +7,6 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: outdev3.cxx,v $
- * $Revision: 1.240.14.5 $
*
* This file is part of OpenOffice.org.
*
@@ -63,6 +62,7 @@
#include <vcl/outdev.hxx>
#include <vcl/edit.hxx>
#include <vcl/fontcfg.hxx>
+#include <vcl/sysdata.hxx>
#ifndef _OSL_FILE_H
#include <osl/file.h>
#endif
@@ -6483,7 +6483,7 @@ SalLayout* OutputDevice::ImplLayout( const String& rOrigStr,
nRTLOffset = nPixelWidth;
else
nRTLOffset = pSalLayout->GetTextWidth() / pSalLayout->GetUnitsPerPixel();
- pSalLayout->DrawOffset().X() = -nRTLOffset;
+ pSalLayout->DrawOffset().X() = 1 - nRTLOffset;
}
return pSalLayout;
@@ -6918,13 +6918,13 @@ void OutputDevice::ImplDrawText( const Rectangle& rRect,
nStyle &= ~TEXT_DRAW_CLIP;
}
- // Vertikales Alignment
+ // horizontal text alignment
if ( nStyle & TEXT_DRAW_RIGHT )
aPos.X() += nWidth-nTextWidth;
else if ( nStyle & TEXT_DRAW_CENTER )
aPos.X() += (nWidth-nTextWidth)/2;
- // Font Alignment
+ // vertical font alignment
if ( eAlign == ALIGN_BOTTOM )
aPos.Y() += nTextHeight;
else if ( eAlign == ALIGN_BASELINE )
@@ -7700,6 +7700,97 @@ FontMetric OutputDevice::GetFontMetric( const Font& rFont ) const
// -----------------------------------------------------------------------
+/** OutputDevice::GetSysFontData
+ *
+ * @param nFallbacklevel Fallback font level (0 = best matching font)
+ *
+ * Retrieve detailed font information in platform independent structure
+ *
+ * @return SystemFontData
+ **/
+SystemFontData OutputDevice::GetSysFontData(int nFallbacklevel) const
+{
+ SystemFontData aSysFontData;
+ aSysFontData.nSize = sizeof(aSysFontData);
+
+ if (!mpGraphics) ImplGetGraphics();
+ if (mpGraphics) aSysFontData = mpGraphics->GetSysFontData(nFallbacklevel);
+
+ return aSysFontData;
+}
+
+
+// -----------------------------------------------------------------------
+
+/** OutputDevice::GetSysTextLayoutData
+ *
+ * @param rStartPt Start point of the text
+ * @param rStr Text string that will be transformed into layout of glyphs
+ * @param nIndex Position in the string from where layout will be done
+ * @param nLen Length of the string
+ * @param pDXAry Custom layout adjustment data
+ *
+ * Export finalized glyph layout data as platform independent SystemTextLayoutData
+ * (see vcl/inc/vcl/sysdata.hxx)
+ *
+ * Only parameters rStartPt and rStr are mandatory, the rest is optional
+ * (default values will be used)
+ *
+ * @return SystemTextLayoutData
+ **/
+SystemTextLayoutData OutputDevice::GetSysTextLayoutData(const Point& rStartPt, const XubString& rStr, xub_StrLen nIndex, xub_StrLen nLen,
+ const sal_Int32* pDXAry) const
+{
+ DBG_TRACE( "OutputDevice::GetSysTextLayoutData()" );
+ DBG_CHKTHIS( OutputDevice, ImplDbgCheckOutputDevice );
+
+ SystemTextLayoutData aSysLayoutData;
+ aSysLayoutData.nSize = sizeof(aSysLayoutData);
+ aSysLayoutData.rGlyphData.reserve( 256 );
+
+ if ( mpMetaFile ) {
+ if (pDXAry)
+ mpMetaFile->AddAction( new MetaTextArrayAction( rStartPt, rStr, pDXAry, nIndex, nLen ) );
+ else
+ mpMetaFile->AddAction( new MetaTextAction( rStartPt, rStr, nIndex, nLen ) );
+ }
+
+ if ( !IsDeviceOutputNecessary() ) return aSysLayoutData;
+
+ SalLayout* rLayout = ImplLayout( rStr, nIndex, nLen, rStartPt, 0, pDXAry, true );
+
+ // setup glyphs
+ Point aPos;
+ sal_GlyphId aGlyphId;
+ int nFallbacklevel = 0;
+ for( int nStart = 0; rLayout->GetNextGlyphs( 1, &aGlyphId, aPos, nStart ); )
+ {
+ // NOTE: Windows backend is producing unicode chars (ucs4), so on windows,
+ // ETO_GLYPH_INDEX is unusable, unless extra glyph conversion is made.
+
+ SystemGlyphData aGlyph;
+ aGlyph.index = static_cast<unsigned long> (aGlyphId & GF_IDXMASK);
+ aGlyph.x = aPos.X();
+ aGlyph.y = aPos.Y();
+ aSysLayoutData.rGlyphData.push_back(aGlyph);
+
+ int nLevel = (aGlyphId & GF_FONTMASK) >> GF_FONTSHIFT;
+ if (nLevel > nFallbacklevel && nLevel < MAX_FALLBACK)
+ nFallbacklevel = nLevel;
+ }
+
+ // Get font data
+ aSysLayoutData.aSysFontData = GetSysFontData(nFallbacklevel);
+ aSysLayoutData.orientation = rLayout->GetOrientation();
+
+ rLayout->Release();
+
+ return aSysLayoutData;
+}
+
+// -----------------------------------------------------------------------
+
+
long OutputDevice::GetMinKashida() const
{
DBG_TRACE( "OutputDevice::GetMinKashida()" );
@@ -7827,8 +7918,8 @@ BOOL OutputDevice::GetGlyphBoundRects( const Point& rOrigin, const String& rStr,
// -----------------------------------------------------------------------
BOOL OutputDevice::GetTextBoundRect( Rectangle& rRect,
- const String& rStr, xub_StrLen nBase, xub_StrLen nIndex,
- xub_StrLen nLen ) const
+ const String& rStr, xub_StrLen nBase, xub_StrLen nIndex, xub_StrLen nLen,
+ ULONG nLayoutWidth, const sal_Int32* pDXAry ) const
{
DBG_TRACE( "OutputDevice::GetTextBoundRect()" );
DBG_CHKTHIS( OutputDevice, ImplDbgCheckOutputDevice );
@@ -7837,13 +7928,14 @@ BOOL OutputDevice::GetTextBoundRect( Rectangle& rRect,
rRect.SetEmpty();
SalLayout* pSalLayout = NULL;
+ const Point aPoint;
// calculate offset when nBase!=nIndex
long nXOffset = 0;
if( nBase != nIndex )
{
xub_StrLen nStart = Min( nBase, nIndex );
xub_StrLen nOfsLen = Max( nBase, nIndex ) - nStart;
- pSalLayout = ImplLayout( rStr, nStart, nOfsLen );
+ pSalLayout = ImplLayout( rStr, nStart, nOfsLen, aPoint, nLayoutWidth, pDXAry );
if( pSalLayout )
{
nXOffset = pSalLayout->GetTextWidth();
@@ -7855,7 +7947,7 @@ BOOL OutputDevice::GetTextBoundRect( Rectangle& rRect,
}
}
- pSalLayout = ImplLayout( rStr, nIndex, nLen );
+ pSalLayout = ImplLayout( rStr, nIndex, nLen, aPoint, nLayoutWidth, pDXAry );
Rectangle aPixelRect;
if( pSalLayout )
{
@@ -7905,7 +7997,7 @@ BOOL OutputDevice::GetTextBoundRect( Rectangle& rRect,
aVDev.SetTextAlign( ALIGN_TOP );
// layout the text on the virtual device
- pSalLayout = aVDev.ImplLayout( rStr, nIndex, nLen );
+ pSalLayout = aVDev.ImplLayout( rStr, nIndex, nLen, aPoint, nLayoutWidth, pDXAry );
if( !pSalLayout )
return false;
@@ -8005,7 +8097,7 @@ BOOL OutputDevice::GetTextBoundRect( Rectangle& rRect,
BOOL OutputDevice::GetTextOutlines( ::basegfx::B2DPolyPolygonVector& rVector,
const String& rStr, xub_StrLen nBase, xub_StrLen nIndex, xub_StrLen nLen,
- BOOL bOptimize, const ULONG nTWidth, const sal_Int32* pDXArray ) const
+ BOOL bOptimize, ULONG nTWidth, const sal_Int32* pDXArray ) const
{
// the fonts need to be initialized
if( mbNewFont )
@@ -8234,7 +8326,7 @@ BOOL OutputDevice::GetTextOutlines( ::basegfx::B2DPolyPolygonVector& rVector,
BOOL OutputDevice::GetTextOutlines( PolyPolyVector& rResultVector,
const String& rStr, xub_StrLen nBase, xub_StrLen nIndex,
- xub_StrLen nLen, BOOL bOptimize, const ULONG nTWidth, const sal_Int32* pDXArray ) const
+ xub_StrLen nLen, BOOL bOptimize, ULONG nTWidth, const sal_Int32* pDXArray ) const
{
rResultVector.clear();
@@ -8257,7 +8349,7 @@ BOOL OutputDevice::GetTextOutlines( PolyPolyVector& rResultVector,
BOOL OutputDevice::GetTextOutline( PolyPolygon& rPolyPoly,
const String& rStr, xub_StrLen nBase, xub_StrLen nIndex, xub_StrLen nLen,
- BOOL bOptimize, const ULONG nTWidth, const sal_Int32* pDXArray ) const
+ BOOL bOptimize, ULONG nTWidth, const sal_Int32* pDXArray ) const
{
rPolyPoly.Clear();
diff --git a/vcl/source/gdi/outdev6.cxx b/vcl/source/gdi/outdev6.cxx
index cee4f475a577..a11e276982f7 100644
--- a/vcl/source/gdi/outdev6.cxx
+++ b/vcl/source/gdi/outdev6.cxx
@@ -185,14 +185,20 @@ void OutputDevice::DrawTransparent( const basegfx::B2DPolyPolygon& rB2DPolyPoly,
if( mbInitFillColor )
ImplInitFillColor();
- if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW) && mpGraphics->supportsOperation(OutDevSupport_B2DDraw))
+ if((mnAntialiasing & ANTIALIASING_ENABLE_B2DDRAW)
+ && mpGraphics->supportsOperation(OutDevSupport_B2DDraw)
+ && ROP_OVERPAINT == GetRasterOp()
+ && IsFillColor())
{
// b2dpolygon support not implemented yet on non-UNX platforms
const ::basegfx::B2DHomMatrix aTransform = ImplGetDeviceTransformation();
- ::basegfx::B2DPolyPolygon aB2DPP = rB2DPolyPoly;
- aB2DPP.transform( aTransform );
+ basegfx::B2DPolyPolygon aB2DPolyPolygon(rB2DPolyPoly);
- if( mpGraphics->DrawPolyPolygon( aB2DPP, fTransparency, this ) )
+ // transform the polygon and ensure closed
+ aB2DPolyPolygon.transform(aTransform);
+ aB2DPolyPolygon.setClosed(true);
+
+ if(mpGraphics->DrawPolyPolygon(aB2DPolyPolygon, fTransparency, this))
{
#if 0
// MetaB2DPolyPolygonAction is not implemented yet:
diff --git a/vcl/source/gdi/pdfwriter.cxx b/vcl/source/gdi/pdfwriter.cxx
index 9293ebf1aab2..4959a505ec41 100644
--- a/vcl/source/gdi/pdfwriter.cxx
+++ b/vcl/source/gdi/pdfwriter.cxx
@@ -246,9 +246,12 @@ void PDFWriter::DrawBitmapEx( const Point& rDestPt, const Size& rDestSize, const
void PDFWriter::DrawBitmapEx( const Point& rDestPt, const Size& rDestSize, const Point& rSrcPtPixel, const Size& rSrcSizePixel, const BitmapEx& rBitmap )
{
+ if ( !!rBitmap )
+ {
BitmapEx aBitmap( rBitmap );
aBitmap.Crop( Rectangle( rSrcPtPixel, rSrcSizePixel ) );
((PDFWriterImpl*)pImplementation)->drawBitmap( rDestPt, rDestSize, aBitmap );
+ }
}
void PDFWriter::DrawMask( const Point& rDestPt, const Bitmap& rBitmap, const Color& rMaskColor )
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index 05067ee2d024..25f02a1b2718 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -6,9 +6,6 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: pdfwriter_impl.cxx,v $
- * $Revision: 1.132.72.2 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -795,7 +792,8 @@ static void appendNonStrokingColor( const Color& rColor, OStringBuffer& rBuffer
}
// matrix helper class
-namespace vcl
+// TODO: use basegfx matrix class instead or derive from it
+namespace vcl // TODO: use anonymous namespace to keep this class local
{
/* for sparse matrices of the form (2D linear transformations)
* f[0] f[1] 0
@@ -815,6 +813,7 @@ public:
void scale( double sx, double sy );
void rotate( double angle );
void translate( double tx, double ty );
+ bool invert();
void append( PDFWriterImpl::PDFPage& rPage, OStringBuffer& rBuffer, Point* pBack = NULL );
@@ -891,6 +890,36 @@ void Matrix3::translate( double tx, double ty )
f[5] += ty;
}
+bool Matrix3::invert()
+{
+ // short circuit trivial cases
+ if( f[1]==f[2] && f[1]==0.0 && f[0]==f[3] && f[0]==1.0 )
+ {
+ f[4] = -f[4];
+ f[5] = -f[5];
+ return true;
+ }
+
+ // check determinant
+ const double fDet = f[0]*f[3]-f[1]*f[2];
+ if( fDet == 0.0 )
+ return false;
+
+ // invert the matrix
+ double fn[6];
+ fn[0] = +f[3] / fDet;
+ fn[1] = -f[1] / fDet;
+ fn[2] = -f[2] / fDet;
+ fn[3] = +f[0] / fDet;
+
+ // apply inversion to translation
+ fn[4] = -(f[4]*fn[0] + f[5]*fn[2]);
+ fn[5] = -(f[4]*fn[1] + f[5]*fn[3]);
+
+ set( fn );
+ return true;
+}
+
void Matrix3::append( PDFWriterImpl::PDFPage& rPage, OStringBuffer& rBuffer, Point* pBack )
{
appendDouble( f[0], rBuffer );
@@ -1930,7 +1959,7 @@ static ImplDevFontAttributes GetDevFontAttributes( const PDFWriterImpl::BuiltinF
aDFA.maName = String::CreateFromAscii( rBuiltin.m_pName );
aDFA.maStyleName = String::CreateFromAscii( rBuiltin.m_pStyleName );
aDFA.meFamily = rBuiltin.m_eFamily;
- aDFA.mbSymbolFlag = (rBuiltin.m_eCharSet == RTL_TEXTENCODING_SYMBOL);
+ aDFA.mbSymbolFlag = (rBuiltin.m_eCharSet != RTL_TEXTENCODING_MS_1252 );
aDFA.mePitch = rBuiltin.m_ePitch;
aDFA.meWeight = rBuiltin.m_eWeight;
aDFA.meItalic = rBuiltin.m_eItalic;
@@ -2033,7 +2062,7 @@ PDFSalLayout::PDFSalLayout( PDFWriterImpl& rPDFWriterImpl,
mrBuiltinFont( rBuiltinFont ),
mnPixelPerEM( nPixelPerEM )
{
- mbIsSymbolFont = (rBuiltinFont.m_eCharSet == RTL_TEXTENCODING_SYMBOL);
+ mbIsSymbolFont = (rBuiltinFont.m_eCharSet != RTL_TEXTENCODING_MS_1252);
SetOrientation( nOrientation );
}
@@ -2045,41 +2074,35 @@ bool PDFSalLayout::LayoutText( ImplLayoutArgs& rArgs )
SetText( aText );
SetUnitsPerPixel( 1000 );
- rtl_UnicodeToTextConverter aConv = rtl_createTextToUnicodeConverter( RTL_TEXTENCODING_MS_1252 );
+ rtl_UnicodeToTextConverter aConv = rtl_createTextToUnicodeConverter( mrBuiltinFont.m_eCharSet );
Point aNewPos( 0, 0 );
bool bRightToLeft;
for( int nCharPos = -1; rArgs.GetNextPos( &nCharPos, &bRightToLeft ); )
{
// TODO: handle unicode surrogates
- // on the other hand builtin fonts don't support them anyway
+ // on the other hand the PDF builtin fonts don't support them anyway
sal_Unicode cChar = rArgs.mpStr[ nCharPos ];
if( bRightToLeft )
cChar = static_cast<sal_Unicode>(GetMirroredChar( cChar ));
- if( cChar & 0xff00 )
+ if( 1 ) // TODO: shortcut for ASCII?
{
- // some characters can be used by conversion
- if( (cChar >= 0xf000) && mbIsSymbolFont )
- cChar -= 0xf000;
- else
- {
- sal_Char aBuf[4];
- sal_uInt32 nInfo;
- sal_Size nSrcCvtChars;
-
- sal_Size nConv = rtl_convertUnicodeToText( aConv,
- NULL,
- &cChar, 1,
- aBuf, 1,
- RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR,
- &nInfo, &nSrcCvtChars );
- // check whether conversion was possible
- // else fallback font is needed as the standard fonts
- // are handled via WinAnsi encoding
- if( nConv > 0 )
- cChar = ((sal_Unicode)aBuf[0]) & 0x00ff;
- }
+ sal_Char aBuf[4];
+ sal_uInt32 nInfo;
+ sal_Size nSrcCvtChars;
+
+ sal_Size nConv = rtl_convertUnicodeToText( aConv,
+ NULL,
+ &cChar, 1,
+ aBuf, sizeof(aBuf)/sizeof(*aBuf),
+ RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR,
+ &nInfo, &nSrcCvtChars );
+ // check whether conversion was possible
+ // else fallback font is needed as the standard fonts
+ // are handled via WinAnsi encoding
+ if( nConv > 0 )
+ cChar = ((sal_Unicode)aBuf[0]) & 0x00ff;
}
if( cChar & 0xff00 )
{
@@ -2088,7 +2111,7 @@ bool PDFSalLayout::LayoutText( ImplLayoutArgs& rArgs )
}
long nGlyphWidth = (long)mrBuiltinFont.m_aWidths[cChar] * mnPixelPerEM;
- long nGlyphFlags = (nGlyphWidth > 0) ? 0 : GlyphItem::IS_IN_CLUSTER;
+ long nGlyphFlags = 0; // builtin fonts don't have diacritic glyphs
if( bRightToLeft )
nGlyphFlags |= GlyphItem::IS_RTL_GLYPH;
// TODO: get kerning from builtin fonts
@@ -2782,7 +2805,7 @@ sal_Int32 PDFWriterImpl::emitBuiltinFont( const ImplFontData* pFont, sal_Int32 n
"<</Type/Font/Subtype/Type1/BaseFont/" );
appendName( pBuiltinFont->m_pPSName, aLine );
aLine.append( "\n" );
- if( pBuiltinFont->m_eCharSet != RTL_TEXTENCODING_SYMBOL )
+ if( pBuiltinFont->m_eCharSet == RTL_TEXTENCODING_MS_1252 )
aLine.append( "/Encoding/WinAnsiEncoding\n" );
aLine.append( ">>\nendobj\n\n" );
CHECK_RETURN( writeBuffer( aLine.getStr(), aLine.getLength() ) );
@@ -6644,6 +6667,7 @@ void PDFWriterImpl::drawHorizontalGlyphs(
// subsequent use of that operator would move
// the texline matrix relative to what was set before
// making use of that would drive us into rounding issues
+ Matrix3 aMat;
if( nRun == 0 && fAngle == 0.0 && fXScale == 1.0 && fSkew == 0.0 )
{
m_aPages.back().appendPoint( aCurPos, rLine, false );
@@ -6651,7 +6675,6 @@ void PDFWriterImpl::drawHorizontalGlyphs(
}
else
{
- Matrix3 aMat;
if( fSkew != 0.0 )
aMat.skew( 0.0, fSkew );
aMat.scale( fXScale, 1.0 );
@@ -6674,15 +6697,17 @@ void PDFWriterImpl::drawHorizontalGlyphs(
appendHex( rGlyphs[nBeginRun].m_nMappedGlyphId, aKernedLine );
appendHex( rGlyphs[nBeginRun].m_nMappedGlyphId, aUnkernedLine );
+ aMat.invert();
bool bNeedKern = false;
for( sal_uInt32 nPos = nBeginRun+1; nPos < aRunEnds[nRun]; nPos++ )
{
appendHex( rGlyphs[nPos].m_nMappedGlyphId, aUnkernedLine );
- // check for adjustment
- double fTheoreticalGlyphWidth = rGlyphs[nPos].m_aPos.X() - rGlyphs[nPos-1].m_aPos.X();
- fTheoreticalGlyphWidth = fabs( fTheoreticalGlyphWidth ); // #i100522# workaround until #i87686# gets fixed
- fTheoreticalGlyphWidth = 1000.0 * fTheoreticalGlyphWidth / fXScale / double(nPixelFontHeight);
- sal_Int32 nAdjustment = rGlyphs[nPos-1].m_nNativeWidth - sal_Int32(fTheoreticalGlyphWidth+0.5);
+ // check if glyph advance matches with the width of the previous glyph, else adjust
+ const Point aThisPos = aMat.transform( rGlyphs[nPos].m_aPos );
+ const Point aPrevPos = aMat.transform( rGlyphs[nPos-1].m_aPos );
+ double fAdvance = aThisPos.X() - aPrevPos.X();
+ fAdvance *= 1000.0 / (fXScale * nPixelFontHeight);
+ const sal_Int32 nAdjustment = rGlyphs[nPos-1].m_nNativeWidth - sal_Int32(fAdvance+0.5);
if( nAdjustment != 0 )
{
bNeedKern = true;
diff --git a/vcl/source/gdi/pngread.cxx b/vcl/source/gdi/pngread.cxx
index 56c9025018b9..834116a9ffe9 100644
--- a/vcl/source/gdi/pngread.cxx
+++ b/vcl/source/gdi/pngread.cxx
@@ -156,6 +156,7 @@ private:
BOOL mbIDAT; // TRUE if finished with enough IDAT chunks
BOOL mbGamma; // TRUE if Gamma Correction available
BOOL mbpHYs; // TRUE if pysical size of pixel available
+ sal_Bool mbIgnoreGammaChunk;
bool ReadNextChunk();
void ReadRemainingChunks();
@@ -186,6 +187,7 @@ public:
BitmapEx GetBitmapEx( const Size& rPreviewSizeHint );
const std::vector< PNGReader::ChunkData >& GetAllChunks();
+ void SetIgnoreGammaChunk( sal_Bool bIgnore ){ mbIgnoreGammaChunk = bIgnore; };
};
// ------------------------------------------------------------------------------
@@ -205,8 +207,9 @@ PNGReaderImpl::PNGReaderImpl( SvStream& rPNGStream )
mbzCodecInUse ( sal_False ),
mbStatus( TRUE),
mbIDAT( FALSE ),
- mbGamma ( sal_False ),
- mbpHYs ( sal_False )
+ mbGamma ( sal_False ),
+ mbpHYs ( sal_False ),
+ mbIgnoreGammaChunk ( sal_False )
{
// prepare the PNG data stream
mnOrigStreamMode = mrPNGStream.GetNumberFormatInt();
@@ -382,9 +385,9 @@ BitmapEx PNGReaderImpl::GetBitmapEx( const Size& rPreviewSizeHint )
break;
case PNGCHUNK_gAMA : // the gamma chunk must precede
- {
- if ( mbIDAT == FALSE ) // the 'IDAT' and also the
- ImplGetGamma(); // 'PLTE'(if available )
+ { // the 'IDAT' and also the 'PLTE'(if available )
+ if ( !mbIgnoreGammaChunk && ( mbIDAT == FALSE ) )
+ ImplGetGamma();
}
break;
@@ -1568,4 +1571,12 @@ const std::vector< vcl::PNGReader::ChunkData >& PNGReader::GetChunks() const
return mpImpl->GetAllChunks();
}
+// ------------------------------------------------------------------------
+
+void PNGReader::SetIgnoreGammaChunk( sal_Bool b )
+{
+ mpImpl->SetIgnoreGammaChunk( b );
+}
+
+
} // namespace vcl
diff --git a/vcl/source/gdi/print.cxx b/vcl/source/gdi/print.cxx
index 0a5fbb189885..937d966b3978 100644
--- a/vcl/source/gdi/print.cxx
+++ b/vcl/source/gdi/print.cxx
@@ -70,44 +70,22 @@ int nImplSysDialog = 0;
// =======================================================================
-#define PAPER_SLOPPY 50 // Bigger sloppy value as PaperInfo uses only mm accuracy!
-#define PAPER_COUNT 9
-
-// Use more accurate metric values for Letter/Legal/Tabloid paper formats
-static long ImplPaperFormats[PAPER_COUNT*2] =
-{
- 29700, 42000, // A3
- 21000, 29700, // A4
- 14800, 21000, // A5
- 25000, 35300, // B4
- 17600, 25000, // B5
- 21590, 27940, // Letter
- 21590, 35570, // Legal
- 27960, 43130, // Tabloid
- 0, 0 // USER
-};
-
-// =======================================================================
-
-Paper ImplGetPaperFormat( long nWidth100thMM, long nHeight100thMM )
+namespace
{
- USHORT i;
-
- for( i = 0; i < PAPER_COUNT; i++ )
+ static Paper ImplGetPaperFormat( long nWidth100thMM, long nHeight100thMM )
{
- if ( (ImplPaperFormats[i*2] == nWidth100thMM) &&
- (ImplPaperFormats[i*2+1] == nHeight100thMM) )
- return (Paper)i;
+ PaperInfo aInfo(nWidth100thMM, nHeight100thMM);
+ aInfo.doSloppyFit();
+ return aInfo.getPaper();
}
- for( i = 0; i < PAPER_COUNT; i++ )
+// -----------------------------------------------------------------------
+
+ static const PaperInfo& ImplGetEmptyPaper()
{
- if ( (Abs( ImplPaperFormats[i*2]-nWidth100thMM ) < PAPER_SLOPPY) &&
- (Abs( ImplPaperFormats[i*2+1]-nHeight100thMM ) < PAPER_SLOPPY) )
- return (Paper)i;
+ static PaperInfo aInfo(PAPER_USER);
+ return aInfo;
}
-
- return PAPER_USER;
}
// =======================================================================
@@ -121,8 +99,9 @@ void ImplUpdateJobSetupPaper( JobSetup& rJobSetup )
if ( pConstData->mePaperFormat != PAPER_USER )
{
ImplJobSetup* pData = rJobSetup.ImplGetData();
- pData->mnPaperWidth = ImplPaperFormats[((USHORT)pConstData->mePaperFormat)*2];
- pData->mnPaperHeight = ImplPaperFormats[((USHORT)pConstData->mePaperFormat)*2+1];
+ PaperInfo aInfo(pConstData->mePaperFormat);
+ pData->mnPaperWidth = aInfo.getWidth();
+ pData->mnPaperHeight = aInfo.getHeight();
}
}
else if ( pConstData->mePaperFormat == PAPER_USER )
@@ -997,17 +976,6 @@ USHORT Printer::GetPaperBin() const
// -----------------------------------------------------------------------
-static BOOL ImplPaperSizeEqual( unsigned long nPaperWidth1, unsigned long nPaperHeight1,
- unsigned long nPaperWidth2, unsigned long nPaperHeight2 )
-{
- const long PAPER_ACCURACY = 1; // 1.0 mm accuracy
-
- return ( (Abs( long(nPaperWidth1)-long(nPaperWidth2) ) <= PAPER_ACCURACY ) &&
- (Abs( long(nPaperHeight1)-long(nPaperHeight2) ) <= PAPER_ACCURACY ) );
-}
-
-// -----------------------------------------------------------------------
-
// Map user paper format to a available printer paper formats
void Printer::ImplFindPaperFormatForUserSize( JobSetup& aJobSetup )
{
@@ -1016,21 +984,17 @@ void Printer::ImplFindPaperFormatForUserSize( JobSetup& aJobSetup )
int nLandscapeAngle = GetLandscapeAngle();
int nPaperCount = GetPaperInfoCount();
- unsigned long nPaperWidth = pSetupData->mnPaperWidth/100;
- unsigned long nPaperHeight = pSetupData->mnPaperHeight/100;
+ PaperInfo aInfo(pSetupData->mnPaperWidth, pSetupData->mnPaperHeight);
// Alle Papierformate vergleichen und ein passendes raussuchen
for ( int i = 0; i < nPaperCount; i++ )
{
- const vcl::PaperInfo& rPaperInfo = GetPaperInfo( i );
+ const PaperInfo& rPaperInfo = GetPaperInfo( i );
- if ( ImplPaperSizeEqual( rPaperInfo.m_nPaperWidth,
- rPaperInfo.m_nPaperHeight,
- nPaperWidth,
- nPaperHeight ) )
+ if ( aInfo.sloppyEqual(rPaperInfo) )
{
- pSetupData->mePaperFormat = ImplGetPaperFormat( rPaperInfo.m_nPaperWidth*100,
- rPaperInfo.m_nPaperHeight*100 );
+ pSetupData->mePaperFormat = ImplGetPaperFormat( rPaperInfo.getWidth(),
+ rPaperInfo.getHeight() );
break;
}
}
@@ -1042,17 +1006,17 @@ void Printer::ImplFindPaperFormatForUserSize( JobSetup& aJobSetup )
nLandscapeAngle != 0 &&
HasSupport( SUPPORT_SET_ORIENTATION ))
{
+
+ PaperInfo aRotatedInfo(pSetupData->mnPaperHeight, pSetupData->mnPaperWidth);
+
for ( int i = 0; i < nPaperCount; i++ )
{
- const vcl::PaperInfo& rPaperInfo = GetPaperInfo( i );
+ const PaperInfo& rPaperInfo = GetPaperInfo( i );
- if ( ImplPaperSizeEqual( rPaperInfo.m_nPaperWidth,
- rPaperInfo.m_nPaperHeight,
- nPaperHeight,
- nPaperWidth ))
+ if ( aRotatedInfo.sloppyEqual( rPaperInfo ) )
{
- pSetupData->mePaperFormat = ImplGetPaperFormat( rPaperInfo.m_nPaperWidth*100,
- rPaperInfo.m_nPaperHeight*100 );
+ pSetupData->mePaperFormat = ImplGetPaperFormat( rPaperInfo.getWidth(),
+ rPaperInfo.getHeight() );
break;
}
}
@@ -1073,8 +1037,9 @@ BOOL Printer::SetPaper( Paper ePaper )
pSetupData->mePaperFormat = ePaper;
if ( ePaper != PAPER_USER )
{
- pSetupData->mnPaperWidth = ImplPaperFormats[((USHORT)ePaper)*2];
- pSetupData->mnPaperHeight = ImplPaperFormats[((USHORT)ePaper)*2+1];
+ PaperInfo aInfo(ePaper);
+ pSetupData->mnPaperWidth = aInfo.getWidth();
+ pSetupData->mnPaperHeight = aInfo.getHeight();
}
if ( IsDisplayPrinter() )
@@ -1110,9 +1075,8 @@ BOOL Printer::SetPaperSizeUser( const Size& rSize )
if ( mbInPrintPage )
return FALSE;
- MapMode aMap100thMM( MAP_100TH_MM );
Size aPixSize = LogicToPixel( rSize );
- Size aPageSize = PixelToLogic( aPixSize, aMap100thMM );
+ Size aPageSize = PixelToLogic( aPixSize, MAP_100TH_MM );
if ( (maJobSetup.ImplGetConstData()->mePaperFormat != PAPER_USER) ||
(maJobSetup.ImplGetConstData()->mnPaperWidth != aPageSize.Width()) ||
(maJobSetup.ImplGetConstData()->mnPaperHeight != aPageSize.Height()) )
@@ -1150,15 +1114,6 @@ BOOL Printer::SetPaperSizeUser( const Size& rSize )
return TRUE;
}
-
-// -----------------------------------------------------------------------
-
-static const vcl::PaperInfo& ImplGetEmptyPaper()
-{
- static vcl::PaperInfo aInfo;
- return aInfo;
-}
-
// -----------------------------------------------------------------------
int Printer::GetPaperInfoCount() const
@@ -1172,7 +1127,7 @@ int Printer::GetPaperInfoCount() const
// -----------------------------------------------------------------------
-const vcl::PaperInfo& Printer::GetPaperInfo( int nPaper ) const
+const PaperInfo& Printer::GetPaperInfo( int nPaper ) const
{
if( ! mpInfoPrinter )
return ImplGetEmptyPaper();
@@ -1185,17 +1140,6 @@ const vcl::PaperInfo& Printer::GetPaperInfo( int nPaper ) const
// -----------------------------------------------------------------------
-BOOL Printer::SetPaperFromInfo( const vcl::PaperInfo& rInfo )
-{
- MapMode aMap( MAP_MM );
- Size aSize( rInfo.m_nPaperWidth, rInfo.m_nPaperHeight );
- aSize = LogicToPixel( aSize, aMap );
- aSize = PixelToLogic( aSize );
- return SetPaperSizeUser( aSize );
-}
-
-// -----------------------------------------------------------------------
-
DuplexMode Printer::GetDuplexMode() const
{
return mpInfoPrinter ? mpInfoPrinter->GetDuplexMode( maJobSetup.ImplGetConstData() ) : DUPLEX_UNKNOWN;
@@ -1210,38 +1154,6 @@ int Printer::GetLandscapeAngle() const
// -----------------------------------------------------------------------
-const vcl::PaperInfo& Printer::GetCurrentPaperInfo() const
-{
- if( ! mpInfoPrinter )
- return ImplGetEmptyPaper();
- if( ! mpInfoPrinter->m_bPapersInit )
- mpInfoPrinter->InitPaperFormats( maJobSetup.ImplGetConstData() );
- if( mpInfoPrinter->m_aPaperFormats.empty() )
- return ImplGetEmptyPaper();
-
- MapMode aMap( MAP_MM );
- Size aSize = PixelToLogic( GetPaperSizePixel(), aMap );
- int nMatch = -1;
- long nDelta = 0;
- for( unsigned int i = 0; i < mpInfoPrinter->m_aPaperFormats.size(); i++ )
- {
- long nW = mpInfoPrinter->m_aPaperFormats[i].m_nPaperWidth;
- long nH = mpInfoPrinter->m_aPaperFormats[i].m_nPaperHeight;
- if( nW >= (aSize.Width()-1) && nH >= (aSize.Height()-1) )
- {
- long nCurDelta = (nW - aSize.Width())*(nW - aSize.Width()) + (nH - aSize.Height() )*(nH - aSize.Height() );
- if( nMatch == -1 || nCurDelta < nDelta )
- {
- nMatch = i;
- nDelta = nCurDelta;
- }
- }
- }
- return nMatch != -1 ? mpInfoPrinter->m_aPaperFormats[nMatch] : ImplGetEmptyPaper();
-}
-
-// -----------------------------------------------------------------------
-
Paper Printer::GetPaper() const
{
return maJobSetup.ImplGetConstData()->mePaperFormat;
diff --git a/vcl/source/glyphs/gcach_ftyp.cxx b/vcl/source/glyphs/gcach_ftyp.cxx
index d149ee26284f..591557eaa091 100644
--- a/vcl/source/glyphs/gcach_ftyp.cxx
+++ b/vcl/source/glyphs/gcach_ftyp.cxx
@@ -1058,7 +1058,7 @@ static inline void SplitGlyphFlags( const FreetypeServerFont& rFont, int& nGlyph
// -----------------------------------------------------------------------
int FreetypeServerFont::ApplyGlyphTransform( int nGlyphFlags,
- FT_GlyphRec_* pGlyphFT, bool bForBitmapProcessing ) const
+ FT_Glyph pGlyphFT, bool bForBitmapProcessing ) const
{
int nAngle = GetFontSelData().mnOrientation;
// shortcut most common case
@@ -1130,9 +1130,9 @@ int FreetypeServerFont::ApplyGlyphTransform( int nGlyphFlags,
else
{
// FT<=2005 ignores transforms for bitmaps, so do it manually
- FT_BitmapGlyph& rBmpGlyphFT = reinterpret_cast<FT_BitmapGlyph&>(pGlyphFT);
- rBmpGlyphFT->left += (aVector.x + 32) >> 6;
- rBmpGlyphFT->top += (aVector.y + 32) >> 6;
+ FT_BitmapGlyph pBmpGlyphFT = reinterpret_cast<FT_BitmapGlyph>(pGlyphFT);
+ pBmpGlyphFT->left += (aVector.x + 32) >> 6;
+ pBmpGlyphFT->top += (aVector.y + 32) >> 6;
}
return nAngle;
@@ -1440,12 +1440,12 @@ bool FreetypeServerFont::GetGlyphBitmap1( int nGlyphIndex, RawBitmap& rRawBitmap
}
}
- const FT_BitmapGlyph& rBmpGlyphFT = reinterpret_cast<const FT_BitmapGlyph&>(pGlyphFT);
+ const FT_BitmapGlyph pBmpGlyphFT = reinterpret_cast<const FT_BitmapGlyph>(pGlyphFT);
// NOTE: autohinting in FT<=2.0.2 miscalculates the offsets below by +-1
- rRawBitmap.mnXOffset = +rBmpGlyphFT->left;
- rRawBitmap.mnYOffset = -rBmpGlyphFT->top;
+ rRawBitmap.mnXOffset = +pBmpGlyphFT->left;
+ rRawBitmap.mnYOffset = -pBmpGlyphFT->top;
- const FT_Bitmap& rBitmapFT = rBmpGlyphFT->bitmap;
+ const FT_Bitmap& rBitmapFT = pBmpGlyphFT->bitmap;
rRawBitmap.mnHeight = rBitmapFT.rows;
rRawBitmap.mnBitCount = 1;
if( mbArtBold && !pFTEmbolden )
@@ -1595,11 +1595,11 @@ bool FreetypeServerFont::GetGlyphBitmap8( int nGlyphIndex, RawBitmap& rRawBitmap
}
}
- const FT_BitmapGlyph& rBmpGlyphFT = reinterpret_cast<const FT_BitmapGlyph&>(pGlyphFT);
- rRawBitmap.mnXOffset = +rBmpGlyphFT->left;
- rRawBitmap.mnYOffset = -rBmpGlyphFT->top;
+ const FT_BitmapGlyph pBmpGlyphFT = reinterpret_cast<const FT_BitmapGlyph>(pGlyphFT);
+ rRawBitmap.mnXOffset = +pBmpGlyphFT->left;
+ rRawBitmap.mnYOffset = -pBmpGlyphFT->top;
- const FT_Bitmap& rBitmapFT = rBmpGlyphFT->bitmap;
+ const FT_Bitmap& rBitmapFT = pBmpGlyphFT->bitmap;
rRawBitmap.mnHeight = rBitmapFT.rows;
rRawBitmap.mnWidth = rBitmapFT.width;
rRawBitmap.mnBitCount = 8;
diff --git a/vcl/source/window/accel.cxx b/vcl/source/window/accel.cxx
index 7dfc70c0fe32..34e831d2daf8 100644
--- a/vcl/source/window/accel.cxx
+++ b/vcl/source/window/accel.cxx
@@ -231,7 +231,8 @@ void Accelerator::ImplInsertAccel( USHORT nItemId, const KeyCode& rKeyCode,
USHORT nCode1;
USHORT nCode2;
USHORT nCode3;
- ImplGetKeyCode( rKeyCode.GetFunction(), nCode1, nCode2, nCode3 );
+ USHORT nCode4;
+ ImplGetKeyCode( rKeyCode.GetFunction(), nCode1, nCode2, nCode3, nCode4 );
if ( nCode1 )
ImplInsertAccel( nItemId, KeyCode( nCode1, nCode1 ), bEnable, pAutoAccel );
if ( nCode2 )
diff --git a/vcl/source/window/dlgctrl.cxx b/vcl/source/window/dlgctrl.cxx
index 1e9a3350c88e..392c2ceaa478 100644
--- a/vcl/source/window/dlgctrl.cxx
+++ b/vcl/source/window/dlgctrl.cxx
@@ -1166,7 +1166,7 @@ KeyEvent Window::GetActivationKey() const
nCode = KEY_A + (nAccel-'A');
else if( nAccel >= '0' && nAccel <= '9' )
nCode = KEY_0 + (nAccel-'0');
- KeyCode aKeyCode( nCode, FALSE, FALSE, TRUE );
+ KeyCode aKeyCode( nCode, FALSE, FALSE, TRUE, FALSE );
aKeyEvent = KeyEvent( nAccel, aKeyCode );
}
return aKeyEvent;
diff --git a/vcl/source/window/keycod.cxx b/vcl/source/window/keycod.cxx
index 042eac37aa41..21030b9422fb 100644
--- a/vcl/source/window/keycod.cxx
+++ b/vcl/source/window/keycod.cxx
@@ -49,38 +49,39 @@
// =======================================================================
-static USHORT aImplKeyFuncTab[(KEYFUNC_FRONT+1)*3] =
+static USHORT aImplKeyFuncTab[(KEYFUNC_FRONT+1)*4] =
{
- 0, 0, 0, // KEYFUNC_DONTKNOW
- KEY_N | KEY_MOD1, 0, 0, // KEYFUNC_NEW
- KEY_O | KEY_MOD1, KEY_OPEN, 0, // KEYFUNC_OPEN
- KEY_S | KEY_MOD1, 0, 0, // KEYFUNC_SAVE
- 0, 0, 0, // KEYFUNC_SAVEAS
- KEY_P | KEY_MOD1, 0, 0, // KEYFUNC_PRINT
- KEY_W | KEY_MOD1, KEY_F4 | KEY_MOD1, 0, // KEYFUNC_CLOSE
- KEY_Q | KEY_MOD1, KEY_F4 | KEY_MOD2, 0, // KEYFUNC_QUIT
- KEY_X | KEY_MOD1, KEY_DELETE | KEY_SHIFT, KEY_CUT, // KEYFUNC_CUT
- KEY_C | KEY_MOD1, KEY_INSERT | KEY_MOD1, KEY_COPY, // KEYFUNC_COPY
- KEY_V | KEY_MOD1, KEY_INSERT | KEY_SHIFT, KEY_PASTE, // KEYFUNC_PASTE
- KEY_Z | KEY_MOD1, KEY_BACKSPACE | KEY_MOD2, KEY_UNDO, // KEYFUNC_UNDO
- 0, 0, 0, // KEYFUNC_REDO
- KEY_DELETE, 0, 0, // KEYFUNC_DELETE
- KEY_REPEAT, 0, 0, // KEYFUNC_REPEAT
- KEY_F | KEY_MOD1, KEY_FIND, 0, // KEYFUNC_FIND
- KEY_F | KEY_SHIFT | KEY_MOD1, KEY_SHIFT | KEY_FIND, 0, // KEYFUNC_FINDBACKWARD
- KEY_RETURN | KEY_MOD2, 0, 0, // KEYFUNC_PROPERTIES
- 0, 0, 0 // KEYFUNC_FRONT
+ 0, 0, 0, 0, // KEYFUNC_DONTKNOW
+ KEY_N | KEY_MOD1, 0, 0, 0, // KEYFUNC_NEW
+ KEY_O | KEY_MOD1, KEY_OPEN, 0, 0, // KEYFUNC_OPEN
+ KEY_S | KEY_MOD1, 0, 0, 0, // KEYFUNC_SAVE
+ 0, 0, 0, 0, // KEYFUNC_SAVEAS
+ KEY_P | KEY_MOD1, 0, 0, 0, // KEYFUNC_PRINT
+ KEY_W | KEY_MOD1, KEY_F4 | KEY_MOD1, 0, 0, // KEYFUNC_CLOSE
+ KEY_Q | KEY_MOD1, KEY_F4 | KEY_MOD2, 0, 0, // KEYFUNC_QUIT
+ KEY_X | KEY_MOD1, KEY_DELETE | KEY_SHIFT, KEY_CUT, 0, // KEYFUNC_CUT
+ KEY_C | KEY_MOD1, KEY_INSERT | KEY_MOD1, KEY_COPY, 0, // KEYFUNC_COPY
+ KEY_V | KEY_MOD1, KEY_INSERT | KEY_SHIFT, KEY_PASTE, 0, // KEYFUNC_PASTE
+ KEY_Z | KEY_MOD1, KEY_BACKSPACE | KEY_MOD2, KEY_UNDO, 0, // KEYFUNC_UNDO
+ 0, 0, 0, 0, // KEYFUNC_REDO
+ KEY_DELETE, 0, 0, 0, // KEYFUNC_DELETE
+ KEY_REPEAT, 0, 0, 0, // KEYFUNC_REPEAT
+ KEY_F | KEY_MOD1, KEY_FIND, 0, 0, // KEYFUNC_FIND
+ KEY_F | KEY_SHIFT | KEY_MOD1, KEY_SHIFT | KEY_FIND, 0, 0, // KEYFUNC_FINDBACKWARD
+ KEY_RETURN | KEY_MOD2, 0, 0, 0, // KEYFUNC_PROPERTIES
+ 0, 0, 0, 0 // KEYFUNC_FRONT
};
// -----------------------------------------------------------------------
-void ImplGetKeyCode( KeyFuncType eFunc, USHORT& rCode1, USHORT& rCode2, USHORT& rCode3 )
+void ImplGetKeyCode( KeyFuncType eFunc, USHORT& rCode1, USHORT& rCode2, USHORT& rCode3, USHORT& rCode4 )
{
USHORT nIndex = (USHORT)eFunc;
- nIndex *= 3;
+ nIndex *= 4;
rCode1 = aImplKeyFuncTab[nIndex];
rCode2 = aImplKeyFuncTab[nIndex+1];
rCode3 = aImplKeyFuncTab[nIndex+2];
+ rCode4 = aImplKeyFuncTab[nIndex+3];
}
// =======================================================================
@@ -88,7 +89,7 @@ void ImplGetKeyCode( KeyFuncType eFunc, USHORT& rCode1, USHORT& rCode2, USHORT&
KeyCode::KeyCode( KeyFuncType eFunction )
{
USHORT nDummy;
- ImplGetKeyCode( eFunction, nCode, nDummy, nDummy );
+ ImplGetKeyCode( eFunction, nCode, nDummy, nDummy, nDummy );
eFunc = eFunction;
}
@@ -111,7 +112,7 @@ KeyCode::KeyCode( const ResId& rResId )
if ( eFunc != KEYFUNC_DONTKNOW )
{
USHORT nDummy;
- ImplGetKeyCode( eFunc, nCode, nDummy, nDummy );
+ ImplGetKeyCode( eFunc, nCode, nDummy, nDummy, nDummy );
}
else
nCode = sal::static_int_cast<USHORT>(nKeyCode | nModifier);
@@ -151,8 +152,9 @@ KeyFuncType KeyCode::GetFunction() const
USHORT nKeyCode1;
USHORT nKeyCode2;
USHORT nKeyCode3;
- ImplGetKeyCode( (KeyFuncType)i, nKeyCode1, nKeyCode2, nKeyCode3 );
- if ( (nCompCode == nKeyCode1) || (nCompCode == nKeyCode2) || (nCompCode == nKeyCode3) )
+ USHORT nKeyCode4;
+ ImplGetKeyCode( (KeyFuncType)i, nKeyCode1, nKeyCode2, nKeyCode3, nKeyCode4 );
+ if ( (nCompCode == nKeyCode1) || (nCompCode == nKeyCode2) || (nCompCode == nKeyCode3) || (nCompCode == nKeyCode4) )
return (KeyFuncType)i;
}
}
diff --git a/vcl/source/window/keyevent.cxx b/vcl/source/window/keyevent.cxx
index e3a92194040f..e8474c6efa5d 100644
--- a/vcl/source/window/keyevent.cxx
+++ b/vcl/source/window/keyevent.cxx
@@ -49,7 +49,8 @@ KeyEvent::KeyEvent( const ::com::sun::star::awt::KeyEvent& rEvent )
rEvent.KeyCode,
(rEvent.Modifiers & ::com::sun::star::awt::KeyModifier::SHIFT) != 0,
(rEvent.Modifiers & ::com::sun::star::awt::KeyModifier::MOD1) != 0,
- (rEvent.Modifiers & ::com::sun::star::awt::KeyModifier::MOD2) != 0 );
+ (rEvent.Modifiers & ::com::sun::star::awt::KeyModifier::MOD2) != 0,
+ (rEvent.Modifiers & ::com::sun::star::awt::KeyModifier::MOD3) != 0);
mnRepeat = 0;
mnCharCode = rEvent.KeyChar;
}
@@ -64,6 +65,8 @@ void KeyEvent::InitKeyEvent( ::com::sun::star::awt::KeyEvent& rEvent ) const
rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD1;
if( GetKeyCode().IsMod2() )
rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD2;
+ if( GetKeyCode().IsMod3() )
+ rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD3;
rEvent.KeyCode = GetKeyCode().GetCode();
rEvent.KeyChar = GetCharCode();
diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index adbc2a8de06e..ccf75dbd59b3 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -2487,23 +2487,8 @@ static void ImplPaintCheckBackground( Window* i_pWindow, const Rectangle& i_rRec
if( ! bNativeOk )
{
const StyleSettings& rSettings = i_pWindow->GetSettings().GetStyleSettings();
- if( i_bHighlight )
- {
- i_pWindow->Push( PUSH_ALL );
- Color aCol = rSettings.GetMenuHighlightTextColor();
- i_pWindow->SetFillColor( rSettings.GetMenuHighlightTextColor() );
- if( aCol.IsDark() )
- aCol.IncreaseLuminance( 128 );
- else
- aCol.DecreaseLuminance( 128 );
- i_pWindow->SetLineColor( aCol );
- Polygon aPoly( i_rRect );
- PolyPolygon aPolyPoly( aPoly );
- i_pWindow->DrawTransparent( aPolyPoly, 20 );
- i_pWindow->Pop();
- }
- else
- i_pWindow->DrawSelectionBackground( i_rRect, 1, FALSE, TRUE, FALSE );
+ Color aColor( i_bHighlight ? rSettings.GetMenuHighlightTextColor() : rSettings.GetHighlightColor() );
+ i_pWindow->DrawSelectionBackground( i_rRect, 0, i_bHighlight, TRUE, FALSE, 2, NULL, &aColor );
}
}
@@ -3495,11 +3480,6 @@ USHORT PopupMenu::Execute( Window* pExecWindow, const Rectangle& rRect, USHORT n
USHORT PopupMenu::ImplExecute( Window* pW, const Rectangle& rRect, ULONG nPopupModeFlags, Menu* pSFrom, BOOL bPreSelectFirst )
{
-
- // #59614# Mit TH abgesprochen dass die ASSERTION raus kommt,
- // weil es evtl. legitim ist...
-// DBG_ASSERT( !PopupMenu::IsInExecute() || pSFrom, "PopupMenu::Execute() called in PopupMenu::Execute()" );
-
if ( !pSFrom && ( PopupMenu::IsInExecute() || !GetItemCount() ) )
return 0;
@@ -3675,8 +3655,16 @@ USHORT PopupMenu::ImplExecute( Window* pW, const Rectangle& rRect, ULONG nPopupM
{
pWin->ImplAddDel( &aDelData );
+ ImplDelData aModalWinDel;
+ pW->ImplAddDel( &aModalWinDel );
+ pW->ImplIncModalCount();
+
pWin->Execute();
+ DBG_ASSERT( ! aModalWinDel.IsDead(), "window for popup died, modal count incorrect !" );
+ if( ! aModalWinDel.IsDead() )
+ pW->ImplDecModalCount();
+
if ( !aDelData.IsDelete() )
pWin->ImplRemoveDel( &aDelData );
else
@@ -5056,11 +5044,11 @@ MenuBarWindow::MenuBarWindow( Window* pParent ) :
if( pResMgr )
{
- Bitmap aBitmap( ResId( SV_RESID_BITMAP_CLOSEDOC, *pResMgr ) );
- Bitmap aBitmapHC( ResId( SV_RESID_BITMAP_CLOSEDOCHC, *pResMgr ) );
+ BitmapEx aBitmap( ResId( SV_RESID_BITMAP_CLOSEDOC, *pResMgr ) );
+ BitmapEx aBitmapHC( ResId( SV_RESID_BITMAP_CLOSEDOCHC, *pResMgr ) );
- aCloser.maImage = Image( aBitmap, Color( COL_LIGHTMAGENTA ) );
- aCloser.maImageHC = Image( aBitmapHC, Color( COL_LIGHTMAGENTA ) );
+ aCloser.maImage = Image( aBitmap );
+ aCloser.maImageHC = Image( aBitmapHC );
aCloser.SetOutStyle( TOOLBOX_STYLE_FLAT );
aCloser.SetBackground();
diff --git a/vcl/source/window/mouseevent.cxx b/vcl/source/window/mouseevent.cxx
index 90ca259cc425..a95b90f5e1d0 100644
--- a/vcl/source/window/mouseevent.cxx
+++ b/vcl/source/window/mouseevent.cxx
@@ -52,6 +52,8 @@ MouseEvent::MouseEvent( const ::com::sun::star::awt::MouseEvent& rEvent )
mnCode |= KEY_MOD1;
if( (rEvent.Modifiers & ::com::sun::star::awt::KeyModifier::MOD2) != 0 )
mnCode |= KEY_MOD2;
+ if( (rEvent.Modifiers & ::com::sun::star::awt::KeyModifier::MOD3) != 0 )
+ mnCode |= KEY_MOD3;
}
if( rEvent.Buttons )
@@ -75,6 +77,8 @@ void MouseEvent::InitMouseEvent( ::com::sun::star::awt::MouseEvent& rEvent ) con
rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD1;
if ( IsMod2() )
rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD2;
+ if ( IsMod3() )
+ rEvent.Modifiers |= ::com::sun::star::awt::KeyModifier::MOD3;
rEvent.Buttons = 0;
if ( IsLeft() )
diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx
index bfa456757272..bb1f428c6626 100644
--- a/vcl/source/window/toolbox.cxx
+++ b/vcl/source/window/toolbox.cxx
@@ -1703,6 +1703,8 @@ void ToolBox::ImplInitSettings( BOOL bFont,
SetBackground( aColor );
SetPaintTransparent( FALSE );
SetParentClipMode( 0 );
+
+ ImplUpdateImageList();
}
}
}
@@ -3376,7 +3378,7 @@ static void ImplDrawButton( ToolBox* pThis, const Rectangle &rRect, USHORT highl
}
if( !bNativeOk )
- pThis->DrawSelectionBackground( rRect, bIsWindow ? 3 : highlight, bChecked, TRUE, bIsWindow );
+ pThis->DrawSelectionBackground( rRect, bIsWindow ? 3 : highlight, bChecked, TRUE, bIsWindow, 2, NULL, NULL );
}
void ToolBox::ImplDrawItem( USHORT nPos, BOOL bHighlight, BOOL bPaint, BOOL bLayout )
@@ -5053,7 +5055,7 @@ void ToolBox::StateChanged( StateChangedType nType )
}
else if ( nType == STATE_CHANGE_CONTROLBACKGROUND )
{
- ImplInitSettings( FALSE, FALSE, TRUE );
+ ImplInitSettings( FALSE, FALSE, TRUE ); // font, foreground, background
Invalidate();
}
}
diff --git a/vcl/source/window/toolbox2.cxx b/vcl/source/window/toolbox2.cxx
index 9e1a6671460b..7fa8f76e1586 100644
--- a/vcl/source/window/toolbox2.cxx
+++ b/vcl/source/window/toolbox2.cxx
@@ -49,6 +49,9 @@
#include <vcl/unohelp.hxx>
#include <unotools/confignode.hxx>
+#include <vcl/ImageListProvider.hxx>
+#include <com/sun/star/lang/IllegalArgumentException.hpp>
+
using namespace vcl;
using namespace rtl;
@@ -58,7 +61,10 @@ using namespace rtl;
// -----------------------------------------------------------------------
-ImplToolBoxPrivateData::ImplToolBoxPrivateData() : m_pLayoutData( NULL )
+ImplToolBoxPrivateData::ImplToolBoxPrivateData() :
+ m_pLayoutData( NULL ),
+ mpImageListProvider( NULL ),
+ meImageListType( vcl::IMAGELISTTYPE_UNKNOWN )
{
meButtonSize = TOOLBOX_BUTTONSIZE_DONTCARE;
mpMenu = new PopupMenu();
@@ -69,6 +75,7 @@ ImplToolBoxPrivateData::ImplToolBoxPrivateData() : m_pLayoutData( NULL )
maMenubuttonItem.meState = STATE_NOCHECK;
mnMenuButtonWidth = TB_MENUBUTTON_SIZE;
+
mbIsLocked = FALSE;
mbNativeButtons = FALSE;
mbIsPaintLocked = FALSE;
@@ -2402,4 +2409,29 @@ void ToolBox::WillUsePopupMode( BOOL b )
mpData->mbWillUsePopupMode = b;
}
+void ToolBox::ImplUpdateImageList()
+{
+ if (mpData->mpImageListProvider != NULL)
+ {
+ BOOL bIsDark = GetSettings().GetStyleSettings().GetFaceColor().IsDark();
+ try
+ {
+ ImageListType eType = bIsDark ? vcl::HIGHCONTRAST_YES : vcl::HIGHCONTRAST_NO;
+
+ if (eType != mpData->meImageListType)
+ {
+ vcl::IImageListProvider* pImageListProvider = mpData->mpImageListProvider;
+ SetImageList( pImageListProvider->getImageList(eType) );
+ mpData->meImageListType = eType;
+ }
+ }
+ catch (com::sun::star::lang::IllegalArgumentException &) {}
+ }
+}
+
+void ToolBox::SetImageListProvider(vcl::IImageListProvider* _pProvider)
+{
+ mpData->mpImageListProvider = _pProvider;
+ ImplUpdateImageList();
+}
// -----------------------------------------------------------------------
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index ec16b65cf41f..5333d20d4306 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -497,24 +497,6 @@ void Window::ImplUpdateGlobalSettings( AllSettings& rSettings, BOOL bCallHdl )
}
}
- // Detect if images in menus are allowed or not
- {
- sal_Bool bTmp = sal_False, bUseImagesInMenus = sal_True;
- utl::OConfigurationNode aNode = utl::OConfigurationTreeRoot::tryCreateWithServiceFactory(
- vcl::unohelper::GetMultiServiceFactory(),
- OUString::createFromAscii( "org.openoffice.Office.Common/View/Menu" ) ); // note: case sensisitive !
- if ( aNode.isValid() )
- {
- ::com::sun::star::uno::Any aValue = aNode.getNodeValue( OUString::createFromAscii( "ShowIconsInMenues" ) );
- if( aValue >>= bTmp )
- bUseImagesInMenus = bTmp;
- }
-
- aStyleSettings = rSettings.GetStyleSettings();
- aStyleSettings.SetUseImagesInMenus( bUseImagesInMenus );
- rSettings.SetStyleSettings( aStyleSettings );
- }
-
#ifdef DBG_UTIL
// Evt. AppFont auf Fett schalten, damit man feststellen kann,
// ob fuer die Texte auf anderen Systemen genuegend Platz
@@ -2541,12 +2523,15 @@ void Window::ImplInvalidateFrameRegion( const Region* pRegion, USHORT nFlags )
if ( !ImplIsOverlapWindow() )
{
Window* pTempWindow = this;
+ USHORT nTranspPaint = IsPaintTransparent() ? IMPL_PAINT_PAINT : 0;
do
{
pTempWindow = pTempWindow->ImplGetParent();
if ( pTempWindow->mpWindowImpl->mnPaintFlags & IMPL_PAINT_PAINTCHILDS )
break;
- pTempWindow->mpWindowImpl->mnPaintFlags |= IMPL_PAINT_PAINTCHILDS;
+ pTempWindow->mpWindowImpl->mnPaintFlags |= IMPL_PAINT_PAINTCHILDS | nTranspPaint;
+ if( ! pTempWindow->IsPaintTransparent() )
+ nTranspPaint = 0;
}
while ( !pTempWindow->ImplIsOverlapWindow() );
}
@@ -5859,18 +5844,15 @@ void Window::UpdateSettings( const AllSettings& rSettings, BOOL bChild )
ImplInitResolutionSettings();
/* #i73785#
- * do not overwrite a NoWheelActionWithoutFocus with false
- * this looks kind of a hack, but NoWheelActionWithoutFocus
+ * do not overwrite a WheelBehavior with false
+ * this looks kind of a hack, but WheelBehavior
* is always a local change, not a system property,
- * so we can spare all our users the hassel of reacting on
+ * so we can spare all our users the hassle of reacting on
* this in their respective DataChanged.
*/
- if( aOldSettings.GetMouseSettings().GetNoWheelActionWithoutFocus() )
- {
- MouseSettings aSet( maSettings.GetMouseSettings() );
- aSet.SetNoWheelActionWithoutFocus( TRUE );
- maSettings.SetMouseSettings( aSet );
- }
+ MouseSettings aSet( maSettings.GetMouseSettings() );
+ aSet.SetWheelBehavior( aOldSettings.GetMouseSettings().GetWheelBehavior() );
+ maSettings.SetMouseSettings( aSet );
if( (nChangeFlags & SETTINGS_STYLE) && IsBackground() )
{
@@ -6239,6 +6221,15 @@ void Window::SetParent( Window* pNewParent )
pSysWin->GetTaskPaneList()->RemoveWindow( this );
}
}
+ // remove ownerdraw decorated windows from list in the top-most frame window
+ if( (GetStyle() & WB_OWNERDRAWDECORATION) && mpWindowImpl->mbFrame )
+ {
+ ::std::vector< Window* >& rList = ImplGetOwnerDrawList();
+ ::std::vector< Window* >::iterator p;
+ p = ::std::find( rList.begin(), rList.end(), this );
+ if( p != rList.end() )
+ rList.erase( p );
+ }
ImplSetFrameParent( pNewParent );
@@ -6368,6 +6359,9 @@ void Window::SetParent( Window* pNewParent )
if( bChangeTaskPaneList )
pNewSysWin->GetTaskPaneList()->AddWindow( this );
+ if( (GetStyle() & WB_OWNERDRAWDECORATION) && mpWindowImpl->mbFrame )
+ ImplGetOwnerDrawList().push_back( this );
+
if ( bVisible )
Show( TRUE, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
}
@@ -6526,7 +6520,10 @@ void Window::Show( BOOL bVisible, USHORT nFlags )
if ( !mpWindowImpl->mbFrame )
{
- ImplInvalidate( NULL, INVALIDATE_NOTRANSPARENT | INVALIDATE_CHILDREN );
+ USHORT nInvalidateFlags = INVALIDATE_CHILDREN;
+ if( ! IsPaintTransparent() )
+ nInvalidateFlags |= INVALIDATE_NOTRANSPARENT;
+ ImplInvalidate( NULL, nInvalidateFlags );
ImplGenerateMouseMove();
}
}
@@ -9252,19 +9249,34 @@ BOOL Window::ImplGetCurrentBackgroundColor( Color& rCol )
void Window::DrawSelectionBackground( const Rectangle& rRect, USHORT highlight, BOOL bChecked, BOOL bDrawBorder, BOOL bDrawExtBorderOnly )
{
- DrawSelectionBackground( rRect, highlight, bChecked, bDrawBorder, bDrawExtBorderOnly, NULL );
+ DrawSelectionBackground( rRect, highlight, bChecked, bDrawBorder, bDrawExtBorderOnly, 0, NULL, NULL );
}
void Window::DrawSelectionBackground( const Rectangle& rRect, USHORT highlight, BOOL bChecked, BOOL bDrawBorder, BOOL bDrawExtBorderOnly, Color* pSelectionTextColor )
{
+ DrawSelectionBackground( rRect, highlight, bChecked, bDrawBorder, bDrawExtBorderOnly, 0, pSelectionTextColor, NULL );
+}
+
+void Window::DrawSelectionBackground( const Rectangle& rRect,
+ USHORT highlight,
+ BOOL bChecked,
+ BOOL bDrawBorder,
+ BOOL bDrawExtBorderOnly,
+ long nCornerRadius,
+ Color* pSelectionTextColor,
+ Color* pPaintColor
+ )
+{
if( rRect.IsEmpty() )
return;
+ bool bRoundEdges = nCornerRadius > 0;
+
const StyleSettings& rStyles = GetSettings().GetStyleSettings();
// colors used for item highlighting
- Color aSelectionBorderCol( rStyles.GetHighlightColor() );
+ Color aSelectionBorderCol( pPaintColor ? *pPaintColor : rStyles.GetHighlightColor() );
Color aSelectionFillCol( aSelectionBorderCol );
BOOL bDark = rStyles.GetFaceColor().IsDark();
@@ -9273,7 +9285,7 @@ void Window::DrawSelectionBackground( const Rectangle& rRect, USHORT highlight,
int c1 = aSelectionBorderCol.GetLuminance();
int c2 = GetDisplayBackground().GetColor().GetLuminance();
- if( !bDark && !bBright && abs( c2-c1 ) < 75 )
+ if( !bDark && !bBright && abs( c2-c1 ) < (pPaintColor ? 40 : 75) )
{
// constrast too low
USHORT h,s,b;
@@ -9284,6 +9296,14 @@ void Window::DrawSelectionBackground( const Rectangle& rRect, USHORT highlight,
aSelectionBorderCol = aSelectionFillCol;
}
+ if( bRoundEdges )
+ {
+ if( aSelectionBorderCol.IsDark() )
+ aSelectionBorderCol.IncreaseLuminance( 128 );
+ else
+ aSelectionBorderCol.DecreaseLuminance( 128 );
+ }
+
Rectangle aRect( rRect );
if( bDrawExtBorderOnly )
{
@@ -9306,7 +9326,7 @@ void Window::DrawSelectionBackground( const Rectangle& rRect, USHORT highlight,
if( bDark )
aSelectionFillCol = COL_BLACK;
else
- nPercent = 80; // just checked (light)
+ nPercent = bRoundEdges ? 90 : 80; // just checked (light)
}
else
{
@@ -9321,7 +9341,7 @@ void Window::DrawSelectionBackground( const Rectangle& rRect, USHORT highlight,
nPercent = 0;
}
else
- nPercent = 20; // selected, pressed or checked ( very dark )
+ nPercent = bRoundEdges ? 50 : 20; // selected, pressed or checked ( very dark )
}
else if( bChecked || highlight == 1 )
{
@@ -9334,7 +9354,7 @@ void Window::DrawSelectionBackground( const Rectangle& rRect, USHORT highlight,
nPercent = 0;
}
else
- nPercent = 35; // selected, pressed or checked ( very dark )
+ nPercent = bRoundEdges ? 70 : 35; // selected, pressed or checked ( very dark )
}
else
{
@@ -9350,7 +9370,7 @@ void Window::DrawSelectionBackground( const Rectangle& rRect, USHORT highlight,
nPercent = 0;
}
else
- nPercent = 70; // selected ( dark )
+ nPercent = bRoundEdges ? 80 : 70; // selected ( dark )
}
}
@@ -9380,9 +9400,18 @@ void Window::DrawSelectionBackground( const Rectangle& rRect, USHORT highlight,
}
else
{
- Polygon aPoly( aRect );
- PolyPolygon aPolyPoly( aPoly );
- DrawTransparent( aPolyPoly, nPercent );
+ if( bRoundEdges )
+ {
+ Polygon aPoly( aRect, nCornerRadius, nCornerRadius );
+ PolyPolygon aPolyPoly( aPoly );
+ DrawTransparent( aPolyPoly, nPercent );
+ }
+ else
+ {
+ Polygon aPoly( aRect );
+ PolyPolygon aPolyPoly( aPoly );
+ DrawTransparent( aPolyPoly, nPercent );
+ }
}
SetFillColor( oldFillCol );
diff --git a/vcl/unx/gtk/app/gtkdata.cxx b/vcl/unx/gtk/app/gtkdata.cxx
index 0a738f829cc8..b55798608b37 100644
--- a/vcl/unx/gtk/app/gtkdata.cxx
+++ b/vcl/unx/gtk/app/gtkdata.cxx
@@ -126,14 +126,18 @@ void signalScreenSizeChanged( GdkScreen* pScreen, gpointer data )
pDisp->screenSizeChanged( pScreen );
}
+void signalMonitorsChanged( GdkScreen* pScreen, gpointer data )
+{
+ GtkSalDisplay* pDisp = (GtkSalDisplay*)data;
+ pDisp->monitorsChanged( pScreen );
+}
+
}
GdkFilterReturn GtkSalDisplay::filterGdkEvent( GdkXEvent* sys_event,
GdkEvent*,
gpointer data )
{
- GTK_YIELD_GRAB();
-
GdkFilterReturn aFilterReturn = GDK_FILTER_CONTINUE;
XEvent *pEvent = (XEvent *)sys_event;
@@ -144,6 +148,8 @@ GdkFilterReturn GtkSalDisplay::filterGdkEvent( GdkXEvent* sys_event,
CallEventCallback( pEvent, sizeof( XEvent ) ) )
aFilterReturn = GDK_FILTER_REMOVE;
+ GTK_YIELD_GRAB();
+
if (pDisplay->GetDisplay() == pEvent->xany.display )
{
// #i53471# gtk has no callback mechanism that lets us be notified
@@ -192,6 +198,8 @@ void GtkSalDisplay::screenSizeChanged( GdkScreen* pScreen )
{
rSD.m_aSize = Size( gdk_screen_get_width( pScreen ),
gdk_screen_get_height( pScreen ) );
+ if( ! m_aFrames.empty() )
+ m_aFrames.front()->CallCallback( SALEVENT_DISPLAYCHANGED, 0 );
}
}
else
@@ -201,6 +209,36 @@ void GtkSalDisplay::screenSizeChanged( GdkScreen* pScreen )
}
}
+void GtkSalDisplay::monitorsChanged( GdkScreen* pScreen )
+{
+ if( pScreen )
+ {
+ if( gdk_display_get_n_screens(m_pGdkDisplay) == 1 )
+ {
+ int nScreen = gdk_screen_get_number( pScreen );
+ if( nScreen == m_nDefaultScreen ) //To-Do, make m_aXineramaScreens a per-screen thing ?
+ {
+ gint nMonitors = gdk_screen_get_n_monitors(pScreen);
+ m_aXineramaScreens = std::vector<Rectangle>();
+ for (gint i = 0; i < nMonitors; ++i)
+ {
+ GdkRectangle dest;
+ gdk_screen_get_monitor_geometry(pScreen, i, &dest);
+ m_aXineramaScreens.push_back( Rectangle( Point(dest.x,
+ dest.y ), Size( dest.width, dest.height ) ) );
+ }
+ m_bXinerama = m_aXineramaScreens.size() > 1;
+ if( ! m_aFrames.empty() )
+ m_aFrames.front()->CallCallback( SALEVENT_DISPLAYCHANGED, 0 );
+ }
+ else
+ {
+ DBG_ERROR( "monitors for non-default screen changed, extend-me" );
+ }
+ }
+ }
+}
+
void GtkSalDisplay::initScreen( int nScreen ) const
{
if( nScreen < 0 || nScreen >= static_cast<int>(m_aScreens.size()) )
@@ -626,7 +664,10 @@ void GtkXLib::Init()
{
GdkScreen *pScreen = gdk_display_get_screen( pGdkDisp, n );
if( pScreen )
+ {
g_signal_connect( G_OBJECT(pScreen), "size-changed", G_CALLBACK(signalScreenSizeChanged), m_pGtkSalDisplay );
+ g_signal_connect( G_OBJECT(pScreen), "monitors-changed", G_CALLBACK(signalMonitorsChanged), m_pGtkSalDisplay );
+ }
}
}
diff --git a/vcl/unx/gtk/app/gtkinst.cxx b/vcl/unx/gtk/app/gtkinst.cxx
index 2692177c765a..73b4432342bf 100644
--- a/vcl/unx/gtk/app/gtkinst.cxx
+++ b/vcl/unx/gtk/app/gtkinst.cxx
@@ -114,10 +114,9 @@ extern "C"
static bool hookLocks( oslModule pModule )
{
typedef void (*GdkLockFn) (GCallback enter_fn, GCallback leave_fn);
- rtl::OUString aSymbolName( RTL_CONSTASCII_USTRINGPARAM( "gdk_threads_set_lock_functions") );
GdkLockFn gdk_threads_set_lock_functions =
- (GdkLockFn) osl_getFunctionSymbol( pModule, aSymbolName.pData );
+ (GdkLockFn) osl_getAsciiFunctionSymbol( pModule, "gdk_threads_set_lock_functions" );
if ( !gdk_threads_set_lock_functions )
{
#if OSL_DEBUG_LEVEL > 1
diff --git a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
index 04d679d8d4f1..fdaa102c614b 100644
--- a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
@@ -96,6 +96,7 @@ struct NWFWidgetData
GtkWidget * gMenuItemMenuWidget;
GtkWidget * gMenuItemCheckMenuWidget;
GtkWidget * gMenuItemRadioMenuWidget;
+ GtkWidget * gImageMenuItem;
GtkWidget * gTooltipPopup;
GtkWidget * gProgressBar;
GtkWidget * gTreeView;
@@ -131,6 +132,7 @@ struct NWFWidgetData
gMenuItemMenuWidget( NULL ),
gMenuItemCheckMenuWidget( NULL ),
gMenuItemRadioMenuWidget( NULL ),
+ gImageMenuItem( NULL ),
gTooltipPopup( NULL ),
gProgressBar( NULL ),
gTreeView( NULL ),
@@ -452,6 +454,10 @@ void GtkData::deInitNWF( void )
gtk_widget_destroy( gWidgetData[i].gMenuWidget );
if( gWidgetData[i].gTooltipPopup )
gtk_widget_destroy( gWidgetData[i].gTooltipPopup );
+ delete gWidgetData[i].gCacheTabPages;
+ gWidgetData[i].gCacheTabPages = NULL;
+ delete gWidgetData[i].gCacheTabItems;
+ gWidgetData[i].gCacheTabItems = NULL;
delete gWidgetData[i].gNWPixmapCacheList;
gWidgetData[i].gNWPixmapCacheList = NULL;
}
@@ -3404,6 +3410,11 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
else
aStyleSet.SetCursorBlinkTime( STYLE_CURSOR_NOBLINKTIME );
+ gboolean showmenuicons = true;
+ pSettings = gtk_widget_get_settings( gWidgetData[m_nScreen].gImageMenuItem );
+ g_object_get( pSettings, "gtk-menu-images", &showmenuicons, (char *)NULL );
+ aStyleSet.SetUseImagesInMenus( showmenuicons );
+
// set scrollbar settings
gint slider_width = 14;
gint trough_border = 1;
@@ -3428,10 +3439,12 @@ void GtkSalGraphics::updateSettings( AllSettings& rSettings )
// FIXME: need some way of fetching toolbar icon size.
// aStyleSet.SetToolbarIconSize( STYLE_TOOLBAR_ICONSIZE_SMALL );
+ /* #i35482# do not override HC mode per force
// #i59364# high contrast mode
bool bHC = ( aStyleSet.GetFaceColor().IsDark() ||
aStyleSet.GetWindowColor().IsDark() );
aStyleSet.SetHighContrastMode( bHC );
+ */
// finally update the collected settings
rSettings.SetStyleSettings( aStyleSet );
@@ -3843,10 +3856,12 @@ static void NWEnsureGTKMenu( int nScreen )
gWidgetData[nScreen].gMenuItemMenuWidget = gtk_menu_item_new_with_label( "b" );
gWidgetData[nScreen].gMenuItemCheckMenuWidget = gtk_check_menu_item_new_with_label( "b" );
gWidgetData[nScreen].gMenuItemRadioMenuWidget = gtk_radio_menu_item_new_with_label( NULL, "b" );
+ gWidgetData[nScreen].gImageMenuItem = gtk_image_menu_item_new();
gtk_menu_shell_append( GTK_MENU_SHELL( gWidgetData[nScreen].gMenuWidget ), gWidgetData[nScreen].gMenuItemMenuWidget );
gtk_menu_shell_append( GTK_MENU_SHELL( gWidgetData[nScreen].gMenuWidget ), gWidgetData[nScreen].gMenuItemCheckMenuWidget );
gtk_menu_shell_append( GTK_MENU_SHELL( gWidgetData[nScreen].gMenuWidget ), gWidgetData[nScreen].gMenuItemRadioMenuWidget );
+ gtk_menu_shell_append( GTK_MENU_SHELL( gWidgetData[nScreen].gMenuWidget ), gWidgetData[nScreen].gImageMenuItem );
// do what NWAddWidgetToCacheWindow does except adding to def container
gtk_widget_realize( gWidgetData[nScreen].gMenuWidget );
@@ -3861,10 +3876,14 @@ static void NWEnsureGTKMenu( int nScreen )
gtk_widget_realize( gWidgetData[nScreen].gMenuItemRadioMenuWidget );
gtk_widget_ensure_style( gWidgetData[nScreen].gMenuItemRadioMenuWidget );
+ gtk_widget_realize( gWidgetData[nScreen].gImageMenuItem );
+ gtk_widget_ensure_style( gWidgetData[nScreen].gImageMenuItem );
+
gWidgetDefaultFlags[ (long)gWidgetData[nScreen].gMenuWidget ] = GTK_WIDGET_FLAGS( gWidgetData[nScreen].gMenuWidget );
gWidgetDefaultFlags[ (long)gWidgetData[nScreen].gMenuItemMenuWidget ] = GTK_WIDGET_FLAGS( gWidgetData[nScreen].gMenuItemMenuWidget );
gWidgetDefaultFlags[ (long)gWidgetData[nScreen].gMenuItemCheckMenuWidget ] = GTK_WIDGET_FLAGS( gWidgetData[nScreen].gMenuItemCheckMenuWidget );
gWidgetDefaultFlags[ (long)gWidgetData[nScreen].gMenuItemRadioMenuWidget ] = GTK_WIDGET_FLAGS( gWidgetData[nScreen].gMenuItemRadioMenuWidget );
+ gWidgetDefaultFlags[ (long)gWidgetData[nScreen].gImageMenuItem ] = GTK_WIDGET_FLAGS( gWidgetData[nScreen].gImageMenuItem );
}
}
diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
index 8aef97904769..b6770ca1a77e 100644
--- a/vcl/unx/gtk/window/gtkframe.cxx
+++ b/vcl/unx/gtk/window/gtkframe.cxx
@@ -45,9 +45,9 @@
#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/Xatom.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <dlfcn.h>
#include <vcl/salbtype.hxx>
@@ -75,6 +75,13 @@
#define GSS_DBUS_INTERFACE "org.gnome.ScreenSaver"
#endif
+// make compile on gtk older than 2.10
+#if GTK_MINOR_VERSION < 10
+#define GDK_SUPER_MASK (1 << 26)
+#define GDK_HYPER_MASK (1 << 27)
+#define GDK_META_MASK (1 << 28)
+#endif
+
using namespace com::sun::star;
int GtkSalFrame::m_nFloats = 0;
@@ -88,6 +95,11 @@ static USHORT GetKeyModCode( guint state )
nCode |= KEY_MOD1;
if( (state & GDK_MOD1_MASK) )
nCode |= KEY_MOD2;
+
+ // Map Meta/Super keys to MOD3 modifier on all Unix systems
+ // except Mac OS X
+ if ( (state & GDK_META_MASK ) || ( state & GDK_SUPER_MASK ) )
+ nCode |= KEY_MOD3;
return nCode;
}
@@ -405,6 +417,14 @@ GtkSalFrame::GtkSalFrame( SystemParentData* pSysData )
GtkSalFrame::~GtkSalFrame()
{
+ for( unsigned int i = 0; i < sizeof(m_aGraphics)/sizeof(m_aGraphics[0]); ++i )
+ {
+ if( !m_aGraphics[i].pGraphics )
+ continue;
+ m_aGraphics[i].pGraphics->SetDrawable( None, m_nScreen );
+ m_aGraphics[i].bInUse = false;
+ }
+
if( m_pParent )
m_pParent->m_aChildren.remove( this );
@@ -814,7 +834,7 @@ void GtkSalFrame::Init( SalFrame* pParent, ULONG nStyle )
}
if( (nStyle & SAL_FRAME_STYLE_PARTIAL_FULLSCREEN ) )
{
- eType = GDK_WINDOW_TYPE_HINT_DOCK;
+ eType = GDK_WINDOW_TYPE_HINT_TOOLBAR;
gtk_window_set_keep_above( GTK_WINDOW(m_pWindow), true );
}
@@ -2938,7 +2958,8 @@ gboolean GtkSalFrame::signalKey( GtkWidget*, GdkEventKey* pEvent, gpointer frame
if( pEvent->keyval == GDK_Shift_L || pEvent->keyval == GDK_Shift_R ||
pEvent->keyval == GDK_Control_L || pEvent->keyval == GDK_Control_R ||
pEvent->keyval == GDK_Alt_L || pEvent->keyval == GDK_Alt_R ||
- pEvent->keyval == GDK_Meta_L || pEvent->keyval == GDK_Meta_R )
+ pEvent->keyval == GDK_Meta_L || pEvent->keyval == GDK_Meta_R ||
+ pEvent->keyval == GDK_Super_L || pEvent->keyval == GDK_Super_R )
{
SalKeyModEvent aModEvt;
@@ -2987,6 +3008,18 @@ gboolean GtkSalFrame::signalKey( GtkWidget*, GdkEventKey* pEvent, gpointer frame
nExtModMask = MODKEY_RSHIFT;
nModMask = KEY_SHIFT;
break;
+ // Map Meta/Super to MOD3 modifier on all Unix systems
+ // except Mac OS X
+ case GDK_Meta_L:
+ case GDK_Super_L:
+ nExtModMask = MODKEY_LMOD3;
+ nModMask = KEY_MOD3;
+ break;
+ case GDK_Meta_R:
+ case GDK_Super_R:
+ nExtModMask = MODKEY_RMOD3;
+ nModMask = KEY_MOD3;
+ break;
}
if( pEvent->type == GDK_KEY_RELEASE )
{
diff --git a/vcl/unx/headless/svpgdi.cxx b/vcl/unx/headless/svpgdi.cxx
index 4ee06961444a..bd317c883b0b 100644
--- a/vcl/unx/headless/svpgdi.cxx
+++ b/vcl/unx/headless/svpgdi.cxx
@@ -429,7 +429,7 @@ void SvpSalGraphics::copyArea( long nDestX,
{
B2IRange aSrcRect( nSrcX, nSrcY, nSrcX+nSrcWidth, nSrcY+nSrcHeight );
B2IRange aDestRect( nDestX, nDestY, nDestX+nSrcWidth, nDestY+nSrcHeight );
- m_aDevice->drawBitmap( m_aDevice, aSrcRect, aDestRect, DrawMode_PAINT, m_aClipMap );
+ m_aDevice->drawBitmap( m_aOrigDevice, aSrcRect, aDestRect, DrawMode_PAINT, m_aClipMap );
dbgOut( m_aDevice );
}
@@ -444,7 +444,7 @@ void SvpSalGraphics::copyBits( const SalTwoRect* pPosAry,
B2IRange aDestRect( pPosAry->mnDestX, pPosAry->mnDestY,
pPosAry->mnDestX+pPosAry->mnDestWidth,
pPosAry->mnDestY+pPosAry->mnDestHeight );
- m_aDevice->drawBitmap( pSrc->m_aDevice, aSrcRect, aDestRect, DrawMode_PAINT, m_aClipMap );
+ m_aDevice->drawBitmap( pSrc->m_aOrigDevice, aSrcRect, aDestRect, DrawMode_PAINT, m_aClipMap );
dbgOut( m_aDevice );
}
@@ -519,7 +519,7 @@ SalBitmap* SvpSalGraphics::getBitmap( long nX, long nY, long nWidth, long nHeigh
m_aDevice );
B2IRange aSrcRect( nX, nY, nX+nWidth, nY+nHeight );
B2IRange aDestRect( 0, 0, nWidth, nHeight );
- aCopy->drawBitmap( m_aDevice, aSrcRect, aDestRect, DrawMode_PAINT );
+ aCopy->drawBitmap( m_aOrigDevice, aSrcRect, aDestRect, DrawMode_PAINT );
SvpSalBitmap* pBitmap = new SvpSalBitmap();
pBitmap->setBitmap( aCopy );
@@ -558,6 +558,22 @@ BOOL SvpSalGraphics::drawEPS( long, long, long, long, void*, ULONG )
return FALSE;
}
+SystemFontData SvpSalGraphics::GetSysFontData( int nFallbacklevel ) const
+{
+ SystemFontData aSysFontData;
+
+ if (nFallbacklevel >= MAX_FALLBACK) nFallbacklevel = MAX_FALLBACK - 1;
+ if (nFallbacklevel < 0 ) nFallbacklevel = 0;
+
+ aSysFontData.nSize = sizeof( SystemFontData );
+ aSysFontData.nFontId = 0;
+ aSysFontData.nFontFlags = 0;
+ aSysFontData.bFakeBold = false;
+ aSysFontData.bFakeItalic = false;
+ aSysFontData.bAntialias = true;
+ return aSysFontData;
+}
+
SystemGraphicsData SvpSalGraphics::GetGraphicsData() const
{
SystemGraphicsData aRes;
diff --git a/vcl/unx/headless/svpgdi.hxx b/vcl/unx/headless/svpgdi.hxx
index 984a77cccfad..1c71704c0031 100644
--- a/vcl/unx/headless/svpgdi.hxx
+++ b/vcl/unx/headless/svpgdi.hxx
@@ -169,6 +169,7 @@ public:
virtual BOOL drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
virtual SystemGraphicsData GetGraphicsData() const;
+ virtual SystemFontData GetSysFontData( int nFallbacklevel ) const;
};
#endif
diff --git a/vcl/unx/headless/svpprn.cxx b/vcl/unx/headless/svpprn.cxx
index e9d726464921..c3253ed163e8 100644
--- a/vcl/unx/headless/svpprn.cxx
+++ b/vcl/unx/headless/svpprn.cxx
@@ -73,37 +73,6 @@ inline int PtTo10Mu( int nPoints ) { return (int)((((double)nPoints)*35.27777778
inline int TenMuToPt( int nUnits ) { return (int)((((double)nUnits)/35.27777778)+0.5); }
-static struct
-{
- int width;
- int height;
- const char* name;
- int namelength;
- Paper paper;
-} aPaperTab[] =
-{
- { 29700, 42000, "A3", 2, PAPER_A3 },
- { 21000, 29700, "A4", 2, PAPER_A4 },
- { 14800, 21000, "A5", 2, PAPER_A5 },
- { 25000, 35300, "B4", 2, PAPER_B4 },
- { 17600, 25000, "B5", 2, PAPER_B5 },
- { 21600, 27900, "Letter", 6, PAPER_LETTER },
- { 21600, 35600, "Legal", 5, PAPER_LEGAL },
- { 27900, 43100, "Tabloid", 7, PAPER_TABLOID },
- { 0, 0, "USER", 4, PAPER_USER }
-};
-
-static Paper getPaperType( const String& rPaperName )
-{
- ByteString aPaper( rPaperName, RTL_TEXTENCODING_ISO_8859_1 );
- for( unsigned int i = 0; i < sizeof( aPaperTab )/sizeof( aPaperTab[0] ); i++ )
- {
- if( ! strcmp( aPaper.GetBuffer(), aPaperTab[i].name ) )
- return aPaperTab[i].paper;
- }
- return PAPER_USER;
-}
-
static void copyJobDataToJobSetup( ImplJobSetup* pJobSetup, JobData& rData )
{
pJobSetup->meOrientation = (Orientation)(rData.m_eOrientation == orientation::Landscape ? ORIENTATION_LANDSCAPE : ORIENTATION_PORTRAIT);
@@ -113,7 +82,7 @@ static void copyJobDataToJobSetup( ImplJobSetup* pJobSetup, JobData& rData )
int width, height;
rData.m_aContext.getPageSize( aPaper, width, height );
- pJobSetup->mePaperFormat = getPaperType( aPaper );
+ pJobSetup->mePaperFormat = PaperInfo::fromPSName(OUStringToOString( aPaper, RTL_TEXTENCODING_ISO_8859_1 ));
pJobSetup->mnPaperWidth = 0;
pJobSetup->mnPaperHeight = 0;
if( pJobSetup->mePaperFormat == PAPER_USER )
@@ -195,7 +164,7 @@ static bool passFileToCommandLine( const String& rFilename, const String& rComma
struct stat aStat;
if( stat( aFilename.GetBuffer(), &aStat ) )
fprintf( stderr, "stat( %s ) failed\n", aFilename.GetBuffer() );
- fprintf( stderr, "Tmp file %s has modes: %o\n", aFilename.GetBuffer(), aStat.st_mode );
+ fprintf( stderr, "Tmp file %s has modes: 0%03lo\n", aFilename.GetBuffer(), (long)aStat.st_mode );
#endif
const char* argv[4];
if( ! ( argv[ 0 ] = getenv( "SHELL" ) ) )
@@ -475,14 +444,9 @@ void PspSalInfoPrinter::InitPaperFormats( const ImplJobSetup* )
for( int i = 0; i < nValues; i++ )
{
const PPDValue* pValue = pKey->getValue( i );
- vcl::PaperInfo aInfo;
- aInfo.m_aPaperName = pValue->m_aOptionTranslation;
- if( ! aInfo.m_aPaperName.Len() )
- aInfo.m_aPaperName = pValue->m_aOption;
int nWidth = 0, nHeight = 0;
m_aJobData.m_pParser->getPaperDimension( pValue->m_aOption, nWidth, nHeight );
- aInfo.m_nPaperWidth = (unsigned long)((PtTo10Mu( nWidth )+50)/100);
- aInfo.m_nPaperHeight = (unsigned long)((PtTo10Mu( nHeight )+50)/100);
+ PaperInfo aInfo(PtTo10Mu( nWidth ), PtTo10Mu( nHeight ));
m_aPaperFormats.push_back( aInfo );
}
}
@@ -628,7 +592,7 @@ BOOL PspSalInfoPrinter::SetData(
TenMuToPt( pJobSetup->mnPaperWidth ),
TenMuToPt( pJobSetup->mnPaperHeight ) );
else
- aPaper = String( ByteString( aPaperTab[ pJobSetup->mePaperFormat ].name ), RTL_TEXTENCODING_ISO_8859_1 );
+ aPaper = rtl::OStringToOUString(PaperInfo::toPSName(pJobSetup->mePaperFormat), RTL_TEXTENCODING_ISO_8859_1);
pKey = aData.m_pParser->getKey( String( RTL_CONSTASCII_USTRINGPARAM( "PageSize" ) ) );
pValue = pKey ? pKey->getValue( aPaper ) : NULL;
diff --git a/vcl/unx/headless/svppspgraphics.cxx b/vcl/unx/headless/svppspgraphics.cxx
index 2ff48966c765..eb342a130d85 100644
--- a/vcl/unx/headless/svppspgraphics.cxx
+++ b/vcl/unx/headless/svppspgraphics.cxx
@@ -1398,6 +1398,22 @@ bool PspGraphics::filterText( const String& rOrig, String& rNewText, xub_StrLen
return bRet && m_bSwallowFaxNo;
}
+SystemFontData PspGraphics::GetSysFontData( int nFallbacklevel ) const
+{
+ SystemFontData aSysFontData;
+
+ if (nFallbacklevel >= MAX_FALLBACK) nFallbacklevel = MAX_FALLBACK - 1;
+ if (nFallbacklevel < 0 ) nFallbacklevel = 0;
+
+ aSysFontData.nSize = sizeof( SystemFontData );
+ aSysFontData.nFontId = 0;
+ aSysFontData.nFontFlags = 0;
+ aSysFontData.bFakeBold = false;
+ aSysFontData.bFakeItalic = false;
+ aSysFontData.bAntialias = true;
+ return aSysFontData;
+}
+
SystemGraphicsData PspGraphics::GetGraphicsData() const
{
SystemGraphicsData aRes;
diff --git a/vcl/unx/headless/svppspgraphics.hxx b/vcl/unx/headless/svppspgraphics.hxx
index ba7d690a9f90..81e4a29b8d55 100644
--- a/vcl/unx/headless/svppspgraphics.hxx
+++ b/vcl/unx/headless/svppspgraphics.hxx
@@ -194,7 +194,9 @@ public:
virtual BOOL drawEPS( long nX, long nY, long nWidth, long nHeight, void* pPtr, ULONG nSize );
virtual bool filterText( const String& rOrigText, String& rNewText, xub_StrLen nIndex, xub_StrLen& rLen, xub_StrLen& rCutStart, xub_StrLen& rCutStop );
+
virtual SystemGraphicsData GetGraphicsData() const;
+ virtual SystemFontData GetSysFontData( int nFallbacklevel ) const;
};
#endif // _SVP_PSPGRAPHICS_HXX
diff --git a/vcl/unx/headless/svpvd.cxx b/vcl/unx/headless/svpvd.cxx
index 2d7342093e47..6220af0b28b8 100644
--- a/vcl/unx/headless/svpvd.cxx
+++ b/vcl/unx/headless/svpvd.cxx
@@ -34,6 +34,8 @@
#include <basegfx/vector/b2ivector.hxx>
#include <basebmp/scanlineformats.hxx>
+#include "stdio.h"
+
using namespace basegfx;
using namespace basebmp;
@@ -65,9 +67,14 @@ BOOL SvpSalVirtualDevice::SetSize( long nNewDX, long nNewDY )
if( ! m_aDevice.get() || m_aDevice->getSize() != aDevSize )
{
sal_uInt32 nFormat = SVP_DEFAULT_BITMAP_FORMAT;
+ std::vector< basebmp::Color > aDevPal;
switch( m_nBitCount )
{
- case 1: nFormat = Format::ONE_BIT_MSB_PAL; break;
+ case 1: nFormat = Format::ONE_BIT_MSB_PAL;
+ aDevPal.reserve(2);
+ aDevPal.push_back( basebmp::Color( 0, 0, 0 ) );
+ aDevPal.push_back( basebmp::Color( 0xff, 0xff, 0xff ) );
+ break;
case 4: nFormat = Format::FOUR_BIT_MSB_PAL; break;
case 8: nFormat = Format::EIGHT_BIT_PAL; break;
#ifdef OSL_BIGENDIAN
@@ -75,14 +82,19 @@ BOOL SvpSalVirtualDevice::SetSize( long nNewDX, long nNewDY )
#else
case 16: nFormat = Format::SIXTEEN_BIT_LSB_TC_MASK; break;
#endif
+ case 0:
case 24: nFormat = Format::TWENTYFOUR_BIT_TC_MASK; break;
case 32: nFormat = Format::THIRTYTWO_BIT_TC_MASK; break;
}
- m_aDevice = createBitmapDevice( aDevSize, false, nFormat );
+ m_aDevice = aDevPal.empty()
+ ? createBitmapDevice( aDevSize, false, nFormat )
+ : createBitmapDevice( aDevSize, false, nFormat, PaletteMemorySharedVector( new std::vector< basebmp::Color >(aDevPal) ) );
+
// update device in existing graphics
for( std::list< SvpSalGraphics* >::iterator it = m_aGraphics.begin();
it != m_aGraphics.end(); ++it )
(*it)->setDevice( m_aDevice );
+
}
return true;
}
diff --git a/vcl/unx/inc/Xproto.h b/vcl/unx/inc/Xproto.h
index 83d717818d9e..553c32221406 100644
--- a/vcl/unx/inc/Xproto.h
+++ b/vcl/unx/inc/Xproto.h
@@ -33,7 +33,7 @@
#include "sal/config.h"
-#include "prex.h"
+#include <tools/prex.h>
#if defined __GNUC__
#pragma GCC system_header
@@ -47,6 +47,6 @@
#pragma enable_warn
#endif
-#include "postx.h"
+#include <tools/postx.h>
#endif
diff --git a/vcl/unx/inc/plugins/gtk/gtkdata.hxx b/vcl/unx/inc/plugins/gtk/gtkdata.hxx
index 970a8edf02c3..da0f95e8623f 100644
--- a/vcl/unx/inc/plugins/gtk/gtkdata.hxx
+++ b/vcl/unx/inc/plugins/gtk/gtkdata.hxx
@@ -31,11 +31,11 @@
#ifndef _VCL_GTKDATA_HXX
#define _VCL_GTKDATA_HXX
-#include <prex.h>
+#include <tools/prex.h>
#include <gdk/gdk.h>
#include <gdk/gdkx.h>
#include <gtk/gtk.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <saldisp.hxx>
#include <saldata.hxx>
@@ -85,6 +85,7 @@ public:
void startupNotificationCompleted() { m_bStartupCompleted = true; }
void screenSizeChanged( GdkScreen* );
+ void monitorsChanged( GdkScreen* );
};
diff --git a/vcl/unx/inc/plugins/gtk/gtkframe.hxx b/vcl/unx/inc/plugins/gtk/gtkframe.hxx
index 1ceec7fb0c70..74394c71e4b2 100644
--- a/vcl/unx/inc/plugins/gtk/gtkframe.hxx
+++ b/vcl/unx/inc/plugins/gtk/gtkframe.hxx
@@ -31,12 +31,12 @@
#ifndef _VCL_GTKFRAME_HXX
#define _VCL_GTKFRAME_HXX
-#include <prex.h>
+#include <tools/prex.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <gdk/gdkx.h>
#include <gdk/gdkkeysyms.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <vcl/salframe.hxx>
#include <vcl/sysdata.hxx>
diff --git a/vcl/unx/inc/plugins/gtk/gtkgdi.hxx b/vcl/unx/inc/plugins/gtk/gtkgdi.hxx
index 5211367c355a..5bc7ab40b98e 100644
--- a/vcl/unx/inc/plugins/gtk/gtkgdi.hxx
+++ b/vcl/unx/inc/plugins/gtk/gtkgdi.hxx
@@ -31,11 +31,11 @@
#ifndef _VCL_GTKGDI_HXX
#define _VCL_GTKGDI_HXX
-#include <prex.h>
+#include <tools/prex.h>
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
#include <gdk/gdkkeysyms.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <salgdi.h>
diff --git a/vcl/unx/inc/pspgraphics.h b/vcl/unx/inc/pspgraphics.h
index 5c31d889453c..219cc5f0a8ff 100644
--- a/vcl/unx/inc/pspgraphics.h
+++ b/vcl/unx/inc/pspgraphics.h
@@ -197,6 +197,7 @@ public:
virtual bool drawAlphaRect( long nX, long nY, long nWidth, long nHeight, sal_uInt8 nTransparency );
virtual SystemGraphicsData GetGraphicsData() const;
+ virtual SystemFontData GetSysFontData( int nFallbacklevel ) const;
};
#endif // _VCL_PSPGRAPHICS_H
diff --git a/vcl/unx/inc/salgdi.h b/vcl/unx/inc/salgdi.h
index 55c8f8303052..16276cdeb5c9 100644
--- a/vcl/unx/inc/salgdi.h
+++ b/vcl/unx/inc/salgdi.h
@@ -87,7 +87,8 @@ protected:
SalColormap *m_pDeleteColormap;
Drawable hDrawable_; // use
int m_nScreen;
- void* pRenderFormat_;
+ void* m_pRenderFormat;
+ XID m_aRenderPicture;
CairoFontsCache m_aCairoFontsCache;
XLIB_Region pPaintRegion_;
@@ -215,14 +216,14 @@ public:
inline const SalVisual& GetVisual() const;
inline Drawable GetDrawable() const { return hDrawable_; }
void SetDrawable( Drawable d, int nScreen );
- inline void* GetXRenderFormat() { return pRenderFormat_; }
- inline void SetXRenderFormat( void* pRenderFormat ) { pRenderFormat_ = pRenderFormat; }
+ XID GetXRenderPicture();
+ void* GetXRenderFormat() const { return m_pRenderFormat; }
+ inline void SetXRenderFormat( void* pRenderFormat ) { m_pRenderFormat = pRenderFormat; }
inline const SalColormap& GetColormap() const { return *m_pColormap; }
using SalGraphics::GetPixel;
inline Pixel GetPixel( SalColor nSalColor ) const;
- int GetScreenNumber() const
- { return m_nScreen; }
+ int GetScreenNumber() const { return m_nScreen; }
// overload all pure virtual methods
virtual void GetResolution( sal_Int32& rDPIX, sal_Int32& rDPIY );
@@ -248,7 +249,7 @@ public:
virtual void SetROPFillColor( SalROPColor nROPColor );
virtual void SetTextColor( SalColor nSalColor );
- virtual USHORT SetFont( ImplFontSelectData*, int nFallbackLevel );
+ virtual USHORT SetFont( ImplFontSelectData*, int nFallbackLevel );
virtual void GetFontMetric( ImplFontMetricData* );
virtual ULONG GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
virtual ImplFontCharMap* GetImplFontCharMap() const;
@@ -336,6 +337,7 @@ public:
long nHeight, sal_uInt8 nTransparency );
virtual SystemGraphicsData GetGraphicsData() const;
+ virtual SystemFontData GetSysFontData( int nFallbacklevel ) const;
/* use to handle GraphicsExpose/NoExpose after XCopyArea & friends
* if pFrame is not NULL, corresponding Paint events are generated
diff --git a/vcl/unx/inc/svunx.h b/vcl/unx/inc/svunx.h
index 7e6b98b33192..02572dea9084 100644
--- a/vcl/unx/inc/svunx.h
+++ b/vcl/unx/inc/svunx.h
@@ -31,8 +31,8 @@
#ifndef _SVUNX_H
#define _SVUNX_H
-#include <prex.h>
-#include <postx.h>
+#include <tools/prex.h>
+#include <tools/postx.h>
#endif
diff --git a/vcl/unx/inc/wmadaptor.hxx b/vcl/unx/inc/wmadaptor.hxx
index a6146748fb8a..314854926ba1 100644
--- a/vcl/unx/inc/wmadaptor.hxx
+++ b/vcl/unx/inc/wmadaptor.hxx
@@ -37,9 +37,9 @@
#include <tools/gen.hxx>
#include <vcl/dllapi.h>
#ifndef _PREX_H
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/Xlib.h>
-#include <postx.h>
+#include <tools/postx.h>
#endif
#include <vector>
diff --git a/vcl/unx/inc/xfont.hxx b/vcl/unx/inc/xfont.hxx
index f2a0496f545d..8b87e268ca08 100644
--- a/vcl/unx/inc/xfont.hxx
+++ b/vcl/unx/inc/xfont.hxx
@@ -31,9 +31,9 @@
#define EXTENDED_FONTSTRUCT_HXX
#ifndef _XLIB_H_
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/Xlib.h>
-#include <postx.h>
+#include <tools/postx.h>
#endif
#include <tools/ref.hxx>
#include <rtl/tencinfo.h>
diff --git a/vcl/unx/kde/kdedata.cxx b/vcl/unx/kde/kdedata.cxx
index 6dae2bd55f33..f29ef1d4ff96 100644
--- a/vcl/unx/kde/kdedata.cxx
+++ b/vcl/unx/kde/kdedata.cxx
@@ -248,7 +248,7 @@ extern "C" {
if( nMajor != 3 || nMinor < 2 || (nMinor == 2 && nMicro < 2) )
{
#if OSL_DEBUG_LEVEL > 1
- fprintf( stderr, "unsuitable qt version %d.%d.%d\n", nMajor, nMinor, nMicro );
+ fprintf( stderr, "unsuitable qt version %"SAL_PRIdINT32".%"SAL_PRIdINT32".%"SAL_PRIdINT32"\n", nMajor, nMinor, nMicro );
#endif
return NULL;
}
diff --git a/vcl/unx/kde/salnativewidgets-kde.cxx b/vcl/unx/kde/salnativewidgets-kde.cxx
index 6667520c3982..24358022d6a1 100644
--- a/vcl/unx/kde/salnativewidgets-kde.cxx
+++ b/vcl/unx/kde/salnativewidgets-kde.cxx
@@ -2035,10 +2035,12 @@ void KDESalFrame::UpdateSettings( AllSettings& rSettings )
// Scroll bar size
aStyleSettings.SetScrollBarSize( kapp->style().pixelMetric( QStyle::PM_ScrollBarExtent ) );
+ /* #i35482# do not override HC mode
// #i59364# high contrast mode
bool bHC = ( aStyleSettings.GetFaceColor().IsDark() ||
aStyleSettings.GetWindowColor().IsDark() );
aStyleSettings.SetHighContrastMode( bHC );
+ */
rSettings.SetStyleSettings( aStyleSettings );
}
diff --git a/vcl/unx/source/app/i18n_cb.cxx b/vcl/unx/source/app/i18n_cb.cxx
index b40cc888e7ac..fd8b3d5af559 100644
--- a/vcl/unx/source/app/i18n_cb.cxx
+++ b/vcl/unx/source/app/i18n_cb.cxx
@@ -34,10 +34,10 @@
#include <stdio.h>
#include <string.h>
#include <sal/alloca.h>
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/Xlocale.h>
#include <X11/Xlib.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <salunx.h>
#include <XIM.h>
diff --git a/vcl/unx/source/app/i18n_ic.cxx b/vcl/unx/source/app/i18n_ic.cxx
index 817fc2781e8c..cacffbcfdbb1 100644
--- a/vcl/unx/source/app/i18n_ic.cxx
+++ b/vcl/unx/source/app/i18n_ic.cxx
@@ -34,10 +34,10 @@
#include <stdio.h>
#include <sal/alloca.h>
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/Xlocale.h>
#include <X11/Xlib.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <salunx.h>
diff --git a/vcl/unx/source/app/i18n_im.cxx b/vcl/unx/source/app/i18n_im.cxx
index a47cefcef7dd..ae472d6323f4 100644
--- a/vcl/unx/source/app/i18n_im.cxx
+++ b/vcl/unx/source/app/i18n_im.cxx
@@ -44,11 +44,11 @@
#include <sal/alloca.h>
#endif
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/Xlocale.h>
#include <X11/Xlib.h>
#include <XIM.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <salunx.h>
#include <saldisp.hxx>
diff --git a/vcl/unx/source/app/i18n_status.cxx b/vcl/unx/source/app/i18n_status.cxx
index b8ef7e74e635..cdaa5b1a9cf0 100644
--- a/vcl/unx/source/app/i18n_status.cxx
+++ b/vcl/unx/source/app/i18n_status.cxx
@@ -36,10 +36,10 @@
#endif
#include <sal/alloca.h>
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/Xlib.h>
#include <XIM.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <salunx.h>
diff --git a/vcl/unx/source/app/keysymnames.cxx b/vcl/unx/source/app/keysymnames.cxx
index 4a2bf13af3e0..188f159300b0 100644
--- a/vcl/unx/source/app/keysymnames.cxx
+++ b/vcl/unx/source/app/keysymnames.cxx
@@ -32,9 +32,9 @@
#include "precompiled_vcl.hxx"
#ifndef SOLARIS
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/XKBlib.h>
-#include <postx.h>
+#include <tools/postx.h>
#endif
#include <saldisp.hxx>
diff --git a/vcl/unx/source/app/randrwrapper.cxx b/vcl/unx/source/app/randrwrapper.cxx
index b079e2909e71..8d01b64d4680 100644
--- a/vcl/unx/source/app/randrwrapper.cxx
+++ b/vcl/unx/source/app/randrwrapper.cxx
@@ -31,9 +31,9 @@
#ifdef USE_RANDR
-#include "prex.h"
+#include <tools/prex.h>
#include <X11/extensions/Xrandr.h>
-#include "postx.h"
+#include <tools/postx.h>
#include "osl/module.h"
#include "rtl/ustring.hxx"
diff --git a/vcl/unx/source/app/saldisp.cxx b/vcl/unx/source/app/saldisp.cxx
index b599cf0895eb..07955d426b8c 100644
--- a/vcl/unx/source/app/saldisp.cxx
+++ b/vcl/unx/source/app/saldisp.cxx
@@ -52,7 +52,7 @@
#include <osl/module.h>
#endif
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/cursorfont.h>
#include "salcursors.h"
#include "invert50.h"
@@ -81,7 +81,7 @@ Status XineramaGetInfo(Display*, int, XRectangle*, unsigned char*, int*);
#endif
#endif
-#include <postx.h>
+#include <tools/postx.h>
#include <salunx.h>
#include <sal/types.h>
@@ -831,24 +831,28 @@ void SalDisplay::Init()
int nDisplayScreens = ScreenCount( pDisp_ );
m_aScreens = std::vector<ScreenData>(nDisplayScreens);
- const char *value;
+ mbExactResolution = false;
/* #i15507#
* Xft resolution should take precedence since
* it is what modern desktops use.
*/
- if ((value = XGetDefault (pDisp_, "Xft", "dpi")))
+ const char* pValStr = XGetDefault( pDisp_, "Xft", "dpi" );
+ if( pValStr != NULL )
{
- rtl::OString str (value);
- long dpi = (long) str.toDouble();
- aResolution_ = Pair( dpi, dpi );
- mbExactResolution = true;
+ const rtl::OString aValStr( pValStr );
+ const long nDPI = (long) aValStr.toDouble();
+ // guard against insane resolution
+ if( (nDPI >= 50) && (nDPI <= 500) )
+ {
+ aResolution_ = Pair( nDPI, nDPI );
+ mbExactResolution = true;
+ }
}
- else
+ if( mbExactResolution == false )
{
aResolution_ =
Pair( DPI( WidthOfScreen( DefaultScreenOfDisplay( pDisp_ ) ), DisplayWidthMM ( pDisp_, m_nDefaultScreen ) ),
DPI( HeightOfScreen( DefaultScreenOfDisplay( pDisp_ ) ), DisplayHeightMM( pDisp_, m_nDefaultScreen ) ) );
- mbExactResolution = false;
}
nMaxRequestSize_ = XExtendedMaxRequestSize( pDisp_ ) * 4;
@@ -3412,8 +3416,8 @@ Pixel SalColormap::GetPixel( SalColor nSalColor ) const
#ifdef DBG_UTIL
else
fprintf( stderr, "SalColormap::GetPixel() 0x%06lx=%lu 0x%06lx=%lu\n",
- nSalColor, aColor.pixel,
- nInversColor, aInversColor.pixel);
+ static_cast< unsigned long >(nSalColor), aColor.pixel,
+ static_cast< unsigned long >(nInversColor), aInversColor.pixel);
#endif
}
}
@@ -3423,7 +3427,7 @@ Pixel SalColormap::GetPixel( SalColor nSalColor ) const
#ifdef DBG_UTIL
fprintf( stderr, "SalColormap::GetPixel() !XAllocColor %lx\n",
- nSalColor );
+ static_cast< unsigned long >(nSalColor) );
#endif
}
@@ -3431,7 +3435,7 @@ Pixel SalColormap::GetPixel( SalColor nSalColor ) const
{
#ifdef DBG_UTIL
fprintf( stderr, "SalColormap::GetPixel() Palette empty %lx\n",
- nSalColor);
+ static_cast< unsigned long >(nSalColor));
#endif
return nSalColor;
}
diff --git a/vcl/unx/source/app/sm.cxx b/vcl/unx/source/app/sm.cxx
index 5bc307b0146f..7e4e16579623 100644
--- a/vcl/unx/source/app/sm.cxx
+++ b/vcl/unx/source/app/sm.cxx
@@ -40,9 +40,9 @@
#include <osl/process.h>
#include <osl/security.h>
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/Xatom.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <sm.hxx>
#include <saldata.hxx>
#include <saldisp.hxx>
diff --git a/vcl/unx/source/app/wmadaptor.cxx b/vcl/unx/source/app/wmadaptor.cxx
index 37015b6e58d6..d15433865450 100644
--- a/vcl/unx/source/app/wmadaptor.cxx
+++ b/vcl/unx/source/app/wmadaptor.cxx
@@ -43,11 +43,11 @@
#include <rtl/locale.h>
#include <osl/process.h>
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/X.h>
#include <X11/Xatom.h>
#include <X11/Xresource.h>
-#include <postx.h>
+#include <tools/postx.h>
#if OSL_DEBUG_LEVEL > 1
#include <stdio.h>
diff --git a/vcl/unx/source/fontmanager/fontconfig.cxx b/vcl/unx/source/fontmanager/fontconfig.cxx
index c44e082f91bd..bc0dae480d31 100644
--- a/vcl/unx/source/fontmanager/fontconfig.cxx
+++ b/vcl/unx/source/fontmanager/fontconfig.cxx
@@ -91,6 +91,7 @@ class FontCfgWrapper
oslModule m_pLib;
FcFontSet* m_pOutlineSet;
+ int m_nFcVersion;
FcBool (*m_pFcInit)();
int (*m_pFcGetVersion)();
FcConfig* (*m_pFcConfigGetCurrent)();
@@ -248,9 +249,10 @@ oslGenericFunction FontCfgWrapper::loadSymbol( const char* pSymbol )
FontCfgWrapper::FontCfgWrapper()
: m_pLib( NULL ),
- m_pOutlineSet( NULL )
+ m_pOutlineSet( NULL ),
+ m_nFcVersion( 0 )
{
- OUString aLib( RTL_CONSTASCII_USTRINGPARAM( "libfontconfig.so.1" ) );
+ OUString aLib( RTL_CONSTASCII_USTRINGPARAM( "libfontconfig.so.1" ) );
m_pLib = osl_loadModule( aLib.pData, SAL_LOADMODULE_LAZY );
if( !m_pLib )
{
@@ -331,6 +333,19 @@ FontCfgWrapper::FontCfgWrapper()
m_pFcFreeTypeCharIndex = (FT_UInt(*)(FT_Face,FcChar32))
loadSymbol( "FcFreeTypeCharIndex" );
+ m_nFcVersion = FcGetVersion();
+#if (OSL_DEBUG_LEVEL > 1)
+ fprintf( stderr,"FC_VERSION = %05d\n", m_nFcVersion );
+#endif
+ // make minimum version configurable
+ const char* pMinFcVersion = getenv( "SAL_MIN_FC_VERSION");
+ if( pMinFcVersion )
+ {
+ const int nMinFcVersion = atoi( pMinFcVersion );
+ if( m_nFcVersion < nMinFcVersion )
+ m_pFcInit = NULL;
+ }
+
if( ! (
m_pFcInit &&
m_pFcGetVersion &&
@@ -416,8 +431,7 @@ FcFontSet* FontCfgWrapper::getFontSet()
{
m_pOutlineSet = FcFontSetCreate();
addFontSet( FcSetSystem );
- const int nVersion = FcGetVersion();
- if( nVersion > 20400 )
+ if( m_nFcVersion > 20400 ) // #i85462# prevent crashes
addFontSet( FcSetApplication );
}
#endif
diff --git a/vcl/unx/source/fontmanager/fontmanager.cxx b/vcl/unx/source/fontmanager/fontmanager.cxx
index a116749daf47..995abb5fb89f 100644
--- a/vcl/unx/source/fontmanager/fontmanager.cxx
+++ b/vcl/unx/source/fontmanager/fontmanager.cxx
@@ -2123,7 +2123,7 @@ void PrintFontManager::initialize()
const ::rtl::OUString &rSalPrivatePath = psp::getFontPath();
// search for the fonts in SAL_PRIVATE_FONTPATH first; those are
- // the TrueType fonts installed with the office
+ // the fonts installed with the office
if( rSalPrivatePath.getLength() )
{
OString aPath = rtl::OUStringToOString( rSalPrivatePath, aEncoding );
diff --git a/vcl/unx/source/gdi/gcach_xpeer.hxx b/vcl/unx/source/gdi/gcach_xpeer.hxx
index 73a924c60439..3af34ffd9297 100644
--- a/vcl/unx/source/gdi/gcach_xpeer.hxx
+++ b/vcl/unx/source/gdi/gcach_xpeer.hxx
@@ -33,9 +33,9 @@
#include <vcl/glyphcache.hxx>
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/extensions/Xrender.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <vcl/dllapi.h>
diff --git a/vcl/unx/source/gdi/pspgraphics.cxx b/vcl/unx/source/gdi/pspgraphics.cxx
index 4a4bccd86d2a..e8dfe391dc86 100644
--- a/vcl/unx/source/gdi/pspgraphics.cxx
+++ b/vcl/unx/source/gdi/pspgraphics.cxx
@@ -1504,6 +1504,22 @@ SystemGraphicsData PspGraphics::GetGraphicsData() const
return aRes;
}
+SystemFontData PspGraphics::GetSysFontData( int nFallbacklevel ) const
+{
+ SystemFontData aSysFontData;
+
+ if (nFallbacklevel >= MAX_FALLBACK) nFallbacklevel = MAX_FALLBACK - 1;
+ if (nFallbacklevel < 0 ) nFallbacklevel = 0;
+
+ aSysFontData.nSize = sizeof( SystemFontData );
+ aSysFontData.nFontId = 0;
+ aSysFontData.nFontFlags = 0;
+ aSysFontData.bFakeBold = false;
+ aSysFontData.bFakeItalic = false;
+ aSysFontData.bAntialias = true;
+ return aSysFontData;
+}
+
bool PspGraphics::supportsOperation( OutDevSupportType ) const
{
return false;
diff --git a/vcl/unx/source/gdi/salbmp.cxx b/vcl/unx/source/gdi/salbmp.cxx
index f70f445ed28c..4db44d664c16 100644
--- a/vcl/unx/source/gdi/salbmp.cxx
+++ b/vcl/unx/source/gdi/salbmp.cxx
@@ -37,9 +37,9 @@
#ifdef FREEBSD
#include <sys/types.h>
#endif
-#include <prex.h>
+#include <tools/prex.h>
#include "Xproto.h"
-#include <postx.h>
+#include <tools/postx.h>
#include <salunx.h>
#include <osl/endian.h>
#include <rtl/memory.h>
diff --git a/vcl/unx/source/gdi/salgdi.cxx b/vcl/unx/source/gdi/salgdi.cxx
index 6d7812828a10..6695d4abeb21 100644
--- a/vcl/unx/source/gdi/salgdi.cxx
+++ b/vcl/unx/source/gdi/salgdi.cxx
@@ -6,9 +6,6 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: salgdi.cxx,v $
- * $Revision: 1.53.16.1 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -102,7 +99,8 @@ X11SalGraphics::X11SalGraphics()
m_pVDev = NULL;
m_pDeleteColormap = NULL;
hDrawable_ = None;
- pRenderFormat_ = NULL;
+ m_aRenderPicture = 0;
+ m_pRenderFormat = NULL;
pClipRegion_ = NULL;
pPaintRegion_ = NULL;
@@ -180,42 +178,70 @@ void X11SalGraphics::freeResources()
if( m_pDeleteColormap )
delete m_pDeleteColormap, m_pColormap = m_pDeleteColormap = NULL;
+ if( m_aRenderPicture )
+ XRenderPeer::GetInstance().FreePicture( m_aRenderPicture ), m_aRenderPicture = 0;
+
bPenGC_ = bFontGC_ = bBrushGC_ = bMonoGC_ = bCopyGC_ = bInvertGC_ = bInvert50GC_ = bStippleGC_ = bTrackingGC_ = false;
}
void X11SalGraphics::SetDrawable( Drawable aDrawable, int nScreen )
{
+ // shortcut if nothing changed
+ if( hDrawable_ == aDrawable )
+ return;
+
+ // free screen specific resources if needed
if( nScreen != m_nScreen )
{
freeResources();
m_pColormap = &GetX11SalData()->GetDisplay()->GetColormap( nScreen );
m_nScreen = nScreen;
}
+
hDrawable_ = aDrawable;
- nPenPixel_ = GetPixel( nPenColor_ );
- nTextPixel_ = GetPixel( nTextColor_ );
- nBrushPixel_ = GetPixel( nBrushColor_ );
+ SetXRenderFormat( NULL );
+ if( m_aRenderPicture )
+ {
+ XRenderPeer::GetInstance().FreePicture( m_aRenderPicture );
+ m_aRenderPicture = 0;
+ }
+
+ if( hDrawable_ )
+ {
+ nPenPixel_ = GetPixel( nPenColor_ );
+ nTextPixel_ = GetPixel( nTextColor_ );
+ nBrushPixel_ = GetPixel( nBrushColor_ );
+ }
}
void X11SalGraphics::Init( SalFrame *pFrame, Drawable aTarget, int nScreen )
{
+#if 0 // TODO: use SetDrawable() instead
m_pColormap = &GetX11SalData()->GetDisplay()->GetColormap(nScreen);
hDrawable_ = aTarget;
m_nScreen = nScreen;
-
- bWindow_ = TRUE;
- m_pFrame = pFrame;
- m_pVDev = NULL;
+ SetXRenderFormat( NULL );
+ if( m_aRenderPicture )
+ XRenderPeer::GetInstance().FreePicture( m_aRenderPicture ), m_aRenderPicture = 0;
nPenPixel_ = GetPixel( nPenColor_ );
nTextPixel_ = GetPixel( nTextColor_ );
nBrushPixel_ = GetPixel( nBrushColor_ );
+#else
+ m_pColormap = &GetX11SalData()->GetDisplay()->GetColormap(nScreen);
+ m_nScreen = nScreen;
+ SetDrawable( aTarget, nScreen );
+#endif
+
+ bWindow_ = TRUE;
+ m_pFrame = pFrame;
+ m_pVDev = NULL;
}
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void X11SalGraphics::DeInit()
{
- hDrawable_ = None;
+ SetDrawable( None, m_nScreen );
}
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@@ -994,6 +1020,40 @@ BOOL X11SalGraphics::drawEPS( long,long,long,long,void*,ULONG )
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+XID X11SalGraphics::GetXRenderPicture()
+{
+ if( !m_aRenderPicture )
+ {
+ // check xrender support for matching visual
+ // find a XRenderPictFormat compatible with the Drawable
+ XRenderPeer& rRenderPeer = XRenderPeer::GetInstance();
+ XRenderPictFormat* pVisualFormat = static_cast<XRenderPictFormat*>(GetXRenderFormat());
+ if( !pVisualFormat )
+ {
+ Visual* pVisual = GetDisplay()->GetVisual( m_nScreen ).GetVisual();
+ pVisualFormat = rRenderPeer.FindVisualFormat( pVisual );
+ if( !pVisualFormat )
+ return 0;
+ // cache the XRenderPictFormat
+ SetXRenderFormat( static_cast<void*>(pVisualFormat) );
+ }
+
+ // get the matching xrender target for drawable
+ m_aRenderPicture = rRenderPeer.CreatePicture( hDrawable_, pVisualFormat, 0, NULL );
+ }
+
+#if 0
+ // setup clipping so the callers don't have to do it themselves
+ // TODO: avoid clipping if already set correctly
+ if( pClipRegion_ && !XEmptyRegion( pClipRegion_ ) )
+ rRenderPeer.SetPictureClipRegion( aDstPic, pClipRegion_ );
+#endif
+
+ return m_aRenderPicture;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
SystemGraphicsData X11SalGraphics::GetGraphicsData() const
{
SystemGraphicsData aRes;
@@ -1005,7 +1065,7 @@ SystemGraphicsData X11SalGraphics::GetGraphicsData() const
aRes.nScreen = m_nScreen;
aRes.nDepth = GetDisplay()->GetVisual( m_nScreen ).GetDepth();
aRes.aColormap = GetDisplay()->GetColormap( m_nScreen ).GetXColormap();
- aRes.pRenderFormat = pRenderFormat_;
+ aRes.pRenderFormat = m_pRenderFormat;
return aRes;
}
@@ -1072,7 +1132,15 @@ struct HalfTrapCompare
}
};
-typedef std::priority_queue< HalfTrapezoid, std::vector<HalfTrapezoid>, HalfTrapCompare > HTQueue;
+typedef std::priority_queue< HalfTrapezoid, std::vector<HalfTrapezoid>, HalfTrapCompare > HTQueueBase;
+// we need a priority queue with a reserve() to prevent countless reallocations
+class HTQueue
+: public HTQueueBase
+{
+public:
+ void reserve( size_t n ) { c.reserve( n ); }
+ int capacity() { return c.capacity(); }
+};
typedef std::vector<XTrapezoid> TrapezoidVector;
@@ -1128,38 +1196,49 @@ bool X11SalGraphics::drawPolyPolygon( const ::basegfx::B2DPolyPolygon& rPolyPoly
XRenderPeer& rRenderPeer = XRenderPeer::GetInstance();
if( !rRenderPeer.AreTrapezoidsSupported() )
return FALSE;
-
- // check xrender support for matching visual
- Visual* pVisual = GetVisual().GetVisual();
- XRenderPictFormat* pVisualFormat = rRenderPeer.FindVisualFormat( pVisual );
- if( !pVisualFormat )
+ Picture aDstPic = GetXRenderPicture();
+ // check xrender support for this drawable
+ if( !aDstPic )
return FALSE;
// don't bother with polygons outside of visible area
const basegfx::B2DRange aViewRange( 0, 0, GetGraphicsWidth(), GetGraphicsHeight() );
- basegfx::B2DRange aPolyRange = basegfx::tools::getRange( rPolyPoly );
- aPolyRange.intersect( aViewRange );
- if( aPolyRange.isEmpty() )
+ const basegfx::B2DRange aPolyRange = basegfx::tools::getRange( rPolyPoly );
+ const bool bNeedViewClip = !aPolyRange.isInside( aViewRange );
+ if( !aPolyRange.overlaps( aViewRange ) )
return true;
// convert the polypolygon to trapezoids
// first convert the B2DPolyPolygon to HalfTrapezoids
+ // #i100922# try to prevent priority-queue reallocations by reservering enough
+ int nHTQueueReserve = 0;
+ for( int nOuterPolyIdx = 0; nOuterPolyIdx < nPolygonCount; ++nOuterPolyIdx )
+ {
+ const ::basegfx::B2DPolygon aOuterPolygon = rPolyPoly.getB2DPolygon( nOuterPolyIdx );
+ const int nPointCount = aOuterPolygon.count();
+ nHTQueueReserve += aOuterPolygon.areControlPointsUsed() ? 8 * nPointCount : nPointCount;
+ }
+ nHTQueueReserve = ((4*nHTQueueReserve) | 0x1FFF) + 1;
HTQueue aHTQueue;
+ aHTQueue.reserve( nHTQueueReserve );
for( int nOuterPolyIdx = 0; nOuterPolyIdx < nPolygonCount; ++nOuterPolyIdx )
{
- ::basegfx::B2DPolygon aOuterPolygon = rPolyPoly.getB2DPolygon( nOuterPolyIdx );
+ const ::basegfx::B2DPolygon aOuterPolygon = rPolyPoly.getB2DPolygon( nOuterPolyIdx );
- // get rid of bezier segments
- if( aOuterPolygon.areControlPointsUsed() )
- aOuterPolygon = ::basegfx::tools::adaptiveSubdivideByDistance( aOuterPolygon, 0.125 );
+ // render-trapezoids should be inside the view => clip polygon against view range
+ basegfx::B2DPolyPolygon aClippedPolygon( aOuterPolygon );
+ if( bNeedViewClip )
+ {
+ aClippedPolygon = basegfx::tools::clipPolygonOnRange( aOuterPolygon, aViewRange, true, false );
+ DBG_ASSERT( aClippedPolygon.count(), "polygon confirmed to overlap with view should not get here" );
+ if( !aClippedPolygon.count() )
+ continue;
+ }
- // clip polygon against view
- // (the call below for removing self intersections can be made much cheaper by this)
- // TODO: move clipping before subdivision when clipPolyonRange learns to handle curves
- const basegfx::B2DPolyPolygon aClippedPolygon = basegfx::tools::clipPolygonOnRange( aOuterPolygon, aViewRange, true, false );
- if( !aClippedPolygon.count() )
- return true;
+ // render-trapezoids have linear edges => get rid of bezier segments
+ if( aClippedPolygon.areControlPointsUsed() )
+ aClippedPolygon = ::basegfx::tools::adaptiveSubdivideByDistance( aClippedPolygon, 0.125 );
// test and remove self intersections
// TODO: make code intersection save, then remove this test
@@ -1172,6 +1251,8 @@ bool X11SalGraphics::drawPolyPolygon( const ::basegfx::B2DPolyPolygon& rPolyPoly
if( !nPointCount )
continue;
+ aHTQueue.reserve( aHTQueue.size() + 8 * nPointCount );
+
// convert polygon point pairs to HalfTrapezoids
// connect the polygon point with the first one if needed
XPointFixed aOldXPF = { 0, 0 };
@@ -1384,22 +1465,15 @@ bool X11SalGraphics::drawPolyPolygon( const ::basegfx::B2DPolyPolygon& rPolyPoly
XRenderColor aRenderColor = GetXRenderColor( nBrushColor_ , fTransparency );
rRenderPeer.FillRectangle( PictOpSrc, rEntry.m_aPicture, &aRenderColor, 0, 0, 1, 1 );
- // notify xrender of target drawable
- // TODO: cache the matching xrender picture in the X11SalGraphics
- Picture aDst = rRenderPeer.CreatePicture( hDrawable_, pVisualFormat, 0, NULL );
-
// set clipping
+ // TODO: move into GetXRenderPicture?
if( pClipRegion_ && !XEmptyRegion( pClipRegion_ ) )
- rRenderPeer.SetPictureClipRegion( aDst, pClipRegion_ );
+ rRenderPeer.SetPictureClipRegion( aDstPic, pClipRegion_ );
// render the trapezoids
const XRenderPictFormat* pMaskFormat = rRenderPeer.GetStandardFormatA8();
rRenderPeer.CompositeTrapezoids( PictOpOver,
- rEntry.m_aPicture, aDst, pMaskFormat, 0, 0, &aTrapVector[0], aTrapVector.size() );
-
- // release xrender-counterpart of target drawable
- // TODO: use scoped xrender picture
- rRenderPeer.FreePicture( aDst );
+ rEntry.m_aPicture, aDstPic, pMaskFormat, 0, 0, &aTrapVector[0], aTrapVector.size() );
return TRUE;
}
@@ -1408,6 +1482,15 @@ bool X11SalGraphics::drawPolyPolygon( const ::basegfx::B2DPolyPolygon& rPolyPoly
bool X11SalGraphics::drawPolyLine(const ::basegfx::B2DPolygon& rPolygon, const ::basegfx::B2DVector& rLineWidth, basegfx::B2DLineJoin eLineJoin)
{
+ // #i101491#
+ if(rPolygon.count() > 1000)
+ {
+ // the used basegfx::tools::createAreaGeometry is simply too
+ // expensive with very big polygons; fallback to caller (who
+ // should use ImplLineConverter normally)
+ return false;
+ }
+
const XRenderPeer& rRenderPeer = XRenderPeer::GetInstance();
if( !rRenderPeer.AreTrapezoidsSupported() )
return false;
diff --git a/vcl/unx/source/gdi/salgdi2.cxx b/vcl/unx/source/gdi/salgdi2.cxx
index 5a01b7f13d39..1d8e80df0663 100644
--- a/vcl/unx/source/gdi/salgdi2.cxx
+++ b/vcl/unx/source/gdi/salgdi2.cxx
@@ -796,21 +796,15 @@ bool X11SalGraphics::drawAlphaBitmap( const SalTwoRect& rTR,
if( rPeer.GetVersion() < 0x02 )
return false;
- const SalDisplay* pSalDisp = GetDisplay();
- const SalVisual& rSalVis = pSalDisp->GetVisual( m_nScreen );
- Display* pXDisplay = pSalDisp->GetDisplay();
-
// create destination picture
- // TODO: scoped Pixmap and Pictures
- Visual* pDstXVisual = rSalVis.GetVisual();
- XRenderPictFormat* pDstVisFmt = rPeer.FindVisualFormat( pDstXVisual );
- if( !pDstVisFmt )
- return false;
-
- Picture aDstPic = rPeer.CreatePicture( hDrawable_, pDstVisFmt, 0, NULL );
+ Picture aDstPic = GetXRenderPicture();
if( !aDstPic )
return false;
+ const SalDisplay* pSalDisp = GetDisplay();
+ const SalVisual& rSalVis = pSalDisp->GetVisual( m_nScreen );
+ Display* pXDisplay = pSalDisp->GetDisplay();
+
// create source Picture
int nDepth = m_pVDev ? m_pVDev->GetDepth() : rSalVis.GetDepth();
const X11SalBitmap& rSrcX11Bmp = static_cast<const X11SalBitmap&>( rSrcBitmap );
@@ -829,7 +823,12 @@ bool X11SalGraphics::drawAlphaBitmap( const SalTwoRect& rTR,
if( !aSrcPM )
return false;
- XRenderPictFormat* pSrcVisFmt = pDstVisFmt;
+ // create source picture
+ // TODO: use scoped picture
+ Visual* pSrcXVisual = rSalVis.GetVisual();
+ XRenderPictFormat* pSrcVisFmt = rPeer.FindVisualFormat( pSrcXVisual );
+ if( !pSrcVisFmt )
+ return false;
Picture aSrcPic = rPeer.CreatePicture( aSrcPM, pSrcVisFmt, 0, NULL );
if( !aSrcPic )
return false;
@@ -843,16 +842,16 @@ bool X11SalGraphics::drawAlphaBitmap( const SalTwoRect& rTR,
// an XImage needs its data top_down
// TODO: avoid wrongly oriented images in upper layers!
const int nImageSize = pAlphaBuffer->mnHeight * pAlphaBuffer->mnScanlineSize;
- const char* pSrc = (char*)pAlphaBuffer->mpBits;
+ const char* pSrcBits = (char*)pAlphaBuffer->mpBits;
char* pAlphaBits = new char[ nImageSize ];
if( BMP_SCANLINE_ADJUSTMENT( pAlphaBuffer->mnFormat ) == BMP_FORMAT_TOP_DOWN )
- memcpy( pAlphaBits, pSrc, nImageSize );
+ memcpy( pAlphaBits, pSrcBits, nImageSize );
else
{
- char* pDst = pAlphaBits + nImageSize;
+ char* pDstBits = pAlphaBits + nImageSize;
const int nLineSize = pAlphaBuffer->mnScanlineSize;
- for(; (pDst -= nLineSize) >= pAlphaBits; pSrc += nLineSize )
- memcpy( pDst, pSrc, nLineSize );
+ for(; (pDstBits -= nLineSize) >= pAlphaBits; pSrcBits += nLineSize )
+ memcpy( pDstBits, pSrcBits, nLineSize );
}
// the alpha values need to be inverted for XRender
@@ -866,7 +865,7 @@ bool X11SalGraphics::drawAlphaBitmap( const SalTwoRect& rTR,
*pCDst = ~*pCDst;
const XRenderPictFormat* pAlphaFormat = rPeer.GetStandardFormatA8();
- XImage* pAlphaImg = XCreateImage( pXDisplay, pDstXVisual, 8, ZPixmap, 0,
+ XImage* pAlphaImg = XCreateImage( pXDisplay, pSrcXVisual, 8, ZPixmap, 0,
pAlphaBits, pAlphaBuffer->mnWidth, pAlphaBuffer->mnHeight,
pAlphaFormat->depth, pAlphaBuffer->mnScanlineSize );
@@ -904,7 +903,6 @@ bool X11SalGraphics::drawAlphaBitmap( const SalTwoRect& rTR,
rPeer.FreePicture( aAlphaPic );
XFreePixmap(pXDisplay, aAlphaPM);
rPeer.FreePicture( aSrcPic );
- rPeer.FreePicture( aDstPic );
return true;
}
@@ -922,20 +920,10 @@ bool X11SalGraphics::drawAlphaRect( long nX, long nY, long nWidth,
return false;
XRenderPeer& rPeer = XRenderPeer::GetInstance();
- if( rPeer.GetVersion() < 0x02 )
+ if( rPeer.GetVersion() < 0x02 ) // TODO: replace with better test
return false;
- const SalDisplay* pSalDisp = GetDisplay();
- const SalVisual& rSalVis = pSalDisp->GetVisual( m_nScreen );
-
- // create destination picture
- // TODO: scoped Pixmap and Pictures
- Visual* pDstXVisual = rSalVis.GetVisual();
- XRenderPictFormat* pDstVisFmt = rPeer.FindVisualFormat( pDstXVisual );
- if( !pDstVisFmt )
- return false;
-
- Picture aDstPic = rPeer.CreatePicture( hDrawable_, pDstVisFmt, 0, NULL );
+ Picture aDstPic = GetXRenderPicture();
if( !aDstPic )
return false;
@@ -948,9 +936,6 @@ bool X11SalGraphics::drawAlphaRect( long nX, long nY, long nWidth,
nX, nY,
nWidth, nHeight );
- // cleanup
- rPeer.FreePicture( aDstPic );
-
return true;
}
diff --git a/vcl/unx/source/gdi/salgdi3.cxx b/vcl/unx/source/gdi/salgdi3.cxx
index e2c41b52006b..d1a60cda4097 100644
--- a/vcl/unx/source/gdi/salgdi3.cxx
+++ b/vcl/unx/source/gdi/salgdi3.cxx
@@ -50,6 +50,7 @@
#include "pspgraphics.h"
#include "salvd.h"
#include "xfont.hxx"
+#include <vcl/sysdata.hxx>
#include "xlfd_attr.hxx"
#include "xlfd_smpl.hxx"
#include "xlfd_extd.hxx"
@@ -797,7 +798,11 @@ CairoWrapper::CairoWrapper()
if( !XQueryExtension( GetX11SalData()->GetDisplay()->GetDisplay(), "RENDER", &nDummy, &nDummy, &nDummy ) )
return;
+#ifdef MACOSX
+ OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( "libcairo.2.dylib" ));
+#else
OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( "libcairo.so.2" ));
+#endif
mpCairoLib = osl_loadModule( aLibName.pData, SAL_LOADMODULE_DEFAULT );
if( !mpCairoLib )
return;
@@ -1018,29 +1023,22 @@ void X11SalGraphics::DrawCairoAAFontString( const ServerFontLayout& rLayout )
void X11SalGraphics::DrawServerAAFontString( const ServerFontLayout& rLayout )
{
- Display* pDisplay = GetXDisplay();
- XRenderPeer& rRenderPeer = XRenderPeer::GetInstance();
-
- // find a XRenderPictFormat compatible with the Drawable
- XRenderPictFormat* pVisualFormat = static_cast<XRenderPictFormat*>(GetXRenderFormat());
- if( !pVisualFormat )
- {
- Visual* pVisual = GetDisplay()->GetVisual( m_nScreen ).GetVisual();
- pVisualFormat = rRenderPeer.FindVisualFormat( pVisual );
- // cache the XRenderPictFormat
- SetXRenderFormat( static_cast<void*>(pVisualFormat) );
- }
-
- DBG_ASSERT( pVisualFormat!=NULL, "no matching XRenderPictFormat for text" );
- if( !pVisualFormat )
+ // get xrender target for this drawable
+ Picture aDstPic = GetXRenderPicture();
+ if( !aDstPic )
return;
// get a XRenderPicture for the font foreground
+ // TODO: move into own method
+ XRenderPeer& rRenderPeer = XRenderPeer::GetInstance();
+ XRenderPictFormat* pVisualFormat = (XRenderPictFormat*)GetXRenderFormat();
+ DBG_ASSERT( pVisualFormat, "we already have a render picture, but XRenderPictFormat==NULL???");
const int nVisualDepth = pVisualFormat->depth;
SalDisplay::RenderEntry& rEntry = GetDisplay()->GetRenderEntries( m_nScreen )[ nVisualDepth ];
if( !rEntry.m_aPicture )
{
// create and cache XRenderPicture for the font foreground
+ Display* pDisplay = GetXDisplay();
#ifdef DEBUG
int iDummy;
unsigned uDummy;
@@ -1062,12 +1060,10 @@ void X11SalGraphics::DrawServerAAFontString( const ServerFontLayout& rLayout )
XRenderColor aRenderColor = GetXRenderColor( nTextPixel_ );
rRenderPeer.FillRectangle( PictOpSrc, rEntry.m_aPicture, &aRenderColor, 0, 0, 1, 1 );
- // notify xrender of target drawable
- Picture aDst = rRenderPeer.CreatePicture( hDrawable_, pVisualFormat, 0, NULL );
-
// set clipping
+ // TODO: move into GetXRenderPicture()?
if( pClipRegion_ && !XEmptyRegion( pClipRegion_ ) )
- rRenderPeer.SetPictureClipRegion( aDst, pClipRegion_ );
+ rRenderPeer.SetPictureClipRegion( aDstPic, pClipRegion_ );
ServerFont& rFont = rLayout.GetServerFont();
X11GlyphPeer& rGlyphPeer = X11GlyphCache::GetInstance().GetPeer();
@@ -1091,12 +1087,9 @@ void X11SalGraphics::DrawServerAAFontString( const ServerFontLayout& rLayout )
unsigned int aRenderAry[ MAXGLYPHS ];
for( int i = 0; i < nGlyphs; ++i )
aRenderAry[ i ] = rGlyphPeer.GetGlyphId( rFont, aGlyphAry[i] );
- rRenderPeer.CompositeString32( rEntry.m_aPicture, aDst,
+ rRenderPeer.CompositeString32( rEntry.m_aPicture, aDstPic,
aGlyphSet, aPos.X(), aPos.Y(), aRenderAry, nGlyphs );
}
-
- // cleanup
- rRenderPeer.FreePicture( aDst );
}
//--------------------------------------------------------------------------
@@ -1703,6 +1696,31 @@ SalLayout* X11SalGraphics::GetTextLayout( ImplLayoutArgs& rArgs, int nFallbackLe
//--------------------------------------------------------------------------
+SystemFontData X11SalGraphics::GetSysFontData( int nFallbacklevel ) const
+{
+ SystemFontData aSysFontData;
+ aSysFontData.nSize = sizeof( SystemFontData );
+ aSysFontData.nFontId = 0;
+
+ if (nFallbacklevel >= MAX_FALLBACK) nFallbacklevel = MAX_FALLBACK - 1;
+ if (nFallbacklevel < 0 ) nFallbacklevel = 0;
+
+ if (mpServerFont[nFallbacklevel] != NULL)
+ {
+ ServerFont* rFont = mpServerFont[nFallbacklevel];
+ aSysFontData.nFontId = rFont->GetFtFace();
+ aSysFontData.nFontFlags = rFont->GetLoadFlags();
+ aSysFontData.bFakeBold = rFont->NeedsArtificialBold();
+ aSysFontData.bFakeItalic = rFont->NeedsArtificialItalic();
+ aSysFontData.bAntialias = rFont->GetAntialiasAdvice();
+ aSysFontData.bVerticalCharacterType = rFont->GetFontSelData().mbVertical;
+ }
+
+ return aSysFontData;
+}
+
+//--------------------------------------------------------------------------
+
BOOL X11SalGraphics::CreateFontSubset(
const rtl::OUString& rToFile,
const ImplFontData* pFont,
diff --git a/vcl/unx/source/gdi/salprnpsp.cxx b/vcl/unx/source/gdi/salprnpsp.cxx
index b3fdfaef56ce..2cf4e3baedd3 100644
--- a/vcl/unx/source/gdi/salprnpsp.cxx
+++ b/vcl/unx/source/gdi/salprnpsp.cxx
@@ -126,37 +126,6 @@ inline int PtTo10Mu( int nPoints ) { return (int)((((double)nPoints)*35.27777778
inline int TenMuToPt( int nUnits ) { return (int)((((double)nUnits)/35.27777778)+0.5); }
-static struct
-{
- int width;
- int height;
- const char* name;
- int namelength;
- Paper paper;
-} aPaperTab[] =
-{
- { 29700, 42000, "A3", 2, PAPER_A3 },
- { 21000, 29700, "A4", 2, PAPER_A4 },
- { 14800, 21000, "A5", 2, PAPER_A5 },
- { 25000, 35300, "B4", 2, PAPER_B4 },
- { 17600, 25000, "B5", 2, PAPER_B5 },
- { 21600, 27900, "Letter", 6, PAPER_LETTER },
- { 21600, 35600, "Legal", 5, PAPER_LEGAL },
- { 27900, 43100, "Tabloid", 7, PAPER_TABLOID },
- { 0, 0, "USER", 4, PAPER_USER }
-};
-
-static Paper getPaperType( const String& rPaperName )
-{
- ByteString aPaper( rPaperName, RTL_TEXTENCODING_ISO_8859_1 );
- for( unsigned int i = 0; i < sizeof( aPaperTab )/sizeof( aPaperTab[0] ); i++ )
- {
- if( ! rtl_str_compareIgnoreAsciiCase( aPaper.GetBuffer(), aPaperTab[i].name ) )
- return aPaperTab[i].paper;
- }
- return PAPER_USER;
-}
-
static void copyJobDataToJobSetup( ImplJobSetup* pJobSetup, JobData& rData )
{
pJobSetup->meOrientation = (Orientation)(rData.m_eOrientation == orientation::Landscape ? ORIENTATION_LANDSCAPE : ORIENTATION_PORTRAIT);
@@ -166,7 +135,8 @@ static void copyJobDataToJobSetup( ImplJobSetup* pJobSetup, JobData& rData )
int width, height;
rData.m_aContext.getPageSize( aPaper, width, height );
- pJobSetup->mePaperFormat = getPaperType( aPaper );
+ pJobSetup->mePaperFormat = PaperInfo::fromPSName(OUStringToOString( aPaper, RTL_TEXTENCODING_ISO_8859_1 ));
+
pJobSetup->mnPaperWidth = 0;
pJobSetup->mnPaperHeight = 0;
if( pJobSetup->mePaperFormat == PAPER_USER )
@@ -248,7 +218,7 @@ static bool passFileToCommandLine( const String& rFilename, const String& rComma
struct stat aStat;
if( stat( aFilename.GetBuffer(), &aStat ) )
fprintf( stderr, "stat( %s ) failed\n", aFilename.GetBuffer() );
- fprintf( stderr, "Tmp file %s has modes: %o\n", aFilename.GetBuffer(), aStat.st_mode );
+ fprintf( stderr, "Tmp file %s has modes: 0%03lo\n", aFilename.GetBuffer(), (long)aStat.st_mode );
#endif
const char* argv[4];
if( ! ( argv[ 0 ] = getenv( "SHELL" ) ) )
@@ -544,14 +514,9 @@ void PspSalInfoPrinter::InitPaperFormats( const ImplJobSetup* )
for( int i = 0; i < nValues; i++ )
{
const PPDValue* pValue = pKey->getValue( i );
- vcl::PaperInfo aInfo;
- aInfo.m_aPaperName = pValue->m_aOptionTranslation;
- if( ! aInfo.m_aPaperName.Len() )
- aInfo.m_aPaperName = pValue->m_aOption;
int nWidth = 0, nHeight = 0;
m_aJobData.m_pParser->getPaperDimension( pValue->m_aOption, nWidth, nHeight );
- aInfo.m_nPaperWidth = (unsigned long)((PtTo10Mu( nWidth )+50)/100);
- aInfo.m_nPaperHeight = (unsigned long)((PtTo10Mu( nHeight )+50)/100);
+ PaperInfo aInfo(PtTo10Mu( nWidth ), PtTo10Mu( nHeight ));
m_aPaperFormats.push_back( aInfo );
}
}
@@ -730,7 +695,7 @@ BOOL PspSalInfoPrinter::SetData(
TenMuToPt( pJobSetup->mnPaperWidth ),
TenMuToPt( pJobSetup->mnPaperHeight ) );
else
- aPaper = String( ByteString( aPaperTab[ pJobSetup->mePaperFormat ].name ), RTL_TEXTENCODING_ISO_8859_1 );
+ aPaper = rtl::OStringToOUString(PaperInfo::toPSName(pJobSetup->mePaperFormat), RTL_TEXTENCODING_ISO_8859_1);
pKey = aData.m_pParser->getKey( String( RTL_CONSTASCII_USTRINGPARAM( "PageSize" ) ) );
pValue = pKey ? pKey->getValueCaseInsensitive( aPaper ) : NULL;
diff --git a/vcl/unx/source/gdi/salvd.cxx b/vcl/unx/source/gdi/salvd.cxx
index 3e00dcb63bef..66e582e231b7 100644
--- a/vcl/unx/source/gdi/salvd.cxx
+++ b/vcl/unx/source/gdi/salvd.cxx
@@ -31,9 +31,9 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_vcl.hxx"
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/extensions/Xrender.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <salunx.h>
#include <saldata.hxx>
@@ -121,16 +121,14 @@ void X11SalGraphics::Init( X11SalVirtualDevice *pDevice, SalColormap* pColormap,
if (m_pDeleteColormap != pOrigDeleteColormap)
delete pOrigDeleteColormap;
- hDrawable_ = pDevice->GetDrawable();
+ const Drawable aVdevDrawable = pDevice->GetDrawable();
+ SetDrawable( aVdevDrawable, m_nScreen );
+
m_pVDev = pDevice;
m_pFrame = NULL;
bWindow_ = pDisplay->IsDisplay();
bVirDev_ = TRUE;
-
- nPenPixel_ = GetPixel( nPenColor_ );
- nTextPixel_ = GetPixel( nTextColor_ );
- nBrushPixel_ = GetPixel( nBrushColor_ );
}
// -=-= SalVirDevData / SalVirtualDevice -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@@ -274,3 +272,4 @@ void X11SalVirtualDevice::GetSize( long& rWidth, long& rHeight )
rWidth = GetWidth();
rHeight = GetHeight();
}
+
diff --git a/vcl/unx/source/gdi/xrender_peer.cxx b/vcl/unx/source/gdi/xrender_peer.cxx
index 861bf0e454aa..d8f2045c6fde 100644
--- a/vcl/unx/source/gdi/xrender_peer.cxx
+++ b/vcl/unx/source/gdi/xrender_peer.cxx
@@ -82,7 +82,7 @@ void XRenderPeer::InitRenderLib()
// we don't know if we are running on a system with xrender library
// we don't want to install system libraries ourselves
// => load them dynamically when they are there
- OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( "libXrender.so.1" ));
+ const OUString aLibName( RTL_CONSTASCII_USTRINGPARAM( "libXrender.so.1" ));
mpRenderLib = osl_loadModule( aLibName.pData, SAL_LOADMODULE_DEFAULT );
if( !mpRenderLib ) {
#ifdef DEBUG
@@ -93,98 +93,81 @@ void XRenderPeer::InitRenderLib()
return;
}
- OUString aQueryExtensionFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderQueryExtension"));
oslGenericFunction pFunc;
- pFunc = osl_getFunctionSymbol( mpRenderLib, aQueryExtensionFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderQueryExtension" );
if( !pFunc ) return;
mpXRenderQueryExtension = (Bool(*)(Display*,int*,int*))pFunc;
- OUString aQueryVersionFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderQueryVersion"));
- pFunc = osl_getFunctionSymbol( mpRenderLib, aQueryVersionFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderQueryVersion" );
if( !pFunc ) return;
mpXRenderQueryVersion = (void(*)(Display*,int*,int*))pFunc;
- OUString aVisFormatFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderFindVisualFormat"));
- pFunc = osl_getFunctionSymbol( mpRenderLib, aVisFormatFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderFindVisualFormat" );
if( !pFunc ) return;
mpXRenderFindVisualFormat = (XRenderPictFormat*(*)(Display*,Visual*))pFunc;
- OUString aStdFormatFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderFindStandardFormat"));
- pFunc = osl_getFunctionSymbol( mpRenderLib, aStdFormatFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderFindStandardFormat" );
if( !pFunc ) return;
mpXRenderFindStandardFormat = (XRenderPictFormat*(*)(Display*,int))pFunc;
- OUString aFmtFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderFindFormat"));
- pFunc = osl_getFunctionSymbol( mpRenderLib, aFmtFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderFindFormat" );
if( !pFunc ) return;
mpXRenderFindFormat = (XRenderPictFormat*(*)(Display*,unsigned long,
const XRenderPictFormat*,int))pFunc;
- OUString aCreatGlyphFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderCreateGlyphSet"));
- pFunc = osl_getFunctionSymbol( mpRenderLib, aCreatGlyphFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderCreateGlyphSet" );
if( !pFunc ) return;
mpXRenderCreateGlyphSet = (GlyphSet(*)(Display*,const XRenderPictFormat*))pFunc;
- OUString aFreeGlyphFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderFreeGlyphSet"));
- pFunc = osl_getFunctionSymbol( mpRenderLib, aFreeGlyphFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderFreeGlyphSet" );
if( !pFunc ) return;
mpXRenderFreeGlyphSet = (void(*)(Display*,GlyphSet))pFunc;
- OUString aAddGlyphFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderAddGlyphs"));
- pFunc = osl_getFunctionSymbol( mpRenderLib, aAddGlyphFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderAddGlyphs" );
if( !pFunc ) return;
mpXRenderAddGlyphs = (void(*)(Display*,GlyphSet,Glyph*,const XGlyphInfo*,
int,const char*,int))pFunc;
- OUString aFreeGlyphsFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderFreeGlyphs"));
- pFunc = osl_getFunctionSymbol( mpRenderLib, aFreeGlyphsFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderFreeGlyphs" );
if( !pFunc ) return;
mpXRenderFreeGlyphs = (void(*)(Display*,GlyphSet,Glyph*,int))pFunc;
- OUString aCompStringFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderCompositeString32"));
- pFunc = osl_getFunctionSymbol( mpRenderLib, aCompStringFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderCompositeString32" );
if( !pFunc ) return;
mpXRenderCompositeString32 = (void(*)(Display*,int,Picture,Picture,
const XRenderPictFormat*,GlyphSet,int,int,int,int,const unsigned*,int))pFunc;
- OUString aCreatPicFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderCreatePicture"));
- pFunc = osl_getFunctionSymbol( mpRenderLib, aCreatPicFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderCreatePicture" );
if( !pFunc ) return;
mpXRenderCreatePicture = (Picture(*)(Display*,Drawable,const XRenderPictFormat*,
unsigned long,const XRenderPictureAttributes*))pFunc;
- OUString aSetClipFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderSetPictureClipRegion"));
- pFunc = osl_getFunctionSymbol( mpRenderLib, aSetClipFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderSetPictureClipRegion" );
if( !pFunc ) return;
mpXRenderSetPictureClipRegion = (void(*)(Display*,Picture,XLIB_Region))pFunc;
- OUString aFreePicFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderFreePicture"));
- pFunc = osl_getFunctionSymbol( mpRenderLib, aFreePicFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderFreePicture" );
if( !pFunc ) return;
mpXRenderFreePicture = (void(*)(Display*,Picture))pFunc;
- OUString aRenderCompositeFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderComposite"));
- pFunc = osl_getFunctionSymbol( mpRenderLib, aRenderCompositeFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderComposite" );
if( !pFunc ) return;
mpXRenderComposite = (void(*)(Display*,int,Picture,Picture,Picture,
int,int,int,int,int,int,unsigned,unsigned))pFunc;
- OUString aFillRectangleFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderFillRectangle"));
- pFunc=osl_getFunctionSymbol( mpRenderLib, aFillRectangleFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderFillRectangle" );
if( !pFunc ) return;
mpXRenderFillRectangle = (void(*)(Display*,int,Picture,const XRenderColor*,
int,int,unsigned int,unsigned int))pFunc;
- OUString aCompositeTrapsFuncName( RTL_CONSTASCII_USTRINGPARAM("XRenderCompositeTrapezoids"));
- pFunc=osl_getFunctionSymbol( mpRenderLib, aCompositeTrapsFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderCompositeTrapezoids" );
#if 0 // not having trapezoid support is supported
if( !pFunc ) return;
#endif
mpXRenderCompositeTrapezoids = (void(*)(Display*,int,Picture,Picture,
const XRenderPictFormat*,int,int,const XTrapezoid*,int))pFunc;
- OUString aAddTrapsFuncName( RTL_CONSTASCII_USTRINGPARAM("XRenderAddTraps"));
- pFunc=osl_getFunctionSymbol( mpRenderLib, aAddTrapsFuncName.pData);
+ pFunc = osl_getAsciiFunctionSymbol( mpRenderLib, "XRenderAddTraps" );
#if 0 // not having trapezoid support is supported
if( !pFunc ) return;
#endif
diff --git a/vcl/unx/source/gdi/xrender_peer.hxx b/vcl/unx/source/gdi/xrender_peer.hxx
index 24abd9d239e2..f1e2fd77a273 100644
--- a/vcl/unx/source/gdi/xrender_peer.hxx
+++ b/vcl/unx/source/gdi/xrender_peer.hxx
@@ -31,9 +31,9 @@
#ifndef _SV_XRENDER_PEER_HXX
#define _SV_XRENDER_PEER_HXX
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/extensions/Xrender.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <vcl/salgtype.hxx>
#include <osl/module.h>
diff --git a/vcl/unx/source/plugadapt/salplug.cxx b/vcl/unx/source/plugadapt/salplug.cxx
index 668493c6ccb3..0c791ca8091f 100644
--- a/vcl/unx/source/plugadapt/salplug.cxx
+++ b/vcl/unx/source/plugadapt/salplug.cxx
@@ -37,9 +37,9 @@
#include <rtl/ustrbuf.hxx>
#include <svunx.h>
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/Xatom.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <vcl/salinst.hxx>
#include <saldata.hxx>
@@ -79,8 +79,7 @@ static SalInstance* tryInstance( const OUString& rModuleBase )
SAL_LOADMODULE_DEFAULT );
if( aMod )
{
- OUString aSym( RTL_CONSTASCII_USTRINGPARAM( "create_SalInstance" ) );
- salFactoryProc aProc = (salFactoryProc)osl_getFunctionSymbol( aMod, aSym.pData );
+ salFactoryProc aProc = (salFactoryProc)osl_getAsciiFunctionSymbol( aMod, "create_SalInstance" );
if( aProc )
{
pInst = aProc( aMod );
@@ -113,7 +112,7 @@ static SalInstance* tryInstance( const OUString& rModuleBase )
{
#if OSL_DEBUG_LEVEL > 1
std::fprintf( stderr, "could not load symbol %s from shared object %s\n",
- OUStringToOString( aSym, RTL_TEXTENCODING_ASCII_US ).getStr(),
+ "create_SalInstance",
OUStringToOString( aModule, RTL_TEXTENCODING_ASCII_US ).getStr() );
#endif
osl_unloadModule( aMod );
diff --git a/vcl/unx/source/printer/printerinfomanager.cxx b/vcl/unx/source/printer/printerinfomanager.cxx
index cf5a4a886c41..b3e5b4667a6a 100644
--- a/vcl/unx/source/printer/printerinfomanager.cxx
+++ b/vcl/unx/source/printer/printerinfomanager.cxx
@@ -44,6 +44,8 @@
#include "tools/debug.hxx"
#include "tools/config.hxx"
+#include "i18npool/paper.hxx"
+
#include "rtl/strbuf.hxx"
#include "osl/thread.hxx"
@@ -154,77 +156,9 @@ void PrinterInfoManager::setCUPSDisabled( bool bDisable )
void PrinterInfoManager::initSystemDefaultPaper()
{
- bool bSuccess = false;
-
- // try libpaper
-
- // #i78617# workaround missing paperconf command
- FILE* pPipe = popen( "sh -c paperconf 2>/dev/null", "r" );
- if( pPipe )
- {
- char pBuffer[ 1024 ];
- *pBuffer = 0;
- fgets( pBuffer, sizeof(pBuffer)-1, pPipe );
- pclose( pPipe );
-
- ByteString aPaper( pBuffer );
- aPaper = WhitespaceToSpace( aPaper );
- if( aPaper.Len() )
- {
- m_aSystemDefaultPaper = OUString( OStringToOUString( aPaper, osl_getThreadTextEncoding() ) );
- bSuccess = true;
- #if OSL_DEBUG_LEVEL > 1
- fprintf( stderr, "paper from paperconf = %s\n", aPaper.GetBuffer() );
- #endif
- }
- if( bSuccess )
- return;
- }
-
- // default value is Letter for US (en_US), Cannada (en_CA, fr_CA); else A4
- // en will be interpreted as en_US
-
- // note: at this point m_aSystemDefaultPaper is set to "A4" from the constructor
-
- // check for LC_PAPER
- const char* pPaperLang = getenv( "LC_PAPER" );
- if( pPaperLang && *pPaperLang )
- {
- OString aLang( pPaperLang );
- if( aLang.getLength() > 5 )
- aLang = aLang.copy( 0, 5 );
- if( aLang.getLength() == 5 )
- {
- if( aLang.equalsIgnoreAsciiCase( "en_us" )
- || aLang.equalsIgnoreAsciiCase( "en_ca" )
- || aLang.equalsIgnoreAsciiCase( "fr_ca" )
- )
- m_aSystemDefaultPaper = OUString( RTL_CONSTASCII_USTRINGPARAM( "Letter" ) );
- }
- else if( aLang.getLength() == 2 && aLang.equalsIgnoreAsciiCase( "en" ) )
- m_aSystemDefaultPaper = OUString( RTL_CONSTASCII_USTRINGPARAM( "Letter" ) );
- return;
- }
-
- // use process locale to determine paper
- rtl_Locale* pLoc = NULL;
- osl_getProcessLocale( &pLoc );
- if( pLoc )
- {
- if( 0 == rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( pLoc->Language->buffer, pLoc->Language->length, "en") )
- {
- if( 0 == rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( pLoc->Country->buffer, pLoc->Country->length, "us")
- || 0 == rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( pLoc->Country->buffer, pLoc->Country->length, "ca")
- || pLoc->Country->length == 0
- )
- m_aSystemDefaultPaper = OUString( RTL_CONSTASCII_USTRINGPARAM( "Letter" ) );
- }
- else if( 0 == rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( pLoc->Language->buffer, pLoc->Language->length, "fr") )
- {
- if( 0 == rtl_ustr_ascii_compareIgnoreAsciiCase_WithLength( pLoc->Country->buffer, pLoc->Country->length, "ca") )
- m_aSystemDefaultPaper = OUString( RTL_CONSTASCII_USTRINGPARAM( "Letter" ) );
- }
- }
+ m_aSystemDefaultPaper = rtl::OStringToOUString(
+ PaperInfo::toPSName(PaperInfo::getSystemDefaultPaper().getPaper()),
+ RTL_TEXTENCODING_UTF8);
}
// -----------------------------------------------------------------
diff --git a/vcl/unx/source/window/salframe.cxx b/vcl/unx/source/window/salframe.cxx
index 8f2bccebc443..04eb9cd32771 100644
--- a/vcl/unx/source/window/salframe.cxx
+++ b/vcl/unx/source/window/salframe.cxx
@@ -36,7 +36,7 @@
#include <stdlib.h>
#include <unistd.h>
-#include "prex.h"
+#include <tools/prex.h>
#include <X11/Xatom.h>
#include <X11/keysym.h>
#include "FWS.hxx"
@@ -44,7 +44,7 @@
#ifndef SOLARIS
#include <X11/extensions/dpms.h>
#endif
-#include "postx.h"
+#include <tools/postx.h>
#include "salunx.h"
#include "saldata.hxx"
@@ -72,6 +72,7 @@
#include "tools/debug.hxx"
#include "sal/alloca.h"
+#include <com/sun/star/uno/Exception.hpp>
#include <algorithm>
@@ -425,15 +426,26 @@ void X11SalFrame::Init( ULONG nSalFrameStyle, int nScreen, SystemParentData* pPa
if( IsOverrideRedirect() )
Attributes.override_redirect = True;
// default icon
- if( (nStyle_ & SAL_FRAME_STYLE_INTRO) == 0 &&
- SelectAppIconPixmap( pDisplay_, m_nScreen,
- mnIconID != 1 ? mnIconID :
- (mpParent ? mpParent->mnIconID : 1), 32,
- Hints.icon_pixmap, Hints.icon_mask ))
+ if( (nStyle_ & SAL_FRAME_STYLE_INTRO) == 0 )
{
- Hints.flags |= IconPixmapHint;
- if( Hints.icon_mask )
- Hints.flags |= IconMaskHint;
+ bool bOk=false;
+ try
+ {
+ bOk=SelectAppIconPixmap( pDisplay_, m_nScreen,
+ mnIconID != 1 ? mnIconID :
+ (mpParent ? mpParent->mnIconID : 1), 32,
+ Hints.icon_pixmap, Hints.icon_mask );
+ }
+ catch( com::sun::star::uno::Exception& )
+ {
+ // can happen - no ucb during early startup
+ }
+ if( bOk )
+ {
+ Hints.flags |= IconPixmapHint;
+ if( Hints.icon_mask )
+ Hints.flags |= IconMaskHint;
+ }
}
// find the top level frame of the transience hierarchy
@@ -2799,6 +2811,11 @@ static USHORT sal_GetCode( int state )
if( state & Mod1Mask )
nCode |= KEY_MOD2;
+ // Map Meta/Super modifier to MOD3 on all Unix systems
+ // except Mac OS X
+ if( (state & Mod3Mask) )
+ nCode |= KEY_MOD3;
+
return nCode;
}
@@ -3167,7 +3184,8 @@ long X11SalFrame::HandleKeyEvent( XKeyEvent *pEvent )
if( nKeySym == XK_Shift_L || nKeySym == XK_Shift_R
|| nKeySym == XK_Control_L || nKeySym == XK_Control_R
|| nKeySym == XK_Alt_L || nKeySym == XK_Alt_R
- || nKeySym == XK_Meta_L || nKeySym == XK_Meta_R )
+ || nKeySym == XK_Meta_L || nKeySym == XK_Meta_R
+ || nKeySym == XK_Super_L || nKeySym == XK_Super_R )
{
SalKeyModEvent aModEvt;
aModEvt.mnModKeyCode = 0;
@@ -3211,6 +3229,18 @@ long X11SalFrame::HandleKeyEvent( XKeyEvent *pEvent )
nExtModMask = MODKEY_RSHIFT;
nModMask = KEY_SHIFT;
break;
+ // Map Meta/Super keys to MOD3 modifier on all Unix systems
+ // except Mac OS X
+ case XK_Meta_L:
+ case XK_Super_L:
+ nExtModMask = MODKEY_LMOD3;
+ nModMask = KEY_MOD3;
+ break;
+ case XK_Meta_R:
+ case XK_Super_R:
+ nExtModMask = MODKEY_RMOD3;
+ nModMask = KEY_MOD3;
+ break;
}
if( pEvent->type == KeyRelease )
{
diff --git a/vcl/unx/source/window/salobj.cxx b/vcl/unx/source/window/salobj.cxx
index fd3a12ed2d34..eed6264f00bc 100644
--- a/vcl/unx/source/window/salobj.cxx
+++ b/vcl/unx/source/window/salobj.cxx
@@ -31,10 +31,10 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_vcl.hxx"
-#include <prex.h>
+#include <tools/prex.h>
#include <X11/Xlib.h>
#include <X11/extensions/shape.h>
-#include <postx.h>
+#include <tools/postx.h>
#include <salunx.h>
#include <salstd.hxx>
@@ -474,6 +474,8 @@ static USHORT sal_GetCode( int state )
nCode |= KEY_MOD1;
if( state & Mod1Mask )
nCode |= KEY_MOD2;
+ if( state & Mod3Mask )
+ nCode |= KEY_MOD3;
return nCode;
}
diff --git a/vcl/util/linksvp/makefile.mk b/vcl/util/linksvp/makefile.mk
index 8a3c840ba627..e5e82323af5c 100644
--- a/vcl/util/linksvp/makefile.mk
+++ b/vcl/util/linksvp/makefile.mk
@@ -54,15 +54,10 @@ SHL1LIBS=$(LIB1TARGET)
SHL1DEPN=$(LB)$/libvcl$(DLLPOSTFIX)$(DLLPOST)
SHL1STDLIBS=\
$(VCLLIB)\
+ $(I18NPAPERLIB)\
$(BASEBMPLIB)\
$(BASEGFXLIB)\
- $(SOTLIB) \
- $(UNOTOOLSLIB) \
$(TOOLSLIB) \
- $(COMPHELPERLIB) \
- $(UCBHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
$(VOSLIB) \
$(SALLIB)
.ENDIF # GUIBASE unx
diff --git a/vcl/util/makefile.mk b/vcl/util/makefile.mk
index 6f5fd8a99522..96c28980118f 100644
--- a/vcl/util/makefile.mk
+++ b/vcl/util/makefile.mk
@@ -170,8 +170,9 @@ SHL1STDLIBS+=\
$(SOTLIB) \
$(UNOTOOLSLIB) \
$(TOOLSLIB) \
+ $(I18NPAPERLIB) \
$(I18NISOLANGLIB) \
- $(I18NUTILLIB) \
+ $(I18NUTILLIB) \
$(COMPHELPERLIB) \
$(UCBHELPERLIB) \
$(CPPUHELPERLIB) \
@@ -264,13 +265,8 @@ SHL2DEPN=$(SHL1IMPLIBN) $(SHL1TARGETN)
# libs for generic plugin
SHL2STDLIBS=\
$(VCLLIB)\
- $(SOTLIB) \
- $(UNOTOOLSLIB) \
+ $(I18NPAPERLIB) \
$(TOOLSLIB) \
- $(COMPHELPERLIB) \
- $(UCBHELPERLIB) \
- $(CPPUHELPERLIB) \
- $(CPPULIB) \
$(VOSLIB) \
$(BASEGFXLIB) \
$(SALLIB)
@@ -344,11 +340,7 @@ SHL4NOCHECK=TRUE
SHL4STDLIBS+=-l$(SHL2TARGET)
SHL4STDLIBS+=\
$(VCLLIB) \
- $(SOTLIB) \
- $(UNOTOOLSLIB) \
$(TOOLSLIB) \
- $(COMPHELPERLIB) \
- $(UCBHELPERLIB) \
$(CPPUHELPERLIB) \
$(CPPULIB) \
$(VOSLIB) \
diff --git a/vcl/win/inc/salgdi.h b/vcl/win/inc/salgdi.h
index f9d4681e0e6e..0475ea4a193e 100644
--- a/vcl/win/inc/salgdi.h
+++ b/vcl/win/inc/salgdi.h
@@ -352,6 +352,7 @@ public:
virtual BOOL IsNativeControlSupported( ControlType nType, ControlPart nPart );
virtual SystemGraphicsData GetGraphicsData() const;
+ virtual SystemFontData GetSysFontData( int nFallbacklevel ) const;
};
// Init/Deinit Graphics
diff --git a/vcl/win/source/gdi/MAKEFILE.MK b/vcl/win/source/gdi/MAKEFILE.MK
index d50abc1b5aa3..a6d84d41f3ea 100644
--- a/vcl/win/source/gdi/MAKEFILE.MK
+++ b/vcl/win/source/gdi/MAKEFILE.MK
@@ -44,7 +44,6 @@ TARGET=salgdi
# --- #105371#
.IF "$(COM)"=="GCC"
-CDEFS += -UWINVER -DWINVER=0x0400
.ELSE
CFLAGS += -DWINVER=0x0400
.ENDIF
diff --git a/vcl/win/source/gdi/salgdi3.cxx b/vcl/win/source/gdi/salgdi3.cxx
index 16c055209088..99f276faa964 100644
--- a/vcl/win/source/gdi/salgdi3.cxx
+++ b/vcl/win/source/gdi/salgdi3.cxx
@@ -34,6 +34,10 @@
#include <string.h>
#include <malloc.h>
+#include <tools/prewin.h>
+#include <windows.h>
+#include <tools/postwin.h>
+#include <vcl/sysdata.hxx>
#include "tools/svwin.h"
#include "wincomp.hxx"
@@ -2849,3 +2853,26 @@ void WinSalGraphics::DrawServerFontLayout( const ServerFontLayout& )
{}
//--------------------------------------------------------------------------
+
+SystemFontData WinSalGraphics::GetSysFontData( int nFallbacklevel ) const
+{
+ SystemFontData aSysFontData;
+
+ if (nFallbacklevel >= MAX_FALLBACK) nFallbacklevel = MAX_FALLBACK - 1;
+ if (nFallbacklevel < 0 ) nFallbacklevel = 0;
+
+ aSysFontData.nSize = sizeof( SystemFontData );
+ aSysFontData.hFont = mhFonts[nFallbacklevel];
+ aSysFontData.bFakeBold = false;
+ aSysFontData.bFakeItalic = false;
+ aSysFontData.bAntialias = true;
+ aSysFontData.bVerticalCharacterType = false;
+
+ OSL_TRACE("\r\n:WinSalGraphics::GetSysFontData(): FontID: %p, Fallback level: %d",
+ aSysFontData.hFont,
+ nFallbacklevel);
+
+ return aSysFontData;
+}
+
+//--------------------------------------------------------------------------
diff --git a/vcl/win/source/gdi/salgdi_gdiplus.cxx b/vcl/win/source/gdi/salgdi_gdiplus.cxx
index 8709fc872540..5c00c786e22d 100644
--- a/vcl/win/source/gdi/salgdi_gdiplus.cxx
+++ b/vcl/win/source/gdi/salgdi_gdiplus.cxx
@@ -64,75 +64,79 @@
void impAddB2DPolygonToGDIPlusGraphicsPath(Gdiplus::GraphicsPath& rPath, const basegfx::B2DPolygon& rPolygon)
{
- const sal_uInt32 nCount(rPolygon.count());
-
- if(nCount)
- {
- const sal_uInt32 nEdgeCount(rPolygon.isClosed() ? nCount : nCount - 1);
- const bool bControls(rPolygon.areControlPointsUsed());
- basegfx::B2DPoint aCurr(rPolygon.getB2DPoint(0));
- Gdiplus::PointF aFCurr(Gdiplus::REAL(aCurr.getX()), Gdiplus::REAL(aCurr.getY()));
-
- for(sal_uInt32 a(0); a < nEdgeCount; a++)
- {
- const sal_uInt32 nNextIndex((a + 1) % nCount);
- const basegfx::B2DPoint aNext(rPolygon.getB2DPoint(nNextIndex));
- const Gdiplus::PointF aFNext(Gdiplus::REAL(aNext.getX()), Gdiplus::REAL(aNext.getY()));
-
- if(bControls && (rPolygon.isNextControlPointUsed(a) || rPolygon.isPrevControlPointUsed(nNextIndex)))
- {
- const basegfx::B2DPoint aCa(rPolygon.getNextControlPoint(a));
- const basegfx::B2DPoint aCb(rPolygon.getPrevControlPoint(nNextIndex));
-
- rPath.AddBezier(
- aFCurr,
- Gdiplus::PointF(Gdiplus::REAL(aCa.getX()), Gdiplus::REAL(aCa.getY())),
- Gdiplus::PointF(Gdiplus::REAL(aCb.getX()), Gdiplus::REAL(aCb.getY())),
- aFNext);
- }
- else
- {
- rPath.AddLine(aFCurr, aFNext);
- }
-
- if(a + 1 < nEdgeCount)
- {
- aCurr = aNext;
- aFCurr = aFNext;
- }
- }
- }
+ const sal_uInt32 nCount(rPolygon.count());
+
+ if(nCount)
+ {
+ const sal_uInt32 nEdgeCount(rPolygon.isClosed() ? nCount : nCount - 1);
+ const bool bControls(rPolygon.areControlPointsUsed());
+ basegfx::B2DPoint aCurr(rPolygon.getB2DPoint(0));
+ Gdiplus::PointF aFCurr(Gdiplus::REAL(aCurr.getX()), Gdiplus::REAL(aCurr.getY()));
+
+ for(sal_uInt32 a(0); a < nEdgeCount; a++)
+ {
+ const sal_uInt32 nNextIndex((a + 1) % nCount);
+ const basegfx::B2DPoint aNext(rPolygon.getB2DPoint(nNextIndex));
+ const Gdiplus::PointF aFNext(Gdiplus::REAL(aNext.getX()), Gdiplus::REAL(aNext.getY()));
+
+ if(bControls && (rPolygon.isNextControlPointUsed(a) || rPolygon.isPrevControlPointUsed(nNextIndex)))
+ {
+ const basegfx::B2DPoint aCa(rPolygon.getNextControlPoint(a));
+ const basegfx::B2DPoint aCb(rPolygon.getPrevControlPoint(nNextIndex));
+
+ rPath.AddBezier(
+ aFCurr,
+ Gdiplus::PointF(Gdiplus::REAL(aCa.getX()), Gdiplus::REAL(aCa.getY())),
+ Gdiplus::PointF(Gdiplus::REAL(aCb.getX()), Gdiplus::REAL(aCb.getY())),
+ aFNext);
+ }
+ else
+ {
+ rPath.AddLine(aFCurr, aFNext);
+ }
+
+ if(a + 1 < nEdgeCount)
+ {
+ aCurr = aNext;
+ aFCurr = aFNext;
+ }
+ }
+ }
}
bool WinSalGraphics::drawPolyPolygon( const ::basegfx::B2DPolyPolygon& rPolyPolygon, double fTransparency)
{
- const sal_uInt32 nCount(rPolyPolygon.count());
+ const sal_uInt32 nCount(rPolyPolygon.count());
if(mbBrush && nCount && (fTransparency >= 0.0 && fTransparency < 1.0))
{
- Gdiplus::Graphics aGraphics(mhDC);
+ Gdiplus::Graphics aGraphics(mhDC);
const sal_uInt8 aTrans((sal_uInt8)255 - (sal_uInt8)basegfx::fround(fTransparency * 255.0));
- Gdiplus::Color aTestColor(aTrans, SALCOLOR_RED(maFillColor), SALCOLOR_GREEN(maFillColor), SALCOLOR_BLUE(maFillColor));
- Gdiplus::SolidBrush aTestBrush(aTestColor);
- Gdiplus::GraphicsPath aPath;
+ Gdiplus::Color aTestColor(aTrans, SALCOLOR_RED(maFillColor), SALCOLOR_GREEN(maFillColor), SALCOLOR_BLUE(maFillColor));
+ Gdiplus::SolidBrush aTestBrush(aTestColor);
+ Gdiplus::GraphicsPath aPath;
for(sal_uInt32 a(0); a < nCount; a++)
{
- aPath.StartFigure();
+ if(0 != a)
+ {
+ aPath.StartFigure(); // #i101491# not needed for first run
+ }
+
impAddB2DPolygonToGDIPlusGraphicsPath(aPath, rPolyPolygon.getB2DPolygon(a));
aPath.CloseFigure();
}
if(getAntiAliasB2DDraw())
{
- aGraphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
- }
- else
- {
- aGraphics.SetSmoothingMode(Gdiplus::SmoothingModeNone);
- }
-
- aGraphics.FillPath(&aTestBrush, &aPath);
+ aGraphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
+ }
+ else
+ {
+ aGraphics.SetSmoothingMode(Gdiplus::SmoothingModeNone);
+ }
+
+ aGraphics.FillPath(&aTestBrush, &aPath);
}
return true;
@@ -140,53 +144,59 @@ bool WinSalGraphics::drawPolyPolygon( const ::basegfx::B2DPolyPolygon& rPolyPoly
bool WinSalGraphics::drawPolyLine(const basegfx::B2DPolygon& rPolygon, const basegfx::B2DVector& rLineWidths, basegfx::B2DLineJoin eLineJoin)
{
- const sal_uInt32 nCount(rPolygon.count());
+ const sal_uInt32 nCount(rPolygon.count());
if(mbPen && nCount)
{
- Gdiplus::Graphics aGraphics(mhDC);
- Gdiplus::Color aTestColor(255, SALCOLOR_RED(maLineColor), SALCOLOR_GREEN(maLineColor), SALCOLOR_BLUE(maLineColor));
- Gdiplus::Pen aTestPen(aTestColor, Gdiplus::REAL(rLineWidths.getX()));
- Gdiplus::GraphicsPath aPath;
-
- switch(eLineJoin)
- {
+ Gdiplus::Graphics aGraphics(mhDC);
+ Gdiplus::Color aTestColor(255, SALCOLOR_RED(maLineColor), SALCOLOR_GREEN(maLineColor), SALCOLOR_BLUE(maLineColor));
+ Gdiplus::Pen aTestPen(aTestColor, Gdiplus::REAL(rLineWidths.getX()));
+ Gdiplus::GraphicsPath aPath;
+
+ switch(eLineJoin)
+ {
default : // basegfx::B2DLINEJOIN_NONE :
{
break;
}
case basegfx::B2DLINEJOIN_BEVEL :
{
- aTestPen.SetLineJoin(Gdiplus::LineJoinBevel);
+ aTestPen.SetLineJoin(Gdiplus::LineJoinBevel);
break;
}
case basegfx::B2DLINEJOIN_MIDDLE :
case basegfx::B2DLINEJOIN_MITER :
{
const Gdiplus::REAL aMiterLimit(15.0);
- aTestPen.SetMiterLimit(aMiterLimit);
- aTestPen.SetLineJoin(Gdiplus::LineJoinMiter);
+ aTestPen.SetMiterLimit(aMiterLimit);
+ aTestPen.SetLineJoin(Gdiplus::LineJoinMiter);
break;
}
case basegfx::B2DLINEJOIN_ROUND :
{
- aTestPen.SetLineJoin(Gdiplus::LineJoinRound);
+ aTestPen.SetLineJoin(Gdiplus::LineJoinRound);
break;
}
- }
+ }
impAddB2DPolygonToGDIPlusGraphicsPath(aPath, rPolygon);
-
- if(getAntiAliasB2DDraw())
- {
- aGraphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
- }
- else
- {
- aGraphics.SetSmoothingMode(Gdiplus::SmoothingModeNone);
- }
-
- aGraphics.DrawPath(&aTestPen, &aPath);
+
+ if(rPolygon.isClosed())
+ {
+ // #i101491# needed to create the correct line joins
+ aPath.CloseFigure();
+ }
+
+ if(getAntiAliasB2DDraw())
+ {
+ aGraphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
+ }
+ else
+ {
+ aGraphics.SetSmoothingMode(Gdiplus::SmoothingModeNone);
+ }
+
+ aGraphics.DrawPath(&aTestPen, &aPath);
}
return true;
diff --git a/vcl/win/source/gdi/salnativewidgets-luna.cxx b/vcl/win/source/gdi/salnativewidgets-luna.cxx
index b99f0e2a6ce0..5a5703e10944 100644
--- a/vcl/win/source/gdi/salnativewidgets-luna.cxx
+++ b/vcl/win/source/gdi/salnativewidgets-luna.cxx
@@ -100,18 +100,12 @@ VisualStylesAPI::VisualStylesAPI()
if ( mhModule )
{
- OUString queryFuncName( RTL_CONSTASCII_USTRINGPARAM( "OpenThemeData" ) );
- lpfnOpenThemeData = (OpenThemeData_Proc_T) osl_getSymbol( mhModule, queryFuncName.pData );
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "CloseThemeData" ) );
- lpfnCloseThemeData = (CloseThemeData_Proc_T) osl_getSymbol( mhModule, queryFuncName.pData );
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "GetThemeBackgroundContentRect" ) );
- lpfnGetThemeBackgroundContentRect = (GetThemeBackgroundContentRect_Proc_T) osl_getSymbol( mhModule, queryFuncName.pData );
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "DrawThemeBackground" ) );
- lpfnDrawThemeBackground = (DrawThemeBackground_Proc_T) osl_getSymbol( mhModule, queryFuncName.pData );
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "DrawThemeText" ) );
- lpfnDrawThemeText = (DrawThemeText_Proc_T) osl_getSymbol( mhModule, queryFuncName.pData );
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "GetThemePartSize" ) );
- lpfnGetThemePartSize = (GetThemePartSize_Proc_T) osl_getSymbol( mhModule, queryFuncName.pData );
+ lpfnOpenThemeData = (OpenThemeData_Proc_T)osl_getAsciiFunctionSymbol( mhModule, "OpenThemeData" );
+ lpfnCloseThemeData = (CloseThemeData_Proc_T)osl_getAsciiFunctionSymbol( mhModule, "CloseThemeData" );
+ lpfnGetThemeBackgroundContentRect = (GetThemeBackgroundContentRect_Proc_T)osl_getAsciiFunctionSymbol( mhModule, "GetThemeBackgroundContentRect" );
+ lpfnDrawThemeBackground = (DrawThemeBackground_Proc_T)osl_getAsciiFunctionSymbol( mhModule, "DrawThemeBackground" );
+ lpfnDrawThemeText = (DrawThemeText_Proc_T)osl_getAsciiFunctionSymbol( mhModule, "DrawThemeText" );
+ lpfnGetThemePartSize = (GetThemePartSize_Proc_T)osl_getAsciiFunctionSymbol( mhModule, "GetThemePartSize" );
}
else
{
diff --git a/vcl/win/source/gdi/salprn.cxx b/vcl/win/source/gdi/salprn.cxx
index cc359da97cd9..ecf91aea7c1b 100644
--- a/vcl/win/source/gdi/salprn.cxx
+++ b/vcl/win/source/gdi/salprn.cxx
@@ -894,6 +894,24 @@ static void ImplDevModeToJobSetup( WinSalInfoPrinter* pPrinter, ImplJobSetup* pS
}
switch( CHOOSE_DEVMODE(dmPaperSize) )
{
+ case( DMPAPER_LETTER ):
+ pSetupData->mePaperFormat = PAPER_LETTER;
+ break;
+ case( DMPAPER_TABLOID ):
+ pSetupData->mePaperFormat = PAPER_TABLOID;
+ break;
+ case( DMPAPER_LEDGER ):
+ pSetupData->mePaperFormat = PAPER_LEDGER;
+ break;
+ case( DMPAPER_LEGAL ):
+ pSetupData->mePaperFormat = PAPER_LEGAL;
+ break;
+ case( DMPAPER_STATEMENT ):
+ pSetupData->mePaperFormat = PAPER_STATEMENT;
+ break;
+ case( DMPAPER_EXECUTIVE ):
+ pSetupData->mePaperFormat = PAPER_EXECUTIVE;
+ break;
case( DMPAPER_A3 ):
pSetupData->mePaperFormat = PAPER_A3;
break;
@@ -903,20 +921,138 @@ static void ImplDevModeToJobSetup( WinSalInfoPrinter* pPrinter, ImplJobSetup* pS
case( DMPAPER_A5 ):
pSetupData->mePaperFormat = PAPER_A5;
break;
+ //See http://wiki.services.openoffice.org/wiki/DefaultPaperSize
+ //i.e.
+ //http://msdn.microsoft.com/en-us/library/dd319099(VS.85).aspx
+ //DMPAPER_B4 12 B4 (JIS) 257 x 364 mm
+ //http://partners.adobe.com/public/developer/en/ps/5003.PPD_Spec_v4.3.pdf
+ //also says that the MS DMPAPER_B4 is JIS, which makes most sense. And
+ //matches our Excel filter's belief about the matching XlPaperSize
+ //enumeration.
+ //
+ //http://msdn.microsoft.com/en-us/library/ms776398(VS.85).aspx said
+ ////"DMPAPER_B4 12 B4 (JIS) 250 x 354"
+ //which is bogus as it's either JIS 257 × 364 or ISO 250 × 353
+ //(cmc)
case( DMPAPER_B4 ):
- pSetupData->mePaperFormat = PAPER_B4;
+ pSetupData->mePaperFormat = PAPER_B4_JIS;
break;
case( DMPAPER_B5 ):
- pSetupData->mePaperFormat = PAPER_B5;
+ pSetupData->mePaperFormat = PAPER_B5_JIS;
break;
- case( DMPAPER_LETTER ):
+ case( DMPAPER_QUARTO ):
+ pSetupData->mePaperFormat = PAPER_QUARTO;
+ break;
+ case( DMPAPER_10X14 ):
+ pSetupData->mePaperFormat = PAPER_10x14;
+ break;
+ case( DMPAPER_NOTE ):
pSetupData->mePaperFormat = PAPER_LETTER;
break;
- case( DMPAPER_LEGAL ):
- pSetupData->mePaperFormat = PAPER_LEGAL;
+ case( DMPAPER_ENV_9 ):
+ pSetupData->mePaperFormat = PAPER_ENV_9;
break;
- case( DMPAPER_TABLOID ):
- pSetupData->mePaperFormat = PAPER_TABLOID;
+ case( DMPAPER_ENV_10 ):
+ pSetupData->mePaperFormat = PAPER_ENV_10;
+ break;
+ case( DMPAPER_ENV_11 ):
+ pSetupData->mePaperFormat = PAPER_ENV_11;
+ break;
+ case( DMPAPER_ENV_12 ):
+ pSetupData->mePaperFormat = PAPER_ENV_12;
+ break;
+ case( DMPAPER_ENV_14 ):
+ pSetupData->mePaperFormat = PAPER_ENV_14;
+ break;
+ case( DMPAPER_CSHEET ):
+ pSetupData->mePaperFormat = PAPER_C;
+ break;
+ case( DMPAPER_DSHEET ):
+ pSetupData->mePaperFormat = PAPER_D;
+ break;
+ case( DMPAPER_ESHEET ):
+ pSetupData->mePaperFormat = PAPER_E;
+ break;
+ case( DMPAPER_ENV_DL):
+ pSetupData->mePaperFormat = PAPER_ENV_DL;
+ break;
+ case( DMPAPER_ENV_C5):
+ pSetupData->mePaperFormat = PAPER_ENV_C5;
+ break;
+ case( DMPAPER_ENV_C3):
+ pSetupData->mePaperFormat = PAPER_ENV_C3;
+ break;
+ case( DMPAPER_ENV_C4):
+ pSetupData->mePaperFormat = PAPER_ENV_C4;
+ break;
+ case( DMPAPER_ENV_C6):
+ pSetupData->mePaperFormat = PAPER_ENV_C6;
+ break;
+ case( DMPAPER_ENV_C65):
+ pSetupData->mePaperFormat = PAPER_ENV_C65;
+ break;
+ case( DMPAPER_ENV_ITALY ):
+ pSetupData->mePaperFormat = PAPER_ENV_ITALY;
+ break;
+ case( DMPAPER_ENV_MONARCH ):
+ pSetupData->mePaperFormat = PAPER_ENV_MONARCH;
+ break;
+ case( DMPAPER_ENV_PERSONAL ):
+ pSetupData->mePaperFormat = PAPER_ENV_PERSONAL;
+ break;
+ case( DMPAPER_FANFOLD_US ):
+ pSetupData->mePaperFormat = PAPER_FANFOLD_US;
+ break;
+ case( DMPAPER_FANFOLD_STD_GERMAN ):
+ pSetupData->mePaperFormat = PAPER_FANFOLD_DE;
+ break;
+ case( DMPAPER_FANFOLD_LGL_GERMAN ):
+ pSetupData->mePaperFormat = PAPER_FANFOLD_LEGAL_DE;
+ break;
+ case( DMPAPER_ISO_B4 ):
+ pSetupData->mePaperFormat = PAPER_B4_ISO;
+ break;
+ case( DMPAPER_JAPANESE_POSTCARD ):
+ pSetupData->mePaperFormat = PAPER_POSTCARD_JP;
+ break;
+ case( DMPAPER_9X11 ):
+ pSetupData->mePaperFormat = PAPER_9x11;
+ break;
+ case( DMPAPER_10X11 ):
+ pSetupData->mePaperFormat = PAPER_10x11;
+ break;
+ case( DMPAPER_15X11 ):
+ pSetupData->mePaperFormat = PAPER_15x11;
+ break;
+ case( DMPAPER_ENV_INVITE ):
+ pSetupData->mePaperFormat = PAPER_ENV_INVITE;
+ break;
+ case( DMPAPER_A_PLUS ):
+ pSetupData->mePaperFormat = PAPER_A_PLUS;
+ break;
+ case( DMPAPER_B_PLUS ):
+ pSetupData->mePaperFormat = PAPER_B_PLUS;
+ break;
+ case( DMPAPER_LETTER_PLUS ):
+ pSetupData->mePaperFormat = PAPER_LETTER_PLUS;
+ break;
+ case( DMPAPER_A4_PLUS ):
+ pSetupData->mePaperFormat = PAPER_A4_PLUS;
+ break;
+ case( DMPAPER_A2 ):
+ pSetupData->mePaperFormat = PAPER_A2;
+ break;
+ case( DMPAPER_DBL_JAPANESE_POSTCARD ):
+ pSetupData->mePaperFormat = PAPER_DOUBLEPOSTCARD_JP;
+ break;
+ case( DMPAPER_A6 ):
+ pSetupData->mePaperFormat = PAPER_A6;
+ break;
+ case( DMPAPER_B6_JIS ):
+ pSetupData->mePaperFormat = PAPER_B6_JIS;
+ break;
+ case( DMPAPER_12X11 ):
+ pSetupData->mePaperFormat = PAPER_12x11;
break;
default:
pSetupData->mePaperFormat = PAPER_USER;
@@ -927,17 +1063,6 @@ static void ImplDevModeToJobSetup( WinSalInfoPrinter* pPrinter, ImplJobSetup* pS
// -----------------------------------------------------------------------
-static BOOL ImplPaperSizeEqual( short nPaperWidth1, short nPaperHeight1,
- short nPaperWidth2, short nPaperHeight2 )
-{
- const short PAPER_SLOPPY = 1; // 0.1 mm accuracy
-
- return ( (Abs( nPaperWidth1-nPaperWidth2 ) <= PAPER_SLOPPY) &&
- (Abs( nPaperHeight1-nPaperHeight2 ) <= PAPER_SLOPPY) );
-}
-
-// -----------------------------------------------------------------------
-
static void ImplJobSetupToDevMode( WinSalInfoPrinter* pPrinter, ImplJobSetup* pSetupData, ULONG nFlags )
{
if ( !pSetupData || !pSetupData->mpDriverData )
@@ -979,6 +1104,9 @@ static void ImplJobSetupToDevMode( WinSalInfoPrinter* pPrinter, ImplJobSetup* pS
switch( pSetupData->mePaperFormat )
{
+ case( PAPER_A2 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_A2;
+ break;
case( PAPER_A3 ):
CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_A3;
break;
@@ -988,11 +1116,8 @@ static void ImplJobSetupToDevMode( WinSalInfoPrinter* pPrinter, ImplJobSetup* pS
case( PAPER_A5 ):
CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_A5;
break;
- case( PAPER_B4 ):
- CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_B4;
- break;
- case( PAPER_B5 ):
- CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_B5;
+ case( PAPER_B4_ISO):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ISO_B4;
break;
case( PAPER_LETTER ):
CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_LETTER;
@@ -1003,6 +1128,136 @@ static void ImplJobSetupToDevMode( WinSalInfoPrinter* pPrinter, ImplJobSetup* pS
case( PAPER_TABLOID ):
CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_TABLOID;
break;
+#if 0
+ //http://msdn.microsoft.com/en-us/library/ms776398(VS.85).aspx
+ //DMPAPER_ENV_B6 is documented as:
+ //"DMPAPER_ENV_B6 35 Envelope B6 176 x 125 mm"
+ //which is the wrong way around, it is surely 125 x 176, i.e.
+ //compare DMPAPER_ENV_B4 and DMPAPER_ENV_B4 as
+ //DMPAPER_ENV_B4 33 Envelope B4 250 x 353 mm
+ //DMPAPER_ENV_B5 34 Envelope B5 176 x 250 mm
+ case( PAPER_B6_ISO ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_B6;
+ break;
+#endif
+ case( PAPER_ENV_C4 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_C4;
+ break;
+ case( PAPER_ENV_C5 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_C5;
+ break;
+ case( PAPER_ENV_C6 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_C6;
+ break;
+ case( PAPER_ENV_C65 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_C65;
+ break;
+ case( PAPER_ENV_DL ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_DL;
+ break;
+ case( PAPER_C ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_CSHEET;
+ break;
+ case( PAPER_D ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_DSHEET;
+ break;
+ case( PAPER_E ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ESHEET;
+ break;
+ case( PAPER_EXECUTIVE ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_EXECUTIVE;
+ break;
+ case( PAPER_FANFOLD_LEGAL_DE ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_FANFOLD_LGL_GERMAN;
+ break;
+ case( PAPER_ENV_MONARCH ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_MONARCH;
+ break;
+ case( PAPER_ENV_PERSONAL ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_PERSONAL;
+ break;
+ case( PAPER_ENV_9 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_9;
+ break;
+ case( PAPER_ENV_10 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_10;
+ break;
+ case( PAPER_ENV_11 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_11;
+ break;
+ case( PAPER_ENV_12 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_12;
+ break;
+ //See the comments on DMPAPER_B4 above
+ case( PAPER_B4_JIS ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_B4;
+ break;
+ case( PAPER_B5_JIS ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_B5;
+ break;
+ case( PAPER_B6_JIS ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_B6_JIS;
+ break;
+ case( PAPER_LEDGER ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_LEDGER;
+ break;
+ case( PAPER_STATEMENT ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_STATEMENT;
+ break;
+ case( PAPER_10x14 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_10X14;
+ break;
+ case( PAPER_ENV_14 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_14;
+ break;
+ case( PAPER_ENV_C3 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_C3;
+ break;
+ case( PAPER_ENV_ITALY ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_ITALY;
+ break;
+ case( PAPER_FANFOLD_US ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_FANFOLD_US;
+ break;
+ case( PAPER_FANFOLD_DE ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_FANFOLD_STD_GERMAN;
+ break;
+ case( PAPER_POSTCARD_JP ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_JAPANESE_POSTCARD;
+ break;
+ case( PAPER_9x11 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_9X11;
+ break;
+ case( PAPER_10x11 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_10X11;
+ break;
+ case( PAPER_15x11 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_15X11;
+ break;
+ case( PAPER_ENV_INVITE ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_ENV_INVITE;
+ break;
+ case( PAPER_A_PLUS ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_A_PLUS;
+ break;
+ case( PAPER_B_PLUS ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_B_PLUS;
+ break;
+ case( PAPER_LETTER_PLUS ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_LETTER_PLUS;
+ break;
+ case( PAPER_A4_PLUS ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_A4_PLUS;
+ break;
+ case( PAPER_DOUBLEPOSTCARD_JP ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_DBL_JAPANESE_POSTCARD;
+ break;
+ case( PAPER_A6 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_A6;
+ break;
+ case( PAPER_12x11 ):
+ CHOOSE_DEVMODE(dmPaperSize) = DMPAPER_12X11;
+ break;
default:
{
short nPaper = 0;
@@ -1023,13 +1278,11 @@ static void ImplJobSetupToDevMode( WinSalInfoPrinter* pPrinter, ImplJobSetup* pS
}
if ( (nPaperSizeCount == nPaperCount) && pPapers && pPaperSizes )
{
+ PaperInfo aInfo(pSetupData->mnPaperWidth, pSetupData->mnPaperHeight);
// compare paper formats and select a good match
for ( ULONG i = 0; i < nPaperCount; i++ )
{
- if ( ImplPaperSizeEqual( (short)(pSetupData->mnPaperWidth/10),
- (short)(pSetupData->mnPaperHeight/10),
- (short)pPaperSizes[i].x,
- (short)pPaperSizes[i].y ) )
+ if ( aInfo.sloppyEqual(PaperInfo(pPaperSizes[i].x*10, pPaperSizes[i].y*10)))
{
nPaper = pPapers[i];
break;
@@ -1041,12 +1294,10 @@ static void ImplJobSetupToDevMode( WinSalInfoPrinter* pPrinter, ImplJobSetup* pS
// all paper sizes with portrait orientation only!!
if ( !nPaper && nLandscapeAngle != 0 )
{
+ PaperInfo aRotatedInfo(pSetupData->mnPaperHeight, pSetupData->mnPaperWidth);
for ( ULONG i = 0; i < nPaperCount; i++ )
{
- if ( ImplPaperSizeEqual( (short)(pSetupData->mnPaperWidth/10),
- (short)(pSetupData->mnPaperHeight/10),
- (short)pPaperSizes[i].y,
- (short)pPaperSizes[i].x ) )
+ if ( aRotatedInfo.sloppyEqual(PaperInfo(pPaperSizes[i].x*10, pPaperSizes[i].y*10)) )
{
nPaper = pPapers[i];
break;
@@ -1284,11 +1535,7 @@ void WinSalInfoPrinter::InitPaperFormats( const ImplJobSetup* pSetupData )
ImplDeviceCaps( this, DC_PAPERNAMES, (BYTE*)pNamesBuffer, pSetupData );
for( DWORD i = 0; i < nCount; ++i )
{
- vcl::PaperInfo aInfo;
- aInfo.m_nPaperWidth = (pPaperSizes[i].x + 5) / 10;
- aInfo.m_nPaperHeight = (pPaperSizes[i].y + 5) / 10;
- pNamesBuffer[(i+1)*64-1] = '\0'; // make very long names zero terminated
- aInfo.m_aPaperName = pNamesBuffer + (i*64);
+ PaperInfo aInfo(pPaperSizes[i].x * 10, pPaperSizes[i].y * 10);
m_aPaperFormats.push_back( aInfo );
}
rtl_freeMemory( pNamesBuffer );
@@ -1299,11 +1546,7 @@ void WinSalInfoPrinter::InitPaperFormats( const ImplJobSetup* pSetupData )
ImplDeviceCaps( this, DC_PAPERNAMES, (BYTE*)pNamesBuffer, pSetupData );
for( DWORD i = 0; i < nCount; ++i )
{
- vcl::PaperInfo aInfo;
- aInfo.m_nPaperWidth = (pPaperSizes[i].x + 5) / 10;
- aInfo.m_nPaperHeight = (pPaperSizes[i].y + 5) / 10;
- pNamesBuffer[(i+1)*64-1] = '\0'; // make very long names zero terminated
- aInfo.m_aPaperName = ImplSalGetUniString( (const char*)(pNamesBuffer + (i*64)) );
+ PaperInfo aInfo(pPaperSizes[i].x * 10, pPaperSizes[i].y * 10);
m_aPaperFormats.push_back( aInfo );
}
rtl_freeMemory( pNamesBuffer );
diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx
index 0689b8710655..8d9347e7e352 100755
--- a/vcl/win/source/gdi/winlayout.cxx
+++ b/vcl/win/source/gdi/winlayout.cxx
@@ -1172,62 +1172,52 @@ static bool InitUSP()
if( !aUspModule )
return (bUspEnabled = false);
- OUString queryFuncName( RTL_CONSTASCII_USTRINGPARAM( "ScriptIsComplex" ) );
pScriptIsComplex = (HRESULT (WINAPI*)(const WCHAR*,int,DWORD))
- osl_getSymbol( aUspModule, queryFuncName.pData );
+ osl_getAsciiFunctionSymbol( aUspModule, "ScriptIsComplex" );
bUspEnabled &= (NULL != pScriptIsComplex);
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "ScriptItemize" ) );
pScriptItemize = (HRESULT (WINAPI*)(const WCHAR*,int,int,
const SCRIPT_CONTROL*,const SCRIPT_STATE*,SCRIPT_ITEM*,int*))
- osl_getSymbol( aUspModule, queryFuncName.pData );
+ osl_getAsciiFunctionSymbol( aUspModule, "ScriptItemize" );
bUspEnabled &= (NULL != pScriptItemize);
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "ScriptShape" ) );
pScriptShape = (HRESULT (WINAPI*)(HDC,SCRIPT_CACHE*,const WCHAR*,
int,int,SCRIPT_ANALYSIS*,WORD*,WORD*,SCRIPT_VISATTR*,int*))
- osl_getSymbol( aUspModule, queryFuncName.pData );
+ osl_getAsciiFunctionSymbol( aUspModule, "ScriptShape" );
bUspEnabled &= (NULL != pScriptShape);
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "ScriptPlace" ) );
pScriptPlace = (HRESULT (WINAPI*)(HDC, SCRIPT_CACHE*, const WORD*, int,
const SCRIPT_VISATTR*,SCRIPT_ANALYSIS*,int*,GOFFSET*,ABC*))
- osl_getSymbol( aUspModule, queryFuncName.pData );
+ osl_getAsciiFunctionSymbol( aUspModule, "ScriptPlace" );
bUspEnabled &= (NULL != pScriptPlace);
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "ScriptGetLogicalWidths" ) );
pScriptGetLogicalWidths = (HRESULT (WINAPI*)(const SCRIPT_ANALYSIS*,
int,int,const int*,const WORD*,const SCRIPT_VISATTR*,int*))
- osl_getSymbol( aUspModule, queryFuncName.pData );
+ osl_getAsciiFunctionSymbol( aUspModule, "ScriptGetLogicalWidths" );
bUspEnabled &= (NULL != pScriptGetLogicalWidths);
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "ScriptApplyLogicalWidth" ) );
pScriptApplyLogicalWidth = (HRESULT (WINAPI*)(const int*,int,int,const WORD*,
const SCRIPT_VISATTR*,const int*,const SCRIPT_ANALYSIS*,ABC*,int*))
- osl_getSymbol( aUspModule, queryFuncName.pData );
+ osl_getAsciiFunctionSymbol( aUspModule, "ScriptApplyLogicalWidth" );
bUspEnabled &= (NULL != pScriptApplyLogicalWidth);
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "ScriptJustify" ) );
pScriptJustify = (HRESULT (WINAPI*)(const SCRIPT_VISATTR*,const int*,
int,int,int,int*))
- osl_getSymbol( aUspModule, queryFuncName.pData );
+ osl_getAsciiFunctionSymbol( aUspModule, "ScriptJustify" );
bUspEnabled &= (NULL != pScriptJustify);
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "ScriptGetFontProperties" ) );
pScriptGetFontProperties = (HRESULT (WINAPI*)( HDC,SCRIPT_CACHE*,SCRIPT_FONTPROPERTIES*))
- osl_getSymbol( aUspModule, queryFuncName.pData );
+ osl_getAsciiFunctionSymbol( aUspModule, "ScriptGetFontProperties" );
bUspEnabled &= (NULL != pScriptGetFontProperties);
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "ScriptTextOut" ) );
pScriptTextOut = (HRESULT (WINAPI*)(const HDC,SCRIPT_CACHE*,
int,int,UINT,const RECT*,const SCRIPT_ANALYSIS*,const WCHAR*,
int,const WORD*,int,const int*,const int*,const GOFFSET*))
- osl_getSymbol( aUspModule, queryFuncName.pData );
+ osl_getAsciiFunctionSymbol( aUspModule, "ScriptTextOut" );
bUspEnabled &= (NULL != pScriptTextOut);
- queryFuncName = OUString( RTL_CONSTASCII_USTRINGPARAM( "ScriptFreeCache" ) );
pScriptFreeCache = (HRESULT (WINAPI*)(SCRIPT_CACHE*))
- osl_getSymbol( aUspModule, queryFuncName.pData );
+ osl_getAsciiFunctionSymbol( aUspModule, "ScriptFreeCache" );
bUspEnabled &= (NULL != pScriptFreeCache);
if( !bUspEnabled )
diff --git a/vcl/win/source/window/MAKEFILE.MK b/vcl/win/source/window/MAKEFILE.MK
index 9a65a5000ccf..17e73db1e75e 100644
--- a/vcl/win/source/window/MAKEFILE.MK
+++ b/vcl/win/source/window/MAKEFILE.MK
@@ -43,7 +43,7 @@ ENABLE_EXCEPTIONS=TRUE
# --- #105371#
.IF "$(COM)"=="GCC"
-CDEFS += -UWINVER -DWINVER=0x0400 -D_WIN32_WINNT=0x0501
+CFLAGS += -D_WIN32_WINNT=0x0501
.ELSE
CFLAGS += -DWINVER=0x0400 -D_WIN32_WINNT=0x0501
diff --git a/vcl/win/source/window/salframe.cxx b/vcl/win/source/window/salframe.cxx
index fd0f065ce2bc..3ffc358bd76d 100644
--- a/vcl/win/source/window/salframe.cxx
+++ b/vcl/win/source/window/salframe.cxx
@@ -6,9 +6,6 @@
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: salframe.cxx,v $
- * $Revision: 1.157.20.2 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -355,19 +352,13 @@ SalFrame* ImplSalCreateFrame( WinSalInstance* pInst,
{
OUString aLibraryName( RTL_CONSTASCII_USTRINGPARAM( "user32" ) );
oslModule pLib = osl_loadModule( aLibraryName.pData, SAL_LOADMODULE_DEFAULT );
- void *pFunc = NULL;
+ oslGenericFunction pFunc = NULL;
if( pLib )
- {
- OUString queryFuncName( RTL_CONSTASCII_USTRINGPARAM( "SetLayeredWindowAttributes" ) );
- pFunc = osl_getSymbol( pLib, queryFuncName.pData );
- }
+ pFunc = osl_getAsciiFunctionSymbol( pLib, "SetLayeredWindowAttributes" );
lpfnSetLayeredWindowAttributes = ( SetLayeredWindowAttributes_Proc_T ) pFunc;
- if ( pFunc )
- bLayeredAPI = 1;
- else
- bLayeredAPI = 0;
+ bLayeredAPI = pFunc ? 1 : 0;
}
}
static const char* pEnvTransparentFloats = getenv("SAL_TRANSPARENT_FLOATS" );
@@ -2113,8 +2104,7 @@ void WinSalFrame::StartPresentation( BOOL bStart )
{
OUString aLibraryName( OUString::createFromAscii( aOS.szPathName ) );
oslModule mhSageInst = osl_loadModule( aLibraryName.pData, SAL_LOADMODULE_DEFAULT );
- OUString queryFuncName( RTL_CONSTASCII_USTRINGPARAM( "System_Agent_Enable" ) );
- pSalData->mpSageEnableProc = (SysAgt_Enable_PROC) osl_getSymbol( mhSageInst, queryFuncName.pData );
+ pSalData->mpSageEnableProc = (SysAgt_Enable_PROC)osl_getAsciiFunctionSymbol( mhSageInst, "System_Agent_Enable" );
}
else
pSalData->mnSageStatus = DISABLE_AGENT;
@@ -3160,7 +3150,8 @@ void WinSalFrame::Beep( SoundType eSoundType )
MB_ICONQUESTION // SOUND_QUERY
};
- MessageBeep( aImplSoundTab[eSoundType] );
+ if( eSoundType != SOUND_DISABLE ) // don't beep on disable
+ MessageBeep( aImplSoundTab[eSoundType] );
}
// -----------------------------------------------------------------------
@@ -3703,10 +3694,17 @@ BOOL WinSalFrame::MapUnicodeToKeyCode( sal_Unicode aUnicode, LanguageType aLangT
BYTE vkeycode = LOBYTE(scan);
BYTE shiftstate = HIBYTE(scan);
+ // Last argument is set to FALSE, because there's no decission made
+ // yet which key should be assigned to MOD3 modifier on Windows.
+ // Windows key - user's can be confused, because it should display
+ // Windows menu (applies to both left/right key)
+ // Menu key - this key is used to display context menu
+ // AltGr key - probably it has no sense
rKeyCode = KeyCode( ImplSalGetKeyCode( vkeycode ),
(shiftstate & 0x01) ? TRUE : FALSE, // shift
(shiftstate & 0x02) ? TRUE : FALSE, // ctrl
- (shiftstate & 0x04) ? TRUE : FALSE ); // alt
+ (shiftstate & 0x04) ? TRUE : FALSE, // alt
+ FALSE );
bRet = TRUE;
}
}
diff --git a/vcl/workben/makefile.mk b/vcl/workben/makefile.mk
index 83abbbf4e6bf..34316356a1a6 100644
--- a/vcl/workben/makefile.mk
+++ b/vcl/workben/makefile.mk
@@ -125,6 +125,7 @@ APP5OBJS= $(OBJ)$/svpclient.obj
APP5STDLIBS= $(CPPULIB) \
$(CPPUHELPERLIB) \
$(COMPHELPERLIB) \
+ $(UCBHELPERLIB) \
$(VCLLIB) \
$(TOOLSLIB) \
$(SALLIB) \
diff --git a/vcl/workben/svpclient.cxx b/vcl/workben/svpclient.cxx
index cf64d58110e8..7bea0b94f76a 100644
--- a/vcl/workben/svpclient.cxx
+++ b/vcl/workben/svpclient.cxx
@@ -50,6 +50,8 @@
#include <comphelper/processfactory.hxx>
#include <cppuhelper/servicefactory.hxx>
#include <cppuhelper/bootstrap.hxx>
+#include "ucbhelper/contentbroker.hxx"
+#include "ucbhelper/configurationkeys.hxx"
#include <errno.h>
#include <unistd.h>
@@ -60,6 +62,8 @@
using namespace rtl;
+using namespace cppu;
+using namespace comphelper;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
// -----------------------------------------------------------------------
@@ -73,10 +77,47 @@ SAL_IMPLEMENT_MAIN()
{
tools::extendApplicationEnvironment();
- Reference< XMultiServiceFactory > xMS;
- xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
+ //-------------------------------------------------
+ // create the global service-manager
+ //-------------------------------------------------
+ Reference< XMultiServiceFactory > xFactory;
+ try
+ {
+ Reference< XComponentContext > xCtx = defaultBootstrap_InitialComponentContext();
+ xFactory = Reference< XMultiServiceFactory >( xCtx->getServiceManager(), UNO_QUERY );
+ if( xFactory.is() )
+ setProcessServiceFactory( xFactory );
+ }
+ catch( com::sun::star::uno::Exception& rExc)
+ {
+ }
+
+ if( ! xFactory.is() )
+ {
+ fprintf( stderr, "Could not bootstrap UNO, installation must be in disorder. Exiting.\n" );
+ exit( 1 );
+ }
+
+ /*
+ * Create UCB.
+ */
+ Sequence< Any > aArgs( 2 );
+ aArgs[ 0 ] <<= OUString::createFromAscii( UCB_CONFIGURATION_KEY1_LOCAL );
+ aArgs[ 1 ] <<= OUString::createFromAscii( UCB_CONFIGURATION_KEY2_OFFICE );
+#if OSL_DEBUG_LEVEL > 1
+ sal_Bool bSuccess =
+#endif
+ ::ucbhelper::ContentBroker::initialize( xFactory, aArgs );
+
+#if OSL_DEBUG_LEVEL > 1
+ if ( !bSuccess )
+ {
+ fprintf( stderr, "Error creating UCB, installation must be in disorder. Exiting.\n" );
+ exit( 1 );
+ }
+#endif
- InitVCL( xMS );
+ InitVCL( xFactory );
::Main();
DeInitVCL();