xref: /aoo4110/main/sw/source/ui/frmdlg/colex.cxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sw.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski 
28*b1cdbd2cSJim Jagielski 
29*b1cdbd2cSJim Jagielski 
30*b1cdbd2cSJim Jagielski #include "cmdid.h"
31*b1cdbd2cSJim Jagielski #include "hintids.hxx"
32*b1cdbd2cSJim Jagielski #include <algorithm>
33*b1cdbd2cSJim Jagielski 
34*b1cdbd2cSJim Jagielski 
35*b1cdbd2cSJim Jagielski #include <svl/eitem.hxx>
36*b1cdbd2cSJim Jagielski #include <editeng/lrspitem.hxx>
37*b1cdbd2cSJim Jagielski #include <editeng/ulspitem.hxx>
38*b1cdbd2cSJim Jagielski #include <editeng/sizeitem.hxx>
39*b1cdbd2cSJim Jagielski #include <svx/pageitem.hxx>
40*b1cdbd2cSJim Jagielski #include <editeng/brshitem.hxx>
41*b1cdbd2cSJim Jagielski #include <editeng/frmdiritem.hxx>
42*b1cdbd2cSJim Jagielski #include <vcl/bitmap.hxx>
43*b1cdbd2cSJim Jagielski #include <vcl/graph.hxx>
44*b1cdbd2cSJim Jagielski #include <tgrditem.hxx>
45*b1cdbd2cSJim Jagielski #include <viewopt.hxx>
46*b1cdbd2cSJim Jagielski #include "colex.hxx"
47*b1cdbd2cSJim Jagielski #include "colmgr.hxx"
48*b1cdbd2cSJim Jagielski 
49*b1cdbd2cSJim Jagielski /*-----------------------------------------------------------------------
50*b1cdbd2cSJim Jagielski 	Beschreibung: Uebernahme der aktualisierten Werte aus dem Set
51*b1cdbd2cSJim Jagielski  -----------------------------------------------------------------------*/
UpdateExample(const SfxItemSet & rSet)52*b1cdbd2cSJim Jagielski void SwPageExample::UpdateExample( const SfxItemSet& rSet )
53*b1cdbd2cSJim Jagielski {
54*b1cdbd2cSJim Jagielski 	const SvxPageItem* pPage = 0;
55*b1cdbd2cSJim Jagielski 	SfxItemPool* pPool = rSet.GetPool();
56*b1cdbd2cSJim Jagielski 	sal_uInt16 nWhich = pPool->GetWhich( SID_ATTR_PAGE );
57*b1cdbd2cSJim Jagielski 
58*b1cdbd2cSJim Jagielski 	if ( rSet.GetItemState( nWhich, sal_False ) == SFX_ITEM_SET )
59*b1cdbd2cSJim Jagielski 	{
60*b1cdbd2cSJim Jagielski 		// Ausrichtung
61*b1cdbd2cSJim Jagielski 		pPage = (const SvxPageItem*)&rSet.Get( nWhich );
62*b1cdbd2cSJim Jagielski 
63*b1cdbd2cSJim Jagielski 		if ( pPage )
64*b1cdbd2cSJim Jagielski 			SetUsage( pPage->GetPageUsage() );
65*b1cdbd2cSJim Jagielski 	}
66*b1cdbd2cSJim Jagielski 
67*b1cdbd2cSJim Jagielski 	nWhich = pPool->GetWhich( SID_ATTR_PAGE_SIZE );
68*b1cdbd2cSJim Jagielski 
69*b1cdbd2cSJim Jagielski 	if ( rSet.GetItemState( nWhich, sal_False ) == SFX_ITEM_SET )
70*b1cdbd2cSJim Jagielski 	{
71*b1cdbd2cSJim Jagielski 		// Orientation und Size aus dem PageItem
72*b1cdbd2cSJim Jagielski 		const SvxSizeItem& rSize = (const SvxSizeItem&)rSet.Get( nWhich );
73*b1cdbd2cSJim Jagielski         SetSize( rSize.GetSize() );
74*b1cdbd2cSJim Jagielski 	}
75*b1cdbd2cSJim Jagielski 	nWhich = RES_LR_SPACE;
76*b1cdbd2cSJim Jagielski 	if ( rSet.GetItemState( nWhich, sal_False ) == SFX_ITEM_SET )
77*b1cdbd2cSJim Jagielski 	{
78*b1cdbd2cSJim Jagielski 		// linken und rechten Rand einstellen
79*b1cdbd2cSJim Jagielski 		const SvxLRSpaceItem& rLRSpace = (const SvxLRSpaceItem&)rSet.Get( nWhich );
80*b1cdbd2cSJim Jagielski 
81*b1cdbd2cSJim Jagielski 		SetLeft( rLRSpace.GetLeft() );
82*b1cdbd2cSJim Jagielski 		SetRight( rLRSpace.GetRight() );
83*b1cdbd2cSJim Jagielski 	}
84*b1cdbd2cSJim Jagielski 	else
85*b1cdbd2cSJim Jagielski 	{
86*b1cdbd2cSJim Jagielski 		SetLeft( 0 );
87*b1cdbd2cSJim Jagielski 		SetRight( 0 );
88*b1cdbd2cSJim Jagielski 	}
89*b1cdbd2cSJim Jagielski 
90*b1cdbd2cSJim Jagielski 	nWhich = RES_UL_SPACE;
91*b1cdbd2cSJim Jagielski 
92*b1cdbd2cSJim Jagielski 	if ( rSet.GetItemState( nWhich, sal_False ) == SFX_ITEM_SET )
93*b1cdbd2cSJim Jagielski 	{
94*b1cdbd2cSJim Jagielski 		// oberen und unteren Rand einstellen
95*b1cdbd2cSJim Jagielski 		const SvxULSpaceItem& rULSpace = (const SvxULSpaceItem&)rSet.Get( nWhich );
96*b1cdbd2cSJim Jagielski 
97*b1cdbd2cSJim Jagielski 		SetTop( rULSpace.GetUpper() );
98*b1cdbd2cSJim Jagielski 		SetBottom( rULSpace.GetLower() );
99*b1cdbd2cSJim Jagielski 	}
100*b1cdbd2cSJim Jagielski 	else
101*b1cdbd2cSJim Jagielski 	{
102*b1cdbd2cSJim Jagielski 		SetTop( 0 );
103*b1cdbd2cSJim Jagielski 		SetBottom( 0 );
104*b1cdbd2cSJim Jagielski 	}
105*b1cdbd2cSJim Jagielski 
106*b1cdbd2cSJim Jagielski 
107*b1cdbd2cSJim Jagielski 	// Kopfzeilen-Attribute auswerten
108*b1cdbd2cSJim Jagielski 	const SfxPoolItem* pItem;
109*b1cdbd2cSJim Jagielski 	if( SFX_ITEM_SET == rSet.GetItemState( pPool->GetWhich( SID_ATTR_PAGE_HEADERSET),
110*b1cdbd2cSJim Jagielski 			sal_False, &pItem ) )
111*b1cdbd2cSJim Jagielski 	{
112*b1cdbd2cSJim Jagielski 		const SfxItemSet& rHeaderSet = ((SvxSetItem*)pItem)->GetItemSet();
113*b1cdbd2cSJim Jagielski 		const SfxBoolItem& rHeaderOn =
114*b1cdbd2cSJim Jagielski 			(const SfxBoolItem&)rHeaderSet.Get( pPool->GetWhich( SID_ATTR_PAGE_ON ) );
115*b1cdbd2cSJim Jagielski 
116*b1cdbd2cSJim Jagielski 		if ( rHeaderOn.GetValue() )
117*b1cdbd2cSJim Jagielski 		{
118*b1cdbd2cSJim Jagielski 			const SvxSizeItem& rSize =
119*b1cdbd2cSJim Jagielski 				(const SvxSizeItem&)rHeaderSet.Get(pPool->GetWhich(SID_ATTR_PAGE_SIZE));
120*b1cdbd2cSJim Jagielski 
121*b1cdbd2cSJim Jagielski 			const SvxULSpaceItem& rUL = (const SvxULSpaceItem&)rHeaderSet.Get(
122*b1cdbd2cSJim Jagielski 										pPool->GetWhich(SID_ATTR_ULSPACE));
123*b1cdbd2cSJim Jagielski 			const SvxLRSpaceItem& rLR = (const SvxLRSpaceItem&)rHeaderSet.Get(
124*b1cdbd2cSJim Jagielski 										pPool->GetWhich(SID_ATTR_LRSPACE));
125*b1cdbd2cSJim Jagielski 
126*b1cdbd2cSJim Jagielski 			SetHdHeight( rSize.GetSize().Height() - rUL.GetLower());
127*b1cdbd2cSJim Jagielski 			SetHdDist( rUL.GetLower() );
128*b1cdbd2cSJim Jagielski 			SetHdLeft( rLR.GetLeft() );
129*b1cdbd2cSJim Jagielski 			SetHdRight( rLR.GetRight() );
130*b1cdbd2cSJim Jagielski 			SetHeader( sal_True );
131*b1cdbd2cSJim Jagielski             if ( rHeaderSet.GetItemState( RES_BACKGROUND ) == SFX_ITEM_SET )
132*b1cdbd2cSJim Jagielski 			{
133*b1cdbd2cSJim Jagielski 				const SvxBrushItem& rItem =
134*b1cdbd2cSJim Jagielski                     (const SvxBrushItem&)rHeaderSet.Get( RES_BACKGROUND );
135*b1cdbd2cSJim Jagielski                 SetHdColor( rItem.GetColor() );
136*b1cdbd2cSJim Jagielski 			}
137*b1cdbd2cSJim Jagielski             if ( rHeaderSet.GetItemState( RES_BOX ) == SFX_ITEM_SET )
138*b1cdbd2cSJim Jagielski 			{
139*b1cdbd2cSJim Jagielski 				const SvxBoxItem& rItem =
140*b1cdbd2cSJim Jagielski                     (const SvxBoxItem&)rHeaderSet.Get( RES_BOX );
141*b1cdbd2cSJim Jagielski                 SetHdBorder( rItem );
142*b1cdbd2cSJim Jagielski 			}
143*b1cdbd2cSJim Jagielski         }
144*b1cdbd2cSJim Jagielski 		else
145*b1cdbd2cSJim Jagielski 			SetHeader( sal_False );
146*b1cdbd2cSJim Jagielski 	}
147*b1cdbd2cSJim Jagielski 
148*b1cdbd2cSJim Jagielski 	if( SFX_ITEM_SET == rSet.GetItemState( pPool->GetWhich( SID_ATTR_PAGE_FOOTERSET),
149*b1cdbd2cSJim Jagielski 			sal_False, &pItem ) )
150*b1cdbd2cSJim Jagielski 	{
151*b1cdbd2cSJim Jagielski 		const SfxItemSet& rFooterSet = ((SvxSetItem*)pItem)->GetItemSet();
152*b1cdbd2cSJim Jagielski 		const SfxBoolItem& rFooterOn =
153*b1cdbd2cSJim Jagielski 			(const SfxBoolItem&)rFooterSet.Get( SID_ATTR_PAGE_ON );
154*b1cdbd2cSJim Jagielski 
155*b1cdbd2cSJim Jagielski 		if ( rFooterOn.GetValue() )
156*b1cdbd2cSJim Jagielski 		{
157*b1cdbd2cSJim Jagielski 			const SvxSizeItem& rSize =
158*b1cdbd2cSJim Jagielski 				(const SvxSizeItem&)rFooterSet.Get( pPool->GetWhich( SID_ATTR_PAGE_SIZE ) );
159*b1cdbd2cSJim Jagielski 
160*b1cdbd2cSJim Jagielski 			const SvxULSpaceItem& rUL = (const SvxULSpaceItem&)rFooterSet.Get(
161*b1cdbd2cSJim Jagielski 										pPool->GetWhich( SID_ATTR_ULSPACE ) );
162*b1cdbd2cSJim Jagielski 			const SvxLRSpaceItem& rLR = (const SvxLRSpaceItem&)rFooterSet.Get(
163*b1cdbd2cSJim Jagielski 										pPool->GetWhich( SID_ATTR_LRSPACE ) );
164*b1cdbd2cSJim Jagielski 
165*b1cdbd2cSJim Jagielski 			SetFtHeight( rSize.GetSize().Height() - rUL.GetUpper());
166*b1cdbd2cSJim Jagielski 			SetFtDist( rUL.GetUpper() );
167*b1cdbd2cSJim Jagielski 			SetFtLeft( rLR.GetLeft() );
168*b1cdbd2cSJim Jagielski 			SetFtRight( rLR.GetRight() );
169*b1cdbd2cSJim Jagielski 			SetFooter( sal_True );
170*b1cdbd2cSJim Jagielski             if( rFooterSet.GetItemState( RES_BACKGROUND ) == SFX_ITEM_SET )
171*b1cdbd2cSJim Jagielski 			{
172*b1cdbd2cSJim Jagielski 				const SvxBrushItem& rItem =
173*b1cdbd2cSJim Jagielski                     (const SvxBrushItem&)rFooterSet.Get( RES_BACKGROUND );
174*b1cdbd2cSJim Jagielski                 SetFtColor( rItem.GetColor() );
175*b1cdbd2cSJim Jagielski 			}
176*b1cdbd2cSJim Jagielski             if( rFooterSet.GetItemState( RES_BOX ) == SFX_ITEM_SET )
177*b1cdbd2cSJim Jagielski 			{
178*b1cdbd2cSJim Jagielski 				const SvxBoxItem& rItem =
179*b1cdbd2cSJim Jagielski                     (const SvxBoxItem&)rFooterSet.Get( RES_BOX );
180*b1cdbd2cSJim Jagielski                 SetFtBorder( rItem );
181*b1cdbd2cSJim Jagielski 			}
182*b1cdbd2cSJim Jagielski         }
183*b1cdbd2cSJim Jagielski 		else
184*b1cdbd2cSJim Jagielski 			SetFooter( sal_False );
185*b1cdbd2cSJim Jagielski 	}
186*b1cdbd2cSJim Jagielski     if( SFX_ITEM_SET == rSet.GetItemState( RES_BACKGROUND,
187*b1cdbd2cSJim Jagielski 			sal_False, &pItem ) )
188*b1cdbd2cSJim Jagielski 	{
189*b1cdbd2cSJim Jagielski         SetColor( ( (const SvxBrushItem*)pItem )->GetColor() );
190*b1cdbd2cSJim Jagielski 		const Graphic* pGrf = ( (const SvxBrushItem*)pItem )->GetGraphic();
191*b1cdbd2cSJim Jagielski 
192*b1cdbd2cSJim Jagielski 		if ( pGrf )
193*b1cdbd2cSJim Jagielski 		{
194*b1cdbd2cSJim Jagielski 			Bitmap aBitmap = pGrf->GetBitmap();
195*b1cdbd2cSJim Jagielski             SetBitmap( &aBitmap );
196*b1cdbd2cSJim Jagielski 		}
197*b1cdbd2cSJim Jagielski 		else
198*b1cdbd2cSJim Jagielski             SetBitmap( NULL );
199*b1cdbd2cSJim Jagielski 	}
200*b1cdbd2cSJim Jagielski 
201*b1cdbd2cSJim Jagielski 	Invalidate();
202*b1cdbd2cSJim Jagielski }
203*b1cdbd2cSJim Jagielski /*-----------------------------------------------------------------------
204*b1cdbd2cSJim Jagielski 	Beschreibung:
205*b1cdbd2cSJim Jagielski  -----------------------------------------------------------------------*/
206*b1cdbd2cSJim Jagielski 
207*b1cdbd2cSJim Jagielski 
DrawPage(const Point & rOrg,const sal_Bool bSecond,const sal_Bool bEnabled)208*b1cdbd2cSJim Jagielski void SwColExample::DrawPage( const Point& rOrg,
209*b1cdbd2cSJim Jagielski 							const sal_Bool bSecond,
210*b1cdbd2cSJim Jagielski 							const sal_Bool bEnabled )
211*b1cdbd2cSJim Jagielski {
212*b1cdbd2cSJim Jagielski     SwPageExample::DrawPage( rOrg, bSecond, bEnabled );
213*b1cdbd2cSJim Jagielski     sal_uInt16 nColumnCount;
214*b1cdbd2cSJim Jagielski     if( pColMgr && 0 != (nColumnCount = pColMgr->GetCount()))
215*b1cdbd2cSJim Jagielski 	{
216*b1cdbd2cSJim Jagielski 		long nL = GetLeft();
217*b1cdbd2cSJim Jagielski 		long nR = GetRight();
218*b1cdbd2cSJim Jagielski 
219*b1cdbd2cSJim Jagielski 		if ( GetUsage() == SVX_PAGE_MIRROR && !bSecond )
220*b1cdbd2cSJim Jagielski 		{
221*b1cdbd2cSJim Jagielski 			// fuer gespiegelt drehen
222*b1cdbd2cSJim Jagielski 			nL = GetRight();
223*b1cdbd2cSJim Jagielski 			nR = GetLeft();
224*b1cdbd2cSJim Jagielski 		}
225*b1cdbd2cSJim Jagielski 
226*b1cdbd2cSJim Jagielski         SetFillColor( Color( COL_LIGHTGRAY ) );
227*b1cdbd2cSJim Jagielski         Rectangle aRect;
228*b1cdbd2cSJim Jagielski         aRect.Right() = rOrg.X() + GetSize().Width() - nR;
229*b1cdbd2cSJim Jagielski         aRect.Left()  = rOrg.X() + nL;
230*b1cdbd2cSJim Jagielski         aRect.Top()   = rOrg.Y() + GetTop()
231*b1cdbd2cSJim Jagielski                         + GetHdHeight() + GetHdDist();
232*b1cdbd2cSJim Jagielski         aRect.Bottom()= rOrg.Y() + GetSize().Height() - GetBottom()
233*b1cdbd2cSJim Jagielski                         - GetFtHeight() - GetFtDist();
234*b1cdbd2cSJim Jagielski         DrawRect(aRect);
235*b1cdbd2cSJim Jagielski 
236*b1cdbd2cSJim Jagielski         if(GetColor() == Color(COL_TRANSPARENT))
237*b1cdbd2cSJim Jagielski         {
238*b1cdbd2cSJim Jagielski             const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
239*b1cdbd2cSJim Jagielski             const Color& rFieldColor = rStyleSettings.GetFieldColor();
240*b1cdbd2cSJim Jagielski             SetFillColor( rFieldColor );
241*b1cdbd2cSJim Jagielski         }
242*b1cdbd2cSJim Jagielski         else
243*b1cdbd2cSJim Jagielski             SetFillColor( GetColor() );
244*b1cdbd2cSJim Jagielski 
245*b1cdbd2cSJim Jagielski         // #97495# make sure that the automatic column widht's are always equal
246*b1cdbd2cSJim Jagielski         sal_Bool bAutoWidth = pColMgr->IsAutoWidth();
247*b1cdbd2cSJim Jagielski         sal_Int32 nAutoColWidth = 0;
248*b1cdbd2cSJim Jagielski         if(bAutoWidth)
249*b1cdbd2cSJim Jagielski         {
250*b1cdbd2cSJim Jagielski             sal_Int32 nColumnWidthSum = 0;
251*b1cdbd2cSJim Jagielski             sal_uInt16 i;
252*b1cdbd2cSJim Jagielski             for(i = 0; i < nColumnCount; ++i)
253*b1cdbd2cSJim Jagielski                 nColumnWidthSum += pColMgr->GetColWidth( i );
254*b1cdbd2cSJim Jagielski             nAutoColWidth = nColumnWidthSum / nColumnCount;
255*b1cdbd2cSJim Jagielski         }
256*b1cdbd2cSJim Jagielski 
257*b1cdbd2cSJim Jagielski         sal_uInt16 i;
258*b1cdbd2cSJim Jagielski         for( i = 0; i < nColumnCount; i++)
259*b1cdbd2cSJim Jagielski         {
260*b1cdbd2cSJim Jagielski             if(!bAutoWidth)
261*b1cdbd2cSJim Jagielski                 nAutoColWidth = pColMgr->GetColWidth( i );
262*b1cdbd2cSJim Jagielski             aRect.Right() = aRect.Left() + nAutoColWidth;
263*b1cdbd2cSJim Jagielski             DrawRect(aRect);
264*b1cdbd2cSJim Jagielski             if(i < nColumnCount - 1)
265*b1cdbd2cSJim Jagielski                 aRect.Left() = aRect.Right() + pColMgr->GetGutterWidth(i);
266*b1cdbd2cSJim Jagielski         }
267*b1cdbd2cSJim Jagielski         if(pColMgr->HasLine())
268*b1cdbd2cSJim Jagielski         {
269*b1cdbd2cSJim Jagielski             Point aUp( rOrg.X() + nL, rOrg.Y() + GetTop() );
270*b1cdbd2cSJim Jagielski             Point aDown( rOrg.X() + nL, rOrg.Y() + GetSize().Height()
271*b1cdbd2cSJim Jagielski                         - GetBottom() - GetFtHeight() - GetFtDist() );
272*b1cdbd2cSJim Jagielski 
273*b1cdbd2cSJim Jagielski             if( pColMgr->GetLineHeightPercent() != 100 )
274*b1cdbd2cSJim Jagielski             {
275*b1cdbd2cSJim Jagielski                 long nLength = aDown.Y() - aUp.Y();
276*b1cdbd2cSJim Jagielski                 nLength -= nLength * pColMgr->GetLineHeightPercent() / 100;
277*b1cdbd2cSJim Jagielski                 switch(pColMgr->GetAdjust())
278*b1cdbd2cSJim Jagielski                 {
279*b1cdbd2cSJim Jagielski                     case COLADJ_BOTTOM: aUp.Y() += nLength; break;
280*b1cdbd2cSJim Jagielski                     case COLADJ_TOP: aDown.Y() -= nLength; break;
281*b1cdbd2cSJim Jagielski                     case COLADJ_CENTER:
282*b1cdbd2cSJim Jagielski                         aUp.Y() += nLength / 2;
283*b1cdbd2cSJim Jagielski                         aDown.Y() -= nLength / 2;
284*b1cdbd2cSJim Jagielski                     break;
285*b1cdbd2cSJim Jagielski                     default:; // prevent warning
286*b1cdbd2cSJim Jagielski                 }
287*b1cdbd2cSJim Jagielski             }
288*b1cdbd2cSJim Jagielski 
289*b1cdbd2cSJim Jagielski             int nDist;
290*b1cdbd2cSJim Jagielski             for( i = 0; i < nColumnCount -  1; i++)
291*b1cdbd2cSJim Jagielski             {
292*b1cdbd2cSJim Jagielski                 int nGutter = pColMgr->GetGutterWidth(i);
293*b1cdbd2cSJim Jagielski                 nDist = pColMgr->GetColWidth( i ) + nGutter;
294*b1cdbd2cSJim Jagielski                 nDist -= (i == 0) ?
295*b1cdbd2cSJim Jagielski                     nGutter/2 :
296*b1cdbd2cSJim Jagielski                         0;
297*b1cdbd2cSJim Jagielski                 aUp.X() += nDist;
298*b1cdbd2cSJim Jagielski                 aDown.X() += nDist;
299*b1cdbd2cSJim Jagielski                 DrawLine( aUp, aDown );
300*b1cdbd2cSJim Jagielski 
301*b1cdbd2cSJim Jagielski             }
302*b1cdbd2cSJim Jagielski         }
303*b1cdbd2cSJim Jagielski 	}
304*b1cdbd2cSJim Jagielski }
305*b1cdbd2cSJim Jagielski 
306*b1cdbd2cSJim Jagielski /*-----------------25.10.96 09.15-------------------
307*b1cdbd2cSJim Jagielski 
308*b1cdbd2cSJim Jagielski --------------------------------------------------*/
309*b1cdbd2cSJim Jagielski 
310*b1cdbd2cSJim Jagielski 
SwColumnOnlyExample(Window * pParent,const ResId & rResId)311*b1cdbd2cSJim Jagielski SwColumnOnlyExample::SwColumnOnlyExample( Window* pParent, const ResId& rResId) :
312*b1cdbd2cSJim Jagielski 	Window(pParent, rResId),
313*b1cdbd2cSJim Jagielski     m_aFrmSize(1,1)
314*b1cdbd2cSJim Jagielski {
315*b1cdbd2cSJim Jagielski 	SetMapMode( MapMode( MAP_TWIP ) );
316*b1cdbd2cSJim Jagielski     m_aWinSize = GetOutputSizePixel();
317*b1cdbd2cSJim Jagielski     m_aWinSize.Height() -= 4;
318*b1cdbd2cSJim Jagielski     m_aWinSize.Width() -= 4;
319*b1cdbd2cSJim Jagielski 
320*b1cdbd2cSJim Jagielski     m_aWinSize = PixelToLogic( m_aWinSize );
321*b1cdbd2cSJim Jagielski 
322*b1cdbd2cSJim Jagielski     SetBorderStyle( WINDOW_BORDER_MONO );
323*b1cdbd2cSJim Jagielski 
324*b1cdbd2cSJim Jagielski     m_aFrmSize  = SvxPaperInfo::GetPaperSize(PAPER_A4);// DIN A4
325*b1cdbd2cSJim Jagielski     ::FitToActualSize(m_aCols, (sal_uInt16)m_aFrmSize.Width());
326*b1cdbd2cSJim Jagielski 
327*b1cdbd2cSJim Jagielski     long nHeight = m_aFrmSize.Height();
328*b1cdbd2cSJim Jagielski     Fraction aScale( m_aWinSize.Height(), nHeight );
329*b1cdbd2cSJim Jagielski     MapMode aMapMode( GetMapMode() );
330*b1cdbd2cSJim Jagielski     aMapMode.SetScaleX( aScale );
331*b1cdbd2cSJim Jagielski     aMapMode.SetScaleY( aScale );
332*b1cdbd2cSJim Jagielski     SetMapMode( aMapMode );
333*b1cdbd2cSJim Jagielski }
334*b1cdbd2cSJim Jagielski 
335*b1cdbd2cSJim Jagielski /*-----------------25.10.96 09.16-------------------
336*b1cdbd2cSJim Jagielski 
337*b1cdbd2cSJim Jagielski --------------------------------------------------*/
338*b1cdbd2cSJim Jagielski 
339*b1cdbd2cSJim Jagielski 
Paint(const Rectangle &)340*b1cdbd2cSJim Jagielski void SwColumnOnlyExample::Paint( const Rectangle& /*rRect*/ )
341*b1cdbd2cSJim Jagielski {
342*b1cdbd2cSJim Jagielski     const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
343*b1cdbd2cSJim Jagielski     const Color& rFieldColor = rStyleSettings.GetFieldColor();
344*b1cdbd2cSJim Jagielski     const Color& rDlgColor = rStyleSettings.GetDialogColor();
345*b1cdbd2cSJim Jagielski     const Color& rFieldTextColor = SwViewOption::GetFontColor();
346*b1cdbd2cSJim Jagielski     Color aGrayColor(COL_LIGHTGRAY);
347*b1cdbd2cSJim Jagielski     if(rFieldColor == aGrayColor)
348*b1cdbd2cSJim Jagielski         aGrayColor.Invert();
349*b1cdbd2cSJim Jagielski 
350*b1cdbd2cSJim Jagielski     Size aLogSize(PixelToLogic(GetOutputSizePixel()));
351*b1cdbd2cSJim Jagielski     Rectangle aCompleteRect(Point(0,0), aLogSize);
352*b1cdbd2cSJim Jagielski     SetLineColor(rDlgColor);
353*b1cdbd2cSJim Jagielski     SetFillColor(rDlgColor);
354*b1cdbd2cSJim Jagielski     DrawRect(aCompleteRect);
355*b1cdbd2cSJim Jagielski 
356*b1cdbd2cSJim Jagielski     SetLineColor( rFieldTextColor );
357*b1cdbd2cSJim Jagielski     Point aTL(  (aLogSize.Width() - m_aFrmSize.Width()) / 2,
358*b1cdbd2cSJim Jagielski                 (aLogSize.Height() - m_aFrmSize.Height()) / 2);
359*b1cdbd2cSJim Jagielski     Rectangle aRect(aTL, m_aFrmSize);
360*b1cdbd2cSJim Jagielski 
361*b1cdbd2cSJim Jagielski     //draw a shadow rectangle
362*b1cdbd2cSJim Jagielski     SetFillColor( Color(COL_GRAY) );
363*b1cdbd2cSJim Jagielski     Rectangle aShadowRect(aRect);
364*b1cdbd2cSJim Jagielski     aShadowRect.Move(aTL.Y(), aTL.Y());
365*b1cdbd2cSJim Jagielski     DrawRect(aShadowRect);
366*b1cdbd2cSJim Jagielski 
367*b1cdbd2cSJim Jagielski     SetFillColor( rFieldColor );
368*b1cdbd2cSJim Jagielski     DrawRect(aRect);
369*b1cdbd2cSJim Jagielski 
370*b1cdbd2cSJim Jagielski     SetFillColor( aGrayColor );
371*b1cdbd2cSJim Jagielski 
372*b1cdbd2cSJim Jagielski     //Spaltentrenner?
373*b1cdbd2cSJim Jagielski     long nLength = aLogSize.Height() - 2 * aTL.Y();
374*b1cdbd2cSJim Jagielski     Point aUp( aTL );
375*b1cdbd2cSJim Jagielski     Point aDown( aTL.X(), nLength );
376*b1cdbd2cSJim Jagielski     sal_Bool bLines = sal_False;
377*b1cdbd2cSJim Jagielski     if(m_aCols.GetLineAdj() != COLADJ_NONE)
378*b1cdbd2cSJim Jagielski     {
379*b1cdbd2cSJim Jagielski         bLines = sal_True;
380*b1cdbd2cSJim Jagielski 
381*b1cdbd2cSJim Jagielski         sal_uInt16 nPercent = m_aCols.GetLineHeight();
382*b1cdbd2cSJim Jagielski         if( nPercent != 100 )
383*b1cdbd2cSJim Jagielski         {
384*b1cdbd2cSJim Jagielski             nLength -= nLength * nPercent / 100;
385*b1cdbd2cSJim Jagielski             switch(m_aCols.GetLineAdj())
386*b1cdbd2cSJim Jagielski             {
387*b1cdbd2cSJim Jagielski                 case COLADJ_BOTTOM: aUp.Y() += nLength; break;
388*b1cdbd2cSJim Jagielski                 case COLADJ_TOP: aDown.Y() -= nLength; break;
389*b1cdbd2cSJim Jagielski                 case COLADJ_CENTER:
390*b1cdbd2cSJim Jagielski                         aUp.Y() += nLength / 2;
391*b1cdbd2cSJim Jagielski                         aDown.Y() -= nLength / 2;
392*b1cdbd2cSJim Jagielski                 break;
393*b1cdbd2cSJim Jagielski                 default:; //prevent warning
394*b1cdbd2cSJim Jagielski             }
395*b1cdbd2cSJim Jagielski         }
396*b1cdbd2cSJim Jagielski 
397*b1cdbd2cSJim Jagielski     }
398*b1cdbd2cSJim Jagielski     const SwColumns& rCols = m_aCols.GetColumns();
399*b1cdbd2cSJim Jagielski     sal_uInt16 nColCount = rCols.Count();
400*b1cdbd2cSJim Jagielski     if( nColCount )
401*b1cdbd2cSJim Jagielski     {
402*b1cdbd2cSJim Jagielski         DrawRect(aRect);
403*b1cdbd2cSJim Jagielski         SetFillColor( rFieldColor );
404*b1cdbd2cSJim Jagielski         Rectangle aFrmRect(aTL, m_aFrmSize);
405*b1cdbd2cSJim Jagielski         long nSum = aTL.X();
406*b1cdbd2cSJim Jagielski         for(sal_uInt16 i = 0; i < nColCount; i++)
407*b1cdbd2cSJim Jagielski         {
408*b1cdbd2cSJim Jagielski             SwColumn* pCol = rCols[i];
409*b1cdbd2cSJim Jagielski             aFrmRect.Left()    = nSum + pCol->GetLeft();//nSum + pCol->GetLeft() + aTL.X();
410*b1cdbd2cSJim Jagielski             nSum              += pCol->GetWishWidth();
411*b1cdbd2cSJim Jagielski             aFrmRect.Right()   = nSum - pCol->GetRight();
412*b1cdbd2cSJim Jagielski             DrawRect(aFrmRect);
413*b1cdbd2cSJim Jagielski         }
414*b1cdbd2cSJim Jagielski         if(bLines )
415*b1cdbd2cSJim Jagielski         {
416*b1cdbd2cSJim Jagielski             nSum = aTL.X();
417*b1cdbd2cSJim Jagielski             for(sal_uInt16 i = 0; i < nColCount - 1; i++)
418*b1cdbd2cSJim Jagielski             {
419*b1cdbd2cSJim Jagielski                 nSum += rCols[i]->GetWishWidth();
420*b1cdbd2cSJim Jagielski                 aUp.X() = nSum;
421*b1cdbd2cSJim Jagielski                 aDown.X() = nSum;
422*b1cdbd2cSJim Jagielski                 DrawLine(aUp, aDown);
423*b1cdbd2cSJim Jagielski             }
424*b1cdbd2cSJim Jagielski         }
425*b1cdbd2cSJim Jagielski     }
426*b1cdbd2cSJim Jagielski }
427*b1cdbd2cSJim Jagielski 
428*b1cdbd2cSJim Jagielski /*-----------------25.10.96 12.05-------------------
429*b1cdbd2cSJim Jagielski 
430*b1cdbd2cSJim Jagielski --------------------------------------------------*/
431*b1cdbd2cSJim Jagielski 
432*b1cdbd2cSJim Jagielski 
SetColumns(const SwFmtCol & rCol)433*b1cdbd2cSJim Jagielski void  SwColumnOnlyExample::SetColumns(const SwFmtCol& rCol)
434*b1cdbd2cSJim Jagielski {
435*b1cdbd2cSJim Jagielski     m_aCols = rCol;
436*b1cdbd2cSJim Jagielski     sal_uInt16 nWishSum = m_aCols.GetWishWidth();
437*b1cdbd2cSJim Jagielski     long nFrmWidth = m_aFrmSize.Width();
438*b1cdbd2cSJim Jagielski     SwColumns& rCols = m_aCols.GetColumns();
439*b1cdbd2cSJim Jagielski     sal_uInt16 nColCount = rCols.Count();
440*b1cdbd2cSJim Jagielski 
441*b1cdbd2cSJim Jagielski     for(sal_uInt16 i = 0; i < nColCount; i++)
442*b1cdbd2cSJim Jagielski     {
443*b1cdbd2cSJim Jagielski         SwColumn* pCol = rCols[i];
444*b1cdbd2cSJim Jagielski         long nWish = pCol->GetWishWidth();
445*b1cdbd2cSJim Jagielski         nWish *= nFrmWidth;
446*b1cdbd2cSJim Jagielski         nWish /= nWishSum;
447*b1cdbd2cSJim Jagielski         pCol->SetWishWidth((sal_uInt16)nWish);
448*b1cdbd2cSJim Jagielski         long nLeft = pCol->GetLeft();
449*b1cdbd2cSJim Jagielski         nLeft *= nFrmWidth;
450*b1cdbd2cSJim Jagielski         nLeft /= nWishSum;
451*b1cdbd2cSJim Jagielski         pCol->SetLeft((sal_uInt16)nLeft);
452*b1cdbd2cSJim Jagielski         long nRight = pCol->GetRight();
453*b1cdbd2cSJim Jagielski         nRight *= nFrmWidth;
454*b1cdbd2cSJim Jagielski         nRight /= nWishSum;
455*b1cdbd2cSJim Jagielski         pCol->SetRight((sal_uInt16)nRight);
456*b1cdbd2cSJim Jagielski     }
457*b1cdbd2cSJim Jagielski     // #97495# make sure that the automatic column width's are always equal
458*b1cdbd2cSJim Jagielski     if(nColCount && m_aCols.IsOrtho())
459*b1cdbd2cSJim Jagielski     {
460*b1cdbd2cSJim Jagielski         sal_Int32 nColumnWidthSum = 0;
461*b1cdbd2cSJim Jagielski         sal_uInt16 i;
462*b1cdbd2cSJim Jagielski         for(i = 0; i < nColCount; ++i)
463*b1cdbd2cSJim Jagielski         {
464*b1cdbd2cSJim Jagielski             SwColumn* pCol = rCols[i];
465*b1cdbd2cSJim Jagielski             nColumnWidthSum += pCol->GetWishWidth();
466*b1cdbd2cSJim Jagielski             nColumnWidthSum -= (pCol->GetRight() + pCol->GetLeft());
467*b1cdbd2cSJim Jagielski         }
468*b1cdbd2cSJim Jagielski         nColumnWidthSum /= nColCount;
469*b1cdbd2cSJim Jagielski         for(i = 0; i < nColCount; ++i)
470*b1cdbd2cSJim Jagielski         {
471*b1cdbd2cSJim Jagielski             SwColumn* pCol = rCols[i];
472*b1cdbd2cSJim Jagielski             pCol->SetWishWidth( static_cast< sal_uInt16 >(nColumnWidthSum + pCol->GetRight() + pCol->GetLeft()));
473*b1cdbd2cSJim Jagielski         }
474*b1cdbd2cSJim Jagielski     }
475*b1cdbd2cSJim Jagielski }
476*b1cdbd2cSJim Jagielski /* -----------------------------08.02.2002 11:44------------------------------
477*b1cdbd2cSJim Jagielski 
478*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
~SwPageGridExample()479*b1cdbd2cSJim Jagielski SwPageGridExample::~SwPageGridExample()
480*b1cdbd2cSJim Jagielski {
481*b1cdbd2cSJim Jagielski     delete pGridItem;
482*b1cdbd2cSJim Jagielski }
483*b1cdbd2cSJim Jagielski /* -----------------------------08.02.2002 11:48------------------------------
484*b1cdbd2cSJim Jagielski 
485*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
486*b1cdbd2cSJim Jagielski #define MAX_ROWS    10
487*b1cdbd2cSJim Jagielski #define MAX_LINES   15
DrawPage(const Point & rOrg,const sal_Bool bSecond,const sal_Bool bEnabled)488*b1cdbd2cSJim Jagielski void SwPageGridExample::DrawPage( const Point& rOrg,
489*b1cdbd2cSJim Jagielski 						   const sal_Bool bSecond,
490*b1cdbd2cSJim Jagielski                            const sal_Bool bEnabled )
491*b1cdbd2cSJim Jagielski {
492*b1cdbd2cSJim Jagielski     SwPageExample::DrawPage(rOrg, bSecond, bEnabled);
493*b1cdbd2cSJim Jagielski     if(pGridItem && pGridItem->GetGridType())
494*b1cdbd2cSJim Jagielski     {
495*b1cdbd2cSJim Jagielski         //paint the grid now
496*b1cdbd2cSJim Jagielski         Color aLineColor = pGridItem->GetColor();
497*b1cdbd2cSJim Jagielski         if(aLineColor.GetColor() == COL_AUTO)
498*b1cdbd2cSJim Jagielski         {
499*b1cdbd2cSJim Jagielski             aLineColor = GetFillColor();
500*b1cdbd2cSJim Jagielski             aLineColor.Invert();
501*b1cdbd2cSJim Jagielski         }
502*b1cdbd2cSJim Jagielski         SetLineColor(aLineColor);
503*b1cdbd2cSJim Jagielski         long nL = GetLeft();
504*b1cdbd2cSJim Jagielski 		long nR = GetRight();
505*b1cdbd2cSJim Jagielski 
506*b1cdbd2cSJim Jagielski 		if ( GetUsage() == SVX_PAGE_MIRROR && !bSecond )
507*b1cdbd2cSJim Jagielski 		{
508*b1cdbd2cSJim Jagielski 			// fuer gespiegelt drehen
509*b1cdbd2cSJim Jagielski 			nL = GetRight();
510*b1cdbd2cSJim Jagielski 			nR = GetLeft();
511*b1cdbd2cSJim Jagielski 		}
512*b1cdbd2cSJim Jagielski 
513*b1cdbd2cSJim Jagielski         Rectangle aRect;
514*b1cdbd2cSJim Jagielski 		aRect.Right() = rOrg.X() + GetSize().Width() - nR;
515*b1cdbd2cSJim Jagielski 		aRect.Left()  = rOrg.X() + nL;
516*b1cdbd2cSJim Jagielski 		aRect.Top()	  = rOrg.Y() + GetTop()
517*b1cdbd2cSJim Jagielski 						+ GetHdHeight() + GetHdDist();
518*b1cdbd2cSJim Jagielski 		aRect.Bottom()= rOrg.Y() + GetSize().Height() - GetBottom()
519*b1cdbd2cSJim Jagielski 						- GetFtHeight() - GetFtDist();
520*b1cdbd2cSJim Jagielski 
521*b1cdbd2cSJim Jagielski         //increase the values to get a 'viewable' preview
522*b1cdbd2cSJim Jagielski         sal_Int32 nBaseHeight = pGridItem->GetBaseHeight() * 3;
523*b1cdbd2cSJim Jagielski         sal_Int32 nRubyHeight = pGridItem->GetRubyHeight() * 3;
524*b1cdbd2cSJim Jagielski 
525*b1cdbd2cSJim Jagielski         //detect height of rectangles
526*b1cdbd2cSJim Jagielski         Rectangle aRubyRect(aRect.TopLeft(),
527*b1cdbd2cSJim Jagielski                     m_bVertical ?
528*b1cdbd2cSJim Jagielski                     Size(nRubyHeight, aRect.GetHeight()) :
529*b1cdbd2cSJim Jagielski                     Size(aRect.GetWidth(), nRubyHeight));
530*b1cdbd2cSJim Jagielski         Rectangle aCharRect(aRect.TopLeft(),
531*b1cdbd2cSJim Jagielski                     m_bVertical ?
532*b1cdbd2cSJim Jagielski                     Size(nBaseHeight, aRect.GetHeight()) :
533*b1cdbd2cSJim Jagielski                     Size(aRect.GetWidth(), nBaseHeight));
534*b1cdbd2cSJim Jagielski 
535*b1cdbd2cSJim Jagielski         sal_Int32 nLineHeight = nBaseHeight + nRubyHeight;
536*b1cdbd2cSJim Jagielski 
537*b1cdbd2cSJim Jagielski         //detect count of rectangles
538*b1cdbd2cSJim Jagielski         sal_Int32 nLines = (m_bVertical ? aRect.GetWidth(): aRect.GetHeight()) / nLineHeight;
539*b1cdbd2cSJim Jagielski         if(nLines > pGridItem->GetLines())
540*b1cdbd2cSJim Jagielski             nLines = pGridItem->GetLines();
541*b1cdbd2cSJim Jagielski 
542*b1cdbd2cSJim Jagielski         // determine start position
543*b1cdbd2cSJim Jagielski         if(m_bVertical)
544*b1cdbd2cSJim Jagielski         {
545*b1cdbd2cSJim Jagielski             sal_Int16 nXStart = static_cast< sal_Int16 >(aRect.GetWidth() / 2 - nLineHeight * nLines /2);
546*b1cdbd2cSJim Jagielski             aRubyRect.Move(nXStart, 0);
547*b1cdbd2cSJim Jagielski             aCharRect.Move(nXStart, 0);
548*b1cdbd2cSJim Jagielski         }
549*b1cdbd2cSJim Jagielski         else
550*b1cdbd2cSJim Jagielski         {
551*b1cdbd2cSJim Jagielski             sal_Int16 nYStart = static_cast< sal_Int16 >(aRect.GetHeight() / 2 - nLineHeight * nLines /2);
552*b1cdbd2cSJim Jagielski             aRubyRect.Move(0, nYStart);
553*b1cdbd2cSJim Jagielski             aCharRect.Move(0, nYStart);
554*b1cdbd2cSJim Jagielski         }
555*b1cdbd2cSJim Jagielski 
556*b1cdbd2cSJim Jagielski         if(pGridItem->IsRubyTextBelow())
557*b1cdbd2cSJim Jagielski             m_bVertical ? aRubyRect.Move(nBaseHeight, 0) : aRubyRect.Move(0, nBaseHeight);
558*b1cdbd2cSJim Jagielski         else
559*b1cdbd2cSJim Jagielski             m_bVertical ? aCharRect.Move(nRubyHeight, 0) : aCharRect.Move(0, nRubyHeight);
560*b1cdbd2cSJim Jagielski 
561*b1cdbd2cSJim Jagielski         //vertical lines
562*b1cdbd2cSJim Jagielski         sal_Bool bBothLines = pGridItem->GetGridType() == GRID_LINES_CHARS;
563*b1cdbd2cSJim Jagielski         SetFillColor( Color( COL_TRANSPARENT ) );
564*b1cdbd2cSJim Jagielski         sal_Int32 nXMove = m_bVertical ? nLineHeight : 0;
565*b1cdbd2cSJim Jagielski 		sal_Int32 nYMove = m_bVertical ? 0 : nLineHeight;
566*b1cdbd2cSJim Jagielski 		for(sal_Int32 nLine = 0; nLine < nLines; nLine++)
567*b1cdbd2cSJim Jagielski         {
568*b1cdbd2cSJim Jagielski             DrawRect(aRubyRect);
569*b1cdbd2cSJim Jagielski             DrawRect(aCharRect);
570*b1cdbd2cSJim Jagielski             if(bBothLines)
571*b1cdbd2cSJim Jagielski             {
572*b1cdbd2cSJim Jagielski                 Point aStart = aCharRect.TopLeft();
573*b1cdbd2cSJim Jagielski                 Point aEnd = m_bVertical ? aCharRect.TopRight() : aCharRect.BottomLeft();
574*b1cdbd2cSJim Jagielski                 while(m_bVertical ? aStart.Y() < aRect.Bottom(): aStart.X() < aRect.Right())
575*b1cdbd2cSJim Jagielski                 {
576*b1cdbd2cSJim Jagielski                     DrawLine(aStart, aEnd);
577*b1cdbd2cSJim Jagielski                     if(m_bVertical)
578*b1cdbd2cSJim Jagielski                         aStart.Y() = aEnd.Y() += nBaseHeight;
579*b1cdbd2cSJim Jagielski                     else
580*b1cdbd2cSJim Jagielski                         aStart.X() = aEnd.X() += nBaseHeight;
581*b1cdbd2cSJim Jagielski                 }
582*b1cdbd2cSJim Jagielski             }
583*b1cdbd2cSJim Jagielski             aRubyRect.Move(nXMove, nYMove);
584*b1cdbd2cSJim Jagielski             aCharRect.Move(nXMove, nYMove);
585*b1cdbd2cSJim Jagielski         }
586*b1cdbd2cSJim Jagielski     }
587*b1cdbd2cSJim Jagielski }
588*b1cdbd2cSJim Jagielski /* -----------------------------08.02.2002 11:48------------------------------
589*b1cdbd2cSJim Jagielski 
590*b1cdbd2cSJim Jagielski  ---------------------------------------------------------------------------*/
UpdateExample(const SfxItemSet & rSet)591*b1cdbd2cSJim Jagielski void SwPageGridExample::UpdateExample( const SfxItemSet& rSet )
592*b1cdbd2cSJim Jagielski {
593*b1cdbd2cSJim Jagielski     DELETEZ(pGridItem);
594*b1cdbd2cSJim Jagielski     //get the grid information
595*b1cdbd2cSJim Jagielski     if(SFX_ITEM_AVAILABLE <= rSet.GetItemState(RES_TEXTGRID, sal_True))
596*b1cdbd2cSJim Jagielski         pGridItem = (SwTextGridItem*)((const SwTextGridItem&)rSet.Get(RES_TEXTGRID)).Clone();
597*b1cdbd2cSJim Jagielski     if( SFX_ITEM_AVAILABLE <= rSet.GetItemState( RES_FRAMEDIR, sal_True ))
598*b1cdbd2cSJim Jagielski 	{
599*b1cdbd2cSJim Jagielski         const SvxFrameDirectionItem& rDirItem =
600*b1cdbd2cSJim Jagielski                     (const SvxFrameDirectionItem&)rSet.Get(RES_FRAMEDIR);
601*b1cdbd2cSJim Jagielski         m_bVertical = rDirItem.GetValue() == FRMDIR_VERT_TOP_RIGHT||
602*b1cdbd2cSJim Jagielski                     rDirItem.GetValue() == FRMDIR_VERT_TOP_LEFT;
603*b1cdbd2cSJim Jagielski     }
604*b1cdbd2cSJim Jagielski     SwPageExample::UpdateExample(rSet);
605*b1cdbd2cSJim Jagielski }
606*b1cdbd2cSJim Jagielski 
607