1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sw.hxx"
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski
28*b1cdbd2cSJim Jagielski #include <hintids.hxx>
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski #include <tools/datetime.hxx>
31*b1cdbd2cSJim Jagielski #include <vcl/svapp.hxx>
32*b1cdbd2cSJim Jagielski #include <unotools/collatorwrapper.hxx>
33*b1cdbd2cSJim Jagielski #include <svl/urihelper.hxx>
34*b1cdbd2cSJim Jagielski #include <svl/stritem.hxx>
35*b1cdbd2cSJim Jagielski #include <unotools/syslocale.hxx>
36*b1cdbd2cSJim Jagielski #include <sfx2/app.hxx>
37*b1cdbd2cSJim Jagielski #include <sfx2/docfile.hxx>
38*b1cdbd2cSJim Jagielski #include <sfx2/docfilt.hxx>
39*b1cdbd2cSJim Jagielski #include <editeng/pmdlitem.hxx>
40*b1cdbd2cSJim Jagielski #ifndef _SVX_TSTPITEM_HXX //autogen
41*b1cdbd2cSJim Jagielski #include <editeng/tstpitem.hxx>
42*b1cdbd2cSJim Jagielski #endif
43*b1cdbd2cSJim Jagielski #include <editeng/boxitem.hxx>
44*b1cdbd2cSJim Jagielski #include <editeng/sizeitem.hxx>
45*b1cdbd2cSJim Jagielski #include <svx/pageitem.hxx>
46*b1cdbd2cSJim Jagielski #include <editeng/lrspitem.hxx>
47*b1cdbd2cSJim Jagielski #include <svl/style.hxx>
48*b1cdbd2cSJim Jagielski #ifndef _VCL_LSTBOX_HXX //autogen
49*b1cdbd2cSJim Jagielski #include <vcl/lstbox.hxx>
50*b1cdbd2cSJim Jagielski #endif
51*b1cdbd2cSJim Jagielski #include <unotools/localedatawrapper.hxx>
52*b1cdbd2cSJim Jagielski #include <com/sun/star/frame/XDispatch.hpp>
53*b1cdbd2cSJim Jagielski #include <com/sun/star/frame/XDispatchProvider.hpp>
54*b1cdbd2cSJim Jagielski #include <com/sun/star/util/XURLTransformer.hpp>
55*b1cdbd2cSJim Jagielski #include <comphelper/processfactory.hxx>
56*b1cdbd2cSJim Jagielski #include <sfx2/viewfrm.hxx>
57*b1cdbd2cSJim Jagielski #include <fmtornt.hxx>
58*b1cdbd2cSJim Jagielski #include <tabcol.hxx>
59*b1cdbd2cSJim Jagielski #include <edtwin.hxx>
60*b1cdbd2cSJim Jagielski #include <fmtfsize.hxx>
61*b1cdbd2cSJim Jagielski #include <fmthdft.hxx>
62*b1cdbd2cSJim Jagielski #include <fmtpdsc.hxx>
63*b1cdbd2cSJim Jagielski #include <wview.hxx>
64*b1cdbd2cSJim Jagielski #include <uiitems.hxx>
65*b1cdbd2cSJim Jagielski #ifndef _DOCSH_HXX
66*b1cdbd2cSJim Jagielski #include <docsh.hxx>
67*b1cdbd2cSJim Jagielski #endif
68*b1cdbd2cSJim Jagielski #include <wrtsh.hxx>
69*b1cdbd2cSJim Jagielski #include <swmodule.hxx>
70*b1cdbd2cSJim Jagielski #ifndef _VIEW_HXX
71*b1cdbd2cSJim Jagielski #include <view.hxx>
72*b1cdbd2cSJim Jagielski #endif
73*b1cdbd2cSJim Jagielski #include <uitool.hxx>
74*b1cdbd2cSJim Jagielski #include <frmatr.hxx>
75*b1cdbd2cSJim Jagielski #include <paratr.hxx>
76*b1cdbd2cSJim Jagielski #include <fmtcol.hxx>
77*b1cdbd2cSJim Jagielski #include <poolfmt.hxx>
78*b1cdbd2cSJim Jagielski #include "usrpref.hxx"
79*b1cdbd2cSJim Jagielski
80*b1cdbd2cSJim Jagielski #ifndef _ERROR_H
81*b1cdbd2cSJim Jagielski #include <error.h>
82*b1cdbd2cSJim Jagielski #endif
83*b1cdbd2cSJim Jagielski #ifndef _CMDID_H
84*b1cdbd2cSJim Jagielski #include <cmdid.h>
85*b1cdbd2cSJim Jagielski #endif
86*b1cdbd2cSJim Jagielski #ifndef _GLOBALS_HRC
87*b1cdbd2cSJim Jagielski #include <globals.hrc>
88*b1cdbd2cSJim Jagielski #endif
89*b1cdbd2cSJim Jagielski #ifndef _UTLUI_HRC
90*b1cdbd2cSJim Jagielski #include <utlui.hrc>
91*b1cdbd2cSJim Jagielski #endif
92*b1cdbd2cSJim Jagielski #include <doc.hxx>
93*b1cdbd2cSJim Jagielski #include <docary.hxx>
94*b1cdbd2cSJim Jagielski #include <charfmt.hxx>
95*b1cdbd2cSJim Jagielski #include <SwStyleNameMapper.hxx>
96*b1cdbd2cSJim Jagielski // 50 cm 28350
97*b1cdbd2cSJim Jagielski //
98*b1cdbd2cSJim Jagielski #define MAXHEIGHT 28350
99*b1cdbd2cSJim Jagielski #define MAXWIDTH 28350
100*b1cdbd2cSJim Jagielski
101*b1cdbd2cSJim Jagielski using namespace ::com::sun::star;
102*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
103*b1cdbd2cSJim Jagielski Beschreibung: Allgemeine List von StringPointern
104*b1cdbd2cSJim Jagielski --------------------------------------------------------------------*/
105*b1cdbd2cSJim Jagielski
106*b1cdbd2cSJim Jagielski
107*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
108*b1cdbd2cSJim Jagielski Beschreibung: Metric umschalten
109*b1cdbd2cSJim Jagielski --------------------------------------------------------------------*/
110*b1cdbd2cSJim Jagielski
111*b1cdbd2cSJim Jagielski
SetMetric(MetricFormatter & rCtrl,FieldUnit eUnit)112*b1cdbd2cSJim Jagielski void SetMetric(MetricFormatter& rCtrl, FieldUnit eUnit)
113*b1cdbd2cSJim Jagielski {
114*b1cdbd2cSJim Jagielski SwTwips nMin = static_cast< SwTwips >(rCtrl.GetMin(FUNIT_TWIP));
115*b1cdbd2cSJim Jagielski SwTwips nMax = static_cast< SwTwips >(rCtrl.GetMax(FUNIT_TWIP));
116*b1cdbd2cSJim Jagielski
117*b1cdbd2cSJim Jagielski rCtrl.SetUnit(eUnit);
118*b1cdbd2cSJim Jagielski
119*b1cdbd2cSJim Jagielski rCtrl.SetMin(nMin, FUNIT_TWIP);
120*b1cdbd2cSJim Jagielski rCtrl.SetMax(nMax, FUNIT_TWIP);
121*b1cdbd2cSJim Jagielski }
122*b1cdbd2cSJim Jagielski
123*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
124*b1cdbd2cSJim Jagielski Beschreibung: Boxinfo-Attribut setzen
125*b1cdbd2cSJim Jagielski --------------------------------------------------------------------*/
126*b1cdbd2cSJim Jagielski
127*b1cdbd2cSJim Jagielski
PrepareBoxInfo(SfxItemSet & rSet,const SwWrtShell & rSh)128*b1cdbd2cSJim Jagielski void PrepareBoxInfo(SfxItemSet& rSet, const SwWrtShell& rSh)
129*b1cdbd2cSJim Jagielski {
130*b1cdbd2cSJim Jagielski SvxBoxInfoItem aBoxInfo( SID_ATTR_BORDER_INNER );
131*b1cdbd2cSJim Jagielski const SfxPoolItem *pBoxInfo;
132*b1cdbd2cSJim Jagielski if ( SFX_ITEM_SET == rSet.GetItemState( SID_ATTR_BORDER_INNER,
133*b1cdbd2cSJim Jagielski sal_True, &pBoxInfo))
134*b1cdbd2cSJim Jagielski aBoxInfo = *(SvxBoxInfoItem*)pBoxInfo;
135*b1cdbd2cSJim Jagielski
136*b1cdbd2cSJim Jagielski // Tabellenvariante, wenn mehrere Tabellenzellen selektiert
137*b1cdbd2cSJim Jagielski rSh.GetCrsr(); //Damit GetCrsrCnt() auch das Richtige liefert
138*b1cdbd2cSJim Jagielski aBoxInfo.SetTable (rSh.IsTableMode() && rSh.GetCrsrCnt() > 1);
139*b1cdbd2cSJim Jagielski // Abstandsfeld immer anzeigen
140*b1cdbd2cSJim Jagielski aBoxInfo.SetDist ((sal_Bool) sal_True);
141*b1cdbd2cSJim Jagielski // Minimalgroesse in Tabellen und Absaetzen setzen
142*b1cdbd2cSJim Jagielski aBoxInfo.SetMinDist (rSh.IsTableMode() || rSh.GetSelectionType() & (nsSelectionType::SEL_TXT | nsSelectionType::SEL_TBL));
143*b1cdbd2cSJim Jagielski // Default-Abstand immer setzen
144*b1cdbd2cSJim Jagielski aBoxInfo.SetDefDist (MIN_BORDER_DIST);
145*b1cdbd2cSJim Jagielski // Einzelne Linien koennen nur in Tabellen DontCare-Status haben
146*b1cdbd2cSJim Jagielski aBoxInfo.SetValid(VALID_DISABLE, !rSh.IsTableMode());
147*b1cdbd2cSJim Jagielski
148*b1cdbd2cSJim Jagielski rSet.Put(aBoxInfo);
149*b1cdbd2cSJim Jagielski }
150*b1cdbd2cSJim Jagielski
151*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
152*b1cdbd2cSJim Jagielski Beschreibung: Header Footer fuellen
153*b1cdbd2cSJim Jagielski --------------------------------------------------------------------*/
154*b1cdbd2cSJim Jagielski
155*b1cdbd2cSJim Jagielski
FillHdFt(SwFrmFmt * pFmt,const SfxItemSet & rSet)156*b1cdbd2cSJim Jagielski void FillHdFt(SwFrmFmt* pFmt, const SfxItemSet& rSet)
157*b1cdbd2cSJim Jagielski {
158*b1cdbd2cSJim Jagielski SwAttrSet aSet(pFmt->GetAttrSet());
159*b1cdbd2cSJim Jagielski aSet.Put(rSet);
160*b1cdbd2cSJim Jagielski
161*b1cdbd2cSJim Jagielski const SvxSizeItem& rSize = (const SvxSizeItem&)rSet.Get(SID_ATTR_PAGE_SIZE);
162*b1cdbd2cSJim Jagielski const SfxBoolItem& rDynamic = (const SfxBoolItem&)rSet.Get(SID_ATTR_PAGE_DYNAMIC);
163*b1cdbd2cSJim Jagielski
164*b1cdbd2cSJim Jagielski // Groesse umsetzen
165*b1cdbd2cSJim Jagielski //
166*b1cdbd2cSJim Jagielski SwFmtFrmSize aFrmSize(rDynamic.GetValue() ? ATT_MIN_SIZE : ATT_FIX_SIZE,
167*b1cdbd2cSJim Jagielski rSize.GetSize().Width(),
168*b1cdbd2cSJim Jagielski rSize.GetSize().Height());
169*b1cdbd2cSJim Jagielski aSet.Put(aFrmSize);
170*b1cdbd2cSJim Jagielski pFmt->SetFmtAttr(aSet);
171*b1cdbd2cSJim Jagielski }
172*b1cdbd2cSJim Jagielski
173*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
174*b1cdbd2cSJim Jagielski Beschreibung: PageDesc <-> in Sets wandeln und zurueck
175*b1cdbd2cSJim Jagielski --------------------------------------------------------------------*/
176*b1cdbd2cSJim Jagielski
177*b1cdbd2cSJim Jagielski
ItemSetToPageDesc(const SfxItemSet & rSet,SwPageDesc & rPageDesc)178*b1cdbd2cSJim Jagielski void ItemSetToPageDesc( const SfxItemSet& rSet, SwPageDesc& rPageDesc )
179*b1cdbd2cSJim Jagielski {
180*b1cdbd2cSJim Jagielski SwFrmFmt& rMaster = rPageDesc.GetMaster();
181*b1cdbd2cSJim Jagielski
182*b1cdbd2cSJim Jagielski // alle allgemeinen Rahmen-Attribute uebertragen
183*b1cdbd2cSJim Jagielski //
184*b1cdbd2cSJim Jagielski rMaster.SetFmtAttr(rSet);
185*b1cdbd2cSJim Jagielski
186*b1cdbd2cSJim Jagielski // PageData
187*b1cdbd2cSJim Jagielski //
188*b1cdbd2cSJim Jagielski if(rSet.GetItemState(SID_ATTR_PAGE) == SFX_ITEM_SET)
189*b1cdbd2cSJim Jagielski {
190*b1cdbd2cSJim Jagielski const SvxPageItem& rPageItem = (const SvxPageItem&)rSet.Get(SID_ATTR_PAGE);
191*b1cdbd2cSJim Jagielski
192*b1cdbd2cSJim Jagielski sal_uInt16 nUse = (sal_uInt16)rPageItem.GetPageUsage();
193*b1cdbd2cSJim Jagielski if(nUse & 0x04)
194*b1cdbd2cSJim Jagielski nUse |= 0x03;
195*b1cdbd2cSJim Jagielski if(nUse)
196*b1cdbd2cSJim Jagielski rPageDesc.SetUseOn( (UseOnPage) nUse );
197*b1cdbd2cSJim Jagielski rPageDesc.SetLandscape(rPageItem.IsLandscape());
198*b1cdbd2cSJim Jagielski SvxNumberType aNumType;
199*b1cdbd2cSJim Jagielski aNumType.SetNumberingType( static_cast< sal_Int16 >(rPageItem.GetNumType()) );
200*b1cdbd2cSJim Jagielski rPageDesc.SetNumType(aNumType);
201*b1cdbd2cSJim Jagielski }
202*b1cdbd2cSJim Jagielski // Groesse
203*b1cdbd2cSJim Jagielski //
204*b1cdbd2cSJim Jagielski if(rSet.GetItemState(SID_ATTR_PAGE_SIZE) == SFX_ITEM_SET)
205*b1cdbd2cSJim Jagielski {
206*b1cdbd2cSJim Jagielski const SvxSizeItem& rSizeItem = (const SvxSizeItem&)rSet.Get(SID_ATTR_PAGE_SIZE);
207*b1cdbd2cSJim Jagielski SwFmtFrmSize aSize(ATT_FIX_SIZE);
208*b1cdbd2cSJim Jagielski aSize.SetSize(rSizeItem.GetSize());
209*b1cdbd2cSJim Jagielski rMaster.SetFmtAttr(aSize);
210*b1cdbd2cSJim Jagielski }
211*b1cdbd2cSJim Jagielski // Kopzeilen-Attribute auswerten
212*b1cdbd2cSJim Jagielski //
213*b1cdbd2cSJim Jagielski const SfxPoolItem* pItem;
214*b1cdbd2cSJim Jagielski if( SFX_ITEM_SET == rSet.GetItemState( SID_ATTR_PAGE_HEADERSET,
215*b1cdbd2cSJim Jagielski sal_False, &pItem ) )
216*b1cdbd2cSJim Jagielski {
217*b1cdbd2cSJim Jagielski const SfxItemSet& rHeaderSet = ((SvxSetItem*)pItem)->GetItemSet();
218*b1cdbd2cSJim Jagielski const SfxBoolItem& rHeaderOn = (const SfxBoolItem&)rHeaderSet.Get(SID_ATTR_PAGE_ON);
219*b1cdbd2cSJim Jagielski
220*b1cdbd2cSJim Jagielski if(rHeaderOn.GetValue())
221*b1cdbd2cSJim Jagielski {
222*b1cdbd2cSJim Jagielski // Werte uebernehmen
223*b1cdbd2cSJim Jagielski if(!rMaster.GetHeader().IsActive())
224*b1cdbd2cSJim Jagielski rMaster.SetFmtAttr(SwFmtHeader(sal_True));
225*b1cdbd2cSJim Jagielski
226*b1cdbd2cSJim Jagielski // Das Headerformat rausholen und anpassen
227*b1cdbd2cSJim Jagielski //
228*b1cdbd2cSJim Jagielski SwFmtHeader aHeaderFmt(rMaster.GetHeader());
229*b1cdbd2cSJim Jagielski SwFrmFmt *pHeaderFmt = aHeaderFmt.GetHeaderFmt();
230*b1cdbd2cSJim Jagielski ASSERT(pHeaderFmt != 0, "kein HeaderFormat");
231*b1cdbd2cSJim Jagielski
232*b1cdbd2cSJim Jagielski ::FillHdFt(pHeaderFmt, rHeaderSet);
233*b1cdbd2cSJim Jagielski
234*b1cdbd2cSJim Jagielski rPageDesc.ChgHeaderShare(((const SfxBoolItem&)
235*b1cdbd2cSJim Jagielski rHeaderSet.Get(SID_ATTR_PAGE_SHARED)).GetValue());
236*b1cdbd2cSJim Jagielski }
237*b1cdbd2cSJim Jagielski else
238*b1cdbd2cSJim Jagielski { // Header ausschalten
239*b1cdbd2cSJim Jagielski //
240*b1cdbd2cSJim Jagielski if(rMaster.GetHeader().IsActive())
241*b1cdbd2cSJim Jagielski {
242*b1cdbd2cSJim Jagielski rMaster.SetFmtAttr(SwFmtHeader(sal_Bool(sal_False)));
243*b1cdbd2cSJim Jagielski rPageDesc.ChgHeaderShare(sal_False);
244*b1cdbd2cSJim Jagielski }
245*b1cdbd2cSJim Jagielski }
246*b1cdbd2cSJim Jagielski }
247*b1cdbd2cSJim Jagielski
248*b1cdbd2cSJim Jagielski // Fusszeilen-Attribute auswerten
249*b1cdbd2cSJim Jagielski //
250*b1cdbd2cSJim Jagielski if( SFX_ITEM_SET == rSet.GetItemState( SID_ATTR_PAGE_FOOTERSET,
251*b1cdbd2cSJim Jagielski sal_False, &pItem ) )
252*b1cdbd2cSJim Jagielski {
253*b1cdbd2cSJim Jagielski const SfxItemSet& rFooterSet = ((SvxSetItem*)pItem)->GetItemSet();
254*b1cdbd2cSJim Jagielski const SfxBoolItem& rFooterOn = (const SfxBoolItem&)rFooterSet.Get(SID_ATTR_PAGE_ON);
255*b1cdbd2cSJim Jagielski
256*b1cdbd2cSJim Jagielski if(rFooterOn.GetValue())
257*b1cdbd2cSJim Jagielski {
258*b1cdbd2cSJim Jagielski // Werte uebernehmen
259*b1cdbd2cSJim Jagielski if(!rMaster.GetFooter().IsActive())
260*b1cdbd2cSJim Jagielski rMaster.SetFmtAttr(SwFmtFooter(sal_True));
261*b1cdbd2cSJim Jagielski
262*b1cdbd2cSJim Jagielski // Das Footerformat rausholen und anpassen
263*b1cdbd2cSJim Jagielski //
264*b1cdbd2cSJim Jagielski SwFmtFooter aFooterFmt(rMaster.GetFooter());
265*b1cdbd2cSJim Jagielski SwFrmFmt *pFooterFmt = aFooterFmt.GetFooterFmt();
266*b1cdbd2cSJim Jagielski ASSERT(pFooterFmt != 0, "kein FooterFormat");
267*b1cdbd2cSJim Jagielski
268*b1cdbd2cSJim Jagielski ::FillHdFt(pFooterFmt, rFooterSet);
269*b1cdbd2cSJim Jagielski
270*b1cdbd2cSJim Jagielski rPageDesc.ChgFooterShare(((const SfxBoolItem&)
271*b1cdbd2cSJim Jagielski rFooterSet.Get(SID_ATTR_PAGE_SHARED)).GetValue());
272*b1cdbd2cSJim Jagielski }
273*b1cdbd2cSJim Jagielski else
274*b1cdbd2cSJim Jagielski { // Footer ausschalten
275*b1cdbd2cSJim Jagielski //
276*b1cdbd2cSJim Jagielski if(rMaster.GetFooter().IsActive())
277*b1cdbd2cSJim Jagielski {
278*b1cdbd2cSJim Jagielski rMaster.SetFmtAttr(SwFmtFooter(sal_Bool(sal_False)));
279*b1cdbd2cSJim Jagielski rPageDesc.ChgFooterShare(sal_False);
280*b1cdbd2cSJim Jagielski }
281*b1cdbd2cSJim Jagielski }
282*b1cdbd2cSJim Jagielski }
283*b1cdbd2cSJim Jagielski
284*b1cdbd2cSJim Jagielski // Fussnoten
285*b1cdbd2cSJim Jagielski //
286*b1cdbd2cSJim Jagielski if( SFX_ITEM_SET == rSet.GetItemState( FN_PARAM_FTN_INFO,
287*b1cdbd2cSJim Jagielski sal_False, &pItem ) )
288*b1cdbd2cSJim Jagielski rPageDesc.SetFtnInfo( ((SwPageFtnInfoItem*)pItem)->GetPageFtnInfo() );
289*b1cdbd2cSJim Jagielski
290*b1cdbd2cSJim Jagielski
291*b1cdbd2cSJim Jagielski //
292*b1cdbd2cSJim Jagielski // Columns
293*b1cdbd2cSJim Jagielski //
294*b1cdbd2cSJim Jagielski
295*b1cdbd2cSJim Jagielski // Registerhaltigkeit
296*b1cdbd2cSJim Jagielski
297*b1cdbd2cSJim Jagielski if(SFX_ITEM_SET == rSet.GetItemState(
298*b1cdbd2cSJim Jagielski SID_SWREGISTER_MODE, sal_False, &pItem))
299*b1cdbd2cSJim Jagielski {
300*b1cdbd2cSJim Jagielski sal_Bool bSet = ((const SfxBoolItem*)pItem)->GetValue();
301*b1cdbd2cSJim Jagielski if(!bSet)
302*b1cdbd2cSJim Jagielski rPageDesc.SetRegisterFmtColl(0);
303*b1cdbd2cSJim Jagielski else if(SFX_ITEM_SET == rSet.GetItemState(
304*b1cdbd2cSJim Jagielski SID_SWREGISTER_COLLECTION, sal_False, &pItem))
305*b1cdbd2cSJim Jagielski {
306*b1cdbd2cSJim Jagielski const String& rColl = ((const SfxStringItem*)pItem)->GetValue();
307*b1cdbd2cSJim Jagielski SwDoc& rDoc = *rMaster.GetDoc();
308*b1cdbd2cSJim Jagielski SwTxtFmtColl* pColl = rDoc.FindTxtFmtCollByName( rColl );
309*b1cdbd2cSJim Jagielski if( !pColl )
310*b1cdbd2cSJim Jagielski {
311*b1cdbd2cSJim Jagielski sal_uInt16 nId = SwStyleNameMapper::GetPoolIdFromUIName( rColl, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
312*b1cdbd2cSJim Jagielski if( USHRT_MAX != nId )
313*b1cdbd2cSJim Jagielski pColl = rDoc.GetTxtCollFromPool( nId );
314*b1cdbd2cSJim Jagielski else
315*b1cdbd2cSJim Jagielski pColl = rDoc.MakeTxtFmtColl( rColl,
316*b1cdbd2cSJim Jagielski (SwTxtFmtColl*)rDoc.GetDfltTxtFmtColl() );
317*b1cdbd2cSJim Jagielski }
318*b1cdbd2cSJim Jagielski if( pColl )
319*b1cdbd2cSJim Jagielski pColl->SetFmtAttr( SwRegisterItem ( sal_True ));
320*b1cdbd2cSJim Jagielski rPageDesc.SetRegisterFmtColl( pColl );
321*b1cdbd2cSJim Jagielski }
322*b1cdbd2cSJim Jagielski }
323*b1cdbd2cSJim Jagielski }
324*b1cdbd2cSJim Jagielski
325*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
326*b1cdbd2cSJim Jagielski Beschreibung:
327*b1cdbd2cSJim Jagielski --------------------------------------------------------------------*/
328*b1cdbd2cSJim Jagielski
329*b1cdbd2cSJim Jagielski
PageDescToItemSet(const SwPageDesc & rPageDesc,SfxItemSet & rSet)330*b1cdbd2cSJim Jagielski void PageDescToItemSet( const SwPageDesc& rPageDesc, SfxItemSet& rSet)
331*b1cdbd2cSJim Jagielski {
332*b1cdbd2cSJim Jagielski const SwFrmFmt& rMaster = rPageDesc.GetMaster();
333*b1cdbd2cSJim Jagielski
334*b1cdbd2cSJim Jagielski // Seitendaten
335*b1cdbd2cSJim Jagielski //
336*b1cdbd2cSJim Jagielski SvxPageItem aPageItem(SID_ATTR_PAGE);
337*b1cdbd2cSJim Jagielski aPageItem.SetDescName(rPageDesc.GetName());
338*b1cdbd2cSJim Jagielski aPageItem.SetPageUsage(rPageDesc.GetUseOn());
339*b1cdbd2cSJim Jagielski aPageItem.SetLandscape(rPageDesc.GetLandscape());
340*b1cdbd2cSJim Jagielski aPageItem.SetNumType((SvxNumType)rPageDesc.GetNumType().GetNumberingType());
341*b1cdbd2cSJim Jagielski rSet.Put(aPageItem);
342*b1cdbd2cSJim Jagielski
343*b1cdbd2cSJim Jagielski // Groesse
344*b1cdbd2cSJim Jagielski SvxSizeItem aSizeItem(SID_ATTR_PAGE_SIZE, rMaster.GetFrmSize().GetSize());
345*b1cdbd2cSJim Jagielski rSet.Put(aSizeItem);
346*b1cdbd2cSJim Jagielski
347*b1cdbd2cSJim Jagielski // Maximale Groesse
348*b1cdbd2cSJim Jagielski SvxSizeItem aMaxSizeItem(SID_ATTR_PAGE_MAXSIZE, Size(MAXWIDTH, MAXHEIGHT));
349*b1cdbd2cSJim Jagielski rSet.Put(aMaxSizeItem);
350*b1cdbd2cSJim Jagielski
351*b1cdbd2cSJim Jagielski // Raender, Umrandung und das andere Zeug
352*b1cdbd2cSJim Jagielski //
353*b1cdbd2cSJim Jagielski rSet.Put(rMaster.GetAttrSet());
354*b1cdbd2cSJim Jagielski
355*b1cdbd2cSJim Jagielski SvxBoxInfoItem aBoxInfo( SID_ATTR_BORDER_INNER );
356*b1cdbd2cSJim Jagielski const SfxPoolItem *pBoxInfo;
357*b1cdbd2cSJim Jagielski if ( SFX_ITEM_SET == rSet.GetItemState( SID_ATTR_BORDER_INNER,
358*b1cdbd2cSJim Jagielski sal_True, &pBoxInfo) )
359*b1cdbd2cSJim Jagielski aBoxInfo = *(SvxBoxInfoItem*)pBoxInfo;
360*b1cdbd2cSJim Jagielski
361*b1cdbd2cSJim Jagielski aBoxInfo.SetTable( sal_False );
362*b1cdbd2cSJim Jagielski // Abstandsfeld immer anzeigen
363*b1cdbd2cSJim Jagielski aBoxInfo.SetDist( sal_True);
364*b1cdbd2cSJim Jagielski // Minimalgroesse in Tabellen und Absaetzen setzen
365*b1cdbd2cSJim Jagielski aBoxInfo.SetMinDist( sal_False );
366*b1cdbd2cSJim Jagielski // Default-Abstand immer setzen
367*b1cdbd2cSJim Jagielski aBoxInfo.SetDefDist( MIN_BORDER_DIST );
368*b1cdbd2cSJim Jagielski // Einzelne Linien koennen nur in Tabellen DontCare-Status haben
369*b1cdbd2cSJim Jagielski aBoxInfo.SetValid( VALID_DISABLE );
370*b1cdbd2cSJim Jagielski rSet.Put( aBoxInfo );
371*b1cdbd2cSJim Jagielski
372*b1cdbd2cSJim Jagielski
373*b1cdbd2cSJim Jagielski SfxStringItem aFollow(SID_ATTR_PAGE_EXT1, aEmptyStr);
374*b1cdbd2cSJim Jagielski if(rPageDesc.GetFollow())
375*b1cdbd2cSJim Jagielski aFollow.SetValue(rPageDesc.GetFollow()->GetName());
376*b1cdbd2cSJim Jagielski rSet.Put(aFollow);
377*b1cdbd2cSJim Jagielski
378*b1cdbd2cSJim Jagielski // Header
379*b1cdbd2cSJim Jagielski //
380*b1cdbd2cSJim Jagielski if(rMaster.GetHeader().IsActive())
381*b1cdbd2cSJim Jagielski {
382*b1cdbd2cSJim Jagielski const SwFmtHeader &rHeaderFmt = rMaster.GetHeader();
383*b1cdbd2cSJim Jagielski const SwFrmFmt *pHeaderFmt = rHeaderFmt.GetHeaderFmt();
384*b1cdbd2cSJim Jagielski ASSERT(pHeaderFmt != 0, kein HeaderFormat.);
385*b1cdbd2cSJim Jagielski
386*b1cdbd2cSJim Jagielski // HeaderInfo, Raender, Hintergrund, Umrandung
387*b1cdbd2cSJim Jagielski //
388*b1cdbd2cSJim Jagielski SfxItemSet aHeaderSet( *rSet.GetPool(),
389*b1cdbd2cSJim Jagielski SID_ATTR_PAGE_ON, SID_ATTR_PAGE_SHARED,
390*b1cdbd2cSJim Jagielski SID_ATTR_PAGE_SIZE, SID_ATTR_PAGE_SIZE,
391*b1cdbd2cSJim Jagielski SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER,
392*b1cdbd2cSJim Jagielski RES_FRMATR_BEGIN, RES_FRMATR_END-1,
393*b1cdbd2cSJim Jagielski 0);
394*b1cdbd2cSJim Jagielski
395*b1cdbd2cSJim Jagielski // dynamische oder feste Hoehe
396*b1cdbd2cSJim Jagielski //
397*b1cdbd2cSJim Jagielski SfxBoolItem aOn(SID_ATTR_PAGE_ON, sal_True);
398*b1cdbd2cSJim Jagielski aHeaderSet.Put(aOn);
399*b1cdbd2cSJim Jagielski
400*b1cdbd2cSJim Jagielski const SwFmtFrmSize &rFrmSize = pHeaderFmt->GetFrmSize();
401*b1cdbd2cSJim Jagielski const SwFrmSize eSizeType = rFrmSize.GetHeightSizeType();
402*b1cdbd2cSJim Jagielski SfxBoolItem aDynamic(SID_ATTR_PAGE_DYNAMIC, eSizeType != ATT_FIX_SIZE);
403*b1cdbd2cSJim Jagielski aHeaderSet.Put(aDynamic);
404*b1cdbd2cSJim Jagielski
405*b1cdbd2cSJim Jagielski // Links gleich rechts
406*b1cdbd2cSJim Jagielski //
407*b1cdbd2cSJim Jagielski SfxBoolItem aShared(SID_ATTR_PAGE_SHARED, rPageDesc.IsHeaderShared());
408*b1cdbd2cSJim Jagielski aHeaderSet.Put(aShared);
409*b1cdbd2cSJim Jagielski
410*b1cdbd2cSJim Jagielski // Groesse
411*b1cdbd2cSJim Jagielski SvxSizeItem aSize(SID_ATTR_PAGE_SIZE, Size(rFrmSize.GetSize()));
412*b1cdbd2cSJim Jagielski aHeaderSet.Put(aSize);
413*b1cdbd2cSJim Jagielski
414*b1cdbd2cSJim Jagielski // Rahmen-Attribute umschaufeln
415*b1cdbd2cSJim Jagielski //
416*b1cdbd2cSJim Jagielski aHeaderSet.Put(pHeaderFmt->GetAttrSet());
417*b1cdbd2cSJim Jagielski aHeaderSet.Put( aBoxInfo );
418*b1cdbd2cSJim Jagielski
419*b1cdbd2cSJim Jagielski // SetItem erzeugen
420*b1cdbd2cSJim Jagielski //
421*b1cdbd2cSJim Jagielski SvxSetItem aSetItem(SID_ATTR_PAGE_HEADERSET, aHeaderSet);
422*b1cdbd2cSJim Jagielski rSet.Put(aSetItem);
423*b1cdbd2cSJim Jagielski }
424*b1cdbd2cSJim Jagielski
425*b1cdbd2cSJim Jagielski // Footer
426*b1cdbd2cSJim Jagielski if(rMaster.GetFooter().IsActive())
427*b1cdbd2cSJim Jagielski {
428*b1cdbd2cSJim Jagielski const SwFmtFooter &rFooterFmt = rMaster.GetFooter();
429*b1cdbd2cSJim Jagielski const SwFrmFmt *pFooterFmt = rFooterFmt.GetFooterFmt();
430*b1cdbd2cSJim Jagielski ASSERT(pFooterFmt != 0, kein FooterFormat.);
431*b1cdbd2cSJim Jagielski
432*b1cdbd2cSJim Jagielski // FooterInfo, Raender, Hintergrund, Umrandung
433*b1cdbd2cSJim Jagielski //
434*b1cdbd2cSJim Jagielski SfxItemSet aFooterSet( *rSet.GetPool(),
435*b1cdbd2cSJim Jagielski SID_ATTR_PAGE_ON, SID_ATTR_PAGE_SHARED,
436*b1cdbd2cSJim Jagielski SID_ATTR_PAGE_SIZE, SID_ATTR_PAGE_SIZE,
437*b1cdbd2cSJim Jagielski SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER,
438*b1cdbd2cSJim Jagielski RES_FRMATR_BEGIN, RES_FRMATR_END-1,
439*b1cdbd2cSJim Jagielski 0);
440*b1cdbd2cSJim Jagielski
441*b1cdbd2cSJim Jagielski // dynamische oder feste Hoehe
442*b1cdbd2cSJim Jagielski //
443*b1cdbd2cSJim Jagielski SfxBoolItem aOn(SID_ATTR_PAGE_ON, sal_True);
444*b1cdbd2cSJim Jagielski aFooterSet.Put(aOn);
445*b1cdbd2cSJim Jagielski
446*b1cdbd2cSJim Jagielski const SwFmtFrmSize &rFrmSize = pFooterFmt->GetFrmSize();
447*b1cdbd2cSJim Jagielski const SwFrmSize eSizeType = rFrmSize.GetHeightSizeType();
448*b1cdbd2cSJim Jagielski SfxBoolItem aDynamic(SID_ATTR_PAGE_DYNAMIC, eSizeType != ATT_FIX_SIZE);
449*b1cdbd2cSJim Jagielski aFooterSet.Put(aDynamic);
450*b1cdbd2cSJim Jagielski
451*b1cdbd2cSJim Jagielski // Links gleich rechts
452*b1cdbd2cSJim Jagielski //
453*b1cdbd2cSJim Jagielski SfxBoolItem aShared(SID_ATTR_PAGE_SHARED, rPageDesc.IsFooterShared());
454*b1cdbd2cSJim Jagielski aFooterSet.Put(aShared);
455*b1cdbd2cSJim Jagielski
456*b1cdbd2cSJim Jagielski // Groesse
457*b1cdbd2cSJim Jagielski SvxSizeItem aSize(SID_ATTR_PAGE_SIZE, Size(rFrmSize.GetSize()));
458*b1cdbd2cSJim Jagielski aFooterSet.Put(aSize);
459*b1cdbd2cSJim Jagielski
460*b1cdbd2cSJim Jagielski // Rahmen-Attribute umschaufeln
461*b1cdbd2cSJim Jagielski //
462*b1cdbd2cSJim Jagielski aFooterSet.Put(pFooterFmt->GetAttrSet());
463*b1cdbd2cSJim Jagielski aFooterSet.Put( aBoxInfo );
464*b1cdbd2cSJim Jagielski
465*b1cdbd2cSJim Jagielski // SetItem erzeugen
466*b1cdbd2cSJim Jagielski //
467*b1cdbd2cSJim Jagielski SvxSetItem aSetItem(SID_ATTR_PAGE_FOOTERSET, aFooterSet);
468*b1cdbd2cSJim Jagielski rSet.Put(aSetItem);
469*b1cdbd2cSJim Jagielski }
470*b1cdbd2cSJim Jagielski
471*b1cdbd2cSJim Jagielski // Fussnoten einbauen
472*b1cdbd2cSJim Jagielski //
473*b1cdbd2cSJim Jagielski SwPageFtnInfo& rInfo = (SwPageFtnInfo&)rPageDesc.GetFtnInfo();
474*b1cdbd2cSJim Jagielski SwPageFtnInfoItem aFtnItem(FN_PARAM_FTN_INFO, rInfo);
475*b1cdbd2cSJim Jagielski rSet.Put(aFtnItem);
476*b1cdbd2cSJim Jagielski
477*b1cdbd2cSJim Jagielski // Registerhaltigkeit
478*b1cdbd2cSJim Jagielski
479*b1cdbd2cSJim Jagielski const SwTxtFmtColl* pCol = rPageDesc.GetRegisterFmtColl();
480*b1cdbd2cSJim Jagielski SwRegisterItem aReg(pCol != 0);
481*b1cdbd2cSJim Jagielski aReg.SetWhich(SID_SWREGISTER_MODE);
482*b1cdbd2cSJim Jagielski rSet.Put(aReg);
483*b1cdbd2cSJim Jagielski if(pCol)
484*b1cdbd2cSJim Jagielski rSet.Put(SfxStringItem(SID_SWREGISTER_COLLECTION, pCol->GetName()));
485*b1cdbd2cSJim Jagielski
486*b1cdbd2cSJim Jagielski }
487*b1cdbd2cSJim Jagielski
488*b1cdbd2cSJim Jagielski
489*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
490*b1cdbd2cSJim Jagielski Beschreibung: DefaultTabs setzen
491*b1cdbd2cSJim Jagielski --------------------------------------------------------------------*/
492*b1cdbd2cSJim Jagielski
493*b1cdbd2cSJim Jagielski
MakeDefTabs(SwTwips nDefDist,SvxTabStopItem & rTabs)494*b1cdbd2cSJim Jagielski void MakeDefTabs(SwTwips nDefDist, SvxTabStopItem& rTabs)
495*b1cdbd2cSJim Jagielski {
496*b1cdbd2cSJim Jagielski if( rTabs.Count() )
497*b1cdbd2cSJim Jagielski return;
498*b1cdbd2cSJim Jagielski {
499*b1cdbd2cSJim Jagielski SvxTabStop aSwTabStop( nDefDist, SVX_TAB_ADJUST_DEFAULT );
500*b1cdbd2cSJim Jagielski rTabs.Insert( aSwTabStop );
501*b1cdbd2cSJim Jagielski }
502*b1cdbd2cSJim Jagielski }
503*b1cdbd2cSJim Jagielski
504*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
505*b1cdbd2cSJim Jagielski Beschreibung: Abstand zwischen zwei Tabs
506*b1cdbd2cSJim Jagielski --------------------------------------------------------------------*/
507*b1cdbd2cSJim Jagielski
508*b1cdbd2cSJim Jagielski
GetTabDist(const SvxTabStopItem & rTabs)509*b1cdbd2cSJim Jagielski sal_uInt16 GetTabDist(const SvxTabStopItem& rTabs)
510*b1cdbd2cSJim Jagielski {
511*b1cdbd2cSJim Jagielski sal_uInt16 nDefDist;
512*b1cdbd2cSJim Jagielski if( rTabs.Count() )
513*b1cdbd2cSJim Jagielski nDefDist = (sal_uInt16)( rTabs[0].GetTabPos() );
514*b1cdbd2cSJim Jagielski else
515*b1cdbd2cSJim Jagielski nDefDist = 1134; // 2cm
516*b1cdbd2cSJim Jagielski return nDefDist;
517*b1cdbd2cSJim Jagielski }
518*b1cdbd2cSJim Jagielski
519*b1cdbd2cSJim Jagielski
520*b1cdbd2cSJim Jagielski // erfrage ob im Set eine Sfx-PageDesc-Kombination vorliegt und returne diese
SfxToSwPageDescAttr(const SwWrtShell & rShell,SfxItemSet & rSet)521*b1cdbd2cSJim Jagielski void SfxToSwPageDescAttr( const SwWrtShell& rShell, SfxItemSet& rSet )
522*b1cdbd2cSJim Jagielski {
523*b1cdbd2cSJim Jagielski const SfxPoolItem* pItem;
524*b1cdbd2cSJim Jagielski SwFmtPageDesc aPgDesc;
525*b1cdbd2cSJim Jagielski
526*b1cdbd2cSJim Jagielski sal_Bool bChanged = sal_False;
527*b1cdbd2cSJim Jagielski // Seitennummer
528*b1cdbd2cSJim Jagielski if(SFX_ITEM_SET == rSet.GetItemState(SID_ATTR_PARA_PAGENUM, sal_False, &pItem))
529*b1cdbd2cSJim Jagielski {
530*b1cdbd2cSJim Jagielski aPgDesc.SetNumOffset(((SfxUInt16Item*)pItem)->GetValue());
531*b1cdbd2cSJim Jagielski bChanged = sal_True;
532*b1cdbd2cSJim Jagielski }
533*b1cdbd2cSJim Jagielski if( SFX_ITEM_SET == rSet.GetItemState( SID_ATTR_PARA_MODEL, sal_False, &pItem ))
534*b1cdbd2cSJim Jagielski {
535*b1cdbd2cSJim Jagielski const String& rDescName = ((SvxPageModelItem*)pItem)->GetValue();
536*b1cdbd2cSJim Jagielski if( rDescName.Len() ) // kein Name -> PageDesc ausschalten!
537*b1cdbd2cSJim Jagielski {
538*b1cdbd2cSJim Jagielski // nur loeschen, wenn PageDesc eingschaltet wird!
539*b1cdbd2cSJim Jagielski rSet.ClearItem( RES_BREAK );
540*b1cdbd2cSJim Jagielski SwPageDesc* pDesc = ((SwWrtShell&)rShell).FindPageDescByName(
541*b1cdbd2cSJim Jagielski rDescName, sal_True );
542*b1cdbd2cSJim Jagielski if( pDesc )
543*b1cdbd2cSJim Jagielski aPgDesc.RegisterToPageDesc( *pDesc );
544*b1cdbd2cSJim Jagielski }
545*b1cdbd2cSJim Jagielski rSet.ClearItem( SID_ATTR_PARA_MODEL );
546*b1cdbd2cSJim Jagielski bChanged = sal_True;
547*b1cdbd2cSJim Jagielski }
548*b1cdbd2cSJim Jagielski else
549*b1cdbd2cSJim Jagielski {
550*b1cdbd2cSJim Jagielski SfxItemSet aCoreSet(rShell.GetView().GetPool(), RES_PAGEDESC, RES_PAGEDESC );
551*b1cdbd2cSJim Jagielski rShell.GetCurAttr( aCoreSet );
552*b1cdbd2cSJim Jagielski if(SFX_ITEM_SET == aCoreSet.GetItemState( RES_PAGEDESC, sal_True, &pItem ) )
553*b1cdbd2cSJim Jagielski {
554*b1cdbd2cSJim Jagielski if( ((SwFmtPageDesc*)pItem)->GetPageDesc() )
555*b1cdbd2cSJim Jagielski {
556*b1cdbd2cSJim Jagielski aPgDesc.RegisterToPageDesc( *((SwFmtPageDesc*)pItem)->GetPageDesc() );
557*b1cdbd2cSJim Jagielski }
558*b1cdbd2cSJim Jagielski }
559*b1cdbd2cSJim Jagielski }
560*b1cdbd2cSJim Jagielski
561*b1cdbd2cSJim Jagielski
562*b1cdbd2cSJim Jagielski if(bChanged)
563*b1cdbd2cSJim Jagielski rSet.Put( aPgDesc );
564*b1cdbd2cSJim Jagielski }
565*b1cdbd2cSJim Jagielski
566*b1cdbd2cSJim Jagielski
567*b1cdbd2cSJim Jagielski // erfrage ob im Set eine Sfx-PageDesc-Kombination vorliegt und returne diese
SwToSfxPageDescAttr(SfxItemSet & rCoreSet)568*b1cdbd2cSJim Jagielski void SwToSfxPageDescAttr( SfxItemSet& rCoreSet )
569*b1cdbd2cSJim Jagielski {
570*b1cdbd2cSJim Jagielski const SfxPoolItem* pItem = 0;
571*b1cdbd2cSJim Jagielski String aName;
572*b1cdbd2cSJim Jagielski sal_uInt16 nPageNum = 0;
573*b1cdbd2cSJim Jagielski sal_Bool bPut = sal_True;
574*b1cdbd2cSJim Jagielski switch( rCoreSet.GetItemState( RES_PAGEDESC, sal_True, &pItem ) )
575*b1cdbd2cSJim Jagielski {
576*b1cdbd2cSJim Jagielski case SFX_ITEM_SET:
577*b1cdbd2cSJim Jagielski {
578*b1cdbd2cSJim Jagielski if( ((SwFmtPageDesc*)pItem)->GetPageDesc() )
579*b1cdbd2cSJim Jagielski {
580*b1cdbd2cSJim Jagielski aName = ((SwFmtPageDesc*)pItem)->GetPageDesc()->GetName();
581*b1cdbd2cSJim Jagielski nPageNum = ((SwFmtPageDesc*)pItem)->GetNumOffset();
582*b1cdbd2cSJim Jagielski }
583*b1cdbd2cSJim Jagielski rCoreSet.ClearItem( RES_PAGEDESC );
584*b1cdbd2cSJim Jagielski // Seitennummer
585*b1cdbd2cSJim Jagielski }
586*b1cdbd2cSJim Jagielski break;
587*b1cdbd2cSJim Jagielski
588*b1cdbd2cSJim Jagielski case SFX_ITEM_AVAILABLE:
589*b1cdbd2cSJim Jagielski break;
590*b1cdbd2cSJim Jagielski
591*b1cdbd2cSJim Jagielski default:
592*b1cdbd2cSJim Jagielski bPut = sal_False;
593*b1cdbd2cSJim Jagielski }
594*b1cdbd2cSJim Jagielski SfxUInt16Item aPageNum( SID_ATTR_PARA_PAGENUM, nPageNum );
595*b1cdbd2cSJim Jagielski rCoreSet.Put( aPageNum );
596*b1cdbd2cSJim Jagielski
597*b1cdbd2cSJim Jagielski if(bPut)
598*b1cdbd2cSJim Jagielski rCoreSet.Put( SvxPageModelItem( aName, sal_True, SID_ATTR_PARA_MODEL ) );
599*b1cdbd2cSJim Jagielski }
600*b1cdbd2cSJim Jagielski
601*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
602*b1cdbd2cSJim Jagielski Beschreibung: Metric ermitteln
603*b1cdbd2cSJim Jagielski --------------------------------------------------------------------*/
604*b1cdbd2cSJim Jagielski
605*b1cdbd2cSJim Jagielski
GetDfltMetric(sal_Bool bWeb)606*b1cdbd2cSJim Jagielski FieldUnit GetDfltMetric(sal_Bool bWeb)
607*b1cdbd2cSJim Jagielski {
608*b1cdbd2cSJim Jagielski return SW_MOD()->GetUsrPref(bWeb)->GetMetric();
609*b1cdbd2cSJim Jagielski }
610*b1cdbd2cSJim Jagielski
611*b1cdbd2cSJim Jagielski /*--------------------------------------------------------------------
612*b1cdbd2cSJim Jagielski Beschreibung: Metric ermitteln
613*b1cdbd2cSJim Jagielski --------------------------------------------------------------------*/
614*b1cdbd2cSJim Jagielski
615*b1cdbd2cSJim Jagielski
SetDfltMetric(FieldUnit eMetric,sal_Bool bWeb)616*b1cdbd2cSJim Jagielski void SetDfltMetric( FieldUnit eMetric, sal_Bool bWeb )
617*b1cdbd2cSJim Jagielski {
618*b1cdbd2cSJim Jagielski SW_MOD()->ApplyUserMetric(eMetric, bWeb);
619*b1cdbd2cSJim Jagielski }
620*b1cdbd2cSJim Jagielski
621*b1cdbd2cSJim Jagielski /*-----------------09.04.98 16:58-------------------
622*b1cdbd2cSJim Jagielski
623*b1cdbd2cSJim Jagielski --------------------------------------------------*/
InsertStringSorted(const String & rEntry,ListBox & rToFill,sal_uInt16 nOffset)624*b1cdbd2cSJim Jagielski sal_uInt16 InsertStringSorted(const String& rEntry, ListBox& rToFill, sal_uInt16 nOffset )
625*b1cdbd2cSJim Jagielski {
626*b1cdbd2cSJim Jagielski sal_uInt16 i = nOffset;
627*b1cdbd2cSJim Jagielski CollatorWrapper& rCaseColl = ::GetAppCaseCollator();
628*b1cdbd2cSJim Jagielski
629*b1cdbd2cSJim Jagielski for( ; i < rToFill.GetEntryCount(); i++ )
630*b1cdbd2cSJim Jagielski {
631*b1cdbd2cSJim Jagielski if( 0 < rCaseColl.compareString( rToFill.GetEntry(i), rEntry ))
632*b1cdbd2cSJim Jagielski break;
633*b1cdbd2cSJim Jagielski }
634*b1cdbd2cSJim Jagielski return rToFill.InsertEntry(rEntry, i);
635*b1cdbd2cSJim Jagielski }
FillCharStyleListBox(ListBox & rToFill,SwDocShell * pDocSh,sal_Bool bSorted,sal_Bool bWithDefault)636*b1cdbd2cSJim Jagielski void FillCharStyleListBox(ListBox& rToFill, SwDocShell* pDocSh, sal_Bool bSorted, sal_Bool bWithDefault)
637*b1cdbd2cSJim Jagielski {
638*b1cdbd2cSJim Jagielski sal_Bool bHasOffset = rToFill.GetEntryCount() > 0;
639*b1cdbd2cSJim Jagielski SfxStyleSheetBasePool* pPool = pDocSh->GetStyleSheetPool();
640*b1cdbd2cSJim Jagielski pPool->SetSearchMask(SFX_STYLE_FAMILY_CHAR, SFXSTYLEBIT_ALL);
641*b1cdbd2cSJim Jagielski SwDoc* pDoc = pDocSh->GetDoc();
642*b1cdbd2cSJim Jagielski const SfxStyleSheetBase* pBase = pPool->First();
643*b1cdbd2cSJim Jagielski String sStandard;
644*b1cdbd2cSJim Jagielski SwStyleNameMapper::FillUIName( RES_POOLCOLL_STANDARD, sStandard );
645*b1cdbd2cSJim Jagielski while(pBase)
646*b1cdbd2cSJim Jagielski {
647*b1cdbd2cSJim Jagielski if(bWithDefault || pBase->GetName() != sStandard)
648*b1cdbd2cSJim Jagielski {
649*b1cdbd2cSJim Jagielski sal_uInt16 nPos;
650*b1cdbd2cSJim Jagielski if(bSorted)
651*b1cdbd2cSJim Jagielski nPos = InsertStringSorted(pBase->GetName(), rToFill, bHasOffset );
652*b1cdbd2cSJim Jagielski else
653*b1cdbd2cSJim Jagielski nPos = rToFill.InsertEntry(pBase->GetName());
654*b1cdbd2cSJim Jagielski long nPoolId = SwStyleNameMapper::GetPoolIdFromUIName( pBase->GetName(), nsSwGetPoolIdFromName::GET_POOLID_CHRFMT );
655*b1cdbd2cSJim Jagielski rToFill.SetEntryData( nPos, (void*) (nPoolId));
656*b1cdbd2cSJim Jagielski }
657*b1cdbd2cSJim Jagielski pBase = pPool->Next();
658*b1cdbd2cSJim Jagielski }
659*b1cdbd2cSJim Jagielski // non-pool styles
660*b1cdbd2cSJim Jagielski const SwCharFmts* pFmts = pDoc->GetCharFmts();
661*b1cdbd2cSJim Jagielski for(sal_uInt16 i = 0; i < pFmts->Count(); i++)
662*b1cdbd2cSJim Jagielski {
663*b1cdbd2cSJim Jagielski const SwCharFmt* pFmt = (*pFmts)[i];
664*b1cdbd2cSJim Jagielski if(pFmt->IsDefault())
665*b1cdbd2cSJim Jagielski continue;
666*b1cdbd2cSJim Jagielski const String& rName = pFmt->GetName();
667*b1cdbd2cSJim Jagielski if(rToFill.GetEntryPos(rName) == LISTBOX_ENTRY_NOTFOUND)
668*b1cdbd2cSJim Jagielski {
669*b1cdbd2cSJim Jagielski sal_uInt16 nPos;
670*b1cdbd2cSJim Jagielski if(bSorted)
671*b1cdbd2cSJim Jagielski nPos = InsertStringSorted(rName, rToFill, bHasOffset );
672*b1cdbd2cSJim Jagielski else
673*b1cdbd2cSJim Jagielski nPos = rToFill.InsertEntry(rName);
674*b1cdbd2cSJim Jagielski long nPoolId = USHRT_MAX;
675*b1cdbd2cSJim Jagielski rToFill.SetEntryData( nPos, (void*) (nPoolId));
676*b1cdbd2cSJim Jagielski }
677*b1cdbd2cSJim Jagielski }
678*b1cdbd2cSJim Jagielski };
679*b1cdbd2cSJim Jagielski
680*b1cdbd2cSJim Jagielski /* -----------------27.04.98 08:26-------------------
681*b1cdbd2cSJim Jagielski *
682*b1cdbd2cSJim Jagielski * --------------------------------------------------*/
GetTableWidth(SwFrmFmt * pFmt,SwTabCols & rCols,sal_uInt16 * pPercent,SwWrtShell * pSh)683*b1cdbd2cSJim Jagielski SwTwips GetTableWidth( SwFrmFmt* pFmt, SwTabCols& rCols, sal_uInt16 *pPercent,
684*b1cdbd2cSJim Jagielski SwWrtShell* pSh )
685*b1cdbd2cSJim Jagielski {
686*b1cdbd2cSJim Jagielski //Die Breite zu besorgen ist etwas komplizierter.
687*b1cdbd2cSJim Jagielski SwTwips nWidth = 0;
688*b1cdbd2cSJim Jagielski const sal_Int16 eOri = pFmt->GetHoriOrient().GetHoriOrient();
689*b1cdbd2cSJim Jagielski switch(eOri)
690*b1cdbd2cSJim Jagielski {
691*b1cdbd2cSJim Jagielski case text::HoriOrientation::FULL: nWidth = rCols.GetRight(); break;
692*b1cdbd2cSJim Jagielski case text::HoriOrientation::LEFT_AND_WIDTH:
693*b1cdbd2cSJim Jagielski case text::HoriOrientation::LEFT:
694*b1cdbd2cSJim Jagielski case text::HoriOrientation::RIGHT:
695*b1cdbd2cSJim Jagielski case text::HoriOrientation::CENTER:
696*b1cdbd2cSJim Jagielski nWidth = pFmt->GetFrmSize().GetWidth();
697*b1cdbd2cSJim Jagielski break;
698*b1cdbd2cSJim Jagielski default:
699*b1cdbd2cSJim Jagielski {
700*b1cdbd2cSJim Jagielski if(pSh)
701*b1cdbd2cSJim Jagielski {
702*b1cdbd2cSJim Jagielski const SwFrmFmt *pFlyFmt;
703*b1cdbd2cSJim Jagielski if ( 0 == (pFlyFmt = pSh->GetFlyFrmFmt()) )
704*b1cdbd2cSJim Jagielski {
705*b1cdbd2cSJim Jagielski nWidth = pSh->GetAnyCurRect(RECT_PAGE_PRT).Width();
706*b1cdbd2cSJim Jagielski }
707*b1cdbd2cSJim Jagielski else
708*b1cdbd2cSJim Jagielski {
709*b1cdbd2cSJim Jagielski nWidth = pSh->GetAnyCurRect(RECT_FLY_PRT_EMBEDDED).Width();
710*b1cdbd2cSJim Jagielski }
711*b1cdbd2cSJim Jagielski }
712*b1cdbd2cSJim Jagielski else
713*b1cdbd2cSJim Jagielski {
714*b1cdbd2cSJim Jagielski DBG_ERROR("wo soll die Breite denn herkommen?");
715*b1cdbd2cSJim Jagielski }
716*b1cdbd2cSJim Jagielski const SvxLRSpaceItem& rLRSpace = pFmt->GetLRSpace();
717*b1cdbd2cSJim Jagielski nWidth -= (rLRSpace.GetRight() + rLRSpace.GetLeft());
718*b1cdbd2cSJim Jagielski }
719*b1cdbd2cSJim Jagielski }
720*b1cdbd2cSJim Jagielski if (pPercent)
721*b1cdbd2cSJim Jagielski *pPercent = pFmt->GetFrmSize().GetWidthPercent();
722*b1cdbd2cSJim Jagielski return nWidth;
723*b1cdbd2cSJim Jagielski }
724*b1cdbd2cSJim Jagielski
725*b1cdbd2cSJim Jagielski /*------------------------------------------------------------------------*/
726*b1cdbd2cSJim Jagielski
GetAppLangDateTimeString(const DateTime & rDT)727*b1cdbd2cSJim Jagielski String GetAppLangDateTimeString( const DateTime& rDT )
728*b1cdbd2cSJim Jagielski {
729*b1cdbd2cSJim Jagielski const SvtSysLocale aSysLocale;
730*b1cdbd2cSJim Jagielski const LocaleDataWrapper& rAppLclData = aSysLocale.GetLocaleData();
731*b1cdbd2cSJim Jagielski String sRet( rAppLclData.getDate( rDT ));
732*b1cdbd2cSJim Jagielski ( sRet += ' ' ) += rAppLclData.getTime( rDT, sal_False, sal_False );
733*b1cdbd2cSJim Jagielski return sRet;
734*b1cdbd2cSJim Jagielski }
735*b1cdbd2cSJim Jagielski
736*b1cdbd2cSJim Jagielski /*-- 26.01.2006 08:06:33---------------------------------------------------
737*b1cdbd2cSJim Jagielski
738*b1cdbd2cSJim Jagielski -----------------------------------------------------------------------*/
ExecuteMenuCommand(PopupMenu & rMenu,SfxViewFrame & rViewFrame,sal_uInt16 nId)739*b1cdbd2cSJim Jagielski bool ExecuteMenuCommand( PopupMenu& rMenu, SfxViewFrame& rViewFrame, sal_uInt16 nId )
740*b1cdbd2cSJim Jagielski {
741*b1cdbd2cSJim Jagielski bool bRet = false;
742*b1cdbd2cSJim Jagielski sal_uInt16 nItemCount = rMenu.GetItemCount();
743*b1cdbd2cSJim Jagielski String sCommand;
744*b1cdbd2cSJim Jagielski for( sal_uInt16 nItem = 0; nItem < nItemCount; ++nItem)
745*b1cdbd2cSJim Jagielski {
746*b1cdbd2cSJim Jagielski PopupMenu* pPopup = rMenu.GetPopupMenu( rMenu.GetItemId( nItem ) );
747*b1cdbd2cSJim Jagielski if(pPopup)
748*b1cdbd2cSJim Jagielski {
749*b1cdbd2cSJim Jagielski sCommand = pPopup->GetItemCommand(nId);
750*b1cdbd2cSJim Jagielski if(sCommand.Len())
751*b1cdbd2cSJim Jagielski break;
752*b1cdbd2cSJim Jagielski }
753*b1cdbd2cSJim Jagielski }
754*b1cdbd2cSJim Jagielski if(sCommand.Len())
755*b1cdbd2cSJim Jagielski {
756*b1cdbd2cSJim Jagielski uno::Reference< frame::XFrame > xFrame = rViewFrame.GetFrame().GetFrameInterface();
757*b1cdbd2cSJim Jagielski uno::Reference < frame::XDispatchProvider > xProv( xFrame, uno::UNO_QUERY );
758*b1cdbd2cSJim Jagielski util::URL aURL;
759*b1cdbd2cSJim Jagielski aURL.Complete = sCommand;
760*b1cdbd2cSJim Jagielski uno::Reference < util::XURLTransformer > xTrans( ::comphelper::getProcessServiceFactory()->createInstance( rtl::OUString::createFromAscii("com.sun.star.util.URLTransformer" )), uno::UNO_QUERY );
761*b1cdbd2cSJim Jagielski xTrans->parseStrict( aURL );
762*b1cdbd2cSJim Jagielski uno::Reference< frame::XDispatch > xDisp = xProv->queryDispatch( aURL, ::rtl::OUString(), 0 );
763*b1cdbd2cSJim Jagielski if( xDisp.is() )
764*b1cdbd2cSJim Jagielski {
765*b1cdbd2cSJim Jagielski uno::Sequence< beans::PropertyValue > aSeq;
766*b1cdbd2cSJim Jagielski xDisp->dispatch( aURL, aSeq );
767*b1cdbd2cSJim Jagielski bRet = true;
768*b1cdbd2cSJim Jagielski }
769*b1cdbd2cSJim Jagielski }
770*b1cdbd2cSJim Jagielski return bRet;
771*b1cdbd2cSJim Jagielski }
772