xref: /aoo4110/main/sw/source/ui/table/tabledlg.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 #ifdef SW_DLLIMPLEMENTATION
28*b1cdbd2cSJim Jagielski #undef SW_DLLIMPLEMENTATION
29*b1cdbd2cSJim Jagielski #endif
30*b1cdbd2cSJim Jagielski 
31*b1cdbd2cSJim Jagielski 
32*b1cdbd2cSJim Jagielski #include <hintids.hxx>
33*b1cdbd2cSJim Jagielski #include <tools/list.hxx>
34*b1cdbd2cSJim Jagielski #include <vcl/msgbox.hxx>
35*b1cdbd2cSJim Jagielski #include <svl/stritem.hxx>
36*b1cdbd2cSJim Jagielski #include <svl/intitem.hxx>
37*b1cdbd2cSJim Jagielski #include <svx/htmlmode.hxx>
38*b1cdbd2cSJim Jagielski #include <editeng/keepitem.hxx>
39*b1cdbd2cSJim Jagielski #include <editeng/brkitem.hxx>
40*b1cdbd2cSJim Jagielski #include <editeng/ulspitem.hxx>
41*b1cdbd2cSJim Jagielski #include <editeng/frmdiritem.hxx>
42*b1cdbd2cSJim Jagielski #include <svl/ctloptions.hxx>
43*b1cdbd2cSJim Jagielski #include <swmodule.hxx>
44*b1cdbd2cSJim Jagielski #include <fmtornt.hxx>
45*b1cdbd2cSJim Jagielski #include <fmtpdsc.hxx>
46*b1cdbd2cSJim Jagielski #include <fmtlsplt.hxx>
47*b1cdbd2cSJim Jagielski 
48*b1cdbd2cSJim Jagielski #include <svtools/htmlcfg.hxx>
49*b1cdbd2cSJim Jagielski #include <fmtrowsplt.hxx>
50*b1cdbd2cSJim Jagielski #include <svx/htmlmode.hxx>
51*b1cdbd2cSJim Jagielski 
52*b1cdbd2cSJim Jagielski #include "access.hrc"
53*b1cdbd2cSJim Jagielski 
54*b1cdbd2cSJim Jagielski #ifndef _DOCSH_HXX
55*b1cdbd2cSJim Jagielski #include <docsh.hxx>
56*b1cdbd2cSJim Jagielski #endif
57*b1cdbd2cSJim Jagielski #include <wrtsh.hxx>
58*b1cdbd2cSJim Jagielski #ifndef _VIEW_HXX
59*b1cdbd2cSJim Jagielski #include <view.hxx>
60*b1cdbd2cSJim Jagielski #endif
61*b1cdbd2cSJim Jagielski #include <viewopt.hxx>
62*b1cdbd2cSJim Jagielski #include <uitool.hxx>
63*b1cdbd2cSJim Jagielski #include <frmatr.hxx>
64*b1cdbd2cSJim Jagielski #include <tabledlg.hxx>
65*b1cdbd2cSJim Jagielski #ifndef _TABLEPG_HXX
66*b1cdbd2cSJim Jagielski #include <tablepg.hxx>
67*b1cdbd2cSJim Jagielski #endif
68*b1cdbd2cSJim Jagielski #include <tablemgr.hxx>
69*b1cdbd2cSJim Jagielski #include <pagedesc.hxx>
70*b1cdbd2cSJim Jagielski #include <uiitems.hxx>
71*b1cdbd2cSJim Jagielski #include <poolfmt.hxx>
72*b1cdbd2cSJim Jagielski #include <SwStyleNameMapper.hxx>
73*b1cdbd2cSJim Jagielski 
74*b1cdbd2cSJim Jagielski #ifndef _CMDID_H
75*b1cdbd2cSJim Jagielski #include <cmdid.h>
76*b1cdbd2cSJim Jagielski #endif
77*b1cdbd2cSJim Jagielski #ifndef _TABLEDLG_HRC
78*b1cdbd2cSJim Jagielski #include <tabledlg.hrc>
79*b1cdbd2cSJim Jagielski #endif
80*b1cdbd2cSJim Jagielski #ifndef _TABLE_HRC
81*b1cdbd2cSJim Jagielski #include <table.hrc>
82*b1cdbd2cSJim Jagielski #endif
83*b1cdbd2cSJim Jagielski #include <svx/svxids.hrc>
84*b1cdbd2cSJim Jagielski #include <svx/dialogs.hrc>
85*b1cdbd2cSJim Jagielski #include <svx/flagsdef.hxx>
86*b1cdbd2cSJim Jagielski #include <svx/svxdlg.hxx>
87*b1cdbd2cSJim Jagielski 
88*b1cdbd2cSJim Jagielski using namespace ::com::sun::star;
89*b1cdbd2cSJim Jagielski 
90*b1cdbd2cSJim Jagielski 
91*b1cdbd2cSJim Jagielski #ifdef DEBUG_TBLDLG
DbgTblRep(SwTableRep * pRep)92*b1cdbd2cSJim Jagielski void DbgTblRep(SwTableRep* pRep)
93*b1cdbd2cSJim Jagielski {
94*b1cdbd2cSJim Jagielski 	DBG_ERROR(String(pRep->GetColCount()))
95*b1cdbd2cSJim Jagielski 	DBG_ERROR(String(pRep->GetAllColCount()))
96*b1cdbd2cSJim Jagielski 	SwTwips nSum = 0;
97*b1cdbd2cSJim Jagielski 	for(sal_uInt16 i = 0; i < pRep->GetAllColCount(); i++)
98*b1cdbd2cSJim Jagielski 	{
99*b1cdbd2cSJim Jagielski 		String sMsg(i);
100*b1cdbd2cSJim Jagielski 		sMsg += pRep->GetColumns()[i].bVisible ? " v " : " h ";
101*b1cdbd2cSJim Jagielski 		sMsg += pRep->GetColumns()[i].nWidth;
102*b1cdbd2cSJim Jagielski 		nSum +=pRep->GetColumns()[i].nWidth;
103*b1cdbd2cSJim Jagielski 		DBG_ERROR(sMsg)
104*b1cdbd2cSJim Jagielski 	}
105*b1cdbd2cSJim Jagielski 	String sMsg("Spaltensumme: ");
106*b1cdbd2cSJim Jagielski 	sMsg += nSum;
107*b1cdbd2cSJim Jagielski 	sMsg += " Tblbreite: ";
108*b1cdbd2cSJim Jagielski 	sMsg += pRep->GetWidth();
109*b1cdbd2cSJim Jagielski 	DBG_ERROR(sMsg)
110*b1cdbd2cSJim Jagielski 	sMsg = "Gesamt/Links/Rechts: ";
111*b1cdbd2cSJim Jagielski 	sMsg += pRep->GetSpace();
112*b1cdbd2cSJim Jagielski 	sMsg += '/';
113*b1cdbd2cSJim Jagielski 	sMsg += pRep->GetLeftSpace();
114*b1cdbd2cSJim Jagielski 	sMsg += '/';
115*b1cdbd2cSJim Jagielski 	sMsg += pRep->GetRightSpace();
116*b1cdbd2cSJim Jagielski 	DBG_ERROR(sMsg)
117*b1cdbd2cSJim Jagielski 	sMsg = "Align: ";
118*b1cdbd2cSJim Jagielski 	sMsg += pRep->GetAlign();
119*b1cdbd2cSJim Jagielski 	DBG_ERROR(sMsg)
120*b1cdbd2cSJim Jagielski 
121*b1cdbd2cSJim Jagielski };
122*b1cdbd2cSJim Jagielski 
123*b1cdbd2cSJim Jagielski #endif
124*b1cdbd2cSJim Jagielski 
125*b1cdbd2cSJim Jagielski 
SwFormatTablePage(Window * pParent,const SfxItemSet & rSet)126*b1cdbd2cSJim Jagielski SwFormatTablePage::SwFormatTablePage( Window* pParent, const SfxItemSet& rSet ) :
127*b1cdbd2cSJim Jagielski 	SfxTabPage(pParent, SW_RES( TP_FORMAT_TABLE ), rSet ),
128*b1cdbd2cSJim Jagielski     aOptionsFL(this,    SW_RES( FL_OPTIONS )),
129*b1cdbd2cSJim Jagielski 	aNameFT(this,		SW_RES( FT_NAME )),
130*b1cdbd2cSJim Jagielski 	aNameED(this,		SW_RES( ED_NAME )),
131*b1cdbd2cSJim Jagielski 	aWidthFT(this,		SW_RES( FT_WIDTH )),
132*b1cdbd2cSJim Jagielski 	aWidthMF(this,		SW_RES( ED_WIDTH )),
133*b1cdbd2cSJim Jagielski 	aRelWidthCB(this, 	SW_RES( CB_REL_WIDTH )),
134*b1cdbd2cSJim Jagielski 
135*b1cdbd2cSJim Jagielski     aPosFL(this,       SW_RES( FL_POS )),
136*b1cdbd2cSJim Jagielski     aFullBtn(this,      SW_RES( RB_FULL )),
137*b1cdbd2cSJim Jagielski     aLeftBtn(this,      SW_RES( RB_LEFT )),
138*b1cdbd2cSJim Jagielski     aFromLeftBtn(this,  SW_RES( RB_FROM_LEFT )),
139*b1cdbd2cSJim Jagielski     aRightBtn(this,     SW_RES( RB_RIGHT )),
140*b1cdbd2cSJim Jagielski     aCenterBtn(this,    SW_RES( RB_CENTER )),
141*b1cdbd2cSJim Jagielski     aFreeBtn(this,      SW_RES( RB_FREE )),
142*b1cdbd2cSJim Jagielski 
143*b1cdbd2cSJim Jagielski     aDistFL(this,       SW_RES( FL_DIST )),
144*b1cdbd2cSJim Jagielski     aLeftFT(this,       SW_RES( FT_LEFT_DIST )),
145*b1cdbd2cSJim Jagielski 	aLeftMF(this,		SW_RES( ED_LEFT_DIST )),
146*b1cdbd2cSJim Jagielski 	aRightFT(this,		SW_RES( FT_RIGHT_DIST )),
147*b1cdbd2cSJim Jagielski 	aRightMF(this,		SW_RES( ED_RIGHT_DIST )),
148*b1cdbd2cSJim Jagielski 	aTopFT (this,		SW_RES( FT_TOP_DIST )),
149*b1cdbd2cSJim Jagielski 	aTopMF(this,		SW_RES( ED_TOP_DIST )),
150*b1cdbd2cSJim Jagielski 	aBottomFT(this,		SW_RES( FT_BOTTOM_DIST )),
151*b1cdbd2cSJim Jagielski 	aBottomMF(this,		SW_RES( ED_BOTTOM_DIST )),
152*b1cdbd2cSJim Jagielski 
153*b1cdbd2cSJim Jagielski     aPropertiesFL(this,     SW_RES( FL_PROPERTIES    )),
154*b1cdbd2cSJim Jagielski     aTextDirectionFT(this,  SW_RES( FT_TEXTDIRECTION )),
155*b1cdbd2cSJim Jagielski     aTextDirectionLB(this,  SW_RES( LB_TEXTDIRECTION )),
156*b1cdbd2cSJim Jagielski 
157*b1cdbd2cSJim Jagielski     pTblData(0),
158*b1cdbd2cSJim Jagielski 	nSaveWidth(0),
159*b1cdbd2cSJim Jagielski 	nMinTableWidth(MINLAY),
160*b1cdbd2cSJim Jagielski 	bModified(sal_False),
161*b1cdbd2cSJim Jagielski     bFull(0),
162*b1cdbd2cSJim Jagielski     bHtmlMode(sal_False)
163*b1cdbd2cSJim Jagielski {
164*b1cdbd2cSJim Jagielski 	FreeResource();
165*b1cdbd2cSJim Jagielski 	SetExchangeSupport();
166*b1cdbd2cSJim Jagielski 
167*b1cdbd2cSJim Jagielski     const SfxPoolItem* pItem;
168*b1cdbd2cSJim Jagielski     if(SFX_ITEM_SET == rSet.GetItemState(SID_HTML_MODE, sal_False, &pItem))
169*b1cdbd2cSJim Jagielski         bHtmlMode = 0 != (((const SfxUInt16Item*)pItem)->GetValue() & HTMLMODE_ON);
170*b1cdbd2cSJim Jagielski 
171*b1cdbd2cSJim Jagielski     sal_Bool bCTL = SW_MOD()->GetCTLOptions().IsCTLFontEnabled();
172*b1cdbd2cSJim Jagielski     if( !bHtmlMode && bCTL )
173*b1cdbd2cSJim Jagielski     {
174*b1cdbd2cSJim Jagielski         aPropertiesFL.Show();
175*b1cdbd2cSJim Jagielski         aTextDirectionFT.Show();
176*b1cdbd2cSJim Jagielski         aTextDirectionLB.Show();
177*b1cdbd2cSJim Jagielski     }
178*b1cdbd2cSJim Jagielski 
179*b1cdbd2cSJim Jagielski     Init();
180*b1cdbd2cSJim Jagielski }
181*b1cdbd2cSJim Jagielski 
182*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
183*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
Init()184*b1cdbd2cSJim Jagielski void  SwFormatTablePage::Init()
185*b1cdbd2cSJim Jagielski {
186*b1cdbd2cSJim Jagielski 	aLeftMF.MetricField::SetMin(-999999);
187*b1cdbd2cSJim Jagielski 	aRightMF.MetricField::SetMin(-999999);
188*b1cdbd2cSJim Jagielski 
189*b1cdbd2cSJim Jagielski 	// handler
190*b1cdbd2cSJim Jagielski 	Link aLk = LINK( this, SwFormatTablePage, AutoClickHdl );
191*b1cdbd2cSJim Jagielski 	aFullBtn.SetClickHdl( aLk );
192*b1cdbd2cSJim Jagielski 	aFreeBtn.SetClickHdl( aLk );
193*b1cdbd2cSJim Jagielski 	aLeftBtn.SetClickHdl( aLk );
194*b1cdbd2cSJim Jagielski 	aFromLeftBtn.SetClickHdl( aLk );
195*b1cdbd2cSJim Jagielski 	aRightBtn.SetClickHdl( aLk );
196*b1cdbd2cSJim Jagielski 	aCenterBtn.SetClickHdl( aLk );
197*b1cdbd2cSJim Jagielski 
198*b1cdbd2cSJim Jagielski     aLk = LINK( this, SwFormatTablePage, UpDownLoseFocusHdl );
199*b1cdbd2cSJim Jagielski 	aTopMF.SetUpHdl( aLk );
200*b1cdbd2cSJim Jagielski 	aBottomMF.SetUpHdl( aLk );
201*b1cdbd2cSJim Jagielski 	aRightMF.SetUpHdl( aLk );
202*b1cdbd2cSJim Jagielski 	aLeftMF.SetUpHdl( aLk );
203*b1cdbd2cSJim Jagielski 	aWidthMF.SetUpHdl( aLk );
204*b1cdbd2cSJim Jagielski 
205*b1cdbd2cSJim Jagielski     aTopMF.SetDownHdl( aLk );
206*b1cdbd2cSJim Jagielski 	aBottomMF.SetDownHdl( aLk );
207*b1cdbd2cSJim Jagielski 	aRightMF.SetDownHdl( aLk );
208*b1cdbd2cSJim Jagielski 	aLeftMF.SetDownHdl( aLk );
209*b1cdbd2cSJim Jagielski 	aWidthMF.SetDownHdl( aLk );
210*b1cdbd2cSJim Jagielski 
211*b1cdbd2cSJim Jagielski 	aTopMF.SetLoseFocusHdl( aLk );
212*b1cdbd2cSJim Jagielski 	aBottomMF.SetLoseFocusHdl( aLk );
213*b1cdbd2cSJim Jagielski 	aRightMF.SetLoseFocusHdl( aLk );
214*b1cdbd2cSJim Jagielski 	aLeftMF.SetLoseFocusHdl( aLk );
215*b1cdbd2cSJim Jagielski 	aWidthMF.SetLoseFocusHdl( aLk );
216*b1cdbd2cSJim Jagielski 
217*b1cdbd2cSJim Jagielski 	aRelWidthCB.SetClickHdl(LINK( this, SwFormatTablePage, RelWidthClickHdl ));
218*b1cdbd2cSJim Jagielski }
219*b1cdbd2cSJim Jagielski 
220*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------*/
221*b1cdbd2cSJim Jagielski 
IMPL_LINK(SwFormatTablePage,RelWidthClickHdl,CheckBox *,pBtn)222*b1cdbd2cSJim Jagielski IMPL_LINK( SwFormatTablePage, RelWidthClickHdl, CheckBox *, pBtn )
223*b1cdbd2cSJim Jagielski {
224*b1cdbd2cSJim Jagielski 	DBG_ASSERT(pTblData, "Tabellendaten nicht da?");
225*b1cdbd2cSJim Jagielski 	sal_Bool bIsChecked = pBtn->IsChecked();
226*b1cdbd2cSJim Jagielski     sal_Int64 nLeft  = aLeftMF.DenormalizePercent(aLeftMF.GetValue(FUNIT_TWIP ));
227*b1cdbd2cSJim Jagielski     sal_Int64 nRight = aRightMF.DenormalizePercent(aRightMF.GetValue(FUNIT_TWIP ));
228*b1cdbd2cSJim Jagielski 	aWidthMF.ShowPercent(bIsChecked);
229*b1cdbd2cSJim Jagielski 	aLeftMF.ShowPercent(bIsChecked);
230*b1cdbd2cSJim Jagielski 	aRightMF.ShowPercent(bIsChecked);
231*b1cdbd2cSJim Jagielski 
232*b1cdbd2cSJim Jagielski 	if (bIsChecked)
233*b1cdbd2cSJim Jagielski 	{
234*b1cdbd2cSJim Jagielski 		aWidthMF.SetRefValue(pTblData->GetSpace());
235*b1cdbd2cSJim Jagielski 		aLeftMF.SetRefValue(pTblData->GetSpace());
236*b1cdbd2cSJim Jagielski 		aRightMF.SetRefValue(pTblData->GetSpace());
237*b1cdbd2cSJim Jagielski 		aLeftMF.MetricField::SetMin(0); // wird vom Percentfield ueberschrieben
238*b1cdbd2cSJim Jagielski 		aRightMF.MetricField::SetMin(0);//                 -""-
239*b1cdbd2cSJim Jagielski         aLeftMF.MetricField::SetMax(99); //
240*b1cdbd2cSJim Jagielski         aRightMF.MetricField::SetMax(99);//
241*b1cdbd2cSJim Jagielski         aLeftMF.SetPrcntValue(aLeftMF.NormalizePercent(nLeft ), FUNIT_TWIP );
242*b1cdbd2cSJim Jagielski         aRightMF.SetPrcntValue(aRightMF.NormalizePercent(nRight ), FUNIT_TWIP );
243*b1cdbd2cSJim Jagielski 	}
244*b1cdbd2cSJim Jagielski 	else
245*b1cdbd2cSJim Jagielski 		ModifyHdl(&aLeftMF);	// Werte wieder korrigieren
246*b1cdbd2cSJim Jagielski 
247*b1cdbd2cSJim Jagielski 	if(aFreeBtn.IsChecked())
248*b1cdbd2cSJim Jagielski 	{
249*b1cdbd2cSJim Jagielski 		sal_Bool bEnable = !pBtn->IsChecked();
250*b1cdbd2cSJim Jagielski 		aRightMF.Enable(bEnable);
251*b1cdbd2cSJim Jagielski 		aRightFT.Enable(bEnable);
252*b1cdbd2cSJim Jagielski 	}
253*b1cdbd2cSJim Jagielski 	bModified = sal_True;
254*b1cdbd2cSJim Jagielski 
255*b1cdbd2cSJim Jagielski 	return 0;
256*b1cdbd2cSJim Jagielski }
257*b1cdbd2cSJim Jagielski 
258*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
259*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
IMPL_LINK(SwFormatTablePage,AutoClickHdl,CheckBox *,pBox)260*b1cdbd2cSJim Jagielski IMPL_LINK( SwFormatTablePage, AutoClickHdl, CheckBox *, pBox )
261*b1cdbd2cSJim Jagielski {
262*b1cdbd2cSJim Jagielski 	sal_Bool bRestore = sal_True,
263*b1cdbd2cSJim Jagielski 		 bLeftEnable = sal_False,
264*b1cdbd2cSJim Jagielski 		 bRightEnable= sal_False,
265*b1cdbd2cSJim Jagielski 		 bWidthEnable= sal_False,
266*b1cdbd2cSJim Jagielski 		 bOthers = sal_True;
267*b1cdbd2cSJim Jagielski 	if( (RadioButton *) pBox == &aFullBtn )
268*b1cdbd2cSJim Jagielski 	{
269*b1cdbd2cSJim Jagielski         aLeftMF.SetPrcntValue(0);
270*b1cdbd2cSJim Jagielski         aRightMF.SetPrcntValue(0);
271*b1cdbd2cSJim Jagielski         nSaveWidth = static_cast< SwTwips >(aWidthMF.DenormalizePercent(aWidthMF.GetValue(FUNIT_TWIP )));
272*b1cdbd2cSJim Jagielski         aWidthMF.SetPrcntValue(aWidthMF.NormalizePercent(pTblData->GetSpace() ), FUNIT_TWIP );
273*b1cdbd2cSJim Jagielski 		bFull = sal_True;
274*b1cdbd2cSJim Jagielski 		bRestore = sal_False;
275*b1cdbd2cSJim Jagielski 	}
276*b1cdbd2cSJim Jagielski 	else if( (RadioButton *) pBox == &aLeftBtn )
277*b1cdbd2cSJim Jagielski 	{
278*b1cdbd2cSJim Jagielski 		bRightEnable = bWidthEnable = sal_True;
279*b1cdbd2cSJim Jagielski         aLeftMF.SetPrcntValue(0);
280*b1cdbd2cSJim Jagielski 	}
281*b1cdbd2cSJim Jagielski 	else if( (RadioButton *) pBox == &aFromLeftBtn )
282*b1cdbd2cSJim Jagielski 	{
283*b1cdbd2cSJim Jagielski 		bLeftEnable = bWidthEnable = sal_True;
284*b1cdbd2cSJim Jagielski         aRightMF.SetPrcntValue(0);
285*b1cdbd2cSJim Jagielski 	}
286*b1cdbd2cSJim Jagielski 	else if( (RadioButton *) pBox == &aRightBtn )
287*b1cdbd2cSJim Jagielski 	{
288*b1cdbd2cSJim Jagielski 		bLeftEnable = bWidthEnable = sal_True;
289*b1cdbd2cSJim Jagielski         aRightMF.SetPrcntValue(0);
290*b1cdbd2cSJim Jagielski 	}
291*b1cdbd2cSJim Jagielski 	else if( ( RadioButton * ) pBox == &aCenterBtn )
292*b1cdbd2cSJim Jagielski 	{
293*b1cdbd2cSJim Jagielski 		bLeftEnable = bWidthEnable = sal_True;
294*b1cdbd2cSJim Jagielski 	}
295*b1cdbd2cSJim Jagielski 	else if( ( RadioButton * ) pBox == &aFreeBtn )
296*b1cdbd2cSJim Jagielski 	{
297*b1cdbd2cSJim Jagielski 		RightModifyHdl(&aRightMF);
298*b1cdbd2cSJim Jagielski 		bLeftEnable = sal_True;
299*b1cdbd2cSJim Jagielski 		bWidthEnable = sal_True;
300*b1cdbd2cSJim Jagielski 		bOthers = sal_False;
301*b1cdbd2cSJim Jagielski 	}
302*b1cdbd2cSJim Jagielski 	aLeftMF.Enable(bLeftEnable);
303*b1cdbd2cSJim Jagielski 	aLeftFT.Enable(bLeftEnable);
304*b1cdbd2cSJim Jagielski 	aWidthMF.Enable(bWidthEnable);
305*b1cdbd2cSJim Jagielski 	aWidthFT.Enable(bWidthEnable);
306*b1cdbd2cSJim Jagielski 	if ( bOthers )
307*b1cdbd2cSJim Jagielski 	{
308*b1cdbd2cSJim Jagielski 		aRightMF.Enable(bRightEnable);
309*b1cdbd2cSJim Jagielski 		aRightFT.Enable(bRightEnable);
310*b1cdbd2cSJim Jagielski 		aRelWidthCB.Enable(bWidthEnable);
311*b1cdbd2cSJim Jagielski 	}
312*b1cdbd2cSJim Jagielski 
313*b1cdbd2cSJim Jagielski 	if(bFull && bRestore)
314*b1cdbd2cSJim Jagielski 	{
315*b1cdbd2cSJim Jagielski 		// nachdem auf autom. geschaltet wurde, wurde die Breite gemerkt,
316*b1cdbd2cSJim Jagielski 		// um sie beim Zurueckschalten restaurieren zu koennen
317*b1cdbd2cSJim Jagielski 		bFull = sal_False;
318*b1cdbd2cSJim Jagielski         aWidthMF.SetPrcntValue(aWidthMF.NormalizePercent(nSaveWidth ), FUNIT_TWIP );
319*b1cdbd2cSJim Jagielski 	}
320*b1cdbd2cSJim Jagielski 	ModifyHdl(&aWidthMF);
321*b1cdbd2cSJim Jagielski 	bModified = sal_True;
322*b1cdbd2cSJim Jagielski 	return 0;
323*b1cdbd2cSJim Jagielski }
324*b1cdbd2cSJim Jagielski 
325*b1cdbd2cSJim Jagielski /*----------------------------------------------------------------------*/
IMPL_LINK(SwFormatTablePage,RightModifyHdl,MetricField *,EMPTYARG)326*b1cdbd2cSJim Jagielski IMPL_LINK( SwFormatTablePage, RightModifyHdl, MetricField *, EMPTYARG )
327*b1cdbd2cSJim Jagielski {
328*b1cdbd2cSJim Jagielski 	if(aFreeBtn.IsChecked())
329*b1cdbd2cSJim Jagielski 	{
330*b1cdbd2cSJim Jagielski 		sal_Bool bEnable = aRightMF.GetValue() == 0;
331*b1cdbd2cSJim Jagielski //		aWidthMF.Enable(bEnable);
332*b1cdbd2cSJim Jagielski 		aRelWidthCB.Enable(bEnable);
333*b1cdbd2cSJim Jagielski //		aWidthFT.Enable(bEnable);
334*b1cdbd2cSJim Jagielski 		if ( !bEnable )
335*b1cdbd2cSJim Jagielski 		{
336*b1cdbd2cSJim Jagielski 			aRelWidthCB.Check(sal_False);
337*b1cdbd2cSJim Jagielski 			RelWidthClickHdl(&aRelWidthCB);
338*b1cdbd2cSJim Jagielski 		}
339*b1cdbd2cSJim Jagielski 		bEnable = aRelWidthCB.IsChecked();
340*b1cdbd2cSJim Jagielski 		aRightMF.Enable(!bEnable);
341*b1cdbd2cSJim Jagielski 		aRightFT.Enable(!bEnable);
342*b1cdbd2cSJim Jagielski 	}
343*b1cdbd2cSJim Jagielski 	return 0;
344*b1cdbd2cSJim Jagielski }
345*b1cdbd2cSJim Jagielski 
346*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
347*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
IMPL_LINK_INLINE_START(SwFormatTablePage,UpDownLoseFocusHdl,MetricField *,pEdit)348*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_START( SwFormatTablePage, UpDownLoseFocusHdl, MetricField *, pEdit )
349*b1cdbd2cSJim Jagielski {
350*b1cdbd2cSJim Jagielski     if( &aRightMF == pEdit)
351*b1cdbd2cSJim Jagielski         RightModifyHdl(pEdit);
352*b1cdbd2cSJim Jagielski     ModifyHdl( pEdit );
353*b1cdbd2cSJim Jagielski 	return 0;
354*b1cdbd2cSJim Jagielski }
IMPL_LINK_INLINE_END(SwFormatTablePage,UpDownLoseFocusHdl,MetricField *,pEdit)355*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_END( SwFormatTablePage, UpDownLoseFocusHdl, MetricField *, pEdit )
356*b1cdbd2cSJim Jagielski 
357*b1cdbd2cSJim Jagielski void  SwFormatTablePage::ModifyHdl( Edit* pEdit )
358*b1cdbd2cSJim Jagielski {
359*b1cdbd2cSJim Jagielski 
360*b1cdbd2cSJim Jagielski     SwTwips nCurWidth  = static_cast< SwTwips >(aWidthMF.DenormalizePercent(aWidthMF.GetValue( FUNIT_TWIP )));
361*b1cdbd2cSJim Jagielski 	SwTwips nPrevWidth = nCurWidth;
362*b1cdbd2cSJim Jagielski     SwTwips nRight = static_cast< SwTwips >(aRightMF.DenormalizePercent(aRightMF.GetValue( FUNIT_TWIP )));
363*b1cdbd2cSJim Jagielski     SwTwips nLeft  = static_cast< SwTwips >(aLeftMF.DenormalizePercent(aLeftMF.GetValue( FUNIT_TWIP )));
364*b1cdbd2cSJim Jagielski 	SwTwips nDiff;
365*b1cdbd2cSJim Jagielski 
366*b1cdbd2cSJim Jagielski 	if( pEdit == &aWidthMF )
367*b1cdbd2cSJim Jagielski 	{
368*b1cdbd2cSJim Jagielski 		if( nCurWidth < MINLAY )
369*b1cdbd2cSJim Jagielski 			nCurWidth = MINLAY;
370*b1cdbd2cSJim Jagielski 		nDiff = nRight + nLeft + nCurWidth - pTblData->GetSpace() ;
371*b1cdbd2cSJim Jagielski 		//rechtsbuendig nur linken Rand veraendern
372*b1cdbd2cSJim Jagielski 		if(aRightBtn.IsChecked())
373*b1cdbd2cSJim Jagielski 			nLeft -= nDiff;
374*b1cdbd2cSJim Jagielski 		//linksbuendig nur rechten Rand veraendern
375*b1cdbd2cSJim Jagielski 		else if(aLeftBtn.IsChecked())
376*b1cdbd2cSJim Jagielski 			nRight -= nDiff;
377*b1cdbd2cSJim Jagielski 		//linker Rand und Breite erlaubt - erst rechts - dann links
378*b1cdbd2cSJim Jagielski 		else if(aFromLeftBtn.IsChecked())
379*b1cdbd2cSJim Jagielski 		{
380*b1cdbd2cSJim Jagielski 			if( nRight >= nDiff )
381*b1cdbd2cSJim Jagielski 				nRight -= nDiff;
382*b1cdbd2cSJim Jagielski 			else
383*b1cdbd2cSJim Jagielski 			{
384*b1cdbd2cSJim Jagielski 				nDiff -= nRight;
385*b1cdbd2cSJim Jagielski 				nRight = 0;
386*b1cdbd2cSJim Jagielski 				if(nLeft >= nDiff)
387*b1cdbd2cSJim Jagielski 					nLeft -= nDiff;
388*b1cdbd2cSJim Jagielski 				else
389*b1cdbd2cSJim Jagielski 				{
390*b1cdbd2cSJim Jagielski 					nRight += nLeft - nDiff;
391*b1cdbd2cSJim Jagielski 					nLeft = 0;
392*b1cdbd2cSJim Jagielski 					nCurWidth = pTblData->GetSpace();
393*b1cdbd2cSJim Jagielski 				}
394*b1cdbd2cSJim Jagielski 
395*b1cdbd2cSJim Jagielski 			}
396*b1cdbd2cSJim Jagielski 		}
397*b1cdbd2cSJim Jagielski 		//zentriert beide Seiten gleichmaessig veraendern
398*b1cdbd2cSJim Jagielski 		else if(aCenterBtn.IsChecked())
399*b1cdbd2cSJim Jagielski 		{
400*b1cdbd2cSJim Jagielski 			if((nLeft != nRight))
401*b1cdbd2cSJim Jagielski 			{
402*b1cdbd2cSJim Jagielski 				nDiff += nLeft + nRight;
403*b1cdbd2cSJim Jagielski 				nLeft = nDiff/2;
404*b1cdbd2cSJim Jagielski 				nRight = nDiff/2;
405*b1cdbd2cSJim Jagielski 			}
406*b1cdbd2cSJim Jagielski 			else
407*b1cdbd2cSJim Jagielski 			{
408*b1cdbd2cSJim Jagielski 					nLeft -= nDiff/2;
409*b1cdbd2cSJim Jagielski 					nRight -= nDiff/2;
410*b1cdbd2cSJim Jagielski 			}
411*b1cdbd2cSJim Jagielski 		}
412*b1cdbd2cSJim Jagielski 		//freie Ausrichtung: beide Raender verkleinern
413*b1cdbd2cSJim Jagielski 		else if(aFreeBtn.IsChecked())
414*b1cdbd2cSJim Jagielski 		{
415*b1cdbd2cSJim Jagielski 			nLeft -= nDiff/2;
416*b1cdbd2cSJim Jagielski 			nRight -= nDiff/2;
417*b1cdbd2cSJim Jagielski 		}
418*b1cdbd2cSJim Jagielski 	}
419*b1cdbd2cSJim Jagielski 	if( pEdit == &aRightMF	)
420*b1cdbd2cSJim Jagielski 	{
421*b1cdbd2cSJim Jagielski 
422*b1cdbd2cSJim Jagielski 		if( nRight + nLeft > pTblData->GetSpace() - MINLAY )
423*b1cdbd2cSJim Jagielski 			nRight = pTblData->GetSpace() -nLeft - MINLAY;
424*b1cdbd2cSJim Jagielski 
425*b1cdbd2cSJim Jagielski 		nCurWidth = pTblData->GetSpace() - nLeft - nRight;
426*b1cdbd2cSJim Jagielski 	}
427*b1cdbd2cSJim Jagielski 	if( pEdit == &aLeftMF )
428*b1cdbd2cSJim Jagielski 	{
429*b1cdbd2cSJim Jagielski 		if(!aFromLeftBtn.IsChecked())
430*b1cdbd2cSJim Jagielski 		{
431*b1cdbd2cSJim Jagielski 			sal_Bool bCenter = aCenterBtn.IsChecked();
432*b1cdbd2cSJim Jagielski 			if( bCenter )
433*b1cdbd2cSJim Jagielski 				nRight = nLeft;
434*b1cdbd2cSJim Jagielski 			if(nRight + nLeft > pTblData->GetSpace() - MINLAY )
435*b1cdbd2cSJim Jagielski 			{
436*b1cdbd2cSJim Jagielski 				nLeft  = bCenter ? 	(pTblData->GetSpace() - MINLAY) /2 :
437*b1cdbd2cSJim Jagielski 									(pTblData->GetSpace() - MINLAY) - nRight;
438*b1cdbd2cSJim Jagielski 				nRight = bCenter ? 	(pTblData->GetSpace() - MINLAY) /2 : nRight;
439*b1cdbd2cSJim Jagielski 			}
440*b1cdbd2cSJim Jagielski 			nCurWidth = pTblData->GetSpace() - nLeft - nRight;
441*b1cdbd2cSJim Jagielski 		}
442*b1cdbd2cSJim Jagielski 		else
443*b1cdbd2cSJim Jagielski 		{
444*b1cdbd2cSJim Jagielski 			//hier wird bei Aenderung an der linken Seite zuerst der
445*b1cdbd2cSJim Jagielski 			//rechte Rand veraendert, dann die Breite
446*b1cdbd2cSJim Jagielski 			nDiff = nRight + nLeft + nCurWidth - pTblData->GetSpace() ;
447*b1cdbd2cSJim Jagielski 
448*b1cdbd2cSJim Jagielski 			nRight -= nDiff;
449*b1cdbd2cSJim Jagielski 			nCurWidth = pTblData->GetSpace() - nLeft - nRight;
450*b1cdbd2cSJim Jagielski 		}
451*b1cdbd2cSJim Jagielski 	}
452*b1cdbd2cSJim Jagielski 	if (nCurWidth != nPrevWidth )
453*b1cdbd2cSJim Jagielski         aWidthMF.SetPrcntValue( aWidthMF.NormalizePercent( nCurWidth ), FUNIT_TWIP );
454*b1cdbd2cSJim Jagielski     aRightMF.SetPrcntValue( aRightMF.NormalizePercent( nRight ), FUNIT_TWIP );
455*b1cdbd2cSJim Jagielski     aLeftMF.SetPrcntValue( aLeftMF.NormalizePercent( nLeft ), FUNIT_TWIP );
456*b1cdbd2cSJim Jagielski 	bModified = sal_True;
457*b1cdbd2cSJim Jagielski }
458*b1cdbd2cSJim Jagielski 
459*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
460*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
Create(Window * pParent,const SfxItemSet & rAttrSet)461*b1cdbd2cSJim Jagielski SfxTabPage*  SwFormatTablePage::Create( Window* pParent,
462*b1cdbd2cSJim Jagielski 								   const SfxItemSet& rAttrSet)
463*b1cdbd2cSJim Jagielski {
464*b1cdbd2cSJim Jagielski 	return new SwFormatTablePage( pParent, rAttrSet );
465*b1cdbd2cSJim Jagielski }
466*b1cdbd2cSJim Jagielski 
467*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
468*b1cdbd2cSJim Jagielski -------------------------------------------------------------------------*/
FillItemSet(SfxItemSet & rCoreSet)469*b1cdbd2cSJim Jagielski sal_Bool  SwFormatTablePage::FillItemSet( SfxItemSet& rCoreSet )
470*b1cdbd2cSJim Jagielski {
471*b1cdbd2cSJim Jagielski 	// Testen, ob eins der Control noch den Focus hat
472*b1cdbd2cSJim Jagielski 	if(aWidthMF.HasFocus())
473*b1cdbd2cSJim Jagielski 		ModifyHdl(&aWidthMF);
474*b1cdbd2cSJim Jagielski 	else if(aLeftMF.HasFocus())
475*b1cdbd2cSJim Jagielski 		ModifyHdl(&aLeftMF);
476*b1cdbd2cSJim Jagielski 	else if(aRightMF.HasFocus())
477*b1cdbd2cSJim Jagielski 		ModifyHdl(&aRightMF);
478*b1cdbd2cSJim Jagielski 	else if(aTopMF.HasFocus())
479*b1cdbd2cSJim Jagielski 		ModifyHdl(&aTopMF);
480*b1cdbd2cSJim Jagielski 	else if(aBottomMF.HasFocus())
481*b1cdbd2cSJim Jagielski 		ModifyHdl(&aBottomMF);
482*b1cdbd2cSJim Jagielski 
483*b1cdbd2cSJim Jagielski 	if(bModified)
484*b1cdbd2cSJim Jagielski 	{
485*b1cdbd2cSJim Jagielski 		if( aBottomMF.GetText() != aBottomMF.GetSavedValue() ||
486*b1cdbd2cSJim Jagielski 									aTopMF.GetText() != aTopMF.GetSavedValue() )
487*b1cdbd2cSJim Jagielski 		{
488*b1cdbd2cSJim Jagielski 			SvxULSpaceItem aULSpace(RES_UL_SPACE);
489*b1cdbd2cSJim Jagielski 			aULSpace.SetUpper( (sal_uInt16) aTopMF.Denormalize(
490*b1cdbd2cSJim Jagielski 										aTopMF.GetValue( FUNIT_TWIP )));
491*b1cdbd2cSJim Jagielski 			aULSpace.SetLower( (sal_uInt16) aBottomMF.Denormalize(
492*b1cdbd2cSJim Jagielski 										aBottomMF.GetValue( FUNIT_TWIP )));
493*b1cdbd2cSJim Jagielski 			rCoreSet.Put(aULSpace);
494*b1cdbd2cSJim Jagielski 		}
495*b1cdbd2cSJim Jagielski 
496*b1cdbd2cSJim Jagielski 	}
497*b1cdbd2cSJim Jagielski 	if(aNameED.GetText() != aNameED.GetSavedValue())
498*b1cdbd2cSJim Jagielski 	{
499*b1cdbd2cSJim Jagielski 		rCoreSet.Put(SfxStringItem(	FN_PARAM_TABLE_NAME, aNameED.GetText()));
500*b1cdbd2cSJim Jagielski 		bModified = sal_True;
501*b1cdbd2cSJim Jagielski 	}
502*b1cdbd2cSJim Jagielski 
503*b1cdbd2cSJim Jagielski     sal_uInt16 nPos;
504*b1cdbd2cSJim Jagielski     if( aTextDirectionLB.IsVisible() &&
505*b1cdbd2cSJim Jagielski         ( nPos = aTextDirectionLB.GetSelectEntryPos() ) !=
506*b1cdbd2cSJim Jagielski                                             aTextDirectionLB.GetSavedValue() )
507*b1cdbd2cSJim Jagielski 	{
508*b1cdbd2cSJim Jagielski         sal_uInt32 nDirection = (sal_uInt32)(sal_uIntPtr)aTextDirectionLB.GetEntryData( nPos );
509*b1cdbd2cSJim Jagielski         rCoreSet.Put( SvxFrameDirectionItem( (SvxFrameDirection)nDirection, RES_FRAMEDIR));
510*b1cdbd2cSJim Jagielski 		bModified = sal_True;
511*b1cdbd2cSJim Jagielski 	}
512*b1cdbd2cSJim Jagielski 
513*b1cdbd2cSJim Jagielski     return bModified;
514*b1cdbd2cSJim Jagielski }
515*b1cdbd2cSJim Jagielski 
516*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
517*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
Reset(const SfxItemSet &)518*b1cdbd2cSJim Jagielski void  SwFormatTablePage::Reset( const SfxItemSet& )
519*b1cdbd2cSJim Jagielski {
520*b1cdbd2cSJim Jagielski 	const SfxItemSet& rSet = GetItemSet();
521*b1cdbd2cSJim Jagielski 	const SfxPoolItem*	pItem;
522*b1cdbd2cSJim Jagielski 
523*b1cdbd2cSJim Jagielski     if(bHtmlMode)
524*b1cdbd2cSJim Jagielski 	{
525*b1cdbd2cSJim Jagielski 		aNameED	.Disable();
526*b1cdbd2cSJim Jagielski 		aTopFT	.Hide();
527*b1cdbd2cSJim Jagielski 		aTopMF	.Hide();
528*b1cdbd2cSJim Jagielski 		aBottomFT.Hide();
529*b1cdbd2cSJim Jagielski 		aBottomMF.Hide();
530*b1cdbd2cSJim Jagielski 		aFreeBtn.Enable(sal_False);
531*b1cdbd2cSJim Jagielski 	}
532*b1cdbd2cSJim Jagielski 	FieldUnit aMetric = ::GetDfltMetric(bHtmlMode);
533*b1cdbd2cSJim Jagielski 	SetMetric( aWidthMF, aMetric );
534*b1cdbd2cSJim Jagielski 	SetMetric( aRightMF, aMetric );
535*b1cdbd2cSJim Jagielski 	SetMetric( aLeftMF, aMetric );
536*b1cdbd2cSJim Jagielski 	SetMetric( aTopMF, aMetric );
537*b1cdbd2cSJim Jagielski 	SetMetric( aBottomMF, aMetric );
538*b1cdbd2cSJim Jagielski 
539*b1cdbd2cSJim Jagielski 	//Name
540*b1cdbd2cSJim Jagielski 	if(SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_TABLE_NAME, sal_False, &pItem ))
541*b1cdbd2cSJim Jagielski 	{
542*b1cdbd2cSJim Jagielski 		aNameED.SetText(((const SfxStringItem*)pItem)->GetValue());
543*b1cdbd2cSJim Jagielski 		aNameED.SaveValue();
544*b1cdbd2cSJim Jagielski 	}
545*b1cdbd2cSJim Jagielski 
546*b1cdbd2cSJim Jagielski 	if(SFX_ITEM_SET == rSet.GetItemState( FN_TABLE_REP, sal_False, &pItem ))
547*b1cdbd2cSJim Jagielski 	{
548*b1cdbd2cSJim Jagielski 		pTblData = (SwTableRep*)((const SwPtrItem*) pItem)->GetValue();
549*b1cdbd2cSJim Jagielski 		nMinTableWidth = pTblData->GetColCount() * MINLAY;
550*b1cdbd2cSJim Jagielski 
551*b1cdbd2cSJim Jagielski 		if(pTblData->GetWidthPercent())
552*b1cdbd2cSJim Jagielski 		{
553*b1cdbd2cSJim Jagielski 			aRelWidthCB.Check(sal_True);
554*b1cdbd2cSJim Jagielski 			RelWidthClickHdl(&aRelWidthCB);
555*b1cdbd2cSJim Jagielski             aWidthMF.SetPrcntValue(pTblData->GetWidthPercent(), FUNIT_CUSTOM);
556*b1cdbd2cSJim Jagielski 
557*b1cdbd2cSJim Jagielski 			aWidthMF.SaveValue();
558*b1cdbd2cSJim Jagielski             nSaveWidth = static_cast< SwTwips >(aWidthMF.GetValue(FUNIT_CUSTOM));
559*b1cdbd2cSJim Jagielski 		}
560*b1cdbd2cSJim Jagielski 		else
561*b1cdbd2cSJim Jagielski 		{
562*b1cdbd2cSJim Jagielski             aWidthMF.SetPrcntValue(aWidthMF.NormalizePercent(
563*b1cdbd2cSJim Jagielski 					pTblData->GetWidth()), FUNIT_TWIP);
564*b1cdbd2cSJim Jagielski 			aWidthMF.SaveValue();
565*b1cdbd2cSJim Jagielski 			nSaveWidth = pTblData->GetWidth();
566*b1cdbd2cSJim Jagielski 			nMinTableWidth = Min( nSaveWidth, nMinTableWidth );
567*b1cdbd2cSJim Jagielski 		}
568*b1cdbd2cSJim Jagielski 
569*b1cdbd2cSJim Jagielski 		aWidthMF.SetRefValue(pTblData->GetSpace());
570*b1cdbd2cSJim Jagielski 		aWidthMF.SetLast(aWidthMF.NormalizePercent( pTblData->GetSpace() ));
571*b1cdbd2cSJim Jagielski 		aLeftMF.SetLast(aLeftMF.NormalizePercent( pTblData->GetSpace() ));
572*b1cdbd2cSJim Jagielski 		aRightMF.SetLast(aRightMF.NormalizePercent( pTblData->GetSpace() ));
573*b1cdbd2cSJim Jagielski 
574*b1cdbd2cSJim Jagielski         aLeftMF.SetPrcntValue(aLeftMF.NormalizePercent(
575*b1cdbd2cSJim Jagielski 					pTblData->GetLeftSpace()), FUNIT_TWIP);
576*b1cdbd2cSJim Jagielski         aRightMF.SetPrcntValue(aRightMF.NormalizePercent(
577*b1cdbd2cSJim Jagielski 					pTblData->GetRightSpace()), FUNIT_TWIP);
578*b1cdbd2cSJim Jagielski 		aLeftMF.SaveValue();
579*b1cdbd2cSJim Jagielski 		aRightMF.SaveValue();
580*b1cdbd2cSJim Jagielski 
581*b1cdbd2cSJim Jagielski 		nOldAlign = pTblData->GetAlign();
582*b1cdbd2cSJim Jagielski 
583*b1cdbd2cSJim Jagielski 		sal_Bool bSetRight = sal_False, bRightEnable = sal_False,
584*b1cdbd2cSJim Jagielski 			 bSetLeft  = sal_False, bLeftEnable  = sal_False;
585*b1cdbd2cSJim Jagielski 		switch( nOldAlign )
586*b1cdbd2cSJim Jagielski 		{
587*b1cdbd2cSJim Jagielski             case text::HoriOrientation::NONE:
588*b1cdbd2cSJim Jagielski 				aFreeBtn.Check();
589*b1cdbd2cSJim Jagielski 				if(aRelWidthCB.IsChecked())
590*b1cdbd2cSJim Jagielski 					bSetRight = sal_True;
591*b1cdbd2cSJim Jagielski 			break;
592*b1cdbd2cSJim Jagielski             case text::HoriOrientation::FULL:
593*b1cdbd2cSJim Jagielski 			{
594*b1cdbd2cSJim Jagielski 				bSetRight = bSetLeft = sal_True;
595*b1cdbd2cSJim Jagielski 				aFullBtn.Check();
596*b1cdbd2cSJim Jagielski 				aWidthMF.Enable(sal_False);
597*b1cdbd2cSJim Jagielski 				aRelWidthCB.Enable(sal_False);
598*b1cdbd2cSJim Jagielski 				aWidthFT.Enable(sal_False);
599*b1cdbd2cSJim Jagielski 			}
600*b1cdbd2cSJim Jagielski 			break;
601*b1cdbd2cSJim Jagielski             case text::HoriOrientation::LEFT:
602*b1cdbd2cSJim Jagielski 			{
603*b1cdbd2cSJim Jagielski 				bSetLeft = sal_True;
604*b1cdbd2cSJim Jagielski 				aLeftBtn.Check();
605*b1cdbd2cSJim Jagielski 			}
606*b1cdbd2cSJim Jagielski 			break;
607*b1cdbd2cSJim Jagielski             case text::HoriOrientation::LEFT_AND_WIDTH :
608*b1cdbd2cSJim Jagielski 			{
609*b1cdbd2cSJim Jagielski 				bSetRight = sal_True;
610*b1cdbd2cSJim Jagielski 				aFromLeftBtn.Check();
611*b1cdbd2cSJim Jagielski 			}
612*b1cdbd2cSJim Jagielski 			break;
613*b1cdbd2cSJim Jagielski             case text::HoriOrientation::RIGHT:
614*b1cdbd2cSJim Jagielski 			{
615*b1cdbd2cSJim Jagielski 				bSetRight = sal_True;
616*b1cdbd2cSJim Jagielski 				aRightBtn.Check();
617*b1cdbd2cSJim Jagielski 			}
618*b1cdbd2cSJim Jagielski 			break;
619*b1cdbd2cSJim Jagielski             case text::HoriOrientation::CENTER:
620*b1cdbd2cSJim Jagielski 			{
621*b1cdbd2cSJim Jagielski 				bSetRight = sal_True;
622*b1cdbd2cSJim Jagielski 				aCenterBtn.Check();
623*b1cdbd2cSJim Jagielski 			}
624*b1cdbd2cSJim Jagielski 			break;
625*b1cdbd2cSJim Jagielski 		}
626*b1cdbd2cSJim Jagielski 		if ( bSetRight )
627*b1cdbd2cSJim Jagielski 		{
628*b1cdbd2cSJim Jagielski 			aRightMF.Enable(bRightEnable);
629*b1cdbd2cSJim Jagielski 			aRightFT.Enable(bRightEnable);
630*b1cdbd2cSJim Jagielski 		}
631*b1cdbd2cSJim Jagielski 		if ( bSetLeft )
632*b1cdbd2cSJim Jagielski 		{
633*b1cdbd2cSJim Jagielski 			aLeftMF.Enable(bLeftEnable);
634*b1cdbd2cSJim Jagielski 			aLeftFT.Enable(bLeftEnable);
635*b1cdbd2cSJim Jagielski 		}
636*b1cdbd2cSJim Jagielski 
637*b1cdbd2cSJim Jagielski 	}
638*b1cdbd2cSJim Jagielski 
639*b1cdbd2cSJim Jagielski 	//Raender
640*b1cdbd2cSJim Jagielski 	if(SFX_ITEM_SET == rSet.GetItemState( RES_UL_SPACE, sal_False,&pItem ))
641*b1cdbd2cSJim Jagielski 	{
642*b1cdbd2cSJim Jagielski 		aTopMF.SetValue(aTopMF.Normalize(
643*b1cdbd2cSJim Jagielski 						((const SvxULSpaceItem*)pItem)->GetUpper()), FUNIT_TWIP);
644*b1cdbd2cSJim Jagielski 		aBottomMF.SetValue(aBottomMF.Normalize(
645*b1cdbd2cSJim Jagielski 						((const SvxULSpaceItem*)pItem)->GetLower()), FUNIT_TWIP);
646*b1cdbd2cSJim Jagielski 		aTopMF.SaveValue();
647*b1cdbd2cSJim Jagielski 		aBottomMF.SaveValue();
648*b1cdbd2cSJim Jagielski 	}
649*b1cdbd2cSJim Jagielski 
650*b1cdbd2cSJim Jagielski     //text direction
651*b1cdbd2cSJim Jagielski     if( SFX_ITEM_SET == rSet.GetItemState( RES_FRAMEDIR, sal_True, &pItem ) )
652*b1cdbd2cSJim Jagielski 	{
653*b1cdbd2cSJim Jagielski         sal_uInt32 nVal  = ((SvxFrameDirectionItem*)pItem)->GetValue();
654*b1cdbd2cSJim Jagielski         sal_uInt16 nPos = aTextDirectionLB.GetEntryPos( (void*) nVal );
655*b1cdbd2cSJim Jagielski         aTextDirectionLB.SelectEntryPos( nPos );
656*b1cdbd2cSJim Jagielski         aTextDirectionLB.SaveValue();
657*b1cdbd2cSJim Jagielski 	}
658*b1cdbd2cSJim Jagielski 
659*b1cdbd2cSJim Jagielski     aWidthMF.SetMax( 2*aWidthMF.NormalizePercent( pTblData->GetSpace() ), FUNIT_TWIP );
660*b1cdbd2cSJim Jagielski 	aRightMF.SetMax( aRightMF.NormalizePercent( pTblData->GetSpace() ), FUNIT_TWIP );
661*b1cdbd2cSJim Jagielski 	aLeftMF.SetMax( aLeftMF.NormalizePercent( pTblData->GetSpace() ), FUNIT_TWIP );
662*b1cdbd2cSJim Jagielski 	aWidthMF.SetMin( aWidthMF.NormalizePercent( nMinTableWidth ), FUNIT_TWIP );
663*b1cdbd2cSJim Jagielski 
664*b1cdbd2cSJim Jagielski }
665*b1cdbd2cSJim Jagielski 
666*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
667*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
ActivatePage(const SfxItemSet & rSet)668*b1cdbd2cSJim Jagielski void  	SwFormatTablePage::ActivatePage( const SfxItemSet& rSet )
669*b1cdbd2cSJim Jagielski {
670*b1cdbd2cSJim Jagielski 	DBG_ASSERT(pTblData, "Tabellendaten nicht da?");
671*b1cdbd2cSJim Jagielski 	if(SFX_ITEM_SET == rSet.GetItemState( FN_TABLE_REP ))
672*b1cdbd2cSJim Jagielski 	{
673*b1cdbd2cSJim Jagielski         SwTwips nCurWidth = text::HoriOrientation::FULL != pTblData->GetAlign() ?
674*b1cdbd2cSJim Jagielski 										pTblData->GetWidth() :
675*b1cdbd2cSJim Jagielski 											pTblData->GetSpace();
676*b1cdbd2cSJim Jagielski 		if(pTblData->GetWidthPercent() == 0 &&
677*b1cdbd2cSJim Jagielski 				nCurWidth != aWidthMF.DenormalizePercent(aWidthMF.GetValue(FUNIT_TWIP )))
678*b1cdbd2cSJim Jagielski 		{
679*b1cdbd2cSJim Jagielski             aWidthMF.SetPrcntValue(aWidthMF.NormalizePercent(
680*b1cdbd2cSJim Jagielski 							nCurWidth), FUNIT_TWIP);
681*b1cdbd2cSJim Jagielski 			aWidthMF.SaveValue();
682*b1cdbd2cSJim Jagielski 			nSaveWidth = nCurWidth;
683*b1cdbd2cSJim Jagielski             aLeftMF.SetPrcntValue(aLeftMF.NormalizePercent(
684*b1cdbd2cSJim Jagielski 							pTblData->GetLeftSpace()), FUNIT_TWIP);
685*b1cdbd2cSJim Jagielski 			aLeftMF.SaveValue();
686*b1cdbd2cSJim Jagielski             aRightMF.SetPrcntValue(aRightMF.NormalizePercent(
687*b1cdbd2cSJim Jagielski 							pTblData->GetRightSpace()), FUNIT_TWIP);
688*b1cdbd2cSJim Jagielski 			aRightMF.SaveValue();
689*b1cdbd2cSJim Jagielski 		}
690*b1cdbd2cSJim Jagielski 	}
691*b1cdbd2cSJim Jagielski 
692*b1cdbd2cSJim Jagielski }
693*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
694*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
DeactivatePage(SfxItemSet * _pSet)695*b1cdbd2cSJim Jagielski int  SwFormatTablePage::DeactivatePage( SfxItemSet* _pSet )
696*b1cdbd2cSJim Jagielski {
697*b1cdbd2cSJim Jagielski 	// os: VCL sorgt nicht dafuer, dass das aktive Control im
698*b1cdbd2cSJim Jagielski 	// dialog bei OK den focus verliert
699*b1cdbd2cSJim Jagielski 	aNameED.GrabFocus();
700*b1cdbd2cSJim Jagielski 	// Test des Tabellennamens auf Leerzeichen
701*b1cdbd2cSJim Jagielski 	String sTblName = aNameED.GetText();
702*b1cdbd2cSJim Jagielski 	if(sTblName.Search(' ') != STRING_NOTFOUND)
703*b1cdbd2cSJim Jagielski 	{
704*b1cdbd2cSJim Jagielski 		InfoBox(this, SW_RES(MSG_WRONG_TABLENAME)).Execute();
705*b1cdbd2cSJim Jagielski 		aNameED.GrabFocus();
706*b1cdbd2cSJim Jagielski 		return KEEP_PAGE;
707*b1cdbd2cSJim Jagielski 	}
708*b1cdbd2cSJim Jagielski     if(_pSet)
709*b1cdbd2cSJim Jagielski 	{
710*b1cdbd2cSJim Jagielski         FillItemSet(*_pSet);
711*b1cdbd2cSJim Jagielski 		if(bModified)
712*b1cdbd2cSJim Jagielski 		{
713*b1cdbd2cSJim Jagielski             SwTwips lLeft  = static_cast< SwTwips >(aLeftMF.DenormalizePercent(aLeftMF.GetValue( FUNIT_TWIP )));
714*b1cdbd2cSJim Jagielski             SwTwips lRight = static_cast< SwTwips >(aRightMF.DenormalizePercent(aRightMF.GetValue( FUNIT_TWIP )));
715*b1cdbd2cSJim Jagielski 
716*b1cdbd2cSJim Jagielski 
717*b1cdbd2cSJim Jagielski 			if( aLeftMF.GetText() != aLeftMF.GetSavedValue() ||
718*b1cdbd2cSJim Jagielski 									aRightMF.GetText() != aRightMF.GetSavedValue() )
719*b1cdbd2cSJim Jagielski 			{
720*b1cdbd2cSJim Jagielski 				pTblData->SetWidthChanged();
721*b1cdbd2cSJim Jagielski 				pTblData->SetLeftSpace( lLeft);
722*b1cdbd2cSJim Jagielski 				pTblData->SetRightSpace( lRight);
723*b1cdbd2cSJim Jagielski 			}
724*b1cdbd2cSJim Jagielski 
725*b1cdbd2cSJim Jagielski 			SwTwips lWidth;
726*b1cdbd2cSJim Jagielski 			if (aRelWidthCB.IsChecked() && aRelWidthCB.IsEnabled())
727*b1cdbd2cSJim Jagielski 			{
728*b1cdbd2cSJim Jagielski 				lWidth = pTblData->GetSpace() - lRight - lLeft;
729*b1cdbd2cSJim Jagielski 				sal_uInt16 nPercentWidth = (sal_uInt16)aWidthMF.GetValue(FUNIT_CUSTOM);
730*b1cdbd2cSJim Jagielski 				if(pTblData->GetWidthPercent() != nPercentWidth)
731*b1cdbd2cSJim Jagielski 				{
732*b1cdbd2cSJim Jagielski 					pTblData->SetWidthPercent(nPercentWidth);
733*b1cdbd2cSJim Jagielski 					pTblData->SetWidthChanged();
734*b1cdbd2cSJim Jagielski 				}
735*b1cdbd2cSJim Jagielski 			}
736*b1cdbd2cSJim Jagielski 			else
737*b1cdbd2cSJim Jagielski 			{
738*b1cdbd2cSJim Jagielski 				pTblData->SetWidthPercent(0);
739*b1cdbd2cSJim Jagielski                 lWidth = static_cast< SwTwips >(aWidthMF.DenormalizePercent(aWidthMF.GetValue( FUNIT_TWIP )));
740*b1cdbd2cSJim Jagielski 			}
741*b1cdbd2cSJim Jagielski 			pTblData->SetWidth(lWidth);
742*b1cdbd2cSJim Jagielski 
743*b1cdbd2cSJim Jagielski 			SwTwips nColSum = 0;
744*b1cdbd2cSJim Jagielski 			sal_uInt16 i;
745*b1cdbd2cSJim Jagielski 
746*b1cdbd2cSJim Jagielski 			for( i = 0; i < pTblData->GetColCount(); i++)
747*b1cdbd2cSJim Jagielski 			{
748*b1cdbd2cSJim Jagielski 				nColSum += pTblData->GetColumns()[i].nWidth;
749*b1cdbd2cSJim Jagielski 			}
750*b1cdbd2cSJim Jagielski 			if(nColSum != pTblData->GetWidth())
751*b1cdbd2cSJim Jagielski 			{
752*b1cdbd2cSJim Jagielski 				SwTwips nMinWidth = Min( (long)MINLAY,
753*b1cdbd2cSJim Jagielski 									(long) (pTblData->GetWidth() /
754*b1cdbd2cSJim Jagielski 											pTblData->GetColCount() - 1));
755*b1cdbd2cSJim Jagielski 				SwTwips nDiff = nColSum - pTblData->GetWidth();
756*b1cdbd2cSJim Jagielski 				while ( Abs(nDiff) > pTblData->GetColCount() + 1 )
757*b1cdbd2cSJim Jagielski 				{
758*b1cdbd2cSJim Jagielski 					SwTwips nSub = nDiff / pTblData->GetColCount();
759*b1cdbd2cSJim Jagielski 					for( i = 0; i < pTblData->GetColCount(); i++)
760*b1cdbd2cSJim Jagielski 					{
761*b1cdbd2cSJim Jagielski 						if(pTblData->GetColumns()[i].nWidth - nMinWidth > nSub)
762*b1cdbd2cSJim Jagielski 						{
763*b1cdbd2cSJim Jagielski 							pTblData->GetColumns()[i].nWidth -= nSub;
764*b1cdbd2cSJim Jagielski 							nDiff -= nSub;
765*b1cdbd2cSJim Jagielski 						}
766*b1cdbd2cSJim Jagielski 						else
767*b1cdbd2cSJim Jagielski 						{
768*b1cdbd2cSJim Jagielski 							nDiff -= pTblData->GetColumns()[i].nWidth - nMinWidth;
769*b1cdbd2cSJim Jagielski 							pTblData->GetColumns()[i].nWidth = nMinWidth;
770*b1cdbd2cSJim Jagielski 						}
771*b1cdbd2cSJim Jagielski 
772*b1cdbd2cSJim Jagielski 					}
773*b1cdbd2cSJim Jagielski 				}
774*b1cdbd2cSJim Jagielski 			}
775*b1cdbd2cSJim Jagielski 
776*b1cdbd2cSJim Jagielski             sal_Int16 nAlign = 0;
777*b1cdbd2cSJim Jagielski 			if(aRightBtn.IsChecked())
778*b1cdbd2cSJim Jagielski                 nAlign = text::HoriOrientation::RIGHT;
779*b1cdbd2cSJim Jagielski 			else if(aLeftBtn.IsChecked())
780*b1cdbd2cSJim Jagielski                 nAlign = text::HoriOrientation::LEFT;
781*b1cdbd2cSJim Jagielski 			else if(aFromLeftBtn.IsChecked())
782*b1cdbd2cSJim Jagielski                 nAlign = text::HoriOrientation::LEFT_AND_WIDTH;
783*b1cdbd2cSJim Jagielski 			else if(aCenterBtn.IsChecked())
784*b1cdbd2cSJim Jagielski                 nAlign = text::HoriOrientation::CENTER;
785*b1cdbd2cSJim Jagielski 			else if(aFreeBtn.IsChecked())
786*b1cdbd2cSJim Jagielski                 nAlign = text::HoriOrientation::NONE;
787*b1cdbd2cSJim Jagielski 			else if(aFullBtn.IsChecked())
788*b1cdbd2cSJim Jagielski 			{
789*b1cdbd2cSJim Jagielski                 nAlign = text::HoriOrientation::FULL;
790*b1cdbd2cSJim Jagielski 				lWidth = lAutoWidth;
791*b1cdbd2cSJim Jagielski 			}
792*b1cdbd2cSJim Jagielski 			if(nAlign != pTblData->GetAlign())
793*b1cdbd2cSJim Jagielski 			{
794*b1cdbd2cSJim Jagielski 				pTblData->SetWidthChanged();
795*b1cdbd2cSJim Jagielski 				pTblData->SetAlign(nAlign);
796*b1cdbd2cSJim Jagielski 			}
797*b1cdbd2cSJim Jagielski 
798*b1cdbd2cSJim Jagielski 
799*b1cdbd2cSJim Jagielski     //      if(  text::HoriOrientation::CENTER && lWidth != (SwTwips)aWidthMF.GetSavedValue())
800*b1cdbd2cSJim Jagielski 			if(pTblData->GetWidth() != lWidth )
801*b1cdbd2cSJim Jagielski 			{
802*b1cdbd2cSJim Jagielski 				pTblData->SetWidthChanged();
803*b1cdbd2cSJim Jagielski 				pTblData->SetWidth(
804*b1cdbd2cSJim Jagielski                     nAlign == text::HoriOrientation::FULL ? pTblData->GetSpace() : lWidth );
805*b1cdbd2cSJim Jagielski 			}
806*b1cdbd2cSJim Jagielski 			if(pTblData->HasWidthChanged())
807*b1cdbd2cSJim Jagielski                 _pSet->Put(SwPtrItem(FN_TABLE_REP, pTblData));
808*b1cdbd2cSJim Jagielski 		}
809*b1cdbd2cSJim Jagielski #ifdef DEBUG_TBLDLG
810*b1cdbd2cSJim Jagielski DbgTblRep(pTblData)
811*b1cdbd2cSJim Jagielski #endif
812*b1cdbd2cSJim Jagielski 	}
813*b1cdbd2cSJim Jagielski 	return sal_True;
814*b1cdbd2cSJim Jagielski }
815*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
816*b1cdbd2cSJim Jagielski 	Beschreibung: Seite Spaltenkonfiguration
817*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
SwTableColumnPage(Window * pParent,const SfxItemSet & rSet)818*b1cdbd2cSJim Jagielski SwTableColumnPage::SwTableColumnPage( Window* pParent,
819*b1cdbd2cSJim Jagielski 			const SfxItemSet& rSet ) :
820*b1cdbd2cSJim Jagielski 	SfxTabPage(pParent, SW_RES( TP_TABLE_COLUMN ), rSet ),
821*b1cdbd2cSJim Jagielski 	aModifyTableCB(this,	SW_RES(CB_MOD_TBL)),
822*b1cdbd2cSJim Jagielski 	aProportionalCB(this,	SW_RES(CB_PROP)),
823*b1cdbd2cSJim Jagielski 	aSpaceFT(this,			SW_RES(FT_SPACE)),
824*b1cdbd2cSJim Jagielski 	aSpaceED(this,			SW_RES(ED_SPACE)),
825*b1cdbd2cSJim Jagielski 
826*b1cdbd2cSJim Jagielski     aColFL(this,            SW_RES(COL_FL_LAYOUT)),
827*b1cdbd2cSJim Jagielski     aUpBtn(this,            SW_RES(COL_BTN_UP)),
828*b1cdbd2cSJim Jagielski     aFT1(this,              SW_RES(COL_FT_1)),
829*b1cdbd2cSJim Jagielski 	aMF1(this,				SW_RES(COL_MF_1)),
830*b1cdbd2cSJim Jagielski 	aFT2(this,				SW_RES(COL_FT_2)),
831*b1cdbd2cSJim Jagielski 	aMF2(this,				SW_RES(COL_MF_2)),
832*b1cdbd2cSJim Jagielski 	aFT3(this,				SW_RES(COL_FT_3)),
833*b1cdbd2cSJim Jagielski 	aMF3(this,				SW_RES(COL_MF_3)),
834*b1cdbd2cSJim Jagielski 	aFT4(this,				SW_RES(COL_FT_4)),
835*b1cdbd2cSJim Jagielski 	aMF4(this,				SW_RES(COL_MF_4)),
836*b1cdbd2cSJim Jagielski 	aFT5(this,				SW_RES(COL_FT_5)),
837*b1cdbd2cSJim Jagielski 	aMF5(this,				SW_RES(COL_MF_5)),
838*b1cdbd2cSJim Jagielski 	aFT6(this,				SW_RES(COL_FT_6)),
839*b1cdbd2cSJim Jagielski 	aMF6(this,				SW_RES(COL_MF_6)),
840*b1cdbd2cSJim Jagielski     aDownBtn(this,          SW_RES(COL_BTN_DOWN)),
841*b1cdbd2cSJim Jagielski 
842*b1cdbd2cSJim Jagielski     nTableWidth(0),
843*b1cdbd2cSJim Jagielski     nMinWidth( MINLAY ),
844*b1cdbd2cSJim Jagielski     nNoOfCols( 0 ),
845*b1cdbd2cSJim Jagielski 	nNoOfVisibleCols( 0 ),
846*b1cdbd2cSJim Jagielski 	bModified(sal_False),
847*b1cdbd2cSJim Jagielski 	bModifyTbl(sal_False),
848*b1cdbd2cSJim Jagielski     bPercentMode(sal_False)
849*b1cdbd2cSJim Jagielski {
850*b1cdbd2cSJim Jagielski 	FreeResource();
851*b1cdbd2cSJim Jagielski 	SetExchangeSupport();
852*b1cdbd2cSJim Jagielski 
853*b1cdbd2cSJim Jagielski 	aDownBtn.SetAccessibleRelationMemberOf(&aColFL);
854*b1cdbd2cSJim Jagielski 	aUpBtn.SetAccessibleRelationMemberOf(&aColFL);
855*b1cdbd2cSJim Jagielski 
856*b1cdbd2cSJim Jagielski 	pFieldArr[0] = &aMF1;
857*b1cdbd2cSJim Jagielski 	pFieldArr[1] = &aMF2;
858*b1cdbd2cSJim Jagielski 	pFieldArr[2] = &aMF3;
859*b1cdbd2cSJim Jagielski 	pFieldArr[3] = &aMF4;
860*b1cdbd2cSJim Jagielski 	pFieldArr[4] = &aMF5;
861*b1cdbd2cSJim Jagielski 	pFieldArr[5] = &aMF6;
862*b1cdbd2cSJim Jagielski 
863*b1cdbd2cSJim Jagielski 	pTextArr[0] = &aFT1;
864*b1cdbd2cSJim Jagielski 	pTextArr[1] = &aFT2;
865*b1cdbd2cSJim Jagielski 	pTextArr[2] = &aFT3;
866*b1cdbd2cSJim Jagielski 	pTextArr[3] = &aFT4;
867*b1cdbd2cSJim Jagielski 	pTextArr[4] = &aFT5;
868*b1cdbd2cSJim Jagielski 	pTextArr[5] = &aFT6;
869*b1cdbd2cSJim Jagielski 
870*b1cdbd2cSJim Jagielski 	const SfxPoolItem* pItem;
871*b1cdbd2cSJim Jagielski 	Init((SFX_ITEM_SET == rSet.GetItemState( SID_HTML_MODE, sal_False,&pItem )
872*b1cdbd2cSJim Jagielski 		&& ((const SfxUInt16Item*)pItem)->GetValue() & HTMLMODE_ON));
873*b1cdbd2cSJim Jagielski 
874*b1cdbd2cSJim Jagielski };
875*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
876*b1cdbd2cSJim Jagielski 	Beschreibung: Seite Spaltenkonfiguration
877*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
~SwTableColumnPage()878*b1cdbd2cSJim Jagielski  SwTableColumnPage::~SwTableColumnPage()
879*b1cdbd2cSJim Jagielski {
880*b1cdbd2cSJim Jagielski };
881*b1cdbd2cSJim Jagielski 
882*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
883*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
Create(Window * pParent,const SfxItemSet & rAttrSet)884*b1cdbd2cSJim Jagielski SfxTabPage*   SwTableColumnPage::Create( Window* pParent,
885*b1cdbd2cSJim Jagielski 								const SfxItemSet& rAttrSet)
886*b1cdbd2cSJim Jagielski {
887*b1cdbd2cSJim Jagielski 	return new SwTableColumnPage( pParent, rAttrSet );
888*b1cdbd2cSJim Jagielski };
889*b1cdbd2cSJim Jagielski 
890*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
891*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
Reset(const SfxItemSet &)892*b1cdbd2cSJim Jagielski void  SwTableColumnPage::Reset( const SfxItemSet& )
893*b1cdbd2cSJim Jagielski {
894*b1cdbd2cSJim Jagielski 	const SfxItemSet& rSet = GetItemSet();
895*b1cdbd2cSJim Jagielski 
896*b1cdbd2cSJim Jagielski 	const SfxPoolItem* pItem;
897*b1cdbd2cSJim Jagielski 	if(SFX_ITEM_SET == rSet.GetItemState( FN_TABLE_REP, sal_False, &pItem ))
898*b1cdbd2cSJim Jagielski 	{
899*b1cdbd2cSJim Jagielski 		pTblData = (SwTableRep*)((const SwPtrItem*) pItem)->GetValue();
900*b1cdbd2cSJim Jagielski 		nNoOfVisibleCols = pTblData->GetColCount();
901*b1cdbd2cSJim Jagielski 		nNoOfCols = pTblData->GetAllColCount();
902*b1cdbd2cSJim Jagielski         nTableWidth = pTblData->GetAlign() != text::HoriOrientation::FULL &&
903*b1cdbd2cSJim Jagielski                             pTblData->GetAlign() != text::HoriOrientation::LEFT_AND_WIDTH?
904*b1cdbd2cSJim Jagielski 						pTblData->GetWidth() : pTblData->GetSpace();
905*b1cdbd2cSJim Jagielski 
906*b1cdbd2cSJim Jagielski 		sal_uInt16 i;
907*b1cdbd2cSJim Jagielski 		for( i = 0; i < nNoOfCols; i++ )
908*b1cdbd2cSJim Jagielski 		{
909*b1cdbd2cSJim Jagielski 			if( pTblData->GetColumns()[i].nWidth  < nMinWidth )
910*b1cdbd2cSJim Jagielski 					nMinWidth = pTblData->GetColumns()[i].nWidth;
911*b1cdbd2cSJim Jagielski 		}
912*b1cdbd2cSJim Jagielski         sal_Int64 nMinTwips = pFieldArr[0]->NormalizePercent( nMinWidth );
913*b1cdbd2cSJim Jagielski         sal_Int64 nMaxTwips = pFieldArr[0]->NormalizePercent( nTableWidth );
914*b1cdbd2cSJim Jagielski 		for( i = 0; (i < MET_FIELDS) && (i < nNoOfVisibleCols); i++ )
915*b1cdbd2cSJim Jagielski 		{
916*b1cdbd2cSJim Jagielski             pFieldArr[i]->SetPrcntValue( pFieldArr[i]->NormalizePercent(
917*b1cdbd2cSJim Jagielski 												GetVisibleWidth(i) ), FUNIT_TWIP );
918*b1cdbd2cSJim Jagielski 			pFieldArr[i]->SetMin( nMinTwips , FUNIT_TWIP );
919*b1cdbd2cSJim Jagielski 			pFieldArr[i]->SetMax( nMaxTwips , FUNIT_TWIP );
920*b1cdbd2cSJim Jagielski 			pFieldArr[i]->Enable();
921*b1cdbd2cSJim Jagielski 			pTextArr[i]->Enable();
922*b1cdbd2cSJim Jagielski 		}
923*b1cdbd2cSJim Jagielski 
924*b1cdbd2cSJim Jagielski 		if( nNoOfVisibleCols > MET_FIELDS )
925*b1cdbd2cSJim Jagielski 			aUpBtn.Enable();
926*b1cdbd2cSJim Jagielski 		i = nNoOfVisibleCols;
927*b1cdbd2cSJim Jagielski 		while( i < MET_FIELDS )
928*b1cdbd2cSJim Jagielski 		{
929*b1cdbd2cSJim Jagielski 			pFieldArr[i]->SetText( aEmptyStr );
930*b1cdbd2cSJim Jagielski 			pTextArr[i]->Hide();
931*b1cdbd2cSJim Jagielski 			i++;
932*b1cdbd2cSJim Jagielski 		}
933*b1cdbd2cSJim Jagielski 	}
934*b1cdbd2cSJim Jagielski 	ActivatePage(rSet);
935*b1cdbd2cSJim Jagielski 
936*b1cdbd2cSJim Jagielski };
937*b1cdbd2cSJim Jagielski 
938*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
939*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
Init(sal_Bool bWeb)940*b1cdbd2cSJim Jagielski void  SwTableColumnPage::Init(sal_Bool bWeb)
941*b1cdbd2cSJim Jagielski {
942*b1cdbd2cSJim Jagielski 	FieldUnit aMetric = ::GetDfltMetric(bWeb);
943*b1cdbd2cSJim Jagielski 	Link aLkUp = LINK( this, SwTableColumnPage, UpHdl );
944*b1cdbd2cSJim Jagielski 	Link aLkDown = LINK( this, SwTableColumnPage, DownHdl );
945*b1cdbd2cSJim Jagielski 	Link aLkLF = LINK( this, SwTableColumnPage, LoseFocusHdl );
946*b1cdbd2cSJim Jagielski 	for( sal_uInt16 i = 0; i < MET_FIELDS; i++ )
947*b1cdbd2cSJim Jagielski 	{
948*b1cdbd2cSJim Jagielski 		aValueTbl[i] = i;
949*b1cdbd2cSJim Jagielski 		SetMetric(*pFieldArr[i], aMetric);
950*b1cdbd2cSJim Jagielski 		pFieldArr[i]->SetUpHdl( aLkUp );
951*b1cdbd2cSJim Jagielski 		pFieldArr[i]->SetDownHdl( aLkDown );
952*b1cdbd2cSJim Jagielski 		pFieldArr[i]->SetLoseFocusHdl( aLkLF );
953*b1cdbd2cSJim Jagielski 
954*b1cdbd2cSJim Jagielski 	}
955*b1cdbd2cSJim Jagielski 	SetMetric(aSpaceED, aMetric);
956*b1cdbd2cSJim Jagielski 
957*b1cdbd2cSJim Jagielski 	Link aLk = LINK( this, SwTableColumnPage, AutoClickHdl );
958*b1cdbd2cSJim Jagielski 	aUpBtn.SetClickHdl( aLk );
959*b1cdbd2cSJim Jagielski 	aDownBtn.SetClickHdl( aLk );
960*b1cdbd2cSJim Jagielski 
961*b1cdbd2cSJim Jagielski 	aLk = LINK( this, SwTableColumnPage, ModeHdl );
962*b1cdbd2cSJim Jagielski 	aModifyTableCB .SetClickHdl( aLk );
963*b1cdbd2cSJim Jagielski 	aProportionalCB.SetClickHdl( aLk );
964*b1cdbd2cSJim Jagielski };
965*b1cdbd2cSJim Jagielski 
966*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
967*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
IMPL_LINK(SwTableColumnPage,AutoClickHdl,CheckBox *,pBox)968*b1cdbd2cSJim Jagielski IMPL_LINK( SwTableColumnPage, AutoClickHdl, CheckBox *, pBox )
969*b1cdbd2cSJim Jagielski {
970*b1cdbd2cSJim Jagielski 	//Anzeigefenster verschieben
971*b1cdbd2cSJim Jagielski 	if(pBox == (CheckBox *)&aDownBtn)
972*b1cdbd2cSJim Jagielski 	{
973*b1cdbd2cSJim Jagielski 		if(aValueTbl[0] > 0)
974*b1cdbd2cSJim Jagielski 		{
975*b1cdbd2cSJim Jagielski 			for( sal_uInt16 i=0; i < MET_FIELDS; i++ )
976*b1cdbd2cSJim Jagielski 				aValueTbl[i] -= 1;
977*b1cdbd2cSJim Jagielski 		}
978*b1cdbd2cSJim Jagielski 	}
979*b1cdbd2cSJim Jagielski 	if(pBox == (CheckBox *)&aUpBtn)
980*b1cdbd2cSJim Jagielski 	{
981*b1cdbd2cSJim Jagielski 		if( aValueTbl[ MET_FIELDS -1 ] < nNoOfVisibleCols -1  )
982*b1cdbd2cSJim Jagielski 		{
983*b1cdbd2cSJim Jagielski 			for(sal_uInt16 i=0;i < MET_FIELDS;i++)
984*b1cdbd2cSJim Jagielski 				aValueTbl[i] += 1;
985*b1cdbd2cSJim Jagielski 		}
986*b1cdbd2cSJim Jagielski 	}
987*b1cdbd2cSJim Jagielski 	for( sal_uInt16 i = 0; (i < nNoOfVisibleCols ) && ( i < MET_FIELDS); i++ )
988*b1cdbd2cSJim Jagielski 	{
989*b1cdbd2cSJim Jagielski 		String sEntry('~');
990*b1cdbd2cSJim Jagielski 		String sIndex = String::CreateFromInt32( aValueTbl[i] + 1 );
991*b1cdbd2cSJim Jagielski 		sEntry += sIndex;
992*b1cdbd2cSJim Jagielski 		pTextArr[i]->SetText( sEntry );
993*b1cdbd2cSJim Jagielski 		String sColumnWidth = SW_RESSTR( STR_ACCESS_COLUMN_WIDTH);
994*b1cdbd2cSJim Jagielski 		sColumnWidth.SearchAndReplace( DEFINE_CONST_UNICODE("%1"), sIndex );
995*b1cdbd2cSJim Jagielski 		pFieldArr[i]->SetAccessibleName( sColumnWidth );
996*b1cdbd2cSJim Jagielski 	}
997*b1cdbd2cSJim Jagielski 
998*b1cdbd2cSJim Jagielski 	aDownBtn.Enable(aValueTbl[0] > 0);
999*b1cdbd2cSJim Jagielski 	aUpBtn.Enable(aValueTbl[ MET_FIELDS -1 ] < nNoOfVisibleCols -1 );
1000*b1cdbd2cSJim Jagielski 	UpdateCols(0);
1001*b1cdbd2cSJim Jagielski 	return 0;
1002*b1cdbd2cSJim Jagielski };
1003*b1cdbd2cSJim Jagielski 
1004*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
1005*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
IMPL_LINK_INLINE_START(SwTableColumnPage,UpHdl,PercentField *,pEdit)1006*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_START( SwTableColumnPage, UpHdl, PercentField *, pEdit )
1007*b1cdbd2cSJim Jagielski {
1008*b1cdbd2cSJim Jagielski 	bModified = sal_True;
1009*b1cdbd2cSJim Jagielski 	ModifyHdl( pEdit );
1010*b1cdbd2cSJim Jagielski 	return 0;
1011*b1cdbd2cSJim Jagielski };
IMPL_LINK_INLINE_END(SwTableColumnPage,UpHdl,PercentField *,pEdit)1012*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_END( SwTableColumnPage, UpHdl, PercentField *, pEdit )
1013*b1cdbd2cSJim Jagielski 
1014*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
1015*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
1016*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_START( SwTableColumnPage, DownHdl, PercentField *, pEdit )
1017*b1cdbd2cSJim Jagielski {
1018*b1cdbd2cSJim Jagielski 	bModified = sal_True;
1019*b1cdbd2cSJim Jagielski 	ModifyHdl( pEdit );
1020*b1cdbd2cSJim Jagielski 	return 0;
1021*b1cdbd2cSJim Jagielski };
IMPL_LINK_INLINE_END(SwTableColumnPage,DownHdl,PercentField *,pEdit)1022*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_END( SwTableColumnPage, DownHdl, PercentField *, pEdit )
1023*b1cdbd2cSJim Jagielski 
1024*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
1025*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
1026*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_START( SwTableColumnPage, LoseFocusHdl, PercentField *, pEdit )
1027*b1cdbd2cSJim Jagielski {
1028*b1cdbd2cSJim Jagielski 	if(pEdit->IsModified())
1029*b1cdbd2cSJim Jagielski 	{
1030*b1cdbd2cSJim Jagielski 		bModified = sal_True;
1031*b1cdbd2cSJim Jagielski 		ModifyHdl( pEdit );
1032*b1cdbd2cSJim Jagielski 	}
1033*b1cdbd2cSJim Jagielski 	return 0;
1034*b1cdbd2cSJim Jagielski };
IMPL_LINK_INLINE_END(SwTableColumnPage,LoseFocusHdl,PercentField *,pEdit)1035*b1cdbd2cSJim Jagielski IMPL_LINK_INLINE_END( SwTableColumnPage, LoseFocusHdl, PercentField *, pEdit )
1036*b1cdbd2cSJim Jagielski 
1037*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
1038*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
1039*b1cdbd2cSJim Jagielski IMPL_LINK( SwTableColumnPage, ModeHdl, CheckBox*, pBox )
1040*b1cdbd2cSJim Jagielski {
1041*b1cdbd2cSJim Jagielski 	sal_Bool bCheck = pBox->IsChecked();
1042*b1cdbd2cSJim Jagielski 	if(pBox == &aProportionalCB)
1043*b1cdbd2cSJim Jagielski 	{
1044*b1cdbd2cSJim Jagielski 		if(bCheck)
1045*b1cdbd2cSJim Jagielski 			aModifyTableCB.Check();
1046*b1cdbd2cSJim Jagielski 		aModifyTableCB.Enable(!bCheck && bModifyTbl);
1047*b1cdbd2cSJim Jagielski 	}
1048*b1cdbd2cSJim Jagielski 	return 0;
1049*b1cdbd2cSJim Jagielski };
1050*b1cdbd2cSJim Jagielski 
1051*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
1052*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
FillItemSet(SfxItemSet &)1053*b1cdbd2cSJim Jagielski sal_Bool  SwTableColumnPage::FillItemSet( SfxItemSet& )
1054*b1cdbd2cSJim Jagielski {
1055*b1cdbd2cSJim Jagielski 	for( sal_uInt16 i = 0; i < MET_FIELDS; i++ )
1056*b1cdbd2cSJim Jagielski 	{
1057*b1cdbd2cSJim Jagielski 		if(pFieldArr[i]->HasFocus())
1058*b1cdbd2cSJim Jagielski 		{
1059*b1cdbd2cSJim Jagielski 			LoseFocusHdl(pFieldArr[i]);
1060*b1cdbd2cSJim Jagielski 			break;
1061*b1cdbd2cSJim Jagielski 		}
1062*b1cdbd2cSJim Jagielski 	}
1063*b1cdbd2cSJim Jagielski 
1064*b1cdbd2cSJim Jagielski 	if(bModified)
1065*b1cdbd2cSJim Jagielski 	{
1066*b1cdbd2cSJim Jagielski 		pTblData->SetColsChanged();
1067*b1cdbd2cSJim Jagielski 	}
1068*b1cdbd2cSJim Jagielski 	return bModified;
1069*b1cdbd2cSJim Jagielski };
1070*b1cdbd2cSJim Jagielski 
1071*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
1072*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
ModifyHdl(PercentField * pEdit)1073*b1cdbd2cSJim Jagielski void   SwTableColumnPage::ModifyHdl( PercentField* pEdit )
1074*b1cdbd2cSJim Jagielski {
1075*b1cdbd2cSJim Jagielski 		sal_uInt16 nAktPos;
1076*b1cdbd2cSJim Jagielski 		sal_uInt16 i;
1077*b1cdbd2cSJim Jagielski 
1078*b1cdbd2cSJim Jagielski 		for( i = 0; i < MET_FIELDS; i++)
1079*b1cdbd2cSJim Jagielski 			if(pEdit == pFieldArr[i])
1080*b1cdbd2cSJim Jagielski 				break;
1081*b1cdbd2cSJim Jagielski 
1082*b1cdbd2cSJim Jagielski         if (MET_FIELDS <= i)
1083*b1cdbd2cSJim Jagielski         {
1084*b1cdbd2cSJim Jagielski             OSL_ENSURE(false, "cannot happen.");
1085*b1cdbd2cSJim Jagielski             return;
1086*b1cdbd2cSJim Jagielski         }
1087*b1cdbd2cSJim Jagielski 
1088*b1cdbd2cSJim Jagielski         SetVisibleWidth(aValueTbl[i], static_cast< SwTwips >(pEdit->DenormalizePercent(pEdit->GetValue( FUNIT_TWIP ))) );
1089*b1cdbd2cSJim Jagielski 		nAktPos = aValueTbl[i];
1090*b1cdbd2cSJim Jagielski 
1091*b1cdbd2cSJim Jagielski 		UpdateCols( nAktPos );
1092*b1cdbd2cSJim Jagielski };
1093*b1cdbd2cSJim Jagielski 
1094*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
1095*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
UpdateCols(sal_uInt16 nAktPos)1096*b1cdbd2cSJim Jagielski void   SwTableColumnPage::UpdateCols( sal_uInt16 nAktPos )
1097*b1cdbd2cSJim Jagielski {
1098*b1cdbd2cSJim Jagielski 	SwTwips nSum = 0;
1099*b1cdbd2cSJim Jagielski 	sal_uInt16 i;
1100*b1cdbd2cSJim Jagielski 
1101*b1cdbd2cSJim Jagielski 	for( i = 0; i < nNoOfCols; i++ )
1102*b1cdbd2cSJim Jagielski 	{
1103*b1cdbd2cSJim Jagielski 		nSum += (pTblData->GetColumns())[i].nWidth;
1104*b1cdbd2cSJim Jagielski 	}
1105*b1cdbd2cSJim Jagielski 	SwTwips nDiff = nSum - nTableWidth;
1106*b1cdbd2cSJim Jagielski 
1107*b1cdbd2cSJim Jagielski     sal_Bool bModifyTable = aModifyTableCB.IsChecked();
1108*b1cdbd2cSJim Jagielski 	sal_Bool bProp =    aProportionalCB.IsChecked();
1109*b1cdbd2cSJim Jagielski 
1110*b1cdbd2cSJim Jagielski     if(!bModifyTable && !bProp )
1111*b1cdbd2cSJim Jagielski 	{
1112*b1cdbd2cSJim Jagielski //		the table width is constant, the difference is balanced with the other columns
1113*b1cdbd2cSJim Jagielski 		sal_uInt16 nLoopCount = 0;
1114*b1cdbd2cSJim Jagielski 		while( nDiff )
1115*b1cdbd2cSJim Jagielski 		{
1116*b1cdbd2cSJim Jagielski 			if( ++nAktPos == nNoOfVisibleCols)
1117*b1cdbd2cSJim Jagielski 			{
1118*b1cdbd2cSJim Jagielski 				nAktPos = 0;
1119*b1cdbd2cSJim Jagielski 				++nLoopCount;
1120*b1cdbd2cSJim Jagielski 				//#i101353# in small tables it might not be possible to balance column width
1121*b1cdbd2cSJim Jagielski 				if( nLoopCount > 1 )
1122*b1cdbd2cSJim Jagielski 					break;
1123*b1cdbd2cSJim Jagielski 			}
1124*b1cdbd2cSJim Jagielski 			if( nDiff < 0 )
1125*b1cdbd2cSJim Jagielski 			{
1126*b1cdbd2cSJim Jagielski 				SetVisibleWidth(nAktPos, GetVisibleWidth(nAktPos) -nDiff);
1127*b1cdbd2cSJim Jagielski 				nDiff = 0;
1128*b1cdbd2cSJim Jagielski 			}
1129*b1cdbd2cSJim Jagielski 			else if( GetVisibleWidth(nAktPos) >= nDiff + nMinWidth )
1130*b1cdbd2cSJim Jagielski 			{
1131*b1cdbd2cSJim Jagielski 				SetVisibleWidth(nAktPos, GetVisibleWidth(nAktPos) -nDiff);
1132*b1cdbd2cSJim Jagielski 				nDiff = 0;
1133*b1cdbd2cSJim Jagielski 			}
1134*b1cdbd2cSJim Jagielski 			if( nDiff > 0 && GetVisibleWidth(nAktPos) > nMinWidth )
1135*b1cdbd2cSJim Jagielski 			{
1136*b1cdbd2cSJim Jagielski 				if( nDiff >= (GetVisibleWidth(nAktPos) - nMinWidth) )
1137*b1cdbd2cSJim Jagielski 				{
1138*b1cdbd2cSJim Jagielski 					nDiff -= (GetVisibleWidth(nAktPos) - nMinWidth);
1139*b1cdbd2cSJim Jagielski 					SetVisibleWidth(nAktPos, nMinWidth);
1140*b1cdbd2cSJim Jagielski 				}
1141*b1cdbd2cSJim Jagielski 				else
1142*b1cdbd2cSJim Jagielski 				{
1143*b1cdbd2cSJim Jagielski 					nDiff = 0;
1144*b1cdbd2cSJim Jagielski 					SetVisibleWidth(nAktPos, GetVisibleWidth(nAktPos) -nDiff);
1145*b1cdbd2cSJim Jagielski 				}
1146*b1cdbd2cSJim Jagielski 				DBG_ASSERT(nDiff >= 0, "nDiff < 0 kann hier nicht sein!");
1147*b1cdbd2cSJim Jagielski 			}
1148*b1cdbd2cSJim Jagielski 		}
1149*b1cdbd2cSJim Jagielski 	}
1150*b1cdbd2cSJim Jagielski     else if(bModifyTable && !bProp)
1151*b1cdbd2cSJim Jagielski 	{
1152*b1cdbd2cSJim Jagielski //		Differenz wird ueber die Tabellenbreite ausgeglichen,
1153*b1cdbd2cSJim Jagielski //		andere Spalten bleiben unveraendert
1154*b1cdbd2cSJim Jagielski 		DBG_ASSERT(nDiff <= pTblData->GetSpace() - nTableWidth, "Maximum falsch eingestellt" );
1155*b1cdbd2cSJim Jagielski 		SwTwips nActSpace = pTblData->GetSpace() - nTableWidth;
1156*b1cdbd2cSJim Jagielski 		if(nDiff > nActSpace)
1157*b1cdbd2cSJim Jagielski 		{
1158*b1cdbd2cSJim Jagielski 			nTableWidth = pTblData->GetSpace();
1159*b1cdbd2cSJim Jagielski 			SetVisibleWidth(nAktPos, GetVisibleWidth(nAktPos) - nDiff + nActSpace );
1160*b1cdbd2cSJim Jagielski 		}
1161*b1cdbd2cSJim Jagielski 		else
1162*b1cdbd2cSJim Jagielski 		{
1163*b1cdbd2cSJim Jagielski 			nTableWidth += nDiff;
1164*b1cdbd2cSJim Jagielski 		}
1165*b1cdbd2cSJim Jagielski 	}
1166*b1cdbd2cSJim Jagielski     else if(bModifyTable & bProp)
1167*b1cdbd2cSJim Jagielski 	{
1168*b1cdbd2cSJim Jagielski //		Alle Spalten werden proportional mitveraendert, die Tabellenbreite wird
1169*b1cdbd2cSJim Jagielski //  	entsprechend angepasst
1170*b1cdbd2cSJim Jagielski 		DBG_ASSERT(nDiff * nNoOfVisibleCols <= pTblData->GetSpace() - nTableWidth, "Maximum falsch eingestellt" );
1171*b1cdbd2cSJim Jagielski 		long nAdd = nDiff;
1172*b1cdbd2cSJim Jagielski 		if(nDiff * nNoOfVisibleCols > pTblData->GetSpace() - nTableWidth)
1173*b1cdbd2cSJim Jagielski 		{
1174*b1cdbd2cSJim Jagielski 			nAdd = (pTblData->GetSpace() - nTableWidth) / nNoOfVisibleCols;
1175*b1cdbd2cSJim Jagielski 			SetVisibleWidth(nAktPos, GetVisibleWidth(nAktPos) - nDiff + nAdd );
1176*b1cdbd2cSJim Jagielski 			nDiff = nAdd;
1177*b1cdbd2cSJim Jagielski 		}
1178*b1cdbd2cSJim Jagielski 		if(nAdd)
1179*b1cdbd2cSJim Jagielski             for(i = 0; i < nNoOfVisibleCols; i++ )
1180*b1cdbd2cSJim Jagielski 			{
1181*b1cdbd2cSJim Jagielski 				if(i == nAktPos)
1182*b1cdbd2cSJim Jagielski 					continue;
1183*b1cdbd2cSJim Jagielski 				SwTwips nVisWidth;
1184*b1cdbd2cSJim Jagielski 				if((nVisWidth = GetVisibleWidth(i)) + nDiff < MINLAY)
1185*b1cdbd2cSJim Jagielski 				{
1186*b1cdbd2cSJim Jagielski 					nAdd += nVisWidth - MINLAY;
1187*b1cdbd2cSJim Jagielski 					SetVisibleWidth(i, MINLAY);
1188*b1cdbd2cSJim Jagielski 				}
1189*b1cdbd2cSJim Jagielski 				else
1190*b1cdbd2cSJim Jagielski 				{
1191*b1cdbd2cSJim Jagielski 					SetVisibleWidth(i, nVisWidth + nDiff);
1192*b1cdbd2cSJim Jagielski 					nAdd += nDiff;
1193*b1cdbd2cSJim Jagielski 				}
1194*b1cdbd2cSJim Jagielski 
1195*b1cdbd2cSJim Jagielski 			}
1196*b1cdbd2cSJim Jagielski 		nTableWidth += nAdd;
1197*b1cdbd2cSJim Jagielski 
1198*b1cdbd2cSJim Jagielski 	}
1199*b1cdbd2cSJim Jagielski 	else
1200*b1cdbd2cSJim Jagielski 	{
1201*b1cdbd2cSJim Jagielski //		Die Differenz wird gleichmaessig auf alle anderen Spalten aufgeteilt
1202*b1cdbd2cSJim Jagielski // 		die Tabellenbreite bleibt konstant
1203*b1cdbd2cSJim Jagielski /*
1204*b1cdbd2cSJim Jagielski 		SwTwips nDiffn = nDiff/(nNoOfVisibleCols - 1);
1205*b1cdbd2cSJim Jagielski 		if(nDiff < 0 && (nNoOfVisibleCols - 1) * nDiffn != nDiff)
1206*b1cdbd2cSJim Jagielski 			nDiffn-- ;
1207*b1cdbd2cSJim Jagielski 		sal_uInt16 nStart = nAktPos++;
1208*b1cdbd2cSJim Jagielski 		if(nAktPos == nNoOfVisibleCols)
1209*b1cdbd2cSJim Jagielski 			nStart = 0;
1210*b1cdbd2cSJim Jagielski 		for(sal_uInt16 i = 0; i < nNoOfVisibleCols; i++ )
1211*b1cdbd2cSJim Jagielski 		{
1212*b1cdbd2cSJim Jagielski 			if((nVisWidth = GetVisibleWidth(i)) + nDiff < MINLAY)
1213*b1cdbd2cSJim Jagielski 			{
1214*b1cdbd2cSJim Jagielski 				nAdd += nVisWidth - MINLAY;
1215*b1cdbd2cSJim Jagielski 				SetVisibleWidth(i, MINLAY);
1216*b1cdbd2cSJim Jagielski 			}
1217*b1cdbd2cSJim Jagielski 		}
1218*b1cdbd2cSJim Jagielski */
1219*b1cdbd2cSJim Jagielski 
1220*b1cdbd2cSJim Jagielski 	}
1221*b1cdbd2cSJim Jagielski 
1222*b1cdbd2cSJim Jagielski #ifdef DEBUG_TBLDLG
1223*b1cdbd2cSJim Jagielski DbgTblRep(pTblData)
1224*b1cdbd2cSJim Jagielski #endif
1225*b1cdbd2cSJim Jagielski 
1226*b1cdbd2cSJim Jagielski 	if(!bPercentMode)
1227*b1cdbd2cSJim Jagielski 		aSpaceED.SetValue(aSpaceED.Normalize( pTblData->GetSpace() - nTableWidth) , FUNIT_TWIP);
1228*b1cdbd2cSJim Jagielski 
1229*b1cdbd2cSJim Jagielski 	for( i = 0; ( i < nNoOfVisibleCols ) && ( i < MET_FIELDS ); i++)
1230*b1cdbd2cSJim Jagielski 	{
1231*b1cdbd2cSJim Jagielski         pFieldArr[i]->SetPrcntValue(pFieldArr[i]->NormalizePercent(
1232*b1cdbd2cSJim Jagielski 						GetVisibleWidth(aValueTbl[i]) ), FUNIT_TWIP);
1233*b1cdbd2cSJim Jagielski 		pFieldArr[i]->ClearModifyFlag();
1234*b1cdbd2cSJim Jagielski 	}
1235*b1cdbd2cSJim Jagielski 
1236*b1cdbd2cSJim Jagielski }
1237*b1cdbd2cSJim Jagielski 
1238*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
1239*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
ActivatePage(const SfxItemSet &)1240*b1cdbd2cSJim Jagielski void    SwTableColumnPage::ActivatePage( const SfxItemSet& )
1241*b1cdbd2cSJim Jagielski {
1242*b1cdbd2cSJim Jagielski 	bPercentMode = pTblData->GetWidthPercent() != 0;
1243*b1cdbd2cSJim Jagielski 	for( sal_uInt16 i = 0; (i < MET_FIELDS) && (i < nNoOfVisibleCols); i++ )
1244*b1cdbd2cSJim Jagielski 	{
1245*b1cdbd2cSJim Jagielski 		pFieldArr[i]->SetRefValue(pTblData->GetWidth());
1246*b1cdbd2cSJim Jagielski 		pFieldArr[i]->ShowPercent( bPercentMode );
1247*b1cdbd2cSJim Jagielski 	}
1248*b1cdbd2cSJim Jagielski 
1249*b1cdbd2cSJim Jagielski 	sal_uInt16 nTblAlign = pTblData->GetAlign();
1250*b1cdbd2cSJim Jagielski     if((text::HoriOrientation::FULL != nTblAlign && nTableWidth != pTblData->GetWidth()) ||
1251*b1cdbd2cSJim Jagielski     (text::HoriOrientation::FULL == nTblAlign && nTableWidth != pTblData->GetSpace()))
1252*b1cdbd2cSJim Jagielski 	{
1253*b1cdbd2cSJim Jagielski         nTableWidth = text::HoriOrientation::FULL == nTblAlign ?
1254*b1cdbd2cSJim Jagielski 									pTblData->GetSpace() :
1255*b1cdbd2cSJim Jagielski 										pTblData->GetWidth();
1256*b1cdbd2cSJim Jagielski 		UpdateCols(0);
1257*b1cdbd2cSJim Jagielski 	}
1258*b1cdbd2cSJim Jagielski 	bModifyTbl = sal_True;
1259*b1cdbd2cSJim Jagielski 	if(pTblData->GetWidthPercent() ||
1260*b1cdbd2cSJim Jagielski                 text::HoriOrientation::FULL == nTblAlign ||
1261*b1cdbd2cSJim Jagielski 						pTblData->IsLineSelected()  )
1262*b1cdbd2cSJim Jagielski 		bModifyTbl = sal_False;
1263*b1cdbd2cSJim Jagielski 	if(bPercentMode)
1264*b1cdbd2cSJim Jagielski 	{
1265*b1cdbd2cSJim Jagielski 		aModifyTableCB	.Check(sal_False);
1266*b1cdbd2cSJim Jagielski 		aProportionalCB .Check(sal_False);
1267*b1cdbd2cSJim Jagielski 	}
1268*b1cdbd2cSJim Jagielski 	else if( !bModifyTbl )
1269*b1cdbd2cSJim Jagielski 	{
1270*b1cdbd2cSJim Jagielski 		aProportionalCB.Check(sal_False);
1271*b1cdbd2cSJim Jagielski 		aModifyTableCB.Check(sal_False);
1272*b1cdbd2cSJim Jagielski 	}
1273*b1cdbd2cSJim Jagielski 	aSpaceFT.Enable(!bPercentMode);
1274*b1cdbd2cSJim Jagielski 	aSpaceED.Enable(!bPercentMode);
1275*b1cdbd2cSJim Jagielski 	aModifyTableCB.Enable( !bPercentMode && bModifyTbl );
1276*b1cdbd2cSJim Jagielski 	aProportionalCB.Enable(!bPercentMode && bModifyTbl );
1277*b1cdbd2cSJim Jagielski 
1278*b1cdbd2cSJim Jagielski /*	if(pTblData->IsLineSelected() && pTblData->IsComplex())
1279*b1cdbd2cSJim Jagielski 	{
1280*b1cdbd2cSJim Jagielski 
1281*b1cdbd2cSJim Jagielski 	}*/
1282*b1cdbd2cSJim Jagielski 	aSpaceED.SetValue(aSpaceED.Normalize(
1283*b1cdbd2cSJim Jagielski 				pTblData->GetSpace() - nTableWidth) , FUNIT_TWIP);
1284*b1cdbd2cSJim Jagielski 
1285*b1cdbd2cSJim Jagielski }
1286*b1cdbd2cSJim Jagielski 
1287*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
1288*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
DeactivatePage(SfxItemSet * _pSet)1289*b1cdbd2cSJim Jagielski int  SwTableColumnPage::DeactivatePage( SfxItemSet* _pSet )
1290*b1cdbd2cSJim Jagielski {
1291*b1cdbd2cSJim Jagielski     if(_pSet)
1292*b1cdbd2cSJim Jagielski 	{
1293*b1cdbd2cSJim Jagielski         FillItemSet(*_pSet);
1294*b1cdbd2cSJim Jagielski         if(text::HoriOrientation::FULL != pTblData->GetAlign() && pTblData->GetWidth() != nTableWidth)
1295*b1cdbd2cSJim Jagielski 		{
1296*b1cdbd2cSJim Jagielski 			pTblData->SetWidth(nTableWidth);
1297*b1cdbd2cSJim Jagielski 			SwTwips nDiff = pTblData->GetSpace() - pTblData->GetWidth() -
1298*b1cdbd2cSJim Jagielski 							pTblData->GetLeftSpace() - pTblData->GetRightSpace();
1299*b1cdbd2cSJim Jagielski 			switch( pTblData->GetAlign()  )
1300*b1cdbd2cSJim Jagielski 			{
1301*b1cdbd2cSJim Jagielski                 case text::HoriOrientation::RIGHT:
1302*b1cdbd2cSJim Jagielski 					pTblData->SetLeftSpace(pTblData->GetLeftSpace() + nDiff);
1303*b1cdbd2cSJim Jagielski 				break;
1304*b1cdbd2cSJim Jagielski                 case text::HoriOrientation::LEFT:
1305*b1cdbd2cSJim Jagielski 					pTblData->SetRightSpace(pTblData->GetRightSpace() + nDiff);
1306*b1cdbd2cSJim Jagielski 				break;
1307*b1cdbd2cSJim Jagielski                 case text::HoriOrientation::NONE:
1308*b1cdbd2cSJim Jagielski 				{
1309*b1cdbd2cSJim Jagielski 					SwTwips nDiff2 = nDiff/2;
1310*b1cdbd2cSJim Jagielski 					if( nDiff > 0 ||
1311*b1cdbd2cSJim Jagielski 						(-nDiff2 < pTblData->GetRightSpace() && - nDiff2 < pTblData->GetLeftSpace()))
1312*b1cdbd2cSJim Jagielski 					{
1313*b1cdbd2cSJim Jagielski 						pTblData->SetRightSpace(pTblData->GetRightSpace() + nDiff2);
1314*b1cdbd2cSJim Jagielski 						pTblData->SetLeftSpace(pTblData->GetLeftSpace() + nDiff2);
1315*b1cdbd2cSJim Jagielski 					}
1316*b1cdbd2cSJim Jagielski 					else
1317*b1cdbd2cSJim Jagielski 					{
1318*b1cdbd2cSJim Jagielski 						if(pTblData->GetRightSpace() > pTblData->GetLeftSpace())
1319*b1cdbd2cSJim Jagielski 						{
1320*b1cdbd2cSJim Jagielski 							pTblData->SetLeftSpace(0);
1321*b1cdbd2cSJim Jagielski 							pTblData->SetRightSpace(pTblData->GetSpace() - pTblData->GetWidth());
1322*b1cdbd2cSJim Jagielski 						}
1323*b1cdbd2cSJim Jagielski 						else
1324*b1cdbd2cSJim Jagielski 						{
1325*b1cdbd2cSJim Jagielski 							pTblData->SetRightSpace(0);
1326*b1cdbd2cSJim Jagielski 							pTblData->SetLeftSpace(pTblData->GetSpace() - pTblData->GetWidth());
1327*b1cdbd2cSJim Jagielski 						}
1328*b1cdbd2cSJim Jagielski 					}
1329*b1cdbd2cSJim Jagielski 				}
1330*b1cdbd2cSJim Jagielski 				break;
1331*b1cdbd2cSJim Jagielski                 case text::HoriOrientation::CENTER:
1332*b1cdbd2cSJim Jagielski 					pTblData->SetRightSpace(pTblData->GetRightSpace() + nDiff/2);
1333*b1cdbd2cSJim Jagielski 					pTblData->SetLeftSpace(pTblData->GetLeftSpace() + nDiff/2);
1334*b1cdbd2cSJim Jagielski 				break;
1335*b1cdbd2cSJim Jagielski                 case text::HoriOrientation::LEFT_AND_WIDTH :
1336*b1cdbd2cSJim Jagielski 					if(nDiff > pTblData->GetRightSpace())
1337*b1cdbd2cSJim Jagielski 					{
1338*b1cdbd2cSJim Jagielski 						pTblData->SetLeftSpace(pTblData->GetSpace() - pTblData->GetWidth());
1339*b1cdbd2cSJim Jagielski 					}
1340*b1cdbd2cSJim Jagielski 					pTblData->SetRightSpace(
1341*b1cdbd2cSJim Jagielski 						pTblData->GetSpace() - pTblData->GetWidth() - pTblData->GetLeftSpace());
1342*b1cdbd2cSJim Jagielski 				break;
1343*b1cdbd2cSJim Jagielski 			}
1344*b1cdbd2cSJim Jagielski 			pTblData->SetWidthChanged();
1345*b1cdbd2cSJim Jagielski 		}
1346*b1cdbd2cSJim Jagielski #ifdef DEBUG_TBLDLG
1347*b1cdbd2cSJim Jagielski DbgTblRep(pTblData)
1348*b1cdbd2cSJim Jagielski #endif
1349*b1cdbd2cSJim Jagielski         _pSet->Put(SwPtrItem( FN_TABLE_REP, pTblData ));
1350*b1cdbd2cSJim Jagielski 	}
1351*b1cdbd2cSJim Jagielski 	return sal_True;
1352*b1cdbd2cSJim Jagielski }
1353*b1cdbd2cSJim Jagielski 
1354*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
1355*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
GetVisibleWidth(sal_uInt16 nPos)1356*b1cdbd2cSJim Jagielski SwTwips  SwTableColumnPage::GetVisibleWidth(sal_uInt16 nPos)
1357*b1cdbd2cSJim Jagielski {
1358*b1cdbd2cSJim Jagielski 	sal_uInt16 i=0;
1359*b1cdbd2cSJim Jagielski 
1360*b1cdbd2cSJim Jagielski 	while( nPos )
1361*b1cdbd2cSJim Jagielski 	{
1362*b1cdbd2cSJim Jagielski 		if(pTblData->GetColumns()[i].bVisible && nPos)
1363*b1cdbd2cSJim Jagielski 			nPos--;
1364*b1cdbd2cSJim Jagielski 		i++;
1365*b1cdbd2cSJim Jagielski 	}
1366*b1cdbd2cSJim Jagielski 	SwTwips nReturn = pTblData->GetColumns()[i].nWidth;
1367*b1cdbd2cSJim Jagielski 	DBG_ASSERT(i < nNoOfCols, "Array index out of range");
1368*b1cdbd2cSJim Jagielski 	while(!pTblData->GetColumns()[i].bVisible && (i + 1) < nNoOfCols)
1369*b1cdbd2cSJim Jagielski 		nReturn += pTblData->GetColumns()[++i].nWidth;
1370*b1cdbd2cSJim Jagielski 
1371*b1cdbd2cSJim Jagielski //	return (*ppTableColumns)[i].nWidth;
1372*b1cdbd2cSJim Jagielski 	return nReturn;
1373*b1cdbd2cSJim Jagielski }
1374*b1cdbd2cSJim Jagielski 
1375*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
1376*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
SetVisibleWidth(sal_uInt16 nPos,SwTwips nNewWidth)1377*b1cdbd2cSJim Jagielski void SwTableColumnPage::SetVisibleWidth(sal_uInt16 nPos, SwTwips nNewWidth)
1378*b1cdbd2cSJim Jagielski {
1379*b1cdbd2cSJim Jagielski 	sal_uInt16 i=0;
1380*b1cdbd2cSJim Jagielski 	while( nPos )
1381*b1cdbd2cSJim Jagielski 	{
1382*b1cdbd2cSJim Jagielski 		if(pTblData->GetColumns()[i].bVisible && nPos)
1383*b1cdbd2cSJim Jagielski 			nPos--;
1384*b1cdbd2cSJim Jagielski 		i++;
1385*b1cdbd2cSJim Jagielski 	}
1386*b1cdbd2cSJim Jagielski 	DBG_ASSERT(i < nNoOfCols, "Array index out of range");
1387*b1cdbd2cSJim Jagielski 	pTblData->GetColumns()[i].nWidth = nNewWidth;
1388*b1cdbd2cSJim Jagielski 	while(!pTblData->GetColumns()[i].bVisible && (i + 1) < nNoOfCols)
1389*b1cdbd2cSJim Jagielski 		pTblData->GetColumns()[++i].nWidth = 0;
1390*b1cdbd2cSJim Jagielski 
1391*b1cdbd2cSJim Jagielski }
1392*b1cdbd2cSJim Jagielski 
1393*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
1394*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
SwTableTabDlg(Window * pParent,SfxItemPool &,const SfxItemSet * pItemSet,SwWrtShell * pSh)1395*b1cdbd2cSJim Jagielski SwTableTabDlg::SwTableTabDlg(Window* pParent, SfxItemPool& ,
1396*b1cdbd2cSJim Jagielski 					const SfxItemSet* pItemSet, SwWrtShell* pSh ) :
1397*b1cdbd2cSJim Jagielski 		SfxTabDialog(pParent, SW_RES(DLG_FORMAT_TABLE), pItemSet,0),
1398*b1cdbd2cSJim Jagielski         pShell(pSh),
1399*b1cdbd2cSJim Jagielski         nHtmlMode(::GetHtmlMode(pSh->GetView().GetDocShell()))
1400*b1cdbd2cSJim Jagielski {
1401*b1cdbd2cSJim Jagielski 	FreeResource();
1402*b1cdbd2cSJim Jagielski     SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create();
1403*b1cdbd2cSJim Jagielski     DBG_ASSERT(pFact, "Dialogdiet fail!");
1404*b1cdbd2cSJim Jagielski 	AddTabPage(TP_FORMAT_TABLE, &SwFormatTablePage::Create, 0 );
1405*b1cdbd2cSJim Jagielski 	AddTabPage(TP_TABLE_TEXTFLOW, &SwTextFlowPage::Create, 0 );
1406*b1cdbd2cSJim Jagielski 	AddTabPage(TP_TABLE_COLUMN, &SwTableColumnPage::Create, 0 );
1407*b1cdbd2cSJim Jagielski     AddTabPage(TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), 0 );
1408*b1cdbd2cSJim Jagielski     AddTabPage(TP_BORDER, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), 0 );
1409*b1cdbd2cSJim Jagielski }
1410*b1cdbd2cSJim Jagielski 
1411*b1cdbd2cSJim Jagielski 
1412*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------
1413*b1cdbd2cSJim Jagielski ------------------------------------------------------------------------*/
PageCreated(sal_uInt16 nId,SfxTabPage & rPage)1414*b1cdbd2cSJim Jagielski void  SwTableTabDlg::PageCreated(sal_uInt16 nId, SfxTabPage& rPage)
1415*b1cdbd2cSJim Jagielski {
1416*b1cdbd2cSJim Jagielski     SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));
1417*b1cdbd2cSJim Jagielski 	if( TP_BACKGROUND == nId )
1418*b1cdbd2cSJim Jagielski 	{
1419*b1cdbd2cSJim Jagielski         sal_Int32 nFlagType = SVX_SHOW_TBLCTL;
1420*b1cdbd2cSJim Jagielski         if(!( nHtmlMode & HTMLMODE_ON ) ||
1421*b1cdbd2cSJim Jagielski 			nHtmlMode & HTMLMODE_SOME_STYLES)
1422*b1cdbd2cSJim Jagielski             nFlagType |= SVX_SHOW_SELECTOR;
1423*b1cdbd2cSJim Jagielski         aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, nFlagType));
1424*b1cdbd2cSJim Jagielski 		rPage.PageCreated(aSet);
1425*b1cdbd2cSJim Jagielski 	}
1426*b1cdbd2cSJim Jagielski 	else if(TP_BORDER == nId)
1427*b1cdbd2cSJim Jagielski 	{
1428*b1cdbd2cSJim Jagielski 		aSet.Put (SfxUInt16Item(SID_SWMODE_TYPE,SW_BORDER_MODE_TABLE));
1429*b1cdbd2cSJim Jagielski 		rPage.PageCreated(aSet);
1430*b1cdbd2cSJim Jagielski 	}
1431*b1cdbd2cSJim Jagielski 	else if(TP_TABLE_TEXTFLOW == nId)
1432*b1cdbd2cSJim Jagielski 	{
1433*b1cdbd2cSJim Jagielski 		((SwTextFlowPage&)rPage).SetShell(pShell);
1434*b1cdbd2cSJim Jagielski 		const sal_uInt16 eType = pShell->GetFrmType(0,sal_True);
1435*b1cdbd2cSJim Jagielski 		if( !(FRMTYPE_BODY & eType) )
1436*b1cdbd2cSJim Jagielski 			((SwTextFlowPage&)rPage).DisablePageBreak();
1437*b1cdbd2cSJim Jagielski 	}
1438*b1cdbd2cSJim Jagielski }
1439*b1cdbd2cSJim Jagielski 
1440*b1cdbd2cSJim Jagielski /*-----------------12.12.96 12.22-------------------
1441*b1cdbd2cSJim Jagielski --------------------------------------------------*/
SwTextFlowPage(Window * pParent,const SfxItemSet & rSet)1442*b1cdbd2cSJim Jagielski SwTextFlowPage::SwTextFlowPage( Window* pParent,
1443*b1cdbd2cSJim Jagielski 								const SfxItemSet& rSet ) :
1444*b1cdbd2cSJim Jagielski 	SfxTabPage(pParent, SW_RES( TP_TABLE_TEXTFLOW ), rSet ),
1445*b1cdbd2cSJim Jagielski     aFlowFL         (this, SW_RES(FL_FLOW            )),
1446*b1cdbd2cSJim Jagielski 	aPgBrkCB        (this, SW_RES(CB_PAGEBREAK      )),
1447*b1cdbd2cSJim Jagielski 	aPgBrkRB        (this, SW_RES(RB_BREAKPAGE      )),
1448*b1cdbd2cSJim Jagielski 	aColBrkRB       (this, SW_RES(RB_BREAKCOLUMN    )),
1449*b1cdbd2cSJim Jagielski 	aPgBrkBeforeRB  (this, SW_RES(RB_PAGEBREAKBEFORE)),
1450*b1cdbd2cSJim Jagielski 	aPgBrkAfterRB   (this, SW_RES(RB_PAGEBREAKAFTER )),
1451*b1cdbd2cSJim Jagielski 	aPageCollCB     (this, SW_RES(CB_PAGECOLL       )),
1452*b1cdbd2cSJim Jagielski 	aPageCollLB     (this, SW_RES(LB_PAGECOLL       )),
1453*b1cdbd2cSJim Jagielski 	aPageNoFT       (this, SW_RES(FT_PAGENUM        )),
1454*b1cdbd2cSJim Jagielski 	aPageNoNF       (this, SW_RES(NF_PAGENUM        )),
1455*b1cdbd2cSJim Jagielski     aSplitCB        (this, SW_RES(CB_SPLIT          )),
1456*b1cdbd2cSJim Jagielski     aSplitRowCB     (this, SW_RES(CB_SPLIT_ROW      )),
1457*b1cdbd2cSJim Jagielski 	aKeepCB			(this, SW_RES(CB_KEEP			)),
1458*b1cdbd2cSJim Jagielski     aHeadLineCB     (this, SW_RES(CB_HEADLINE       )),
1459*b1cdbd2cSJim Jagielski     aRepeatHeaderFT         (this, SW_RES(FT_REPEAT_HEADER  )),
1460*b1cdbd2cSJim Jagielski     aRepeatHeaderBeforeFT   (this),
1461*b1cdbd2cSJim Jagielski     aRepeatHeaderNF         (this, SW_RES(NF_REPEAT_HEADER  )),
1462*b1cdbd2cSJim Jagielski     aRepeatHeaderAfterFT    (this),
1463*b1cdbd2cSJim Jagielski     aRepeatHeaderCombo      (this, SW_RES(WIN_REPEAT_HEADER), aRepeatHeaderNF, aRepeatHeaderBeforeFT, aRepeatHeaderAfterFT),
1464*b1cdbd2cSJim Jagielski     aTextDirectionFT(this, SW_RES(FT_TEXTDIRECTION  )),
1465*b1cdbd2cSJim Jagielski     aTextDirectionLB(this, SW_RES(LB_TEXTDIRECTION  )),
1466*b1cdbd2cSJim Jagielski 
1467*b1cdbd2cSJim Jagielski     aVertOrientFL   (this, SW_RES(FL_VERT_ORIENT    )),
1468*b1cdbd2cSJim Jagielski     aVertOrientFT(this,  SW_RES(FT_VERTORIENT       )),
1469*b1cdbd2cSJim Jagielski     aVertOrientLB(this,  SW_RES(LB_VERTORIENT       )),
1470*b1cdbd2cSJim Jagielski 
1471*b1cdbd2cSJim Jagielski     pShell(0),
1472*b1cdbd2cSJim Jagielski 
1473*b1cdbd2cSJim Jagielski 	bPageBreak(sal_True),
1474*b1cdbd2cSJim Jagielski 	bHtmlMode(sal_False)
1475*b1cdbd2cSJim Jagielski {
1476*b1cdbd2cSJim Jagielski 	FreeResource();
1477*b1cdbd2cSJim Jagielski 
1478*b1cdbd2cSJim Jagielski 	aPgBrkRB.SetAccessibleRelationMemberOf(&aPgBrkCB);
1479*b1cdbd2cSJim Jagielski 	aColBrkRB.SetAccessibleRelationMemberOf(&aPgBrkCB);
1480*b1cdbd2cSJim Jagielski 	aPgBrkBeforeRB.SetAccessibleRelationMemberOf(&aPgBrkCB);
1481*b1cdbd2cSJim Jagielski 	aPgBrkAfterRB.SetAccessibleRelationMemberOf(&aPgBrkCB);
1482*b1cdbd2cSJim Jagielski 	aPageCollLB.SetAccessibleRelationLabeledBy(&aPageCollCB);
1483*b1cdbd2cSJim Jagielski 	aPageCollLB.SetAccessibleName(aPageCollCB.GetText());
1484*b1cdbd2cSJim Jagielski 
1485*b1cdbd2cSJim Jagielski 	aPgBrkCB.SetClickHdl(LINK(this, SwTextFlowPage, PageBreakHdl_Impl));
1486*b1cdbd2cSJim Jagielski 	aPgBrkBeforeRB.SetClickHdl(
1487*b1cdbd2cSJim Jagielski 		LINK( this, SwTextFlowPage, PageBreakPosHdl_Impl ) );
1488*b1cdbd2cSJim Jagielski 	aPgBrkAfterRB.SetClickHdl(
1489*b1cdbd2cSJim Jagielski 		LINK( this, SwTextFlowPage, PageBreakPosHdl_Impl ) );
1490*b1cdbd2cSJim Jagielski 	aPageCollCB.SetClickHdl(
1491*b1cdbd2cSJim Jagielski 		LINK( this, SwTextFlowPage, ApplyCollClickHdl_Impl ) );
1492*b1cdbd2cSJim Jagielski 	aColBrkRB.SetClickHdl(
1493*b1cdbd2cSJim Jagielski 		LINK( this, SwTextFlowPage, PageBreakTypeHdl_Impl ) );
1494*b1cdbd2cSJim Jagielski 	aPgBrkRB.SetClickHdl(
1495*b1cdbd2cSJim Jagielski 		LINK( this, SwTextFlowPage, PageBreakTypeHdl_Impl ) );
1496*b1cdbd2cSJim Jagielski     aSplitCB.SetClickHdl(
1497*b1cdbd2cSJim Jagielski         LINK( this, SwTextFlowPage, SplitHdl_Impl));
1498*b1cdbd2cSJim Jagielski     aSplitRowCB.SetClickHdl(
1499*b1cdbd2cSJim Jagielski         LINK( this, SwTextFlowPage, SplitRowHdl_Impl));
1500*b1cdbd2cSJim Jagielski 	aHeadLineCB.SetClickHdl( LINK( this, SwTextFlowPage, HeadLineCBClickHdl ) );
1501*b1cdbd2cSJim Jagielski 
1502*b1cdbd2cSJim Jagielski #ifndef SW_FILEFORMAT_40
1503*b1cdbd2cSJim Jagielski 	const SfxPoolItem *pItem;
1504*b1cdbd2cSJim Jagielski 	if(SFX_ITEM_SET == rSet.GetItemState( SID_HTML_MODE, sal_False,&pItem )
1505*b1cdbd2cSJim Jagielski 		&& ((const SfxUInt16Item*)pItem)->GetValue() & HTMLMODE_ON)
1506*b1cdbd2cSJim Jagielski #endif
1507*b1cdbd2cSJim Jagielski 	{
1508*b1cdbd2cSJim Jagielski 		aKeepCB.Hide();
1509*b1cdbd2cSJim Jagielski 		aSplitCB.Hide();
1510*b1cdbd2cSJim Jagielski         aSplitRowCB.Hide();
1511*b1cdbd2cSJim Jagielski 	}
1512*b1cdbd2cSJim Jagielski 
1513*b1cdbd2cSJim Jagielski 	aRepeatHeaderCombo.Arrange( aRepeatHeaderFT );
1514*b1cdbd2cSJim Jagielski 
1515*b1cdbd2cSJim Jagielski 	HeadLineCBClickHdl();
1516*b1cdbd2cSJim Jagielski }
1517*b1cdbd2cSJim Jagielski 
1518*b1cdbd2cSJim Jagielski /*-----------------12.12.96 12.22-------------------
1519*b1cdbd2cSJim Jagielski --------------------------------------------------*/
~SwTextFlowPage()1520*b1cdbd2cSJim Jagielski  SwTextFlowPage::~SwTextFlowPage()
1521*b1cdbd2cSJim Jagielski {
1522*b1cdbd2cSJim Jagielski }
1523*b1cdbd2cSJim Jagielski 
1524*b1cdbd2cSJim Jagielski /*-----------------12.12.96 12.22-------------------
1525*b1cdbd2cSJim Jagielski --------------------------------------------------*/
Create(Window * pParent,const SfxItemSet & rAttrSet)1526*b1cdbd2cSJim Jagielski SfxTabPage*   SwTextFlowPage::Create( Window* pParent,
1527*b1cdbd2cSJim Jagielski 								const SfxItemSet& rAttrSet)
1528*b1cdbd2cSJim Jagielski {
1529*b1cdbd2cSJim Jagielski 	return new SwTextFlowPage(pParent, rAttrSet);
1530*b1cdbd2cSJim Jagielski }
1531*b1cdbd2cSJim Jagielski 
1532*b1cdbd2cSJim Jagielski /*-----------------12.12.96 12.22-------------------
1533*b1cdbd2cSJim Jagielski --------------------------------------------------*/
FillItemSet(SfxItemSet & rSet)1534*b1cdbd2cSJim Jagielski sal_Bool  SwTextFlowPage::FillItemSet( SfxItemSet& rSet )
1535*b1cdbd2cSJim Jagielski {
1536*b1cdbd2cSJim Jagielski 	sal_Bool bModified = sal_False;
1537*b1cdbd2cSJim Jagielski 
1538*b1cdbd2cSJim Jagielski 	//Ueberschrift wiederholen
1539*b1cdbd2cSJim Jagielski 	if(aHeadLineCB.IsChecked() != aHeadLineCB.GetSavedValue() ||
1540*b1cdbd2cSJim Jagielski         String::CreateFromInt32( static_cast< sal_Int32 >(aRepeatHeaderNF.GetValue()) ) != aRepeatHeaderNF.GetSavedValue() )
1541*b1cdbd2cSJim Jagielski 	{
1542*b1cdbd2cSJim Jagielski 		bModified |= 0 != rSet.Put(
1543*b1cdbd2cSJim Jagielski 			SfxUInt16Item(FN_PARAM_TABLE_HEADLINE, aHeadLineCB.IsChecked()? sal_uInt16(aRepeatHeaderNF.GetValue()) : 0 ));
1544*b1cdbd2cSJim Jagielski 	}
1545*b1cdbd2cSJim Jagielski 	if(aKeepCB.IsChecked() != aKeepCB.GetSavedValue())
1546*b1cdbd2cSJim Jagielski         bModified |= 0 != rSet.Put( SvxFmtKeepItem( aKeepCB.IsChecked(), RES_KEEP));
1547*b1cdbd2cSJim Jagielski 
1548*b1cdbd2cSJim Jagielski 	if(aSplitCB.IsChecked() != aSplitCB.GetSavedValue())
1549*b1cdbd2cSJim Jagielski         bModified |= 0 != rSet.Put( SwFmtLayoutSplit( aSplitCB.IsChecked()));
1550*b1cdbd2cSJim Jagielski 
1551*b1cdbd2cSJim Jagielski     if(aSplitRowCB.IsChecked() != aSplitRowCB.GetSavedValue())
1552*b1cdbd2cSJim Jagielski         bModified |= 0 != rSet.Put( SwFmtRowSplit( aSplitRowCB.IsChecked()));
1553*b1cdbd2cSJim Jagielski 
1554*b1cdbd2cSJim Jagielski 
1555*b1cdbd2cSJim Jagielski 	const SvxFmtBreakItem* pBreak = (const SvxFmtBreakItem*)GetOldItem( rSet, RES_BREAK );
1556*b1cdbd2cSJim Jagielski 	const SwFmtPageDesc* pDesc = (const SwFmtPageDesc*) GetOldItem( rSet, RES_PAGEDESC );
1557*b1cdbd2cSJim Jagielski 
1558*b1cdbd2cSJim Jagielski 
1559*b1cdbd2cSJim Jagielski 	sal_Bool bState = aPageCollCB.IsChecked();
1560*b1cdbd2cSJim Jagielski 
1561*b1cdbd2cSJim Jagielski 	//Wenn Seitenvorlage, dann kein Break
1562*b1cdbd2cSJim Jagielski 	sal_Bool bPageItemPut = sal_False;
1563*b1cdbd2cSJim Jagielski 	if ( bState != aPageCollCB.GetSavedValue() ||
1564*b1cdbd2cSJim Jagielski 		 ( bState &&
1565*b1cdbd2cSJim Jagielski 		   aPageCollLB.GetSelectEntryPos() != aPageCollLB.GetSavedValue() )
1566*b1cdbd2cSJim Jagielski 		   || (aPageNoNF.IsEnabled() && aPageNoNF.IsValueModified()) )
1567*b1cdbd2cSJim Jagielski 	{
1568*b1cdbd2cSJim Jagielski 		String sPage;
1569*b1cdbd2cSJim Jagielski 
1570*b1cdbd2cSJim Jagielski 		if ( bState )
1571*b1cdbd2cSJim Jagielski 		{
1572*b1cdbd2cSJim Jagielski 			sPage = aPageCollLB.GetSelectEntry();
1573*b1cdbd2cSJim Jagielski 		}
1574*b1cdbd2cSJim Jagielski         sal_uInt16 nPgNum = static_cast< sal_uInt16 >(aPageNoNF.GetValue());
1575*b1cdbd2cSJim Jagielski 		if ( !pDesc || !pDesc->GetPageDesc() ||
1576*b1cdbd2cSJim Jagielski 			( pDesc->GetPageDesc() && ((pDesc->GetPageDesc()->GetName() != sPage) ||
1577*b1cdbd2cSJim Jagielski 					aPageNoNF.GetSavedValue() != (String)nPgNum)))
1578*b1cdbd2cSJim Jagielski 		{
1579*b1cdbd2cSJim Jagielski 			SwFmtPageDesc aFmt( pShell->FindPageDescByName( sPage, sal_True ) );
1580*b1cdbd2cSJim Jagielski 			aFmt.SetNumOffset(bState ? nPgNum : 0);
1581*b1cdbd2cSJim Jagielski 			bModified |= 0 != rSet.Put( aFmt );
1582*b1cdbd2cSJim Jagielski 			bPageItemPut = bState;
1583*b1cdbd2cSJim Jagielski 		}
1584*b1cdbd2cSJim Jagielski 	}
1585*b1cdbd2cSJim Jagielski 	sal_Bool bIsChecked = aPgBrkCB.IsChecked();
1586*b1cdbd2cSJim Jagielski 	if ( !bPageItemPut &&
1587*b1cdbd2cSJim Jagielski 		(	bState != aPageCollCB.GetSavedValue() ||
1588*b1cdbd2cSJim Jagielski 			bIsChecked != aPgBrkCB.GetSavedValue()				||
1589*b1cdbd2cSJim Jagielski 			aPgBrkBeforeRB.IsChecked() != aPgBrkBeforeRB.GetSavedValue()	||
1590*b1cdbd2cSJim Jagielski 			aPgBrkRB.IsChecked() != aPgBrkRB.GetSavedValue() ))
1591*b1cdbd2cSJim Jagielski 	{
1592*b1cdbd2cSJim Jagielski 		SvxFmtBreakItem aBreak(
1593*b1cdbd2cSJim Jagielski 			(const SvxFmtBreakItem&)GetItemSet().Get( RES_BREAK ) );
1594*b1cdbd2cSJim Jagielski 
1595*b1cdbd2cSJim Jagielski 		if(bIsChecked)
1596*b1cdbd2cSJim Jagielski 		{
1597*b1cdbd2cSJim Jagielski 			sal_Bool bBefore = aPgBrkBeforeRB.IsChecked();
1598*b1cdbd2cSJim Jagielski 
1599*b1cdbd2cSJim Jagielski 			if ( aPgBrkRB.IsChecked() )
1600*b1cdbd2cSJim Jagielski 			{
1601*b1cdbd2cSJim Jagielski 				if ( bBefore )
1602*b1cdbd2cSJim Jagielski 					aBreak.SetValue( SVX_BREAK_PAGE_BEFORE );
1603*b1cdbd2cSJim Jagielski 				else
1604*b1cdbd2cSJim Jagielski 					aBreak.SetValue( SVX_BREAK_PAGE_AFTER );
1605*b1cdbd2cSJim Jagielski 			}
1606*b1cdbd2cSJim Jagielski 			else
1607*b1cdbd2cSJim Jagielski 			{
1608*b1cdbd2cSJim Jagielski 				if ( bBefore )
1609*b1cdbd2cSJim Jagielski 					aBreak.SetValue( SVX_BREAK_COLUMN_BEFORE );
1610*b1cdbd2cSJim Jagielski 				else
1611*b1cdbd2cSJim Jagielski 					aBreak.SetValue( SVX_BREAK_COLUMN_AFTER );
1612*b1cdbd2cSJim Jagielski 			}
1613*b1cdbd2cSJim Jagielski 		}
1614*b1cdbd2cSJim Jagielski 		else
1615*b1cdbd2cSJim Jagielski 		{
1616*b1cdbd2cSJim Jagielski 				aBreak.SetValue( SVX_BREAK_NONE );
1617*b1cdbd2cSJim Jagielski 		}
1618*b1cdbd2cSJim Jagielski 
1619*b1cdbd2cSJim Jagielski 		if ( !pBreak || !( *(const SvxFmtBreakItem*)pBreak == aBreak ) )
1620*b1cdbd2cSJim Jagielski 		{
1621*b1cdbd2cSJim Jagielski 			bModified |= 0 != rSet.Put( aBreak );
1622*b1cdbd2cSJim Jagielski 		}
1623*b1cdbd2cSJim Jagielski 	}
1624*b1cdbd2cSJim Jagielski 
1625*b1cdbd2cSJim Jagielski     if(aTextDirectionLB.GetSelectEntryPos() != aTextDirectionLB.GetSavedValue())
1626*b1cdbd2cSJim Jagielski     {
1627*b1cdbd2cSJim Jagielski           bModified |= 0 != rSet.Put(
1628*b1cdbd2cSJim Jagielski                     SvxFrameDirectionItem(
1629*b1cdbd2cSJim Jagielski                         (SvxFrameDirection)(sal_uLong)aTextDirectionLB.GetEntryData(aTextDirectionLB.GetSelectEntryPos())
1630*b1cdbd2cSJim Jagielski                         , FN_TABLE_BOX_TEXTDIRECTION));
1631*b1cdbd2cSJim Jagielski     }
1632*b1cdbd2cSJim Jagielski 
1633*b1cdbd2cSJim Jagielski     if(aVertOrientLB.GetSelectEntryPos() != aVertOrientLB.GetSavedValue())
1634*b1cdbd2cSJim Jagielski     {
1635*b1cdbd2cSJim Jagielski         sal_uInt16 nOrient = USHRT_MAX;
1636*b1cdbd2cSJim Jagielski         switch(aVertOrientLB.GetSelectEntryPos())
1637*b1cdbd2cSJim Jagielski         {
1638*b1cdbd2cSJim Jagielski             case 0 : nOrient = text::VertOrientation::NONE; break;
1639*b1cdbd2cSJim Jagielski             case 1 : nOrient = text::VertOrientation::CENTER; break;
1640*b1cdbd2cSJim Jagielski             case 2 : nOrient = text::VertOrientation::BOTTOM; break;
1641*b1cdbd2cSJim Jagielski         }
1642*b1cdbd2cSJim Jagielski         if(nOrient != USHRT_MAX)
1643*b1cdbd2cSJim Jagielski             bModified |= 0 != rSet.Put(SfxUInt16Item(FN_TABLE_SET_VERT_ALIGN, nOrient));
1644*b1cdbd2cSJim Jagielski     }
1645*b1cdbd2cSJim Jagielski 
1646*b1cdbd2cSJim Jagielski 	return bModified;
1647*b1cdbd2cSJim Jagielski 
1648*b1cdbd2cSJim Jagielski }
1649*b1cdbd2cSJim Jagielski 
1650*b1cdbd2cSJim Jagielski /*-----------------12.12.96 12.22-------------------
1651*b1cdbd2cSJim Jagielski --------------------------------------------------*/
Reset(const SfxItemSet & rSet)1652*b1cdbd2cSJim Jagielski void   SwTextFlowPage::Reset( const SfxItemSet& rSet )
1653*b1cdbd2cSJim Jagielski {
1654*b1cdbd2cSJim Jagielski 	const SfxPoolItem* pItem;
1655*b1cdbd2cSJim Jagielski 	SvxHtmlOptions* pHtmlOpt = SvxHtmlOptions::Get();
1656*b1cdbd2cSJim Jagielski 	sal_Bool bFlowAllowed = !bHtmlMode || pHtmlOpt->IsPrintLayoutExtension();
1657*b1cdbd2cSJim Jagielski 	if(bFlowAllowed)
1658*b1cdbd2cSJim Jagielski 	{
1659*b1cdbd2cSJim Jagielski 		// Einfuegen der vorhandenen Seitenvorlagen in die Listbox
1660*b1cdbd2cSJim Jagielski 		const sal_uInt16 nCount = pShell->GetPageDescCnt();
1661*b1cdbd2cSJim Jagielski 		sal_uInt16 i;
1662*b1cdbd2cSJim Jagielski 
1663*b1cdbd2cSJim Jagielski 		for( i = 0; i < nCount; ++i)
1664*b1cdbd2cSJim Jagielski 		{
1665*b1cdbd2cSJim Jagielski 			const SwPageDesc &rPageDesc = pShell->GetPageDesc(i);
1666*b1cdbd2cSJim Jagielski 			aPageCollLB.InsertEntry(rPageDesc.GetName());
1667*b1cdbd2cSJim Jagielski 		}
1668*b1cdbd2cSJim Jagielski 
1669*b1cdbd2cSJim Jagielski 		String aFmtName;
1670*b1cdbd2cSJim Jagielski 		for(i = RES_POOLPAGE_BEGIN; i < RES_POOLPAGE_END; ++i)
1671*b1cdbd2cSJim Jagielski 			if( LISTBOX_ENTRY_NOTFOUND == aPageCollLB.GetEntryPos(
1672*b1cdbd2cSJim Jagielski 					aFmtName = SwStyleNameMapper::GetUIName( i, aFmtName ) ))
1673*b1cdbd2cSJim Jagielski 				aPageCollLB.InsertEntry( aFmtName );
1674*b1cdbd2cSJim Jagielski 
1675*b1cdbd2cSJim Jagielski 		if(SFX_ITEM_SET == rSet.GetItemState( RES_KEEP, sal_False, &pItem ))
1676*b1cdbd2cSJim Jagielski 		{
1677*b1cdbd2cSJim Jagielski 			aKeepCB.Check( ((const SvxFmtKeepItem*)pItem)->GetValue() );
1678*b1cdbd2cSJim Jagielski 			aKeepCB.SaveValue();
1679*b1cdbd2cSJim Jagielski 		}
1680*b1cdbd2cSJim Jagielski 		if(SFX_ITEM_SET == rSet.GetItemState( RES_LAYOUT_SPLIT, sal_False, &pItem ))
1681*b1cdbd2cSJim Jagielski 		{
1682*b1cdbd2cSJim Jagielski             aSplitCB.Check( ((const SwFmtLayoutSplit*)pItem)->GetValue() );
1683*b1cdbd2cSJim Jagielski 		}
1684*b1cdbd2cSJim Jagielski         else
1685*b1cdbd2cSJim Jagielski             aSplitCB.Check();
1686*b1cdbd2cSJim Jagielski 
1687*b1cdbd2cSJim Jagielski 	    aSplitCB.SaveValue();
1688*b1cdbd2cSJim Jagielski         SplitHdl_Impl(&aSplitCB);
1689*b1cdbd2cSJim Jagielski 
1690*b1cdbd2cSJim Jagielski         if(SFX_ITEM_SET == rSet.GetItemState( RES_ROW_SPLIT, sal_False, &pItem ))
1691*b1cdbd2cSJim Jagielski         {
1692*b1cdbd2cSJim Jagielski             aSplitRowCB.Check( ((const SwFmtRowSplit*)pItem)->GetValue() );
1693*b1cdbd2cSJim Jagielski         }
1694*b1cdbd2cSJim Jagielski         else
1695*b1cdbd2cSJim Jagielski             aSplitRowCB.SetState(STATE_DONTKNOW);
1696*b1cdbd2cSJim Jagielski         aSplitRowCB.SaveValue();
1697*b1cdbd2cSJim Jagielski 
1698*b1cdbd2cSJim Jagielski         if(bPageBreak)
1699*b1cdbd2cSJim Jagielski 		{
1700*b1cdbd2cSJim Jagielski 			if(SFX_ITEM_SET == rSet.GetItemState( RES_PAGEDESC, sal_False, &pItem ))
1701*b1cdbd2cSJim Jagielski 			{
1702*b1cdbd2cSJim Jagielski 				String sPageDesc;
1703*b1cdbd2cSJim Jagielski 				const SwPageDesc* pDesc = ((const SwFmtPageDesc*)pItem)->GetPageDesc();
1704*b1cdbd2cSJim Jagielski 				aPageNoNF.SetValue(((const SwFmtPageDesc*)pItem)->GetNumOffset());
1705*b1cdbd2cSJim Jagielski 				if(pDesc)
1706*b1cdbd2cSJim Jagielski 					sPageDesc = pDesc->GetName();
1707*b1cdbd2cSJim Jagielski 				if ( sPageDesc.Len() &&
1708*b1cdbd2cSJim Jagielski 						aPageCollLB.GetEntryPos( sPageDesc ) != LISTBOX_ENTRY_NOTFOUND )
1709*b1cdbd2cSJim Jagielski 				{
1710*b1cdbd2cSJim Jagielski 					aPageCollLB.SelectEntry( sPageDesc );
1711*b1cdbd2cSJim Jagielski 					aPageCollCB.Check();
1712*b1cdbd2cSJim Jagielski 
1713*b1cdbd2cSJim Jagielski 					aPgBrkCB.Enable();
1714*b1cdbd2cSJim Jagielski 					aPgBrkRB.Enable();
1715*b1cdbd2cSJim Jagielski 					aColBrkRB.Enable();
1716*b1cdbd2cSJim Jagielski 					aPgBrkBeforeRB.Enable();
1717*b1cdbd2cSJim Jagielski 					aPgBrkAfterRB.Enable();
1718*b1cdbd2cSJim Jagielski 					aPageCollCB.Enable();
1719*b1cdbd2cSJim Jagielski 					aPgBrkCB.Check();
1720*b1cdbd2cSJim Jagielski 
1721*b1cdbd2cSJim Jagielski 					aPgBrkCB.Check( sal_True );
1722*b1cdbd2cSJim Jagielski 					aColBrkRB.Check( sal_False );
1723*b1cdbd2cSJim Jagielski 					aPgBrkBeforeRB.Check( sal_True );
1724*b1cdbd2cSJim Jagielski 					aPgBrkAfterRB.Check( sal_False );
1725*b1cdbd2cSJim Jagielski 				}
1726*b1cdbd2cSJim Jagielski 				else
1727*b1cdbd2cSJim Jagielski 				{
1728*b1cdbd2cSJim Jagielski 					aPageCollLB.SetNoSelection();
1729*b1cdbd2cSJim Jagielski 					aPageCollCB.Check(sal_False);
1730*b1cdbd2cSJim Jagielski 				}
1731*b1cdbd2cSJim Jagielski 			}
1732*b1cdbd2cSJim Jagielski 
1733*b1cdbd2cSJim Jagielski 			if(SFX_ITEM_SET == rSet.GetItemState( RES_BREAK, sal_False, &pItem ))
1734*b1cdbd2cSJim Jagielski 			{
1735*b1cdbd2cSJim Jagielski 				const SvxFmtBreakItem* pPageBreak = (const SvxFmtBreakItem*)pItem;
1736*b1cdbd2cSJim Jagielski 				SvxBreak eBreak = (SvxBreak)pPageBreak->GetValue();
1737*b1cdbd2cSJim Jagielski 
1738*b1cdbd2cSJim Jagielski 				if ( eBreak != SVX_BREAK_NONE )
1739*b1cdbd2cSJim Jagielski 				{
1740*b1cdbd2cSJim Jagielski 					aPgBrkCB.Check();
1741*b1cdbd2cSJim Jagielski 					aPageCollCB.Enable(sal_False);
1742*b1cdbd2cSJim Jagielski 					aPageCollLB.Enable(sal_False);
1743*b1cdbd2cSJim Jagielski 					aPageNoFT.Enable(sal_False);
1744*b1cdbd2cSJim Jagielski 					aPageNoNF.Enable(sal_False);
1745*b1cdbd2cSJim Jagielski 				}
1746*b1cdbd2cSJim Jagielski 				switch ( eBreak )
1747*b1cdbd2cSJim Jagielski 				{
1748*b1cdbd2cSJim Jagielski 					case SVX_BREAK_PAGE_BEFORE:
1749*b1cdbd2cSJim Jagielski 						aPgBrkRB.Check( sal_True );
1750*b1cdbd2cSJim Jagielski 						aColBrkRB.Check( sal_False );
1751*b1cdbd2cSJim Jagielski 						aPgBrkBeforeRB.Check( sal_True );
1752*b1cdbd2cSJim Jagielski 						aPgBrkAfterRB.Check( sal_False );
1753*b1cdbd2cSJim Jagielski 						break;
1754*b1cdbd2cSJim Jagielski 					case SVX_BREAK_PAGE_AFTER:
1755*b1cdbd2cSJim Jagielski 						aPgBrkRB.Check( sal_True );
1756*b1cdbd2cSJim Jagielski 						aColBrkRB.Check( sal_False );
1757*b1cdbd2cSJim Jagielski 						aPgBrkBeforeRB.Check( sal_False );
1758*b1cdbd2cSJim Jagielski 						aPgBrkAfterRB.Check( sal_True );
1759*b1cdbd2cSJim Jagielski 						break;
1760*b1cdbd2cSJim Jagielski 					case SVX_BREAK_COLUMN_BEFORE:
1761*b1cdbd2cSJim Jagielski 						aPgBrkRB.Check( sal_False );
1762*b1cdbd2cSJim Jagielski 						aColBrkRB.Check( sal_True );
1763*b1cdbd2cSJim Jagielski 						aPgBrkBeforeRB.Check( sal_True );
1764*b1cdbd2cSJim Jagielski 						aPgBrkAfterRB.Check( sal_False );
1765*b1cdbd2cSJim Jagielski 						break;
1766*b1cdbd2cSJim Jagielski 					case SVX_BREAK_COLUMN_AFTER:
1767*b1cdbd2cSJim Jagielski 						aPgBrkRB.Check( sal_False );
1768*b1cdbd2cSJim Jagielski 						aColBrkRB.Check( sal_True );
1769*b1cdbd2cSJim Jagielski 						aPgBrkBeforeRB.Check( sal_False );
1770*b1cdbd2cSJim Jagielski 						aPgBrkAfterRB.Check( sal_True );
1771*b1cdbd2cSJim Jagielski 						break;
1772*b1cdbd2cSJim Jagielski                     default:; //prevent warning
1773*b1cdbd2cSJim Jagielski 				}
1774*b1cdbd2cSJim Jagielski 
1775*b1cdbd2cSJim Jagielski 			}
1776*b1cdbd2cSJim Jagielski 			if ( aPgBrkBeforeRB.IsChecked() )
1777*b1cdbd2cSJim Jagielski 				PageBreakPosHdl_Impl( &aPgBrkBeforeRB );
1778*b1cdbd2cSJim Jagielski 			else if ( aPgBrkAfterRB.IsChecked() )
1779*b1cdbd2cSJim Jagielski 				PageBreakPosHdl_Impl( &aPgBrkAfterRB );
1780*b1cdbd2cSJim Jagielski 			PageBreakHdl_Impl( &aPgBrkCB );
1781*b1cdbd2cSJim Jagielski 		}
1782*b1cdbd2cSJim Jagielski 	}
1783*b1cdbd2cSJim Jagielski 	else
1784*b1cdbd2cSJim Jagielski 	{
1785*b1cdbd2cSJim Jagielski 		aPgBrkRB.Enable(sal_False);
1786*b1cdbd2cSJim Jagielski 		aColBrkRB.Enable(sal_False);
1787*b1cdbd2cSJim Jagielski 		aPgBrkBeforeRB.Enable(sal_False);
1788*b1cdbd2cSJim Jagielski 		aPgBrkAfterRB.Enable(sal_False);
1789*b1cdbd2cSJim Jagielski 		aKeepCB	.Enable(sal_False);
1790*b1cdbd2cSJim Jagielski 		aSplitCB.Enable(sal_False);
1791*b1cdbd2cSJim Jagielski 		aPgBrkCB.Enable(sal_False);
1792*b1cdbd2cSJim Jagielski 		aPageCollCB.Enable(sal_False);
1793*b1cdbd2cSJim Jagielski 		aPageCollLB.Enable(sal_False);
1794*b1cdbd2cSJim Jagielski 	}
1795*b1cdbd2cSJim Jagielski 
1796*b1cdbd2cSJim Jagielski 	if(SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_TABLE_HEADLINE, sal_False, &pItem ))
1797*b1cdbd2cSJim Jagielski 	{
1798*b1cdbd2cSJim Jagielski 		sal_uInt16 nRep = ((const SfxUInt16Item*)pItem)->GetValue();
1799*b1cdbd2cSJim Jagielski 		aHeadLineCB.Check( nRep > 0 );
1800*b1cdbd2cSJim Jagielski 		aHeadLineCB.SaveValue();
1801*b1cdbd2cSJim Jagielski 		aRepeatHeaderNF.SetValue( nRep );
1802*b1cdbd2cSJim Jagielski 		aRepeatHeaderNF.SaveValue();
1803*b1cdbd2cSJim Jagielski 	}
1804*b1cdbd2cSJim Jagielski     if ( rSet.GetItemState(FN_TABLE_BOX_TEXTDIRECTION) > SFX_ITEM_AVAILABLE )
1805*b1cdbd2cSJim Jagielski     {
1806*b1cdbd2cSJim Jagielski         sal_uLong nDirection = ((const SvxFrameDirectionItem&)rSet.Get(FN_TABLE_BOX_TEXTDIRECTION)).GetValue();
1807*b1cdbd2cSJim Jagielski         aTextDirectionLB.SelectEntryPos(aTextDirectionLB.GetEntryPos( (const void*)nDirection ));
1808*b1cdbd2cSJim Jagielski     }
1809*b1cdbd2cSJim Jagielski 
1810*b1cdbd2cSJim Jagielski     if ( rSet.GetItemState(FN_TABLE_SET_VERT_ALIGN) > SFX_ITEM_AVAILABLE )
1811*b1cdbd2cSJim Jagielski 	{
1812*b1cdbd2cSJim Jagielski 		sal_uInt16 nVert = ((const SfxUInt16Item&)rSet.Get(FN_TABLE_SET_VERT_ALIGN)).GetValue();
1813*b1cdbd2cSJim Jagielski         sal_uInt16 nPos = 0;
1814*b1cdbd2cSJim Jagielski 		switch(nVert)
1815*b1cdbd2cSJim Jagielski 		{
1816*b1cdbd2cSJim Jagielski             case text::VertOrientation::NONE:     nPos = 0;   break;
1817*b1cdbd2cSJim Jagielski             case text::VertOrientation::CENTER:   nPos = 1;   break;
1818*b1cdbd2cSJim Jagielski             case text::VertOrientation::BOTTOM:   nPos = 2;   break;
1819*b1cdbd2cSJim Jagielski 		}
1820*b1cdbd2cSJim Jagielski         aVertOrientLB.SelectEntryPos(nPos);
1821*b1cdbd2cSJim Jagielski 	}
1822*b1cdbd2cSJim Jagielski 
1823*b1cdbd2cSJim Jagielski 	aPageCollCB.SaveValue();
1824*b1cdbd2cSJim Jagielski 	aPageCollLB.SaveValue();
1825*b1cdbd2cSJim Jagielski 	aPgBrkCB.SaveValue();
1826*b1cdbd2cSJim Jagielski 	aPgBrkRB.SaveValue();
1827*b1cdbd2cSJim Jagielski 	aColBrkRB.SaveValue();
1828*b1cdbd2cSJim Jagielski 	aPgBrkBeforeRB.SaveValue();
1829*b1cdbd2cSJim Jagielski 	aPgBrkAfterRB.SaveValue();
1830*b1cdbd2cSJim Jagielski 	aPageNoNF.SaveValue();
1831*b1cdbd2cSJim Jagielski     aTextDirectionLB.SaveValue();
1832*b1cdbd2cSJim Jagielski     aVertOrientLB.SaveValue();
1833*b1cdbd2cSJim Jagielski 
1834*b1cdbd2cSJim Jagielski 	HeadLineCBClickHdl();
1835*b1cdbd2cSJim Jagielski }
1836*b1cdbd2cSJim Jagielski /*-----------------16.04.98 14:48-------------------
1837*b1cdbd2cSJim Jagielski 
1838*b1cdbd2cSJim Jagielski --------------------------------------------------*/
1839*b1cdbd2cSJim Jagielski 
SetShell(SwWrtShell * pSh)1840*b1cdbd2cSJim Jagielski void SwTextFlowPage::SetShell(SwWrtShell* pSh)
1841*b1cdbd2cSJim Jagielski {
1842*b1cdbd2cSJim Jagielski 	pShell = pSh;
1843*b1cdbd2cSJim Jagielski 	bHtmlMode = 0 != (::GetHtmlMode(pShell->GetView().GetDocShell()) & HTMLMODE_ON);
1844*b1cdbd2cSJim Jagielski 	if(bHtmlMode)
1845*b1cdbd2cSJim Jagielski 	{
1846*b1cdbd2cSJim Jagielski 		aPageNoNF.Enable(sal_False);
1847*b1cdbd2cSJim Jagielski 		aPageNoFT.Enable(sal_False);
1848*b1cdbd2cSJim Jagielski 	}
1849*b1cdbd2cSJim Jagielski }
1850*b1cdbd2cSJim Jagielski 
1851*b1cdbd2cSJim Jagielski /*-----------------12.12.96 16.18-------------------
1852*b1cdbd2cSJim Jagielski --------------------------------------------------*/
IMPL_LINK(SwTextFlowPage,PageBreakHdl_Impl,CheckBox *,EMPTYARG)1853*b1cdbd2cSJim Jagielski IMPL_LINK( SwTextFlowPage, PageBreakHdl_Impl, CheckBox*, EMPTYARG )
1854*b1cdbd2cSJim Jagielski {
1855*b1cdbd2cSJim Jagielski 	if( aPgBrkCB.IsChecked() )
1856*b1cdbd2cSJim Jagielski 	{
1857*b1cdbd2cSJim Jagielski 			aPgBrkRB.		Enable();
1858*b1cdbd2cSJim Jagielski 			aColBrkRB.		Enable();
1859*b1cdbd2cSJim Jagielski 			aPgBrkBeforeRB.	Enable();
1860*b1cdbd2cSJim Jagielski 			aPgBrkAfterRB.	Enable();
1861*b1cdbd2cSJim Jagielski 
1862*b1cdbd2cSJim Jagielski 			if ( aPgBrkRB.IsChecked() && aPgBrkBeforeRB.IsChecked() )
1863*b1cdbd2cSJim Jagielski 			{
1864*b1cdbd2cSJim Jagielski 				aPageCollCB.Enable();
1865*b1cdbd2cSJim Jagielski 
1866*b1cdbd2cSJim Jagielski 				sal_Bool bEnable = aPageCollCB.IsChecked() &&
1867*b1cdbd2cSJim Jagielski 											aPageCollLB.GetEntryCount();
1868*b1cdbd2cSJim Jagielski 				aPageCollLB.Enable(bEnable);
1869*b1cdbd2cSJim Jagielski 				if(!bHtmlMode)
1870*b1cdbd2cSJim Jagielski 				{
1871*b1cdbd2cSJim Jagielski 					aPageNoFT.Enable(bEnable);
1872*b1cdbd2cSJim Jagielski 					aPageNoNF.Enable(bEnable);
1873*b1cdbd2cSJim Jagielski 				}
1874*b1cdbd2cSJim Jagielski 			}
1875*b1cdbd2cSJim Jagielski 	}
1876*b1cdbd2cSJim Jagielski 	else
1877*b1cdbd2cSJim Jagielski 	{
1878*b1cdbd2cSJim Jagielski 			aPageCollCB.Check( sal_False );
1879*b1cdbd2cSJim Jagielski 			aPageCollCB.Enable(sal_False);
1880*b1cdbd2cSJim Jagielski 			aPageCollLB.Enable(sal_False);
1881*b1cdbd2cSJim Jagielski 			aPageNoFT.Enable(sal_False);
1882*b1cdbd2cSJim Jagielski 			aPageNoNF.Enable(sal_False);
1883*b1cdbd2cSJim Jagielski 			aPgBrkRB.		Enable(sal_False);
1884*b1cdbd2cSJim Jagielski 			aColBrkRB.		Enable(sal_False);
1885*b1cdbd2cSJim Jagielski 			aPgBrkBeforeRB.	Enable(sal_False);
1886*b1cdbd2cSJim Jagielski 			aPgBrkAfterRB.	Enable(sal_False);
1887*b1cdbd2cSJim Jagielski 	}
1888*b1cdbd2cSJim Jagielski 	return 0;
1889*b1cdbd2cSJim Jagielski }
1890*b1cdbd2cSJim Jagielski 
1891*b1cdbd2cSJim Jagielski /*-----------------12.12.96 16.18-------------------
1892*b1cdbd2cSJim Jagielski --------------------------------------------------*/
IMPL_LINK(SwTextFlowPage,ApplyCollClickHdl_Impl,CheckBox *,EMPTYARG)1893*b1cdbd2cSJim Jagielski IMPL_LINK( SwTextFlowPage, ApplyCollClickHdl_Impl, CheckBox*, EMPTYARG )
1894*b1cdbd2cSJim Jagielski {
1895*b1cdbd2cSJim Jagielski 	sal_Bool bEnable = sal_False;
1896*b1cdbd2cSJim Jagielski 	if ( aPageCollCB.IsChecked() &&
1897*b1cdbd2cSJim Jagielski 		 aPageCollLB.GetEntryCount() )
1898*b1cdbd2cSJim Jagielski 	{
1899*b1cdbd2cSJim Jagielski 		bEnable = sal_True;
1900*b1cdbd2cSJim Jagielski 		aPageCollLB.SelectEntryPos( 0 );
1901*b1cdbd2cSJim Jagielski 	}
1902*b1cdbd2cSJim Jagielski 	else
1903*b1cdbd2cSJim Jagielski 	{
1904*b1cdbd2cSJim Jagielski 		aPageCollLB.SetNoSelection();
1905*b1cdbd2cSJim Jagielski 	}
1906*b1cdbd2cSJim Jagielski 	aPageCollLB.Enable(bEnable);
1907*b1cdbd2cSJim Jagielski 	if(!bHtmlMode)
1908*b1cdbd2cSJim Jagielski 	{
1909*b1cdbd2cSJim Jagielski 		aPageNoFT.Enable(bEnable);
1910*b1cdbd2cSJim Jagielski 		aPageNoNF.Enable(bEnable);
1911*b1cdbd2cSJim Jagielski 	}
1912*b1cdbd2cSJim Jagielski 	return 0;
1913*b1cdbd2cSJim Jagielski }
1914*b1cdbd2cSJim Jagielski 
1915*b1cdbd2cSJim Jagielski /*-----------------12.12.96 16.18-------------------
1916*b1cdbd2cSJim Jagielski --------------------------------------------------*/
IMPL_LINK(SwTextFlowPage,PageBreakPosHdl_Impl,RadioButton *,pBtn)1917*b1cdbd2cSJim Jagielski IMPL_LINK( SwTextFlowPage, PageBreakPosHdl_Impl, RadioButton*, pBtn )
1918*b1cdbd2cSJim Jagielski {
1919*b1cdbd2cSJim Jagielski 	if ( aPgBrkCB.IsChecked() )
1920*b1cdbd2cSJim Jagielski 	{
1921*b1cdbd2cSJim Jagielski         if ( pBtn == &aPgBrkBeforeRB && aPgBrkRB.IsChecked() )
1922*b1cdbd2cSJim Jagielski 		{
1923*b1cdbd2cSJim Jagielski 			aPageCollCB.Enable();
1924*b1cdbd2cSJim Jagielski 
1925*b1cdbd2cSJim Jagielski 			sal_Bool bEnable = aPageCollCB.IsChecked()  &&
1926*b1cdbd2cSJim Jagielski 										aPageCollLB.GetEntryCount();
1927*b1cdbd2cSJim Jagielski 
1928*b1cdbd2cSJim Jagielski 			aPageCollLB.Enable(bEnable);
1929*b1cdbd2cSJim Jagielski 			if(!bHtmlMode)
1930*b1cdbd2cSJim Jagielski 			{
1931*b1cdbd2cSJim Jagielski 				aPageNoFT.Enable(bEnable);
1932*b1cdbd2cSJim Jagielski 				aPageNoNF.Enable(bEnable);
1933*b1cdbd2cSJim Jagielski 			}
1934*b1cdbd2cSJim Jagielski 		}
1935*b1cdbd2cSJim Jagielski 		else if ( pBtn == &aPgBrkAfterRB )
1936*b1cdbd2cSJim Jagielski 		{
1937*b1cdbd2cSJim Jagielski 			aPageCollCB	.Check( sal_False );
1938*b1cdbd2cSJim Jagielski 			aPageCollCB	.Enable(sal_False);
1939*b1cdbd2cSJim Jagielski 			aPageCollLB	.Enable(sal_False);
1940*b1cdbd2cSJim Jagielski 			aPageNoFT 	.Enable(sal_False);
1941*b1cdbd2cSJim Jagielski 			aPageNoNF	.Enable(sal_False);
1942*b1cdbd2cSJim Jagielski 		}
1943*b1cdbd2cSJim Jagielski 	}
1944*b1cdbd2cSJim Jagielski 	return 0;
1945*b1cdbd2cSJim Jagielski }
1946*b1cdbd2cSJim Jagielski 
1947*b1cdbd2cSJim Jagielski /*-----------------12.12.96 16.18-------------------
1948*b1cdbd2cSJim Jagielski --------------------------------------------------*/
IMPL_LINK(SwTextFlowPage,PageBreakTypeHdl_Impl,RadioButton *,pBtn)1949*b1cdbd2cSJim Jagielski IMPL_LINK( SwTextFlowPage, PageBreakTypeHdl_Impl, RadioButton*, pBtn )
1950*b1cdbd2cSJim Jagielski {
1951*b1cdbd2cSJim Jagielski 	if ( pBtn == &aColBrkRB || aPgBrkAfterRB.IsChecked() )
1952*b1cdbd2cSJim Jagielski 	{
1953*b1cdbd2cSJim Jagielski 		aPageCollCB	.Check(sal_False);
1954*b1cdbd2cSJim Jagielski 		aPageCollCB	.Enable(sal_False);
1955*b1cdbd2cSJim Jagielski 		aPageCollLB	.Enable(sal_False);
1956*b1cdbd2cSJim Jagielski 		aPageNoFT	.Enable(sal_False);
1957*b1cdbd2cSJim Jagielski 		aPageNoNF	.Enable(sal_False);
1958*b1cdbd2cSJim Jagielski 	}
1959*b1cdbd2cSJim Jagielski 	else if ( aPgBrkBeforeRB.IsChecked() )
1960*b1cdbd2cSJim Jagielski 		PageBreakPosHdl_Impl( &aPgBrkBeforeRB );
1961*b1cdbd2cSJim Jagielski 	return 0;
1962*b1cdbd2cSJim Jagielski }
1963*b1cdbd2cSJim Jagielski /*-----------------17.11.2003 11:30-----------------
1964*b1cdbd2cSJim Jagielski  *
1965*b1cdbd2cSJim Jagielski  * --------------------------------------------------*/
IMPL_LINK(SwTextFlowPage,SplitHdl_Impl,CheckBox *,pBox)1966*b1cdbd2cSJim Jagielski IMPL_LINK( SwTextFlowPage, SplitHdl_Impl, CheckBox*, pBox )
1967*b1cdbd2cSJim Jagielski {
1968*b1cdbd2cSJim Jagielski     aSplitRowCB.Enable(pBox->IsChecked());
1969*b1cdbd2cSJim Jagielski     return 0;
1970*b1cdbd2cSJim Jagielski }
1971*b1cdbd2cSJim Jagielski /*-----------------17.11.2003 11:30-----------------
1972*b1cdbd2cSJim Jagielski  *
1973*b1cdbd2cSJim Jagielski  * --------------------------------------------------*/
IMPL_LINK(SwTextFlowPage,SplitRowHdl_Impl,TriStateBox *,pBox)1974*b1cdbd2cSJim Jagielski IMPL_LINK( SwTextFlowPage, SplitRowHdl_Impl, TriStateBox*, pBox )
1975*b1cdbd2cSJim Jagielski {
1976*b1cdbd2cSJim Jagielski     pBox->EnableTriState(sal_False);
1977*b1cdbd2cSJim Jagielski     return 0;
1978*b1cdbd2cSJim Jagielski }
1979*b1cdbd2cSJim Jagielski 
IMPL_LINK(SwTextFlowPage,HeadLineCBClickHdl,void *,EMPTYARG)1980*b1cdbd2cSJim Jagielski IMPL_LINK( SwTextFlowPage, HeadLineCBClickHdl, void*, EMPTYARG )
1981*b1cdbd2cSJim Jagielski {
1982*b1cdbd2cSJim Jagielski 	aRepeatHeaderCombo.Enable(aHeadLineCB.IsChecked());
1983*b1cdbd2cSJim Jagielski 
1984*b1cdbd2cSJim Jagielski 	return 0;
1985*b1cdbd2cSJim Jagielski }
1986*b1cdbd2cSJim Jagielski 
1987*b1cdbd2cSJim Jagielski /*-----------------30.05.97 07:37-------------------
1988*b1cdbd2cSJim Jagielski 
1989*b1cdbd2cSJim Jagielski --------------------------------------------------*/
DisablePageBreak()1990*b1cdbd2cSJim Jagielski void SwTextFlowPage::DisablePageBreak()
1991*b1cdbd2cSJim Jagielski {
1992*b1cdbd2cSJim Jagielski 	bPageBreak = sal_False;
1993*b1cdbd2cSJim Jagielski 	aPgBrkCB       .Disable();
1994*b1cdbd2cSJim Jagielski 	aPgBrkRB       .Disable();
1995*b1cdbd2cSJim Jagielski 	aColBrkRB      .Disable();
1996*b1cdbd2cSJim Jagielski 	aPgBrkBeforeRB .Disable();
1997*b1cdbd2cSJim Jagielski 	aPgBrkAfterRB  .Disable();
1998*b1cdbd2cSJim Jagielski 	aPageCollCB    .Disable();
1999*b1cdbd2cSJim Jagielski 	aPageCollLB    .Disable();
2000*b1cdbd2cSJim Jagielski 	aPageNoFT      .Disable();
2001*b1cdbd2cSJim Jagielski 	aPageNoNF      .Disable();
2002*b1cdbd2cSJim Jagielski }
2003*b1cdbd2cSJim Jagielski 
2004*b1cdbd2cSJim Jagielski 
2005*b1cdbd2cSJim Jagielski 
2006