diff options
author | hg <hg@oosvn01.> | 2009-10-08 15:46:11 +0000 |
---|---|---|
committer | hg <hg@oosvn01.> | 2009-10-08 15:46:11 +0000 |
commit | 3fb2edb5945be0a8ddc69759f1ec01029f5abe1a (patch) | |
tree | e7e79bc2c80d8a392f43712a3647ff99759fa4b8 | |
parent | 4eef171d081c2ebf0005798f1ae038fb2d899441 (diff) | |
parent | b960e2fb193c459418180e67ebcc0eacf63e1c3c (diff) |
merge with m50
380 files changed, 19580 insertions, 13486 deletions
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_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/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/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/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 78f79c806511..1d473e6c5365 100644 --- a/comphelper/source/misc/makefile.mk +++ b/comphelper/source/misc/makefile.mk @@ -59,7 +59,6 @@ SLOFILES= \ $(SLO)$/configurationhelper.obj \ $(SLO)$/documentinfo.obj \ $(SLO)$/evtlistenerhlp.obj \ - $(SLO)$/facreg.obj \ $(SLO)$/ihwrapnofilter.obj \ $(SLO)$/instancelocker.obj \ $(SLO)$/interaction.obj \ @@ -89,6 +88,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/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/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..a56793e05769 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, diff --git a/comphelper/source/streaming/memorystream.cxx b/comphelper/source/streaming/memorystream.cxx index 5abbb352b14c..3afd9b555a84 100644 --- a/comphelper/source/streaming/memorystream.cxx +++ b/comphelper/source/streaming/memorystream.cxx @@ -31,6 +31,8 @@ // 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/uno/XComponentContext.hpp> @@ -77,6 +79,11 @@ public: virtual void SAL_CALL flush() throw (NotConnectedException, BufferSizeExceededException, IOException, RuntimeException); virtual void SAL_CALL closeOutput() throw (NotConnectedException, BufferSizeExceededException, IOException, 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; @@ -199,22 +206,28 @@ void SAL_CALL UNOMemoryStream::closeOutput() throw (NotConnectedException, Buffe mnCursor = 0; } -OUString SAL_CALL UNOMemoryStream_getImplementationName() throw() +::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/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/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..bece8389d270 100644 --- a/goodies/source/graphic/grfmgr.cxx +++ b/goodies/source/graphic/grfmgr.cxx @@ -126,7 +126,7 @@ GraphicObject::GraphicObject( const GraphicObject& rGraphicObj, const GraphicMan { ImplConstruct(); ImplAssignGraphicData(); - ImplSetGraphicManager( pMgr ); + ImplSetGraphicManager( pMgr, NULL, &rGraphicObj ); } // ----------------------------------------------------------------------------- @@ -203,7 +203,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 +235,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 +407,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; @@ -889,7 +889,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/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/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/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/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/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/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/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/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/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/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/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/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/misc/acceleratorexecute.cxx b/svtools/source/misc/acceleratorexecute.cxx index e6e78656eedd..3e2d63e0b622 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 >(); } @@ -577,7 +562,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/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..577cc83e65c7 100644 --- a/svtools/source/svhtml/makefile.mk +++ b/svtools/source/svhtml/makefile.mk @@ -42,7 +42,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..3413cd3e7fb8 100644 --- a/svtools/source/svhtml/parhtml.cxx +++ b/svtools/source/svhtml/parhtml.cxx @@ -60,44 +60,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 +930,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 +942,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 +958,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 +2002,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,65 +2015,65 @@ 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 ); } 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/rtfkey2.cxx b/svtools/source/svrtf/rtfkey2.cxx deleted file mode 100644 index 5c4e1039d92c..000000000000 --- a/svtools/source/svrtf/rtfkey2.cxx +++ /dev/null @@ -1,1162 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * $RCSfile: rtfkey2.cxx,v $ - * $Revision: 1.14.134.1 $ - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_svtools.hxx" - -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil -*- */ - -#include "rtfkeywd.hxx" - -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEXCHAR, "\\'" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_IGNORE, "\\*" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OPTHYPH, "\\-" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SUBENTRY, "\\:" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ABSH, "\\absh" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ABSW, "\\absw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ALT, "\\alt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ANNOTATION, "\\annotation" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ANSI, "\\ansi" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATNID, "\\atnid" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AUTHOR, "\\author" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_B, "\\b" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGBDIAG, "\\bgbdiag" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGCROSS, "\\bgcross" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDCROSS, "\\bgdcross" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDKBDIAG, "\\bgdkbdiag" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDKCROSS, "\\bgdkcross" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDKDCROSS, "\\bgdkdcross" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDKFDIAG, "\\bgdkfdiag" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDKHORIZ, "\\bgdkhoriz" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGDKVERT, "\\bgdkvert" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGFDIAG, "\\bgfdiag" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGHORIZ, "\\bghoriz" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BGVERT, "\\bgvert" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BIN, "\\bin" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BINFSXN, "\\binfsxn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BINSXN, "\\binsxn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BKMKCOLF, "\\bkmkcolf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BKMKCOLL, "\\bkmkcoll" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BKMKEND, "\\bkmkend" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BKMKSTART, "\\bkmkstart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BLUE, "\\blue" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BOX, "\\box" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRB, "\\brdrb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRBAR, "\\brdrbar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRBTW, "\\brdrbtw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRCF, "\\brdrcf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDB, "\\brdrdb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDOT, "\\brdrdot" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRHAIR, "\\brdrhair" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRL, "\\brdrl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRR, "\\brdrr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRS, "\\brdrs" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRSH, "\\brdrsh" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRT, "\\brdrt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTH, "\\brdrth" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRW, "\\brdrw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRSP, "\\brsp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BULLET, "\\bullet" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BUPTIM, "\\buptim" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BXE, "\\bxe" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CAPS, "\\caps" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CB, "\\cb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CBPAT, "\\cbpat" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CELL, "\\cell" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CELLX, "\\cellx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CF, "\\cf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CFPAT, "\\cfpat" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHATN, "\\chatn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHDATE, "\\chdate" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHDPA, "\\chdpa" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHDPL, "\\chdpl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHFTN, "\\chftn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHFTNSEP, "\\chftnsep" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHFTNSEPC, "\\chftnsepc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHPGN, "\\chpgn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHTIME, "\\chtime" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGBDIAG, "\\clbgbdiag" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGCROSS, "\\clbgcross" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDCROSS, "\\clbgdcross" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDKBDIAG, "\\clbgdkbdiag" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDKCROSS, "\\clbgdkcross" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDKDCROSS, "\\clbgdkdcross" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDKFDIAG, "\\clbgdkfdiag" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDKHOR, "\\clbgdkhor" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGDKVERT, "\\clbgdkvert" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGFDIAG, "\\clbgfdiag" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGHORIZ, "\\clbghoriz" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBGVERT, "\\clbgvert" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBRDRB, "\\clbrdrb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBRDRL, "\\clbrdrl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBRDRR, "\\clbrdrr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLBRDRT, "\\clbrdrt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLCBPAT, "\\clcbpat" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLCFPAT, "\\clcfpat" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLMGF, "\\clmgf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLMRG, "\\clmrg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLSHDNG, "\\clshdng" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLNO, "\\colno" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLORTBL, "\\colortbl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLS, "\\cols" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLSR, "\\colsr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLSX, "\\colsx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLUMN, "\\column" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COLW, "\\colw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COMMENT, "\\comment" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CREATIM, "\\creatim" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CTRL, "\\ctrl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DEFF, "\\deff" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DEFFORMAT, "\\defformat" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DEFLANG, "\\deflang" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DEFTAB, "\\deftab" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DELETED, "\\deleted" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRMTXTX, "\\dfrmtxtx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRMTXTY, "\\dfrmtxty" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DIBITMAP, "\\dibitmap" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DN, "\\dn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOCCOMM, "\\doccomm" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOCTEMP, "\\doctemp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DROPCAPLI, "\\dropcapli" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DROPCAPT, "\\dropcapt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ABSNOOVRLP, "\\absnoovrlp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DXFRTEXT, "\\dxfrtext" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DY, "\\dy" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EDMINS, "\\edmins" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EMDASH, "\\emdash" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ENDASH, "\\endash" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ENDDOC, "\\enddoc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ENDNHERE, "\\endnhere" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ENDNOTES, "\\endnotes" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EXPND, "\\expnd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EXPNDTW, "\\expndtw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_F, "\\f" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FACINGP, "\\facingp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FACPGSXN, "\\facpgsxn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FALT, "\\falt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FCHARSET, "\\fcharset" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FDECOR, "\\fdecor" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FI, "\\fi" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FIELD, "\\field" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDDIRTY, "\\flddirty" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDEDIT, "\\fldedit" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDINST, "\\fldinst" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDLOCK, "\\fldlock" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDPRIV, "\\fldpriv" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDRSLT, "\\fldrslt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FMODERN, "\\fmodern" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FN, "\\fn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FNIL, "\\fnil" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FONTTBL, "\\fonttbl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTER, "\\footer" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERF, "\\footerf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERL, "\\footerl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERR, "\\footerr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERY, "\\footery" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTNOTE, "\\footnote" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FPRQ, "\\fprq" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRACWIDTH, "\\fracwidth" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FROMAN, "\\froman" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FS, "\\fs" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FSCRIPT, "\\fscript" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FSWISS, "\\fswiss" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTECH, "\\ftech" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNBJ, "\\ftnbj" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNCN, "\\ftncn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNRESTART, "\\ftnrestart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNSEP, "\\ftnsep" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNSEPC, "\\ftnsepc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNSTART, "\\ftnstart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNTJ, "\\ftntj" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GREEN, "\\green" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GUTTER, "\\gutter" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GUTTERSXN, "\\guttersxn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADER, "\\header" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERF, "\\headerf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERL, "\\headerl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERR, "\\headerr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERY, "\\headery" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HR, "\\hr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHHOTZ, "\\hyphhotz" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_I, "\\i" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ID, "\\id" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_INFO, "\\info" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_INTBL, "\\intbl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_IXE, "\\ixe" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_KEEP, "\\keep" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_KEEPN, "\\keepn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_KERNING, "\\kerning" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_KEYCODE, "\\keycode" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_KEYWORDS, "\\keywords" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LANDSCAPE, "\\landscape" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LANG, "\\lang" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LDBLQUOTE, "\\ldblquote" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVEL, "\\level" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LI, "\\li" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LIN, "\\lin" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINE, "\\line" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINEBETCOL, "\\linebetcol" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINECONT, "\\linecont" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINEMOD, "\\linemod" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINEPPAGE, "\\lineppage" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINERESTART, "\\linerestart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINESTART, "\\linestart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINESTARTS, "\\linestarts" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINEX, "\\linex" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LNDSCPSXN, "\\lndscpsxn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LQUOTE, "\\lquote" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MAC, "\\mac" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MACPICT, "\\macpict" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MAKEBACKUP, "\\makebackup" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGB, "\\margb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGBSXN, "\\margbsxn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGL, "\\margl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGLSXN, "\\marglsxn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGMIRROR, "\\margmirror" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGR, "\\margr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGRSXN, "\\margrsxn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGT, "\\margt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MARGTSXN, "\\margtsxn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MIN, "\\min" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MO, "\\mo" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NEXTCSET, "\\nextcset" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NEXTFILE, "\\nextfile" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOFCHARS, "\\nofchars" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOFPAGES, "\\nofpages" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOFWORDS, "\\nofwords" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOLINE, "\\noline" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOSUPERSUB, "\\nosupersub" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOWRAP, "\\nowrap" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OPERATOR, "\\operator" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OUTL, "\\outl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PAGE, "\\page" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PAGEBB, "\\pagebb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PAPERH, "\\paperh" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PAPERW, "\\paperw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PAR, "\\par" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PARD, "\\pard" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PC, "\\pc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PCA, "\\pca" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGHSXN, "\\pghsxn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNCONT, "\\pgncont" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNDEC, "\\pgndec" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNLCLTR, "\\pgnlcltr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNLCRM, "\\pgnlcrm" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNRESTART, "\\pgnrestart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNSTART, "\\pgnstart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNSTARTS, "\\pgnstarts" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNUCLTR, "\\pgnucltr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNUCRM, "\\pgnucrm" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNX, "\\pgnx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNY, "\\pgny" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGWSXN, "\\pgwsxn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PHCOL, "\\phcol" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PHMRG, "\\phmrg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PHPG, "\\phpg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICCROPB, "\\piccropb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICCROPL, "\\piccropl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICCROPR, "\\piccropr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICCROPT, "\\piccropt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICH, "\\pich" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICHGOAL, "\\pichgoal" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICSCALED, "\\picscaled" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICSCALEX, "\\picscalex" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICSCALEY, "\\picscaley" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICT, "\\pict" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICW, "\\picw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICWGOAL, "\\picwgoal" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PLAIN, "\\plain" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PMMETAFILE, "\\pmmetafile" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSNEGX, "\\posnegx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSNEGY, "\\posnegy" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSX, "\\posx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSXC, "\\posxc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSXI, "\\posxi" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSXL, "\\posxl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSXO, "\\posxo" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSXR, "\\posxr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSY, "\\posy" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSYB, "\\posyb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSYC, "\\posyc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSYIL, "\\posyil" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSYT, "\\posyt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PRINTIM, "\\printim" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PSOVER, "\\psover" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PVMRG, "\\pvmrg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PVPARA, "\\pvpara" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PVPG, "\\pvpg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_QC, "\\qc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_QJ, "\\qj" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_QL, "\\ql" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_QR, "\\qr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RDBLQUOTE, "\\rdblquote" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RED, "\\red" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVBAR, "\\revbar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVISED, "\\revised" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVISIONS, "\\revisions" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVPROP, "\\revprop" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVTIM, "\\revtim" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RI, "\\ri" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RIN, "\\rin" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ROW, "\\row" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RQUOTE, "\\rquote" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTF, "\\rtf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RXE, "\\rxe" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_S, "\\s" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SA, "\\sa" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SB, "\\sb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBASEDON, "\\sbasedon" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBKCOL, "\\sbkcol" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBKEVEN, "\\sbkeven" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBKNONE, "\\sbknone" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBKODD, "\\sbkodd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBKPAGE, "\\sbkpage" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SBYS, "\\sbys" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SCAPS, "\\scaps" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECT, "\\sect" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTD, "\\sectd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHAD, "\\shad" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHADING, "\\shading" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHIFT, "\\shift" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SL, "\\sl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SNEXT, "\\snext" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_STRIKE, "\\strike" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_STYLESHEET, "\\stylesheet" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SUB, "\\sub" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SUBJECT, "\\subject" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SUPER, "\\super" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TAB, "\\tab" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TB, "\\tb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TC, "\\tc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TCF, "\\tcf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TCL, "\\tcl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TEMPLATE, "\\template" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TITLE, "\\title" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TITLEPG, "\\titlepg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TLDOT, "\\tldot" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TLEQ, "\\tleq" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TLHYPH, "\\tlhyph" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TLTH, "\\tlth" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TLUL, "\\tlul" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TQC, "\\tqc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TQDEC, "\\tqdec" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TQR, "\\tqr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TQL, "\\tql" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRGAPH, "\\trgaph" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRLEFT, "\\trleft" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TROWD, "\\trowd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRQC, "\\trqc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRQL, "\\trql" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRQR, "\\trqr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRRH, "\\trrh" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TX, "\\tx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TXE, "\\txe" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_UL, "\\ul" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULD, "\\uld" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULDB, "\\uldb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULNONE, "\\ulnone" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULW, "\\ulw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_UP, "\\up" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_V, "\\v" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VERN, "\\vern" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VERSION, "\\version" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VERTALB, "\\vertalb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VERTALC, "\\vertalc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VERTALJ, "\\vertalj" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VERTALT, "\\vertalt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WBITMAP, "\\wbitmap" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WBMBITSPIXEL, "\\wbmbitspixel" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WBMPLANES, "\\wbmplanes" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WBMWIDTHBYTES, "\\wbmwidthbytes" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WIDOWCTRL, "\\widowctrl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WMETAFILE, "\\wmetafile" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_XE, "\\xe" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_YR, "\\yr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOBRKHYPH, "\\_" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FORMULA, "\\|" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOBREAK, "\\~" ); - - -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AB, "\\ab" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ACAPS, "\\acaps" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ACF, "\\acf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ADDITIVE, "\\additive" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ADN, "\\adn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AENDDOC, "\\aenddoc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AENDNOTES, "\\aendnotes" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AEXPND, "\\aexpnd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AF, "\\af" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFS, "\\afs" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNBJ, "\\aftnbj" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNCN, "\\aftncn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNALC, "\\aftnnalc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNAR, "\\aftnnar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNAUC, "\\aftnnauc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNCHI, "\\aftnnchi" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNRLC, "\\aftnnrlc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNRUC, "\\aftnnruc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNRESTART, "\\aftnrestart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNRSTCONT, "\\aftnrstcont" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNSEP, "\\aftnsep" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNSEPC, "\\aftnsepc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNSTART, "\\aftnstart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNTJ, "\\aftntj" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AI, "\\ai" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ALANG, "\\alang" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ALLPROT, "\\allprot" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ANNOTPROT, "\\annotprot" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AOUTL, "\\aoutl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ASCAPS, "\\ascaps" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ASHAD, "\\ashad" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ASTRIKE, "\\astrike" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATNAUTHOR, "\\atnauthor" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATNICN, "\\atnicn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATNREF, "\\atnref" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATNTIME, "\\atntime" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATRFEND, "\\atrfend" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ATRFSTART, "\\atrfstart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AUL, "\\aul" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AULD, "\\auld" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AULDB, "\\auldb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AULNONE, "\\aulnone" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AULW, "\\aulw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AUP, "\\aup" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BKMKPUB, "\\bkmkpub" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDASH, "\\brdrdash" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRKFRM, "\\brkfrm" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CCHS, "\\cchs" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CPG, "\\cpg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CS, "\\cs" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CVMME, "\\cvmme" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DATAFIELD, "\\datafield" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DO, "\\do" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOBXCOLUMN, "\\dobxcolumn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOBXMARGIN, "\\dobxmargin" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOBXPAGE, "\\dobxpage" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOBYMARGIN, "\\dobymargin" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOBYPAGE, "\\dobypage" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOBYPARA, "\\dobypara" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DODHGT, "\\dodhgt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOLOCK, "\\dolock" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPAENDHOL, "\\dpaendhol" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPAENDL, "\\dpaendl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPAENDSOL, "\\dpaendsol" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPAENDW, "\\dpaendw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPARC, "\\dparc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPARCFLIPX, "\\dparcflipx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPARCFLIPY, "\\dparcflipy" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPASTARTHOL, "\\dpastarthol" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPASTARTL, "\\dpastartl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPASTARTSOL, "\\dpastartsol" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPASTARTW, "\\dpastartw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCALLOUT, "\\dpcallout" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOA, "\\dpcoa" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOACCENT, "\\dpcoaccent" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOBESTFIT, "\\dpcobestfit" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOBORDER, "\\dpcoborder" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCODABS, "\\dpcodabs" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCODBOTTOM, "\\dpcodbottom" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCODCENTER, "\\dpcodcenter" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCODTOP, "\\dpcodtop" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOLENGTH, "\\dpcolength" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOMINUSX, "\\dpcominusx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOMINUSY, "\\dpcominusy" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOOFFSET, "\\dpcooffset" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOSMARTA, "\\dpcosmarta" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOTDOUBLE, "\\dpcotdouble" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOTRIGHT, "\\dpcotright" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOTSINGLE, "\\dpcotsingle" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOTTRIPLE, "\\dpcottriple" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCOUNT, "\\dpcount" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPELLIPSE, "\\dpellipse" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPENDGROUP, "\\dpendgroup" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLBGCB, "\\dpfillbgcb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLBGCG, "\\dpfillbgcg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLBGCR, "\\dpfillbgcr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLBGGRAY, "\\dpfillbggray" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLBGPAL, "\\dpfillbgpal" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLFGCB, "\\dpfillfgcb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLFGCG, "\\dpfillfgcg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLFGCR, "\\dpfillfgcr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLFGGRAY, "\\dpfillfggray" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLFGPAL, "\\dpfillfgpal" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPFILLPAT, "\\dpfillpat" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPGROUP, "\\dpgroup" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINE, "\\dpline" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINECOB, "\\dplinecob" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINECOG, "\\dplinecog" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINECOR, "\\dplinecor" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEDADO, "\\dplinedado" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEDADODO, "\\dplinedadodo" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEDASH, "\\dplinedash" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEDOT, "\\dplinedot" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEGRAY, "\\dplinegray" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEHOLLOW, "\\dplinehollow" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEPAL, "\\dplinepal" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINESOLID, "\\dplinesolid" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPLINEW, "\\dplinew" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPPOLYCOUNT, "\\dppolycount" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPPOLYGON, "\\dppolygon" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPPOLYLINE, "\\dppolyline" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPPTX, "\\dpptx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPPTY, "\\dppty" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPRECT, "\\dprect" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPROUNDR, "\\dproundr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPSHADOW, "\\dpshadow" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPSHADX, "\\dpshadx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPSHADY, "\\dpshady" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPTXBX, "\\dptxbx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPTXBXMAR, "\\dptxbxmar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPTXBXTEXT, "\\dptxbxtext" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPX, "\\dpx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPXSIZE, "\\dpxsize" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPY, "\\dpy" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPYSIZE, "\\dpysize" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DS, "\\ds" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EMSPACE, "\\emspace" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ENSPACE, "\\enspace" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FBIDI, "\\fbidi" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FET, "\\fet" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FID, "\\fid" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FILE, "\\file" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FILETBL, "\\filetbl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDALT, "\\fldalt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FNETWORK, "\\fnetwork" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FONTEMB, "\\fontemb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FONTFILE, "\\fontfile" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FORMDISP, "\\formdisp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FORMPROT, "\\formprot" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FORMSHADE, "\\formshade" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOSNUM, "\\fosnum" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRELATIVE, "\\frelative" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNALT, "\\ftnalt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNIL, "\\ftnil" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNALC, "\\ftnnalc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNAR, "\\ftnnar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNAUC, "\\ftnnauc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNCHI, "\\ftnnchi" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNRLC, "\\ftnnrlc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNRUC, "\\ftnnruc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNRSTCONT, "\\ftnrstcont" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNRSTPG, "\\ftnrstpg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTTRUETYPE, "\\fttruetype" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FVALIDDOS, "\\fvaliddos" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FVALIDHPFS, "\\fvalidhpfs" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FVALIDMAC, "\\fvalidmac" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FVALIDNTFS, "\\fvalidntfs" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHAUTO, "\\hyphauto" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHCAPS, "\\hyphcaps" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHCONSEC, "\\hyphconsec" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHPAR, "\\hyphpar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINKSELF, "\\linkself" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINKSTYLES, "\\linkstyles" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LTRCH, "\\ltrch" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LTRDOC, "\\ltrdoc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LTRMARK, "\\ltrmark" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LTRPAR, "\\ltrpar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LTRROW, "\\ltrrow" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LTRSECT, "\\ltrsect" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOCOLBAL, "\\nocolbal" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOEXTRASPRL, "\\noextrasprl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOTABIND, "\\notabind" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOWIDCTLPAR, "\\nowidctlpar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJALIAS, "\\objalias" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJALIGN, "\\objalign" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJAUTLINK, "\\objautlink" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJCLASS, "\\objclass" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJCROPB, "\\objcropb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJCROPL, "\\objcropl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJCROPR, "\\objcropr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJCROPT, "\\objcropt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJDATA, "\\objdata" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJECT, "\\object" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJEMB, "\\objemb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJH, "\\objh" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJICEMB, "\\objicemb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJLINK, "\\objlink" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJLOCK, "\\objlock" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJNAME, "\\objname" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJPUB, "\\objpub" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJSCALEX, "\\objscalex" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJSCALEY, "\\objscaley" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJSECT, "\\objsect" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJSETSIZE, "\\objsetsize" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJSUB, "\\objsub" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJTIME, "\\objtime" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJTRANSY, "\\objtransy" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJUPDATE, "\\objupdate" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJW, "\\objw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OTBLRUL, "\\otblrul" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNHN, "\\pgnhn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNHNSC, "\\pgnhnsc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNHNSH, "\\pgnhnsh" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNHNSM, "\\pgnhnsm" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNHNSN, "\\pgnhnsn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNHNSP, "\\pgnhnsp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICBMP, "\\picbmp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICBPP, "\\picbpp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PN, "\\pn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNACROSS, "\\pnacross" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNB, "\\pnb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNCAPS, "\\pncaps" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNCARD, "\\pncard" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNCF, "\\pncf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNDEC, "\\pndec" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNF, "\\pnf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNFS, "\\pnfs" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNHANG, "\\pnhang" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNI, "\\pni" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNINDENT, "\\pnindent" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNLCLTR, "\\pnlcltr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNLCRM, "\\pnlcrm" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNLVL, "\\pnlvl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNLVLBLT, "\\pnlvlblt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNLVLBODY, "\\pnlvlbody" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNLVLCONT, "\\pnlvlcont" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNNUMONCE, "\\pnnumonce" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNORD, "\\pnord" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNORDT, "\\pnordt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNPREV, "\\pnprev" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNQC, "\\pnqc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNQL, "\\pnql" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNQR, "\\pnqr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRESTART, "\\pnrestart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNSCAPS, "\\pnscaps" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNSECLVL, "\\pnseclvl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNSP, "\\pnsp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNSTART, "\\pnstart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNSTRIKE, "\\pnstrike" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNTEXT, "\\pntext" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNTXTA, "\\pntxta" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNTXTB, "\\pntxtb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNUCLTR, "\\pnucltr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNUCRM, "\\pnucrm" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNUL, "\\pnul" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNULD, "\\pnuld" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNULDB, "\\pnuldb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNULNONE, "\\pnulnone" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNULW, "\\pnulw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PRCOLBL, "\\prcolbl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PRINTDATA, "\\printdata" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PSZ, "\\psz" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PUBAUTO, "\\pubauto" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RESULT, "\\result" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVAUTH, "\\revauth" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVDTTM, "\\revdttm" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVPROT, "\\revprot" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVTBL, "\\revtbl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RSLTBMP, "\\rsltbmp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RSLTMERGE, "\\rsltmerge" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RSLTPICT, "\\rsltpict" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RSLTRTF, "\\rsltrtf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RSLTTXT, "\\rslttxt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTLCH, "\\rtlch" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTLDOC, "\\rtldoc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTLMARK, "\\rtlmark" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTLPAR, "\\rtlpar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTLROW, "\\rtlrow" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_RTLSECT, "\\rtlsect" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SEC, "\\sec" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTNUM, "\\sectnum" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTUNLOCKED, "\\sectunlocked" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SLMULT, "\\slmult" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SOFTCOL, "\\softcol" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SOFTLHEIGHT, "\\softlheight" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SOFTLINE, "\\softline" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SOFTPAGE, "\\softpage" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SPRSSPBF, "\\sprsspbf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SPRSTSP, "\\sprstsp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SUBDOCUMENT, "\\subdocument" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SWPBDR, "\\swpbdr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TCN, "\\tcn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRANSMF, "\\transmf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRBRDRB, "\\trbrdrb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRBRDRH, "\\trbrdrh" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRBRDRL, "\\trbrdrl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRBRDRR, "\\trbrdrr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRBRDRT, "\\trbrdrt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRBRDRV, "\\trbrdrv" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRHDR, "\\trhdr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRKEEP, "\\trkeep" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDB, "\\trpaddb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDL, "\\trpaddl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDR, "\\trpaddr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDT, "\\trpaddt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDFB, "\\trpaddfb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDFL, "\\trpaddfl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDFR, "\\trpaddfr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRPADDFT, "\\trpaddft" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WRAPTRSP, "\\wraptrsp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_XEF, "\\xef" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ZWJ, "\\zwj" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ZWNJ, "\\zwnj" ); - -// neue Tokens zur 1.5 -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ABSLOCK, "\\abslock" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ADJUSTRIGHT, "\\adjustright" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNCHOSUNG, "\\aftnnchosung" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNCNUM, "\\aftnncnum" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNDBAR, "\\aftnndbar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNDBNUM, "\\aftnndbnum" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNDBNUMD, "\\aftnndbnumd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNDBNUMK, "\\aftnndbnumk" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNDBNUMT, "\\aftnndbnumt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNGANADA, "\\aftnnganada" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNGBNUM, "\\aftnngbnum" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNGBNUMD, "\\aftnngbnumd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNGBNUMK, "\\aftnngbnumk" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNGBNUML, "\\aftnngbnuml" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNZODIAC, "\\aftnnzodiac" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNZODIACD, "\\aftnnzodiacd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_AFTNNZODIACL, "\\aftnnzodiacl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ANIMTEXT, "\\animtext" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ANSICPG, "\\ansicpg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BACKGROUND, "\\background" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BDBFHDR, "\\bdbfhdr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BLIPTAG, "\\bliptag" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BLIPUID, "\\blipuid" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BLIPUPI, "\\blipupi" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRART, "\\brdrart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDASHD, "\\brdrdashd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDASHDD, "\\brdrdashdd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDASHDOTSTR, "\\brdrdashdotstr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRDASHSM, "\\brdrdashsm" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDREMBOSS, "\\brdremboss" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRENGRAVE, "\\brdrengrave" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRFRAME, "\\brdrframe" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTHTNLG, "\\brdrthtnlg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTHTNMG, "\\brdrthtnmg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTHTNSG, "\\brdrthtnsg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTNTHLG, "\\brdrtnthlg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTNTHMG, "\\brdrtnthmg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTNTHSG, "\\brdrtnthsg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTNTHTNLG, "\\brdrtnthtnlg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTNTHTNMG, "\\brdrtnthtnmg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTNTHTNSG, "\\brdrtnthtnsg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRTRIPLE, "\\brdrtriple" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRWAVY, "\\brdrwavy" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDRWAVYDB, "\\brdrwavydb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CATEGORY, "\\category" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CGRID, "\\cgrid" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHARSCALEX, "\\charscalex" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGBDIAG, "\\chbgbdiag" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGCROSS, "\\chbgcross" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDCROSS, "\\chbgdcross" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDKBDIAG, "\\chbgdkbdiag" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDKCROSS, "\\chbgdkcross" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDKDCROSS, "\\chbgdkdcross" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDKFDIAG, "\\chbgdkfdiag" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDKHORIZ, "\\chbgdkhoriz" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGDKVERT, "\\chbgdkvert" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGFDIAG, "\\chbgfdiag" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGHORIZ, "\\chbghoriz" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBGVERT, "\\chbgvert" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHBRDR, "\\chbrdr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHCBPAT, "\\chcbpat" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHCFPAT, "\\chcfpat" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CHSHDNG, "\\chshdng" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADL, "\\clpadl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADT, "\\clpadt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADB, "\\clpadb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADR, "\\clpadr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADFL, "\\clpadfl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADFT, "\\clpadft" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADFB, "\\clpadfb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLPADFR, "\\clpadfr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLTXLRTB, "\\cltxlrtb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLTXTBRL, "\\cltxtbrl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLVERTALB, "\\clvertalb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLVERTALC, "\\clvertalc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLVERTALT, "\\clvertalt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLVMGF, "\\clvmgf" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLVMRG, "\\clvmrg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLTXTBRLV, "\\cltxtbrlv" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLTXBTLR, "\\cltxbtlr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CLTXLRTBV, "\\cltxlrtbv" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_COMPANY, "\\company" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CRAUTH, "\\crauth" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_CRDATE, "\\crdate" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DATE, "\\date" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DEFLANGFE, "\\deflangfe" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRAUTH, "\\dfrauth" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRDATE, "\\dfrdate" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRSTART, "\\dfrstart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRSTOP, "\\dfrstop" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRXST, "\\dfrxst" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DGMARGIN, "\\dgmargin" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DNTBLNSBDB, "\\dntblnsbdb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOCTYPE, "\\doctype" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DOCVAR, "\\docvar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DPCODESCENT, "\\dpcodescent" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EMBO, "\\embo" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EMFBLIP, "\\emfblip" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_EXPSHRTN, "\\expshrtn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FAAUTO, "\\faauto" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FBIAS, "\\fbias" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFDEFRES, "\\ffdefres" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFDEFTEXT, "\\ffdeftext" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFENTRYMCR, "\\ffentrymcr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFEXITMCR, "\\ffexitmcr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFFORMAT, "\\ffformat" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFHASLISTBOX, "\\ffhaslistbox" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFHELPTEXT, "\\ffhelptext" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFHPS, "\\ffhps" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFL, "\\ffl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFMAXLEN, "\\ffmaxlen" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFNAME, "\\ffname" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFOWNHELP, "\\ffownhelp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFOWNSTAT, "\\ffownstat" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFPROT, "\\ffprot" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFRECALC, "\\ffrecalc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFRES, "\\ffres" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFSIZE, "\\ffsize" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFSTATTEXT, "\\ffstattext" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFTYPE, "\\fftype" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FFTYPETXT, "\\fftypetxt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLDTYPE, "\\fldtype" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FNAME, "\\fname" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FORMFIELD, "\\formfield" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FROMTEXT, "\\fromtext" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNCHOSUNG, "\\ftnnchosung" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNCNUM, "\\ftnncnum" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNDBAR, "\\ftnndbar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNDBNUM, "\\ftnndbnum" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNDBNUMD, "\\ftnndbnumd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNDBNUMK, "\\ftnndbnumk" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNDBNUMT, "\\ftnndbnumt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNGANADA, "\\ftnnganada" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNGBNUM, "\\ftnngbnum" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNGBNUMD, "\\ftnngbnumd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNGBNUMK, "\\ftnngbnumk" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNGBNUML, "\\ftnngbnuml" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNZODIAC, "\\ftnnzodiac" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNZODIACD, "\\ftnnzodiacd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FTNNZODIACL, "\\ftnnzodiacl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_G, "\\g" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GCW, "\\gcw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GRIDTBL, "\\gridtbl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HIGHLIGHT, "\\highlight" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HLFR, "\\hlfr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HLINKBASE, "\\hlinkbase" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HLLOC, "\\hlloc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HLSRC, "\\hlsrc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ILVL, "\\ilvl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_IMPR, "\\impr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_JPEGBLIP, "\\jpegblip" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELFOLLOW, "\\levelfollow" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELINDENT, "\\levelindent" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELJC, "\\leveljc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELLEGAL, "\\levellegal" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELNFC, "\\levelnfc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELNORESTART, "\\levelnorestart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELNUMBERS, "\\levelnumbers" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELOLD, "\\levelold" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELPREV, "\\levelprev" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELPREVSPACE, "\\levelprevspace" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELSPACE, "\\levelspace" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELSTARTAT, "\\levelstartat" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LEVELTEXT, "\\leveltext" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LINKVAL, "\\linkval" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LIST, "\\list" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTID, "\\listid" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTLEVEL, "\\listlevel" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTNAME, "\\listname" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTOVERRIDE, "\\listoverride" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTOVERRIDECOUNT, "\\listoverridecount" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTOVERRIDEFORMAT, "\\listoverrideformat" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTOVERRIDESTART, "\\listoverridestart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTOVERRIDETABLE, "\\listoverridetable" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTRESTARTHDN, "\\listrestarthdn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTSIMPLE, "\\listsimple" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTTABLE, "\\listtable" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTTEMPLATEID, "\\listtemplateid" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LISTTEXT, "\\listtext" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LS, "\\ls" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LYTEXCTTP, "\\lytexcttp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LYTPRTMET, "\\lytprtmet" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MANAGER, "\\manager" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_MSMCAP, "\\msmcap" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOFCHARSWS, "\\nofcharsws" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOLEAD, "\\nolead" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NONSHPPICT, "\\nonshppict" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOSECTEXPAND, "\\nosectexpand" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOSNAPLINEGRID, "\\nosnaplinegrid" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOSPACEFORUL, "\\nospaceforul" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOULTRLSPC, "\\noultrlspc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOXLATTOYEN, "\\noxlattoyen" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJATTPH, "\\objattph" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJHTML, "\\objhtml" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OBJOCX, "\\objocx" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLDLINEWRAP, "\\oldlinewrap" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OUTLINELEVEL, "\\outlinelevel" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OVERLAY, "\\overlay" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PANOSE, "\\panose" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRB, "\\pgbrdrb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRFOOT, "\\pgbrdrfoot" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRHEAD, "\\pgbrdrhead" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRL, "\\pgbrdrl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDROPT, "\\pgbrdropt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRR, "\\pgbrdrr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRSNAP, "\\pgbrdrsnap" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRDRT, "\\pgbrdrt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNCHOSUNG, "\\pgnchosung" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNCNUM, "\\pgncnum" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNDBNUMK, "\\pgndbnumk" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNDBNUMT, "\\pgndbnumt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNGANADA, "\\pgnganada" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNGBNUM, "\\pgngbnum" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNGBNUMD, "\\pgngbnumd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNGBNUMK, "\\pgngbnumk" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNGBNUML, "\\pgngbnuml" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNZODIAC, "\\pgnzodiac" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNZODIACD, "\\pgnzodiacd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGNZODIACL, "\\pgnzodiacl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PICPROP, "\\picprop" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNAIUEO, "\\pnaiueo" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNAIUEOD, "\\pnaiueod" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNCHOSUNG, "\\pnchosung" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNDBNUMD, "\\pndbnumd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNDBNUMK, "\\pndbnumk" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNDBNUML, "\\pndbnuml" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNDBNUMT, "\\pndbnumt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNGANADA, "\\pnganada" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNGBLIP, "\\pngblip" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNGBNUM, "\\pngbnum" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNGBNUMD, "\\pngbnumd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNGBNUMK, "\\pngbnumk" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNGBNUML, "\\pngbnuml" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRAUTH, "\\pnrauth" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRDATE, "\\pnrdate" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRNFC, "\\pnrnfc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRNOT, "\\pnrnot" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRPNBR, "\\pnrpnbr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRRGB, "\\pnrrgb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRSTART, "\\pnrstart" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRSTOP, "\\pnrstop" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNRXST, "\\pnrxst" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNZODIAC, "\\pnzodiac" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNZODIACD, "\\pnzodiacd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PNZODIACL, "\\pnzodiacl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LFOLEVEL, "\\lfolevel" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSYIN, "\\posyin" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_POSYOUT, "\\posyout" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PRIVATE, "\\private" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PROPNAME, "\\propname" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PROPTYPE, "\\proptype" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVAUTHDEL, "\\revauthdel" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_REVDTTMDEL, "\\revdttmdel" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SAUTOUPD, "\\sautoupd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTDEFAULTCL, "\\sectdefaultcl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTEXPAND, "\\sectexpand" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTLINEGRID, "\\sectlinegrid" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTSPECIFYCL, "\\sectspecifycl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SECTSPECIFYL, "\\sectspecifyl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHIDDEN, "\\shidden" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBOTTOM, "\\shpbottom" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBXCOLUMN, "\\shpbxcolumn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBXMARGIN, "\\shpbxmargin" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBXPAGE, "\\shpbxpage" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBYMARGIN, "\\shpbymargin" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBYPAGE, "\\shpbypage" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBYPARA, "\\shpbypara" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPFBLWTXT, "\\shpfblwtxt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPFHDR, "\\shpfhdr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPGRP, "\\shpgrp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPLEFT, "\\shpleft" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPLID, "\\shplid" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPLOCKANCHOR, "\\shplockanchor" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPPICT, "\\shppict" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPRIGHT, "\\shpright" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPRSLT, "\\shprslt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPTOP, "\\shptop" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPTXT, "\\shptxt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPWRK, "\\shpwrk" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPWR, "\\shpwr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPZ, "\\shpz" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SPRSBSP, "\\sprsbsp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SPRSLNSP, "\\sprslnsp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SPRSTSM, "\\sprstsm" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_STATICVAL, "\\staticval" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_STEXTFLOW, "\\stextflow" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_STRIKED, "\\striked" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SUBFONTBYSIZE, "\\subfontbysize" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TCELLD, "\\tcelld" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TIME, "\\time" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TRUNCATEFONTHEIGHT, "\\truncatefontheight" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_UC, "\\uc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_UD, "\\ud" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULDASH, "\\uldash" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULDASHD, "\\uldashd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULDASHDD, "\\uldashdd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULTH, "\\ulth" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULWAVE, "\\ulwave" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULC, "\\ulc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_U, "\\u" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_UPR, "\\upr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_USERPROPS, "\\userprops" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VIEWKIND, "\\viewkind" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VIEWSCALE, "\\viewscale" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_VIEWZK, "\\viewzk" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WIDCTLPAR, "\\widctlpar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WINDOWCAPTION, "\\windowcaption" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WPEQN, "\\wpeqn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WPJST, "\\wpjst" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_WPSP, "\\wpsp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_YXE, "\\yxe" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRMTXLRTB, "\\frmtxlrtb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRMTXTBRL, "\\frmtxtbrl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRMTXBTLR, "\\frmtxbtlr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRMTXLRTBV, "\\frmtxlrtbv" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FRMTXTBRLV, "\\frmtxtbrlv" ); - -// MS-2000 Tokens -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULTHD, "\\ulthd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULTHDASH, "\\ulthdash" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULLDASH, "\\ulldash" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULTHLDASH, "\\ulthldash" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULTHDASHD, "\\ulthdashd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULTHDASHDD, "\\ulthdashdd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULHWAVE, "\\ulhwave" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ULULDBWAVE, "\\ululdbwave" ); - -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LOCH, "\\loch" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HICH, "\\hich" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DBCH, "\\dbch" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_LANGFE, "\\langfe" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ADEFLANG, "\\adeflang" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ADEFF, "\\adeff" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ACCNONE, "\\accnone" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ACCDOT, "\\accdot" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ACCCOMMA, "\\acccomma" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TWOINONE, "\\twoinone" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HORZVERT, "\\horzvert" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FAHANG, "\\fahang" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FAVAR, "\\favar" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FACENTER, "\\facenter" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FAROMAN, "\\faroman" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FAFIXED, "\\fafixed" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOCWRAP, "\\nocwrap" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_NOOVERFLOW,"\\nooverflow" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_ASPALPHA, "\\aspalpha" ); - -// SWG spezifische Attribute -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GRFALIGNV, "\\grfalignv" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GRFALIGNH, "\\grfalignh" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_GRFMIRROR, "\\grfmirror" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERYB, "\\headeryb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERXL, "\\headerxl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERXR, "\\headerxr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERYT, "\\footeryt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERXL, "\\footerxl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERXR, "\\footerxr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HEADERYH, "\\headeryh" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FOOTERYH, "\\footeryh" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BALANCEDCOLUMN, "\\swcolmnblnc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_UPDNPROP, "\\updnprop" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PRTDATA, "\\prtdata" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BKMKKEY, "\\bkmkkey" ); - -// Attribute fuer die freifliegenden Rahmen -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYPRINT, "\\flyprint" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYOPAQUE, "\\flyopaque" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYPRTCTD, "\\flyprtctd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYMAINCNT, "\\flymaincnt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYVERT, "\\flyvert" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYHORZ, "\\flyhorz" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRMTXTL, "\\dfrmtxtl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRMTXTR, "\\dfrmtxtr" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRMTXTU, "\\dfrmtxtu" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_DFRMTXTW, "\\dfrmtxtw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYANCHOR, "\\flyanchor" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYCNTNT, "\\flycntnt" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYCOLUMN, "\\flycolumn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYPAGE, "\\flypage" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_FLYINPARA, "\\flyinpara" ); - -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDBOX, "\\brdbox" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDLNCOL, "\\brdlncol" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDLNIN, "\\brdlnin" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDLNOUT, "\\brdlnout" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_BRDLNDIST, "\\brdlndist" ); - -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHADOW, "\\shadow" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHDWDIST, "\\shdwdist" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHDWSTYLE, "\\shdwstyle" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHDWCOL, "\\shdwcol" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHDWFCOL, "\\shdwfcol" ); - - -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGDSCTBL, "\\pgdsctbl" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGDSC, "\\pgdsc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGDSCUSE, "\\pgdscuse" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGDSCNXT, "\\pgdscnxt" ); - -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHEN, "\\hyphen" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHLEAD, "\\hyphlead" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHTRAIL, "\\hyphtrail" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_HYPHMAX, "\\hyphmax" ); - -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_TLSWG, "\\tlswg" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGBRK, "\\pgbrk" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_PGDSCNO, "\\pgdscno" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SOUTLVL, "\\soutlvl" ); - -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHP, "\\shp" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SN, "\\sn" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SV, "\\sv" ); -/* -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPLEFT, "\\shpleft" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPTOP, "\\shptop" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPBOTTOM, "\\shpbottom" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_SHPRIGHT, "\\shpright" ); -*/ - -// Support for overline attributes -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OL, "\\ol" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLD, "\\old" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLDB, "\\oldb" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLNONE, "\\olnone" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLW, "\\olw" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLDASH, "\\oldash" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLDASHD, "\\oldashd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLDASHDD, "\\oldashdd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLTH, "\\olth" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLWAVE, "\\olwave" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLC, "\\olc" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLTHD, "\\olthd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLTHDASH, "\\olthdash" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLLDASH, "\\olldash" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLTHLDASH, "\\olthldash" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLTHDASHD, "\\olthdashd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLTHDASHDD, "\\olthdashdd" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLHWAVE, "\\olhwave" ); -sal_Char const SVTOOLS_CONSTASCII_DEF( sRTF_OLOLDBWAVE, "\\ololdbwave" ); - -/* vi:set tabstop=4 shiftwidth=4 expandtab: */ 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/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/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/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..09e318800184 100644 --- a/toolkit/source/awt/vclxwindow.cxx +++ b/toolkit/source/awt/vclxwindow.cxx @@ -548,6 +548,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(); 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..59cb9632b7e1 100644 --- a/toolkit/source/awt/vclxwindows.cxx +++ b/toolkit/source/awt/vclxwindows.cxx @@ -417,6 +417,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 ); @@ -1361,6 +1368,13 @@ 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 // ---------------------------------------------------- @@ -2175,6 +2189,9 @@ VCLXDialog::VCLXDialog() VCLXDialog::~VCLXDialog() { +#ifndef __SUNPRO_CC + OSL_TRACE ("%s", __FUNCTION__); +#endif } // ::com::sun::star::uno::XInterface @@ -3743,6 +3760,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) { diff --git a/toolkit/source/controls/formattedcontrol.cxx b/toolkit/source/controls/formattedcontrol.cxx index c80c3b14e63e..19fb4c3609d0 100644 --- a/toolkit/source/controls/formattedcontrol.cxx +++ b/toolkit/source/controls/formattedcontrol.cxx @@ -323,8 +323,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/unocontrol.cxx b/toolkit/source/controls/unocontrol.cxx index 72c24f4b25bd..92c27e33ead0 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 ); + } } } @@ -1377,16 +1372,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(); } diff --git a/toolkit/source/controls/unocontrols.cxx b/toolkit/source/controls/unocontrols.cxx index 53b28cb7f2ac..771a69c532b9 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; } @@ -3532,16 +3522,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 ); } 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/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'&\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="<User>" 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="<Base Format>" 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="<User>" 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="<Base Format>" 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 & 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..d0adff1278e4 100644 --- a/tools/bootstrp/makefile.mk +++ b/tools/bootstrp/makefile.mk @@ -81,18 +81,18 @@ LIB2OBJFILES=\ APP1TARGET= sspretty APP1OBJS= $(OBJ)$/sspretty.obj APP1LIBS= $(LB)$/$(TARGET).lib $(LB)$/$(TARGET1).lib -APP1STDLIBS=$(SALLIB) $(VOSLIB) $(TOOLSLIB) $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) $(I18NISOLANGLIB) +APP1STDLIBS=$(SALLIB) $(VOSLIB) $(TOOLSLIB) APP2TARGET= rscdep APP2OBJS= $(OBJ)$/rscdep.obj APP2LIBS= $(LB)$/$(TARGET).lib $(LB)$/$(TARGET1).lib -APP2STDLIBS= $(SALLIB) $(VOSLIB) $(TOOLSLIB) $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(I18NISOLANGLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) +APP2STDLIBS= $(SALLIB) $(VOSLIB) $(TOOLSLIB) APP2RPATH= NONE APP3TARGET= so_checksum APP3OBJS= $(OBJ)$/md5.obj \ $(OBJ)$/so_checksum.obj -APP3STDLIBS= $(TOOLSLIB) $(SALLIB) $(VOSLIB) $(BASEGFXLIB) $(UCBHELPERLIB) $(CPPULIB) $(COMPHELPERLIB) $(I18NISOLANGLIB) $(CPPUHELPERLIB) $(SALHELPERLIB) +APP3STDLIBS= $(TOOLSLIB) $(SALLIB) DEPOBJFILES = $(APP1OBJS) $(APP2OBJS) $(APP3OBJS) 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/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/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/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..31420cc58eeb 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" }; 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/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/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/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/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/source/a11y/aqua11ywrapper.mm b/vcl/aqua/source/a11y/aqua11ywrapper.mm index 066748cc1525..d6f99c7020d6 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 > (); } diff --git a/vcl/aqua/source/app/vclnsapp.mm b/vcl/aqua/source/app/vclnsapp.mm index 9e933c7410b6..4ad5e7ff9271 100755 --- a/vcl/aqua/source/app/vclnsapp.mm +++ b/vcl/aqua/source/app/vclnsapp.mm @@ -86,7 +86,25 @@ return; } } - + + /* + * #i98949# - Cmd-M miniaturize window, Cmd-Option-M miniaturize all windows + */ + if( [[pEvent charactersIgnoringModifiers] isEqualToString: @"m"] ) + { + if ( nModMask == NSCommandKeyMask && ([pFrame->getWindow() styleMask] & NSMiniaturizableWindowMask) ) + { + [pFrame->getWindow() performMiniaturize: nil]; + return; + } + + if ( nModMask == ( NSCommandKeyMask | NSAlternateKeyMask ) ) + { + [NSApp miniaturizeAll: nil]; + 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 diff --git a/vcl/aqua/source/gdi/salatslayout.cxx b/vcl/aqua/source/gdi/salatslayout.cxx index f47920004f7a..98700feba39d 100755 --- a/vcl/aqua/source/gdi/salatslayout.cxx +++ b/vcl/aqua/source/gdi/salatslayout.cxx @@ -301,7 +301,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 +309,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 ) diff --git a/vcl/aqua/source/gdi/salgdi.cxx b/vcl/aqua/source/gdi/salgdi.cxx index 661eb64b83ce..3ee54afe2fba 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() @@ -2298,6 +2324,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/salvd.cxx b/vcl/aqua/source/gdi/salvd.cxx index 5ab2f27a8d42..d7690e4e38bd 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 ); } } diff --git a/vcl/aqua/source/window/salframe.cxx b/vcl/aqua/source/window/salframe.cxx index 5db3ea68ab14..560d80fd75d5 100644 --- a/vcl/aqua/source/window/salframe.cxx +++ b/vcl/aqua/source/window/salframe.cxx @@ -1176,6 +1176,9 @@ void AquaSalFrame::UpdateSettings( AllSettings& rSettings ) // set scrollbar size aStyleSettings.SetScrollBarSize( [NSScroller scrollerWidth] ); + // images in menus false for MacOSX + aStyleSettings.SetUseImagesInMenus( false ); + rSettings.SetStyleSettings( aStyleSettings ); [mpView unlockFocus]; diff --git a/vcl/aqua/source/window/salframeview.mm b/vcl/aqua/source/window/salframeview.mm index e291dae911cf..7de43d770385 100755 --- a/vcl/aqua/source/window/salframeview.mm +++ b/vcl/aqua/source/window/salframeview.mm @@ -1233,6 +1233,10 @@ 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; } } } 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/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..3f821f995a51 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; @@ -883,6 +885,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/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/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 cfe40a25a7f2..25aa9d1ae581 100644 --- a/vcl/inc/vcl/tabctrl.hxx +++ b/vcl/inc/vcl/tabctrl.hxx @@ -46,8 +46,10 @@ class ListBox; // - 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..cd6d32dc3d2a 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 : 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 c0b2675036b7..6718a9c267de 100644 --- a/vcl/prj/d.lst +++ b/vcl/prj/d.lst @@ -145,10 +145,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/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/edit.cxx b/vcl/source/control/edit.cxx index cbead10a4618..2ee0ab168a86 100644 --- a/vcl/source/control/edit.cxx +++ b/vcl/source/control/edit.cxx @@ -2908,8 +2908,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 efb44a369df9..05ddd5ce3bd2 100644 --- a/vcl/source/control/lstbox.cxx +++ b/vcl/source/control/lstbox.cxx @@ -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; } // ----------------------------------------------------------------------- @@ -1260,9 +1260,7 @@ 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(); 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/outdev3.cxx b/vcl/source/gdi/outdev3.cxx index 521e56da207e..537964582ceb 100644 --- a/vcl/source/gdi/outdev3.cxx +++ b/vcl/source/gdi/outdev3.cxx @@ -63,6 +63,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 @@ -7700,6 +7701,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()" ); 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..3f648fda8589 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 @@ -1930,7 +1927,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 +2030,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 +2042,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 +2079,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 +2773,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() ) ); 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..c827905e94e6 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 ); } } @@ -5056,11 +5041,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..279775d712e4 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() ); } @@ -6526,7 +6511,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 +9240,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 +9276,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 +9287,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 +9317,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 +9332,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 +9345,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 +9361,7 @@ void Window::DrawSelectionBackground( const Rectangle& rRect, USHORT highlight, nPercent = 0; } else - nPercent = 70; // selected ( dark ) + nPercent = bRoundEdges ? 80 : 70; // selected ( dark ) } } @@ -9380,9 +9391,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..bb08477e82e9 100644 --- a/vcl/unx/gtk/app/gtkdata.cxx +++ b/vcl/unx/gtk/app/gtkdata.cxx @@ -126,6 +126,12 @@ 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, @@ -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..9dbb218403d0 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 ), @@ -3404,6 +3406,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 +3435,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 +3852,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 +3872,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..57f48df66c3c 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 ); @@ -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..cd3e286d167a 100644 --- a/vcl/unx/headless/svpgdi.cxx +++ b/vcl/unx/headless/svpgdi.cxx @@ -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 880f218cccb4..ca95acab6e78 100644 --- a/vcl/unx/headless/svpprn.cxx +++ b/vcl/unx/headless/svpprn.cxx @@ -221,7 +221,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" ) ) ) 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/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..db49c97de00c 100644 --- a/vcl/unx/source/gdi/salgdi.cxx +++ b/vcl/unx/source/gdi/salgdi.cxx @@ -1,1465 +1,1539 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2008 by Sun Microsystems, Inc. - * - * 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 - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General 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_vcl.hxx" - -#include "Xproto.h" - -#include "salunx.h" -#include "saldata.hxx" -#include "saldisp.hxx" -#include "salgdi.h" -#include "salframe.h" -#include "salvd.h" -#include "xrender_peer.hxx" - -#include "vcl/printergfx.hxx" -#include "vcl/jobdata.hxx" - -#include "tools/debug.hxx" - -#include "basegfx/polygon/b2dpolygon.hxx" -#include "basegfx/polygon/b2dpolypolygon.hxx" -#include "basegfx/polygon/b2dpolypolygontools.hxx" -#include "basegfx/polygon/b2dpolygontools.hxx" -#include "basegfx/polygon/b2dpolygonclipper.hxx" -#include "basegfx/polygon/b2dlinegeometry.hxx" -#include "basegfx/matrix/b2dhommatrix.hxx" -#include "basegfx/polygon/b2dpolypolygoncutter.hxx" - -#include <vector> -#include <queue> -#include <set> - -// -=-= SalPolyLine =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -#define STATIC_POINTS 64 - -class SalPolyLine -{ - XPoint Points_[STATIC_POINTS]; - XPoint *pFirst_; -public: - inline SalPolyLine( ULONG nPoints ); - inline SalPolyLine( ULONG nPoints, const SalPoint *p ); - inline ~SalPolyLine(); - inline XPoint &operator [] ( ULONG n ) const - { return pFirst_[n]; } -}; - -inline SalPolyLine::SalPolyLine( ULONG nPoints ) - : pFirst_( nPoints+1 > STATIC_POINTS ? new XPoint[nPoints+1] : Points_ ) -{} - -inline SalPolyLine::SalPolyLine( ULONG nPoints, const SalPoint *p ) - : pFirst_( nPoints+1 > STATIC_POINTS ? new XPoint[nPoints+1] : Points_ ) -{ - for( ULONG i = 0; i < nPoints; i++ ) - { - pFirst_[i].x = (short)p[i].mnX; - pFirst_[i].y = (short)p[i].mnY; - } - pFirst_[nPoints] = pFirst_[0]; // close polyline -} - -inline SalPolyLine::~SalPolyLine() -{ if( pFirst_ != Points_ ) delete [] pFirst_; } - -#undef STATIC_POINTS -// -=-= X11SalGraphics =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -X11SalGraphics::X11SalGraphics() -{ - m_pFrame = NULL; - m_pVDev = NULL; - m_pDeleteColormap = NULL; - hDrawable_ = None; - pRenderFormat_ = NULL; - - pClipRegion_ = NULL; - pPaintRegion_ = NULL; - - pPenGC_ = NULL; - nPenPixel_ = 0; - nPenColor_ = MAKE_SALCOLOR( 0x00, 0x00, 0x00 ); // Black - - pFontGC_ = NULL; - for( int i = 0; i < MAX_FALLBACK; ++i ) - { - mXFont[i] = NULL; - mpServerFont[i] = NULL; - } - - nTextPixel_ = 0; - nTextColor_ = MAKE_SALCOLOR( 0x00, 0x00, 0x00 ); // Black - - pBrushGC_ = NULL; - nBrushPixel_ = 0; - nBrushColor_ = MAKE_SALCOLOR( 0xFF, 0xFF, 0xFF ); // White - hBrush_ = None; - - pMonoGC_ = NULL; - pCopyGC_ = NULL; - pMaskGC_ = NULL; - pInvertGC_ = NULL; - pInvert50GC_ = NULL; - pStippleGC_ = NULL; - pTrackingGC_ = NULL; - - bWindow_ = FALSE; - bPrinter_ = FALSE; - bVirDev_ = FALSE; - bPenGC_ = FALSE; - bFontGC_ = FALSE; - bBrushGC_ = FALSE; - bMonoGC_ = FALSE; - bCopyGC_ = FALSE; - bInvertGC_ = FALSE; - bInvert50GC_ = FALSE; - bStippleGC_ = FALSE; - bTrackingGC_ = FALSE; - bXORMode_ = FALSE; - bDitherBrush_ = FALSE; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -X11SalGraphics::~X11SalGraphics() -{ - ReleaseFonts(); - freeResources(); -} - -// -=-= SalGraphics / X11SalGraphics =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - -void X11SalGraphics::freeResources() -{ - Display *pDisplay = GetXDisplay(); - - DBG_ASSERT( !pPaintRegion_, "pPaintRegion_" ); - if( pClipRegion_ ) XDestroyRegion( pClipRegion_ ), pClipRegion_ = None; - - if( hBrush_ ) XFreePixmap( pDisplay, hBrush_ ), hBrush_ = None; - if( pPenGC_ ) XFreeGC( pDisplay, pPenGC_ ), pPenGC_ = None; - if( pFontGC_ ) XFreeGC( pDisplay, pFontGC_ ), pFontGC_ = None; - if( pBrushGC_ ) XFreeGC( pDisplay, pBrushGC_ ), pBrushGC_ = None; - if( pMonoGC_ ) XFreeGC( pDisplay, pMonoGC_ ), pMonoGC_ = None; - if( pCopyGC_ ) XFreeGC( pDisplay, pCopyGC_ ), pCopyGC_ = None; - if( pMaskGC_ ) XFreeGC( pDisplay, pMaskGC_ ), pMaskGC_ = None; - if( pInvertGC_ ) XFreeGC( pDisplay, pInvertGC_ ), pInvertGC_ = None; - if( pInvert50GC_ ) XFreeGC( pDisplay, pInvert50GC_ ), pInvert50GC_ = None; - if( pStippleGC_ ) XFreeGC( pDisplay, pStippleGC_ ), pStippleGC_ = None; - if( pTrackingGC_ ) XFreeGC( pDisplay, pTrackingGC_ ), pTrackingGC_ = None; - if( m_pDeleteColormap ) - delete m_pDeleteColormap, m_pColormap = m_pDeleteColormap = NULL; - - bPenGC_ = bFontGC_ = bBrushGC_ = bMonoGC_ = bCopyGC_ = bInvertGC_ = bInvert50GC_ = bStippleGC_ = bTrackingGC_ = false; -} - -void X11SalGraphics::SetDrawable( Drawable aDrawable, int nScreen ) -{ - 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_ ); -} - -void X11SalGraphics::Init( SalFrame *pFrame, Drawable aTarget, int nScreen ) -{ - m_pColormap = &GetX11SalData()->GetDisplay()->GetColormap(nScreen); - hDrawable_ = aTarget; - m_nScreen = nScreen; - - bWindow_ = TRUE; - m_pFrame = pFrame; - m_pVDev = NULL; - - nPenPixel_ = GetPixel( nPenColor_ ); - nTextPixel_ = GetPixel( nTextColor_ ); - nBrushPixel_ = GetPixel( nBrushColor_ ); -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::DeInit() -{ - hDrawable_ = None; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::SetClipRegion( GC pGC, XLIB_Region pXReg ) const -{ - Display *pDisplay = GetXDisplay(); - - int n = 0; - XLIB_Region Regions[3]; - - if( pClipRegion_ /* && !XEmptyRegion( pClipRegion_ ) */ ) - Regions[n++] = pClipRegion_; -// if( pPaintRegion_ /* && !XEmptyRegion( pPaintRegion_ ) */ ) -// Regions[n++] = pPaintRegion_; - - if( pXReg && !XEmptyRegion( pXReg ) ) - Regions[n++] = pXReg; - - if( 0 == n ) - XSetClipMask( pDisplay, pGC, None ); - else if( 1 == n ) - XSetRegion( pDisplay, pGC, Regions[0] ); - else - { - XLIB_Region pTmpRegion = XCreateRegion(); - XIntersectRegion( Regions[0], Regions[1], pTmpRegion ); -// if( 3 == n ) -// XIntersectRegion( Regions[2], pTmpRegion, pTmpRegion ); - XSetRegion( pDisplay, pGC, pTmpRegion ); - XDestroyRegion( pTmpRegion ); - } -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -GC X11SalGraphics::SelectPen() -{ - Display *pDisplay = GetXDisplay(); - - if( !pPenGC_ ) - { - XGCValues values; - values.subwindow_mode = ClipByChildren; - values.fill_rule = EvenOddRule; // Pict import/ Gradient - values.graphics_exposures = False; - - pPenGC_ = XCreateGC( pDisplay, hDrawable_, - GCSubwindowMode | GCFillRule | GCGraphicsExposures, - &values ); - } - - if( !bPenGC_ ) - { - if( nPenColor_ != SALCOLOR_NONE ) - XSetForeground( pDisplay, pPenGC_, nPenPixel_ ); - XSetFunction ( pDisplay, pPenGC_, bXORMode_ ? GXxor : GXcopy ); - SetClipRegion( pPenGC_ ); - bPenGC_ = TRUE; - } - - return pPenGC_; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -GC X11SalGraphics::SelectBrush() -{ - Display *pDisplay = GetXDisplay(); - - DBG_ASSERT( nBrushColor_ != SALCOLOR_NONE, "Brush Transparent" ); - - if( !pBrushGC_ ) - { - XGCValues values; - // values.subwindow_mode = IncludeInferiors; - values.subwindow_mode = ClipByChildren; - values.fill_rule = EvenOddRule; // Pict import/ Gradient - values.graphics_exposures = False; - - pBrushGC_ = XCreateGC( pDisplay, hDrawable_, - GCSubwindowMode | GCFillRule | GCGraphicsExposures, - &values ); - } - - if( !bBrushGC_ ) - { - if( !bDitherBrush_ ) - { - XSetFillStyle ( pDisplay, pBrushGC_, FillSolid ); - XSetForeground( pDisplay, pBrushGC_, nBrushPixel_ ); - #if defined(_USE_PRINT_EXTENSION_) - XSetBackground( pDisplay, pBrushGC_, - WhitePixel(pDisplay, DefaultScreen(pDisplay)) ); - #else - if( bPrinter_ ) - XSetTile( pDisplay, pBrushGC_, None ); - #endif - } - else - { - // Bug in Sun Solaris 2.5.1, XFillPolygon doesn't allways reflect - // changes of the tile. PROPERTY_BUG_Tile doesn't fix this ! - if (GetDisplay()->GetProperties() & PROPERTY_BUG_FillPolygon_Tile) - XSetFillStyle ( pDisplay, pBrushGC_, FillSolid ); - - XSetFillStyle ( pDisplay, pBrushGC_, FillTiled ); - XSetTile ( pDisplay, pBrushGC_, hBrush_ ); - } - XSetFunction ( pDisplay, pBrushGC_, bXORMode_ ? GXxor : GXcopy ); - SetClipRegion( pBrushGC_ ); - - bBrushGC_ = TRUE; - } - - return pBrushGC_; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -GC X11SalGraphics::GetTrackingGC() -{ - const char dash_list[2] = {2, 2}; - - if( !pTrackingGC_ ) - { - XGCValues values; - - values.graphics_exposures = False; - values.foreground = m_pColormap->GetBlackPixel() - ^ m_pColormap->GetWhitePixel(); - values.function = GXxor; - values.line_width = 1; - values.line_style = LineOnOffDash; - - pTrackingGC_ = XCreateGC( GetXDisplay(), GetDrawable(), - GCGraphicsExposures | GCForeground | GCFunction - | GCLineWidth | GCLineStyle, - &values ); - XSetDashes( GetXDisplay(), pTrackingGC_, 0, dash_list, 2 ); - } - - if( !bTrackingGC_ ) - { - SetClipRegion( pTrackingGC_ ); - bTrackingGC_ = TRUE; - } - - return pTrackingGC_; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::DrawLines( ULONG nPoints, - const SalPolyLine &rPoints, - GC pGC, - bool bClose - ) -{ - // errechne wie viele Linien XWindow auf einmal zeichnen kann - ULONG nMaxLines = (GetDisplay()->GetMaxRequestSize() - sizeof(xPolyPointReq)) - / sizeof(xPoint); - if( nMaxLines > nPoints ) nMaxLines = nPoints; - - // gebe alle Linien aus, die XWindows zeichnen kann. - ULONG n; - for( n = 0; nPoints - n > nMaxLines; n += nMaxLines - 1 ) - XDrawLines( GetXDisplay(), - GetDrawable(), - pGC, - &rPoints[n], - nMaxLines, - CoordModeOrigin ); - - if( n < nPoints ) - XDrawLines( GetXDisplay(), - GetDrawable(), - pGC, - &rPoints[n], - nPoints - n, - CoordModeOrigin ); - if( bClose ) - { - if( rPoints[nPoints-1].x != rPoints[0].x || rPoints[nPoints-1].y != rPoints[0].y ) - drawLine( rPoints[nPoints-1].x, rPoints[nPoints-1].y, rPoints[0].x, rPoints[0].y ); - } -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -// Dithern: Calculate a dither-pixmap and make a brush of it -#define P_DELTA 51 -#define DMAP( v, m ) ((v % P_DELTA) > m ? (v / P_DELTA) + 1 : (v / P_DELTA)) - -BOOL X11SalGraphics::GetDitherPixmap( SalColor nSalColor ) -{ - static const short nOrdDither8Bit[ 8 ][ 8 ] = - { - { 0, 38, 9, 48, 2, 40, 12, 50}, - {25, 12, 35, 22, 28, 15, 37, 24}, - { 6, 44, 3, 41, 8, 47, 5, 44}, - {32, 19, 28, 16, 34, 21, 31, 18}, - { 1, 40, 11, 49, 0, 39, 10, 48}, - {27, 14, 36, 24, 26, 13, 36, 23}, - { 8, 46, 4, 43, 7, 45, 4, 42}, - {33, 20, 30, 17, 32, 20, 29, 16} - }; - - // test for correct depth (8bit) - if( GetColormap().GetVisual().GetDepth() != 8 ) - return FALSE; - - char pBits[64]; - char *pBitsPtr = pBits; - - // Set the pallette-entries for the dithering tile - UINT8 nSalColorRed = SALCOLOR_RED ( nSalColor ); - UINT8 nSalColorGreen = SALCOLOR_GREEN ( nSalColor ); - UINT8 nSalColorBlue = SALCOLOR_BLUE ( nSalColor ); - - for( int nY = 0; nY < 8; nY++ ) - { - for( int nX = 0; nX < 8; nX++ ) - { - short nMagic = nOrdDither8Bit[nY][nX]; - UINT8 nR = P_DELTA * DMAP( nSalColorRed, nMagic ); - UINT8 nG = P_DELTA * DMAP( nSalColorGreen, nMagic ); - UINT8 nB = P_DELTA * DMAP( nSalColorBlue, nMagic ); - - *pBitsPtr++ = GetColormap().GetPixel( MAKE_SALCOLOR( nR, nG, nB ) ); - } - } - - // create the tile as ximage and an according pixmap -> caching - XImage *pImage = XCreateImage( GetXDisplay(), - GetColormap().GetXVisual(), - 8, - ZPixmap, - 0, // offset - pBits, // data - 8, 8, // width & height - 8, // bitmap_pad - 0 ); // (default) bytes_per_line - - if ( GetDisplay()->GetProperties() & PROPERTY_BUG_Tile ) - { - if (hBrush_) - XFreePixmap (GetXDisplay(), hBrush_); - hBrush_ = XCreatePixmap( GetXDisplay(), GetDrawable(), 8, 8, 8 ); - } - else - if( !hBrush_ ) - hBrush_ = XCreatePixmap( GetXDisplay(), GetDrawable(), 8, 8, 8 ); - - // put the ximage to the pixmap - XPutImage( GetXDisplay(), - hBrush_, - GetDisplay()->GetCopyGC( m_nScreen ), - pImage, - 0, 0, // Source - 0, 0, // Destination - 8, 8 ); // width & height - - // destroy image-frame but not palette-data - pImage->data = NULL; - XDestroyImage( pImage ); - - return TRUE; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::GetResolution( sal_Int32 &rDPIX, sal_Int32 &rDPIY ) // const -{ - const SalDisplay *pDisplay = GetDisplay(); - - rDPIX = pDisplay->GetResolution().A(); - rDPIY = pDisplay->GetResolution().B(); - if( !pDisplay->GetExactResolution() && rDPIY < 96 ) - { - rDPIX = Divide( rDPIX * 96, rDPIY ); - rDPIY = 96; - } - else if ( rDPIY > 200 ) - { - rDPIX = Divide( rDPIX * 200, rDPIY ); - rDPIY = 200; - } - - // #i12705# equalize x- and y-resolution if they are close enough - if( rDPIX != rDPIY ) - { - // different x- and y- resolutions are usually artifacts of - // a wrongly calculated screen size. - //if( (13*rDPIX >= 10*rDPIY) && (13*rDPIY >= 10*rDPIX) ) //+-30% - { -#ifdef DEBUG - printf("Forcing Resolution from %" SAL_PRIdINT32 "x%" SAL_PRIdINT32 " to %" SAL_PRIdINT32 "x%" SAL_PRIdINT32 "\n", - rDPIX,rDPIY,rDPIY,rDPIY); -#endif - rDPIX = rDPIY; // y-resolution is more trustworthy - } - } -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -USHORT X11SalGraphics::GetBitCount() // const -{ - return GetVisual().GetDepth(); -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -long X11SalGraphics::GetGraphicsWidth() const -{ - if( m_pFrame ) - return m_pFrame->maGeometry.nWidth; - else if( m_pVDev ) - return m_pVDev->GetWidth(); - else - return 0; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -long X11SalGraphics::GetGraphicsHeight() const -{ - if( m_pFrame ) - return m_pFrame->maGeometry.nHeight; - else if( m_pVDev ) - return m_pVDev->GetHeight(); - else - return 0; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::ResetClipRegion() -{ - if( pClipRegion_ ) - { - bPenGC_ = FALSE; - bFontGC_ = FALSE; - bBrushGC_ = FALSE; - bMonoGC_ = FALSE; - bCopyGC_ = FALSE; - bInvertGC_ = FALSE; - bInvert50GC_ = FALSE; - bStippleGC_ = FALSE; - bTrackingGC_ = FALSE; - - XDestroyRegion( pClipRegion_ ); - pClipRegion_ = NULL; - } -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::BeginSetClipRegion( ULONG ) -{ - if( pClipRegion_ ) - XDestroyRegion( pClipRegion_ ); - pClipRegion_ = XCreateRegion(); -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -BOOL X11SalGraphics::unionClipRegion( long nX, long nY, long nDX, long nDY ) -{ - if (!nDX || !nDY) - return TRUE; - - XRectangle aRect; - aRect.x = (short)nX; - aRect.y = (short)nY; - aRect.width = (unsigned short)nDX; - aRect.height = (unsigned short)nDY; - - XUnionRectWithRegion( &aRect, pClipRegion_, pClipRegion_ ); - - return TRUE; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -bool X11SalGraphics::unionClipRegion( const ::basegfx::B2DPolyPolygon& ) -{ - // TODO: implement and advertise OutDevSupport_B2DClip support - return false; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::EndSetClipRegion() -{ - bPenGC_ = FALSE; - bFontGC_ = FALSE; - bBrushGC_ = FALSE; - bMonoGC_ = FALSE; - bCopyGC_ = FALSE; - bInvertGC_ = FALSE; - bInvert50GC_ = FALSE; - bStippleGC_ = FALSE; - bTrackingGC_ = FALSE; - - if( XEmptyRegion( pClipRegion_ ) ) - { - XDestroyRegion( pClipRegion_ ); - pClipRegion_= NULL; - } -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::SetLineColor() -{ - if( nPenColor_ != SALCOLOR_NONE ) - { - nPenColor_ = SALCOLOR_NONE; - bPenGC_ = FALSE; - } -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::SetLineColor( SalColor nSalColor ) -{ - if( nPenColor_ != nSalColor ) - { - nPenColor_ = nSalColor; - nPenPixel_ = GetPixel( nSalColor ); - bPenGC_ = FALSE; - } -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::SetFillColor() -{ - if( nBrushColor_ != SALCOLOR_NONE ) - { - bDitherBrush_ = FALSE; - nBrushColor_ = SALCOLOR_NONE; - bBrushGC_ = FALSE; - } -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::SetFillColor( SalColor nSalColor ) -{ - if( nBrushColor_ != nSalColor ) - { - bDitherBrush_ = FALSE; - nBrushColor_ = nSalColor; - nBrushPixel_ = GetPixel( nSalColor ); - if( TrueColor != GetColormap().GetVisual().GetClass() - && GetColormap().GetColor( nBrushPixel_ ) != nBrushColor_ - && nSalColor != MAKE_SALCOLOR( 0x00, 0x00, 0x00 ) // black - && nSalColor != MAKE_SALCOLOR( 0x00, 0x00, 0x80 ) // blue - && nSalColor != MAKE_SALCOLOR( 0x00, 0x80, 0x00 ) // green - && nSalColor != MAKE_SALCOLOR( 0x00, 0x80, 0x80 ) // cyan - && nSalColor != MAKE_SALCOLOR( 0x80, 0x00, 0x00 ) // red - && nSalColor != MAKE_SALCOLOR( 0x80, 0x00, 0x80 ) // magenta - && nSalColor != MAKE_SALCOLOR( 0x80, 0x80, 0x00 ) // brown - && nSalColor != MAKE_SALCOLOR( 0x80, 0x80, 0x80 ) // gray - && nSalColor != MAKE_SALCOLOR( 0xC0, 0xC0, 0xC0 ) // light gray - && nSalColor != MAKE_SALCOLOR( 0x00, 0x00, 0xFF ) // light blue - && nSalColor != MAKE_SALCOLOR( 0x00, 0xFF, 0x00 ) // light green - && nSalColor != MAKE_SALCOLOR( 0x00, 0xFF, 0xFF ) // light cyan - && nSalColor != MAKE_SALCOLOR( 0xFF, 0x00, 0x00 ) // light red - && nSalColor != MAKE_SALCOLOR( 0xFF, 0x00, 0xFF ) // light magenta - && nSalColor != MAKE_SALCOLOR( 0xFF, 0xFF, 0x00 ) // light brown - && nSalColor != MAKE_SALCOLOR( 0xFF, 0xFF, 0xFF ) ) - bDitherBrush_ = GetDitherPixmap(nSalColor); - bBrushGC_ = FALSE; - } -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::SetROPLineColor( SalROPColor nROPColor ) -{ - switch( nROPColor ) - { - case SAL_ROP_0 : // 0 - nPenPixel_ = (Pixel)0; - break; - case SAL_ROP_1 : // 1 - nPenPixel_ = (Pixel)(1 << GetVisual().GetDepth()) - 1; - break; - case SAL_ROP_INVERT : // 2 - nPenPixel_ = (Pixel)(1 << GetVisual().GetDepth()) - 1; - break; - } - nPenColor_ = GetColormap().GetColor( nPenPixel_ ); - bPenGC_ = FALSE; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::SetROPFillColor( SalROPColor nROPColor ) -{ - switch( nROPColor ) - { - case SAL_ROP_0 : // 0 - nBrushPixel_ = (Pixel)0; - break; - case SAL_ROP_1 : // 1 - nBrushPixel_ = (Pixel)(1 << GetVisual().GetDepth()) - 1; - break; - case SAL_ROP_INVERT : // 2 - nBrushPixel_ = (Pixel)(1 << GetVisual().GetDepth()) - 1; - break; - } - bDitherBrush_ = FALSE; - nBrushColor_ = GetColormap().GetColor( nBrushPixel_ ); - bBrushGC_ = FALSE; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::SetXORMode( bool bSet, bool ) -{ - if( !bXORMode_ == bSet ) - { - bXORMode_ = bSet; - bPenGC_ = FALSE; - bBrushGC_ = FALSE; - bMonoGC_ = FALSE; - bCopyGC_ = FALSE; - bInvertGC_ = FALSE; - bInvert50GC_ = FALSE; - bStippleGC_ = FALSE; - bTrackingGC_ = FALSE; - } -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::drawPixel( long nX, long nY ) -{ - if( nPenColor_ != SALCOLOR_NONE ) - XDrawPoint( GetXDisplay(), GetDrawable(), SelectPen(), nX, nY ); -} - -void X11SalGraphics::drawPixel( long nX, long nY, SalColor nSalColor ) -{ - if( nSalColor != SALCOLOR_NONE ) - { - Display *pDisplay = GetXDisplay(); - - if( (nPenColor_ == SALCOLOR_NONE) && !bPenGC_ ) - { - SetLineColor( nSalColor ); - XDrawPoint( pDisplay, GetDrawable(), SelectPen(), nX, nY ); - nPenColor_ = SALCOLOR_NONE; - bPenGC_ = False; - } - else - { - GC pGC = SelectPen(); - - if( nSalColor != nPenColor_ ) - XSetForeground( pDisplay, pGC, GetPixel( nSalColor ) ); - - XDrawPoint( pDisplay, GetDrawable(), pGC, nX, nY ); - - if( nSalColor != nPenColor_ ) - XSetForeground( pDisplay, pGC, nPenPixel_ ); - } - } -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::drawLine( long nX1, long nY1, long nX2, long nY2 ) -{ - if( nPenColor_ != SALCOLOR_NONE ) - { - if ( GetDisplay()->GetProperties() & PROPERTY_BUG_DrawLine ) - { - GC aGC = SelectPen(); - XDrawPoint (GetXDisplay(), GetDrawable(), aGC, (int)nX1, (int)nY1); - XDrawPoint (GetXDisplay(), GetDrawable(), aGC, (int)nX2, (int)nY2); - XDrawLine (GetXDisplay(), GetDrawable(), aGC, nX1, nY1, nX2, nY2 ); - } - else - XDrawLine( GetXDisplay(), GetDrawable(),SelectPen(), - nX1, nY1, nX2, nY2 ); - } -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::drawRect( long nX, long nY, long nDX, long nDY ) -{ - if( nBrushColor_ != SALCOLOR_NONE ) - { - XFillRectangle( GetXDisplay(), - GetDrawable(), - SelectBrush(), - nX, nY, nDX, nDY ); - } - // Beschreibung DrawRect verkehrt, deshalb -1 - if( nPenColor_ != SALCOLOR_NONE ) - XDrawRectangle( GetXDisplay(), - GetDrawable(), - SelectPen(), - nX, nY, nDX-1, nDY-1 ); -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::drawPolyLine( ULONG nPoints, const SalPoint *pPtAry ) -{ - drawPolyLine( nPoints, pPtAry, false ); -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::drawPolyLine( ULONG nPoints, const SalPoint *pPtAry, bool bClose ) -{ - if( nPenColor_ != 0xFFFFFFFF ) - { - SalPolyLine Points( nPoints, pPtAry ); - - DrawLines( nPoints, Points, SelectPen(), bClose ); - } -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::drawPolygon( ULONG nPoints, const SalPoint* pPtAry ) -{ - if( nPoints == 0 ) - return; - - if( nPoints < 3 ) - { - if( !bXORMode_ ) - { - if( 1 == nPoints ) - drawPixel( pPtAry[0].mnX, pPtAry[0].mnY ); - else - drawLine( pPtAry[0].mnX, pPtAry[0].mnY, - pPtAry[1].mnX, pPtAry[1].mnY ); - } - return; - } - - SalPolyLine Points( nPoints, pPtAry ); - - nPoints++; - - /* WORKAROUND: some Xservers (Xorg, VIA chipset in this case) - * do not draw the visible part of a polygon - * if it overlaps to the left of screen 0,y. - * This happens to be the case in the gradient drawn in the - * menubar background. workaround for the special case of - * of a rectangle overlapping to the left. - */ - if( nPoints == 5 && - Points[ 0 ].x == Points[ 1 ].x && - Points[ 1 ].y == Points[ 2 ].y && - Points[ 2 ].x == Points[ 3 ].x && - Points[ 0 ].x == Points[ 4 ].x && Points[ 0 ].y == Points[ 4 ].y - ) - { - bool bLeft = false; - bool bRight = false; - for(unsigned int i = 0; i < nPoints; i++ ) - { - if( Points[i].x < 0 ) - bLeft = true; - else - bRight= true; - } - if( bLeft && ! bRight ) - return; - if( bLeft && bRight ) - { - for( unsigned int i = 0; i < nPoints; i++ ) - if( Points[i].x < 0 ) - Points[i].x = 0; - } - } - - if( nBrushColor_ != SALCOLOR_NONE ) - XFillPolygon( GetXDisplay(), - GetDrawable(), - SelectBrush(), - &Points[0], nPoints, - Complex, CoordModeOrigin ); - - if( nPenColor_ != 0xFFFFFFFF ) - DrawLines( nPoints, Points, SelectPen(), true ); -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -void X11SalGraphics::drawPolyPolygon( sal_uInt32 nPoly, - const sal_uInt32 *pPoints, - PCONSTSALPOINT *pPtAry ) -{ - if( nBrushColor_ != SALCOLOR_NONE ) - { - ULONG i, n; - XLIB_Region pXRegA = NULL; - - for( i = 0; i < nPoly; i++ ) { - n = pPoints[i]; - SalPolyLine Points( n, pPtAry[i] ); - if( n > 2 ) - { - XLIB_Region pXRegB = XPolygonRegion( &Points[0], n+1, WindingRule ); - if( !pXRegA ) - pXRegA = pXRegB; - else - { - XXorRegion( pXRegA, pXRegB, pXRegA ); - XDestroyRegion( pXRegB ); - } - } - } - - if( pXRegA ) - { - XRectangle aXRect; - XClipBox( pXRegA, &aXRect ); - - GC pGC = SelectBrush(); - SetClipRegion( pGC, pXRegA ); // ??? doppelt - XDestroyRegion( pXRegA ); - bBrushGC_ = FALSE; - - XFillRectangle( GetXDisplay(), - GetDrawable(), - pGC, - aXRect.x, aXRect.y, aXRect.width, aXRect.height ); - } - } - - if( nPenColor_ != SALCOLOR_NONE ) - for( ULONG i = 0; i < nPoly; i++ ) - drawPolyLine( pPoints[i], pPtAry[i], true ); -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - -sal_Bool X11SalGraphics::drawPolyLineBezier( ULONG, const SalPoint*, const BYTE* ) -{ - return sal_False; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - -sal_Bool X11SalGraphics::drawPolygonBezier( ULONG, const SalPoint*, const BYTE* ) -{ - return sal_False; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - -sal_Bool X11SalGraphics::drawPolyPolygonBezier( sal_uInt32, const sal_uInt32*, - const SalPoint* const*, const BYTE* const* ) -{ - return sal_False; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - -void X11SalGraphics::invert( ULONG nPoints, - const SalPoint* pPtAry, - SalInvert nFlags ) -{ - SalPolyLine Points ( nPoints, pPtAry ); - - GC pGC; - if( SAL_INVERT_50 & nFlags ) - pGC = GetInvert50GC(); - else - if ( SAL_INVERT_TRACKFRAME & nFlags ) - pGC = GetTrackingGC(); - else - pGC = GetInvertGC(); - - if( SAL_INVERT_TRACKFRAME & nFlags ) - DrawLines ( nPoints, Points, pGC, true ); - else - XFillPolygon( GetXDisplay(), - GetDrawable(), - pGC, - &Points[0], nPoints, - Complex, CoordModeOrigin ); -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - -BOOL X11SalGraphics::drawEPS( long,long,long,long,void*,ULONG ) -{ - return FALSE; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - -SystemGraphicsData X11SalGraphics::GetGraphicsData() const -{ - SystemGraphicsData aRes; - - aRes.nSize = sizeof(aRes); - aRes.pDisplay = GetXDisplay(); - aRes.hDrawable = hDrawable_; - aRes.pVisual = GetDisplay()->GetVisual( m_nScreen ).GetVisual(); - aRes.nScreen = m_nScreen; - aRes.nDepth = GetDisplay()->GetVisual( m_nScreen ).GetDepth(); - aRes.aColormap = GetDisplay()->GetColormap( m_nScreen ).GetXColormap(); - aRes.pRenderFormat = pRenderFormat_; - return aRes; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - -// B2DPolygon support methods - -namespace { // anonymous namespace to prevent export -// the methods and structures here are used by the -// B2DPolyPolygon->RenderTrapezoid conversion algorithm - -// compare two line segments -// assumption: both segments point downward -// assumption: they must have at least some y-overlap -// assumption: rA.p1.y <= rB.p1.y -bool IsLeftOf( const XLineFixed& rA, const XLineFixed& rB ) -{ - bool bAbove = (rA.p1.y <= rB.p1.y); - const XLineFixed& rU = bAbove ? rA : rB; - const XLineFixed& rL = bAbove ? rB : rA; - - const XFixed aXDiff = rU.p2.x - rU.p1.x; - const XFixed aYDiff = rU.p2.y - rU.p1.y; - - if( (rU.p1.y != rL.p1.y) || (rU.p1.x != rL.p1.x) ) - { - const sal_Int64 n1 = (sal_Int64)aXDiff * (rL.p1.y - rU.p1.y); - const sal_Int64 n2 = (sal_Int64)aYDiff * (rL.p1.x - rU.p1.x); - if( n1 != n2 ) - return ((n1 < n2) == bAbove); - } - - if( (rU.p2.y != rL.p2.y) || (rU.p2.x != rL.p2.x) ) - { - const sal_Int64 n3 = (sal_Int64)aXDiff * (rL.p2.y - rU.p1.y); - const sal_Int64 n4 = (sal_Int64)aYDiff * (rL.p2.x - rU.p1.x); - if( n3 != n4 ) - return ((n3 < n4) == bAbove); - } - - // both segments overlap - return false; -} - -struct HalfTrapezoid -{ - // assumptions: - // maLine.p1.y <= mnY < maLine.p2.y - XLineFixed maLine; - XFixed mnY; -}; - -struct HalfTrapCompare -{ - bool operator()( const HalfTrapezoid& rA, const HalfTrapezoid& rB ) const - { - bool bIsTopLeft = false; - if( rA.mnY != rB.mnY ) // sort top-first if possible - bIsTopLeft = (rA.mnY < rB.mnY); - else // else sort left-first - bIsTopLeft = IsLeftOf( rA.maLine, rB.maLine ); - // adjust to priority_queue sorting convention - return !bIsTopLeft; - } -}; - -typedef std::priority_queue< HalfTrapezoid, std::vector<HalfTrapezoid>, HalfTrapCompare > HTQueue; - -typedef std::vector<XTrapezoid> TrapezoidVector; - -class TrapezoidXCompare -{ - const TrapezoidVector& mrVector; -public: - TrapezoidXCompare( const TrapezoidVector& rVector ) - : mrVector( rVector ) {} - bool operator()( int nA, int nB ) const - { return IsLeftOf( mrVector[nA].left, mrVector[nB].left ); } -}; - -typedef std::multiset< int, TrapezoidXCompare > ActiveTrapSet; - -class TrapezoidYCompare -{ - const TrapezoidVector& mrVector; -public: - TrapezoidYCompare( const TrapezoidVector& rVector ) - : mrVector( rVector ) {} - bool operator()( int nA, int nB ) const - { return (mrVector[nA].bottom < mrVector[nB].bottom); } -}; - -typedef std::multiset< int, TrapezoidYCompare > VerticalTrapSet; -} // end of anonymous namespace - -// draw a poly-polygon -bool X11SalGraphics::drawPolyPolygon( const ::basegfx::B2DPolyPolygon& rPolyPoly, double fTransparency) -{ - // nothing to do for empty polypolygons - const int nPolygonCount = rPolyPoly.count(); - if( nPolygonCount <= 0 ) - return TRUE; - - // nothing to do if everything is transparent - if( (nBrushColor_ == SALCOLOR_NONE) - && (nPenColor_ == SALCOLOR_NONE) ) - return TRUE; - - // cannot handle pencolor!=brushcolor yet - if( (nPenColor_ != SALCOLOR_NONE) - && (nPenColor_ != nBrushColor_) ) - return FALSE; - - // TODO: remove the env-variable when no longer needed - static const char* pRenderEnv = getenv( "SAL_DISABLE_RENDER_POLY" ); - if( pRenderEnv ) - return FALSE; - - // check xrender support for trapezoids - 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 ) - 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() ) - return true; - - // convert the polypolygon to trapezoids - - // first convert the B2DPolyPolygon to HalfTrapezoids - HTQueue aHTQueue; - for( int nOuterPolyIdx = 0; nOuterPolyIdx < nPolygonCount; ++nOuterPolyIdx ) - { - ::basegfx::B2DPolygon aOuterPolygon = rPolyPoly.getB2DPolygon( nOuterPolyIdx ); - - // get rid of bezier segments - if( aOuterPolygon.areControlPointsUsed() ) - aOuterPolygon = ::basegfx::tools::adaptiveSubdivideByDistance( aOuterPolygon, 0.125 ); - - // 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; - - // test and remove self intersections - // TODO: make code intersection save, then remove this test - basegfx::B2DPolyPolygon aInnerPolyPoly(basegfx::tools::solveCrossovers( aClippedPolygon)); - const int nInnerPolyCount = aInnerPolyPoly.count(); - for( int nInnerPolyIdx = 0; nInnerPolyIdx < nInnerPolyCount; ++nInnerPolyIdx ) - { - ::basegfx::B2DPolygon aInnerPolygon = aInnerPolyPoly.getB2DPolygon( nInnerPolyIdx ); - const int nPointCount = aInnerPolygon.count(); - if( !nPointCount ) - continue; - - // convert polygon point pairs to HalfTrapezoids - // connect the polygon point with the first one if needed - XPointFixed aOldXPF = { 0, 0 }; - XPointFixed aNewXPF; - for( int nPointIdx = 0; nPointIdx <= nPointCount; ++nPointIdx, aOldXPF = aNewXPF ) - { - const int k = (nPointIdx < nPointCount) ? nPointIdx : 0; - const ::basegfx::B2DPoint& aPoint = aInnerPolygon.getB2DPoint( k ); - - // convert the B2DPoint into XRENDER units - if(getAntiAliasB2DDraw()) - { - aNewXPF.x = XDoubleToFixed( aPoint.getX() ); - aNewXPF.y = XDoubleToFixed( aPoint.getY() ); - } - else - { - aNewXPF.x = XDoubleToFixed( basegfx::fround( aPoint.getX() ) ); - aNewXPF.y = XDoubleToFixed( basegfx::fround( aPoint.getY() ) ); - } - - // check if enough data is available for a new HalfTrapezoid - if( nPointIdx == 0 ) - continue; - // ignore vertical segments - if( aNewXPF.y == aOldXPF.y ) - continue; - - // construct HalfTrapezoid as topdown segment - HalfTrapezoid aHT; - if( aNewXPF.y < aOldXPF.y ) - { - aHT.maLine.p1 = aNewXPF; - aHT.maLine.p2 = aOldXPF; - } - else - { - aHT.maLine.p2 = aNewXPF; - aHT.maLine.p1 = aOldXPF; - } - - aHT.mnY = aHT.maLine.p1.y; - -#if 0 // ignore clipped HalfTrapezoids - if( aHT.mnY < 0 ) - aHT.mnY = 0; - else if( aHT.mnY > 10000 ) - continue; -#endif - - // queue up the HalfTrapezoid - aHTQueue.push( aHT ); - } - } - } - - if( aHTQueue.empty() ) - return TRUE; - - // then convert the HalfTrapezoids into full Trapezoids - TrapezoidVector aTrapVector; - aTrapVector.reserve( aHTQueue.size() * 2 ); // just a guess - - TrapezoidXCompare aTrapXCompare( aTrapVector ); - ActiveTrapSet aActiveTraps( aTrapXCompare ); - - TrapezoidYCompare aTrapYCompare( aTrapVector ); - VerticalTrapSet aVerticalTraps( aTrapYCompare ); - - while( !aHTQueue.empty() ) - { - XTrapezoid aTrapezoid; - - // convert a HalfTrapezoid pair - const HalfTrapezoid& rLeft = aHTQueue.top(); - aTrapezoid.top = rLeft.mnY; - aTrapezoid.bottom = rLeft.maLine.p2.y; - aTrapezoid.left = rLeft.maLine; - -#if 0 - // ignore empty trapezoids - if( aTrapezoid.bottom <= aTrapezoid.top ) - continue; -#endif - - aHTQueue.pop(); - if( aHTQueue.empty() ) // TODO: assert - break; - const HalfTrapezoid& rRight = aHTQueue.top(); - aTrapezoid.right = rRight.maLine; - aHTQueue.pop(); - - aTrapezoid.bottom = aTrapezoid.left.p2.y; - if( aTrapezoid.bottom > aTrapezoid.right.p2.y ) - aTrapezoid.bottom = aTrapezoid.right.p2.y; - - // keep the full Trapezoid candidate - aTrapVector.push_back( aTrapezoid ); - - // unless it splits an older trapezoid - bool bSplit = false; - for(;;) - { - // check if the new trapezoid overlaps with an old trapezoid - ActiveTrapSet::iterator aActiveTrapsIt - = aActiveTraps.upper_bound( aTrapVector.size()-1 ); - if( aActiveTrapsIt == aActiveTraps.begin() ) - break; - --aActiveTrapsIt; - - XTrapezoid& rLeftTrap = aTrapVector[ *aActiveTrapsIt ]; - - // in the ActiveTrapSet there are still trapezoids where - // a vertical overlap with new trapezoids is no longer possible - // they could have been removed in the verticaltraps loop below - // but this would have been expensive and is not needed as we can - // simply ignore them now and remove them from the ActiveTrapSet - // so they won't bother us in the future - if( rLeftTrap.bottom <= aTrapezoid.top ) - { - aActiveTraps.erase( aActiveTrapsIt ); - continue; - } - - // check if there is horizontal overlap - // aTrapezoid.left==rLeftTrap.right is allowed though - if( !IsLeftOf( aTrapezoid.left, rLeftTrap.right ) ) - break; - - // split the old trapezoid and keep its upper part - // find the old trapezoids entry in the VerticalTrapSet and remove it - typedef std::pair<VerticalTrapSet::iterator, VerticalTrapSet::iterator> VTSPair; - VTSPair aVTSPair = aVerticalTraps.equal_range( *aActiveTrapsIt ); - VerticalTrapSet::iterator aVTSit = aVTSPair.first; - for(; (aVTSit != aVTSPair.second) && (*aVTSit != *aActiveTrapsIt); ++aVTSit ) ; - if( aVTSit != aVTSPair.second ) - aVerticalTraps.erase( aVTSit ); - // then update the old trapezoid's bottom - rLeftTrap.bottom = aTrapezoid.top; - // enter the updated old trapzoid in VerticalTrapSet - aVerticalTraps.insert( aVerticalTraps.begin(), *aActiveTrapsIt ); - // the old trapezoid is no longer active - aActiveTraps.erase( aActiveTrapsIt ); - - // the trapezoid causing the split has become obsolete - // so its both sides have to be re-queued - HalfTrapezoid aHT; - aHT.mnY = aTrapezoid.top; - aHT.maLine = aTrapezoid.left; - aHTQueue.push( aHT ); - aHT.maLine = aTrapezoid.right; - aHTQueue.push( aHT ); - - bSplit = true; - break; - } - - // keep or forget the resulting full Trapezoid - if( bSplit ) - aTrapVector.pop_back(); - else - { - aActiveTraps.insert( aTrapVector.size()-1 ); - aVerticalTraps.insert( aTrapVector.size()-1 ); - } - - // mark trapezoids that can no longer be split as inactive - // and recycle their sides which were not fully resolved - static const XFixed nMaxTop = +0x7FFFFFFF; - XFixed nNewTop = aHTQueue.empty() ? nMaxTop : aHTQueue.top().mnY; - while( !aVerticalTraps.empty() ) - { - const XTrapezoid& rOldTrap = aTrapVector[ *aVerticalTraps.begin() ]; - if( nNewTop < rOldTrap.bottom ) - break; - // the reference Trapezoid can no longer be split - aVerticalTraps.erase( aVerticalTraps.begin() ); - - // recycle its sides that were not fully resolved - HalfTrapezoid aHT; - aHT.mnY = rOldTrap.bottom; - if( rOldTrap.left.p2.y > rOldTrap.bottom ) - { - aHT.maLine = rOldTrap.left; - aHTQueue.push( aHT ); - } - if( rOldTrap.right.p2.y > rOldTrap.bottom ) - { - aHT.maLine = rOldTrap.right; - aHTQueue.push( aHT ); - } - } - } - - // create xrender Picture for polygon foreground - SalDisplay::RenderEntry& rEntry = GetDisplay()->GetRenderEntries( m_nScreen )[ 32 ]; - if( !rEntry.m_aPicture ) - { - Display* pXDisplay = GetXDisplay(); - - rEntry.m_aPixmap = ::XCreatePixmap( pXDisplay, hDrawable_, 1, 1, 32 ); - XRenderPictureAttributes aAttr; - aAttr.repeat = true; - - XRenderPictFormat* pXRPF = rRenderPeer.FindStandardFormat( PictStandardARGB32 ); - rEntry.m_aPicture = rRenderPeer.CreatePicture( rEntry.m_aPixmap, pXRPF, CPRepeat, &aAttr ); - } - - // set polygon foreground color and opacity - 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 - if( pClipRegion_ && !XEmptyRegion( pClipRegion_ ) ) - rRenderPeer.SetPictureClipRegion( aDst, 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 ); - - return TRUE; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - -bool X11SalGraphics::drawPolyLine(const ::basegfx::B2DPolygon& rPolygon, const ::basegfx::B2DVector& rLineWidth, basegfx::B2DLineJoin eLineJoin) -{ - const XRenderPeer& rRenderPeer = XRenderPeer::GetInstance(); - if( !rRenderPeer.AreTrapezoidsSupported() ) - return false; - - // get the area polygon for the line polygon - basegfx::B2DPolygon aPolygon = rPolygon; - if( (rLineWidth.getX() != rLineWidth.getY()) - && !basegfx::fTools::equalZero( rLineWidth.getY() ) ) - { - // prepare for createAreaGeometry() with anisotropic linewidth - basegfx::B2DHomMatrix aAnisoMatrix; - aAnisoMatrix.scale( 1.0, rLineWidth.getX() / rLineWidth.getY() ); - aPolygon.transform( aAnisoMatrix ); - } - - // AW: reSegment no longer needed; new createAreaGeometry will remove exteme positions - // and create bezier polygons - //if( aPolygon.areControlPointsUsed() ) - // aPolygon = basegfx::tools::reSegmentPolygonEdges( aPolygon, 8, true, false ); - //const basegfx::B2DPolyPolygon aAreaPolyPoly = basegfx::tools::createAreaGeometryForSimplePolygon( - // aPolygon, 0.5*rLineWidth.getX(), eLineJoin ); - const basegfx::B2DPolyPolygon aAreaPolyPoly(basegfx::tools::createAreaGeometry(aPolygon, 0.5*rLineWidth.getX(), eLineJoin)); - - if( (rLineWidth.getX() != rLineWidth.getY()) - && !basegfx::fTools::equalZero( rLineWidth.getX() ) ) - { - // postprocess createAreaGeometry() for anisotropic linewidth - basegfx::B2DHomMatrix aAnisoMatrix; - aAnisoMatrix.scale( 1.0, rLineWidth.getY() / rLineWidth.getX() ); - aPolygon.transform( aAnisoMatrix ); - } - - // temporarily adjust brush color to pen color - // since the line is drawn as an area-polygon - const SalColor aKeepBrushColor = nBrushColor_; - nBrushColor_ = nPenColor_; - - // draw each area polypolygon component individually - // to emulate the polypolygon winding rule "non-zero" - bool bDrawOk = true; - const int nPolyCount = aAreaPolyPoly.count(); - for( int nPolyIdx = 0; nPolyIdx < nPolyCount; ++nPolyIdx ) - { - const ::basegfx::B2DPolyPolygon aOnePoly( aAreaPolyPoly.getB2DPolygon( nPolyIdx ) ); - bDrawOk = drawPolyPolygon( aOnePoly, 0.0); - if( !bDrawOk ) - break; - } - - // restore the original brush GC - nBrushColor_ = aKeepBrushColor; - return bDrawOk; -} - -// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_vcl.hxx"
+
+#include "Xproto.h"
+
+#include "salunx.h"
+#include "saldata.hxx"
+#include "saldisp.hxx"
+#include "salgdi.h"
+#include "salframe.h"
+#include "salvd.h"
+#include "xrender_peer.hxx"
+
+#include "vcl/printergfx.hxx"
+#include "vcl/jobdata.hxx"
+
+#include "tools/debug.hxx"
+
+#include "basegfx/polygon/b2dpolygon.hxx"
+#include "basegfx/polygon/b2dpolypolygon.hxx"
+#include "basegfx/polygon/b2dpolypolygontools.hxx"
+#include "basegfx/polygon/b2dpolygontools.hxx"
+#include "basegfx/polygon/b2dpolygonclipper.hxx"
+#include "basegfx/polygon/b2dlinegeometry.hxx"
+#include "basegfx/matrix/b2dhommatrix.hxx"
+#include "basegfx/polygon/b2dpolypolygoncutter.hxx"
+
+#include <vector>
+#include <queue>
+#include <set>
+
+// -=-= SalPolyLine =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+#define STATIC_POINTS 64
+
+class SalPolyLine
+{
+ XPoint Points_[STATIC_POINTS];
+ XPoint *pFirst_;
+public:
+ inline SalPolyLine( ULONG nPoints );
+ inline SalPolyLine( ULONG nPoints, const SalPoint *p );
+ inline ~SalPolyLine();
+ inline XPoint &operator [] ( ULONG n ) const
+ { return pFirst_[n]; }
+};
+
+inline SalPolyLine::SalPolyLine( ULONG nPoints )
+ : pFirst_( nPoints+1 > STATIC_POINTS ? new XPoint[nPoints+1] : Points_ )
+{}
+
+inline SalPolyLine::SalPolyLine( ULONG nPoints, const SalPoint *p )
+ : pFirst_( nPoints+1 > STATIC_POINTS ? new XPoint[nPoints+1] : Points_ )
+{
+ for( ULONG i = 0; i < nPoints; i++ )
+ {
+ pFirst_[i].x = (short)p[i].mnX;
+ pFirst_[i].y = (short)p[i].mnY;
+ }
+ pFirst_[nPoints] = pFirst_[0]; // close polyline
+}
+
+inline SalPolyLine::~SalPolyLine()
+{ if( pFirst_ != Points_ ) delete [] pFirst_; }
+
+#undef STATIC_POINTS
+// -=-= X11SalGraphics =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+X11SalGraphics::X11SalGraphics()
+{
+ m_pFrame = NULL;
+ m_pVDev = NULL;
+ m_pDeleteColormap = NULL;
+ hDrawable_ = None;
+ m_aRenderPicture = 0;
+ m_pRenderFormat = NULL;
+
+ pClipRegion_ = NULL;
+ pPaintRegion_ = NULL;
+
+ pPenGC_ = NULL;
+ nPenPixel_ = 0;
+ nPenColor_ = MAKE_SALCOLOR( 0x00, 0x00, 0x00 ); // Black
+
+ pFontGC_ = NULL;
+ for( int i = 0; i < MAX_FALLBACK; ++i )
+ {
+ mXFont[i] = NULL;
+ mpServerFont[i] = NULL;
+ }
+
+ nTextPixel_ = 0;
+ nTextColor_ = MAKE_SALCOLOR( 0x00, 0x00, 0x00 ); // Black
+
+ pBrushGC_ = NULL;
+ nBrushPixel_ = 0;
+ nBrushColor_ = MAKE_SALCOLOR( 0xFF, 0xFF, 0xFF ); // White
+ hBrush_ = None;
+
+ pMonoGC_ = NULL;
+ pCopyGC_ = NULL;
+ pMaskGC_ = NULL;
+ pInvertGC_ = NULL;
+ pInvert50GC_ = NULL;
+ pStippleGC_ = NULL;
+ pTrackingGC_ = NULL;
+
+ bWindow_ = FALSE;
+ bPrinter_ = FALSE;
+ bVirDev_ = FALSE;
+ bPenGC_ = FALSE;
+ bFontGC_ = FALSE;
+ bBrushGC_ = FALSE;
+ bMonoGC_ = FALSE;
+ bCopyGC_ = FALSE;
+ bInvertGC_ = FALSE;
+ bInvert50GC_ = FALSE;
+ bStippleGC_ = FALSE;
+ bTrackingGC_ = FALSE;
+ bXORMode_ = FALSE;
+ bDitherBrush_ = FALSE;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+X11SalGraphics::~X11SalGraphics()
+{
+ ReleaseFonts();
+ freeResources();
+}
+
+// -=-= SalGraphics / X11SalGraphics =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+void X11SalGraphics::freeResources()
+{
+ Display *pDisplay = GetXDisplay();
+
+ DBG_ASSERT( !pPaintRegion_, "pPaintRegion_" );
+ if( pClipRegion_ ) XDestroyRegion( pClipRegion_ ), pClipRegion_ = None;
+
+ if( hBrush_ ) XFreePixmap( pDisplay, hBrush_ ), hBrush_ = None;
+ if( pPenGC_ ) XFreeGC( pDisplay, pPenGC_ ), pPenGC_ = None;
+ if( pFontGC_ ) XFreeGC( pDisplay, pFontGC_ ), pFontGC_ = None;
+ if( pBrushGC_ ) XFreeGC( pDisplay, pBrushGC_ ), pBrushGC_ = None;
+ if( pMonoGC_ ) XFreeGC( pDisplay, pMonoGC_ ), pMonoGC_ = None;
+ if( pCopyGC_ ) XFreeGC( pDisplay, pCopyGC_ ), pCopyGC_ = None;
+ if( pMaskGC_ ) XFreeGC( pDisplay, pMaskGC_ ), pMaskGC_ = None;
+ if( pInvertGC_ ) XFreeGC( pDisplay, pInvertGC_ ), pInvertGC_ = None;
+ if( pInvert50GC_ ) XFreeGC( pDisplay, pInvert50GC_ ), pInvert50GC_ = None;
+ if( pStippleGC_ ) XFreeGC( pDisplay, pStippleGC_ ), pStippleGC_ = None;
+ if( pTrackingGC_ ) XFreeGC( pDisplay, pTrackingGC_ ), pTrackingGC_ = None;
+ 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;
+ 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;
+ 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()
+{
+ SetDrawable( None, m_nScreen );
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::SetClipRegion( GC pGC, XLIB_Region pXReg ) const
+{
+ Display *pDisplay = GetXDisplay();
+
+ int n = 0;
+ XLIB_Region Regions[3];
+
+ if( pClipRegion_ /* && !XEmptyRegion( pClipRegion_ ) */ )
+ Regions[n++] = pClipRegion_;
+// if( pPaintRegion_ /* && !XEmptyRegion( pPaintRegion_ ) */ )
+// Regions[n++] = pPaintRegion_;
+
+ if( pXReg && !XEmptyRegion( pXReg ) )
+ Regions[n++] = pXReg;
+
+ if( 0 == n )
+ XSetClipMask( pDisplay, pGC, None );
+ else if( 1 == n )
+ XSetRegion( pDisplay, pGC, Regions[0] );
+ else
+ {
+ XLIB_Region pTmpRegion = XCreateRegion();
+ XIntersectRegion( Regions[0], Regions[1], pTmpRegion );
+// if( 3 == n )
+// XIntersectRegion( Regions[2], pTmpRegion, pTmpRegion );
+ XSetRegion( pDisplay, pGC, pTmpRegion );
+ XDestroyRegion( pTmpRegion );
+ }
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+GC X11SalGraphics::SelectPen()
+{
+ Display *pDisplay = GetXDisplay();
+
+ if( !pPenGC_ )
+ {
+ XGCValues values;
+ values.subwindow_mode = ClipByChildren;
+ values.fill_rule = EvenOddRule; // Pict import/ Gradient
+ values.graphics_exposures = False;
+
+ pPenGC_ = XCreateGC( pDisplay, hDrawable_,
+ GCSubwindowMode | GCFillRule | GCGraphicsExposures,
+ &values );
+ }
+
+ if( !bPenGC_ )
+ {
+ if( nPenColor_ != SALCOLOR_NONE )
+ XSetForeground( pDisplay, pPenGC_, nPenPixel_ );
+ XSetFunction ( pDisplay, pPenGC_, bXORMode_ ? GXxor : GXcopy );
+ SetClipRegion( pPenGC_ );
+ bPenGC_ = TRUE;
+ }
+
+ return pPenGC_;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+GC X11SalGraphics::SelectBrush()
+{
+ Display *pDisplay = GetXDisplay();
+
+ DBG_ASSERT( nBrushColor_ != SALCOLOR_NONE, "Brush Transparent" );
+
+ if( !pBrushGC_ )
+ {
+ XGCValues values;
+ // values.subwindow_mode = IncludeInferiors;
+ values.subwindow_mode = ClipByChildren;
+ values.fill_rule = EvenOddRule; // Pict import/ Gradient
+ values.graphics_exposures = False;
+
+ pBrushGC_ = XCreateGC( pDisplay, hDrawable_,
+ GCSubwindowMode | GCFillRule | GCGraphicsExposures,
+ &values );
+ }
+
+ if( !bBrushGC_ )
+ {
+ if( !bDitherBrush_ )
+ {
+ XSetFillStyle ( pDisplay, pBrushGC_, FillSolid );
+ XSetForeground( pDisplay, pBrushGC_, nBrushPixel_ );
+ #if defined(_USE_PRINT_EXTENSION_)
+ XSetBackground( pDisplay, pBrushGC_,
+ WhitePixel(pDisplay, DefaultScreen(pDisplay)) );
+ #else
+ if( bPrinter_ )
+ XSetTile( pDisplay, pBrushGC_, None );
+ #endif
+ }
+ else
+ {
+ // Bug in Sun Solaris 2.5.1, XFillPolygon doesn't allways reflect
+ // changes of the tile. PROPERTY_BUG_Tile doesn't fix this !
+ if (GetDisplay()->GetProperties() & PROPERTY_BUG_FillPolygon_Tile)
+ XSetFillStyle ( pDisplay, pBrushGC_, FillSolid );
+
+ XSetFillStyle ( pDisplay, pBrushGC_, FillTiled );
+ XSetTile ( pDisplay, pBrushGC_, hBrush_ );
+ }
+ XSetFunction ( pDisplay, pBrushGC_, bXORMode_ ? GXxor : GXcopy );
+ SetClipRegion( pBrushGC_ );
+
+ bBrushGC_ = TRUE;
+ }
+
+ return pBrushGC_;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+GC X11SalGraphics::GetTrackingGC()
+{
+ const char dash_list[2] = {2, 2};
+
+ if( !pTrackingGC_ )
+ {
+ XGCValues values;
+
+ values.graphics_exposures = False;
+ values.foreground = m_pColormap->GetBlackPixel()
+ ^ m_pColormap->GetWhitePixel();
+ values.function = GXxor;
+ values.line_width = 1;
+ values.line_style = LineOnOffDash;
+
+ pTrackingGC_ = XCreateGC( GetXDisplay(), GetDrawable(),
+ GCGraphicsExposures | GCForeground | GCFunction
+ | GCLineWidth | GCLineStyle,
+ &values );
+ XSetDashes( GetXDisplay(), pTrackingGC_, 0, dash_list, 2 );
+ }
+
+ if( !bTrackingGC_ )
+ {
+ SetClipRegion( pTrackingGC_ );
+ bTrackingGC_ = TRUE;
+ }
+
+ return pTrackingGC_;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::DrawLines( ULONG nPoints,
+ const SalPolyLine &rPoints,
+ GC pGC,
+ bool bClose
+ )
+{
+ // errechne wie viele Linien XWindow auf einmal zeichnen kann
+ ULONG nMaxLines = (GetDisplay()->GetMaxRequestSize() - sizeof(xPolyPointReq))
+ / sizeof(xPoint);
+ if( nMaxLines > nPoints ) nMaxLines = nPoints;
+
+ // gebe alle Linien aus, die XWindows zeichnen kann.
+ ULONG n;
+ for( n = 0; nPoints - n > nMaxLines; n += nMaxLines - 1 )
+ XDrawLines( GetXDisplay(),
+ GetDrawable(),
+ pGC,
+ &rPoints[n],
+ nMaxLines,
+ CoordModeOrigin );
+
+ if( n < nPoints )
+ XDrawLines( GetXDisplay(),
+ GetDrawable(),
+ pGC,
+ &rPoints[n],
+ nPoints - n,
+ CoordModeOrigin );
+ if( bClose )
+ {
+ if( rPoints[nPoints-1].x != rPoints[0].x || rPoints[nPoints-1].y != rPoints[0].y )
+ drawLine( rPoints[nPoints-1].x, rPoints[nPoints-1].y, rPoints[0].x, rPoints[0].y );
+ }
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+// Dithern: Calculate a dither-pixmap and make a brush of it
+#define P_DELTA 51
+#define DMAP( v, m ) ((v % P_DELTA) > m ? (v / P_DELTA) + 1 : (v / P_DELTA))
+
+BOOL X11SalGraphics::GetDitherPixmap( SalColor nSalColor )
+{
+ static const short nOrdDither8Bit[ 8 ][ 8 ] =
+ {
+ { 0, 38, 9, 48, 2, 40, 12, 50},
+ {25, 12, 35, 22, 28, 15, 37, 24},
+ { 6, 44, 3, 41, 8, 47, 5, 44},
+ {32, 19, 28, 16, 34, 21, 31, 18},
+ { 1, 40, 11, 49, 0, 39, 10, 48},
+ {27, 14, 36, 24, 26, 13, 36, 23},
+ { 8, 46, 4, 43, 7, 45, 4, 42},
+ {33, 20, 30, 17, 32, 20, 29, 16}
+ };
+
+ // test for correct depth (8bit)
+ if( GetColormap().GetVisual().GetDepth() != 8 )
+ return FALSE;
+
+ char pBits[64];
+ char *pBitsPtr = pBits;
+
+ // Set the pallette-entries for the dithering tile
+ UINT8 nSalColorRed = SALCOLOR_RED ( nSalColor );
+ UINT8 nSalColorGreen = SALCOLOR_GREEN ( nSalColor );
+ UINT8 nSalColorBlue = SALCOLOR_BLUE ( nSalColor );
+
+ for( int nY = 0; nY < 8; nY++ )
+ {
+ for( int nX = 0; nX < 8; nX++ )
+ {
+ short nMagic = nOrdDither8Bit[nY][nX];
+ UINT8 nR = P_DELTA * DMAP( nSalColorRed, nMagic );
+ UINT8 nG = P_DELTA * DMAP( nSalColorGreen, nMagic );
+ UINT8 nB = P_DELTA * DMAP( nSalColorBlue, nMagic );
+
+ *pBitsPtr++ = GetColormap().GetPixel( MAKE_SALCOLOR( nR, nG, nB ) );
+ }
+ }
+
+ // create the tile as ximage and an according pixmap -> caching
+ XImage *pImage = XCreateImage( GetXDisplay(),
+ GetColormap().GetXVisual(),
+ 8,
+ ZPixmap,
+ 0, // offset
+ pBits, // data
+ 8, 8, // width & height
+ 8, // bitmap_pad
+ 0 ); // (default) bytes_per_line
+
+ if ( GetDisplay()->GetProperties() & PROPERTY_BUG_Tile )
+ {
+ if (hBrush_)
+ XFreePixmap (GetXDisplay(), hBrush_);
+ hBrush_ = XCreatePixmap( GetXDisplay(), GetDrawable(), 8, 8, 8 );
+ }
+ else
+ if( !hBrush_ )
+ hBrush_ = XCreatePixmap( GetXDisplay(), GetDrawable(), 8, 8, 8 );
+
+ // put the ximage to the pixmap
+ XPutImage( GetXDisplay(),
+ hBrush_,
+ GetDisplay()->GetCopyGC( m_nScreen ),
+ pImage,
+ 0, 0, // Source
+ 0, 0, // Destination
+ 8, 8 ); // width & height
+
+ // destroy image-frame but not palette-data
+ pImage->data = NULL;
+ XDestroyImage( pImage );
+
+ return TRUE;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::GetResolution( sal_Int32 &rDPIX, sal_Int32 &rDPIY ) // const
+{
+ const SalDisplay *pDisplay = GetDisplay();
+
+ rDPIX = pDisplay->GetResolution().A();
+ rDPIY = pDisplay->GetResolution().B();
+ if( !pDisplay->GetExactResolution() && rDPIY < 96 )
+ {
+ rDPIX = Divide( rDPIX * 96, rDPIY );
+ rDPIY = 96;
+ }
+ else if ( rDPIY > 200 )
+ {
+ rDPIX = Divide( rDPIX * 200, rDPIY );
+ rDPIY = 200;
+ }
+
+ // #i12705# equalize x- and y-resolution if they are close enough
+ if( rDPIX != rDPIY )
+ {
+ // different x- and y- resolutions are usually artifacts of
+ // a wrongly calculated screen size.
+ //if( (13*rDPIX >= 10*rDPIY) && (13*rDPIY >= 10*rDPIX) ) //+-30%
+ {
+#ifdef DEBUG
+ printf("Forcing Resolution from %" SAL_PRIdINT32 "x%" SAL_PRIdINT32 " to %" SAL_PRIdINT32 "x%" SAL_PRIdINT32 "\n",
+ rDPIX,rDPIY,rDPIY,rDPIY);
+#endif
+ rDPIX = rDPIY; // y-resolution is more trustworthy
+ }
+ }
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+USHORT X11SalGraphics::GetBitCount() // const
+{
+ return GetVisual().GetDepth();
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+long X11SalGraphics::GetGraphicsWidth() const
+{
+ if( m_pFrame )
+ return m_pFrame->maGeometry.nWidth;
+ else if( m_pVDev )
+ return m_pVDev->GetWidth();
+ else
+ return 0;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+long X11SalGraphics::GetGraphicsHeight() const
+{
+ if( m_pFrame )
+ return m_pFrame->maGeometry.nHeight;
+ else if( m_pVDev )
+ return m_pVDev->GetHeight();
+ else
+ return 0;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::ResetClipRegion()
+{
+ if( pClipRegion_ )
+ {
+ bPenGC_ = FALSE;
+ bFontGC_ = FALSE;
+ bBrushGC_ = FALSE;
+ bMonoGC_ = FALSE;
+ bCopyGC_ = FALSE;
+ bInvertGC_ = FALSE;
+ bInvert50GC_ = FALSE;
+ bStippleGC_ = FALSE;
+ bTrackingGC_ = FALSE;
+
+ XDestroyRegion( pClipRegion_ );
+ pClipRegion_ = NULL;
+ }
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::BeginSetClipRegion( ULONG )
+{
+ if( pClipRegion_ )
+ XDestroyRegion( pClipRegion_ );
+ pClipRegion_ = XCreateRegion();
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+BOOL X11SalGraphics::unionClipRegion( long nX, long nY, long nDX, long nDY )
+{
+ if (!nDX || !nDY)
+ return TRUE;
+
+ XRectangle aRect;
+ aRect.x = (short)nX;
+ aRect.y = (short)nY;
+ aRect.width = (unsigned short)nDX;
+ aRect.height = (unsigned short)nDY;
+
+ XUnionRectWithRegion( &aRect, pClipRegion_, pClipRegion_ );
+
+ return TRUE;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+bool X11SalGraphics::unionClipRegion( const ::basegfx::B2DPolyPolygon& )
+{
+ // TODO: implement and advertise OutDevSupport_B2DClip support
+ return false;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::EndSetClipRegion()
+{
+ bPenGC_ = FALSE;
+ bFontGC_ = FALSE;
+ bBrushGC_ = FALSE;
+ bMonoGC_ = FALSE;
+ bCopyGC_ = FALSE;
+ bInvertGC_ = FALSE;
+ bInvert50GC_ = FALSE;
+ bStippleGC_ = FALSE;
+ bTrackingGC_ = FALSE;
+
+ if( XEmptyRegion( pClipRegion_ ) )
+ {
+ XDestroyRegion( pClipRegion_ );
+ pClipRegion_= NULL;
+ }
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::SetLineColor()
+{
+ if( nPenColor_ != SALCOLOR_NONE )
+ {
+ nPenColor_ = SALCOLOR_NONE;
+ bPenGC_ = FALSE;
+ }
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::SetLineColor( SalColor nSalColor )
+{
+ if( nPenColor_ != nSalColor )
+ {
+ nPenColor_ = nSalColor;
+ nPenPixel_ = GetPixel( nSalColor );
+ bPenGC_ = FALSE;
+ }
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::SetFillColor()
+{
+ if( nBrushColor_ != SALCOLOR_NONE )
+ {
+ bDitherBrush_ = FALSE;
+ nBrushColor_ = SALCOLOR_NONE;
+ bBrushGC_ = FALSE;
+ }
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::SetFillColor( SalColor nSalColor )
+{
+ if( nBrushColor_ != nSalColor )
+ {
+ bDitherBrush_ = FALSE;
+ nBrushColor_ = nSalColor;
+ nBrushPixel_ = GetPixel( nSalColor );
+ if( TrueColor != GetColormap().GetVisual().GetClass()
+ && GetColormap().GetColor( nBrushPixel_ ) != nBrushColor_
+ && nSalColor != MAKE_SALCOLOR( 0x00, 0x00, 0x00 ) // black
+ && nSalColor != MAKE_SALCOLOR( 0x00, 0x00, 0x80 ) // blue
+ && nSalColor != MAKE_SALCOLOR( 0x00, 0x80, 0x00 ) // green
+ && nSalColor != MAKE_SALCOLOR( 0x00, 0x80, 0x80 ) // cyan
+ && nSalColor != MAKE_SALCOLOR( 0x80, 0x00, 0x00 ) // red
+ && nSalColor != MAKE_SALCOLOR( 0x80, 0x00, 0x80 ) // magenta
+ && nSalColor != MAKE_SALCOLOR( 0x80, 0x80, 0x00 ) // brown
+ && nSalColor != MAKE_SALCOLOR( 0x80, 0x80, 0x80 ) // gray
+ && nSalColor != MAKE_SALCOLOR( 0xC0, 0xC0, 0xC0 ) // light gray
+ && nSalColor != MAKE_SALCOLOR( 0x00, 0x00, 0xFF ) // light blue
+ && nSalColor != MAKE_SALCOLOR( 0x00, 0xFF, 0x00 ) // light green
+ && nSalColor != MAKE_SALCOLOR( 0x00, 0xFF, 0xFF ) // light cyan
+ && nSalColor != MAKE_SALCOLOR( 0xFF, 0x00, 0x00 ) // light red
+ && nSalColor != MAKE_SALCOLOR( 0xFF, 0x00, 0xFF ) // light magenta
+ && nSalColor != MAKE_SALCOLOR( 0xFF, 0xFF, 0x00 ) // light brown
+ && nSalColor != MAKE_SALCOLOR( 0xFF, 0xFF, 0xFF ) )
+ bDitherBrush_ = GetDitherPixmap(nSalColor);
+ bBrushGC_ = FALSE;
+ }
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::SetROPLineColor( SalROPColor nROPColor )
+{
+ switch( nROPColor )
+ {
+ case SAL_ROP_0 : // 0
+ nPenPixel_ = (Pixel)0;
+ break;
+ case SAL_ROP_1 : // 1
+ nPenPixel_ = (Pixel)(1 << GetVisual().GetDepth()) - 1;
+ break;
+ case SAL_ROP_INVERT : // 2
+ nPenPixel_ = (Pixel)(1 << GetVisual().GetDepth()) - 1;
+ break;
+ }
+ nPenColor_ = GetColormap().GetColor( nPenPixel_ );
+ bPenGC_ = FALSE;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::SetROPFillColor( SalROPColor nROPColor )
+{
+ switch( nROPColor )
+ {
+ case SAL_ROP_0 : // 0
+ nBrushPixel_ = (Pixel)0;
+ break;
+ case SAL_ROP_1 : // 1
+ nBrushPixel_ = (Pixel)(1 << GetVisual().GetDepth()) - 1;
+ break;
+ case SAL_ROP_INVERT : // 2
+ nBrushPixel_ = (Pixel)(1 << GetVisual().GetDepth()) - 1;
+ break;
+ }
+ bDitherBrush_ = FALSE;
+ nBrushColor_ = GetColormap().GetColor( nBrushPixel_ );
+ bBrushGC_ = FALSE;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::SetXORMode( bool bSet, bool )
+{
+ if( !bXORMode_ == bSet )
+ {
+ bXORMode_ = bSet;
+ bPenGC_ = FALSE;
+ bBrushGC_ = FALSE;
+ bMonoGC_ = FALSE;
+ bCopyGC_ = FALSE;
+ bInvertGC_ = FALSE;
+ bInvert50GC_ = FALSE;
+ bStippleGC_ = FALSE;
+ bTrackingGC_ = FALSE;
+ }
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::drawPixel( long nX, long nY )
+{
+ if( nPenColor_ != SALCOLOR_NONE )
+ XDrawPoint( GetXDisplay(), GetDrawable(), SelectPen(), nX, nY );
+}
+
+void X11SalGraphics::drawPixel( long nX, long nY, SalColor nSalColor )
+{
+ if( nSalColor != SALCOLOR_NONE )
+ {
+ Display *pDisplay = GetXDisplay();
+
+ if( (nPenColor_ == SALCOLOR_NONE) && !bPenGC_ )
+ {
+ SetLineColor( nSalColor );
+ XDrawPoint( pDisplay, GetDrawable(), SelectPen(), nX, nY );
+ nPenColor_ = SALCOLOR_NONE;
+ bPenGC_ = False;
+ }
+ else
+ {
+ GC pGC = SelectPen();
+
+ if( nSalColor != nPenColor_ )
+ XSetForeground( pDisplay, pGC, GetPixel( nSalColor ) );
+
+ XDrawPoint( pDisplay, GetDrawable(), pGC, nX, nY );
+
+ if( nSalColor != nPenColor_ )
+ XSetForeground( pDisplay, pGC, nPenPixel_ );
+ }
+ }
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::drawLine( long nX1, long nY1, long nX2, long nY2 )
+{
+ if( nPenColor_ != SALCOLOR_NONE )
+ {
+ if ( GetDisplay()->GetProperties() & PROPERTY_BUG_DrawLine )
+ {
+ GC aGC = SelectPen();
+ XDrawPoint (GetXDisplay(), GetDrawable(), aGC, (int)nX1, (int)nY1);
+ XDrawPoint (GetXDisplay(), GetDrawable(), aGC, (int)nX2, (int)nY2);
+ XDrawLine (GetXDisplay(), GetDrawable(), aGC, nX1, nY1, nX2, nY2 );
+ }
+ else
+ XDrawLine( GetXDisplay(), GetDrawable(),SelectPen(),
+ nX1, nY1, nX2, nY2 );
+ }
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::drawRect( long nX, long nY, long nDX, long nDY )
+{
+ if( nBrushColor_ != SALCOLOR_NONE )
+ {
+ XFillRectangle( GetXDisplay(),
+ GetDrawable(),
+ SelectBrush(),
+ nX, nY, nDX, nDY );
+ }
+ // Beschreibung DrawRect verkehrt, deshalb -1
+ if( nPenColor_ != SALCOLOR_NONE )
+ XDrawRectangle( GetXDisplay(),
+ GetDrawable(),
+ SelectPen(),
+ nX, nY, nDX-1, nDY-1 );
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::drawPolyLine( ULONG nPoints, const SalPoint *pPtAry )
+{
+ drawPolyLine( nPoints, pPtAry, false );
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::drawPolyLine( ULONG nPoints, const SalPoint *pPtAry, bool bClose )
+{
+ if( nPenColor_ != 0xFFFFFFFF )
+ {
+ SalPolyLine Points( nPoints, pPtAry );
+
+ DrawLines( nPoints, Points, SelectPen(), bClose );
+ }
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::drawPolygon( ULONG nPoints, const SalPoint* pPtAry )
+{
+ if( nPoints == 0 )
+ return;
+
+ if( nPoints < 3 )
+ {
+ if( !bXORMode_ )
+ {
+ if( 1 == nPoints )
+ drawPixel( pPtAry[0].mnX, pPtAry[0].mnY );
+ else
+ drawLine( pPtAry[0].mnX, pPtAry[0].mnY,
+ pPtAry[1].mnX, pPtAry[1].mnY );
+ }
+ return;
+ }
+
+ SalPolyLine Points( nPoints, pPtAry );
+
+ nPoints++;
+
+ /* WORKAROUND: some Xservers (Xorg, VIA chipset in this case)
+ * do not draw the visible part of a polygon
+ * if it overlaps to the left of screen 0,y.
+ * This happens to be the case in the gradient drawn in the
+ * menubar background. workaround for the special case of
+ * of a rectangle overlapping to the left.
+ */
+ if( nPoints == 5 &&
+ Points[ 0 ].x == Points[ 1 ].x &&
+ Points[ 1 ].y == Points[ 2 ].y &&
+ Points[ 2 ].x == Points[ 3 ].x &&
+ Points[ 0 ].x == Points[ 4 ].x && Points[ 0 ].y == Points[ 4 ].y
+ )
+ {
+ bool bLeft = false;
+ bool bRight = false;
+ for(unsigned int i = 0; i < nPoints; i++ )
+ {
+ if( Points[i].x < 0 )
+ bLeft = true;
+ else
+ bRight= true;
+ }
+ if( bLeft && ! bRight )
+ return;
+ if( bLeft && bRight )
+ {
+ for( unsigned int i = 0; i < nPoints; i++ )
+ if( Points[i].x < 0 )
+ Points[i].x = 0;
+ }
+ }
+
+ if( nBrushColor_ != SALCOLOR_NONE )
+ XFillPolygon( GetXDisplay(),
+ GetDrawable(),
+ SelectBrush(),
+ &Points[0], nPoints,
+ Complex, CoordModeOrigin );
+
+ if( nPenColor_ != 0xFFFFFFFF )
+ DrawLines( nPoints, Points, SelectPen(), true );
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+void X11SalGraphics::drawPolyPolygon( sal_uInt32 nPoly,
+ const sal_uInt32 *pPoints,
+ PCONSTSALPOINT *pPtAry )
+{
+ if( nBrushColor_ != SALCOLOR_NONE )
+ {
+ ULONG i, n;
+ XLIB_Region pXRegA = NULL;
+
+ for( i = 0; i < nPoly; i++ ) {
+ n = pPoints[i];
+ SalPolyLine Points( n, pPtAry[i] );
+ if( n > 2 )
+ {
+ XLIB_Region pXRegB = XPolygonRegion( &Points[0], n+1, WindingRule );
+ if( !pXRegA )
+ pXRegA = pXRegB;
+ else
+ {
+ XXorRegion( pXRegA, pXRegB, pXRegA );
+ XDestroyRegion( pXRegB );
+ }
+ }
+ }
+
+ if( pXRegA )
+ {
+ XRectangle aXRect;
+ XClipBox( pXRegA, &aXRect );
+
+ GC pGC = SelectBrush();
+ SetClipRegion( pGC, pXRegA ); // ??? doppelt
+ XDestroyRegion( pXRegA );
+ bBrushGC_ = FALSE;
+
+ XFillRectangle( GetXDisplay(),
+ GetDrawable(),
+ pGC,
+ aXRect.x, aXRect.y, aXRect.width, aXRect.height );
+ }
+ }
+
+ if( nPenColor_ != SALCOLOR_NONE )
+ for( ULONG i = 0; i < nPoly; i++ )
+ drawPolyLine( pPoints[i], pPtAry[i], true );
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+sal_Bool X11SalGraphics::drawPolyLineBezier( ULONG, const SalPoint*, const BYTE* )
+{
+ return sal_False;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+sal_Bool X11SalGraphics::drawPolygonBezier( ULONG, const SalPoint*, const BYTE* )
+{
+ return sal_False;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+sal_Bool X11SalGraphics::drawPolyPolygonBezier( sal_uInt32, const sal_uInt32*,
+ const SalPoint* const*, const BYTE* const* )
+{
+ return sal_False;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+void X11SalGraphics::invert( ULONG nPoints,
+ const SalPoint* pPtAry,
+ SalInvert nFlags )
+{
+ SalPolyLine Points ( nPoints, pPtAry );
+
+ GC pGC;
+ if( SAL_INVERT_50 & nFlags )
+ pGC = GetInvert50GC();
+ else
+ if ( SAL_INVERT_TRACKFRAME & nFlags )
+ pGC = GetTrackingGC();
+ else
+ pGC = GetInvertGC();
+
+ if( SAL_INVERT_TRACKFRAME & nFlags )
+ DrawLines ( nPoints, Points, pGC, true );
+ else
+ XFillPolygon( GetXDisplay(),
+ GetDrawable(),
+ pGC,
+ &Points[0], nPoints,
+ Complex, CoordModeOrigin );
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+BOOL X11SalGraphics::drawEPS( long,long,long,long,void*,ULONG )
+{
+ return FALSE;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+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;
+
+ aRes.nSize = sizeof(aRes);
+ aRes.pDisplay = GetXDisplay();
+ aRes.hDrawable = hDrawable_;
+ aRes.pVisual = GetDisplay()->GetVisual( m_nScreen ).GetVisual();
+ aRes.nScreen = m_nScreen;
+ aRes.nDepth = GetDisplay()->GetVisual( m_nScreen ).GetDepth();
+ aRes.aColormap = GetDisplay()->GetColormap( m_nScreen ).GetXColormap();
+ aRes.pRenderFormat = m_pRenderFormat;
+ return aRes;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+// B2DPolygon support methods
+
+namespace { // anonymous namespace to prevent export
+// the methods and structures here are used by the
+// B2DPolyPolygon->RenderTrapezoid conversion algorithm
+
+// compare two line segments
+// assumption: both segments point downward
+// assumption: they must have at least some y-overlap
+// assumption: rA.p1.y <= rB.p1.y
+bool IsLeftOf( const XLineFixed& rA, const XLineFixed& rB )
+{
+ bool bAbove = (rA.p1.y <= rB.p1.y);
+ const XLineFixed& rU = bAbove ? rA : rB;
+ const XLineFixed& rL = bAbove ? rB : rA;
+
+ const XFixed aXDiff = rU.p2.x - rU.p1.x;
+ const XFixed aYDiff = rU.p2.y - rU.p1.y;
+
+ if( (rU.p1.y != rL.p1.y) || (rU.p1.x != rL.p1.x) )
+ {
+ const sal_Int64 n1 = (sal_Int64)aXDiff * (rL.p1.y - rU.p1.y);
+ const sal_Int64 n2 = (sal_Int64)aYDiff * (rL.p1.x - rU.p1.x);
+ if( n1 != n2 )
+ return ((n1 < n2) == bAbove);
+ }
+
+ if( (rU.p2.y != rL.p2.y) || (rU.p2.x != rL.p2.x) )
+ {
+ const sal_Int64 n3 = (sal_Int64)aXDiff * (rL.p2.y - rU.p1.y);
+ const sal_Int64 n4 = (sal_Int64)aYDiff * (rL.p2.x - rU.p1.x);
+ if( n3 != n4 )
+ return ((n3 < n4) == bAbove);
+ }
+
+ // both segments overlap
+ return false;
+}
+
+struct HalfTrapezoid
+{
+ // assumptions:
+ // maLine.p1.y <= mnY < maLine.p2.y
+ XLineFixed maLine;
+ XFixed mnY;
+};
+
+struct HalfTrapCompare
+{
+ bool operator()( const HalfTrapezoid& rA, const HalfTrapezoid& rB ) const
+ {
+ bool bIsTopLeft = false;
+ if( rA.mnY != rB.mnY ) // sort top-first if possible
+ bIsTopLeft = (rA.mnY < rB.mnY);
+ else // else sort left-first
+ bIsTopLeft = IsLeftOf( rA.maLine, rB.maLine );
+ // adjust to priority_queue sorting convention
+ return !bIsTopLeft;
+ }
+};
+
+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;
+
+class TrapezoidXCompare
+{
+ const TrapezoidVector& mrVector;
+public:
+ TrapezoidXCompare( const TrapezoidVector& rVector )
+ : mrVector( rVector ) {}
+ bool operator()( int nA, int nB ) const
+ { return IsLeftOf( mrVector[nA].left, mrVector[nB].left ); }
+};
+
+typedef std::multiset< int, TrapezoidXCompare > ActiveTrapSet;
+
+class TrapezoidYCompare
+{
+ const TrapezoidVector& mrVector;
+public:
+ TrapezoidYCompare( const TrapezoidVector& rVector )
+ : mrVector( rVector ) {}
+ bool operator()( int nA, int nB ) const
+ { return (mrVector[nA].bottom < mrVector[nB].bottom); }
+};
+
+typedef std::multiset< int, TrapezoidYCompare > VerticalTrapSet;
+} // end of anonymous namespace
+
+// draw a poly-polygon
+bool X11SalGraphics::drawPolyPolygon( const ::basegfx::B2DPolyPolygon& rPolyPoly, double fTransparency)
+{
+ // nothing to do for empty polypolygons
+ const int nPolygonCount = rPolyPoly.count();
+ if( nPolygonCount <= 0 )
+ return TRUE;
+
+ // nothing to do if everything is transparent
+ if( (nBrushColor_ == SALCOLOR_NONE)
+ && (nPenColor_ == SALCOLOR_NONE) )
+ return TRUE;
+
+ // cannot handle pencolor!=brushcolor yet
+ if( (nPenColor_ != SALCOLOR_NONE)
+ && (nPenColor_ != nBrushColor_) )
+ return FALSE;
+
+ // TODO: remove the env-variable when no longer needed
+ static const char* pRenderEnv = getenv( "SAL_DISABLE_RENDER_POLY" );
+ if( pRenderEnv )
+ return FALSE;
+
+ // check xrender support for trapezoids
+ XRenderPeer& rRenderPeer = XRenderPeer::GetInstance();
+ if( !rRenderPeer.AreTrapezoidsSupported() )
+ return FALSE;
+ 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() );
+ 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 )
+ {
+ const ::basegfx::B2DPolygon aOuterPolygon = rPolyPoly.getB2DPolygon( nOuterPolyIdx );
+
+ // 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;
+ }
+
+ // 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
+ basegfx::B2DPolyPolygon aInnerPolyPoly(basegfx::tools::solveCrossovers( aClippedPolygon));
+ const int nInnerPolyCount = aInnerPolyPoly.count();
+ for( int nInnerPolyIdx = 0; nInnerPolyIdx < nInnerPolyCount; ++nInnerPolyIdx )
+ {
+ ::basegfx::B2DPolygon aInnerPolygon = aInnerPolyPoly.getB2DPolygon( nInnerPolyIdx );
+ const int nPointCount = aInnerPolygon.count();
+ 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 };
+ XPointFixed aNewXPF;
+ for( int nPointIdx = 0; nPointIdx <= nPointCount; ++nPointIdx, aOldXPF = aNewXPF )
+ {
+ const int k = (nPointIdx < nPointCount) ? nPointIdx : 0;
+ const ::basegfx::B2DPoint& aPoint = aInnerPolygon.getB2DPoint( k );
+
+ // convert the B2DPoint into XRENDER units
+ if(getAntiAliasB2DDraw())
+ {
+ aNewXPF.x = XDoubleToFixed( aPoint.getX() );
+ aNewXPF.y = XDoubleToFixed( aPoint.getY() );
+ }
+ else
+ {
+ aNewXPF.x = XDoubleToFixed( basegfx::fround( aPoint.getX() ) );
+ aNewXPF.y = XDoubleToFixed( basegfx::fround( aPoint.getY() ) );
+ }
+
+ // check if enough data is available for a new HalfTrapezoid
+ if( nPointIdx == 0 )
+ continue;
+ // ignore vertical segments
+ if( aNewXPF.y == aOldXPF.y )
+ continue;
+
+ // construct HalfTrapezoid as topdown segment
+ HalfTrapezoid aHT;
+ if( aNewXPF.y < aOldXPF.y )
+ {
+ aHT.maLine.p1 = aNewXPF;
+ aHT.maLine.p2 = aOldXPF;
+ }
+ else
+ {
+ aHT.maLine.p2 = aNewXPF;
+ aHT.maLine.p1 = aOldXPF;
+ }
+
+ aHT.mnY = aHT.maLine.p1.y;
+
+#if 0 // ignore clipped HalfTrapezoids
+ if( aHT.mnY < 0 )
+ aHT.mnY = 0;
+ else if( aHT.mnY > 10000 )
+ continue;
+#endif
+
+ // queue up the HalfTrapezoid
+ aHTQueue.push( aHT );
+ }
+ }
+ }
+
+ if( aHTQueue.empty() )
+ return TRUE;
+
+ // then convert the HalfTrapezoids into full Trapezoids
+ TrapezoidVector aTrapVector;
+ aTrapVector.reserve( aHTQueue.size() * 2 ); // just a guess
+
+ TrapezoidXCompare aTrapXCompare( aTrapVector );
+ ActiveTrapSet aActiveTraps( aTrapXCompare );
+
+ TrapezoidYCompare aTrapYCompare( aTrapVector );
+ VerticalTrapSet aVerticalTraps( aTrapYCompare );
+
+ while( !aHTQueue.empty() )
+ {
+ XTrapezoid aTrapezoid;
+
+ // convert a HalfTrapezoid pair
+ const HalfTrapezoid& rLeft = aHTQueue.top();
+ aTrapezoid.top = rLeft.mnY;
+ aTrapezoid.bottom = rLeft.maLine.p2.y;
+ aTrapezoid.left = rLeft.maLine;
+
+#if 0
+ // ignore empty trapezoids
+ if( aTrapezoid.bottom <= aTrapezoid.top )
+ continue;
+#endif
+
+ aHTQueue.pop();
+ if( aHTQueue.empty() ) // TODO: assert
+ break;
+ const HalfTrapezoid& rRight = aHTQueue.top();
+ aTrapezoid.right = rRight.maLine;
+ aHTQueue.pop();
+
+ aTrapezoid.bottom = aTrapezoid.left.p2.y;
+ if( aTrapezoid.bottom > aTrapezoid.right.p2.y )
+ aTrapezoid.bottom = aTrapezoid.right.p2.y;
+
+ // keep the full Trapezoid candidate
+ aTrapVector.push_back( aTrapezoid );
+
+ // unless it splits an older trapezoid
+ bool bSplit = false;
+ for(;;)
+ {
+ // check if the new trapezoid overlaps with an old trapezoid
+ ActiveTrapSet::iterator aActiveTrapsIt
+ = aActiveTraps.upper_bound( aTrapVector.size()-1 );
+ if( aActiveTrapsIt == aActiveTraps.begin() )
+ break;
+ --aActiveTrapsIt;
+
+ XTrapezoid& rLeftTrap = aTrapVector[ *aActiveTrapsIt ];
+
+ // in the ActiveTrapSet there are still trapezoids where
+ // a vertical overlap with new trapezoids is no longer possible
+ // they could have been removed in the verticaltraps loop below
+ // but this would have been expensive and is not needed as we can
+ // simply ignore them now and remove them from the ActiveTrapSet
+ // so they won't bother us in the future
+ if( rLeftTrap.bottom <= aTrapezoid.top )
+ {
+ aActiveTraps.erase( aActiveTrapsIt );
+ continue;
+ }
+
+ // check if there is horizontal overlap
+ // aTrapezoid.left==rLeftTrap.right is allowed though
+ if( !IsLeftOf( aTrapezoid.left, rLeftTrap.right ) )
+ break;
+
+ // split the old trapezoid and keep its upper part
+ // find the old trapezoids entry in the VerticalTrapSet and remove it
+ typedef std::pair<VerticalTrapSet::iterator, VerticalTrapSet::iterator> VTSPair;
+ VTSPair aVTSPair = aVerticalTraps.equal_range( *aActiveTrapsIt );
+ VerticalTrapSet::iterator aVTSit = aVTSPair.first;
+ for(; (aVTSit != aVTSPair.second) && (*aVTSit != *aActiveTrapsIt); ++aVTSit ) ;
+ if( aVTSit != aVTSPair.second )
+ aVerticalTraps.erase( aVTSit );
+ // then update the old trapezoid's bottom
+ rLeftTrap.bottom = aTrapezoid.top;
+ // enter the updated old trapzoid in VerticalTrapSet
+ aVerticalTraps.insert( aVerticalTraps.begin(), *aActiveTrapsIt );
+ // the old trapezoid is no longer active
+ aActiveTraps.erase( aActiveTrapsIt );
+
+ // the trapezoid causing the split has become obsolete
+ // so its both sides have to be re-queued
+ HalfTrapezoid aHT;
+ aHT.mnY = aTrapezoid.top;
+ aHT.maLine = aTrapezoid.left;
+ aHTQueue.push( aHT );
+ aHT.maLine = aTrapezoid.right;
+ aHTQueue.push( aHT );
+
+ bSplit = true;
+ break;
+ }
+
+ // keep or forget the resulting full Trapezoid
+ if( bSplit )
+ aTrapVector.pop_back();
+ else
+ {
+ aActiveTraps.insert( aTrapVector.size()-1 );
+ aVerticalTraps.insert( aTrapVector.size()-1 );
+ }
+
+ // mark trapezoids that can no longer be split as inactive
+ // and recycle their sides which were not fully resolved
+ static const XFixed nMaxTop = +0x7FFFFFFF;
+ XFixed nNewTop = aHTQueue.empty() ? nMaxTop : aHTQueue.top().mnY;
+ while( !aVerticalTraps.empty() )
+ {
+ const XTrapezoid& rOldTrap = aTrapVector[ *aVerticalTraps.begin() ];
+ if( nNewTop < rOldTrap.bottom )
+ break;
+ // the reference Trapezoid can no longer be split
+ aVerticalTraps.erase( aVerticalTraps.begin() );
+
+ // recycle its sides that were not fully resolved
+ HalfTrapezoid aHT;
+ aHT.mnY = rOldTrap.bottom;
+ if( rOldTrap.left.p2.y > rOldTrap.bottom )
+ {
+ aHT.maLine = rOldTrap.left;
+ aHTQueue.push( aHT );
+ }
+ if( rOldTrap.right.p2.y > rOldTrap.bottom )
+ {
+ aHT.maLine = rOldTrap.right;
+ aHTQueue.push( aHT );
+ }
+ }
+ }
+
+ // create xrender Picture for polygon foreground
+ SalDisplay::RenderEntry& rEntry = GetDisplay()->GetRenderEntries( m_nScreen )[ 32 ];
+ if( !rEntry.m_aPicture )
+ {
+ Display* pXDisplay = GetXDisplay();
+
+ rEntry.m_aPixmap = ::XCreatePixmap( pXDisplay, hDrawable_, 1, 1, 32 );
+ XRenderPictureAttributes aAttr;
+ aAttr.repeat = true;
+
+ XRenderPictFormat* pXRPF = rRenderPeer.FindStandardFormat( PictStandardARGB32 );
+ rEntry.m_aPicture = rRenderPeer.CreatePicture( rEntry.m_aPixmap, pXRPF, CPRepeat, &aAttr );
+ }
+
+ // set polygon foreground color and opacity
+ XRenderColor aRenderColor = GetXRenderColor( nBrushColor_ , fTransparency );
+ rRenderPeer.FillRectangle( PictOpSrc, rEntry.m_aPicture, &aRenderColor, 0, 0, 1, 1 );
+
+ // set clipping
+ // TODO: move into GetXRenderPicture?
+ if( pClipRegion_ && !XEmptyRegion( pClipRegion_ ) )
+ rRenderPeer.SetPictureClipRegion( aDstPic, pClipRegion_ );
+
+ // render the trapezoids
+ const XRenderPictFormat* pMaskFormat = rRenderPeer.GetStandardFormatA8();
+ rRenderPeer.CompositeTrapezoids( PictOpOver,
+ rEntry.m_aPicture, aDstPic, pMaskFormat, 0, 0, &aTrapVector[0], aTrapVector.size() );
+
+ return TRUE;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+bool X11SalGraphics::drawPolyLine(const ::basegfx::B2DPolygon& rPolygon, const ::basegfx::B2DVector& rLineWidth, basegfx::B2DLineJoin eLineJoin)
+{
+ const XRenderPeer& rRenderPeer = XRenderPeer::GetInstance();
+ if( !rRenderPeer.AreTrapezoidsSupported() )
+ return false;
+
+ // get the area polygon for the line polygon
+ basegfx::B2DPolygon aPolygon = rPolygon;
+ if( (rLineWidth.getX() != rLineWidth.getY())
+ && !basegfx::fTools::equalZero( rLineWidth.getY() ) )
+ {
+ // prepare for createAreaGeometry() with anisotropic linewidth
+ basegfx::B2DHomMatrix aAnisoMatrix;
+ aAnisoMatrix.scale( 1.0, rLineWidth.getX() / rLineWidth.getY() );
+ aPolygon.transform( aAnisoMatrix );
+ }
+
+ // AW: reSegment no longer needed; new createAreaGeometry will remove exteme positions
+ // and create bezier polygons
+ //if( aPolygon.areControlPointsUsed() )
+ // aPolygon = basegfx::tools::reSegmentPolygonEdges( aPolygon, 8, true, false );
+ //const basegfx::B2DPolyPolygon aAreaPolyPoly = basegfx::tools::createAreaGeometryForSimplePolygon(
+ // aPolygon, 0.5*rLineWidth.getX(), eLineJoin );
+ const basegfx::B2DPolyPolygon aAreaPolyPoly(basegfx::tools::createAreaGeometry(aPolygon, 0.5*rLineWidth.getX(), eLineJoin));
+
+ if( (rLineWidth.getX() != rLineWidth.getY())
+ && !basegfx::fTools::equalZero( rLineWidth.getX() ) )
+ {
+ // postprocess createAreaGeometry() for anisotropic linewidth
+ basegfx::B2DHomMatrix aAnisoMatrix;
+ aAnisoMatrix.scale( 1.0, rLineWidth.getY() / rLineWidth.getX() );
+ aPolygon.transform( aAnisoMatrix );
+ }
+
+ // temporarily adjust brush color to pen color
+ // since the line is drawn as an area-polygon
+ const SalColor aKeepBrushColor = nBrushColor_;
+ nBrushColor_ = nPenColor_;
+
+ // draw each area polypolygon component individually
+ // to emulate the polypolygon winding rule "non-zero"
+ bool bDrawOk = true;
+ const int nPolyCount = aAreaPolyPoly.count();
+ for( int nPolyIdx = 0; nPolyIdx < nPolyCount; ++nPolyIdx )
+ {
+ const ::basegfx::B2DPolyPolygon aOnePoly( aAreaPolyPoly.getB2DPolygon( nPolyIdx ) );
+ bDrawOk = drawPolyPolygon( aOnePoly, 0.0);
+ if( !bDrawOk )
+ break;
+ }
+
+ // restore the original brush GC
+ nBrushColor_ = aKeepBrushColor;
+ return bDrawOk;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
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 f3da8cb3855f..0891f0f9fb05 100644 --- a/vcl/unx/source/gdi/salprnpsp.cxx +++ b/vcl/unx/source/gdi/salprnpsp.cxx @@ -274,7 +274,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" ) ) ) 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/window/salframe.cxx b/vcl/unx/source/window/salframe.cxx index 8f2bccebc443..22e43999caa6 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" @@ -2799,6 +2799,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 +3172,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 +3217,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..8e7d6f35ef83 100644 --- a/vcl/util/linksvp/makefile.mk +++ b/vcl/util/linksvp/makefile.mk @@ -56,13 +56,7 @@ SHL1STDLIBS=\ $(VCLLIB)\ $(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..08d6f9197f28 100644 --- a/vcl/util/makefile.mk +++ b/vcl/util/makefile.mk @@ -264,13 +264,7 @@ SHL2DEPN=$(SHL1IMPLIBN) $(SHL1TARGETN) # libs for generic plugin SHL2STDLIBS=\ $(VCLLIB)\ - $(SOTLIB) \ - $(UNOTOOLSLIB) \ $(TOOLSLIB) \ - $(COMPHELPERLIB) \ - $(UCBHELPERLIB) \ - $(CPPUHELPERLIB) \ - $(CPPULIB) \ $(VOSLIB) \ $(BASEGFXLIB) \ $(SALLIB) @@ -344,11 +338,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/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/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/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/salframe.cxx b/vcl/win/source/window/salframe.cxx index fd0f065ce2bc..57ad272bcf51 100644 --- a/vcl/win/source/window/salframe.cxx +++ b/vcl/win/source/window/salframe.cxx @@ -358,16 +358,12 @@ SalFrame* ImplSalCreateFrame( WinSalInstance* pInst, void *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 +2109,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; @@ -3703,10 +3698,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; } } |