Please use this updated patch as it contains a more accurate commit message.
At least I now know I shouldn't blindly copy the file path from cgit!
Graeme
From 4ebc8b5fd7344a799ea1441c3df1266057e92b19 Mon Sep 17 00:00:00 2001
From: J. Graeme Lingard <jgraeme+git@gmail.com>
Date: Thu, 30 Sep 2010 20:47:27 +0100
Subject: [PATCH] Remove unnecessary comments from grfflt.cxx
These comments include:-
- an #include directive
- multiple comments containing //CHINA001
- a large section of code that was moved to
libreoffice/components/cui/source/dialogs/cuigrfflt.cxx
---
svx/source/dialog/grfflt.cxx | 489 ++----------------------------------------
1 files changed, 21 insertions(+), 468 deletions(-)
diff --git a/svx/source/dialog/grfflt.cxx b/svx/source/dialog/grfflt.cxx
index bf8bd10..6e93aeb 100644
--- a/svx/source/dialog/grfflt.cxx
+++ b/svx/source/dialog/grfflt.cxx
@@ -38,9 +38,8 @@
#include <svx/dialmgr.hxx>
#include <svx/grfflt.hxx>
-//#include "grfflt.hrc"
#include <svx/dialogs.hrc>
-#include <svx/svxdlg.hxx> //CHINA001
+#include <svx/svxdlg.hxx>
// --------------------
// - SvxGraphicFilter -
@@ -187,45 +186,42 @@ ULONG SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest& rReq,
GraphicObject& r
case( SID_GRFFILTER_MOSAIC ):
{
- //CHINA001 GraphicFilterMosaic aDlg( pWindow, rGraphic, 4, 4, FALSE );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
if(pFact)
{
AbstractGraphicFilterDialog* aDlg = pFact->CreateGraphicFilterMosaic( pWindow,
rGraphic, 4, 4, FALSE, RID_SVX_GRFFILTER_DLG_MOSAIC);
- DBG_ASSERT(aDlg, "Dialogdiet fail!");//CHINA001
- if( aDlg->Execute() == RET_OK ) //CHINA001 if( aDlg.Execute() == RET_OK )
- aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 ); //CHINA001
aGraphic = aDlg.GetFilteredGraphic( rGraphic, 1.0, 1.0 );
- delete aDlg; //add by CHINA001
+ DBG_ASSERT(aDlg, "Dialogdiet fail!");
+ if( aDlg->Execute() == RET_OK )
+ aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 );
+ delete aDlg;
}
}
break;
case( SID_GRFFILTER_EMBOSS ):
{
- //CHINA001 GraphicFilterEmboss aDlg( pWindow, rGraphic, RP_MM );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
if(pFact)
{
AbstractGraphicFilterDialog* aDlg = pFact->CreateGraphicFilterEmboss( pWindow,
rGraphic, RP_MM, RID_SVX_GRFFILTER_DLG_EMBOSS );
- DBG_ASSERT(aDlg, "Dialogdiet fail!");//CHINA001
- if( aDlg->Execute() == RET_OK ) //CHINA001 if( aDlg.Execute() == RET_OK )
- aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 ); //CHINA001
aGraphic = aDlg.GetFilteredGraphic( rGraphic, 1.0, 1.0 );
- delete aDlg; //add by CHINA001
+ DBG_ASSERT(aDlg, "Dialogdiet fail!");
+ if( aDlg->Execute() == RET_OK )
+ aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 );
+ delete aDlg;
}
}
break;
case( SID_GRFFILTER_POSTER ):
{
- //CHINA001 GraphicFilterPoster aDlg( pWindow, rGraphic, 16 );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
if(pFact)
{
AbstractGraphicFilterDialog* aDlg = pFact->CreateGraphicFilterPosterSepia(
pWindow, rGraphic, 16, RID_SVX_GRFFILTER_DLG_POSTER );
- DBG_ASSERT(aDlg, "Dialogdiet fail!");//CHINA001
- if( aDlg->Execute() == RET_OK ) //CHINA001 if( aDlg.Execute() == RET_OK )
- aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 ); //CHINA001
aGraphic = aDlg.GetFilteredGraphic( rGraphic, 1.0, 1.0 );
- delete aDlg; //add by CHINA001
+ DBG_ASSERT(aDlg, "Dialogdiet fail!");
+ if( aDlg->Execute() == RET_OK )
+ aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 );
+ delete aDlg;
}
}
break;
@@ -257,30 +253,28 @@ ULONG SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest& rReq,
GraphicObject& r
case( SID_GRFFILTER_SEPIA ):
{
- //CHINA001 GraphicFilterSepia aDlg( pWindow, rGraphic, 10 );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
if(pFact)
{
AbstractGraphicFilterDialog* aDlg = pFact->CreateGraphicFilterPosterSepia(
pWindow, rGraphic, 10, RID_SVX_GRFFILTER_DLG_SEPIA );
- DBG_ASSERT(aDlg, "Dialogdiet fail!");//CHINA001
- if( aDlg->Execute() == RET_OK ) //CHINA001 if( aDlg.Execute() == RET_OK )
- aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 ); //CHINA001
aGraphic = aDlg.GetFilteredGraphic( rGraphic, 1.0, 1.0 );
- delete aDlg; //add by CHINA001
+ DBG_ASSERT(aDlg, "Dialogdiet fail!");
+ if( aDlg->Execute() == RET_OK )
+ aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 );
+ delete aDlg;
}
}
break;
case( SID_GRFFILTER_SOLARIZE ):
{
- //CHINA001 GraphicFilterSolarize aDlg( pWindow, rGraphic, 128, FALSE );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
if(pFact)
{
AbstractGraphicFilterDialog* aDlg = pFact->CreateGraphicFilterSolarize(
pWindow, rGraphic, 128, FALSE, RID_SVX_GRFFILTER_DLG_SOLARIZE );
- DBG_ASSERT(aDlg, "Dialogdiet fail!");//CHINA001
- if( aDlg->Execute() == RET_OK ) //CHINA001 if( aDlg.Execute() == RET_OK )
- aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 ); //CHINA001
aGraphic = aDlg.GetFilteredGraphic( rGraphic, 1.0, 1.0 );
- delete aDlg; //add by CHINA001
+ DBG_ASSERT(aDlg, "Dialogdiet fail!");
+ if( aDlg->Execute() == RET_OK )
+ aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 );
+ delete aDlg;
}
}
break;
@@ -350,444 +344,3 @@ void SvxGraphicFilter::DisableGraphicFilterSlots( SfxItemSet& rSet )
if( SFX_ITEM_AVAILABLE <= rSet.GetItemState( SID_GRFFILTER_SOLARIZE ) )
rSet.DisableItem( SID_GRFFILTER_SOLARIZE );
};
-/* CHINA001 move to cuigrfflt.cxx
-// --------------------------------------
-// - GraphicFilterDialog::PreviewWindow -
-// --------------------------------------
-
-GraphicFilterDialog::PreviewWindow::PreviewWindow( Window* pParent, const ResId& rResId ) :
- Control( pParent, rResId )
-{
-}
-
-// -----------------------------------------------------------------------------
-
-GraphicFilterDialog::PreviewWindow::~PreviewWindow()
-{
-}
-
-// -----------------------------------------------------------------------------
-
-void GraphicFilterDialog::PreviewWindow::Paint( const Rectangle& rRect )
-{
- Control::Paint( rRect );
-
- const Size aGrfSize( LogicToPixel( maGraphic.GetPrefSize(), maGraphic.GetPrefMapMode() ) );
- const Size aOutSize( GetOutputSizePixel() );
- const Point aGrfPos( ( aOutSize.Width() - aGrfSize.Width() ) >> 1,
- ( aOutSize.Height() - aGrfSize.Height() ) >> 1 );
-
- if( maGraphic.IsAnimated() )
- maGraphic.StartAnimation( this , aGrfPos, aGrfSize );
- else
- maGraphic.Draw( this, aGrfPos, aGrfSize );
-}
-
-// -----------------------------------------------------------------------------
-
-void GraphicFilterDialog::PreviewWindow::SetGraphic( const Graphic& rGraphic )
-{
- maGraphic = rGraphic;
-
- if( maGraphic.IsAnimated() || maGraphic.IsTransparent() )
- Invalidate();
- else
- Paint( Rectangle( Point(), GetOutputSizePixel() ) );
-}
-
-// -----------------------
-// - GraphicFilterDialog -
-// -----------------------
-
-GraphicFilterDialog::GraphicFilterDialog( Window* pParent, const ResId& rResId, const Graphic&
rGraphic ) :
- ModalDialog ( pParent, rResId ),
- mfScaleX ( 0.0 ),
- mfScaleY ( 0.0 ),
- maSizePixel ( LogicToPixel( rGraphic.GetPrefSize(), rGraphic.GetPrefMapMode() )
),
- maModifyHdl ( LINK( this, GraphicFilterDialog, ImplModifyHdl ) ),
- maPreview ( this, SVX_RES( CTL_PREVIEW ) ),
- maFlParameter ( this, SVX_RES( FL_PARAMETER ) ),
- maBtnOK ( this, SVX_RES( BTN_OK ) ),
- maBtnCancel ( this, SVX_RES( BTN_CANCEL ) ),
- maBtnHelp ( this, SVX_RES( BTN_HELP ) )
-{
- const Size aPreviewSize( maPreview.GetOutputSizePixel() );
- Size aGrfSize( maSizePixel );
-
- if( rGraphic.GetType() == GRAPHIC_BITMAP &&
- aPreviewSize.Width() && aPreviewSize.Height() &&
- aGrfSize.Width() && aGrfSize.Height() )
- {
- const double fGrfWH = (double) aGrfSize.Width() / aGrfSize.Height();
- const double fPreWH = (double) aPreviewSize.Width() / aPreviewSize.Height();
-
- if( fGrfWH < fPreWH )
- {
- aGrfSize.Width() = (long) ( aPreviewSize.Height() * fGrfWH );
- aGrfSize.Height()= aPreviewSize.Height();
- }
- else
- {
- aGrfSize.Width() = aPreviewSize.Width();
- aGrfSize.Height()= (long) ( aPreviewSize.Width() / fGrfWH);
- }
-
- mfScaleX = (double) aGrfSize.Width() / maSizePixel.Width();
- mfScaleY = (double) aGrfSize.Height() / maSizePixel.Height();
-
- if( !rGraphic.IsAnimated() )
- {
- BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
-
- if( aBmpEx.Scale( aGrfSize, BMP_SCALE_INTERPOLATE ) )
- maGraphic = aBmpEx;
- }
- }
-
- maTimer.SetTimeoutHdl( LINK( this, GraphicFilterDialog, ImplPreviewTimeoutHdl ) );
- maTimer.SetTimeout( 100 );
- ImplModifyHdl( NULL );
-}
-
-// -----------------------------------------------------------------------------
-
-GraphicFilterDialog::~GraphicFilterDialog()
-{
-}
-
-// -----------------------------------------------------------------------------
-
-IMPL_LINK( GraphicFilterDialog, ImplPreviewTimeoutHdl, Timer*, pTimer )
-{
- maTimer.Stop();
- maPreview.SetGraphic( GetFilteredGraphic( maGraphic, mfScaleX, mfScaleY ) );
-
- return 0;
-}
-
-// -----------------------------------------------------------------------------
-
-IMPL_LINK( GraphicFilterDialog, ImplModifyHdl, void*, p )
-{
- if( maGraphic.GetType() == GRAPHIC_BITMAP )
- {
- maTimer.Stop();
- maTimer.Start();
- }
-
- return 0;
-}
-
-// ----------------
-// - FilterMosaic -
-// ----------------
-
-GraphicFilterMosaic::GraphicFilterMosaic( Window* pParent, const Graphic& rGraphic,
- USHORT nTileWidth, USHORT nTileHeight, BOOL
bEnhanceEdges ) :
- GraphicFilterDialog( pParent, SVX_RES( RID_SVX_GRFFILTER_DLG_MOSAIC ), rGraphic ),
- maFtWidth ( this, SVX_RES( DLG_FILTERMOSAIC_FT_WIDTH ) ),
- maMtrWidth ( this, SVX_RES( DLG_FILTERMOSAIC_MTR_WIDTH ) ),
- maFtHeight ( this, SVX_RES( DLG_FILTERMOSAIC_FT_HEIGHT ) ),
- maMtrHeight ( this, SVX_RES( DLG_FILTERMOSAIC_MTR_HEIGHT ) ),
- maCbxEdges ( this, SVX_RES( DLG_FILTERMOSAIC_CBX_EDGES ) )
-{
- FreeResource();
-
- maMtrWidth.SetValue( nTileWidth );
- maMtrWidth.SetLast( GetGraphicSizePixel().Width() );
- maMtrWidth.SetModifyHdl( GetModifyHdl() );
-
- maMtrHeight.SetValue( nTileHeight );
- maMtrHeight.SetLast( GetGraphicSizePixel().Height() );
- maMtrHeight.SetModifyHdl( GetModifyHdl() );
-
- maCbxEdges.Check( bEnhanceEdges );
- maCbxEdges.SetToggleHdl( GetModifyHdl() );
-
- maMtrWidth.GrabFocus();
-}
-
-// -----------------------------------------------------------------------------
-
-GraphicFilterMosaic::~GraphicFilterMosaic()
-{
-}
-
-// -----------------------------------------------------------------------------
-
-Graphic GraphicFilterMosaic::GetFilteredGraphic( const Graphic& rGraphic,
- double fScaleX, double fScaleY )
-{
- Graphic aRet;
- const Size aSize( Max( FRound( GetTileWidth() * fScaleX ), 1L ),
- Max( FRound( GetTileHeight() * fScaleY ), 1L ) );
- BmpFilterParam aParam( aSize );
-
- if( rGraphic.IsAnimated() )
- {
- Animation aAnim( rGraphic.GetAnimation() );
-
- if( aAnim.Filter( BMP_FILTER_MOSAIC, &aParam ) )
- {
- if( IsEnhanceEdges() )
- aAnim.Filter( BMP_FILTER_SHARPEN );
-
- aRet = aAnim;
- }
- }
- else
- {
- BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
-
- if( aBmpEx.Filter( BMP_FILTER_MOSAIC, &aParam ) )
- {
- if( IsEnhanceEdges() )
- aBmpEx.Filter( BMP_FILTER_SHARPEN );
-
- aRet = aBmpEx;
- }
- }
-
- return aRet;
-}
-
-// ------------------
-// - GraphicFilterSolarize -
-// ------------------
-
-GraphicFilterSolarize::GraphicFilterSolarize( Window* pParent, const Graphic& rGraphic,
- BYTE cGreyThreshold, BOOL bInvert ) :
- GraphicFilterDialog ( pParent, SVX_RES( RID_SVX_GRFFILTER_DLG_SOLARIZE ), rGraphic ),
- maFtThreshold ( this, SVX_RES( DLG_FILTERSOLARIZE_FT_THRESHOLD ) ),
- maMtrThreshold ( this, SVX_RES( DLG_FILTERSOLARIZE_MTR_THRESHOLD ) ),
- maCbxInvert ( this, SVX_RES( DLG_FILTERSOLARIZE_CBX_INVERT ) )
-{
- FreeResource();
-
- maMtrThreshold.SetValue( FRound( cGreyThreshold / 2.55 ) );
- maMtrThreshold.SetModifyHdl( GetModifyHdl() );
-
- maCbxInvert.Check( bInvert );
- maCbxInvert.SetToggleHdl( GetModifyHdl() );
-
- maMtrThreshold.GrabFocus();
-}
-
-// -----------------------------------------------------------------------------
-
-GraphicFilterSolarize::~GraphicFilterSolarize()
-{
-}
-
-// -----------------------------------------------------------------------------
-
-Graphic GraphicFilterSolarize::GetFilteredGraphic( const Graphic& rGraphic,
- double fScaleX, double fScaleY )
-{
- Graphic aRet;
- BmpFilterParam aParam( GetGreyThreshold() );
-
- if( rGraphic.IsAnimated() )
- {
- Animation aAnim( rGraphic.GetAnimation() );
-
- if( aAnim.Filter( BMP_FILTER_SOLARIZE, &aParam ) )
- {
- if( IsInvert() )
- aAnim.Invert();
-
- aRet = aAnim;
- }
- }
- else
- {
- BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
-
- if( aBmpEx.Filter( BMP_FILTER_SOLARIZE, &aParam ) )
- {
- if( IsInvert() )
- aBmpEx.Invert();
-
- aRet = aBmpEx;
- }
- }
-
- return aRet;
-}
-
-// ----------------------
-// - GraphicFilterSepia -
-// ----------------------
-
-GraphicFilterSepia::GraphicFilterSepia( Window* pParent, const Graphic& rGraphic,
- USHORT nSepiaPercent ) :
- GraphicFilterDialog ( pParent, SVX_RES( RID_SVX_GRFFILTER_DLG_SEPIA ), rGraphic ),
- maFtSepia ( this, SVX_RES( DLG_FILTERSEPIA_FT_SEPIA ) ),
- maMtrSepia ( this, SVX_RES( DLG_FILTERSEPIA_MTR_SEPIA ) )
-{
- FreeResource();
-
- maMtrSepia.SetValue( nSepiaPercent );
- maMtrSepia.SetModifyHdl( GetModifyHdl() );
-
- maMtrSepia.GrabFocus();
-}
-
-// -----------------------------------------------------------------------------
-
-GraphicFilterSepia::~GraphicFilterSepia()
-{
-}
-
-// -----------------------------------------------------------------------------
-
-Graphic GraphicFilterSepia::GetFilteredGraphic( const Graphic& rGraphic,
- double fScaleX, double fScaleY )
-{
- Graphic aRet;
- BmpFilterParam aParam( GetSepiaPercent() );
-
- if( rGraphic.IsAnimated() )
- {
- Animation aAnim( rGraphic.GetAnimation() );
-
- if( aAnim.Filter( BMP_FILTER_SEPIA, &aParam ) )
- aRet = aAnim;
- }
- else
- {
- BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
-
- if( aBmpEx.Filter( BMP_FILTER_SEPIA, &aParam ) )
- aRet = aBmpEx;
- }
-
- return aRet;
-}
-
-// -----------------------
-// - GraphicFilterPoster -
-// -----------------------
-
-GraphicFilterPoster::GraphicFilterPoster( Window* pParent, const Graphic& rGraphic,
- USHORT nPosterCount ) :
- GraphicFilterDialog ( pParent, SVX_RES( RID_SVX_GRFFILTER_DLG_POSTER ), rGraphic ),
- maFtPoster ( this, SVX_RES( DLG_FILTERPOSTER_FT_POSTER ) ),
- maNumPoster ( this, SVX_RES( DLG_FILTERPOSTER_NUM_POSTER ) )
-{
- FreeResource();
-
- maNumPoster.SetFirst( 2 );
- maNumPoster.SetLast( rGraphic.GetBitmapEx().GetBitCount() );
- maNumPoster.SetValue( nPosterCount );
- maNumPoster.SetModifyHdl( GetModifyHdl() );
- maNumPoster.GrabFocus();
-}
-
-// -----------------------------------------------------------------------------
-
-GraphicFilterPoster::~GraphicFilterPoster()
-{
-}
-
-// -----------------------------------------------------------------------------
-
-Graphic GraphicFilterPoster::GetFilteredGraphic( const Graphic& rGraphic,
- double fScaleX, double fScaleY )
-{
- Graphic aRet;
- const USHORT nPosterCount = GetPosterColorCount();
-
- if( rGraphic.IsAnimated() )
- {
- Animation aAnim( rGraphic.GetAnimation() );
-
- if( aAnim.ReduceColors( nPosterCount, BMP_REDUCE_POPULAR ) )
- aRet = aAnim;
- }
- else
- {
- BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
-
- if( aBmpEx.ReduceColors( nPosterCount, BMP_REDUCE_POPULAR ) )
- aRet = aBmpEx;
- }
-
- return aRet;
-}
-
-// -----------------------
-// - GraphicFilterEmboss -
-// -----------------------
-
-void GraphicFilterEmboss::EmbossControl::MouseButtonDown( const MouseEvent& rEvt )
-{
- const RECT_POINT eOldRP = GetActualRP();
-
- SvxRectCtl::MouseButtonDown( rEvt );
-
- if( GetActualRP() != eOldRP )
- maModifyHdl.Call( this );
-}
-
-// -----------------------------------------------------------------------------
-
-GraphicFilterEmboss::GraphicFilterEmboss( Window* pParent, const Graphic& rGraphic,
- RECT_POINT eLightSource ) :
- GraphicFilterDialog ( pParent, SVX_RES( RID_SVX_GRFFILTER_DLG_EMBOSS ), rGraphic ),
- maFtLight ( this, SVX_RES( DLG_FILTEREMBOSS_FT_LIGHT ) ),
- maCtlLight ( this, SVX_RES( DLG_FILTEREMBOSS_CTL_LIGHT ), eLightSource )
-{
- FreeResource();
-
- maCtlLight.SetModifyHdl( GetModifyHdl() );
- maCtlLight.GrabFocus();
-}
-
-// -----------------------------------------------------------------------------
-
-GraphicFilterEmboss::~GraphicFilterEmboss()
-{
-}
-
-// -----------------------------------------------------------------------------
-
-Graphic GraphicFilterEmboss::GetFilteredGraphic( const Graphic& rGraphic,
- double fScaleX, double fScaleY )
-{
- Graphic aRet;
- USHORT nAzim, nElev;
-
- switch( maCtlLight.GetActualRP() )
- {
- case( RP_LT ): nAzim = 4500, nElev = 4500; break;
- case( RP_MT ): nAzim = 9000, nElev = 4500; break;
- case( RP_RT ): nAzim = 13500, nElev = 4500; break;
- case( RP_LM ): nAzim = 0, nElev = 4500; break;
- case( RP_MM ): nAzim = 0, nElev = 9000; break;
- case( RP_RM ): nAzim = 18000, nElev = 4500; break;
- case( RP_LB ): nAzim = 31500, nElev = 4500; break;
- case( RP_MB ): nAzim = 27000, nElev = 4500; break;
- case( RP_RB ): nAzim = 22500, nElev = 4500; break;
- }
-
- BmpFilterParam aParam( nAzim, nElev );
-
- if( rGraphic.IsAnimated() )
- {
- Animation aAnim( rGraphic.GetAnimation() );
-
- if( aAnim.Filter( BMP_FILTER_EMBOSS_GREY, &aParam ) )
- aRet = aAnim;
- }
- else
- {
- BitmapEx aBmpEx( rGraphic.GetBitmapEx() );
-
- if( aBmpEx.Filter( BMP_FILTER_EMBOSS_GREY, &aParam ) )
- aRet = aBmpEx;
- }
-
- return aRet;
-}
-*/
--
1.7.1
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.