summaryrefslogtreecommitdiff
path: root/sw/source/uibase/frmdlg/colex.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/uibase/frmdlg/colex.cxx')
-rw-r--r--sw/source/uibase/frmdlg/colex.cxx586
1 files changed, 586 insertions, 0 deletions
diff --git a/sw/source/uibase/frmdlg/colex.cxx b/sw/source/uibase/frmdlg/colex.cxx
new file mode 100644
index 000000000000..98b4bad4a852
--- /dev/null
+++ b/sw/source/uibase/frmdlg/colex.cxx
@@ -0,0 +1,586 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include "cmdid.h"
+#include "hintids.hxx"
+#include <algorithm>
+
+#include <svl/eitem.hxx>
+#include <editeng/lrspitem.hxx>
+#include <editeng/ulspitem.hxx>
+#include <editeng/sizeitem.hxx>
+#include <svx/pageitem.hxx>
+#include <editeng/brushitem.hxx>
+#include <editeng/frmdiritem.hxx>
+#include <vcl/bitmap.hxx>
+#include <vcl/builder.hxx>
+#include <vcl/graph.hxx>
+#include <vcl/settings.hxx>
+#include <tgrditem.hxx>
+#include <viewopt.hxx>
+#include "colex.hxx"
+#include "colmgr.hxx"
+
+// Taking the updated values from the set
+void SwPageExample::UpdateExample( const SfxItemSet& rSet )
+{
+ SfxItemPool* pPool = rSet.GetPool();
+ sal_uInt16 nWhich = pPool->GetWhich( SID_ATTR_PAGE );
+ if ( rSet.GetItemState( nWhich, false ) == SFX_ITEM_SET )
+ {
+ // alignment
+ const SvxPageItem* pPage = (const SvxPageItem*)&rSet.Get( nWhich );
+
+ if ( pPage )
+ SetUsage( pPage->GetPageUsage() );
+ }
+
+ nWhich = pPool->GetWhich( SID_ATTR_PAGE_SIZE );
+
+ if ( rSet.GetItemState( nWhich, false ) == SFX_ITEM_SET )
+ {
+ // orientation and size from PageItem
+ const SvxSizeItem& rSize = (const SvxSizeItem&)rSet.Get( nWhich );
+ SetSize( rSize.GetSize() );
+ }
+ nWhich = RES_LR_SPACE;
+ if ( rSet.GetItemState( nWhich, false ) == SFX_ITEM_SET )
+ {
+ // set left and right border
+ const SvxLRSpaceItem& rLRSpace = (const SvxLRSpaceItem&)rSet.Get( nWhich );
+
+ SetLeft( rLRSpace.GetLeft() );
+ SetRight( rLRSpace.GetRight() );
+ }
+ else
+ {
+ SetLeft( 0 );
+ SetRight( 0 );
+ }
+
+ nWhich = RES_UL_SPACE;
+
+ if ( rSet.GetItemState( nWhich, false ) == SFX_ITEM_SET )
+ {
+ // set upper and lower border
+ const SvxULSpaceItem& rULSpace = (const SvxULSpaceItem&)rSet.Get( nWhich );
+
+ SetTop( rULSpace.GetUpper() );
+ SetBottom( rULSpace.GetLower() );
+ }
+ else
+ {
+ SetTop( 0 );
+ SetBottom( 0 );
+ }
+
+ // evaluate header-attributes
+ const SfxPoolItem* pItem;
+ if( SFX_ITEM_SET == rSet.GetItemState( pPool->GetWhich( SID_ATTR_PAGE_HEADERSET),
+ false, &pItem ) )
+ {
+ const SfxItemSet& rHeaderSet = ((SvxSetItem*)pItem)->GetItemSet();
+ const SfxBoolItem& rHeaderOn =
+ (const SfxBoolItem&)rHeaderSet.Get( pPool->GetWhich( SID_ATTR_PAGE_ON ) );
+
+ if ( rHeaderOn.GetValue() )
+ {
+ const SvxSizeItem& rSize =
+ (const SvxSizeItem&)rHeaderSet.Get(pPool->GetWhich(SID_ATTR_PAGE_SIZE));
+
+ const SvxULSpaceItem& rUL = (const SvxULSpaceItem&)rHeaderSet.Get(
+ pPool->GetWhich(SID_ATTR_ULSPACE));
+ const SvxLRSpaceItem& rLR = (const SvxLRSpaceItem&)rHeaderSet.Get(
+ pPool->GetWhich(SID_ATTR_LRSPACE));
+
+ SetHdHeight( rSize.GetSize().Height() - rUL.GetLower());
+ SetHdDist( rUL.GetLower() );
+ SetHdLeft( rLR.GetLeft() );
+ SetHdRight( rLR.GetRight() );
+ SetHeader( true );
+ if ( rHeaderSet.GetItemState( RES_BACKGROUND ) == SFX_ITEM_SET )
+ {
+ const SvxBrushItem& rItem =
+ (const SvxBrushItem&)rHeaderSet.Get( RES_BACKGROUND );
+ SetHdColor( rItem.GetColor() );
+ }
+ if ( rHeaderSet.GetItemState( RES_BOX ) == SFX_ITEM_SET )
+ {
+ const SvxBoxItem& rItem =
+ (const SvxBoxItem&)rHeaderSet.Get( RES_BOX );
+ SetHdBorder( rItem );
+ }
+ }
+ else
+ SetHeader( false );
+ }
+
+ if( SFX_ITEM_SET == rSet.GetItemState( pPool->GetWhich( SID_ATTR_PAGE_FOOTERSET),
+ false, &pItem ) )
+ {
+ const SfxItemSet& rFooterSet = ((SvxSetItem*)pItem)->GetItemSet();
+ const SfxBoolItem& rFooterOn =
+ (const SfxBoolItem&)rFooterSet.Get( SID_ATTR_PAGE_ON );
+
+ if ( rFooterOn.GetValue() )
+ {
+ const SvxSizeItem& rSize =
+ (const SvxSizeItem&)rFooterSet.Get( pPool->GetWhich( SID_ATTR_PAGE_SIZE ) );
+
+ const SvxULSpaceItem& rUL = (const SvxULSpaceItem&)rFooterSet.Get(
+ pPool->GetWhich( SID_ATTR_ULSPACE ) );
+ const SvxLRSpaceItem& rLR = (const SvxLRSpaceItem&)rFooterSet.Get(
+ pPool->GetWhich( SID_ATTR_LRSPACE ) );
+
+ SetFtHeight( rSize.GetSize().Height() - rUL.GetUpper());
+ SetFtDist( rUL.GetUpper() );
+ SetFtLeft( rLR.GetLeft() );
+ SetFtRight( rLR.GetRight() );
+ SetFooter( true );
+ if( rFooterSet.GetItemState( RES_BACKGROUND ) == SFX_ITEM_SET )
+ {
+ const SvxBrushItem& rItem =
+ (const SvxBrushItem&)rFooterSet.Get( RES_BACKGROUND );
+ SetFtColor( rItem.GetColor() );
+ }
+ if( rFooterSet.GetItemState( RES_BOX ) == SFX_ITEM_SET )
+ {
+ const SvxBoxItem& rItem =
+ (const SvxBoxItem&)rFooterSet.Get( RES_BOX );
+ SetFtBorder( rItem );
+ }
+ }
+ else
+ SetFooter( false );
+ }
+ if( SFX_ITEM_SET == rSet.GetItemState( RES_BACKGROUND,
+ false, &pItem ) )
+ {
+ SetColor( ( (const SvxBrushItem*)pItem )->GetColor() );
+ const Graphic* pGrf = ( (const SvxBrushItem*)pItem )->GetGraphic();
+
+ if ( pGrf )
+ {
+ Bitmap aBitmap = pGrf->GetBitmap();
+ SetBitmap( &aBitmap );
+ }
+ else
+ SetBitmap( NULL );
+ }
+
+ Invalidate();
+}
+
+void SwColExample::DrawPage( const Point& rOrg,
+ const bool bSecond,
+ const bool bEnabled )
+{
+ SwPageExample::DrawPage( rOrg, bSecond, bEnabled );
+ sal_uInt16 nColumnCount;
+ if( pColMgr && 0 != (nColumnCount = pColMgr->GetCount()))
+ {
+ long nL = GetLeft();
+ long nR = GetRight();
+
+ if ( GetUsage() == SVX_PAGE_MIRROR && !bSecond )
+ {
+ // rotate for mirrored
+ nL = GetRight();
+ nR = GetLeft();
+ }
+
+ SetFillColor( Color( COL_LIGHTGRAY ) );
+ Rectangle aRect;
+ aRect.Right() = rOrg.X() + GetSize().Width() - nR;
+ aRect.Left() = rOrg.X() + nL;
+ aRect.Top() = rOrg.Y() + GetTop()
+ + GetHdHeight() + GetHdDist();
+ aRect.Bottom()= rOrg.Y() + GetSize().Height() - GetBottom()
+ - GetFtHeight() - GetFtDist();
+ DrawRect(aRect);
+
+ if(GetColor() == Color(COL_TRANSPARENT))
+ {
+ const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
+ const Color& rFieldColor = rStyleSettings.GetFieldColor();
+ SetFillColor( rFieldColor );
+ }
+ else
+ SetFillColor( GetColor() );
+
+ // #97495# make sure that the automatic column width's are always equal
+ bool bAutoWidth = pColMgr->IsAutoWidth();
+ sal_Int32 nAutoColWidth = 0;
+ if(bAutoWidth)
+ {
+ sal_Int32 nColumnWidthSum = 0;
+ sal_uInt16 i;
+ for(i = 0; i < nColumnCount; ++i)
+ nColumnWidthSum += pColMgr->GetColWidth( i );
+ nAutoColWidth = nColumnWidthSum / nColumnCount;
+ }
+
+ sal_uInt16 i;
+ for( i = 0; i < nColumnCount; i++)
+ {
+ if(!bAutoWidth)
+ nAutoColWidth = pColMgr->GetColWidth( i );
+ aRect.Right() = aRect.Left() + nAutoColWidth;
+ DrawRect(aRect);
+ if(i < nColumnCount - 1)
+ aRect.Left() = aRect.Right() + pColMgr->GetGutterWidth(i);
+ }
+ if(pColMgr->HasLine())
+ {
+ Point aUp( rOrg.X() + nL, rOrg.Y() + GetTop() );
+ Point aDown( rOrg.X() + nL, rOrg.Y() + GetSize().Height()
+ - GetBottom() - GetFtHeight() - GetFtDist() );
+
+ if( pColMgr->GetLineHeightPercent() != 100 )
+ {
+ long nLength = aDown.Y() - aUp.Y();
+ nLength -= nLength * pColMgr->GetLineHeightPercent() / 100;
+ switch(pColMgr->GetAdjust())
+ {
+ case COLADJ_BOTTOM: aUp.Y() += nLength; break;
+ case COLADJ_TOP: aDown.Y() -= nLength; break;
+ case COLADJ_CENTER:
+ aUp.Y() += nLength / 2;
+ aDown.Y() -= nLength / 2;
+ break;
+ default:; // prevent warning
+ }
+ }
+
+ int nDist;
+ for( i = 0; i < nColumnCount - 1; i++)
+ {
+ int nGutter = pColMgr->GetGutterWidth(i);
+ nDist = pColMgr->GetColWidth( i ) + nGutter;
+ nDist -= (i == 0) ?
+ nGutter/2 :
+ 0;
+ aUp.X() += nDist;
+ aDown.X() += nDist;
+ DrawLine( aUp, aDown );
+
+ }
+ }
+ }
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeSwColExample(Window *pParent, VclBuilder::stringmap &)
+{
+ return new SwColExample(pParent);
+}
+
+SwColumnOnlyExample::SwColumnOnlyExample(Window* pParent)
+ : Window(pParent)
+ , m_aFrmSize(1,1)
+{
+ SetMapMode( MapMode( MAP_TWIP ) );
+ m_aWinSize = GetOptimalSize();
+ m_aWinSize.Height() -= 4;
+ m_aWinSize.Width() -= 4;
+
+ m_aWinSize = PixelToLogic( m_aWinSize );
+
+ SetBorderStyle( WINDOW_BORDER_MONO );
+
+ m_aFrmSize = SvxPaperInfo::GetPaperSize(PAPER_A4);// DIN A4
+ ::FitToActualSize(m_aCols, (sal_uInt16)m_aFrmSize.Width());
+
+ long nHeight = m_aFrmSize.Height();
+ Fraction aScale( m_aWinSize.Height(), nHeight );
+ MapMode aMapMode( GetMapMode() );
+ aMapMode.SetScaleX( aScale );
+ aMapMode.SetScaleY( aScale );
+ SetMapMode( aMapMode );
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeSwColumnOnlyExample(Window *pParent, VclBuilder::stringmap &)
+{
+ return new SwColumnOnlyExample(pParent);
+}
+
+void SwColumnOnlyExample::Paint( const Rectangle& /*rRect*/ )
+{
+ const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
+ const Color& rFieldColor = rStyleSettings.GetFieldColor();
+ const Color& rDlgColor = rStyleSettings.GetDialogColor();
+ const Color& rFieldTextColor = SwViewOption::GetFontColor();
+ Color aGrayColor(COL_LIGHTGRAY);
+ if(rFieldColor == aGrayColor)
+ aGrayColor.Invert();
+
+ Size aLogSize(PixelToLogic(GetOutputSizePixel()));
+ Rectangle aCompleteRect(Point(0,0), aLogSize);
+ SetLineColor(rDlgColor);
+ SetFillColor(rDlgColor);
+ DrawRect(aCompleteRect);
+
+ SetLineColor( rFieldTextColor );
+ Point aTL( (aLogSize.Width() - m_aFrmSize.Width()) / 2,
+ (aLogSize.Height() - m_aFrmSize.Height()) / 2);
+ Rectangle aRect(aTL, m_aFrmSize);
+
+ //draw a shadow rectangle
+ SetFillColor( Color(COL_GRAY) );
+ Rectangle aShadowRect(aRect);
+ aShadowRect.Move(aTL.Y(), aTL.Y());
+ DrawRect(aShadowRect);
+
+ SetFillColor( rFieldColor );
+ DrawRect(aRect);
+
+ SetFillColor( aGrayColor );
+
+ //column separator?
+ long nLength = aLogSize.Height() - 2 * aTL.Y();
+ Point aUp( aTL );
+ Point aDown( aTL.X(), nLength );
+ bool bLines = false;
+ if(m_aCols.GetLineAdj() != COLADJ_NONE)
+ {
+ bLines = true;
+
+ sal_uInt16 nPercent = m_aCols.GetLineHeight();
+ if( nPercent != 100 )
+ {
+ nLength -= nLength * nPercent / 100;
+ switch(m_aCols.GetLineAdj())
+ {
+ case COLADJ_BOTTOM: aUp.Y() += nLength; break;
+ case COLADJ_TOP: aDown.Y() -= nLength; break;
+ case COLADJ_CENTER:
+ aUp.Y() += nLength / 2;
+ aDown.Y() -= nLength / 2;
+ break;
+ default:; //prevent warning
+ }
+ }
+
+ }
+ const SwColumns& rCols = m_aCols.GetColumns();
+ sal_uInt16 nColCount = rCols.size();
+ if( nColCount )
+ {
+ DrawRect(aRect);
+ SetFillColor( rFieldColor );
+ Rectangle aFrmRect(aTL, m_aFrmSize);
+ long nSum = aTL.X();
+ for(sal_uInt16 i = 0; i < nColCount; i++)
+ {
+ const SwColumn* pCol = &rCols[i];
+ aFrmRect.Left() = nSum + pCol->GetLeft();//nSum + pCol->GetLeft() + aTL.X();
+ nSum += pCol->GetWishWidth();
+ aFrmRect.Right() = nSum - pCol->GetRight();
+ DrawRect(aFrmRect);
+ }
+ if(bLines )
+ {
+ nSum = aTL.X();
+ for(sal_uInt16 i = 0; i < nColCount - 1; i++)
+ {
+ nSum += rCols[i].GetWishWidth();
+ aUp.X() = nSum;
+ aDown.X() = nSum;
+ DrawLine(aUp, aDown);
+ }
+ }
+ }
+}
+
+void SwColumnOnlyExample::SetColumns(const SwFmtCol& rCol)
+{
+ m_aCols = rCol;
+ sal_uInt16 nWishSum = m_aCols.GetWishWidth();
+ long nFrmWidth = m_aFrmSize.Width();
+ SwColumns& rCols = m_aCols.GetColumns();
+ sal_uInt16 nColCount = rCols.size();
+
+ for(sal_uInt16 i = 0; i < nColCount; i++)
+ {
+ SwColumn* pCol = &rCols[i];
+ long nWish = pCol->GetWishWidth();
+ nWish *= nFrmWidth;
+ nWish /= nWishSum;
+ pCol->SetWishWidth((sal_uInt16)nWish);
+ long nLeft = pCol->GetLeft();
+ nLeft *= nFrmWidth;
+ nLeft /= nWishSum;
+ pCol->SetLeft((sal_uInt16)nLeft);
+ long nRight = pCol->GetRight();
+ nRight *= nFrmWidth;
+ nRight /= nWishSum;
+ pCol->SetRight((sal_uInt16)nRight);
+ }
+ // #97495# make sure that the automatic column width's are always equal
+ if(nColCount && m_aCols.IsOrtho())
+ {
+ sal_Int32 nColumnWidthSum = 0;
+ sal_uInt16 i;
+ for(i = 0; i < nColCount; ++i)
+ {
+ SwColumn* pCol = &rCols[i];
+ nColumnWidthSum += pCol->GetWishWidth();
+ nColumnWidthSum -= (pCol->GetRight() + pCol->GetLeft());
+ }
+ nColumnWidthSum /= nColCount;
+ for(i = 0; i < nColCount; ++i)
+ {
+ SwColumn* pCol = &rCols[i];
+ pCol->SetWishWidth( static_cast< sal_uInt16 >(nColumnWidthSum + pCol->GetRight() + pCol->GetLeft()));
+ }
+ }
+}
+
+Size SwColumnOnlyExample::GetOptimalSize() const
+{
+ return LogicToPixel(Size(75, 46), MapMode(MAP_APPFONT));
+}
+
+SwPageGridExample::~SwPageGridExample()
+{
+ delete pGridItem;
+}
+
+void SwPageGridExample::DrawPage( const Point& rOrg,
+ const bool bSecond,
+ const bool bEnabled )
+{
+ SwPageExample::DrawPage(rOrg, bSecond, bEnabled);
+ if(pGridItem && pGridItem->GetGridType())
+ {
+ //paint the grid now
+ Color aLineColor = pGridItem->GetColor();
+ if(aLineColor.GetColor() == COL_AUTO)
+ {
+ aLineColor = GetFillColor();
+ aLineColor.Invert();
+ }
+ SetLineColor(aLineColor);
+ long nL = GetLeft();
+ long nR = GetRight();
+
+ if ( GetUsage() == SVX_PAGE_MIRROR && !bSecond )
+ {
+ // rotate for mirrored
+ nL = GetRight();
+ nR = GetLeft();
+ }
+
+ Rectangle aRect;
+ aRect.Right() = rOrg.X() + GetSize().Width() - nR;
+ aRect.Left() = rOrg.X() + nL;
+ aRect.Top() = rOrg.Y() + GetTop()
+ + GetHdHeight() + GetHdDist();
+ aRect.Bottom()= rOrg.Y() + GetSize().Height() - GetBottom()
+ - GetFtHeight() - GetFtDist();
+
+ //increase the values to get a 'viewable' preview
+ sal_Int32 nBaseHeight = pGridItem->GetBaseHeight() * 3;
+ sal_Int32 nRubyHeight = pGridItem->GetRubyHeight() * 3;
+
+ //detect height of rectangles
+ Rectangle aRubyRect(aRect.TopLeft(),
+ m_bVertical ?
+ Size(nRubyHeight, aRect.GetHeight()) :
+ Size(aRect.GetWidth(), nRubyHeight));
+ Rectangle aCharRect(aRect.TopLeft(),
+ m_bVertical ?
+ Size(nBaseHeight, aRect.GetHeight()) :
+ Size(aRect.GetWidth(), nBaseHeight));
+
+ sal_Int32 nLineHeight = nBaseHeight + nRubyHeight;
+
+ //detect count of rectangles
+ sal_Int32 nLines = (m_bVertical ? aRect.GetWidth(): aRect.GetHeight()) / nLineHeight;
+ if(nLines > pGridItem->GetLines())
+ nLines = pGridItem->GetLines();
+
+ // determine start position
+ if(m_bVertical)
+ {
+ sal_Int16 nXStart = static_cast< sal_Int16 >(aRect.GetWidth() / 2 - nLineHeight * nLines /2);
+ aRubyRect.Move(nXStart, 0);
+ aCharRect.Move(nXStart, 0);
+ }
+ else
+ {
+ sal_Int16 nYStart = static_cast< sal_Int16 >(aRect.GetHeight() / 2 - nLineHeight * nLines /2);
+ aRubyRect.Move(0, nYStart);
+ aCharRect.Move(0, nYStart);
+ }
+
+ if(pGridItem->IsRubyTextBelow())
+ m_bVertical ? aRubyRect.Move(nBaseHeight, 0) : aRubyRect.Move(0, nBaseHeight);
+ else
+ m_bVertical ? aCharRect.Move(nRubyHeight, 0) : aCharRect.Move(0, nRubyHeight);
+
+ //vertical lines
+ bool bBothLines = pGridItem->GetGridType() == GRID_LINES_CHARS;
+ SetFillColor( Color( COL_TRANSPARENT ) );
+ sal_Int32 nXMove = m_bVertical ? nLineHeight : 0;
+ sal_Int32 nYMove = m_bVertical ? 0 : nLineHeight;
+ for(sal_Int32 nLine = 0; nLine < nLines; nLine++)
+ {
+ DrawRect(aRubyRect);
+ DrawRect(aCharRect);
+ if(bBothLines)
+ {
+ Point aStart = aCharRect.TopLeft();
+ Point aEnd = m_bVertical ? aCharRect.TopRight() : aCharRect.BottomLeft();
+ while(m_bVertical ? aStart.Y() < aRect.Bottom(): aStart.X() < aRect.Right())
+ {
+ DrawLine(aStart, aEnd);
+ if(m_bVertical)
+ aStart.Y() = aEnd.Y() += nBaseHeight;
+ else
+ aStart.X() = aEnd.X() += nBaseHeight;
+ }
+ }
+ aRubyRect.Move(nXMove, nYMove);
+ aCharRect.Move(nXMove, nYMove);
+ }
+ }
+}
+
+void SwPageGridExample::UpdateExample( const SfxItemSet& rSet )
+{
+ DELETEZ(pGridItem);
+ //get the grid information
+ if(SFX_ITEM_AVAILABLE <= rSet.GetItemState(RES_TEXTGRID, true))
+ pGridItem = (SwTextGridItem*)((const SwTextGridItem&)rSet.Get(RES_TEXTGRID)).Clone();
+ if( SFX_ITEM_AVAILABLE <= rSet.GetItemState( RES_FRAMEDIR, true ))
+ {
+ const SvxFrameDirectionItem& rDirItem =
+ (const SvxFrameDirectionItem&)rSet.Get(RES_FRAMEDIR);
+ m_bVertical = rDirItem.GetValue() == FRMDIR_VERT_TOP_RIGHT||
+ rDirItem.GetValue() == FRMDIR_VERT_TOP_LEFT;
+ }
+ SwPageExample::UpdateExample(rSet);
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeSwPageGridExample(Window *pParent, VclBuilder::stringmap &)
+{
+ return new SwPageGridExample(pParent);
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */