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